@loxia-labs/loxia-autopilot-one 1.0.12 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/bin/cli.js +1 -1
  2. package/bin/loxia-terminal-v2.js +1 -1
  3. package/bin/loxia-terminal.js +1 -1
  4. package/bin/start-with-terminal.js +1 -1
  5. package/package.json +1 -2
  6. package/scripts/install-scanners.js +1 -1
  7. package/src/analyzers/CSSAnalyzer.js +1 -1
  8. package/src/analyzers/ConfigValidator.js +1 -1
  9. package/src/analyzers/ESLintAnalyzer.js +1 -1
  10. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  11. package/src/analyzers/PrettierFormatter.js +1 -1
  12. package/src/analyzers/PythonAnalyzer.js +1 -1
  13. package/src/analyzers/SecurityAnalyzer.js +1 -1
  14. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  15. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  17. package/src/analyzers/codeCloneDetector/index.js +1 -1
  18. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  19. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  20. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  21. package/src/core/agentPool.js +1 -1
  22. package/src/core/agentScheduler.js +1 -1
  23. package/src/core/contextManager.js +1 -1
  24. package/src/core/messageProcessor.js +1 -1
  25. package/src/core/orchestrator.js +1 -1
  26. package/src/core/stateManager.js +1 -1
  27. package/src/index.js +1 -1
  28. package/src/interfaces/cli.js +1 -1
  29. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  38. package/src/interfaces/terminal/api/apiClient.js +1 -1
  39. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  40. package/src/interfaces/terminal/api/session.js +1 -1
  41. package/src/interfaces/terminal/api/websocket.js +1 -1
  42. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  43. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  44. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  45. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  47. package/src/interfaces/terminal/components/Header.js +1 -1
  48. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  49. package/src/interfaces/terminal/components/InputBox.js +1 -1
  50. package/src/interfaces/terminal/components/Layout.js +1 -1
  51. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  52. package/src/interfaces/terminal/components/MessageList.js +1 -1
  53. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  54. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  55. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  56. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  57. package/src/interfaces/terminal/components/TextInput.js +1 -1
  58. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  59. package/src/interfaces/terminal/config/constants.js +1 -1
  60. package/src/interfaces/terminal/index.js +1 -1
  61. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  62. package/src/interfaces/terminal/state/useAgents.js +1 -1
  63. package/src/interfaces/terminal/state/useConnection.js +1 -1
  64. package/src/interfaces/terminal/state/useMessages.js +1 -1
  65. package/src/interfaces/terminal/state/useTools.js +1 -1
  66. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  67. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  68. package/src/interfaces/terminal/utils/theme.js +1 -1
  69. package/src/interfaces/webServer.js +1 -1
  70. package/src/modules/fileExplorer/controller.js +1 -1
  71. package/src/modules/fileExplorer/index.js +1 -1
  72. package/src/modules/fileExplorer/middleware.js +1 -1
  73. package/src/modules/fileExplorer/routes.js +1 -1
  74. package/src/services/aiService.js +1 -1
  75. package/src/services/apiKeyManager.js +1 -1
  76. package/src/services/benchmarkService.js +1 -1
  77. package/src/services/budgetService.js +1 -1
  78. package/src/services/contextInjectionService.js +1 -1
  79. package/src/services/conversationCompactionService.js +1 -1
  80. package/src/services/errorHandler.js +1 -1
  81. package/src/services/fileAttachmentService.js +1 -1
  82. package/src/services/modelRouterService.js +1 -1
  83. package/src/services/modelsService.js +1 -1
  84. package/src/services/qualityInspector.js +1 -1
  85. package/src/services/tokenCountingService.js +1 -1
  86. package/src/tools/agentCommunicationTool.js +1 -1
  87. package/src/tools/agentDelayTool.js +1 -1
  88. package/src/tools/asyncToolManager.js +1 -1
  89. package/src/tools/baseTool.js +1 -1
  90. package/src/tools/browserTool.js +1 -1
  91. package/src/tools/cloneDetectionTool.js +1 -1
  92. package/src/tools/dependencyResolverTool.js +1 -1
  93. package/src/tools/fileContentReplaceTool.js +1 -1
  94. package/src/tools/fileSystemTool.js +1 -1
  95. package/src/tools/fileTreeTool.js +1 -1
  96. package/src/tools/imageTool.js +1 -1
  97. package/src/tools/importAnalyzerTool.js +1 -1
  98. package/src/tools/jobDoneTool.js +1 -1
  99. package/src/tools/seekTool.js +1 -1
  100. package/src/tools/staticAnalysisTool.js +1 -1
  101. package/src/tools/taskManagerTool.js +1 -1
  102. package/src/tools/terminalTool.js +1 -1
  103. package/src/tools/webTool.js +1 -1
  104. package/src/types/agent.js +1 -1
  105. package/src/types/contextReference.js +1 -1
  106. package/src/types/conversation.js +1 -1
  107. package/src/types/toolCommand.js +1 -1
  108. package/src/utilities/attachmentValidator.js +1 -1
  109. package/src/utilities/configManager.js +1 -1
  110. package/src/utilities/constants.js +1 -1
  111. package/src/utilities/directoryAccessManager.js +1 -1
  112. package/src/utilities/fileProcessor.js +1 -1
  113. package/src/utilities/logger.js +1 -1
  114. package/src/utilities/tagParser.js +1 -1
  115. package/src/utilities/toolConstants.js +1 -1
  116. package/src/utilities/userDataDir.js +1 -1
@@ -1 +1 @@
1
- const a0_0x293c1d=a0_0x2075;(function(_0x1aae45,_0x11a431){const _0x1dffa2=a0_0x2075,_0x6e0991=_0x1aae45();while(!![]){try{const _0x4dfdab=-parseInt(_0x1dffa2(0x1e3))/0x1+parseInt(_0x1dffa2(0x222))/0x2*(-parseInt(_0x1dffa2(0x198))/0x3)+parseInt(_0x1dffa2(0x1c0))/0x4+parseInt(_0x1dffa2(0x1d6))/0x5*(-parseInt(_0x1dffa2(0x1c3))/0x6)+parseInt(_0x1dffa2(0x1da))/0x7+-parseInt(_0x1dffa2(0x201))/0x8+-parseInt(_0x1dffa2(0x1f9))/0x9*(-parseInt(_0x1dffa2(0x1b5))/0xa);if(_0x4dfdab===_0x11a431)break;else _0x6e0991['push'](_0x6e0991['shift']());}catch(_0x4cf504){_0x6e0991['push'](_0x6e0991['shift']());}}}(a0_0x311f,0xada31));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x2075(_0xf77a90,_0x628751){_0xf77a90=_0xf77a90-0x193;const _0x311fdf=a0_0x311f();let _0x2075a5=_0x311fdf[_0xf77a90];if(a0_0x2075['VxdMfI']===undefined){var _0x181edc=function(_0x2d5a87){const _0x2fe778='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2502dd='',_0x41822c='';for(let _0x512c48=0x0,_0x311eee,_0x20928c,_0x1e02c4=0x0;_0x20928c=_0x2d5a87['charAt'](_0x1e02c4++);~_0x20928c&&(_0x311eee=_0x512c48%0x4?_0x311eee*0x40+_0x20928c:_0x20928c,_0x512c48++%0x4)?_0x2502dd+=String['fromCharCode'](0xff&_0x311eee>>(-0x2*_0x512c48&0x6)):0x0){_0x20928c=_0x2fe778['indexOf'](_0x20928c);}for(let _0x54b86b=0x0,_0x47c13e=_0x2502dd['length'];_0x54b86b<_0x47c13e;_0x54b86b++){_0x41822c+='%'+('00'+_0x2502dd['charCodeAt'](_0x54b86b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x41822c);};a0_0x2075['yJDEeA']=_0x181edc,a0_0x2075['oBesbS']={},a0_0x2075['VxdMfI']=!![];}const _0x597b49=_0x311fdf[0x0],_0x3d0f75=_0xf77a90+_0x597b49,_0x3194b2=a0_0x2075['oBesbS'][_0x3d0f75];return!_0x3194b2?(_0x2075a5=a0_0x2075['yJDEeA'](_0x2075a5),a0_0x2075['oBesbS'][_0x3d0f75]=_0x2075a5):_0x2075a5=_0x3194b2,_0x2075a5;}class AIService{constructor(_0x2502dd,_0x41822c,_0x512c48,_0x311eee){const _0x326559=a0_0x2075;this[_0x326559(0x1a6)]=_0x2502dd,this['logger']=_0x41822c,this[_0x326559(0x208)]=_0x512c48,this[_0x326559(0x1cd)]=_0x311eee,this[_0x326559(0x1ab)]=_0x2502dd['backend']?.[_0x326559(0x1ab)]||'https://api.loxia.ai',this[_0x326559(0x213)]=_0x2502dd[_0x326559(0x20c)]?.[_0x326559(0x213)]||0xea60,this['retryAttempts']=_0x2502dd['backend']?.['retryAttempts']||0x3,this['rateLimiters']=new Map(),this[_0x326559(0x22b)]=new Map(),this[_0x326559(0x219)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x326559(0x1cf)]=new Map(),this[_0x326559(0x1ad)]=null,this[_0x326559(0x1cc)]=null;}async['sendMessage'](_0x20928c,_0x1e02c4,_0x54b86b={}){const _0x5e4036=a0_0x2075,_0x47c13e='req-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x5e4036(0x1e9)](_0x20928c);const _0x5bd70a=this[_0x5e4036(0x209)](_0x1e02c4,_0x20928c,_0x54b86b),_0x29c382={'model':_0x20928c,'messages':_0x5bd70a,'options':{'max_tokens':this['modelSpecs'][_0x20928c]?.['maxTokens']||0xfa0,'temperature':_0x54b86b['temperature']||0.7,'stream':_0x54b86b['stream']||![]},'metadata':{'requestId':_0x47c13e,'agentId':_0x54b86b['agentId'],'timestamp':new Date()[_0x5e4036(0x1e0)]()}};_0x54b86b['systemPrompt']&&(_0x29c382['system']=_0x54b86b['systemPrompt']);this['logger']['info']('Sending\x20message\x20to\x20model:\x20'+_0x20928c,{'requestId':_0x47c13e,'agentId':_0x54b86b[_0x5e4036(0x224)],'messageCount':Array[_0x5e4036(0x1e1)](_0x1e02c4)?_0x1e02c4[_0x5e4036(0x197)]:0x1,'maxTokens':_0x29c382[_0x5e4036(0x20a)]});const _0x4ed6fc=await this['_makeAPIRequest']('/chat/completions',_0x29c382,_0x47c13e,{..._0x54b86b,'sessionId':_0x54b86b['sessionId'],'platformProvided':_0x54b86b['platformProvided']||![]});return _0x4ed6fc['usage']&&await this['trackUsage'](_0x54b86b[_0x5e4036(0x224)],_0x20928c,{'prompt_tokens':_0x4ed6fc[_0x5e4036(0x20b)]['prompt_tokens']||0x0,'completion_tokens':_0x4ed6fc['usage']['completion_tokens']||0x0,'total_tokens':_0x4ed6fc[_0x5e4036(0x20b)][_0x5e4036(0x227)]||0x0}),this[_0x5e4036(0x1d7)](),{'content':_0x4ed6fc['choices'][0x0]?.['message']?.[_0x5e4036(0x1f2)]||'','model':_0x4ed6fc[_0x5e4036(0x1a1)],'tokenUsage':_0x4ed6fc['usage'],'requestId':_0x47c13e,'finishReason':_0x4ed6fc[_0x5e4036(0x1f1)][0x0]?.['finish_reason']};}catch(_0x7fd068){this['_recordFailure'](),this[_0x5e4036(0x1be)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x7fd068['message'],{'requestId':_0x47c13e,'model':_0x20928c,'agentId':_0x54b86b['agentId'],'error':_0x7fd068['stack']}),await this[_0x5e4036(0x203)](_0x7fd068,{'requestId':_0x47c13e,'model':_0x20928c,'agentId':_0x54b86b[_0x5e4036(0x224)]});throw _0x7fd068;}}async[a0_0x293c1d(0x1ba)](_0xeffb41,_0x18b861={}){const _0x45e662=a0_0x293c1d;try{const _0x1fd6e1=MODEL_ROUTING[_0xeffb41[_0x45e662(0x1a5)]()]||MODEL_ROUTING[_0x45e662(0x1a9)],_0x2cd8e1=[];for(const _0xeeeb76 of _0x1fd6e1){const _0x37a8df=await this['_checkModelHealth'](_0xeeeb76);_0x37a8df&&_0x2cd8e1[_0x45e662(0x1a4)](_0xeeeb76);}if(_0x2cd8e1['length']===0x0)return this[_0x45e662(0x1be)][_0x45e662(0x1fe)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0xeffb41+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x357561=_0x2cd8e1[0x0];if(_0x18b861['preferredModel']&&_0x2cd8e1[_0x45e662(0x1d1)](_0x18b861['preferredModel']))_0x357561=_0x18b861['preferredModel'];else{if(_0x18b861['complexity']===_0x45e662(0x220)&&_0x2cd8e1[_0x45e662(0x1d1)](MODELS['ANTHROPIC_OPUS']))_0x357561=MODELS['ANTHROPIC_OPUS'];else _0x18b861['speed']==='fast'&&_0x2cd8e1[_0x45e662(0x1d1)](MODELS['ANTHROPIC_HAIKU'])&&(_0x357561=MODELS[_0x45e662(0x1fb)]);}return this['logger']['info'](_0x45e662(0x1ed)+_0xeffb41,{'selectedModel':_0x357561,'availableModels':_0x2cd8e1['length'],'context':_0x18b861}),_0x357561;}catch(_0x486d4a){return this[_0x45e662(0x1be)]['error']('Model\x20routing\x20failed:\x20'+_0x486d4a[_0x45e662(0x1d8)],{'task':_0xeffb41,'context':_0x18b861}),MODEL_ROUTING[_0x45e662(0x1a9)][0x0];}}async['compactizeConversation'](_0x24ec1d,_0x56c1ef){const _0x531c8c=a0_0x293c1d,_0x33d514=this[_0x531c8c(0x232)][_0x56c1ef];if(!_0x33d514)throw new Error(_0x531c8c(0x218)+_0x56c1ef);const _0x580458=_0x33d514['contextWindow']*0.8;let _0x12cc37=0x0;const _0x105f99=[],_0x30a7b9=await Promise[_0x531c8c(0x223)](_0x24ec1d[_0x531c8c(0x19f)](async _0x5c4bba=>({..._0x5c4bba,'estimatedTokens':await this['_estimateTokens'](_0x5c4bba[_0x531c8c(0x1f2)],_0x56c1ef)}))),_0x4d7953=[..._0x30a7b9]['reverse']();for(const _0x285f9c of _0x4d7953){if(_0x12cc37+_0x285f9c['estimatedTokens']>_0x580458){if(_0x105f99['length']===0x0){const _0xe9bc6d=await this[_0x531c8c(0x19b)](_0x285f9c['content'],_0x580458);_0x105f99['unshift']({..._0x285f9c,'content':_0xe9bc6d,'estimatedTokens':_0x580458});}break;}_0x105f99[_0x531c8c(0x1b4)](_0x285f9c),_0x12cc37+=_0x285f9c[_0x531c8c(0x1e8)];}const _0xf60f16=_0x30a7b9[_0x531c8c(0x21b)](0x0,-_0x105f99['length']);if(_0xf60f16[_0x531c8c(0x197)]>0x0){const _0x596e9f=await this[_0x531c8c(0x225)](_0xf60f16,_0x56c1ef);_0x105f99['unshift']({'role':_0x531c8c(0x210),'content':_0x531c8c(0x1ea)+_0x596e9f,'timestamp':_0xf60f16[0x0]['timestamp'],'type':_0x531c8c(0x1df),'estimatedTokens':await this[_0x531c8c(0x20f)](_0x596e9f,_0x56c1ef)});}return this['logger'][_0x531c8c(0x19a)](_0x531c8c(0x1ae)+_0x56c1ef,{'originalMessages':_0x24ec1d['length'],'compactizedMessages':_0x105f99['length'],'estimatedTokens':_0x12cc37,'maxTokens':_0x580458}),_0x105f99;}async['trackUsage'](_0x490bfe,_0x150478,_0x1f75af,_0x3c5eff){const _0x44bd47=a0_0x293c1d;try{this[_0x44bd47(0x208)]&&this[_0x44bd47(0x208)]['trackUsage'](_0x490bfe,_0x150478,_0x1f75af);}catch(_0x18d5b9){this[_0x44bd47(0x1be)]['error'](_0x44bd47(0x205)+_0x18d5b9[_0x44bd47(0x1d8)]);}}async['handleHttpError'](_0x2b6da1,_0x5efb75){const _0x4202d1=a0_0x293c1d,_0x5cdc9b=this[_0x4202d1(0x1cd)]?.[_0x4202d1(0x1d9)]?.(_0x2b6da1,_0x5efb75);switch(_0x2b6da1[_0x4202d1(0x1e5)]||_0x2b6da1['code']){case HTTP_STATUS[_0x4202d1(0x1bf)]:this['logger'][_0x4202d1(0x211)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x5efb75,'error':_0x2b6da1['message']});throw new Error(_0x4202d1(0x1ff)+_0x2b6da1[_0x4202d1(0x1d8)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger']['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x5efb75});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x4202d1(0x1be)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x5efb75});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x4202d1(0x1a3)]:this['logger'][_0x4202d1(0x211)](_0x4202d1(0x1b8),{'context':_0x5efb75});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0x4202d1(0x1de)]:this['logger'][_0x4202d1(0x1fe)]('Rate\x20limit\x20exceeded',{'context':_0x5efb75}),await this['_handleRateLimit'](_0x5efb75);throw new Error(_0x4202d1(0x1eb));case HTTP_STATUS[_0x4202d1(0x1dd)]:case HTTP_STATUS[_0x4202d1(0x1b6)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x4202d1(0x1fc)]:this['logger'][_0x4202d1(0x211)](_0x4202d1(0x216),{'context':_0x5efb75,'status':_0x2b6da1[_0x4202d1(0x1e5)]}),await this[_0x4202d1(0x19e)](_0x5efb75);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x4202d1(0x1be)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x5efb75,'error':_0x2b6da1[_0x4202d1(0x1d8)]});throw new Error('AI\x20service\x20error:\x20'+_0x2b6da1[_0x4202d1(0x1d8)]);}}[a0_0x293c1d(0x1aa)](_0x556e73){const _0x183d15=a0_0x293c1d;this[_0x183d15(0x1ad)]=_0x556e73,this[_0x183d15(0x1be)]?.[_0x183d15(0x19a)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x556e73});}['setAgentPool'](_0xf6d851){const _0x2f541e=a0_0x293c1d;this[_0x2f541e(0x1cc)]=_0xf6d851,this[_0x2f541e(0x1be)]?.[_0x2f541e(0x19a)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0xf6d851});}async['generateImage'](_0x50847a,_0x43514c={}){const _0x582659=a0_0x293c1d,_0x54fdef=_0x582659(0x221)+Date['now']()+'-'+Math[_0x582659(0x22f)]()[_0x582659(0x1dc)](0x24)['substr'](0x2,0x9);try{if(this[_0x582659(0x1f0)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x50847a||typeof _0x50847a!=='string'||_0x50847a[_0x582659(0x21c)]()[_0x582659(0x197)]===0x0)throw new Error(_0x582659(0x1e6));const _0x46eeda=_0x43514c[_0x582659(0x1a1)]||_0x582659(0x22a),_0x3895a4=_0x43514c[_0x582659(0x193)]||_0x582659(0x1f8),_0x39a03c=_0x43514c[_0x582659(0x226)]||_0x582659(0x215),_0x32ea6f=_0x43514c['responseFormat']||_0x582659(0x1fd);this['logger'][_0x582659(0x19a)]('Generating\x20image\x20with\x20model:\x20'+_0x46eeda,{'requestId':_0x54fdef,'model':_0x46eeda,'size':_0x3895a4,'quality':_0x39a03c,'promptLength':_0x50847a[_0x582659(0x197)]});const _0x5a6fcd={'prompt':_0x50847a,'model':_0x46eeda,'size':_0x3895a4,'quality':_0x39a03c,'response_format':_0x32ea6f,'n':0x1,'metadata':{'requestId':_0x54fdef,'timestamp':new Date()['toISOString']()}},_0x40156a=await this[_0x582659(0x1ec)](_0x5a6fcd,_0x54fdef,{'sessionId':_0x43514c[_0x582659(0x1d4)],'platformProvided':_0x43514c['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0x40156a['data']?.[0x0]?.['url']||null,'b64_json':_0x40156a[_0x582659(0x1c1)]?.[0x0]?.['b64_json']||null,'model':_0x40156a['model']||_0x46eeda,'requestId':_0x54fdef,'revisedPrompt':_0x40156a[_0x582659(0x1c1)]?.[0x0]?.['revised_prompt']||_0x50847a};}catch(_0x3b951c){this[_0x582659(0x207)](),this['logger'][_0x582659(0x211)](_0x582659(0x21d)+_0x3b951c['message'],{'requestId':_0x54fdef,'model':_0x43514c['model'],'error':_0x3b951c['stack']});throw _0x3b951c;}}async[a0_0x293c1d(0x1b0)](){const _0x3e24ed=a0_0x293c1d;try{const _0x5487e4=await this['_makeAPIRequest']('/health',{},'health-check');return _0x5487e4['status']===_0x3e24ed(0x1ce);}catch(_0x586ddc){return![];}}async[a0_0x293c1d(0x1e2)](_0x488a3f,_0x396f48){const _0x44c2ad=a0_0x293c1d;try{if(!this['_isValidModel'](_0x396f48))throw new Error(_0x44c2ad(0x1c5)+_0x396f48);let _0x12ca08=this[_0x44c2ad(0x1cf)]['get'](_0x488a3f);!_0x12ca08&&(_0x12ca08=new ConversationManager(_0x488a3f,this['logger']),this[_0x44c2ad(0x1cf)][_0x44c2ad(0x1c9)](_0x488a3f,_0x12ca08));const _0x4d0f1e=await _0x12ca08['switchModel'](_0x396f48),_0x2c3015=await this[_0x44c2ad(0x1cc)]?.[_0x44c2ad(0x1db)](_0x488a3f);return _0x2c3015&&(_0x2c3015[_0x44c2ad(0x1b1)]=_0x396f48,await this[_0x44c2ad(0x1cc)]['persistAgentState'](_0x488a3f)),this[_0x44c2ad(0x1be)][_0x44c2ad(0x19a)](_0x44c2ad(0x1ee)+_0x488a3f,{'newModel':_0x396f48,'messageCount':_0x4d0f1e[_0x44c2ad(0x1ac)]['length']}),{'success':!![],'agentId':_0x488a3f,'newModel':_0x396f48,'conversation':_0x4d0f1e};}catch(_0x52293e){this['logger'][_0x44c2ad(0x211)](_0x44c2ad(0x1c2)+_0x52293e[_0x44c2ad(0x1d8)],{'agentId':_0x488a3f,'newModel':_0x396f48});throw _0x52293e;}}['_initializeModelSpecs'](){const _0x4a98d7=a0_0x293c1d,_0x1dad2c={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x4a98d7(0x229)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x4a98d7(0x1f7)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x4a98d7(0x1fb)]]:{'provider':MODEL_PROVIDERS[_0x4a98d7(0x229)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x4a98d7(0x200)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x4a98d7(0x206)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x4a98d7(0x1d3)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x4a98d7(0x1d3)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x4a98d7(0x21e)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x1dad2c;}[a0_0x293c1d(0x209)](_0x36a394,_0x429e5c,_0x4dcbdb){const _0x3d4998=a0_0x293c1d,_0x166d90=this['modelSpecs'][_0x429e5c]||{'provider':_0x3d4998(0x1f5)};let _0x338427;typeof _0x36a394==='string'?_0x338427=[{'role':'user','content':_0x36a394}]:_0x338427=_0x36a394[_0x3d4998(0x19f)](_0x393e47=>this[_0x3d4998(0x195)](_0x393e47,_0x429e5c));switch(_0x166d90['provider']){case MODEL_PROVIDERS[_0x3d4998(0x229)]:return this['_formatForAnthropic'](_0x338427);case MODEL_PROVIDERS['OPENAI']:return this['_formatForOpenAI'](_0x338427);case MODEL_PROVIDERS[_0x3d4998(0x1f5)]:return this[_0x3d4998(0x204)](_0x338427);default:return _0x338427;}}[a0_0x293c1d(0x195)](_0xe64631,_0x1327c7){const _0x34ec7c=a0_0x293c1d;return{'role':_0xe64631[_0x34ec7c(0x1a7)]||'user','content':_0xe64631[_0x34ec7c(0x1f2)],'timestamp':_0xe64631[_0x34ec7c(0x1b3)]};}[a0_0x293c1d(0x1c8)](_0x4d61e1){return _0x4d61e1['map'](_0x212be1=>{const _0x3f6f40=a0_0x2075;if(_0x212be1['role']===_0x3f6f40(0x210))return{'role':'user','content':_0x3f6f40(0x214)+_0x212be1[_0x3f6f40(0x1f2)]};return _0x212be1;});}[a0_0x293c1d(0x1cb)](_0x4e96b9){return _0x4e96b9;}['_formatForAzure'](_0x2b2b80){return _0x2b2b80['map'](_0xde8f18=>({..._0xde8f18,'content':typeof _0xde8f18['content']==='string'?_0xde8f18['content']:JSON['stringify'](_0xde8f18['content'])}));}['_isValidModel'](_0x5ad54b){const _0x2ceaa0=a0_0x293c1d;this['logger']['debug']('Validating\x20model',{'model':_0x5ad54b,'modelType':typeof _0x5ad54b});if(this['modelSpecs'][_0x5ad54b]!==undefined)return!![];return this[_0x2ceaa0(0x1be)][_0x2ceaa0(0x1fe)](_0x2ceaa0(0x1a2),{'model':_0x5ad54b,'availableModels':Object[_0x2ceaa0(0x1d2)](this['modelSpecs'])}),![];}async[a0_0x293c1d(0x22c)](_0x5a895c){return!![];}async['_estimateTokens'](_0x3f8380,_0x4ea9d2){return Math['ceil'](_0x3f8380['length']/0x4);}async[a0_0x293c1d(0x19b)](_0x40a4c5,_0x48a015){const _0x53b972=a0_0x293c1d,_0x21c3b7=_0x48a015*0x4;if(_0x40a4c5[_0x53b972(0x197)]<=_0x21c3b7)return _0x40a4c5;return _0x40a4c5[_0x53b972(0x233)](0x0,_0x21c3b7-0x14)+_0x53b972(0x217);}async['_summarizeMessages'](_0x15ffb7,_0x27198e){const _0x5baef5=a0_0x293c1d,_0x1ed07c=_0x15ffb7[_0x5baef5(0x19f)](_0x528307=>_0x528307[_0x5baef5(0x1a7)]+':\x20'+_0x528307[_0x5baef5(0x1f2)])['join']('\x0a'),_0x54048e=0x1f4;if(_0x1ed07c['length']<=_0x54048e)return _0x1ed07c;return _0x1ed07c[_0x5baef5(0x233)](0x0,_0x54048e)+_0x5baef5(0x1ca);}async[a0_0x293c1d(0x1d5)](_0x1c4813,_0x32a15e,_0xbb66fa,_0x2009e7={}){const _0x176b34=a0_0x293c1d,_0x53fd89='https://autopilot-api.azurewebsites.net/llm/chat';let _0x234110,_0x182c6f=null,_0x1f83e3=null;this['logger']?.[_0x176b34(0x19a)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x176b34(0x1ad)],'sessionId':_0x2009e7[_0x176b34(0x1d4)],'hasSessionId':!!_0x2009e7[_0x176b34(0x1d4)],'optionsKeys':Object[_0x176b34(0x1d2)](_0x2009e7),'model':_0x32a15e[_0x176b34(0x1a1)]});if(this['apiKeyManager']&&_0x2009e7[_0x176b34(0x1d4)]){const _0x5333fb=this['apiKeyManager'][_0x176b34(0x1c4)](_0x2009e7['sessionId'],{'platformProvided':_0x2009e7['platformProvided']||![],'vendor':this[_0x176b34(0x1a8)](_0x32a15e[_0x176b34(0x1a1)])});_0x182c6f=_0x5333fb[_0x176b34(0x19c)],_0x1f83e3=_0x5333fb[_0x176b34(0x1bd)],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x2009e7['sessionId'],'hasLoxiaKey':!!_0x182c6f,'hasVendorKey':!!_0x1f83e3,'vendor':this['_getVendorFromModel'](_0x32a15e[_0x176b34(0x1a1)])});}!_0x182c6f&&_0x2009e7['apiKey']&&(_0x182c6f=_0x2009e7[_0x176b34(0x20e)]);!_0x182c6f&&this['config']['apiKey']&&(_0x182c6f=this[_0x176b34(0x1a6)]['apiKey']);if(!_0x182c6f)throw new Error(_0x176b34(0x202));const _0x3978ff=_0x32a15e[_0x176b34(0x1a1)],_0x2593e5={'conversationId':_0xbb66fa,'message':_0x32a15e[_0x176b34(0x1ac)][_0x32a15e['messages']['length']-0x1]?.['content']||'','messages':_0x32a15e[_0x176b34(0x1ac)],'model':_0x3978ff,'requestId':_0xbb66fa,'options':_0x32a15e['options']||{},'platformProvided':_0x2009e7[_0x176b34(0x22d)]||![]};_0x32a15e[_0x176b34(0x210)]&&(_0x2593e5['systemPrompt']=_0x32a15e[_0x176b34(0x210)]);_0x2009e7['platformProvided']?_0x2593e5['apiKey']=_0x182c6f:(_0x1f83e3&&(_0x2593e5[_0x176b34(0x1bd)]=_0x1f83e3),_0x2009e7[_0x176b34(0x1fa)]&&(_0x2593e5[_0x176b34(0x1fa)]=_0x2009e7[_0x176b34(0x1fa)]),_0x2593e5['apiKey']=_0x182c6f);for(let _0x4c2e1e=0x1;_0x4c2e1e<=this['retryAttempts'];_0x4c2e1e++){try{this[_0x176b34(0x1be)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x53fd89,'model':_0x32a15e['model'],'requestId':_0xbb66fa,'attempt':_0x4c2e1e,'hasApiKey':!!_0x182c6f});const _0x4669bc=await fetch(_0x53fd89,{'method':_0x176b34(0x1e4),'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x182c6f,'X-Request-ID':_0xbb66fa},'body':JSON['stringify'](_0x2593e5),'timeout':this[_0x176b34(0x213)]});if(!_0x4669bc['ok']){const _0x556508=await _0x4669bc['text'](),_0x35485a=new Error('HTTP\x20'+_0x4669bc[_0x176b34(0x1e5)]+':\x20'+_0x4669bc['statusText']+(_0x556508?_0x176b34(0x1f3)+_0x556508:''));_0x35485a['status']=_0x4669bc['status'];throw _0x35485a;}const _0x5d2f24=await _0x4669bc[_0x176b34(0x228)]();return{'choices':[{'message':{'content':_0x5d2f24['content']||'','role':'assistant'},'finish_reason':_0x5d2f24[_0x176b34(0x20d)]||_0x176b34(0x231)}],'usage':_0x5d2f24['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x5d2f24['model']||_0x32a15e[_0x176b34(0x1a1)],'id':_0x5d2f24[_0x176b34(0x1f6)]||_0xbb66fa};}catch(_0x307130){_0x234110=_0x307130,this['logger']['warn'](_0x176b34(0x234),{'attempt':_0x4c2e1e,'requestId':_0xbb66fa,'error':_0x307130[_0x176b34(0x1d8)],'status':_0x307130[_0x176b34(0x1e5)]});if(_0x4c2e1e<this['retryAttempts']){const _0x2712d3=Math[_0x176b34(0x1c7)](0x2,_0x4c2e1e)*0x3e8;this[_0x176b34(0x1be)]['warn']('Retrying\x20in\x20'+_0x2712d3+'ms',{'attempt':_0x4c2e1e,'requestId':_0xbb66fa}),await new Promise(_0x3411a9=>setTimeout(_0x3411a9,_0x2712d3));}}}this[_0x176b34(0x1be)]['error'](_0x176b34(0x196),{'requestId':_0xbb66fa,'error':_0x234110[_0x176b34(0x1d8)]});const _0x1faedb=_0x234110[_0x176b34(0x1d8)]&&_0x234110['message']['includes'](_0x176b34(0x1a0));if(_0x1faedb)throw new Error('API\x20Configuration\x20Error:\x20'+_0x234110[_0x176b34(0x1d8)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x234110[_0x176b34(0x1d8)],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x32a15e[_0x176b34(0x1a1)],'id':_0x176b34(0x21a)+_0xbb66fa,'error':_0x234110[_0x176b34(0x1d8)]};}async['_makeImageAPIRequest'](_0x10d41f,_0x10f34b,_0x5b641d={}){const _0xde6409=a0_0x293c1d,_0x2b7afb='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x137905,_0x4588e0=null,_0x41d17e=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0xde6409(0x1ad)],'sessionId':_0x5b641d['sessionId'],'hasSessionId':!!_0x5b641d['sessionId'],'model':_0x10d41f[_0xde6409(0x1a1)]});if(this[_0xde6409(0x1ad)]&&_0x5b641d['sessionId']){const _0x50e0ba=this[_0xde6409(0x1ad)][_0xde6409(0x1c4)](_0x5b641d['sessionId'],{'platformProvided':_0x5b641d[_0xde6409(0x22d)]||![],'vendor':this[_0xde6409(0x1a8)](_0x10d41f['model'])});_0x4588e0=_0x50e0ba[_0xde6409(0x19c)],_0x41d17e=_0x50e0ba['vendorApiKey'],this[_0xde6409(0x1be)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x5b641d['sessionId'],'hasLoxiaKey':!!_0x4588e0,'hasVendorKey':!!_0x41d17e});}!_0x4588e0&&_0x5b641d[_0xde6409(0x20e)]&&(_0x4588e0=_0x5b641d['apiKey']);!_0x4588e0&&this[_0xde6409(0x1a6)][_0xde6409(0x20e)]&&(_0x4588e0=this['config'][_0xde6409(0x20e)]);if(!_0x4588e0)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x487fd7={'prompt':_0x10d41f['prompt'],'model':_0x10d41f[_0xde6409(0x1a1)]||_0xde6409(0x1f4),'size':_0x10d41f[_0xde6409(0x193)],'quality':_0x10d41f['quality'],'style':_0x10d41f[_0xde6409(0x1b7)]||_0xde6409(0x1d0),'n':_0x10d41f['n']||0x1,'requestId':_0x10f34b};for(let _0x545ea0=0x1;_0x545ea0<=this[_0xde6409(0x1bb)];_0x545ea0++){try{this[_0xde6409(0x1be)][_0xde6409(0x19a)](_0xde6409(0x1b9),{'url':_0x2b7afb,'model':_0x10d41f[_0xde6409(0x1a1)],'requestId':_0x10f34b,'attempt':_0x545ea0,'hasApiKey':!!_0x4588e0});const _0x1e70e5=await fetch(_0x2b7afb,{'method':_0xde6409(0x1e4),'headers':{'Content-Type':_0xde6409(0x22e),'Authorization':'Bearer\x20'+_0x4588e0,'X-Request-ID':_0x10f34b},'body':JSON[_0xde6409(0x21f)](_0x487fd7),'timeout':this[_0xde6409(0x213)]*0x2});if(!_0x1e70e5['ok']){const _0x16225f=await _0x1e70e5['text'](),_0x467c28=new Error('HTTP\x20'+_0x1e70e5['status']+':\x20'+_0x1e70e5[_0xde6409(0x19d)]+(_0x16225f?'\x20-\x20'+_0x16225f:''));_0x467c28['status']=_0x1e70e5[_0xde6409(0x1e5)];throw _0x467c28;}const _0x1be291=await _0x1e70e5[_0xde6409(0x228)]();return{'data':_0x1be291['images']||[],'model':_0x1be291[_0xde6409(0x1a1)]||_0x10d41f['model'],'created':_0x1be291['created']||Date['now'](),'usage':_0x1be291['usage']};}catch(_0x3838ae){_0x137905=_0x3838ae,this['logger'][_0xde6409(0x1fe)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x545ea0,'requestId':_0x10f34b,'error':_0x3838ae[_0xde6409(0x1d8)],'status':_0x3838ae['status']});if(_0x545ea0<this['retryAttempts']){const _0x12f689=Math[_0xde6409(0x1c7)](0x2,_0x545ea0)*0x3e8;this['logger'][_0xde6409(0x1fe)]('Retrying\x20in\x20'+_0x12f689+'ms',{'attempt':_0x545ea0,'requestId':_0x10f34b}),await new Promise(_0x51f6c5=>setTimeout(_0x51f6c5,_0x12f689));}}}this['logger'][_0xde6409(0x211)](_0xde6409(0x1bc),{'requestId':_0x10f34b,'error':_0x137905['message']});throw new Error(_0xde6409(0x21d)+_0x137905[_0xde6409(0x1d8)]);}async['_checkRateLimit'](_0x11a006){await new Promise(_0x2b2cf8=>setTimeout(_0x2b2cf8,0x64));}async[a0_0x293c1d(0x212)](_0x2a680b){const _0x1e8b62=a0_0x293c1d,_0x1b58d4=0xea60;this[_0x1e8b62(0x1be)][_0x1e8b62(0x19a)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x1b58d4+'ms',_0x2a680b),await new Promise(_0x42aad9=>setTimeout(_0x42aad9,_0x1b58d4));}async['_handleServiceUnavailable'](_0x5ebaa5){const _0x4b78b0=a0_0x293c1d;this['_recordFailure']();const _0x4ff1d6=0x7530;this[_0x4b78b0(0x1be)][_0x4b78b0(0x19a)]('Service\x20unavailable,\x20waiting\x20'+_0x4ff1d6+'ms',_0x5ebaa5),await new Promise(_0x8f7e04=>setTimeout(_0x8f7e04,_0x4ff1d6));}[a0_0x293c1d(0x1f0)](){const _0x41c91c=a0_0x293c1d;if(!this['circuitBreaker'][_0x41c91c(0x199)])return![];const _0x1b187c=Date[_0x41c91c(0x1c6)]()-this['circuitBreaker']['lastFailureTime'];if(_0x1b187c>this['circuitBreaker'][_0x41c91c(0x213)])return this[_0x41c91c(0x219)][_0x41c91c(0x199)]=![],this['circuitBreaker'][_0x41c91c(0x1b2)]=0x0,![];return!![];}['_recordFailure'](){const _0x58d373=a0_0x293c1d;this['circuitBreaker'][_0x58d373(0x1b2)]++,this[_0x58d373(0x219)]['lastFailureTime']=Date['now'](),this['circuitBreaker']['failures']>=this[_0x58d373(0x219)][_0x58d373(0x194)]&&(this[_0x58d373(0x219)][_0x58d373(0x199)]=!![],this['logger']['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x293c1d(0x1d7)](){const _0x240c4b=a0_0x293c1d;this['circuitBreaker'][_0x240c4b(0x1b2)]>0x0&&(this['circuitBreaker']['failures']=0x0,this['circuitBreaker'][_0x240c4b(0x199)]=![],this[_0x240c4b(0x1be)]['info'](_0x240c4b(0x1af)));}['_getVendorFromModel'](_0x272d1e){const _0x5c0dc0=a0_0x293c1d;if(!_0x272d1e)return null;const _0x49d717=_0x272d1e[_0x5c0dc0(0x1ef)]();if(_0x49d717['includes'](_0x5c0dc0(0x230))||_0x49d717[_0x5c0dc0(0x1d1)]('claude'))return _0x5c0dc0(0x230);else{if(_0x49d717['includes'](_0x5c0dc0(0x1e7))||_0x49d717[_0x5c0dc0(0x1d1)]('gpt'))return _0x5c0dc0(0x1e7);else{if(_0x49d717[_0x5c0dc0(0x1d1)]('deepseek'))return'deepseek';else{if(_0x49d717[_0x5c0dc0(0x1d1)]('phi'))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x2423c7,_0x3bfbf2){this['agentId']=_0x2423c7,this['logger']=_0x3bfbf2,this['conversations']=new Map();}async['switchModel'](_0x26997f){return{'messages':[],'model':_0x26997f,'lastUpdated':new Date()['toISOString']()};}}function a0_0x311f(){const _0x15f95b=['x2nOzwnRtw9KzwXizwfSDgG','CgXHDgzVCM1qCM92AwrLza','yxbWBgLJyxrPB24VANnVBG','CMfUzg9T','yw50AhjVCgLJ','C3rVCa','Bw9KzwXtCgvJCW','C3vIC3rYAw5N','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C2L6zq','DgHYzxnOB2XK','x2zVCM1HDfnPBMDSzu1LC3nHz2u','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','BgvUz3rO','m3Hgv0vAwG','AxnpCgvU','Aw5MBW','x3rYDw5JyxrLtwvZC2fNzq','Bg94AwfbCgLlzxK','C3rHDhvZvgv4Da','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','BwfW','tM8GqvbjigTLEsbJB25MAwD1CMvK','Bw9KzwW','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','tK9ux0zpvu5e','ChvZAa','Dg9vChbLCKnHC2u','y29UzMLN','CM9Szq','x2DLDfzLBMrVCKzYB21nB2rLBa','rKfmtejbq0S','C2v0qxbPs2v5twfUywDLCG','yMfZzvvYBa','BwvZC2fNzxm','yxbPs2v5twfUywDLCG','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','y2HLy2Ttzxj2AwnLsgvHBhrO','y3vYCMvUDe1VzgvS','zMfPBhvYzxm','DgLTzxn0yw1W','Dw5ZAgLMDa','mZb5svvVsMK','qKfex0DbvevxqvK','C3r5Bgu','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','CM91DgvnB2rLBa','CMv0CNLbDhrLBxb0CW','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','DMvUzg9YqxbPs2v5','Bg9Nz2vY','qKfex1jfuvvfu1q','mJe2mtCYtfjnvwTX','zgf0yq','tw9KzwWGC3DPDgnOigzHAwXLzdOG','mJeZntiYCMDOEKLd','z2v0s2v5C0zVCLjLCxvLC3q','sw52ywXPzcbTB2rLBdOG','BM93','Cg93','x2zVCM1HDezVCKfUDgHYB3bPyW','C2v0','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','x2zVCM1HDezVCK9Wzw5bsq','ywDLBNrqB29S','zxjYB3jiyw5KBgvY','AgvHBhrOEq','y29UDMvYC2f0Aw9UtwfUywDLCNm','DML2Awq','Aw5JBhvKzxm','A2v5CW','t1bftKfj','C2vZC2LVBKLK','x21HA2vbueLszxf1zxn0','ntbvAxjzsMG','x3jLC2v0q2LYy3vPDejYzwfRzxi','BwvZC2fNzq','y2XHC3nPzNLfCNjVCG','ode5ndq3m0vkANnlrG','z2v0qwDLBNq','Dg9tDhjPBMC','su5urvjoquXFu0vsvKvsx0vsuK9s','ve9px01btLLFuKvrvuvtvfm','C3vTBwfYEq','Dg9ju09tDhjPBMC','AxnbCNjHEq','C3DPDgnOqwDLBNrnB2rLBa','nJa1odC2tM51zvzq','ue9tva','C3rHDhvZ','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','B3bLBMfP','zxn0Aw1HDgvKvg9Rzw5Z','x2nOzwnRuMf0zuXPBwL0','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','x21HA2vjBwfNzufqsvjLCxvLC3q','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','Dg9mB3DLCKnHC2u','x2LZq2LYy3vPDejYzwfRzxjpCgvU','y2HVAwnLCW','y29UDgvUDa','ic0G','yxP1CMuTB3bLBMfPlwrHBgXLmW','qvPvuKu','CMvXDwvZDeLK','qu5usfjpueLdx09qvvm','mtaYnhGXmdi0','mtC2ote4nfvYDerwDq','y3vZDg9TqxbPs2v5CW','qu5usfjpueLdx0HbsuTv','r0furvDbwv9usu1ft1vu','DxjS','D2fYBG','sw52ywXPzcbYzxf1zxn0oIa','r1buxZq','odqZodqWC0vVqM54','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','AgfUzgXLshr0CevYCM9Y','x2zVCM1HDezVCKf6DxjL','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','r1buxZrFtuLosq','x3jLy29YzezHAwX1CMu','yNvKz2v0u2vYDMLJzq','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','Bwf4x3rVA2vUCW','DxnHz2u','yMfJA2vUza','zMLUAxnOuMvHC29U','yxbPs2v5','x2vZDgLTyxrLvg9Rzw5Z','C3LZDgvT','zxjYB3i','x2HHBMrSzvjHDgvmAw1PDa','DgLTzw91Da','u3LZDgvToIa','C3rHBMrHCMq','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','vw5RBM93BIbTB2rLBdOG','y2LYy3vPDejYzwfRzxi','zxjYB3iT','C2XPy2u','DhjPBq','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','ueHjxZq','C3rYAw5NAwz5','AgLNAa','Aw1Nlq','nZe5mZrfyM9kEve','ywXS','ywDLBNrjza','x3n1Bw1HCML6zu1LC3nHz2vZ','CxvHBgL0Eq','Dg90ywXFDg9Rzw5Z','ANnVBG','qu5usfjpueLd','zMX1Ec0XlJeTChjV','CMvXDwvZDff1zxvL'];a0_0x311f=function(){return _0x15f95b;};return a0_0x311f();}export default AIService;
1
+ const a0_0x3e0030=a0_0x170f;(function(_0xbe0eaa,_0xb89231){const _0x4c1cb9=a0_0x170f,_0x401417=_0xbe0eaa();while(!![]){try{const _0x204c00=-parseInt(_0x4c1cb9(0x215))/0x1*(-parseInt(_0x4c1cb9(0x1c1))/0x2)+parseInt(_0x4c1cb9(0x1df))/0x3*(parseInt(_0x4c1cb9(0x1b0))/0x4)+parseInt(_0x4c1cb9(0x1c9))/0x5+-parseInt(_0x4c1cb9(0x1f9))/0x6+-parseInt(_0x4c1cb9(0x1bc))/0x7+parseInt(_0x4c1cb9(0x222))/0x8+parseInt(_0x4c1cb9(0x1dc))/0x9*(parseInt(_0x4c1cb9(0x257))/0xa);if(_0x204c00===_0xb89231)break;else _0x401417['push'](_0x401417['shift']());}catch(_0x385225){_0x401417['push'](_0x401417['shift']());}}}(a0_0x5f3f,0xd82aa));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x170f(_0xac9fa0,_0x4f2c90){_0xac9fa0=_0xac9fa0-0x1aa;const _0x5f3f94=a0_0x5f3f();let _0x170fb2=_0x5f3f94[_0xac9fa0];if(a0_0x170f['KeDQhl']===undefined){var _0x57e062=function(_0x3ecd70){const _0x5d25e0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23d0e6='',_0x472369='';for(let _0x3bccf6=0x0,_0x1d963e,_0x330893,_0x2acc76=0x0;_0x330893=_0x3ecd70['charAt'](_0x2acc76++);~_0x330893&&(_0x1d963e=_0x3bccf6%0x4?_0x1d963e*0x40+_0x330893:_0x330893,_0x3bccf6++%0x4)?_0x23d0e6+=String['fromCharCode'](0xff&_0x1d963e>>(-0x2*_0x3bccf6&0x6)):0x0){_0x330893=_0x5d25e0['indexOf'](_0x330893);}for(let _0x389ade=0x0,_0x3ccafb=_0x23d0e6['length'];_0x389ade<_0x3ccafb;_0x389ade++){_0x472369+='%'+('00'+_0x23d0e6['charCodeAt'](_0x389ade)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x472369);};a0_0x170f['ObrxSV']=_0x57e062,a0_0x170f['qqXbkA']={},a0_0x170f['KeDQhl']=!![];}const _0x3e00af=_0x5f3f94[0x0],_0x340a51=_0xac9fa0+_0x3e00af,_0x2a3485=a0_0x170f['qqXbkA'][_0x340a51];return!_0x2a3485?(_0x170fb2=a0_0x170f['ObrxSV'](_0x170fb2),a0_0x170f['qqXbkA'][_0x340a51]=_0x170fb2):_0x170fb2=_0x2a3485,_0x170fb2;}function a0_0x5f3f(){const _0x6141a5=['mJr2vuvcyu0','CgXHDgzVCM1qCM92AwrLza','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','BwvZC2fNzxm','z2vUzxjHDgvjBwfNzq','DxnLCG','yxbPs2v5twfUywDLCG','D2fYBG','DML2Awq','y2vPBa','AxnpCgvU','ue9tva','ic0G','x2nOzwnRuMf0zuXPBwL0','ChjLzMvYCMvKtw9KzwW','x3jLy29YzezHAwX1CMu','C3bLzwq','y29UDMvYC2f0Aw9UCW','x2HHBMrSzvjHDgvmAw1PDa','Dgv4Da','ChjVBxb0','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','CMvXDwvZDff1zxvL','x2zVCM1HDezVCK9Wzw5bsq','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','x3jLC2v0q2LYy3vPDejYzwfRzxi','ntuWnJi2mfvPyuzgDa','zgvLChnLzwS','uMf0zsbSAw1PDcbLEgnLzwrLza','Aw5JBhvKzxm','Dw5ZAgLMDa','sw52ywXPzcbYzxf1zxn0oIa','y3vZDg9TqxbPs2v5CW','r1buxZrFtuLosq','qMvHCMvYia','uMv0CNLPBMCGAw4G','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','x2DLDfzLBMrVCKzYB21nB2rLBa','DMvUzg9YqxbPs2v5','ywDLBNrjza','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','C3rYAw5N','CMfUzg9T','zMX1Ec0XlJeTChjV','C2vUze1LC3nHz2u','C3rHDhvZ','CMf0zuXPBwL0zxjZ','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','u0vsvKLdrv9vtKfwquLmqujmrq','ChvZAa','y29UDgv4DfDPBMrVDW','DxjS','BwvZC2fNzq','mtLyAMreqvi','CMv2zxjZzq','zMfPBhvYzxm','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','quKGC2vYDMLJzsbLCNjVCJOG','z2v0s2v5C0zVCLjLCxvLC3q','z3b0','AgfUzgXLshr0CevYCM9Y','x2zVCM1HDezVCKfUDgHYB3bPyW','Aw5MBW','qKfex0DbvevxqvK','tw9KzwWGC3DPDgnOigzHAwXLzdOG','ANnVBG','ntq4nJqYnef6EKf6rG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','Bwf4x3rVA2vUCW','CgvYC2LZDefNzw50u3rHDgu','C3LZDgvT','tK9ux0zpvu5e','CMvZCg9UC2vgB3jTyxq','y29TCgXLEgL0Eq','Dg9tDhjPBMC','CMvXlq','DgLTzw91Da','y2LYy3vPDejYzwfRzxi','CM9Szq','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','CMvXDwvZDeLK','t1bftKfj','Aw1Hz2vZ','C3vIC3rYAw5N','BwfW','ywXS','A2v5CW','qu5usfjpueLdx0HbsuTv','C2XPy2u','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','C3DPDgnOtw9KzwW','C3rHBMrHCMq','CxvHBgL0Eq','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','DhjHy2TvC2fNzq','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','z2v0','B3b0Aw9UCW','y29UDMvYC2f0Aw9UtwfUywDLCNm','y29UzMLN','Bg9Nz2vY','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','rKfmtejbq0S','C2v0qwDLBNrqB29S','C3LZDgvTuhjVBxb0','zMLUAxnOuMvHC29U','qvPvuKu','x2nOzwnRtw9KzwXizwfSDgG','zxn0Aw1HDgvKvg9Rzw5Z','zgf0yq','x2LZvMfSAwrnB2rLBa','x3rYDw5JyxrLtwvZC2fNzq','ChjVDMLKzxi','vu5bvvrit1jjwKve','x2LZq2LYy3vPDejYzwfRzxjpCgvU','ywDLBNrqB29S','mtuWBKLnBxHW','BM93','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','yJy0x2PZB24','mtaYnhGXmdi0','x2zVCM1HDfnPBMDSzu1LC3nHz2u','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','CMv0CNLbDhrLBxb0CW','nJe0nJmYrg5tyKv1','yMfJA2vUza','y29UDgvUDa','CMv2AxnLzf9WCM9TChq','Dg9ju09tDhjPBMC','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','yNvKz2v0u2vYDMLJzq','yxbPs2v5','yxnZAxn0yw50','AgLNAa','Bw9KzwW','y2XHC3nPzNLfCNjVCG','ote4ndCYmvvKCKHJrW','y29Kzq','vw5RBM93BIbTB2rLBdOG','C3rYAw5NAwz5','x2vZDgLTyxrLvg9Rzw5Z','mtaWmtr4s2vPquq','Dg9vChbLCKnHC2u','C3rVCa','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','C3rHDhvZvgv4Da','BgvUz3rO','qu5usfjpueLd','z2v0qwDLBNq','oti0ndmWr0r3suLS','y2HVAwnLCW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','DhjPBq','Dg90ywXFDg9Rzw5Z','ueHjxZq','DgHYzxnOB2XK','zxjYB3i','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','C2vZC2LVBKLK','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','yMfZzvvYBa','C3rHy2S','DxnHz2u','r1buxZq','Bw9KzwXtCgvJCW','C3r5Bgu','zxjYB3jiyw5KBgvY','sfruuca','ntuYmdG3sfvkzM5Y','CgHP','x21HA2vjBwfNzufqsvjLCxvLC3q'];a0_0x5f3f=function(){return _0x6141a5;};return a0_0x5f3f();}class AIService{constructor(_0x23d0e6,_0x472369,_0x3bccf6,_0x1d963e){const _0x977c62=a0_0x170f;this[_0x977c62(0x245)]=_0x23d0e6,this['logger']=_0x472369,this[_0x977c62(0x1b6)]=_0x3bccf6,this[_0x977c62(0x1da)]=_0x1d963e,this[_0x977c62(0x1d4)]=_0x23d0e6[_0x977c62(0x1b1)]?.[_0x977c62(0x1d4)]||'https://api.loxia.ai',this['timeout']=_0x23d0e6['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x23d0e6['backend']?.[_0x977c62(0x1af)]||0x3,this[_0x977c62(0x20d)]=new Map(),this[_0x977c62(0x1f5)]=new Map(),this[_0x977c62(0x22e)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x977c62(0x20e)](),this[_0x977c62(0x244)]=new Map(),this[_0x977c62(0x1e5)]=null,this[_0x977c62(0x256)]=null;}async[a0_0x3e0030(0x20b)](_0x330893,_0x2acc76,_0x389ade={}){const _0x3b3687=a0_0x3e0030,_0x3ccafb=_0x3b3687(0x22c)+Date['now']()+'-'+Math[_0x3b3687(0x209)]()[_0x3b3687(0x22b)](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x330893);const _0x1fcd7a=this[_0x3b3687(0x241)](_0x2acc76,_0x330893,_0x389ade),_0x198f66={'model':_0x330893,'messages':_0x1fcd7a,'options':{'max_tokens':this['modelSpecs'][_0x330893]?.['maxTokens']||0xfa0,'temperature':_0x389ade['temperature']||0.7,'stream':_0x389ade['stream']||![]},'metadata':{'requestId':_0x3ccafb,'agentId':_0x389ade['agentId'],'timestamp':new Date()[_0x3b3687(0x1b4)]()}};_0x389ade[_0x3b3687(0x24b)]&&(_0x198f66[_0x3b3687(0x227)]=_0x389ade['systemPrompt']);this[_0x3b3687(0x246)][_0x3b3687(0x21e)]('Sending\x20message\x20to\x20model:\x20'+_0x330893,{'requestId':_0x3ccafb,'agentId':_0x389ade[_0x3b3687(0x206)],'messageCount':Array['isArray'](_0x2acc76)?_0x2acc76['length']:0x1,'maxTokens':_0x198f66[_0x3b3687(0x225)]});const _0x217122=await this['_makeAPIRequest']('/chat/completions',_0x198f66,_0x3ccafb,{..._0x389ade,'sessionId':_0x389ade['sessionId'],'platformProvided':_0x389ade['platformProvided']||![]});return _0x217122['usage']&&await this['trackUsage'](_0x389ade['agentId'],_0x330893,{'prompt_tokens':_0x217122[_0x3b3687(0x1d6)]['prompt_tokens']||0x0,'completion_tokens':_0x217122['usage']['completion_tokens']||0x0,'total_tokens':_0x217122['usage'][_0x3b3687(0x1cd)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x217122['choices'][0x0]?.['message']?.['content']||'','model':_0x217122['model'],'tokenUsage':_0x217122[_0x3b3687(0x1d6)],'requestId':_0x3ccafb,'finishReason':_0x217122[_0x3b3687(0x1ca)][0x0]?.['finish_reason']};}catch(_0x23b105){this[_0x3b3687(0x1ee)](),this['logger'][_0x3b3687(0x1d0)](_0x3b3687(0x23f)+_0x23b105[_0x3b3687(0x214)],{'requestId':_0x3ccafb,'model':_0x330893,'agentId':_0x389ade[_0x3b3687(0x206)],'error':_0x23b105[_0x3b3687(0x1d5)]}),await this['handleHttpError'](_0x23b105,{'requestId':_0x3ccafb,'model':_0x330893,'agentId':_0x389ade['agentId']});throw _0x23b105;}}async['routeModel'](_0x2dd936,_0x4871a7={}){const _0xa46688=a0_0x3e0030;try{const _0x2a11e1=MODEL_ROUTING[_0x2dd936[_0xa46688(0x1c2)]()]||MODEL_ROUTING[_0xa46688(0x249)],_0x2dc14b=[];for(const _0x1d3ec6 of _0x2a11e1){const _0x4fdfe7=await this['_checkModelHealth'](_0x1d3ec6);_0x4fdfe7&&_0x2dc14b[_0xa46688(0x211)](_0x1d3ec6);}if(_0x2dc14b[_0xa46688(0x1c6)]===0x0)return this['logger']['warn'](_0xa46688(0x230)+_0x2dd936+',\x20using\x20fallback'),MODEL_ROUTING[_0xa46688(0x249)][0x0];let _0x11a2ef=_0x2dc14b[0x0];if(_0x4871a7[_0xa46688(0x1ed)]&&_0x2dc14b['includes'](_0x4871a7['preferredModel']))_0x11a2ef=_0x4871a7['preferredModel'];else{if(_0x4871a7[_0xa46688(0x22a)]===_0xa46688(0x1b9)&&_0x2dc14b[_0xa46688(0x1fc)](MODELS['ANTHROPIC_OPUS']))_0x11a2ef=MODELS['ANTHROPIC_OPUS'];else _0x4871a7[_0xa46688(0x1ef)]==='fast'&&_0x2dc14b['includes'](MODELS[_0xa46688(0x239)])&&(_0x11a2ef=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info'](_0xa46688(0x1cb)+_0x2dd936,{'selectedModel':_0x11a2ef,'availableModels':_0x2dc14b[_0xa46688(0x1c6)],'context':_0x4871a7}),_0x11a2ef;}catch(_0xb3af99){return this['logger']['error'](_0xa46688(0x218)+_0xb3af99[_0xa46688(0x214)],{'task':_0x2dd936,'context':_0x4871a7}),MODEL_ROUTING[_0xa46688(0x249)][0x0];}}async['compactizeConversation'](_0x5a0f6a,_0x2f4466){const _0x1d83ed=a0_0x3e0030,_0x15c016=this[_0x1d83ed(0x1d8)][_0x2f4466];if(!_0x15c016)throw new Error(_0x1d83ed(0x1be)+_0x2f4466);const _0x2183ac=_0x15c016[_0x1d83ed(0x212)]*0.8;let _0x3b2aa5=0x0;const _0x4de653=[],_0x14bde9=await Promise[_0x1d83ed(0x237)](_0x5a0f6a[_0x1d83ed(0x236)](async _0x2bbe9d=>({..._0x2bbe9d,'estimatedTokens':await this[_0x1d83ed(0x1c0)](_0x2bbe9d[_0x1d83ed(0x1b2)],_0x2f4466)}))),_0x28e4ad=[..._0x14bde9][_0x1d83ed(0x216)]();for(const _0x2590ae of _0x28e4ad){if(_0x3b2aa5+_0x2590ae['estimatedTokens']>_0x2183ac){if(_0x4de653['length']===0x0){const _0x2bc1f7=await this[_0x1d83ed(0x252)](_0x2590ae['content'],_0x2183ac);_0x4de653[_0x1d83ed(0x1fd)]({..._0x2590ae,'content':_0x2bc1f7,'estimatedTokens':_0x2183ac});}break;}_0x4de653['unshift'](_0x2590ae),_0x3b2aa5+=_0x2590ae[_0x1d83ed(0x24f)];}const _0x485c99=_0x14bde9[_0x1d83ed(0x23a)](0x0,-_0x4de653[_0x1d83ed(0x1c6)]);if(_0x485c99[_0x1d83ed(0x1c6)]>0x0){const _0x235a2e=await this['_summarizeMessages'](_0x485c99,_0x2f4466);_0x4de653['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x235a2e,'timestamp':_0x485c99[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x1d83ed(0x1c0)](_0x235a2e,_0x2f4466)});}return this['logger']['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x2f4466,{'originalMessages':_0x5a0f6a['length'],'compactizedMessages':_0x4de653['length'],'estimatedTokens':_0x3b2aa5,'maxTokens':_0x2183ac}),_0x4de653;}async[a0_0x3e0030(0x240)](_0x33bce2,_0x14196f,_0x1e75d7,_0x5067f6){const _0x4d0c89=a0_0x3e0030;try{this[_0x4d0c89(0x1b6)]&&this[_0x4d0c89(0x1b6)][_0x4d0c89(0x240)](_0x33bce2,_0x14196f,_0x1e75d7);}catch(_0x39183d){this['logger']['error'](_0x4d0c89(0x248)+_0x39183d['message']);}}async[a0_0x3e0030(0x21c)](_0x1b7a87,_0x4f4709){const _0x433a48=a0_0x3e0030,_0x4150a1=this[_0x433a48(0x1da)]?.[_0x433a48(0x1bb)]?.(_0x1b7a87,_0x4f4709);switch(_0x1b7a87[_0x433a48(0x20c)]||_0x1b7a87[_0x433a48(0x1bd)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x433a48(0x1d0)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x4f4709,'error':_0x1b7a87['message']});throw new Error(_0x433a48(0x1fe)+_0x1b7a87['message']);case HTTP_STATUS[_0x433a48(0x254)]:this[_0x433a48(0x246)]['error'](_0x433a48(0x1d1),{'context':_0x4f4709});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x433a48(0x246)]['error'](_0x433a48(0x203),{'context':_0x4f4709});throw new Error(_0x433a48(0x1f4));case HTTP_STATUS[_0x433a48(0x228)]:this['logger']['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x4f4709});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger']['warn'](_0x433a48(0x1fb),{'context':_0x4f4709}),await this[_0x433a48(0x1f1)](_0x4f4709);throw new Error(_0x433a48(0x1e1));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x433a48(0x21f)]:case HTTP_STATUS[_0x433a48(0x210)]:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x433a48(0x246)][_0x433a48(0x1d0)](_0x433a48(0x1d3),{'context':_0x4f4709,'status':_0x1b7a87['status']}),await this['_handleServiceUnavailable'](_0x4f4709);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x433a48(0x246)]['error'](_0x433a48(0x23b),{'context':_0x4f4709,'error':_0x1b7a87[_0x433a48(0x214)]});throw new Error(_0x433a48(0x219)+_0x1b7a87['message']);}}['setApiKeyManager'](_0x512216){const _0x18445b=a0_0x3e0030;this['apiKeyManager']=_0x512216,this['logger']?.[_0x18445b(0x21e)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x512216});}[a0_0x3e0030(0x24a)](_0x3c84ad){const _0x2d8bc1=a0_0x3e0030;this['agentPool']=_0x3c84ad,this[_0x2d8bc1(0x246)]?.['info'](_0x2d8bc1(0x1aa),{'hasAgentPool':!!_0x3c84ad});}async[a0_0x3e0030(0x1e3)](_0x3723ba,_0x24dcd5={}){const _0x5e7e95=a0_0x3e0030,_0x2f27bd='img-'+Date[_0x5e7e95(0x258)]()+'-'+Math[_0x5e7e95(0x209)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this[_0x5e7e95(0x255)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x3723ba||typeof _0x3723ba!=='string'||_0x3723ba[_0x5e7e95(0x1cc)]()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x14d0b5=_0x24dcd5[_0x5e7e95(0x1ba)]||_0x5e7e95(0x20a),_0x2079d0=_0x24dcd5['size']||_0x5e7e95(0x1ac),_0x5f3209=_0x24dcd5[_0x5e7e95(0x23e)]||_0x5e7e95(0x23d),_0x20a9c0=_0x24dcd5[_0x5e7e95(0x229)]||_0x5e7e95(0x213);this[_0x5e7e95(0x246)][_0x5e7e95(0x21e)](_0x5e7e95(0x1f7)+_0x14d0b5,{'requestId':_0x2f27bd,'model':_0x14d0b5,'size':_0x2079d0,'quality':_0x5f3209,'promptLength':_0x3723ba[_0x5e7e95(0x1c6)]});const _0x5465af={'prompt':_0x3723ba,'model':_0x14d0b5,'size':_0x2079d0,'quality':_0x5f3209,'response_format':_0x20a9c0,'n':0x1,'metadata':{'requestId':_0x2f27bd,'timestamp':new Date()['toISOString']()}},_0x5d461b=await this[_0x5e7e95(0x1de)](_0x5465af,_0x2f27bd,{'sessionId':_0x24dcd5['sessionId'],'platformProvided':_0x24dcd5[_0x5e7e95(0x1e0)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x5d461b[_0x5e7e95(0x250)]?.[0x0]?.[_0x5e7e95(0x213)]||null,'b64_json':_0x5d461b[_0x5e7e95(0x250)]?.[0x0]?.[_0x5e7e95(0x1ab)]||null,'model':_0x5d461b[_0x5e7e95(0x1ba)]||_0x14d0b5,'requestId':_0x2f27bd,'revisedPrompt':_0x5d461b['data']?.[0x0]?.[_0x5e7e95(0x1b3)]||_0x3723ba};}catch(_0x1a215f){this['_recordFailure'](),this[_0x5e7e95(0x246)][_0x5e7e95(0x1d0)]('Image\x20generation\x20failed:\x20'+_0x1a215f[_0x5e7e95(0x214)],{'requestId':_0x2f27bd,'model':_0x24dcd5[_0x5e7e95(0x1ba)],'error':_0x1a215f['stack']});throw _0x1a215f;}}async['checkServiceHealth'](){const _0x8832c7=a0_0x3e0030;try{const _0x468edb=await this['_makeAPIRequest']('/health',{},'health-check');return _0x468edb[_0x8832c7(0x20c)]==='healthy';}catch(_0x5da506){return![];}}async['switchAgentModel'](_0x57b0b2,_0x45c086){const _0x553761=a0_0x3e0030;try{if(!this['_isValidModel'](_0x45c086))throw new Error('Invalid\x20model:\x20'+_0x45c086);let _0x38e0ee=this[_0x553761(0x244)][_0x553761(0x242)](_0x57b0b2);!_0x38e0ee&&(_0x38e0ee=new ConversationManager(_0x57b0b2,this[_0x553761(0x246)]),this['conversationManagers']['set'](_0x57b0b2,_0x38e0ee));const _0x131380=await _0x38e0ee[_0x553761(0x23c)](_0x45c086),_0x18e051=await this[_0x553761(0x256)]?.[_0x553761(0x1c8)](_0x57b0b2);return _0x18e051&&(_0x18e051['currentModel']=_0x45c086,await this[_0x553761(0x256)][_0x553761(0x226)](_0x57b0b2)),this['logger']['info']('Agent\x20model\x20switched:\x20'+_0x57b0b2,{'newModel':_0x45c086,'messageCount':_0x131380['messages'][_0x553761(0x1c6)]}),{'success':!![],'agentId':_0x57b0b2,'newModel':_0x45c086,'conversation':_0x131380};}catch(_0x11ca32){this['logger'][_0x553761(0x1d0)](_0x553761(0x220)+_0x11ca32[_0x553761(0x214)],{'agentId':_0x57b0b2,'newModel':_0x45c086});throw _0x11ca32;}}[a0_0x3e0030(0x20e)](){const _0x1cc308=a0_0x3e0030,_0x55d96d={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS[_0x1cc308(0x1c7)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x1cc308(0x1c7)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x1cc308(0x1d7)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x1cc308(0x200)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x1cc308(0x233)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x1cc308(0x1ce)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x1cc308(0x24d),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x55d96d;}[a0_0x3e0030(0x241)](_0x4968b5,_0x503979,_0x5bc17f){const _0x4ca204=a0_0x3e0030,_0x128dcd=this['modelSpecs'][_0x503979]||{'provider':'AZURE'};let _0x3c9058;typeof _0x4968b5===_0x4ca204(0x208)?_0x3c9058=[{'role':'user','content':_0x4968b5}]:_0x3c9058=_0x4968b5[_0x4ca204(0x236)](_0xacaed3=>this[_0x4ca204(0x1ad)](_0xacaed3,_0x503979));switch(_0x128dcd[_0x4ca204(0x253)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x3c9058);case MODEL_PROVIDERS[_0x4ca204(0x233)]:return this[_0x4ca204(0x1f6)](_0x3c9058);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x3c9058);default:return _0x3c9058;}}['_formatSingleMessage'](_0x25db3e,_0x735bc2){const _0x20c6c7=a0_0x3e0030;return{'role':_0x25db3e[_0x20c6c7(0x22f)]||'user','content':_0x25db3e[_0x20c6c7(0x1b2)],'timestamp':_0x25db3e['timestamp']};}[a0_0x3e0030(0x21d)](_0x598753){return _0x598753['map'](_0x16694e=>{const _0x328e38=a0_0x170f;if(_0x16694e['role']===_0x328e38(0x227))return{'role':_0x328e38(0x1e4),'content':'System:\x20'+_0x16694e['content']};return _0x16694e;});}[a0_0x3e0030(0x1f6)](_0x510024){return _0x510024;}['_formatForAzure'](_0x4966a5){const _0x18a49c=a0_0x3e0030;return _0x4966a5[_0x18a49c(0x236)](_0x32aca3=>({..._0x32aca3,'content':typeof _0x32aca3[_0x18a49c(0x1b2)]===_0x18a49c(0x208)?_0x32aca3[_0x18a49c(0x1b2)]:JSON['stringify'](_0x32aca3['content'])}));}[a0_0x3e0030(0x251)](_0x1cc3ca){const _0x2f523a=a0_0x3e0030;this[_0x2f523a(0x246)]['debug']('Validating\x20model',{'model':_0x1cc3ca,'modelType':typeof _0x1cc3ca});if(this[_0x2f523a(0x1d8)][_0x1cc3ca]!==undefined)return!![];return this[_0x2f523a(0x246)]['warn']('Model\x20validation\x20failed',{'model':_0x1cc3ca,'availableModels':Object['keys'](this[_0x2f523a(0x1d8)])}),![];}async[a0_0x3e0030(0x24e)](_0x3efbca){return!![];}async[a0_0x3e0030(0x1c0)](_0x1db7aa,_0x3c2bfa){const _0xff12c3=a0_0x3e0030;return Math[_0xff12c3(0x1e8)](_0x1db7aa[_0xff12c3(0x1c6)]/0x4);}async[a0_0x3e0030(0x252)](_0x55e252,_0xca916c){const _0x160532=a0_0x3e0030,_0x4b21cd=_0xca916c*0x4;if(_0x55e252[_0x160532(0x1c6)]<=_0x4b21cd)return _0x55e252;return _0x55e252[_0x160532(0x235)](0x0,_0x4b21cd-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x607e8e,_0x4eca31){const _0x36558b=a0_0x3e0030,_0x1e782a=_0x607e8e['map'](_0x449706=>_0x449706[_0x36558b(0x22f)]+':\x20'+_0x449706[_0x36558b(0x1b2)])['join']('\x0a'),_0x29c76b=0x1f4;if(_0x1e782a['length']<=_0x29c76b)return _0x1e782a;return _0x1e782a['substring'](0x0,_0x29c76b)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x204ca0,_0x4d4769,_0xe8511a,_0xb1da53={}){const _0x4d5d1c=a0_0x3e0030,_0x4ee596='https://autopilot-api.azurewebsites.net/llm/chat';let _0x4eadd4,_0x2032cd=null,_0x5a0c43=null;this[_0x4d5d1c(0x246)]?.[_0x4d5d1c(0x21e)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x4d5d1c(0x1e5)],'sessionId':_0xb1da53['sessionId'],'hasSessionId':!!_0xb1da53[_0x4d5d1c(0x1d2)],'optionsKeys':Object[_0x4d5d1c(0x238)](_0xb1da53),'model':_0x4d4769['model']});if(this['apiKeyManager']&&_0xb1da53['sessionId']){const _0x181749=this[_0x4d5d1c(0x1e5)]['getKeysForRequest'](_0xb1da53['sessionId'],{'platformProvided':_0xb1da53[_0x4d5d1c(0x1e0)]||![],'vendor':this['_getVendorFromModel'](_0x4d4769[_0x4d5d1c(0x1ba)])});_0x2032cd=_0x181749['loxiaApiKey'],_0x5a0c43=_0x181749['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0xb1da53[_0x4d5d1c(0x1d2)],'hasLoxiaKey':!!_0x2032cd,'hasVendorKey':!!_0x5a0c43,'vendor':this['_getVendorFromModel'](_0x4d4769[_0x4d5d1c(0x1ba)])});}!_0x2032cd&&_0xb1da53[_0x4d5d1c(0x1b7)]&&(_0x2032cd=_0xb1da53[_0x4d5d1c(0x1b7)]);!_0x2032cd&&this[_0x4d5d1c(0x245)][_0x4d5d1c(0x1b7)]&&(_0x2032cd=this[_0x4d5d1c(0x245)]['apiKey']);if(!_0x2032cd)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x2ef7bc=_0x4d4769[_0x4d5d1c(0x1ba)],_0xe18460={'conversationId':_0xe8511a,'message':_0x4d4769[_0x4d5d1c(0x1e2)][_0x4d4769['messages']['length']-0x1]?.['content']||'','messages':_0x4d4769[_0x4d5d1c(0x1e2)],'model':_0x2ef7bc,'requestId':_0xe8511a,'options':_0x4d4769[_0x4d5d1c(0x243)]||{},'platformProvided':_0xb1da53[_0x4d5d1c(0x1e0)]||![]};_0x4d4769[_0x4d5d1c(0x227)]&&(_0xe18460['systemPrompt']=_0x4d4769['system']);_0xb1da53[_0x4d5d1c(0x1e0)]?_0xe18460[_0x4d5d1c(0x1b7)]=_0x2032cd:(_0x5a0c43&&(_0xe18460[_0x4d5d1c(0x205)]=_0x5a0c43),_0xb1da53['customApiKeys']&&(_0xe18460['customApiKeys']=_0xb1da53[_0x4d5d1c(0x1ff)]),_0xe18460[_0x4d5d1c(0x1b7)]=_0x2032cd);for(let _0x3f25dd=0x1;_0x3f25dd<=this[_0x4d5d1c(0x1af)];_0x3f25dd++){try{this['logger']['info'](_0x4d5d1c(0x1c4),{'url':_0x4ee596,'model':_0x4d4769[_0x4d5d1c(0x1ba)],'requestId':_0xe8511a,'attempt':_0x3f25dd,'hasApiKey':!!_0x2032cd});const _0x4eb289=await fetch(_0x4ee596,{'method':_0x4d5d1c(0x1ea),'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x2032cd,'X-Request-ID':_0xe8511a},'body':JSON['stringify'](_0xe18460),'timeout':this[_0x4d5d1c(0x22d)]});if(!_0x4eb289['ok']){const _0x489b65=await _0x4eb289[_0x4d5d1c(0x1f2)](),_0x3beab0=new Error(_0x4d5d1c(0x1db)+_0x4eb289['status']+':\x20'+_0x4eb289[_0x4d5d1c(0x1c5)]+(_0x489b65?_0x4d5d1c(0x1eb)+_0x489b65:''));_0x3beab0[_0x4d5d1c(0x20c)]=_0x4eb289[_0x4d5d1c(0x20c)];throw _0x3beab0;}const _0x5efdfa=await _0x4eb289['json']();return{'choices':[{'message':{'content':_0x5efdfa[_0x4d5d1c(0x1b2)]||'','role':'assistant'},'finish_reason':_0x5efdfa[_0x4d5d1c(0x24c)]||_0x4d5d1c(0x1c3)}],'usage':_0x5efdfa[_0x4d5d1c(0x1d6)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x5efdfa['model']||_0x4d4769['model'],'id':_0x5efdfa[_0x4d5d1c(0x232)]||_0xe8511a};}catch(_0xb2371a){_0x4eadd4=_0xb2371a,this[_0x4d5d1c(0x246)][_0x4d5d1c(0x1e6)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x3f25dd,'requestId':_0xe8511a,'error':_0xb2371a[_0x4d5d1c(0x214)],'status':_0xb2371a[_0x4d5d1c(0x20c)]});if(_0x3f25dd<this[_0x4d5d1c(0x1af)]){const _0x4fcbe3=Math['pow'](0x2,_0x3f25dd)*0x3e8;this[_0x4d5d1c(0x246)][_0x4d5d1c(0x1e6)](_0x4d5d1c(0x202)+_0x4fcbe3+'ms',{'attempt':_0x3f25dd,'requestId':_0xe8511a}),await new Promise(_0x171b9e=>setTimeout(_0x171b9e,_0x4fcbe3));}}}this['logger'][_0x4d5d1c(0x1d0)](_0x4d5d1c(0x20f),{'requestId':_0xe8511a,'error':_0x4eadd4['message']});const _0x357b5d=_0x4eadd4['message']&&_0x4eadd4['message'][_0x4d5d1c(0x1fc)]('No\x20API\x20key\x20configured');if(_0x357b5d)throw new Error('API\x20Configuration\x20Error:\x20'+_0x4eadd4['message']);return{'choices':[{'message':{'content':_0x4d5d1c(0x223)+_0x4eadd4['message'],'role':_0x4d5d1c(0x1b8)},'finish_reason':_0x4d5d1c(0x1c3)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4d4769['model'],'id':'error-'+_0xe8511a,'error':_0x4eadd4['message']};}async[a0_0x3e0030(0x1de)](_0xcb5c22,_0x2f4b2f,_0x547c53={}){const _0x50ba4c=a0_0x3e0030,_0x48b211=_0x50ba4c(0x1ae);let _0x17c652,_0x442afc=null,_0x478c62=null;this[_0x50ba4c(0x246)]?.[_0x50ba4c(0x21e)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x50ba4c(0x1e5)],'sessionId':_0x547c53[_0x50ba4c(0x1d2)],'hasSessionId':!!_0x547c53[_0x50ba4c(0x1d2)],'model':_0xcb5c22[_0x50ba4c(0x1ba)]});if(this[_0x50ba4c(0x1e5)]&&_0x547c53['sessionId']){const _0x3aba49=this['apiKeyManager'][_0x50ba4c(0x21a)](_0x547c53['sessionId'],{'platformProvided':_0x547c53['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0xcb5c22['model'])});_0x442afc=_0x3aba49['loxiaApiKey'],_0x478c62=_0x3aba49['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x547c53[_0x50ba4c(0x1d2)],'hasLoxiaKey':!!_0x442afc,'hasVendorKey':!!_0x478c62});}!_0x442afc&&_0x547c53[_0x50ba4c(0x1b7)]&&(_0x442afc=_0x547c53['apiKey']);!_0x442afc&&this['config']['apiKey']&&(_0x442afc=this['config'][_0x50ba4c(0x1b7)]);if(!_0x442afc)throw new Error(_0x50ba4c(0x247));const _0x265971={'prompt':_0xcb5c22[_0x50ba4c(0x1f3)],'model':_0xcb5c22['model']||'azure-openai-dalle3','size':_0xcb5c22['size'],'quality':_0xcb5c22[_0x50ba4c(0x23e)],'style':_0xcb5c22[_0x50ba4c(0x1d9)]||_0x50ba4c(0x1e7),'n':_0xcb5c22['n']||0x1,'requestId':_0x2f4b2f};for(let _0x3073f2=0x1;_0x3073f2<=this['retryAttempts'];_0x3073f2++){try{this['logger']['info']('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x48b211,'model':_0xcb5c22['model'],'requestId':_0x2f4b2f,'attempt':_0x3073f2,'hasApiKey':!!_0x442afc});const _0x256576=await fetch(_0x48b211,{'method':_0x50ba4c(0x1ea),'headers':{'Content-Type':'application/json','Authorization':_0x50ba4c(0x201)+_0x442afc,'X-Request-ID':_0x2f4b2f},'body':JSON[_0x50ba4c(0x1bf)](_0x265971),'timeout':this[_0x50ba4c(0x22d)]*0x2});if(!_0x256576['ok']){const _0x1db09a=await _0x256576[_0x50ba4c(0x1f2)](),_0x512c11=new Error(_0x50ba4c(0x1db)+_0x256576['status']+':\x20'+_0x256576['statusText']+(_0x1db09a?_0x50ba4c(0x1eb)+_0x1db09a:''));_0x512c11[_0x50ba4c(0x20c)]=_0x256576['status'];throw _0x512c11;}const _0x446893=await _0x256576[_0x50ba4c(0x221)]();return{'data':_0x446893[_0x50ba4c(0x234)]||[],'model':_0x446893[_0x50ba4c(0x1ba)]||_0xcb5c22[_0x50ba4c(0x1ba)],'created':_0x446893['created']||Date[_0x50ba4c(0x258)](),'usage':_0x446893['usage']};}catch(_0xe7ef70){_0x17c652=_0xe7ef70,this['logger']['warn'](_0x50ba4c(0x231),{'attempt':_0x3073f2,'requestId':_0x2f4b2f,'error':_0xe7ef70['message'],'status':_0xe7ef70[_0x50ba4c(0x20c)]});if(_0x3073f2<this['retryAttempts']){const _0x5efeb6=Math['pow'](0x2,_0x3073f2)*0x3e8;this[_0x50ba4c(0x246)][_0x50ba4c(0x1e6)]('Retrying\x20in\x20'+_0x5efeb6+'ms',{'attempt':_0x3073f2,'requestId':_0x2f4b2f}),await new Promise(_0xdb1cca=>setTimeout(_0xdb1cca,_0x5efeb6));}}}this['logger'][_0x50ba4c(0x1d0)](_0x50ba4c(0x207),{'requestId':_0x2f4b2f,'error':_0x17c652['message']});throw new Error(_0x50ba4c(0x1b5)+_0x17c652[_0x50ba4c(0x214)]);}async[a0_0x3e0030(0x1ec)](_0x22a694){await new Promise(_0xd0318e=>setTimeout(_0xd0318e,0x64));}async['_handleRateLimit'](_0x4ebb61){const _0x4c219b=0xea60;this['logger']['info']('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x4c219b+'ms',_0x4ebb61),await new Promise(_0x599b25=>setTimeout(_0x599b25,_0x4c219b));}async['_handleServiceUnavailable'](_0x543502){const _0x1b26b2=a0_0x3e0030;this[_0x1b26b2(0x1ee)]();const _0x37271a=0x7530;this['logger'][_0x1b26b2(0x21e)]('Service\x20unavailable,\x20waiting\x20'+_0x37271a+'ms',_0x543502),await new Promise(_0x20d217=>setTimeout(_0x20d217,_0x37271a));}['_isCircuitBreakerOpen'](){const _0x462339=a0_0x3e0030;if(!this[_0x462339(0x22e)]['isOpen'])return![];const _0x1bcc9c=Date[_0x462339(0x258)]()-this['circuitBreaker']['lastFailureTime'];if(_0x1bcc9c>this['circuitBreaker'][_0x462339(0x22d)])return this['circuitBreaker']['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}[a0_0x3e0030(0x1ee)](){const _0x2cb137=a0_0x3e0030;this[_0x2cb137(0x22e)]['failures']++,this[_0x2cb137(0x22e)]['lastFailureTime']=Date['now'](),this[_0x2cb137(0x22e)][_0x2cb137(0x217)]>=this[_0x2cb137(0x22e)][_0x2cb137(0x1cf)]&&(this['circuitBreaker'][_0x2cb137(0x1e9)]=!![],this['logger'][_0x2cb137(0x1e6)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x3e0030(0x1f8)](){const _0x50cd3c=a0_0x3e0030;this['circuitBreaker'][_0x50cd3c(0x217)]>0x0&&(this[_0x50cd3c(0x22e)]['failures']=0x0,this['circuitBreaker']['isOpen']=![],this[_0x50cd3c(0x246)][_0x50cd3c(0x21e)](_0x50cd3c(0x224)));}[a0_0x3e0030(0x204)](_0x47a8ad){const _0x209244=a0_0x3e0030;if(!_0x47a8ad)return null;const _0x394122=_0x47a8ad['toLowerCase']();if(_0x394122['includes']('anthropic')||_0x394122[_0x209244(0x1fc)]('claude'))return'anthropic';else{if(_0x394122['includes']('openai')||_0x394122[_0x209244(0x1fc)](_0x209244(0x21b)))return'openai';else{if(_0x394122['includes'](_0x209244(0x1fa)))return _0x209244(0x1fa);else{if(_0x394122['includes'](_0x209244(0x1dd)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x3744d1,_0x43ef5a){const _0x325e98=a0_0x3e0030;this['agentId']=_0x3744d1,this['logger']=_0x43ef5a,this[_0x325e98(0x1f0)]=new Map();}async['switchModel'](_0x1aee09){return{'messages':[],'model':_0x1aee09,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
@@ -1 +1 @@
1
- const a0_0x459f64=a0_0x46ed;(function(_0x4a4c53,_0x78f499){const _0x203fb3=a0_0x46ed,_0x10f864=_0x4a4c53();while(!![]){try{const _0x58dc42=-parseInt(_0x203fb3(0x1cd))/0x1*(parseInt(_0x203fb3(0x1c8))/0x2)+parseInt(_0x203fb3(0x1c0))/0x3*(parseInt(_0x203fb3(0x1cb))/0x4)+-parseInt(_0x203fb3(0x1d7))/0x5+parseInt(_0x203fb3(0x1c9))/0x6+-parseInt(_0x203fb3(0x1d4))/0x7+-parseInt(_0x203fb3(0x1d8))/0x8+parseInt(_0x203fb3(0x1d2))/0x9;if(_0x58dc42===_0x78f499)break;else _0x10f864['push'](_0x10f864['shift']());}catch(_0x4d3ac6){_0x10f864['push'](_0x10f864['shift']());}}}(a0_0x4de7,0x23f39));function a0_0x46ed(_0x2e21a2,_0x29f79d){_0x2e21a2=_0x2e21a2-0x1ba;const _0x4de7e=a0_0x4de7();let _0x46edc4=_0x4de7e[_0x2e21a2];if(a0_0x46ed['SHxlFQ']===undefined){var _0x37471f=function(_0x1b88f6){const _0x219dcc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x55ada5='',_0xf6c34a='';for(let _0x14b157=0x0,_0x340ab9,_0x431dc5,_0x1264cd=0x0;_0x431dc5=_0x1b88f6['charAt'](_0x1264cd++);~_0x431dc5&&(_0x340ab9=_0x14b157%0x4?_0x340ab9*0x40+_0x431dc5:_0x431dc5,_0x14b157++%0x4)?_0x55ada5+=String['fromCharCode'](0xff&_0x340ab9>>(-0x2*_0x14b157&0x6)):0x0){_0x431dc5=_0x219dcc['indexOf'](_0x431dc5);}for(let _0x3acf4c=0x0,_0x577b23=_0x55ada5['length'];_0x3acf4c<_0x577b23;_0x3acf4c++){_0xf6c34a+='%'+('00'+_0x55ada5['charCodeAt'](_0x3acf4c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xf6c34a);};a0_0x46ed['zBaaEv']=_0x37471f,a0_0x46ed['MPusEg']={},a0_0x46ed['SHxlFQ']=!![];}const _0x54e17b=_0x4de7e[0x0],_0x1411cc=_0x2e21a2+_0x54e17b,_0x235b07=a0_0x46ed['MPusEg'][_0x1411cc];return!_0x235b07?(_0x46edc4=a0_0x46ed['zBaaEv'](_0x46edc4),a0_0x46ed['MPusEg'][_0x1411cc]=_0x46edc4):_0x46edc4=_0x235b07,_0x46edc4;}function a0_0x4de7(){const _0x28b5d=['ntmWmvbnte9Avq','zw50CMLLCW','DxbKyxrLzef0','z2XVyMfSs2v5CW','C2v0u2vZC2LVBKTLExm','BM93','Aw5MBW','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','nZy0uKfSsuHn','odu5mNjSCKXgAq','CMvTB3zLu2vZC2LVBKTLExm','mJm2twjTv2ft','C2vZC2LVBKTLExm','nte3qxroENbx','z2v0vgLTzq','DMvUzg9Ys2v5CW','A2v5CW','z2v0u2vZC2LVBKTLExm','ode0mduWowvqCfbIzW','Bg94AwfbCgLlzxK','mte1mZiYoujLD0LWta','BwfW','ChvZAa','mteXmZiWnwXgtMDssG','mJiYndm3nK1rv0vKtW','CgXHDgzVCM1qCM92AwrLza','C2L6zq','DMvUzg9YqxbPs2v5','z2v0s2v5C0zVCLjLCxvLC3q','Bg9Nz2vY','DMvUzg9Y','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm'];a0_0x4de7=function(){return _0x28b5d;};return a0_0x4de7();}class ApiKeyManager{constructor(_0x55ada5){const _0x54a484=a0_0x46ed;this[_0x54a484(0x1bd)]=_0x55ada5,this[_0x54a484(0x1cc)]=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x459f64(0x1c4)](_0xf6c34a,_0x14b157){const _0x404b77=a0_0x459f64;if(!_0xf6c34a)throw new Error('Session\x20ID\x20is\x20required');this[_0x404b77(0x1cc)]['set'](_0xf6c34a,{'loxiaApiKey':_0x14b157['loxiaApiKey']||null,'vendorKeys':_0x14b157[_0x404b77(0x1cf)]||{},'updatedAt':new Date()['toISOString']()}),this[_0x404b77(0x1bd)]?.[_0x404b77(0x1c6)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0xf6c34a,'hasLoxiaKey':!!_0x14b157[_0x404b77(0x1d3)],'vendorKeys':Object[_0x404b77(0x1d0)](_0x14b157['vendorKeys']||{}),'timestamp':new Date()['toISOString']()});}['getSessionKeys'](_0x340ab9){const _0xc49366=a0_0x459f64;if(!_0x340ab9)return this[_0xc49366(0x1c3)];const _0x431dc5=this[_0xc49366(0x1cc)]['get'](_0x340ab9);if(_0x431dc5)return _0x431dc5;return this['globalKeys'];}[a0_0x459f64(0x1bc)](_0x1264cd,_0x3acf4c={}){const _0x52b398=a0_0x459f64,_0x577b23=this[_0x52b398(0x1d1)](_0x1264cd),_0x5408ae={'loxiaApiKey':_0x577b23['loxiaApiKey'],'vendorApiKey':null};return!_0x3acf4c[_0x52b398(0x1d9)]&&_0x3acf4c[_0x52b398(0x1be)]&&_0x577b23['vendorKeys']&&(_0x5408ae[_0x52b398(0x1bb)]=_0x577b23[_0x52b398(0x1cf)][_0x3acf4c[_0x52b398(0x1be)]]),_0x5408ae;}[a0_0x459f64(0x1ca)](_0x3caaf6){const _0x48becd=a0_0x459f64;if(this[_0x48becd(0x1cc)]['delete'](_0x3caaf6))return this[_0x48becd(0x1bd)]?.[_0x48becd(0x1c6)](_0x48becd(0x1c7),{'sessionId':_0x3caaf6}),!![];return![];}['setGlobalKeys'](_0x280002){const _0x5d0431=a0_0x459f64;this[_0x5d0431(0x1c3)]={'loxiaApiKey':_0x280002[_0x5d0431(0x1d3)]||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this[_0x5d0431(0x1c3)]['vendorKeys'],..._0x280002['vendorKeys']||{}}},this['logger']?.[_0x5d0431(0x1c6)]('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0x5d0431(0x1c3)][_0x5d0431(0x1d3)],'vendorKeys':Object[_0x5d0431(0x1d0)](this['globalKeys']['vendorKeys'])});}['getActiveSessions'](){const _0x1f8242=a0_0x459f64;return Array['from'](this[_0x1f8242(0x1cc)][_0x1f8242(0x1c1)]())[_0x1f8242(0x1d5)](([_0x21e4e5,_0x4e38a8])=>({'sessionId':_0x21e4e5,'hasLoxiaKey':!!_0x4e38a8[_0x1f8242(0x1d3)],'vendorKeys':Object[_0x1f8242(0x1d0)](_0x4e38a8['vendorKeys']||{}),'updatedAt':_0x4e38a8[_0x1f8242(0x1c2)]}));}['cleanupExpiredSessions'](_0x5151ed=0x18*0x3c*0x3c*0x3e8){const _0x8ddf62=a0_0x459f64,_0xe7df24=Date[_0x8ddf62(0x1c5)](),_0xf1c5b7=[];for(const [_0x293bc,_0x27a739]of this[_0x8ddf62(0x1cc)][_0x8ddf62(0x1c1)]()){const _0x1dfd25=_0xe7df24-new Date(_0x27a739[_0x8ddf62(0x1c2)])[_0x8ddf62(0x1ce)]();_0x1dfd25>_0x5151ed&&_0xf1c5b7[_0x8ddf62(0x1d6)](_0x293bc);}return _0xf1c5b7['forEach'](_0x51bae7=>{this['sessionKeys']['delete'](_0x51bae7);}),_0xf1c5b7['length']>0x0&&this['logger']?.[_0x8ddf62(0x1c6)](_0x8ddf62(0x1bf),{'expiredSessions':_0xf1c5b7['length'],'remainingSessions':this['sessionKeys'][_0x8ddf62(0x1ba)]}),_0xf1c5b7['length'];}}export default ApiKeyManager;
1
+ const a0_0x32a75f=a0_0x3cc4;(function(_0x16be96,_0x3b8c50){const _0xe9b5e4=a0_0x3cc4,_0x284249=_0x16be96();while(!![]){try{const _0x3279ed=parseInt(_0xe9b5e4(0x121))/0x1*(-parseInt(_0xe9b5e4(0x118))/0x2)+parseInt(_0xe9b5e4(0x11b))/0x3+parseInt(_0xe9b5e4(0x134))/0x4+parseInt(_0xe9b5e4(0x124))/0x5+-parseInt(_0xe9b5e4(0x131))/0x6*(-parseInt(_0xe9b5e4(0x133))/0x7)+parseInt(_0xe9b5e4(0x136))/0x8+parseInt(_0xe9b5e4(0x132))/0x9*(-parseInt(_0xe9b5e4(0x11f))/0xa);if(_0x3279ed===_0x3b8c50)break;else _0x284249['push'](_0x284249['shift']());}catch(_0x3491b7){_0x284249['push'](_0x284249['shift']());}}}(a0_0x1ab5,0xd9a7a));function a0_0x3cc4(_0x2dc9cf,_0x2ce59c){_0x2dc9cf=_0x2dc9cf-0x118;const _0x1ab5ab=a0_0x1ab5();let _0x3cc411=_0x1ab5ab[_0x2dc9cf];if(a0_0x3cc4['oHVVZA']===undefined){var _0x58cc4e=function(_0x349bcb){const _0x44ee83='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2aab2c='',_0x3c0d92='';for(let _0xed99ef=0x0,_0x21b796,_0x42554f,_0x2df3bb=0x0;_0x42554f=_0x349bcb['charAt'](_0x2df3bb++);~_0x42554f&&(_0x21b796=_0xed99ef%0x4?_0x21b796*0x40+_0x42554f:_0x42554f,_0xed99ef++%0x4)?_0x2aab2c+=String['fromCharCode'](0xff&_0x21b796>>(-0x2*_0xed99ef&0x6)):0x0){_0x42554f=_0x44ee83['indexOf'](_0x42554f);}for(let _0x4e856f=0x0,_0x5afa71=_0x2aab2c['length'];_0x4e856f<_0x5afa71;_0x4e856f++){_0x3c0d92+='%'+('00'+_0x2aab2c['charCodeAt'](_0x4e856f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c0d92);};a0_0x3cc4['yxaGfh']=_0x58cc4e,a0_0x3cc4['XaZBqU']={},a0_0x3cc4['oHVVZA']=!![];}const _0x520050=_0x1ab5ab[0x0],_0x3a89fd=_0x2dc9cf+_0x520050,_0x2097ad=a0_0x3cc4['XaZBqU'][_0x3a89fd];return!_0x2097ad?(_0x3cc411=a0_0x3cc4['yxaGfh'](_0x3cc411),a0_0x3cc4['XaZBqU'][_0x3a89fd]=_0x3cc411):_0x3cc411=_0x2097ad,_0x3cc411;}function a0_0x1ab5(){const _0xa45171=['DMvUzg9Ys2v5CW','ntCXmdeXnw5qqLr3rG','C2v0','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','z2v0u2vZC2LVBKTLExm','C2L6zq','C2v0u2vZC2LVBKTLExm','zgvSzxrL','Bg9Nz2vY','z2XVyMfSs2v5CW','A2v5CW','Dg9ju09tDhjPBMC','ChvZAa','nJCXodj0q2f5Aw8','mtHHtKfuuxy','ote3tgf0rwXY','nJK5nti3mLrWzuDzBW','Aw5MBW','mta0ntiWntz5sgvHy3C','CgXHDgzVCM1qCM92AwrLza','z2v0vgLTzq','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','z2v0','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mJy0ndK3ofvHDvDqrq','zM9YrwfJAa','C2vZC2LVBKTLExm','mZy5nZiZnMnHzgHSqq','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','Bg94AwfbCgLlzxK','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','mJm0mti4mJbhrgDVAKy','DMvUzg9Y','mwXvA1fLBq','BgvUz3rO'];a0_0x1ab5=function(){return _0xa45171;};return a0_0x1ab5();}class ApiKeyManager{constructor(_0x2aab2c){const _0x181124=a0_0x3cc4;this['logger']=_0x2aab2c,this[_0x181124(0x11a)]=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x32a75f(0x12a)](_0x3c0d92,_0xed99ef){const _0x109205=a0_0x32a75f;if(!_0x3c0d92)throw new Error(_0x109205(0x139));this['sessionKeys'][_0x109205(0x125)](_0x3c0d92,{'loxiaApiKey':_0xed99ef['loxiaApiKey']||null,'vendorKeys':_0xed99ef['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this[_0x109205(0x12c)]?.[_0x109205(0x135)](_0x109205(0x13b),{'sessionId':_0x3c0d92,'hasLoxiaKey':!!_0xed99ef[_0x109205(0x11d)],'vendorKeys':Object['keys'](_0xed99ef['vendorKeys']||{}),'timestamp':new Date()[_0x109205(0x12f)]()});}[a0_0x32a75f(0x128)](_0x21b796){const _0xdee655=a0_0x32a75f;if(!_0x21b796)return this['globalKeys'];const _0x42554f=this['sessionKeys'][_0xdee655(0x13a)](_0x21b796);if(_0x42554f)return _0x42554f;return this['globalKeys'];}['getKeysForRequest'](_0x2df3bb,_0x4e856f={}){const _0x1e0159=a0_0x32a75f,_0x5afa71=this[_0x1e0159(0x128)](_0x2df3bb),_0x21b51a={'loxiaApiKey':_0x5afa71['loxiaApiKey'],'vendorApiKey':null};return!_0x4e856f[_0x1e0159(0x137)]&&_0x4e856f['vendor']&&_0x5afa71[_0x1e0159(0x123)]&&(_0x21b51a['vendorApiKey']=_0x5afa71['vendorKeys'][_0x4e856f[_0x1e0159(0x120)]]),_0x21b51a;}['removeSessionKeys'](_0x978d51){const _0x5f0f6c=a0_0x32a75f;if(this[_0x5f0f6c(0x11a)]['delete'](_0x978d51))return this['logger']?.['info'](_0x5f0f6c(0x127),{'sessionId':_0x978d51}),!![];return![];}['setGlobalKeys'](_0x306848){const _0x3944c3=a0_0x32a75f;this[_0x3944c3(0x12d)]={'loxiaApiKey':_0x306848[_0x3944c3(0x11d)]||this['globalKeys'][_0x3944c3(0x11d)],'vendorKeys':{...this[_0x3944c3(0x12d)][_0x3944c3(0x123)],..._0x306848['vendorKeys']||{}}},this['logger']?.[_0x3944c3(0x135)](_0x3944c3(0x126),{'hasLoxiaKey':!!this[_0x3944c3(0x12d)]['loxiaApiKey'],'vendorKeys':Object[_0x3944c3(0x12e)](this[_0x3944c3(0x12d)]['vendorKeys'])});}['getActiveSessions'](){const _0x564722=a0_0x32a75f;return Array['from'](this[_0x564722(0x11a)]['entries']())['map'](([_0x4b4299,_0x25aef4])=>({'sessionId':_0x4b4299,'hasLoxiaKey':!!_0x25aef4['loxiaApiKey'],'vendorKeys':Object['keys'](_0x25aef4['vendorKeys']||{}),'updatedAt':_0x25aef4['updatedAt']}));}[a0_0x32a75f(0x11e)](_0x4d37ee=0x18*0x3c*0x3c*0x3e8){const _0x82831=a0_0x32a75f,_0xb89f27=Date['now'](),_0x3eb0fa=[];for(const [_0x3e269e,_0x297b34]of this['sessionKeys']['entries']()){const _0x544a17=_0xb89f27-new Date(_0x297b34['updatedAt'])[_0x82831(0x138)]();_0x544a17>_0x4d37ee&&_0x3eb0fa[_0x82831(0x130)](_0x3e269e);}return _0x3eb0fa[_0x82831(0x119)](_0x4e2455=>{const _0x4890b3=_0x82831;this['sessionKeys'][_0x4890b3(0x12b)](_0x4e2455);}),_0x3eb0fa['length']>0x0&&this[_0x82831(0x12c)]?.['info'](_0x82831(0x11c),{'expiredSessions':_0x3eb0fa['length'],'remainingSessions':this['sessionKeys'][_0x82831(0x129)]}),_0x3eb0fa[_0x82831(0x122)];}}export default ApiKeyManager;
@@ -1 +1 @@
1
- function a0_0x32b5(_0x519b8d,_0x3635f5){_0x519b8d=_0x519b8d-0xf7;const _0x1d0278=a0_0x1d02();let _0x32b5c0=_0x1d0278[_0x519b8d];if(a0_0x32b5['BNJQLE']===undefined){var _0x5306d5=function(_0x5f1cff){const _0x17da6a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb98959='',_0xb012f4='';for(let _0x2eeff9=0x0,_0x123a58,_0x438e06,_0x4e8be3=0x0;_0x438e06=_0x5f1cff['charAt'](_0x4e8be3++);~_0x438e06&&(_0x123a58=_0x2eeff9%0x4?_0x123a58*0x40+_0x438e06:_0x438e06,_0x2eeff9++%0x4)?_0xb98959+=String['fromCharCode'](0xff&_0x123a58>>(-0x2*_0x2eeff9&0x6)):0x0){_0x438e06=_0x17da6a['indexOf'](_0x438e06);}for(let _0x43deb8=0x0,_0x50d8b1=_0xb98959['length'];_0x43deb8<_0x50d8b1;_0x43deb8++){_0xb012f4+='%'+('00'+_0xb98959['charCodeAt'](_0x43deb8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb012f4);};a0_0x32b5['oCgksi']=_0x5306d5,a0_0x32b5['dqSSuS']={},a0_0x32b5['BNJQLE']=!![];}const _0x1a0181=_0x1d0278[0x0],_0x128b3c=_0x519b8d+_0x1a0181,_0x4709ab=a0_0x32b5['dqSSuS'][_0x128b3c];return!_0x4709ab?(_0x32b5c0=a0_0x32b5['oCgksi'](_0x32b5c0),a0_0x32b5['dqSSuS'][_0x128b3c]=_0x32b5c0):_0x32b5c0=_0x4709ab,_0x32b5c0;}const a0_0x185099=a0_0x32b5;(function(_0x53ffad,_0x151a78){const _0x32e9fb=a0_0x32b5,_0x1837a4=_0x53ffad();while(!![]){try{const _0x29965f=parseInt(_0x32e9fb(0x118))/0x1+-parseInt(_0x32e9fb(0x111))/0x2+-parseInt(_0x32e9fb(0x10c))/0x3+-parseInt(_0x32e9fb(0xff))/0x4*(parseInt(_0x32e9fb(0x109))/0x5)+-parseInt(_0x32e9fb(0x122))/0x6+parseInt(_0x32e9fb(0x119))/0x7*(-parseInt(_0x32e9fb(0x116))/0x8)+-parseInt(_0x32e9fb(0x11d))/0x9*(-parseInt(_0x32e9fb(0x12b))/0xa);if(_0x29965f===_0x151a78)break;else _0x1837a4['push'](_0x1837a4['shift']());}catch(_0x1bb88b){_0x1837a4['push'](_0x1837a4['shift']());}}}(a0_0x1d02,0xcd7ef));function a0_0x1d02(){const _0x535a20=['BgvUz3rO','CxvPy2STDgfZA3m','oeDcC3LsyW','y3jLyxrPDMu','ndaWntq0DM5RBNze','ntKWmdy1y3zlq3nW','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','yMvUy2HTyxjRCW','BwfW','nJe2ndm5n1DABLn5CW','Dg9ju09tDhjPBMC','sfruuca','Bw9KzwXZ','yxbWBgLJyxrPB24VANnVBG','mJiXmJi5nNj6AxjZrG','yw5HBhLZAxm','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','y29UzMLN','BMvLzhnszwzYzxnO','BMfTzq','DMfSDwvZ','x2DLDejLC3rnB2rLBezVCLrHC2S','Aw5PDgLHBgL6zq','ntb4DvjrChq','BwvZC2fNzq','DgfZA3m','BM93','C3bLzwq','ANnVBG','zMLSDgvY','yxP1CMvcywnRzw5KvxjS','Bwf4','yxbPs2v5','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','mtqYmgnTu3r3rq','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','z2v0vgLTzq','z2v0u3rHDhvZ','x2DLDezHC3rLC3rnB2rLBa','C2nVCMu','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','AxnmB2fKAw5N','Bg9Nz2vY','zxjYB3i','mta0mtvcshrkrvm','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','CMvMCMvZAeLUDgvYDMfS','mtaZntiWnhDrAMLTDG','BgfZDfvWzgf0zwq','z2v0qMvUy2HTyxjRCW','zgvIDwC','C29YDa','mJG5mtKWohLgq2zTtW','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','Dw5RBM93BG'];a0_0x1d02=function(){return _0x535a20;};return a0_0x1d02();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0xb98959,_0xb012f4){const _0x4a6f6c=a0_0x32b5;this['config']=_0xb98959,this[_0x4a6f6c(0x107)]=_0xb012f4,this['benchmarks']=null,this[_0x4a6f6c(0x10d)]=null,this[_0x4a6f6c(0x106)]=![],this['azureBackendUrl']=_0x4a6f6c(0xfe),this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x4a6f6c(0x124)];}async[a0_0x185099(0x12a)](){const _0x1c0ea9=a0_0x185099;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger']['info'](_0x1c0ea9(0x105));}catch(_0x2eeff9){this['logger']['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x2eeff9[_0x1c0ea9(0x12c)]}),this[_0x1c0ea9(0x11b)]=null;}}[a0_0x185099(0x10e)](){const _0x3a4473=a0_0x185099;if(!this[_0x3a4473(0x11b)])return this['logger'][_0x3a4473(0x108)](_0x3a4473(0x112),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x5b6f72=a0_0x185099;if(this['isLoading']){this[_0x5b6f72(0x107)][_0x5b6f72(0x10f)](_0x5b6f72(0x10a));return;}this[_0x5b6f72(0x106)]=!![];try{const _0x123a58=await this['_fetchFromAzureBackend']();if(_0x123a58)this[_0x5b6f72(0x11b)]=_0x123a58,this['lastUpdated']=new Date(),this[_0x5b6f72(0x107)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x123a58['models']?.[_0x5b6f72(0x114)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x438e06){this[_0x5b6f72(0x107)][_0x5b6f72(0x108)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x438e06['message'],'endpoint':url}),!this[_0x5b6f72(0x11b)]&&(this['benchmarks']=null);}finally{this[_0x5b6f72(0x106)]=![];}}['getBenchmarkTable'](){const _0x2f9829=a0_0x185099,_0x4e8be3=this[_0x2f9829(0x10e)]();return{'lastUpdated':this['lastUpdated']?.[_0x2f9829(0x11e)]()||'unknown','models':_0x4e8be3[_0x2f9829(0x120)]||[],'tasks':_0x4e8be3['tasks']||{},'summary':this[_0x2f9829(0x11a)](_0x4e8be3)};}[a0_0x185099(0x126)](){const _0x4737ad=a0_0x185099;if(!this[_0x4737ad(0x10d)])return!![];const _0x43deb8=Date[_0x4737ad(0xf7)]()-this[_0x4737ad(0x10d)][_0x4737ad(0x101)]();return _0x43deb8>this[_0x4737ad(0x10b)];}async['_fetchFromAzureBackend'](){const _0x519948=a0_0x185099,_0x50d8b1=this[_0x519948(0xfb)]+'/llm/model-benchmarks';let _0x375b4c=null;this['config'][_0x519948(0xfd)]&&(_0x375b4c=this[_0x519948(0x125)][_0x519948(0xfd)]);const _0x416437={'method':'GET','headers':{'Content-Type':_0x519948(0x121),..._0x375b4c&&{'Authorization':'Bearer\x20'+_0x375b4c}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x50d8b1});const _0x3db397=await fetch(_0x50d8b1,_0x416437);if(!_0x3db397['ok'])throw new Error(_0x519948(0x11f)+_0x3db397['status']+':\x20'+_0x3db397['statusText']);const _0x5edca3=await _0x3db397[_0x519948(0xf9)]();return _0x5edca3;}[a0_0x185099(0x11a)](_0x404a67){const _0x55677d=a0_0x185099,_0x2dc55e=_0x404a67[_0x55677d(0x120)]||[];return{'totalModels':_0x2dc55e['length'],'taskCategories':Object['keys'](_0x404a67['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x2dc55e,'coding'),'bestForAnalysis':this[_0x55677d(0x129)](_0x2dc55e,_0x55677d(0x123)),'bestForQuickTasks':this[_0x55677d(0x129)](_0x2dc55e,_0x55677d(0x115)),'bestForCreative':this['_getBestModelForTask'](_0x2dc55e,_0x55677d(0x117)),'fastestModel':this[_0x55677d(0x103)](_0x2dc55e),'mostCostEfficient':this['_getMostCostEfficient'](_0x2dc55e)};}['_getBestModelForTask'](_0x5cdc35,_0x1e46d8){const _0x2471bf=a0_0x185099;return _0x5cdc35[_0x2471bf(0xfa)](_0x181b5a=>_0x181b5a[_0x2471bf(0x12d)]&&_0x181b5a[_0x2471bf(0x12d)][_0x1e46d8])[_0x2471bf(0x110)]((_0x582c43,_0x26d10c)=>(_0x26d10c[_0x2471bf(0x12d)][_0x1e46d8][_0x2471bf(0x104)]||0x0)-(_0x582c43['tasks'][_0x1e46d8][_0x2471bf(0x104)]||0x0))[0x0]?.['name']||_0x2471bf(0x113);}['_getFastestModel'](_0x47dfea){const _0x88ecc1=a0_0x185099,_0x184ff2={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x47dfea['sort']((_0x3e6ff3,_0x246da6)=>{const _0x56a6ae=a0_0x32b5,_0xbba1f0=Math[_0x56a6ae(0xfc)](...Object['values'](_0x3e6ff3['tasks']||{})['map'](_0x284eb0=>_0x184ff2[_0x284eb0[_0x56a6ae(0xf8)]]||0x0)),_0x43bf5c=Math[_0x56a6ae(0xfc)](...Object['values'](_0x246da6[_0x56a6ae(0x12d)]||{})[_0x56a6ae(0x11c)](_0x2ea572=>_0x184ff2[_0x2ea572['speed']]||0x0));return _0x43bf5c-_0xbba1f0;})[0x0]?.['name']||_0x88ecc1(0x113);}['_getMostCostEfficient'](_0x338526){const _0x59fc77=a0_0x185099,_0x5f537a={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x338526['sort']((_0x2805bf,_0x48483f)=>{const _0x435761=a0_0x32b5,_0x398c9a=Math[_0x435761(0xfc)](...Object[_0x435761(0x128)](_0x2805bf['tasks']||{})['map'](_0x23d003=>_0x5f537a[_0x23d003['cost']]||0x0)),_0x3b0d2c=Math['max'](...Object['values'](_0x48483f[_0x435761(0x12d)]||{})[_0x435761(0x11c)](_0x138790=>_0x5f537a[_0x138790['cost']]||0x0));return _0x3b0d2c-_0x398c9a;})[0x0]?.[_0x59fc77(0x127)]||_0x59fc77(0x113);}['_scheduleRefresh'](){setInterval(async()=>{const _0x5bb213=a0_0x32b5;this['needsRefresh']()&&(this[_0x5bb213(0x107)]['debug']('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this['refreshInterval']);}async['forceRefresh'](){const _0x2fe03d=a0_0x185099;this[_0x2fe03d(0x107)]['info'](_0x2fe03d(0x100)),await this['loadBenchmarks']();}[a0_0x185099(0x102)](){const _0x4050b0=a0_0x185099;return{'initialized':!!this[_0x4050b0(0x11b)],'lastUpdated':this['lastUpdated']?.[_0x4050b0(0x11e)]()||null,'source':this['benchmarks']?.['source']||_0x4050b0(0x113),'modelCount':this['benchmarks']?.['models']?.[_0x4050b0(0x114)]||0x0,'isLoading':this[_0x4050b0(0x106)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
1
+ const a0_0x4dfa4b=a0_0x8c3c;(function(_0x2cc64c,_0x31789f){const _0x37723f=a0_0x8c3c,_0x51d6bb=_0x2cc64c();while(!![]){try{const _0x3c0d31=-parseInt(_0x37723f(0x10f))/0x1*(-parseInt(_0x37723f(0x114))/0x2)+parseInt(_0x37723f(0x104))/0x3+-parseInt(_0x37723f(0x10a))/0x4+parseInt(_0x37723f(0x124))/0x5+-parseInt(_0x37723f(0x12f))/0x6*(parseInt(_0x37723f(0x12b))/0x7)+-parseInt(_0x37723f(0xfb))/0x8+parseInt(_0x37723f(0x11a))/0x9*(-parseInt(_0x37723f(0x111))/0xa);if(_0x3c0d31===_0x31789f)break;else _0x51d6bb['push'](_0x51d6bb['shift']());}catch(_0x34b774){_0x51d6bb['push'](_0x51d6bb['shift']());}}}(a0_0xff92,0x23ba7));function a0_0xff92(){const _0x39b56c=['BMfTzq','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','Bg9HzejLBMnOBwfYA3m','yxbWBgLJyxrPB24VANnVBG','yMvUy2HTyxjRCW','CMvMCMvZAeLUDgvYDMfS','A2v5CW','z2v0vgLTzq','ndC3ote4uengzfnY','Aw5PDgLHBgL6zq','C29YDa','BMvLzhnszwzYzxnO','C291CMnL','DMfSDwvZ','mtG1otiWsMjlvvbe','x2DLDejLC3rnB2rLBezVCLrHC2S','C3bLzwq','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','BgvUz3rO','mJmWmZe1yLn6qxLW','BwfW','mtbAzhzIwvC','DgfZA3m','z2v0u3rHDhvZ','mMrns0jluG','yxP1CMvcywnRzw5KvxjS','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','y29UzMLN','zxjYB3i','x2DLDezHC3rLC3rnB2rLBa','mtKXnJi3muTQCLz5Aa','Bwf4','y3jLyxrPDMu','CxvPy2STDgfZA3m','x3nJAgvKDwXLuMvMCMvZAa','r0vu','Dw5RBM93BG','Bw9KzwXZ','BM93','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','mti1ndmZnwXkreTWrW','BwvZC2fNzq','yw5HBhLZAxm','AxnmB2fKAw5N','BgfZDfvWzgf0zwq','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','C3rHDhvZ','mtqYnZK5m3jzuwHPwa','qMvHCMvYia','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','nKnZrwTIsW','zgvIDwC','Bg9Nz2vY','mJq1otC2u0zWsNjU'];a0_0xff92=function(){return _0x39b56c;};return a0_0xff92();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0x8c3c(_0x18027a,_0x755289){_0x18027a=_0x18027a-0xf9;const _0xff9243=a0_0xff92();let _0x8c3c3b=_0xff9243[_0x18027a];if(a0_0x8c3c['lUOnoL']===undefined){var _0x16d7ef=function(_0x165276){const _0x51f00d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x32140d='',_0x51c314='';for(let _0x121f28=0x0,_0x1b0cf6,_0x1cc196,_0x2b529a=0x0;_0x1cc196=_0x165276['charAt'](_0x2b529a++);~_0x1cc196&&(_0x1b0cf6=_0x121f28%0x4?_0x1b0cf6*0x40+_0x1cc196:_0x1cc196,_0x121f28++%0x4)?_0x32140d+=String['fromCharCode'](0xff&_0x1b0cf6>>(-0x2*_0x121f28&0x6)):0x0){_0x1cc196=_0x51f00d['indexOf'](_0x1cc196);}for(let _0x3672a1=0x0,_0x5655d1=_0x32140d['length'];_0x3672a1<_0x5655d1;_0x3672a1++){_0x51c314+='%'+('00'+_0x32140d['charCodeAt'](_0x3672a1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51c314);};a0_0x8c3c['WGUcpg']=_0x16d7ef,a0_0x8c3c['rGGHar']={},a0_0x8c3c['lUOnoL']=!![];}const _0x45a0b0=_0xff9243[0x0],_0x3c916c=_0x18027a+_0x45a0b0,_0x2120ed=a0_0x8c3c['rGGHar'][_0x3c916c];return!_0x2120ed?(_0x8c3c3b=a0_0x8c3c['WGUcpg'](_0x8c3c3b),a0_0x8c3c['rGGHar'][_0x3c916c]=_0x8c3c3b):_0x8c3c3b=_0x2120ed,_0x8c3c3b;}class BenchmarkService{constructor(_0x32140d,_0x51c314){const _0x41eef6=a0_0x8c3c;this['config']=_0x32140d,this['logger']=_0x51c314,this['benchmarks']=null,this[_0x41eef6(0x128)]=null,this[_0x41eef6(0x127)]=![],this[_0x41eef6(0x115)]='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async[a0_0x4dfa4b(0x105)](){const _0x3cd73e=a0_0x4dfa4b;try{await this['loadBenchmarks'](),this[_0x3cd73e(0x11e)](),this['logger']['info'](_0x3cd73e(0x12e));}catch(_0x121f28){this['logger'][_0x3cd73e(0x118)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x121f28[_0x3cd73e(0x125)]}),this[_0x3cd73e(0x100)]=null;}}['getBenchmarks'](){const _0x5a3d93=a0_0x4dfa4b;if(!this[_0x5a3d93(0x100)])return this['logger']['error'](_0x5a3d93(0xfd),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x326389=a0_0x4dfa4b;if(this['isLoading']){this[_0x326389(0xfa)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x326389(0x127)]=!![];try{const _0x1b0cf6=await this[_0x326389(0x12d)]();if(_0x1b0cf6)this['benchmarks']=_0x1b0cf6,this['lastUpdated']=new Date(),this[_0x326389(0xfa)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x1b0cf6[_0x326389(0x121)]?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x1cc196){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x1cc196[_0x326389(0x125)],'endpoint':url}),!this[_0x326389(0x100)]&&(this['benchmarks']=null);}finally{this['isLoading']=![];}}['getBenchmarkTable'](){const _0x2b529a=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||'unknown','models':_0x2b529a['models']||[],'tasks':_0x2b529a['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x2b529a)};}[a0_0x4dfa4b(0x107)](){const _0x3d0541=a0_0x4dfa4b;if(!this['lastUpdated'])return!![];const _0x3672a1=Date[_0x3d0541(0x122)]()-this[_0x3d0541(0x128)][_0x3d0541(0x103)]();return _0x3672a1>this['refreshInterval'];}async[a0_0x4dfa4b(0x12d)](){const _0x520e22=a0_0x4dfa4b,_0x5655d1=this['azureBackendUrl']+_0x520e22(0x123);let _0x17557d=null;this[_0x520e22(0x117)]['apiKey']&&(_0x17557d=this[_0x520e22(0x117)]['apiKey']);const _0x3e7fb0={'method':_0x520e22(0x11f),'headers':{'Content-Type':_0x520e22(0xff),..._0x17557d&&{'Authorization':_0x520e22(0x12c)+_0x17557d}},'timeout':0x2710};this[_0x520e22(0xfa)][_0x520e22(0xf9)]('Fetching benchmarks from Azure backend',{'url':_0x5655d1});const _0x8c585c=await fetch(_0x5655d1,_0x3e7fb0);if(!_0x8c585c['ok'])throw new Error('HTTP\x20'+_0x8c585c[_0x520e22(0x12a)]+':\x20'+_0x8c585c['statusText']);const _0x26505d=await _0x8c585c['json']();return _0x26505d;}[a0_0x4dfa4b(0x10d)](_0x4172b8){const _0x21edff=a0_0x4dfa4b,_0x2f7ee8=_0x4172b8[_0x21edff(0x121)]||[];return{'totalModels':_0x2f7ee8['length'],'taskCategories':Object[_0x21edff(0x102)](_0x4172b8['tasks']||{}),'bestForCoding':this[_0x21edff(0x10b)](_0x2f7ee8,'coding'),'bestForAnalysis':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x126)),'bestForQuickTasks':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x11d)),'bestForCreative':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x11c)),'fastestModel':this['_getFastestModel'](_0x2f7ee8),'mostCostEfficient':this['_getMostCostEfficient'](_0x2f7ee8)};}[a0_0x4dfa4b(0x10b)](_0x86a7d1,_0x15770a){const _0x32275d=a0_0x4dfa4b;return _0x86a7d1['filter'](_0x56688c=>_0x56688c['tasks']&&_0x56688c['tasks'][_0x15770a])[_0x32275d(0x106)]((_0x1895ec,_0x2d24e6)=>(_0x2d24e6[_0x32275d(0x112)][_0x15770a]['score']||0x0)-(_0x1895ec['tasks'][_0x15770a]['score']||0x0))[0x0]?.['name']||_0x32275d(0x120);}[a0_0x4dfa4b(0x119)](_0x38cb0a){const _0x35b50c=a0_0x4dfa4b,_0x472ee6={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x38cb0a['sort']((_0xdcba98,_0x8bfb0f)=>{const _0x575ebc=a0_0x8c3c,_0x54e9f0=Math[_0x575ebc(0x11b)](...Object['values'](_0xdcba98[_0x575ebc(0x112)]||{})[_0x575ebc(0x110)](_0xa1b908=>_0x472ee6[_0xa1b908[_0x575ebc(0x10c)]]||0x0)),_0x359e9e=Math[_0x575ebc(0x11b)](...Object[_0x575ebc(0x109)](_0x8bfb0f[_0x575ebc(0x112)]||{})['map'](_0x4b9c2e=>_0x472ee6[_0x4b9c2e['speed']]||0x0));return _0x359e9e-_0x54e9f0;})[0x0]?.['name']||_0x35b50c(0x120);}['_getMostCostEfficient'](_0x35a172){const _0x716170=a0_0x4dfa4b,_0x3cd56f={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x35a172[_0x716170(0x106)]((_0x18d4c9,_0x31e21e)=>{const _0x9fa16=_0x716170,_0x55b581=Math['max'](...Object['values'](_0x18d4c9[_0x9fa16(0x112)]||{})[_0x9fa16(0x110)](_0x3bcc02=>_0x3cd56f[_0x3bcc02['cost']]||0x0)),_0xbf8b98=Math['max'](...Object[_0x9fa16(0x109)](_0x31e21e['tasks']||{})['map'](_0x366f13=>_0x3cd56f[_0x366f13['cost']]||0x0));return _0xbf8b98-_0x55b581;})[0x0]?.[_0x716170(0xfc)]||'unknown';}['_scheduleRefresh'](){const _0x55aaac=a0_0x4dfa4b;setInterval(async()=>{const _0x5cfc3c=a0_0x8c3c;this[_0x5cfc3c(0x107)]()&&(this[_0x5cfc3c(0xfa)]['debug'](_0x5cfc3c(0x129)),await this[_0x5cfc3c(0xfe)]());},this[_0x55aaac(0x101)]);}async['forceRefresh'](){const _0x133d95=a0_0x4dfa4b;this[_0x133d95(0xfa)]['info'](_0x133d95(0x116)),await this[_0x133d95(0xfe)]();}[a0_0x4dfa4b(0x113)](){const _0x2cc59e=a0_0x4dfa4b;return{'initialized':!!this[_0x2cc59e(0x100)],'lastUpdated':this['lastUpdated']?.['toISOString']()||null,'source':this['benchmarks']?.[_0x2cc59e(0x108)]||_0x2cc59e(0x120),'modelCount':this['benchmarks']?.['models']?.[_0x2cc59e(0x10e)]||0x0,'isLoading':this[_0x2cc59e(0x127)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
@@ -1 +1 @@
1
- const a0_0x398c00=a0_0x2441;function a0_0x2441(_0x3faf6c,_0xadc7be){_0x3faf6c=_0x3faf6c-0x10f;const _0x2134cd=a0_0x2134();let _0x2441c8=_0x2134cd[_0x3faf6c];if(a0_0x2441['ifuXRJ']===undefined){var _0x48c44c=function(_0x24a234){const _0x2d647b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56224d='',_0x3d9de3='';for(let _0x433397=0x0,_0x42b67d,_0x11385a,_0x491f8c=0x0;_0x11385a=_0x24a234['charAt'](_0x491f8c++);~_0x11385a&&(_0x42b67d=_0x433397%0x4?_0x42b67d*0x40+_0x11385a:_0x11385a,_0x433397++%0x4)?_0x56224d+=String['fromCharCode'](0xff&_0x42b67d>>(-0x2*_0x433397&0x6)):0x0){_0x11385a=_0x2d647b['indexOf'](_0x11385a);}for(let _0x592a19=0x0,_0x4124a9=_0x56224d['length'];_0x592a19<_0x4124a9;_0x592a19++){_0x3d9de3+='%'+('00'+_0x56224d['charCodeAt'](_0x592a19)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3d9de3);};a0_0x2441['SHdMtt']=_0x48c44c,a0_0x2441['OCKEtu']={},a0_0x2441['ifuXRJ']=!![];}const _0x190293=_0x2134cd[0x0],_0x7cc9ea=_0x3faf6c+_0x190293,_0xb40942=a0_0x2441['OCKEtu'][_0x7cc9ea];return!_0xb40942?(_0x2441c8=a0_0x2441['SHdMtt'](_0x2441c8),a0_0x2441['OCKEtu'][_0x7cc9ea]=_0x2441c8):_0x2441c8=_0xb40942,_0x2441c8;}(function(_0xb5503f,_0x2bb4b9){const _0x48db99=a0_0x2441,_0x2a650a=_0xb5503f();while(!![]){try{const _0x33d8fe=parseInt(_0x48db99(0x12f))/0x1*(parseInt(_0x48db99(0x15f))/0x2)+-parseInt(_0x48db99(0x130))/0x3+parseInt(_0x48db99(0x11a))/0x4*(parseInt(_0x48db99(0x125))/0x5)+parseInt(_0x48db99(0x110))/0x6+-parseInt(_0x48db99(0x12e))/0x7*(-parseInt(_0x48db99(0x14b))/0x8)+parseInt(_0x48db99(0x145))/0x9+parseInt(_0x48db99(0x132))/0xa*(-parseInt(_0x48db99(0x136))/0xb);if(_0x33d8fe===_0x2bb4b9)break;else _0x2a650a['push'](_0x2a650a['shift']());}catch(_0x4d573f){_0x2a650a['push'](_0x2a650a['shift']());}}}(a0_0x2134,0xcaf28));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x2134(){const _0x5a67fd=['C29YDa','yNvKz2v0CW','Bwf4','mZC2A1HlzgrP','D2vLA2X5','BM93','rMfPBgvKihrVihrYywnRihvZywDL','Dw5ZAgLMDa','C2v0','C3bSAxq','refjtfK','zgfPBhLbDMvYywDLCW','y3jLyxrLrw1WDhLvC2fNzq','Dg90ywXFDg9Rzw5Z','ANnVBG','y2vPBa','Aw5PDgLHBgL6zvvZywDLrw50CNK','ywDLBNrjza','q29ZDa','Dg9WqwDLBNrZ','Bw9UDgHSEq','ywXLCNrZ','Aw5WDxq','mLHUv1fvwG','CMvXDwvZDhm','DxnHz2u','C2vUzej1zgDLDefSzxj0','Dw5KzwzPBMvK','y29UDMvYDfrVq1nw','Bw9KzwXjza','Dg90ywW','rgfPBhK','Dg9Rzw5ZqNLeyxK','ntm3mtyWmLneAM1jwG','y2HLy2TcDwrNzxrmAw1PDhm','y2HLy2TuAhjLC2HVBgrbBgvYDhm','z2v0','Dg9ju09tDhjPBMC','z2v0v2vLA0TLEq','AgfZ','BgfZDefSzxj0vgLTzxm','z2v0tw9UDgHlzxK','zxjYB3i','mZG2ngLcv3Lhzq','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','y29ZDa','yNLbz2vUDa','C2XPy2u','AM9PBG','C2f2zvvZywDLrgf0yq','vxnHz2uGzgf0ysbZyxzLza','zgfPBhK','z2v0vxnHz2u','ugvYAw9K','mJyXmerwr0LgCG','zNjVBq','DhjHy2TvC2fNzq','ChjVBxb0x3rVA2vUCW','C3rYAw5NAwz5','y2HLy2TuAhjLC2HVBgq','tw9KzwW','z2v0tw9UDgG','veHsrvnit0XeuW','mte0otG5wLvby2D5','mJm2mtuZt3vbrvvo','mZmWnJi3uwXWrKLU','C2v0DxbqzxjPB2rPy1nHDMu','mJm4otqWv0fUzufQ','CgfKu3rHCNq','ChvZAa','qNvKz2v0igXPBwL0igv4y2vLzgvK','mta0nxHzren6sa','zM9YrwfJAa','D2fYBG','Dg9tDhjPBMC','Bg9Nz2vY','zxHWB3j0vxnHz2veyxrH','z2v0rNvSBfLLyxi','yNLnB2rLBa','y2fSy3vSyxrLq29ZDa','DxbKyxrLvxnHz2vfBNrYEq','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','Dg9Rzw5Z','z2v0rgf5s2v5','zw1PDa','BwfW','nZiZmZaZmhfZu2v3ta','zw50CMLLCW','uMvXDwvZDhm'];a0_0x2134=function(){return _0x5a67fd;};return a0_0x2134();}export class BudgetService{constructor(_0x56224d,_0x3d9de3){const _0x136797=a0_0x2441;this['config']=_0x56224d||{},this['logger']=_0x3d9de3,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x136797(0x152)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS['MONTHLY']},this[_0x136797(0x15d)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x136797(0x12d)],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x136797(0x131)]();}[a0_0x398c00(0x127)](_0x433397,_0x42b67d,_0x11385a){const _0x59bb8a=a0_0x398c00;try{const _0x491f8c=this[_0x59bb8a(0x13e)](_0x42b67d,_0x11385a),_0x592a19=new Date(),_0x4124a9=this['getDayKey'](_0x592a19),_0x435e56=this[_0x59bb8a(0x115)](_0x592a19),_0x51ede9=this[_0x59bb8a(0x118)](_0x592a19);this['initializeUsageEntry'](this[_0x59bb8a(0x161)][_0x59bb8a(0x122)],_0x4124a9),this[_0x59bb8a(0x158)](this[_0x59bb8a(0x161)][_0x59bb8a(0x14c)],_0x435e56),this[_0x59bb8a(0x158)](this['usage']['monthly'],_0x51ede9);const _0x5dc94c={'agentId':_0x433397,'modelId':_0x42b67d,'tokens':_0x11385a['total_tokens'],'cost':_0x491f8c,'timestamp':_0x592a19[_0x59bb8a(0x114)]()};return this[_0x59bb8a(0x13f)](this[_0x59bb8a(0x161)][_0x59bb8a(0x122)]['get'](_0x4124a9),_0x5dc94c),this['updateUsageEntry'](this[_0x59bb8a(0x161)][_0x59bb8a(0x14c)]['get'](_0x435e56),_0x5dc94c),this['updateUsageEntry'](this['usage']['monthly']['get'](_0x51ede9),_0x5dc94c),this['usage']['total']['tokens']+=_0x11385a[_0x59bb8a(0x155)],this['usage']['total'][_0x59bb8a(0x11c)]+=_0x491f8c,this[_0x59bb8a(0x161)][_0x59bb8a(0x166)]['requests']+=0x1,this['checkBudgetLimits'](_0x4124a9,_0x435e56,_0x51ede9),this['logger']['info']('Usage\x20tracked',{'agentId':_0x433397,'modelId':_0x42b67d,'tokens':_0x11385a[_0x59bb8a(0x155)],'cost':_0x491f8c,'totalCost':this[_0x59bb8a(0x161)]['total']['cost']}),{'cost':_0x491f8c,'totalCost':this['usage']['total'][_0x59bb8a(0x11c)],'totalTokens':this[_0x59bb8a(0x161)]['total']['tokens'],'dailyUsage':this[_0x59bb8a(0x161)][_0x59bb8a(0x122)]['get'](_0x4124a9),'budgetRemaining':this['getRemainingBudget']()};}catch(_0xc829dc){this[_0x59bb8a(0x13a)][_0x59bb8a(0x119)](_0x59bb8a(0x14e),{'error':_0xc829dc['message'],'agentId':_0x433397,'modelId':_0x42b67d});throw _0xc829dc;}}[a0_0x398c00(0x13e)](_0x242cd5,_0x385cc0){const _0x2e093d=a0_0x398c00,_0x2e5a5c=COST_PER_TOKEN[_0x242cd5];if(!_0x2e5a5c)return this['logger'][_0x2e093d(0x138)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x242cd5}),0x0;const _0x88719e=(_0x385cc0[_0x2e093d(0x128)]||0x0)*_0x2e5a5c[_0x2e093d(0x15e)],_0x3c8af1=(_0x385cc0['completion_tokens']||0x0)*_0x2e5a5c['output'];return _0x88719e+_0x3c8af1;}['getUsage'](_0x31573a='daily',_0x24504a=new Date()){const _0x35f547=a0_0x398c00;switch(_0x31573a){case _0x35f547(0x122):return this[_0x35f547(0x161)][_0x35f547(0x122)][_0x35f547(0x113)](this['getDayKey'](_0x24504a))||this['createEmptyUsage']();case'weekly':return this['usage']['weekly']['get'](this[_0x35f547(0x115)](_0x24504a))||this['createEmptyUsage']();case'monthly':return this['usage']['monthly'][_0x35f547(0x113)](this[_0x35f547(0x118)](_0x24504a))||this[_0x35f547(0x154)]();case _0x35f547(0x166):return{...this[_0x35f547(0x161)][_0x35f547(0x166)]};default:throw new Error('Invalid\x20period:\x20'+_0x31573a);}}['getAgentUsage'](_0x1d49f1,_0x27f703='daily'){const _0x592b5a=a0_0x398c00,_0x37a03a=this[_0x592b5a(0x123)](_0x27f703);return _0x37a03a[_0x592b5a(0x11d)]?.[_0x1d49f1]||this[_0x592b5a(0x154)]();}['getModelUsage'](_0x3d075f,_0x5d2d5f='daily'){const _0x292f6a=this['getUsage'](_0x5d2d5f);return _0x292f6a['byModel']?.[_0x3d075f]||this['createEmptyUsage']();}['setBudgets'](_0x114b60){const _0x334d2a=a0_0x398c00;if(_0x114b60[_0x334d2a(0x122)]!==undefined)this[_0x334d2a(0x149)]['daily']=_0x114b60['daily'];if(_0x114b60[_0x334d2a(0x14c)]!==undefined)this['budgets']['weekly']=_0x114b60['weekly'];if(_0x114b60['monthly']!==undefined)this[_0x334d2a(0x149)][_0x334d2a(0x15c)]=_0x114b60[_0x334d2a(0x15c)];this['logger']['info']('Budget\x20limits\x20updated',this[_0x334d2a(0x149)]),this[_0x334d2a(0x120)]();}['getRemainingBudget'](){const _0x512594=a0_0x398c00,_0x2a2b1b=new Date(),_0x191ba0=this['getUsage']('daily',_0x2a2b1b),_0x346437=this['getUsage']('weekly',_0x2a2b1b),_0x311fe0=this[_0x512594(0x123)](_0x512594(0x15c),_0x2a2b1b);return{'daily':Math['max'](0x0,this[_0x512594(0x149)]['daily']-_0x191ba0[_0x512594(0x11c)]),'weekly':Math[_0x512594(0x14a)](0x0,this['budgets'][_0x512594(0x14c)]-_0x346437['cost']),'monthly':Math[_0x512594(0x14a)](0x0,this['budgets']['monthly']-_0x311fe0[_0x512594(0x11c)])};}['isWithinBudget'](_0x10f330=a0_0x398c00(0x122)){const _0x212438=a0_0x398c00,_0x45fdb3=this['getUsage'](_0x10f330),_0x2ca158=this['budgets'][_0x10f330];return _0x45fdb3[_0x212438(0x11c)]<=_0x2ca158;}['getUsageTrends'](_0x3ab614=0x1e){const _0x306505=a0_0x398c00,_0x73b8d8={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x448bf3=new Date();let _0x7b5547=0x0,_0x48d13a=0x0,_0x5f2d66=0x0;const _0x44c433=new Map(),_0x35acb4=new Map();for(let _0x38ef20=0x0;_0x38ef20<_0x3ab614;_0x38ef20++){const _0x4ea373=new Date(_0x448bf3);_0x4ea373['setDate'](_0x4ea373['getDate']()-_0x38ef20);const _0x580594=this[_0x306505(0x142)](_0x4ea373),_0x549453=this['usage'][_0x306505(0x122)]['get'](_0x580594);_0x549453?(_0x7b5547+=_0x549453['cost'],_0x48d13a+=_0x549453[_0x306505(0x141)],_0x5f2d66+=_0x549453[_0x306505(0x160)],_0x73b8d8['costByDay'][_0x306505(0x14f)]({'date':_0x580594,'cost':_0x549453[_0x306505(0x11c)]}),_0x73b8d8[_0x306505(0x10f)]['unshift']({'date':_0x580594,'tokens':_0x549453['tokens']}),Object[_0x306505(0x146)](_0x549453[_0x306505(0x11d)]||{})['forEach'](([_0x25a2f7,_0x2ba2d5])=>{const _0x506dc0=_0x306505;!_0x44c433[_0x506dc0(0x116)](_0x25a2f7)&&_0x44c433['set'](_0x25a2f7,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x4029c9=_0x44c433['get'](_0x25a2f7);_0x4029c9[_0x506dc0(0x11c)]+=_0x2ba2d5['cost'],_0x4029c9['tokens']+=_0x2ba2d5['tokens'],_0x4029c9[_0x506dc0(0x160)]+=_0x2ba2d5[_0x506dc0(0x160)];}),Object[_0x306505(0x146)](_0x549453[_0x306505(0x13d)]||{})['forEach'](([_0x519479,_0x548da4])=>{const _0x24be16=_0x306505;!_0x35acb4['has'](_0x519479)&&_0x35acb4[_0x24be16(0x150)](_0x519479,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x23d957=_0x35acb4[_0x24be16(0x113)](_0x519479);_0x23d957['cost']+=_0x548da4['cost'],_0x23d957['tokens']+=_0x548da4[_0x24be16(0x141)],_0x23d957['requests']+=_0x548da4[_0x24be16(0x160)];})):(_0x73b8d8['costByDay'][_0x306505(0x14f)]({'date':_0x580594,'cost':0x0}),_0x73b8d8[_0x306505(0x10f)]['unshift']({'date':_0x580594,'tokens':0x0}));}return _0x73b8d8[_0x306505(0x153)][_0x306505(0x11c)]=_0x7b5547/_0x3ab614,_0x73b8d8[_0x306505(0x153)]['tokens']=_0x48d13a/_0x3ab614,_0x73b8d8['dailyAverages'][_0x306505(0x160)]=_0x5f2d66/_0x3ab614,_0x73b8d8[_0x306505(0x15b)]=Array[_0x306505(0x126)](_0x44c433[_0x306505(0x146)]())[_0x306505(0x144)](([_0x4c126b,_0x16ea48])=>({'id':_0x4c126b,..._0x16ea48}))[_0x306505(0x148)]((_0x137e2f,_0x48905a)=>_0x48905a[_0x306505(0x11c)]-_0x137e2f[_0x306505(0x11c)])[_0x306505(0x11e)](0x0,0xa),_0x73b8d8['topModels']=Array[_0x306505(0x126)](_0x35acb4[_0x306505(0x146)]())['map'](([_0x11ecf4,_0x195a5c])=>({'id':_0x11ecf4,..._0x195a5c}))[_0x306505(0x148)]((_0x5c94e1,_0x34af50)=>_0x34af50[_0x306505(0x11c)]-_0x5c94e1[_0x306505(0x11c)])[_0x306505(0x11e)](0x0,0xa),_0x73b8d8;}[a0_0x398c00(0x13b)](_0x21ff8e=a0_0x398c00(0x156),_0x8899bf=null,_0x958bde=null){const _0x455378=a0_0x398c00,_0x173ae7={'budgets':this[_0x455378(0x149)],'total':this[_0x455378(0x161)]['total'],'daily':{},'weekly':{},'monthly':{}},_0x1cf944=(_0x1a8fbc,_0x25984a)=>{const _0x5e311c={};return _0x1a8fbc['forEach']((_0x272b76,_0x14c11c)=>{const _0x4ade6f=_0x25984a(_0x14c11c);(!_0x8899bf||_0x4ade6f>=_0x8899bf)&&(!_0x958bde||_0x4ade6f<=_0x958bde)&&(_0x5e311c[_0x14c11c]=_0x272b76);}),_0x5e311c;};_0x8899bf||_0x958bde?(_0x173ae7[_0x455378(0x122)]=_0x1cf944(this[_0x455378(0x161)][_0x455378(0x122)],_0x6c6260=>new Date(_0x6c6260)),_0x173ae7['weekly']=_0x1cf944(this['usage']['weekly'],_0x571884=>new Date(_0x571884)),_0x173ae7['monthly']=_0x1cf944(this[_0x455378(0x161)]['monthly'],_0x295226=>new Date(_0x295226+'-01'))):(this[_0x455378(0x161)]['daily'][_0x455378(0x137)]((_0x5747f9,_0x307a38)=>_0x173ae7['daily'][_0x307a38]=_0x5747f9),this['usage'][_0x455378(0x14c)][_0x455378(0x137)]((_0x36bf1b,_0x521906)=>_0x173ae7['weekly'][_0x521906]=_0x36bf1b),this['usage'][_0x455378(0x15c)][_0x455378(0x137)]((_0x514eb7,_0x1f5f1b)=>_0x173ae7[_0x455378(0x15c)][_0x1f5f1b]=_0x514eb7));if(_0x21ff8e==='csv')return this['convertToCSV'](_0x173ae7);return JSON[_0x455378(0x129)](_0x173ae7,null,0x2);}['initializeUsageEntry'](_0xf5aeb7,_0x15a626){const _0x5b4794=a0_0x398c00;!_0xf5aeb7['has'](_0x15a626)&&_0xf5aeb7['set'](_0x15a626,this[_0x5b4794(0x154)]());}[a0_0x398c00(0x154)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x351ff0,_0x4d23b2){const _0x103ab4=a0_0x398c00;_0x351ff0['cost']+=_0x4d23b2['cost'],_0x351ff0['tokens']+=_0x4d23b2[_0x103ab4(0x141)],_0x351ff0['requests']+=0x1,!_0x351ff0['byAgent'][_0x4d23b2['agentId']]&&(_0x351ff0[_0x103ab4(0x11d)][_0x4d23b2['agentId']]=this[_0x103ab4(0x154)]()),_0x351ff0['byAgent'][_0x4d23b2['agentId']][_0x103ab4(0x11c)]+=_0x4d23b2[_0x103ab4(0x11c)],_0x351ff0[_0x103ab4(0x11d)][_0x4d23b2['agentId']][_0x103ab4(0x141)]+=_0x4d23b2[_0x103ab4(0x141)],_0x351ff0[_0x103ab4(0x11d)][_0x4d23b2[_0x103ab4(0x159)]]['requests']+=0x1,!_0x351ff0['byModel'][_0x4d23b2['modelId']]&&(_0x351ff0['byModel'][_0x4d23b2[_0x103ab4(0x165)]]=this['createEmptyUsage']()),_0x351ff0['byModel'][_0x4d23b2['modelId']][_0x103ab4(0x11c)]+=_0x4d23b2[_0x103ab4(0x11c)],_0x351ff0['byModel'][_0x4d23b2['modelId']]['tokens']+=_0x4d23b2[_0x103ab4(0x141)],_0x351ff0['byModel'][_0x4d23b2[_0x103ab4(0x165)]]['requests']+=0x1;}[a0_0x398c00(0x111)](_0x482540,_0xf057e5,_0x133dba){const _0x468d90=a0_0x398c00,_0x5a470b=this['usage'][_0x468d90(0x122)][_0x468d90(0x113)](_0x482540),_0x3df44b=this[_0x468d90(0x161)][_0x468d90(0x14c)][_0x468d90(0x113)](_0xf057e5),_0x3202ef=this['usage'][_0x468d90(0x15c)][_0x468d90(0x113)](_0x133dba);_0x5a470b[_0x468d90(0x11c)]>this['budgets']['daily']&&this[_0x468d90(0x162)](_0x468d90(0x122),_0x5a470b['cost'],this['budgets']['daily']),_0x3df44b[_0x468d90(0x11c)]>this['budgets'][_0x468d90(0x14c)]&&this[_0x468d90(0x162)](_0x468d90(0x14c),_0x3df44b['cost'],this[_0x468d90(0x149)]['weekly']),_0x3202ef['cost']>this['budgets']['monthly']&&this['sendBudgetAlert'](_0x468d90(0x15c),_0x3202ef[_0x468d90(0x11c)],this[_0x468d90(0x149)]['monthly']),this[_0x468d90(0x112)](_0x5a470b,_0x3df44b,_0x3202ef);}['checkThresholdAlerts'](_0x449981,_0x4b545e,_0x1c5a04){const _0x4ddb58=a0_0x398c00,_0x14775d=this[_0x4ddb58(0x15d)]['thresholds'];this[_0x4ddb58(0x12a)]('daily',_0x449981[_0x4ddb58(0x11c)],this[_0x4ddb58(0x149)]['daily'],_0x14775d),this[_0x4ddb58(0x12a)]('weekly',_0x4b545e['cost'],this['budgets']['weekly'],_0x14775d),this['checkThreshold'](_0x4ddb58(0x15c),_0x1c5a04['cost'],this[_0x4ddb58(0x149)][_0x4ddb58(0x15c)],_0x14775d);}[a0_0x398c00(0x12a)](_0x31a436,_0x1ef903,_0x62dde3,_0x4a2c22){const _0x4ebebf=a0_0x398c00,_0x1c5aeb=_0x1ef903/_0x62dde3*0x64;for(const _0x22343b of _0x4a2c22){if(_0x1c5aeb>=_0x22343b){const _0x2e65a0=_0x31a436+'_'+_0x22343b,_0x1d63d=this[_0x4ebebf(0x15d)][_0x4ebebf(0x117)][_0x4ebebf(0x113)](_0x2e65a0),_0x3cb821=Date[_0x4ebebf(0x14d)]();(!_0x1d63d||_0x3cb821-_0x1d63d>0x36ee80)&&(this['sendThresholdAlert'](_0x31a436,_0x1c5aeb,_0x22343b,_0x1ef903,_0x62dde3),this['alerts']['lastAlertTimes'][_0x4ebebf(0x150)](_0x2e65a0,_0x3cb821));break;}}}['sendBudgetAlert'](_0xf33a77,_0x341658,_0x537a7b){const _0x1b09e5=a0_0x398c00;this['logger']['warn'](_0x1b09e5(0x135),{'period':_0xf33a77,'currentUsage':_0x341658,'budgetLimit':_0x537a7b,'excess':_0x341658-_0x537a7b}),typeof process!==_0x1b09e5(0x163)&&process['emit']&&process[_0x1b09e5(0x143)]('budgetAlert',{'type':'budget_exceeded','period':_0xf33a77,'currentUsage':_0x341658,'budgetLimit':_0x537a7b,'excess':_0x341658-_0x537a7b});}['sendThresholdAlert'](_0x413b4e,_0x1b5a74,_0x9d0aaa,_0x4367ac,_0x1b0794){const _0x2d78c3=a0_0x398c00;this[_0x2d78c3(0x13a)][_0x2d78c3(0x138)](_0x2d78c3(0x11b),{'period':_0x413b4e,'percentage':Math['round'](_0x1b5a74),'threshold':_0x9d0aaa,'usage':_0x4367ac,'budget':_0x1b0794}),typeof process!==_0x2d78c3(0x163)&&process['emit']&&process[_0x2d78c3(0x143)]('budgetAlert',{'type':'threshold_reached','period':_0x413b4e,'percentage':Math['round'](_0x1b5a74),'threshold':_0x9d0aaa,'usage':_0x4367ac,'budget':_0x1b0794});}[a0_0x398c00(0x142)](_0x20c5db){const _0x4b3784=a0_0x398c00;return _0x20c5db['toISOString']()[_0x4b3784(0x151)]('T')[0x0];}[a0_0x398c00(0x115)](_0x9a2174){const _0x508e60=a0_0x398c00,_0x9742bd=_0x9a2174['getFullYear'](),_0x32e7d7=this['getWeekNumber'](_0x9a2174);return _0x9742bd+'-W'+_0x32e7d7[_0x508e60(0x139)]()['padStart'](0x2,'0');}[a0_0x398c00(0x118)](_0x39ddeb){const _0xd13704=a0_0x398c00,_0x34da99=_0x39ddeb[_0xd13704(0x13c)](),_0x29dcb6=_0x39ddeb[_0xd13704(0x12c)]()+0x1;return _0x34da99+'-'+_0x29dcb6[_0xd13704(0x139)]()[_0xd13704(0x133)](0x2,'0');}['getWeekNumber'](_0x49a585){const _0x48f169=a0_0x398c00,_0x2195f8=new Date(_0x49a585['getFullYear'](),0x0,0x1),_0x1bfe34=(_0x49a585-_0x2195f8)/0x5265c00;return Math[_0x48f169(0x157)]((_0x1bfe34+_0x2195f8['getDay']()+0x1)/0x7);}[a0_0x398c00(0x164)](_0x58ca55){const _0x318c69=a0_0x398c00,_0x37a733=[];return _0x37a733['push']([_0x318c69(0x124),'Date',_0x318c69(0x15a),'Tokens',_0x318c69(0x147),'Agent',_0x318c69(0x12b)]),Object['entries'](_0x58ca55['daily'])[_0x318c69(0x137)](([_0x4ed66f,_0x15bb71])=>{const _0x268635=_0x318c69;_0x37a733[_0x268635(0x134)](['Daily',_0x4ed66f,_0x15bb71['cost'],_0x15bb71['tokens'],_0x15bb71[_0x268635(0x160)],'','']),Object[_0x268635(0x146)](_0x15bb71['byAgent']||{})[_0x268635(0x137)](([_0xb69ef9,_0x26d816])=>{const _0x277114=_0x268635;_0x37a733[_0x277114(0x134)]([_0x277114(0x167),_0x4ed66f,_0x26d816['cost'],_0x26d816[_0x277114(0x141)],_0x26d816[_0x277114(0x160)],_0xb69ef9,'']);});}),_0x37a733[_0x318c69(0x144)](_0x475c88=>_0x475c88[_0x318c69(0x11f)](','))['join']('\x0a');}['loadUsageData'](){try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x1a8a27){this['logger']['error']('Failed\x20to\x20load\x20usage\x20data',{'error':_0x1a8a27['message']});}}[a0_0x398c00(0x120)](){const _0x5258b8=a0_0x398c00;try{this['logger']['debug'](_0x5258b8(0x121));}catch(_0x4f23d6){this[_0x5258b8(0x13a)][_0x5258b8(0x119)](_0x5258b8(0x140),{'error':_0x4f23d6['message']});}}[a0_0x398c00(0x131)](){setInterval(()=>{const _0x36a3df=a0_0x2441;this[_0x36a3df(0x120)]();},0x493e0);}}export default BudgetService;
1
+ const a0_0x724650=a0_0x1e31;function a0_0x1e31(_0x54b0f8,_0x5a2a36){_0x54b0f8=_0x54b0f8-0xef;const _0xac542f=a0_0xac54();let _0x1e3186=_0xac542f[_0x54b0f8];if(a0_0x1e31['eYbMkQ']===undefined){var _0xdb1714=function(_0x874371){const _0x3ee2e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x425aa4='',_0x279712='';for(let _0x9d779a=0x0,_0x1236bb,_0x336e16,_0x37d27c=0x0;_0x336e16=_0x874371['charAt'](_0x37d27c++);~_0x336e16&&(_0x1236bb=_0x9d779a%0x4?_0x1236bb*0x40+_0x336e16:_0x336e16,_0x9d779a++%0x4)?_0x425aa4+=String['fromCharCode'](0xff&_0x1236bb>>(-0x2*_0x9d779a&0x6)):0x0){_0x336e16=_0x3ee2e5['indexOf'](_0x336e16);}for(let _0xdb069d=0x0,_0xd3a1e3=_0x425aa4['length'];_0xdb069d<_0xd3a1e3;_0xdb069d++){_0x279712+='%'+('00'+_0x425aa4['charCodeAt'](_0xdb069d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x279712);};a0_0x1e31['EdyXAE']=_0xdb1714,a0_0x1e31['aMnalk']={},a0_0x1e31['eYbMkQ']=!![];}const _0x306cbd=_0xac542f[0x0],_0x1da0d2=_0x54b0f8+_0x306cbd,_0x52f401=a0_0x1e31['aMnalk'][_0x1da0d2];return!_0x52f401?(_0x1e3186=a0_0x1e31['EdyXAE'](_0x1e3186),a0_0x1e31['aMnalk'][_0x1da0d2]=_0x1e3186):_0x1e3186=_0x52f401,_0x1e3186;}(function(_0x27b771,_0x25bfa0){const _0x156012=a0_0x1e31,_0x2489d7=_0x27b771();while(!![]){try{const _0x10f9ab=-parseInt(_0x156012(0x144))/0x1*(-parseInt(_0x156012(0xef))/0x2)+-parseInt(_0x156012(0x104))/0x3*(-parseInt(_0x156012(0x12d))/0x4)+parseInt(_0x156012(0x130))/0x5+parseInt(_0x156012(0x12e))/0x6*(-parseInt(_0x156012(0x10d))/0x7)+parseInt(_0x156012(0x124))/0x8+parseInt(_0x156012(0x135))/0x9+-parseInt(_0x156012(0x128))/0xa;if(_0x10f9ab===_0x25bfa0)break;else _0x2489d7['push'](_0x2489d7['shift']());}catch(_0x47389e){_0x2489d7['push'](_0x2489d7['shift']());}}}(a0_0xac54,0x9dc92));function a0_0xac54(){const _0x4ed5fe=['z2v0rgf0zq','nJK1nJqWoe1brufhBq','Dg90ywXFDg9Rzw5Z','refjtfK','DxnHz2u','mtG5mZyXmdbzAKD5wgK','D2vLA2X5','BwfW','zgfPBhK','Aw5MBW','ndu1nKPmyNfqCq','mtC0r3jgqLHw','Bg9Nz2vY','mZeYntm0meH1z0XMAG','y29UzMLN','C29YDa','CgfKu3rHCNq','BM93','mZa0mJC3nevVwhfHBW','vxnHz2uGzgf0ysbZyxzLza','ywXLCNrZ','z2v0rNvSBfLLyxi','z2v0tw9UDgHlzxK','ChvZAa','Dg9tDhjPBMC','Bw9UDgHSEq','sw52ywXPzcbWzxjPB2q6ia','zNjVBq','z2v0v2vLA0TLEq','z2v0','y2fSy3vSyxrLq29ZDa','C2v0DxbqzxjPB2rPy1nHDMu','zxjYB3i','nuzkthHxwa','y3jLyxrLrw1WDhLvC2fNzq','zgvIDwC','D2fYBG','ntmWntrMrhfhzgO','y2HLy2TuAhjLC2HVBgq','yNvKz2v0CW','Bwf4','Bg9HzfvZywDLrgf0yq','yNLnB2rLBa','C2v0qNvKz2v0CW','ChjVBxb0x3rVA2vUCW','Aw5WDxq','Bw9KzwXjza','yNLbz2vUDa','C2vUzfrOCMvZAg9SzefSzxj0','Aw5PDgLHBgL6zvvZywDLrw50CNK','zM9YrwfJAa','CMvXDwvZDhm','Dg9Rzw5Z','zgfPBhLbDMvYywDLCW','y29UDMvYDfrVq1nw','vg9Rzw5Z','AM9PBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mJa0ouPvt09Wza','zw50CMLLCW','z2v0rgf5','z2v0vxnHz2u','v0vfs0Xz','z2v0tw9KzwXvC2fNzq','ywDLBNrjza','z2v0uMvTywLUAw5NqNvKz2v0','y29ZDej5rgf5','ndKWotfOwNztBfG','DgHYzxnOB2XKx3jLywnOzwq','yNvKz2v0x2v4y2vLzgvK','AxnxAxrOAw5cDwrNzxq','CM91BMq','C3bSAxq','Dg90ywW','DxbKyxrLvxnHz2vfBNrYEq','rgf0zq','veHsrvnit0XeuW','y29ZDa','C2vUzej1zgDLDefSzxj0','C2v0','Dw5ZAgLMDa','z2v0rgf5s2v5','zw1PDa','uMvXDwvZDhm','qNvKz2v0igXPBwL0CYb1CgrHDgvK','AgfZ','tu9oveHmwq','yNvKz2v0qwXLCNq','q29ZDa'];a0_0xac54=function(){return _0x4ed5fe;};return a0_0xac54();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x425aa4,_0x279712){const _0x2a9d1b=a0_0x1e31;this[_0x2a9d1b(0x131)]=_0x425aa4||{},this[_0x2a9d1b(0x12f)]=_0x279712,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x2a9d1b(0x126)],'weekly':BUDGET_LIMITS[_0x2a9d1b(0x108)],'monthly':BUDGET_LIMITS[_0x2a9d1b(0x120)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x2a9d1b(0x116)],'lastAlertTimes':new Map()},this[_0x2a9d1b(0xf3)](),this[_0x2a9d1b(0x142)]();}['trackUsage'](_0x9d779a,_0x1236bb,_0x336e16){const _0x33ea51=a0_0x1e31;try{const _0x37d27c=this[_0x33ea51(0x141)](_0x1236bb,_0x336e16),_0xdb069d=new Date(),_0xd3a1e3=this['getDayKey'](_0xdb069d),_0x4094bc=this[_0x33ea51(0x13f)](_0xdb069d),_0x44562a=this['getMonthKey'](_0xdb069d);this[_0x33ea51(0xfb)](this['usage']['daily'],_0xd3a1e3),this[_0x33ea51(0xfb)](this['usage']['weekly'],_0x4094bc),this[_0x33ea51(0xfb)](this['usage']['monthly'],_0x44562a);const _0x7c5e14={'agentId':_0x9d779a,'modelId':_0x1236bb,'tokens':_0x336e16['total_tokens'],'cost':_0x37d27c,'timestamp':_0xdb069d['toISOString']()};return this[_0x33ea51(0x114)](this[_0x33ea51(0x127)][_0x33ea51(0x12b)][_0x33ea51(0x140)](_0xd3a1e3),_0x7c5e14),this['updateUsageEntry'](this['usage']['weekly']['get'](_0x4094bc),_0x7c5e14),this['updateUsageEntry'](this['usage'][_0x33ea51(0x13c)][_0x33ea51(0x140)](_0x44562a),_0x7c5e14),this['usage'][_0x33ea51(0x113)][_0x33ea51(0xfe)]+=_0x336e16[_0x33ea51(0x125)],this['usage']['total'][_0x33ea51(0x117)]+=_0x37d27c,this['usage']['total']['requests']+=0x1,this['checkBudgetLimits'](_0xd3a1e3,_0x4094bc,_0x44562a),this['logger'][_0x33ea51(0x12c)]('Usage\x20tracked',{'agentId':_0x9d779a,'modelId':_0x1236bb,'tokens':_0x336e16[_0x33ea51(0x125)],'cost':_0x37d27c,'totalCost':this['usage']['total'][_0x33ea51(0x117)]}),{'cost':_0x37d27c,'totalCost':this[_0x33ea51(0x127)]['total']['cost'],'totalTokens':this[_0x33ea51(0x127)][_0x33ea51(0x113)]['tokens'],'dailyUsage':this['usage'][_0x33ea51(0x12b)]['get'](_0xd3a1e3),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x2492c9){this['logger'][_0x33ea51(0x143)]('Failed\x20to\x20track\x20usage',{'error':_0x2492c9['message'],'agentId':_0x9d779a,'modelId':_0x1236bb});throw _0x2492c9;}}['calculateCost'](_0x9bc8f,_0x14f7c9){const _0x43c48a=a0_0x1e31,_0x4b2f5f=COST_PER_TOKEN[_0x9bc8f];if(!_0x4b2f5f)return this[_0x43c48a(0x12f)][_0x43c48a(0x147)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x9bc8f}),0x0;const _0x33dd68=(_0x14f7c9[_0x43c48a(0xf6)]||0x0)*_0x4b2f5f[_0x43c48a(0xf7)],_0x2ac472=(_0x14f7c9['completion_tokens']||0x0)*_0x4b2f5f['output'];return _0x33dd68+_0x2ac472;}['getUsage'](_0x409295='daily',_0x1fa15f=new Date()){const _0x492516=a0_0x1e31;switch(_0x409295){case'daily':return this[_0x492516(0x127)][_0x492516(0x12b)][_0x492516(0x140)](this[_0x492516(0x11b)](_0x1fa15f))||this['createEmptyUsage']();case _0x492516(0x129):return this[_0x492516(0x127)]['weekly']['get'](this['getWeekKey'](_0x1fa15f))||this['createEmptyUsage']();case _0x492516(0x13c):return this[_0x492516(0x127)][_0x492516(0x13c)][_0x492516(0x140)](this['getMonthKey'](_0x1fa15f))||this[_0x492516(0x145)]();case'total':return{...this[_0x492516(0x127)]['total']};default:throw new Error(_0x492516(0x13d)+_0x409295);}}['getAgentUsage'](_0x45b7c3,_0x78a9f3='daily'){const _0x4382ab=this['getUsage'](_0x78a9f3);return _0x4382ab['byAgent']?.[_0x45b7c3]||this['createEmptyUsage']();}[a0_0x724650(0x109)](_0x32c519,_0x27136f='daily'){const _0x20a680=a0_0x724650,_0x2d0ce7=this['getUsage'](_0x27136f);return _0x2d0ce7[_0x20a680(0xf4)]?.[_0x32c519]||this[_0x20a680(0x145)]();}[a0_0x724650(0xf5)](_0x5b534f){const _0x1a41fe=a0_0x724650;if(_0x5b534f['daily']!==undefined)this['budgets'][_0x1a41fe(0x12b)]=_0x5b534f['daily'];if(_0x5b534f['weekly']!==undefined)this['budgets']['weekly']=_0x5b534f['weekly'];if(_0x5b534f['monthly']!==undefined)this[_0x1a41fe(0xf1)][_0x1a41fe(0x13c)]=_0x5b534f['monthly'];this[_0x1a41fe(0x12f)][_0x1a41fe(0x12c)](_0x1a41fe(0x11e),this['budgets']),this['saveUsageData']();}[a0_0x724650(0x10b)](){const _0x1026cf=a0_0x724650,_0x2c9d94=new Date(),_0x4d906e=this['getUsage']('daily',_0x2c9d94),_0x271377=this[_0x1026cf(0x107)]('weekly',_0x2c9d94),_0x5a85aa=this[_0x1026cf(0x107)]('monthly',_0x2c9d94);return{'daily':Math['max'](0x0,this['budgets'][_0x1026cf(0x12b)]-_0x4d906e['cost']),'weekly':Math[_0x1026cf(0xf2)](0x0,this[_0x1026cf(0xf1)][_0x1026cf(0x129)]-_0x271377[_0x1026cf(0x117)]),'monthly':Math['max'](0x0,this['budgets']['monthly']-_0x5a85aa['cost'])};}[a0_0x724650(0x110)](_0x5f5bc5=a0_0x724650(0x12b)){const _0x50c6da=a0_0x724650,_0xf0af7a=this[_0x50c6da(0x107)](_0x5f5bc5),_0x2fab71=this[_0x50c6da(0xf1)][_0x5f5bc5];return _0xf0af7a['cost']<=_0x2fab71;}['getUsageTrends'](_0x18fd48=0x1e){const _0x413bb0=a0_0x724650,_0x226d6e={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xac0583=new Date();let _0x34c864=0x0,_0x3d91eb=0x0,_0x55646d=0x0;const _0x3dce1b=new Map(),_0x5df2a0=new Map();for(let _0x3acceb=0x0;_0x3acceb<_0x18fd48;_0x3acceb++){const _0x1995b1=new Date(_0xac0583);_0x1995b1['setDate'](_0x1995b1[_0x413bb0(0x123)]()-_0x3acceb);const _0x3a10d2=this[_0x413bb0(0x11b)](_0x1995b1),_0x581132=this['usage']['daily'][_0x413bb0(0x140)](_0x3a10d2);_0x581132?(_0x34c864+=_0x581132['cost'],_0x3d91eb+=_0x581132[_0x413bb0(0xfe)],_0x55646d+=_0x581132[_0x413bb0(0xfd)],_0x226d6e[_0x413bb0(0x10c)]['unshift']({'date':_0x3a10d2,'cost':_0x581132['cost']}),_0x226d6e['tokensByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'tokens':_0x581132['tokens']}),Object[_0x413bb0(0x105)](_0x581132['byAgent']||{})['forEach'](([_0x2f6895,_0x57f000])=>{const _0x3ab428=_0x413bb0;!_0x3dce1b[_0x3ab428(0x11f)](_0x2f6895)&&_0x3dce1b[_0x3ab428(0x119)](_0x2f6895,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x30b11f=_0x3dce1b['get'](_0x2f6895);_0x30b11f['cost']+=_0x57f000['cost'],_0x30b11f[_0x3ab428(0xfe)]+=_0x57f000[_0x3ab428(0xfe)],_0x30b11f[_0x3ab428(0xfd)]+=_0x57f000[_0x3ab428(0xfd)];}),Object['entries'](_0x581132[_0x413bb0(0xf4)]||{})['forEach'](([_0x3ecd77,_0x291724])=>{const _0x3d66b9=_0x413bb0;!_0x5df2a0['has'](_0x3ecd77)&&_0x5df2a0[_0x3d66b9(0x119)](_0x3ecd77,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x359cf1=_0x5df2a0[_0x3d66b9(0x140)](_0x3ecd77);_0x359cf1[_0x3d66b9(0x117)]+=_0x291724[_0x3d66b9(0x117)],_0x359cf1[_0x3d66b9(0xfe)]+=_0x291724['tokens'],_0x359cf1['requests']+=_0x291724[_0x3d66b9(0xfd)];})):(_0x226d6e['costByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'cost':0x0}),_0x226d6e['tokensByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'tokens':0x0}));}return _0x226d6e['dailyAverages']['cost']=_0x34c864/_0x18fd48,_0x226d6e[_0x413bb0(0xff)]['tokens']=_0x3d91eb/_0x18fd48,_0x226d6e['dailyAverages']['requests']=_0x55646d/_0x18fd48,_0x226d6e['topAgents']=Array[_0x413bb0(0x13e)](_0x3dce1b[_0x413bb0(0x105)]())['map'](([_0x48b0b2,_0x89acfd])=>({'id':_0x48b0b2,..._0x89acfd}))[_0x413bb0(0x132)]((_0x810685,_0x4856d3)=>_0x4856d3['cost']-_0x810685['cost'])['slice'](0x0,0xa),_0x226d6e['topModels']=Array['from'](_0x5df2a0['entries']())['map'](([_0x1f064a,_0x73bdcf])=>({'id':_0x1f064a,..._0x73bdcf}))[_0x413bb0(0x132)]((_0x390760,_0x37cb97)=>_0x37cb97['cost']-_0x390760[_0x413bb0(0x117)])['slice'](0x0,0xa),_0x226d6e;}['exportUsageData'](_0x2ccfbf='json',_0x3d87ad=null,_0x3a655a=null){const _0x38d809=a0_0x724650,_0x1f5a16={'budgets':this['budgets'],'total':this['usage'][_0x38d809(0x113)],'daily':{},'weekly':{},'monthly':{}},_0x3fae38=(_0x1d9fc5,_0x146c29)=>{const _0x390f5a={};return _0x1d9fc5['forEach']((_0x3fe154,_0x352e83)=>{const _0x46b15c=_0x146c29(_0x352e83);(!_0x3d87ad||_0x46b15c>=_0x3d87ad)&&(!_0x3a655a||_0x46b15c<=_0x3a655a)&&(_0x390f5a[_0x352e83]=_0x3fe154);}),_0x390f5a;};_0x3d87ad||_0x3a655a?(_0x1f5a16['daily']=_0x3fae38(this['usage'][_0x38d809(0x12b)],_0xde8eb7=>new Date(_0xde8eb7)),_0x1f5a16[_0x38d809(0x129)]=_0x3fae38(this['usage'][_0x38d809(0x129)],_0x271316=>new Date(_0x271316)),_0x1f5a16[_0x38d809(0x13c)]=_0x3fae38(this['usage']['monthly'],_0x10b46d=>new Date(_0x10b46d+'-01'))):(this[_0x38d809(0x127)][_0x38d809(0x12b)][_0x38d809(0xfc)]((_0x5a7c97,_0x5d00b9)=>_0x1f5a16[_0x38d809(0x12b)][_0x5d00b9]=_0x5a7c97),this[_0x38d809(0x127)][_0x38d809(0x129)]['forEach']((_0x4f9fae,_0xed364f)=>_0x1f5a16[_0x38d809(0x129)][_0xed364f]=_0x4f9fae),this[_0x38d809(0x127)]['monthly'][_0x38d809(0xfc)]((_0x10415b,_0x487cd3)=>_0x1f5a16['monthly'][_0x487cd3]=_0x10415b));if(_0x2ccfbf==='csv')return this[_0x38d809(0x100)](_0x1f5a16);return JSON['stringify'](_0x1f5a16,null,0x2);}['initializeUsageEntry'](_0x2f8bc4,_0x2a2456){const _0x34244c=a0_0x724650;!_0x2f8bc4['has'](_0x2a2456)&&_0x2f8bc4[_0x34244c(0x119)](_0x2a2456,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x16942a,_0x2b6d0c){const _0x5b7caa=a0_0x724650;_0x16942a[_0x5b7caa(0x117)]+=_0x2b6d0c['cost'],_0x16942a[_0x5b7caa(0xfe)]+=_0x2b6d0c[_0x5b7caa(0xfe)],_0x16942a[_0x5b7caa(0xfd)]+=0x1,!_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c[_0x5b7caa(0x10a)]]&&(_0x16942a['byAgent'][_0x2b6d0c[_0x5b7caa(0x10a)]]=this[_0x5b7caa(0x145)]()),_0x16942a['byAgent'][_0x2b6d0c[_0x5b7caa(0x10a)]]['cost']+=_0x2b6d0c['cost'],_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c['agentId']]['tokens']+=_0x2b6d0c['tokens'],_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c['agentId']][_0x5b7caa(0xfd)]+=0x1,!_0x16942a['byModel'][_0x2b6d0c[_0x5b7caa(0xf8)]]&&(_0x16942a['byModel'][_0x2b6d0c['modelId']]=this[_0x5b7caa(0x145)]()),_0x16942a[_0x5b7caa(0xf4)][_0x2b6d0c[_0x5b7caa(0xf8)]][_0x5b7caa(0x117)]+=_0x2b6d0c['cost'],_0x16942a['byModel'][_0x2b6d0c[_0x5b7caa(0xf8)]][_0x5b7caa(0xfe)]+=_0x2b6d0c['tokens'],_0x16942a['byModel'][_0x2b6d0c['modelId']][_0x5b7caa(0xfd)]+=0x1;}['checkBudgetLimits'](_0x22a94d,_0x5c8864,_0x35fae1){const _0x59bfde=a0_0x724650,_0x36dad6=this[_0x59bfde(0x127)]['daily'][_0x59bfde(0x140)](_0x22a94d),_0x596bb6=this[_0x59bfde(0x127)][_0x59bfde(0x129)]['get'](_0x5c8864),_0x3c4c42=this['usage'][_0x59bfde(0x13c)]['get'](_0x35fae1);_0x36dad6[_0x59bfde(0x117)]>this['budgets']['daily']&&this[_0x59bfde(0x118)](_0x59bfde(0x12b),_0x36dad6['cost'],this[_0x59bfde(0xf1)]['daily']),_0x596bb6['cost']>this['budgets']['weekly']&&this['sendBudgetAlert'](_0x59bfde(0x129),_0x596bb6['cost'],this[_0x59bfde(0xf1)][_0x59bfde(0x129)]),_0x3c4c42['cost']>this['budgets']['monthly']&&this[_0x59bfde(0x118)]('monthly',_0x3c4c42['cost'],this['budgets'][_0x59bfde(0x13c)]),this[_0x59bfde(0x103)](_0x36dad6,_0x596bb6,_0x3c4c42);}['checkThresholdAlerts'](_0x154cb9,_0x44874a,_0x3e0c7d){const _0x10daf8=a0_0x724650,_0x3a2be2=this['alerts']['thresholds'];this['checkThreshold']('daily',_0x154cb9[_0x10daf8(0x117)],this[_0x10daf8(0xf1)]['daily'],_0x3a2be2),this[_0x10daf8(0xf0)]('weekly',_0x44874a[_0x10daf8(0x117)],this[_0x10daf8(0xf1)][_0x10daf8(0x129)],_0x3a2be2),this[_0x10daf8(0xf0)]('monthly',_0x3e0c7d[_0x10daf8(0x117)],this['budgets']['monthly'],_0x3a2be2);}[a0_0x724650(0xf0)](_0x99b342,_0x1f182e,_0x2efb61,_0xf0c095){const _0x1aa08c=a0_0x724650,_0x39dbad=_0x1f182e/_0x2efb61*0x64;for(const _0x31bbc9 of _0xf0c095){if(_0x39dbad>=_0x31bbc9){const _0x2e4358=_0x99b342+'_'+_0x31bbc9,_0x4e92f8=this[_0x1aa08c(0x137)]['lastAlertTimes'][_0x1aa08c(0x140)](_0x2e4358),_0x3ea48e=Date[_0x1aa08c(0x134)]();(!_0x4e92f8||_0x3ea48e-_0x4e92f8>0x36ee80)&&(this[_0x1aa08c(0xfa)](_0x99b342,_0x39dbad,_0x31bbc9,_0x1f182e,_0x2efb61),this[_0x1aa08c(0x137)]['lastAlertTimes'][_0x1aa08c(0x119)](_0x2e4358,_0x3ea48e));break;}}}['sendBudgetAlert'](_0x4141c3,_0x13c3b4,_0x1c422f){const _0x4a8e55=a0_0x724650;this['logger'][_0x4a8e55(0x147)]('Budget\x20limit\x20exceeded',{'period':_0x4141c3,'currentUsage':_0x13c3b4,'budgetLimit':_0x1c422f,'excess':_0x13c3b4-_0x1c422f}),typeof process!=='undefined'&&process['emit']&&process['emit'](_0x4a8e55(0x121),{'type':_0x4a8e55(0x10f),'period':_0x4141c3,'currentUsage':_0x13c3b4,'budgetLimit':_0x1c422f,'excess':_0x13c3b4-_0x1c422f});}['sendThresholdAlert'](_0x127a77,_0x222d6a,_0x3fe609,_0x47bb67,_0x1b0351){const _0x1d78d7=a0_0x724650;this[_0x1d78d7(0x12f)]['warn']('Budget\x20threshold\x20reached',{'period':_0x127a77,'percentage':Math['round'](_0x222d6a),'threshold':_0x3fe609,'usage':_0x47bb67,'budget':_0x1b0351}),typeof process!=='undefined'&&process[_0x1d78d7(0x11c)]&&process['emit']('budgetAlert',{'type':_0x1d78d7(0x10e),'period':_0x127a77,'percentage':Math[_0x1d78d7(0x111)](_0x222d6a),'threshold':_0x3fe609,'usage':_0x47bb67,'budget':_0x1b0351});}['getDayKey'](_0x55d8dc){const _0x109b50=a0_0x724650;return _0x55d8dc['toISOString']()[_0x109b50(0x112)]('T')[0x0];}['getWeekKey'](_0x1e1fe1){const _0x1eb7ce=a0_0x724650,_0x500175=_0x1e1fe1[_0x1eb7ce(0x138)](),_0x270c4e=this['getWeekNumber'](_0x1e1fe1);return _0x500175+'-W'+_0x270c4e['toString']()['padStart'](0x2,'0');}[a0_0x724650(0x139)](_0x4059f2){const _0x1af5fc=a0_0x724650,_0x1a4519=_0x4059f2[_0x1af5fc(0x138)](),_0x25e9bc=_0x4059f2['getMonth']()+0x1;return _0x1a4519+'-'+_0x25e9bc[_0x1af5fc(0x13b)]()[_0x1af5fc(0x133)](0x2,'0');}['getWeekNumber'](_0xa10e40){const _0x41ba0d=a0_0x724650,_0x82ba58=new Date(_0xa10e40[_0x41ba0d(0x138)](),0x0,0x1),_0x316178=(_0xa10e40-_0x82ba58)/0x5265c00;return Math['ceil']((_0x316178+_0x82ba58[_0x41ba0d(0x106)]()+0x1)/0x7);}['convertToCSV'](_0x5898b9){const _0x3dba08=a0_0x724650,_0x2aaed7=[];return _0x2aaed7['push'](['Period',_0x3dba08(0x115),_0x3dba08(0x122),_0x3dba08(0x101),_0x3dba08(0x11d),'Agent','Model']),Object['entries'](_0x5898b9['daily'])[_0x3dba08(0xfc)](([_0x181732,_0x10eb6a])=>{const _0x190779=_0x3dba08;_0x2aaed7[_0x190779(0x13a)](['Daily',_0x181732,_0x10eb6a[_0x190779(0x117)],_0x10eb6a['tokens'],_0x10eb6a[_0x190779(0xfd)],'','']),Object['entries'](_0x10eb6a[_0x190779(0xf9)]||{})[_0x190779(0xfc)](([_0x4a8b54,_0x5c12c3])=>{const _0x42ac7a=_0x190779;_0x2aaed7[_0x42ac7a(0x13a)](['Daily',_0x181732,_0x5c12c3['cost'],_0x5c12c3['tokens'],_0x5c12c3['requests'],_0x4a8b54,'']);});}),_0x2aaed7[_0x3dba08(0x12a)](_0x255287=>_0x255287[_0x3dba08(0x102)](','))['join']('\x0a');}[a0_0x724650(0xf3)](){const _0x1e3e7d=a0_0x724650;try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x3fb4f7){this[_0x1e3e7d(0x12f)][_0x1e3e7d(0x143)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x3fb4f7['message']});}}['saveUsageData'](){const _0x2d630c=a0_0x724650;try{this['logger'][_0x2d630c(0x146)](_0x2d630c(0x136));}catch(_0x6b947c){this[_0x2d630c(0x12f)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x6b947c['message']});}}[a0_0x724650(0x142)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
@@ -1 +1 @@
1
- const a0_0x4a371a=a0_0xa6be;function a0_0xa6be(_0x2100a2,_0x2718e5){_0x2100a2=_0x2100a2-0x1e4;const _0x493331=a0_0x4933();let _0xa6beed=_0x493331[_0x2100a2];if(a0_0xa6be['MFsBsO']===undefined){var _0x3c7583=function(_0x4b2ace){const _0x18a5be='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2a898a='',_0x2f6c52='';for(let _0x44f35f=0x0,_0x222b47,_0x57ba40,_0x2d512b=0x0;_0x57ba40=_0x4b2ace['charAt'](_0x2d512b++);~_0x57ba40&&(_0x222b47=_0x44f35f%0x4?_0x222b47*0x40+_0x57ba40:_0x57ba40,_0x44f35f++%0x4)?_0x2a898a+=String['fromCharCode'](0xff&_0x222b47>>(-0x2*_0x44f35f&0x6)):0x0){_0x57ba40=_0x18a5be['indexOf'](_0x57ba40);}for(let _0xbf89b0=0x0,_0x4afe1b=_0x2a898a['length'];_0xbf89b0<_0x4afe1b;_0xbf89b0++){_0x2f6c52+='%'+('00'+_0x2a898a['charCodeAt'](_0xbf89b0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f6c52);};a0_0xa6be['aAPfvB']=_0x3c7583,a0_0xa6be['LpgAlX']={},a0_0xa6be['MFsBsO']=!![];}const _0x4998e4=_0x493331[0x0],_0x3b1fc0=_0x2100a2+_0x4998e4,_0x4e3639=a0_0xa6be['LpgAlX'][_0x3b1fc0];return!_0x4e3639?(_0xa6beed=a0_0xa6be['aAPfvB'](_0xa6beed),a0_0xa6be['LpgAlX'][_0x3b1fc0]=_0xa6beed):_0xa6beed=_0x4e3639,_0xa6beed;}(function(_0x334a33,_0x3f6062){const _0x4ba199=a0_0xa6be,_0x4612fd=_0x334a33();while(!![]){try{const _0x431ee1=parseInt(_0x4ba199(0x210))/0x1*(-parseInt(_0x4ba199(0x20e))/0x2)+-parseInt(_0x4ba199(0x1e6))/0x3*(parseInt(_0x4ba199(0x1ea))/0x4)+-parseInt(_0x4ba199(0x214))/0x5*(-parseInt(_0x4ba199(0x203))/0x6)+-parseInt(_0x4ba199(0x21a))/0x7*(-parseInt(_0x4ba199(0x201))/0x8)+-parseInt(_0x4ba199(0x1f1))/0x9+-parseInt(_0x4ba199(0x1ef))/0xa*(parseInt(_0x4ba199(0x1f8))/0xb)+parseInt(_0x4ba199(0x1e5))/0xc;if(_0x431ee1===_0x3f6062)break;else _0x4612fd['push'](_0x4612fd['shift']());}catch(_0x1d551b){_0x4612fd['push'](_0x4612fd['shift']());}}}(a0_0x4933,0x9d201));function a0_0x4933(){const _0xa3f777=['zM9YBwf0uMvMzxjLBMnLrMLSzq','Dg9Rzw5fC3rPBwf0zq','mteYmZC5nxfMD05AEa','s0iIig1Vzgu9iMnVBNrLBNqIpGO','ica8zMLSzsbUyw1Lpsi','mcbcExrLCW','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','z2v0qwn0AxzLqxr0ywnOBwvUDhm','ntmYn3jKrhDJvq','zM9YBwf0q29UDgvUDezPBgu','cIaGpc9MAwXLpG','yxr0ywnOBwvUDfnLCNzPy2u','mtK4odCYmtzqB3HqCLC','mZbSq2zwq1e','C2L6zq','CMvMzxjLBMnL','y29UDgvUDa','mZa3mtq0D2Hpzxbi','Cg93','jMfTCdS','zM9YBwf0qNL0zxm','BwvZC2fNzq','mteZmJb4Afrrr2C','iIaVpG','nZaXmdq2mfPXthztCG','Bw9Kzq','zMLSzuLK','qNL0zxm','CgrM','Aw5PDgLHBgL6zq','Bg9Nz2vY','nteZn09LD3Dfzq','zM9YBwf0sw1Hz2vgAwXL','Aw1Hz2u','zMLSDgvY','Bg9N','zM9YBwf0vgv4DezPBgu','zxn0Aw1HDgvuB3rHBfrVA2vUCW','jMD0oW','yNvPBgreEw5HBwLJq29UDgv4Da','odCYofvjvxDkva','jNf1B3q7','mtHXBNfowKu','ChvZAa','Dg9ju09tDhjPBMC','Dg9gAxHLza','iIbZAxPLpsi','jMfWB3m7','zMXVB3i','CMvWBgfJzq','iIb0ExbLpsi','zM9YBwf0ugrMrMLSzq','zxnJyxbLwg1S','mJi3mdzbtuTJvvi','BgvUz3rO','mZLSs1v0v0u','zxjYB3i'];a0_0x4933=function(){return _0xa3f777;};return a0_0x4933();}import a0_0x2a898a from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x2f6c52={},_0x44f35f=null){const _0x219519=a0_0xa6be;this['config']=_0x2f6c52,this['logger']=_0x44f35f,this[_0x219519(0x1e4)]=new a0_0x2a898a(_0x2f6c52,_0x44f35f);}async[a0_0x4a371a(0x1f6)](){const _0x42d0f4=a0_0x4a371a;await this[_0x42d0f4(0x1e4)]['initialize']();}async[a0_0x4a371a(0x200)](_0x222b47){const _0x4c4189=a0_0x4a371a;try{const _0x57ba40=await this[_0x4c4189(0x1e4)][_0x4c4189(0x219)](_0x222b47);if(_0x57ba40[_0x4c4189(0x20f)]===0x0)return'';const _0x2d512b=_0x57ba40[_0x4c4189(0x1fb)](_0x2aaa22=>_0x2aaa22['mode']==='content'),_0xbf89b0=_0x57ba40[_0x4c4189(0x1fb)](_0x2cdb5c=>_0x2cdb5c[_0x4c4189(0x1f2)]===_0x4c4189(0x1e8));let _0x4afe1b='';if(_0x2d512b[_0x4c4189(0x20f)]>0x0){_0x4afe1b+='\x0a<attached-files>\x0a';for(const _0x532a4d of _0x2d512b){const _0x2d26a8=await this[_0x4c4189(0x1e4)]['getAttachmentContent'](_0x532a4d[_0x4c4189(0x1f3)]);if(_0x2d26a8){const _0x534fc1=this[_0x4c4189(0x21b)](_0x532a4d,_0x2d26a8);_0x4afe1b+=_0x534fc1+'\x0a';}}_0x4afe1b+='</attached-files>\x0a';}if(_0xbf89b0[_0x4c4189(0x20f)]>0x0){_0x4afe1b+='\x0a<file-references>\x0a';for(const _0x5f02da of _0xbf89b0){const _0x5ee7f4=this[_0x4c4189(0x212)](_0x5f02da);_0x4afe1b+=_0x5ee7f4+'\x0a';}_0x4afe1b+='</file-references>\x0a',_0x4afe1b+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x4afe1b;}catch(_0xe5172c){return this['logger']?.[_0x4c4189(0x211)](_0x4c4189(0x218),{'agentId':_0x222b47,'error':_0xe5172c['message']}),'';}}['formatContentFile'](_0x5446f9,_0x44a62c){const _0x2e6276=a0_0x4a371a,{fileName:_0x1b318c,fileType:_0x3544ce,size:_0x4f5956,contentType:_0x18e9ac}=_0x5446f9,_0x4ae8e5=(_0x4f5956/0x400)[_0x2e6276(0x206)](0x2);if(_0x18e9ac==='text')return this[_0x2e6276(0x1fd)](_0x5446f9,_0x44a62c);else{if(_0x18e9ac===_0x2e6276(0x1fa))return this['formatImageFile'](_0x5446f9,_0x44a62c);else{if(_0x18e9ac===_0x2e6276(0x1f5))return this[_0x2e6276(0x20c)](_0x5446f9,_0x44a62c);}}return'\x20\x20<file\x20name=\x22'+this[_0x2e6276(0x20d)](_0x1b318c)+'\x22\x20type=\x22'+_0x3544ce+'\x22\x20size=\x22'+_0x4ae8e5+_0x2e6276(0x215)+this[_0x2e6276(0x20d)](_0x44a62c)+'\x0a\x20\x20</file>';}[a0_0x4a371a(0x1fd)](_0x417bc7,_0x202203){const _0x1e5103=a0_0x4a371a,{fileName:_0x104618,fileType:_0xab3a00,size:_0x26e3a6}=_0x417bc7,_0x50a9ad=(_0x26e3a6/0x400)['toFixed'](0x2);return _0x1e5103(0x216)+this[_0x1e5103(0x20d)](_0x104618)+'\x22\x20type=\x22'+_0xab3a00+_0x1e5103(0x207)+_0x50a9ad+_0x1e5103(0x215)+this['escapeXml'](_0x202203)+'\x0a\x20\x20</file>';}[a0_0x4a371a(0x1f9)](_0x4863d7,_0x2c14cf){const _0x360150=a0_0x4a371a,{fileName:_0x590515,fileType:_0x13f890,size:_0x2f0cbe}=_0x4863d7,_0x3554c8=(_0x2f0cbe/0x400)[_0x360150(0x206)](0x2);return _0x360150(0x216)+this['escapeXml'](_0x590515)+_0x360150(0x20b)+_0x13f890+'\x22\x20size=\x22'+_0x3554c8+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x2c14cf+_0x360150(0x21c);}[a0_0x4a371a(0x20c)](_0x9b934c,_0x2d24be){const _0x323273=a0_0x4a371a,{fileName:_0x292c6d,fileType:_0x7d0ee9,size:_0x48c96d}=_0x9b934c,_0x5b080a=(_0x48c96d/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x292c6d)+_0x323273(0x20b)+_0x7d0ee9+'\x22\x20size=\x22'+_0x5b080a+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x323273(0x20d)](_0x2d24be)+_0x323273(0x21c);}[a0_0x4a371a(0x212)](_0x51bcc2){const _0x25ed60=a0_0x4a371a,{fileName:_0x2874a4,originalPath:_0x2a4bc1,size:_0x452f87,fileType:_0x20abb6,lastModified:_0x31f7cd}=_0x51bcc2,_0x59ef59=this[_0x25ed60(0x1ed)](_0x452f87),_0x2945c9=new Date(_0x31f7cd)[_0x25ed60(0x205)]()['split']('T')[0x0];return _0x25ed60(0x216)+this['escapeXml'](_0x2874a4)+'\x22\x20path=\x22'+this[_0x25ed60(0x20d)](_0x2a4bc1)+'\x22\x20size=\x22'+_0x59ef59+_0x25ed60(0x20b)+_0x20abb6+'\x22\x20modified=\x22'+_0x2945c9+_0x25ed60(0x1f0);}[a0_0x4a371a(0x20d)](_0x4e639c){const _0x29a800=a0_0x4a371a;if(!_0x4e639c)return'';return _0x4e639c['replace'](/&/g,_0x29a800(0x1ec))[_0x29a800(0x20a)](/</g,'&lt;')['replace'](/>/g,_0x29a800(0x1ff))['replace'](/"/g,_0x29a800(0x202))['replace'](/'/g,_0x29a800(0x208));}[a0_0x4a371a(0x1ed)](_0x3c9fb4){const _0x1a3f48=a0_0x4a371a;if(_0x3c9fb4===0x0)return _0x1a3f48(0x217);const _0x18c3e3=0x400,_0x5b7577=[_0x1a3f48(0x1f4),'KB','MB','GB'],_0x7265f5=Math[_0x1a3f48(0x209)](Math[_0x1a3f48(0x1fc)](_0x3c9fb4)/Math['log'](_0x18c3e3));return parseFloat((_0x3c9fb4/Math[_0x1a3f48(0x1eb)](_0x18c3e3,_0x7265f5))['toFixed'](0x2))+_0x5b7577[_0x7265f5];}async[a0_0x4a371a(0x1fe)](_0x398fe3){const _0x5c66b8=a0_0x4a371a;try{const _0x5199b0=await this['attachmentService']['getActiveAttachments'](_0x398fe3);let _0x599e85=0x0;for(const _0x346f03 of _0x5199b0){_0x346f03['mode']==='content'?_0x599e85+=_0x346f03[_0x5c66b8(0x213)]||0x0:_0x599e85+=0x14;}return _0x599e85;}catch(_0x573156){return this[_0x5c66b8(0x1f7)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x398fe3,'error':_0x573156[_0x5c66b8(0x1ee)]}),0x0;}}async['getAttachmentSummary'](_0x50c4a7){const _0xfb9125=a0_0x4a371a;try{const _0x4c4503=await this['attachmentService']['getActiveAttachments'](_0x50c4a7),_0x4c318b={'totalActive':_0x4c4503['length'],'contentMode':_0x4c4503[_0xfb9125(0x1fb)](_0x11f611=>_0x11f611['mode']===_0xfb9125(0x1e9))[_0xfb9125(0x20f)],'referenceMode':_0x4c4503[_0xfb9125(0x1fb)](_0x3e4f81=>_0x3e4f81['mode']==='reference')['length'],'estimatedTokens':0x0,'files':[]};for(const _0x2ae158 of _0x4c4503){_0x4c318b['estimatedTokens']+=_0x2ae158['tokenEstimate']||0x0,_0x4c318b['files'][_0xfb9125(0x204)]({'fileName':_0x2ae158['fileName'],'mode':_0x2ae158['mode'],'size':this[_0xfb9125(0x1ed)](_0x2ae158[_0xfb9125(0x1e7)]),'tokens':_0x2ae158[_0xfb9125(0x213)]||0x0});}return _0x4c318b;}catch(_0x251984){return this[_0xfb9125(0x1f7)]?.['error']('Error\x20getting\x20attachment\x20summary',{'agentId':_0x50c4a7,'error':_0x251984[_0xfb9125(0x1ee)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
1
+ function a0_0x2046(){const _0x376aa3=['mJa2mdC3nLzRuLfyrq','iIbZAxPLpsi','mZK0mNLyAuXNAW','Bg9Nz2vY','Dgv4Da','zMLSzuLK','zxjYB3i','CMvMzxjLBMnL','Dg9Rzw5fC3rPBwf0zq','y29UzMLN','BgvUz3rO','ChvZAa','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0q29UDgvUDezPBgu','mZGZmgDUBwnAta','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','zxnJyxbLwg1S','mtrUqKrju2K','zMLSDgvY','CMvWBgfJzq','zM9YBwf0vgv4DezPBgu','mJq5otqYBfLguxH2','mtbnrfbjAuS','zM9YBwf0qNL0zxm','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIbTB2rPzMLLzd0I','Bw9Kzq','BwvZC2fNzq','zMXVB3i','mtaWodiWngjQzfHcrq','cIaGpc9MAwXLpG','CgrM','yNvPBgreEw5HBwLJq29UDgv4Da','Bg9N','iIb0ExbLpsi','m0DOvvvvqq','Dg9gAxHLza','zM9YBwf0uMvMzxjLBMnLrMLSzq','zMLSzxm','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','ica8zMLSzsbUyw1Lpsi','mty4vKPftKDh','mJu4mZCYExbhquTn','y29UDgvUDa','s0iIig1Vzgu9iMnVBNrLBNqIpGO','iIbWyxrOpsi','Aw1Hz2u','zM9YBwf0ugrMrMLSzq','ode4mJHoqw90t1m','mZq5ndC3mNbHshPoBG'];a0_0x2046=function(){return _0x376aa3;};return a0_0x2046();}function a0_0x36ff(_0x521c3c,_0x37d8cf){_0x521c3c=_0x521c3c-0x77;const _0x2046d6=a0_0x2046();let _0x36fff9=_0x2046d6[_0x521c3c];if(a0_0x36ff['pFirSF']===undefined){var _0x227afd=function(_0x1267f8){const _0x14ef8e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39f97e='',_0x579b28='';for(let _0x3d9d23=0x0,_0x1bc13c,_0x518895,_0x157698=0x0;_0x518895=_0x1267f8['charAt'](_0x157698++);~_0x518895&&(_0x1bc13c=_0x3d9d23%0x4?_0x1bc13c*0x40+_0x518895:_0x518895,_0x3d9d23++%0x4)?_0x39f97e+=String['fromCharCode'](0xff&_0x1bc13c>>(-0x2*_0x3d9d23&0x6)):0x0){_0x518895=_0x14ef8e['indexOf'](_0x518895);}for(let _0x507eb8=0x0,_0x56225e=_0x39f97e['length'];_0x507eb8<_0x56225e;_0x507eb8++){_0x579b28+='%'+('00'+_0x39f97e['charCodeAt'](_0x507eb8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x579b28);};a0_0x36ff['bquYaR']=_0x227afd,a0_0x36ff['lcrcxA']={},a0_0x36ff['pFirSF']=!![];}const _0x5744f6=_0x2046d6[0x0],_0x25bea4=_0x521c3c+_0x5744f6,_0x5e037a=a0_0x36ff['lcrcxA'][_0x25bea4];return!_0x5e037a?(_0x36fff9=a0_0x36ff['bquYaR'](_0x36fff9),a0_0x36ff['lcrcxA'][_0x25bea4]=_0x36fff9):_0x36fff9=_0x5e037a,_0x36fff9;}const a0_0x27e730=a0_0x36ff;(function(_0x2319c2,_0xbee343){const _0x13bc54=a0_0x36ff,_0x4414a3=_0x2319c2();while(!![]){try{const _0x4522be=parseInt(_0x13bc54(0x95))/0x1+parseInt(_0x13bc54(0x8f))/0x2+-parseInt(_0x13bc54(0x88))/0x3*(parseInt(_0x13bc54(0x82))/0x4)+parseInt(_0x13bc54(0xa5))/0x5*(parseInt(_0x13bc54(0x99))/0x6)+-parseInt(_0x13bc54(0xa9))/0x7*(-parseInt(_0x13bc54(0x97))/0x8)+-parseInt(_0x13bc54(0x96))/0x9*(parseInt(_0x13bc54(0x7b))/0xa)+-parseInt(_0x13bc54(0x7a))/0xb*(parseInt(_0x13bc54(0x8e))/0xc);if(_0x4522be===_0xbee343)break;else _0x4414a3['push'](_0x4414a3['shift']());}catch(_0x4158ae){_0x4414a3['push'](_0x4414a3['shift']());}}}(a0_0x2046,0x4229b));import a0_0x39f97e from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x579b28={},_0x3d9d23=null){const _0x1e625f=a0_0x36ff;this[_0x1e625f(0xa0)]=_0x579b28,this['logger']=_0x3d9d23,this['attachmentService']=new a0_0x39f97e(_0x579b28,_0x3d9d23);}async['initialize'](){await this['attachmentService']['initialize']();}async[a0_0x27e730(0x85)](_0x1bc13c){const _0x24a6bd=a0_0x27e730;try{const _0x518895=await this[_0x24a6bd(0xa3)]['getActiveAttachments'](_0x1bc13c);if(_0x518895[_0x24a6bd(0xa1)]===0x0)return'';const _0x157698=_0x518895['filter'](_0x3dc528=>_0x3dc528['mode']===_0x24a6bd(0x90)),_0x507eb8=_0x518895[_0x24a6bd(0x77)](_0x1c50cc=>_0x1c50cc['mode']==='reference');let _0x56225e='';if(_0x157698['length']>0x0){_0x56225e+='\x0a<attached-files>\x0a';for(const _0xdf016e of _0x157698){const _0xc34069=await this[_0x24a6bd(0xa3)]['getAttachmentContent'](_0xdf016e[_0x24a6bd(0x9c)]);if(_0xc34069){const _0x239492=this[_0x24a6bd(0xa4)](_0xdf016e,_0xc34069);_0x56225e+=_0x239492+'\x0a';}}_0x56225e+='</attached-files>\x0a';}if(_0x507eb8[_0x24a6bd(0xa1)]>0x0){_0x56225e+=_0x24a6bd(0x7d);for(const _0x474fe7 of _0x507eb8){const _0x4ec1cc=this[_0x24a6bd(0x8a)](_0x474fe7);_0x56225e+=_0x4ec1cc+'\x0a';}_0x56225e+='</file-references>\x0a',_0x56225e+=_0x24a6bd(0xa6);}return _0x56225e;}catch(_0x25f0a5){return this['logger']?.['error']('Error\x20building\x20dynamic\x20context',{'agentId':_0x1bc13c,'error':_0x25f0a5['message']}),'';}}['formatContentFile'](_0x4962ff,_0x2b5ba6){const _0xf08be0=a0_0x27e730,{fileName:_0x5d8638,fileType:_0x57e8ba,size:_0xf3e80d,contentType:_0x237967}=_0x4962ff,_0x55c52f=(_0xf3e80d/0x400)['toFixed'](0x2);if(_0x237967===_0xf08be0(0x9b))return this[_0xf08be0(0x79)](_0x4962ff,_0x2b5ba6);else{if(_0x237967===_0xf08be0(0x93))return this['formatImageFile'](_0x4962ff,_0x2b5ba6);else{if(_0x237967===_0xf08be0(0x84))return this[_0xf08be0(0x94)](_0x4962ff,_0x2b5ba6);}}return _0xf08be0(0x8d)+this[_0xf08be0(0xa8)](_0x5d8638)+_0xf08be0(0x87)+_0x57e8ba+_0xf08be0(0x98)+_0x55c52f+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x2b5ba6)+_0xf08be0(0x83);}[a0_0x27e730(0x79)](_0x298ef1,_0x4583fe){const _0x1866ab=a0_0x27e730,{fileName:_0x222144,fileType:_0x243c1b,size:_0x3b47e6}=_0x298ef1,_0x7347db=(_0x3b47e6/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x222144)+_0x1866ab(0x87)+_0x243c1b+_0x1866ab(0x98)+_0x7347db+_0x1866ab(0x91)+this[_0x1866ab(0xa8)](_0x4583fe)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x902da1,_0x270708){const _0x1f3974=a0_0x27e730,{fileName:_0x332b87,fileType:_0x505249,size:_0x27537d}=_0x902da1,_0x2c6c98=(_0x27537d/0x400)[_0x1f3974(0x89)](0x2);return _0x1f3974(0x8d)+this['escapeXml'](_0x332b87)+_0x1f3974(0x87)+_0x505249+_0x1f3974(0x98)+_0x2c6c98+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x270708+'\x0a\x20\x20</file>';}[a0_0x27e730(0x94)](_0x4e800d,_0x49689e){const _0x210a68=a0_0x27e730,{fileName:_0x44eb45,fileType:_0x48427d,size:_0x1a0ce7}=_0x4e800d,_0x1fb9af=(_0x1a0ce7/0x400)[_0x210a68(0x89)](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x210a68(0xa8)](_0x44eb45)+'\x22\x20type=\x22'+_0x48427d+'\x22\x20size=\x22'+_0x1fb9af+_0x210a68(0x91)+this[_0x210a68(0xa8)](_0x49689e)+_0x210a68(0x83);}['formatReferenceFile'](_0x54840e){const _0xf8250e=a0_0x27e730,{fileName:_0x3d6171,originalPath:_0x4c4591,size:_0x130280,fileType:_0x4fa142,lastModified:_0x2d441d}=_0x54840e,_0x41bbdf=this['formatBytes'](_0x130280),_0x5d252e=new Date(_0x2d441d)['toISOString']()['split']('T')[0x0];return _0xf8250e(0x8d)+this[_0xf8250e(0xa8)](_0x3d6171)+_0xf8250e(0x92)+this[_0xf8250e(0xa8)](_0x4c4591)+_0xf8250e(0x98)+_0x41bbdf+_0xf8250e(0x87)+_0x4fa142+_0xf8250e(0x7e)+_0x5d252e+'\x22\x20/>';}['escapeXml'](_0x19a548){const _0x2852b8=a0_0x27e730;if(!_0x19a548)return'';return _0x19a548['replace'](/&/g,'&amp;')[_0x2852b8(0x78)](/</g,'&lt;')['replace'](/>/g,'&gt;')[_0x2852b8(0x78)](/"/g,'&quot;')['replace'](/'/g,'&apos;');}['formatBytes'](_0x51c192){const _0x4bd8eb=a0_0x27e730;if(_0x51c192===0x0)return'0\x20Bytes';const _0x2032df=0x400,_0x477bdf=['Bytes','KB','MB','GB'],_0x1675f4=Math[_0x4bd8eb(0x81)](Math[_0x4bd8eb(0x86)](_0x51c192)/Math[_0x4bd8eb(0x86)](_0x2032df));return parseFloat((_0x51c192/Math['pow'](_0x2032df,_0x1675f4))[_0x4bd8eb(0x89)](0x2))+_0x477bdf[_0x1675f4];}async['estimateTotalTokens'](_0x2ad5bd){const _0x1e95af=a0_0x27e730;try{const _0x189b4c=await this[_0x1e95af(0xa3)]['getActiveAttachments'](_0x2ad5bd);let _0x524901=0x0;for(const _0x2c35e0 of _0x189b4c){_0x2c35e0['mode']===_0x1e95af(0x90)?_0x524901+=_0x2c35e0['tokenEstimate']||0x0:_0x524901+=0x14;}return _0x524901;}catch(_0x2d4fb7){return this['logger']?.['error'](_0x1e95af(0x8c),{'agentId':_0x2ad5bd,'error':_0x2d4fb7[_0x1e95af(0x80)]}),0x0;}}async['getAttachmentSummary'](_0x317947){const _0x1a5c82=a0_0x27e730;try{const _0x426012=await this[_0x1a5c82(0xa3)]['getActiveAttachments'](_0x317947),_0x3561aa={'totalActive':_0x426012['length'],'contentMode':_0x426012[_0x1a5c82(0x77)](_0x174141=>_0x174141[_0x1a5c82(0x7f)]==='content')['length'],'referenceMode':_0x426012[_0x1a5c82(0x77)](_0x2f40ae=>_0x2f40ae['mode']===_0x1a5c82(0x9e))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x4dfcba of _0x426012){_0x3561aa['estimatedTokens']+=_0x4dfcba['tokenEstimate']||0x0,_0x3561aa[_0x1a5c82(0x8b)][_0x1a5c82(0xa2)]({'fileName':_0x4dfcba['fileName'],'mode':_0x4dfcba['mode'],'size':this[_0x1a5c82(0x7c)](_0x4dfcba['size']),'tokens':_0x4dfcba[_0x1a5c82(0x9f)]||0x0});}return _0x3561aa;}catch(_0x523ce1){return this[_0x1a5c82(0x9a)]?.[_0x1a5c82(0x9d)](_0x1a5c82(0xa7),{'agentId':_0x317947,'error':_0x523ce1[_0x1a5c82(0x80)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;