@loxia-labs/loxia-autopilot-one 1.0.14 → 1.0.16

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 (123) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/agentActivityService.js +1 -1
  76. package/src/services/aiService.js +1 -1
  77. package/src/services/apiKeyManager.js +1 -1
  78. package/src/services/benchmarkService.js +1 -1
  79. package/src/services/budgetService.js +1 -1
  80. package/src/services/contextInjectionService.js +1 -1
  81. package/src/services/conversationCompactionService.js +1 -1
  82. package/src/services/errorHandler.js +1 -1
  83. package/src/services/fileAttachmentService.js +1 -1
  84. package/src/services/modelRouterService.js +1 -1
  85. package/src/services/modelsService.js +1 -1
  86. package/src/services/qualityInspector.js +1 -1
  87. package/src/services/tokenCountingService.js +1 -1
  88. package/src/tools/agentCommunicationTool.js +1 -1
  89. package/src/tools/agentDelayTool.js +1 -1
  90. package/src/tools/asyncToolManager.js +1 -1
  91. package/src/tools/baseTool.js +1 -1
  92. package/src/tools/browserTool.js +1 -1
  93. package/src/tools/cloneDetectionTool.js +1 -1
  94. package/src/tools/dependencyResolverTool.js +1 -1
  95. package/src/tools/fileContentReplaceTool.js +1 -1
  96. package/src/tools/fileSystemTool.js +1 -1
  97. package/src/tools/fileTreeTool.js +1 -1
  98. package/src/tools/imageTool.js +1 -1
  99. package/src/tools/importAnalyzerTool.js +1 -1
  100. package/src/tools/jobDoneTool.js +1 -1
  101. package/src/tools/seekTool.js +1 -1
  102. package/src/tools/staticAnalysisTool.js +1 -1
  103. package/src/tools/taskManagerTool.js +1 -1
  104. package/src/tools/terminalTool.js +1 -1
  105. package/src/tools/webTool.js +1 -1
  106. package/src/types/agent.js +1 -1
  107. package/src/types/contextReference.js +1 -1
  108. package/src/types/conversation.js +1 -1
  109. package/src/types/toolCommand.js +1 -1
  110. package/src/utilities/attachmentValidator.js +1 -1
  111. package/src/utilities/configManager.js +1 -1
  112. package/src/utilities/constants.js +1 -1
  113. package/src/utilities/directoryAccessManager.js +1 -1
  114. package/src/utilities/fileProcessor.js +1 -1
  115. package/src/utilities/logger.js +1 -1
  116. package/src/utilities/tagParser.js +1 -1
  117. package/src/utilities/toolConstants.js +1 -1
  118. package/src/utilities/userDataDir.js +1 -1
  119. package/web-ui/build/index.html +2 -2
  120. package/web-ui/build/static/index-DFmFvOoy.css +1 -0
  121. package/web-ui/build/static/index-DOk0l6Kf.js +348 -0
  122. package/web-ui/build/static/index-DXN850Y2.js +0 -400
  123. package/web-ui/build/static/index-an-YRzUX.css +0 -1
@@ -1 +1 @@
1
- function a0_0x395b(_0xd463f3,_0x31858c){_0xd463f3=_0xd463f3-0x186;const _0x57cdf3=a0_0x57cd();let _0x395bb0=_0x57cdf3[_0xd463f3];if(a0_0x395b['prpdWG']===undefined){var _0x2a4eeb=function(_0x26c0a7){const _0x6f666a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d2624='',_0x562cd0='';for(let _0x2ff4b1=0x0,_0x223766,_0x413367,_0x493830=0x0;_0x413367=_0x26c0a7['charAt'](_0x493830++);~_0x413367&&(_0x223766=_0x2ff4b1%0x4?_0x223766*0x40+_0x413367:_0x413367,_0x2ff4b1++%0x4)?_0x2d2624+=String['fromCharCode'](0xff&_0x223766>>(-0x2*_0x2ff4b1&0x6)):0x0){_0x413367=_0x6f666a['indexOf'](_0x413367);}for(let _0x2aa0ab=0x0,_0x49614a=_0x2d2624['length'];_0x2aa0ab<_0x49614a;_0x2aa0ab++){_0x562cd0+='%'+('00'+_0x2d2624['charCodeAt'](_0x2aa0ab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x562cd0);};a0_0x395b['YTaYpJ']=_0x2a4eeb,a0_0x395b['GfNAiA']={},a0_0x395b['prpdWG']=!![];}const _0x6e7d5b=_0x57cdf3[0x0],_0x3fe05a=_0xd463f3+_0x6e7d5b,_0x38aedd=a0_0x395b['GfNAiA'][_0x3fe05a];return!_0x38aedd?(_0x395bb0=a0_0x395b['YTaYpJ'](_0x395bb0),a0_0x395b['GfNAiA'][_0x3fe05a]=_0x395bb0):_0x395bb0=_0x38aedd,_0x395bb0;}const a0_0x2b0c53=a0_0x395b;(function(_0x2a313f,_0x16a8ef){const _0x3f1933=a0_0x395b,_0x334fa9=_0x2a313f();while(!![]){try{const _0x1aaa4f=-parseInt(_0x3f1933(0x1f8))/0x1+parseInt(_0x3f1933(0x21a))/0x2+parseInt(_0x3f1933(0x1d0))/0x3*(-parseInt(_0x3f1933(0x230))/0x4)+parseInt(_0x3f1933(0x1ee))/0x5*(parseInt(_0x3f1933(0x220))/0x6)+-parseInt(_0x3f1933(0x1ea))/0x7+-parseInt(_0x3f1933(0x1b4))/0x8+-parseInt(_0x3f1933(0x1d1))/0x9*(-parseInt(_0x3f1933(0x22c))/0xa);if(_0x1aaa4f===_0x16a8ef)break;else _0x334fa9['push'](_0x334fa9['shift']());}catch(_0x5577d4){_0x334fa9['push'](_0x334fa9['shift']());}}}(a0_0x57cd,0xc6c55));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x57cd(){const _0x1b06a1=['yxbWBgLJyxrPB24VANnVBG','C3rHy2S','DgvTCgvYyxr1CMu','yMfZzvvYBa','x2zVCM1HDezVCKf6DxjL','Aw5MBW','qu5usfjpueLd','y29UDgvUDa','Dg90ywXFDg9Rzw5Z','x2nOzwnRtw9KzwXizwfSDgG','Bw9KzwXtCgvJCW','CMv2zxjZzq','x2zVCM1HDezVCKfUDgHYB3bPyW','C3rYzwfT','vu5bvvrit1jjwKve','yMfJA2vUza','l2HLywX0Aa','C3DPDgnOtw9KzwW','Aw1Hz2vZ','revfufnfruTFuJe','DgLTzw91Da','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','ywDLBNrqB29S','ue9tva','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','Bwf4vg9Rzw5Z','C3bLzwq','Aw1Nlq','C3vIC3rY','x3jLy29YzezHAwX1CMu','mta2nZmWmdHttw5qtLO','x21HA2vbueLszxf1zxn0','CgvYC2LZDefNzw50u3rHDgu','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','Bg94AwfbCgLlzxK','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','B3bLBMfP','l2nOyxqVy29TCgXLDgLVBNm','C3rYAw5NAwz5','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','CgHP','y3vZDg9TqxbPs2v5CW','C2vZC2LVBKLK','t1bftKfj','ywDLBNrjza','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','rKfmtejbq0S','y2XHC3nPzNLfCNjVCG','Dw5ZAgLMDa','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','DxnHz2u','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','z2v0s2v5C0zVCLjLCxvLC3q','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','Dgv4Da','ChvZAa','oxvPzhfbsa','mZu3ntqZwhv4q2vS','C3rHDhvZ','zxn0Aw1HDgvKvg9Rzw5Z','AM9PBG','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','qu5usfjpueLdx09qvvm','y2vPBa','Bg9Nz2vY','Aw5JBhvKzxm','BwfW','C3rVCa','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','y2HVAwnLCW','yxnZAxn0yw50','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','zxjYB3jiyw5KBgvY','DxjS','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','BgvUz3rO','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','ChjVDMLKzxi','qu5usfjpueLdx0HbsuTv','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','r0furvDbwv9usu1ft1vu','mZa1ntG1n0ztEev0ta','C2vUze1LC3nHz2u','C2v0qwDLBNrqB29S','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','mtqXndq1CuvZBxDq','x2LZvMfSAwrnB2rLBa','yNvKz2v0u2vYDMLJzq','zxjYB3iT','qvPvuKu','x2zVCM1HDezVCK9Wzw5bsq','sfruuca','C2L6zq','sw52ywXPzcbYzxf1zxn0oIa','CMvXDwvZDeLK','mte5odK2nxLLwg1ABW','x2DLDfzLBMrVCKzYB21nB2rLBa','qMvHCMvYia','C3rHBMrHCMq','yw50AhjVCgLJ','CM9Szq','D2fYBG','C3DPDgnOqwDLBNrnB2rLBa','Dg9ju09tDhjPBMC','BM93','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','yxP1CMuTB3bLBMfPlwrHBgXLmW','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','yxbPs2v5twfUywDLCG','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','zMfPBhvYzxm','C3rYAw5N','BwvZC2fNzxm','Ahr0Chm6lY9HCgKUBg94AweUywK','C3LZDgvT','BwvZC2fNzq','x3rYDw5JyxrLtwvZC2fNzq','ve9px01btLLFuKvrvuvtvfm','zgvIDwC','y29UzMLN','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','DhjHy2TvC2fNzq','DxnLCG','y29UDMvYC2f0Aw9UCW','C3rHDhvZvgv4Da','ChjVBxb0','z3b0','nde5ogLlzMLhsG','zgvLChnLzwS','Bw9KzwW','ic0G','y29UDMvYC2f0Aw9UtwfUywDLCNm','ANnVBG','mZblsgLhzMO','rK9sqKLerevo','yxbPs2v5','x2LZq2LYy3vPDejYzwfRzxjpCgvU','zMX1Ec0XlJeTChjV','CMvZCg9UC2vgB3jTyxq','CMfUzg9T','CMv0CNLbDhrLBxb0CW','z2v0qwDLBNq','C3vIC3rYAw5N','y2LYy3vPDejYzwfRzxi','uMv0CNLPBMCGAw4G','mti2mhbhz2HNrq','B3b0Aw9UCW','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','qKfex1jfuvvfu1q','mtGYmdq1mMrgsu90AG','DMvUzg9YqxbPs2v5','C3LZDgvTuhjVBxb0','su5urvjoquXFu0vsvKvsx0vsuK9s','x2vZDgLTyxrLvg9Rzw5Z','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','AgfUzgXLshr0CevYCM9Y','AxnpCgvU','zgf0yq','x3n1Bw1HCML6zu1LC3nHz2vZ','CgXHDgzVCM1qCM92AwrLza','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','AgvHBhrOEq','zxjYB3i','BgfZDezHAwX1CMvuAw1L','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','yJy0x2PZB24','x2HHBMrSzvjHDgvmAw1PDa','x3jLC2v0q2LYy3vPDejYzwfRzxi','C3vTBwfYEq'];a0_0x57cd=function(){return _0x1b06a1;};return a0_0x57cd();}class AIService{constructor(_0x2d2624,_0x562cd0,_0x2ff4b1,_0x223766){const _0xad2375=a0_0x395b;this[_0xad2375(0x212)]=_0x2d2624,this[_0xad2375(0x1d8)]=_0x562cd0,this['budgetService']=_0x2ff4b1,this['errorHandler']=_0x223766,this[_0xad2375(0x199)]=_0x2d2624['backend']?.[_0xad2375(0x199)]||_0xad2375(0x20c),this[_0xad2375(0x1aa)]=_0x2d2624[_0xad2375(0x1a5)]?.[_0xad2375(0x1aa)]||0xea60,this[_0xad2375(0x227)]=_0x2d2624[_0xad2375(0x1a5)]?.['retryAttempts']||0x3,this['rateLimiters']=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0xad2375(0x1d5)](),this[_0xad2375(0x21e)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x2b0c53(0x1eb)](_0x413367,_0x493830,_0x2aa0ab={}){const _0x3ae6af=a0_0x2b0c53,_0x49614a='req-'+Date[_0x3ae6af(0x201)]()+'-'+Math[_0x3ae6af(0x226)]()['toString'](0x24)[_0x3ae6af(0x1b2)](0x2,0x9);try{if(this[_0x3ae6af(0x223)]())throw new Error(_0x3ae6af(0x1ae));await this['_checkRateLimit'](_0x413367);const _0x578fef=this['_formatMessagesForModel'](_0x493830,_0x413367,_0x2aa0ab),_0x67ecd1={'model':_0x413367,'messages':_0x578fef,'options':{'max_tokens':this[_0x3ae6af(0x1a0)][_0x413367]?.[_0x3ae6af(0x1af)]||0xfa0,'temperature':_0x2aa0ab[_0x3ae6af(0x198)]||0.7,'stream':_0x2aa0ab[_0x3ae6af(0x1a3)]||![]},'metadata':{'requestId':_0x49614a,'agentId':_0x2aa0ab[_0x3ae6af(0x1c4)],'timestamp':new Date()[_0x3ae6af(0x200)]()}};_0x2aa0ab[_0x3ae6af(0x232)]&&(_0x67ecd1['system']=_0x2aa0ab['systemPrompt']);this['logger'][_0x3ae6af(0x19b)](_0x3ae6af(0x1cb)+_0x413367,{'requestId':_0x49614a,'agentId':_0x2aa0ab['agentId'],'messageCount':Array['isArray'](_0x493830)?_0x493830['length']:0x1,'maxTokens':_0x67ecd1['max_tokens']});const _0x554a60=await this['_makeAPIRequest'](_0x3ae6af(0x1bd),_0x67ecd1,_0x49614a,{..._0x2aa0ab,'sessionId':_0x2aa0ab['sessionId'],'platformProvided':_0x2aa0ab[_0x3ae6af(0x18c)]||![]});return _0x554a60['usage']&&await this[_0x3ae6af(0x214)](_0x2aa0ab[_0x3ae6af(0x1c4)],_0x413367,{'prompt_tokens':_0x554a60['usage']['prompt_tokens']||0x0,'completion_tokens':_0x554a60['usage']['completion_tokens']||0x0,'total_tokens':_0x554a60['usage'][_0x3ae6af(0x19e)]||0x0}),this[_0x3ae6af(0x194)](),{'content':_0x554a60[_0x3ae6af(0x1dd)][0x0]?.[_0x3ae6af(0x20e)]?.[_0x3ae6af(0x19d)]||'','model':_0x554a60['model'],'tokenUsage':_0x554a60[_0x3ae6af(0x1ca)],'requestId':_0x49614a,'finishReason':_0x554a60[_0x3ae6af(0x1dd)][0x0]?.['finish_reason']};}catch(_0x2f6346){this[_0x3ae6af(0x1b3)](),this[_0x3ae6af(0x1d8)]['error'](_0x3ae6af(0x22e)+_0x2f6346['message'],{'requestId':_0x49614a,'model':_0x413367,'agentId':_0x2aa0ab['agentId'],'error':_0x2f6346['stack']}),await this[_0x3ae6af(0x188)](_0x2f6346,{'requestId':_0x49614a,'model':_0x413367,'agentId':_0x2aa0ab['agentId']});throw _0x2f6346;}}async['routeModel'](_0x9cdfaf,_0x13b87b={}){const _0x129b86=a0_0x2b0c53;try{const _0x518bc8=MODEL_ROUTING[_0x9cdfaf['toUpperCase']()]||MODEL_ROUTING[_0x129b86(0x1c6)],_0x1ad857=[];for(const _0x59ac0e of _0x518bc8){const _0x6e0860=await this[_0x129b86(0x19f)](_0x59ac0e);_0x6e0860&&_0x1ad857[_0x129b86(0x1cf)](_0x59ac0e);}if(_0x1ad857[_0x129b86(0x1e4)]===0x0)return this[_0x129b86(0x1d8)][_0x129b86(0x1fe)](_0x129b86(0x191)+_0x9cdfaf+',\x20using\x20fallback'),MODEL_ROUTING[_0x129b86(0x1c6)][0x0];let _0x2b1b8c=_0x1ad857[0x0];if(_0x13b87b['preferredModel']&&_0x1ad857['includes'](_0x13b87b['preferredModel']))_0x2b1b8c=_0x13b87b['preferredModel'];else{if(_0x13b87b['complexity']==='high'&&_0x1ad857[_0x129b86(0x1d9)](MODELS['ANTHROPIC_OPUS']))_0x2b1b8c=MODELS['ANTHROPIC_OPUS'];else _0x13b87b[_0x129b86(0x1b0)]==='fast'&&_0x1ad857[_0x129b86(0x1d9)](MODELS['ANTHROPIC_HAIKU'])&&(_0x2b1b8c=MODELS['ANTHROPIC_HAIKU']);}return this[_0x129b86(0x1d8)][_0x129b86(0x19b)]('Model\x20routed\x20for\x20task:\x20'+_0x9cdfaf,{'selectedModel':_0x2b1b8c,'availableModels':_0x1ad857[_0x129b86(0x1e4)],'context':_0x13b87b}),_0x2b1b8c;}catch(_0x4292b1){return this[_0x129b86(0x1d8)]['error'](_0x129b86(0x1c5)+_0x4292b1['message'],{'task':_0x9cdfaf,'context':_0x13b87b}),MODEL_ROUTING[_0x129b86(0x1c6)][0x0];}}async['compactizeConversation'](_0x3ecae5,_0x4fe3b2){const _0x28dc1c=a0_0x2b0c53,_0x53d220=this[_0x28dc1c(0x1a0)][_0x4fe3b2];if(!_0x53d220)throw new Error('Unknown\x20model:\x20'+_0x4fe3b2);const _0x43d778=_0x53d220['contextWindow']*0.8;let _0x1bf541=0x0;const _0x110b98=[],_0x4fd6ba=await Promise['all'](_0x3ecae5['map'](async _0x57823e=>({..._0x57823e,'estimatedTokens':await this['_estimateTokens'](_0x57823e['content'],_0x4fe3b2)}))),_0x2efd73=[..._0x4fd6ba][_0x28dc1c(0x1a1)]();for(const _0x1fa472 of _0x2efd73){if(_0x1bf541+_0x1fa472[_0x28dc1c(0x1d3)]>_0x43d778){if(_0x110b98[_0x28dc1c(0x1e4)]===0x0){const _0x1f2757=await this[_0x28dc1c(0x20f)](_0x1fa472[_0x28dc1c(0x19d)],_0x43d778);_0x110b98[_0x28dc1c(0x1c8)]({..._0x1fa472,'content':_0x1f2757,'estimatedTokens':_0x43d778});}break;}_0x110b98['unshift'](_0x1fa472),_0x1bf541+=_0x1fa472['estimatedTokens'];}const _0x2d132c=_0x4fd6ba['slice'](0x0,-_0x110b98['length']);if(_0x2d132c['length']>0x0){const _0x1f0ec7=await this['_summarizeMessages'](_0x2d132c,_0x4fe3b2);_0x110b98['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x1f0ec7,'timestamp':_0x2d132c[0x0]['timestamp'],'type':_0x28dc1c(0x195),'estimatedTokens':await this['_estimateTokens'](_0x1f0ec7,_0x4fe3b2)});}return this[_0x28dc1c(0x1d8)]['info'](_0x28dc1c(0x1dc)+_0x4fe3b2,{'originalMessages':_0x3ecae5[_0x28dc1c(0x1e4)],'compactizedMessages':_0x110b98['length'],'estimatedTokens':_0x1bf541,'maxTokens':_0x43d778}),_0x110b98;}async['trackUsage'](_0x1e192c,_0x4fe2fe,_0x1d7158,_0x571c49){const _0x5448d4=a0_0x2b0c53;try{this[_0x5448d4(0x1f0)]&&this[_0x5448d4(0x1f0)]['trackUsage'](_0x1e192c,_0x4fe2fe,_0x1d7158);}catch(_0x508d9f){this['logger'][_0x5448d4(0x18f)](_0x5448d4(0x1e5)+_0x508d9f['message']);}}async[a0_0x2b0c53(0x188)](_0x124b96,_0x3bf7a9){const _0x886c11=a0_0x2b0c53,_0x4290bd=this[_0x886c11(0x1e1)]?.[_0x886c11(0x1c7)]?.(_0x124b96,_0x3bf7a9);switch(_0x124b96['status']||_0x124b96['code']){case HTTP_STATUS[_0x886c11(0x22f)]:this[_0x886c11(0x1d8)]['error'](_0x886c11(0x203),{'context':_0x3bf7a9,'error':_0x124b96['message']});throw new Error(_0x886c11(0x1f6)+_0x124b96[_0x886c11(0x20e)]);case HTTP_STATUS[_0x886c11(0x1a4)]:this[_0x886c11(0x1d8)]['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x3bf7a9});throw new Error(_0x886c11(0x206));case HTTP_STATUS[_0x886c11(0x221)]:this['logger']['error'](_0x886c11(0x1b7),{'context':_0x3bf7a9});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS['NOT_FOUND']:this[_0x886c11(0x1d8)][_0x886c11(0x18f)](_0x886c11(0x18d),{'context':_0x3bf7a9});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0x886c11(0x210)]:this['logger']['warn']('Rate\x20limit\x20exceeded',{'context':_0x3bf7a9}),await this[_0x886c11(0x193)](_0x3bf7a9);throw new Error(_0x886c11(0x1c9));case HTTP_STATUS[_0x886c11(0x233)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x886c11(0x1e9)]:this[_0x886c11(0x1d8)]['error'](_0x886c11(0x1ba),{'context':_0x3bf7a9,'status':_0x124b96['status']}),await this['_handleServiceUnavailable'](_0x3bf7a9);throw new Error(_0x886c11(0x1df));default:this[_0x886c11(0x1d8)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x3bf7a9,'error':_0x124b96['message']});throw new Error('AI\x20service\x20error:\x20'+_0x124b96[_0x886c11(0x20e)]);}}['setApiKeyManager'](_0x603c5e){const _0xf33d79=a0_0x2b0c53;this['apiKeyManager']=_0x603c5e,this[_0xf33d79(0x1d8)]?.[_0xf33d79(0x19b)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x603c5e});}[a0_0x2b0c53(0x1ec)](_0x36b22c){const _0x331162=a0_0x2b0c53;this['agentPool']=_0x36b22c,this['logger']?.[_0x331162(0x19b)](_0x331162(0x1b8),{'hasAgentPool':!!_0x36b22c});}async['generateImage'](_0x297eb1,_0x404ee9={}){const _0xbe35c0=a0_0x2b0c53,_0x43e581=_0xbe35c0(0x1b1)+Date['now']()+'-'+Math['random']()['toString'](0x24)[_0xbe35c0(0x1b2)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0xbe35c0(0x1ae));if(!_0x297eb1||typeof _0x297eb1!==_0xbe35c0(0x20a)||_0x297eb1['trim']()[_0xbe35c0(0x1e4)]===0x0)throw new Error(_0xbe35c0(0x208));const _0x1b79d3=_0x404ee9['model']||_0xbe35c0(0x224),_0x4bfad3=_0x404ee9['size']||'1024x1024',_0x38a950=_0x404ee9['quality']||_0xbe35c0(0x1fb),_0x32d175=_0x404ee9[_0xbe35c0(0x225)]||'url';this[_0xbe35c0(0x1d8)]['info']('Generating\x20image\x20with\x20model:\x20'+_0x1b79d3,{'requestId':_0x43e581,'model':_0x1b79d3,'size':_0x4bfad3,'quality':_0x38a950,'promptLength':_0x297eb1[_0xbe35c0(0x1e4)]});const _0x28a89a={'prompt':_0x297eb1,'model':_0x1b79d3,'size':_0x4bfad3,'quality':_0x38a950,'response_format':_0x32d175,'n':0x1,'metadata':{'requestId':_0x43e581,'timestamp':new Date()['toISOString']()}},_0x3e2306=await this['_makeImageAPIRequest'](_0x28a89a,_0x43e581,{'sessionId':_0x404ee9[_0xbe35c0(0x1c2)],'platformProvided':_0x404ee9[_0xbe35c0(0x18c)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x3e2306['data']?.[0x0]?.[_0xbe35c0(0x1e2)]||null,'b64_json':_0x3e2306[_0xbe35c0(0x18a)]?.[0x0]?.[_0xbe35c0(0x192)]||null,'model':_0x3e2306['model']||_0x1b79d3,'requestId':_0x43e581,'revisedPrompt':_0x3e2306['data']?.[0x0]?.['revised_prompt']||_0x297eb1};}catch(_0xd063e0){this['_recordFailure'](),this[_0xbe35c0(0x1d8)][_0xbe35c0(0x18f)](_0xbe35c0(0x213)+_0xd063e0['message'],{'requestId':_0x43e581,'model':_0x404ee9['model'],'error':_0xd063e0[_0xbe35c0(0x197)]});throw _0xd063e0;}}async['checkServiceHealth'](){const _0x297990=a0_0x2b0c53;try{const _0x3a229a=await this[_0x297990(0x1b5)](_0x297990(0x1a6),{},'health-check');return _0x3a229a['status']===_0x297990(0x18e);}catch(_0x1bcb37){return![];}}async[a0_0x2b0c53(0x1ff)](_0x2e61c5,_0x4e0bf8){const _0x17ee45=a0_0x2b0c53;try{if(!this['_isValidModel'](_0x4e0bf8))throw new Error('Invalid\x20model:\x20'+_0x4e0bf8);let _0x10dd80=this[_0x17ee45(0x21e)]['get'](_0x2e61c5);!_0x10dd80&&(_0x10dd80=new ConversationManager(_0x2e61c5,this['logger']),this['conversationManagers']['set'](_0x2e61c5,_0x10dd80));const _0x434e1a=await _0x10dd80['switchModel'](_0x4e0bf8),_0x4c1946=await this[_0x17ee45(0x1ac)]?.[_0x17ee45(0x228)](_0x2e61c5);return _0x4c1946&&(_0x4c1946['currentModel']=_0x4e0bf8,await this['agentPool'][_0x17ee45(0x1b6)](_0x2e61c5)),this['logger']['info'](_0x17ee45(0x202)+_0x2e61c5,{'newModel':_0x4e0bf8,'messageCount':_0x434e1a['messages']['length']}),{'success':!![],'agentId':_0x2e61c5,'newModel':_0x4e0bf8,'conversation':_0x434e1a};}catch(_0x3fd18c){this[_0x17ee45(0x1d8)][_0x17ee45(0x18f)]('Model\x20switch\x20failed:\x20'+_0x3fd18c[_0x17ee45(0x20e)],{'agentId':_0x2e61c5,'newModel':_0x4e0bf8});throw _0x3fd18c;}}[a0_0x2b0c53(0x1d5)](){const _0x14f214=a0_0x2b0c53,_0x5a330d={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x14f214(0x19c)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x14f214(0x1d6)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x14f214(0x1e7)]]:{'provider':MODEL_PROVIDERS[_0x14f214(0x19c)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x14f214(0x1c3)],'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['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x14f214(0x1a9)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x14f214(0x1f2),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x5a330d;}['_formatMessagesForModel'](_0x4b3466,_0x3d48ed,_0x531928){const _0x50c9ad=a0_0x2b0c53,_0x41e83c=this['modelSpecs'][_0x3d48ed]||{'provider':_0x50c9ad(0x1f2)};let _0x573728;typeof _0x4b3466==='string'?_0x573728=[{'role':_0x50c9ad(0x215),'content':_0x4b3466}]:_0x573728=_0x4b3466['map'](_0xe4389a=>this[_0x50c9ad(0x1e0)](_0xe4389a,_0x3d48ed));switch(_0x41e83c[_0x50c9ad(0x1e6)]){case MODEL_PROVIDERS[_0x50c9ad(0x19c)]:return this[_0x50c9ad(0x1a2)](_0x573728);case MODEL_PROVIDERS[_0x50c9ad(0x1c3)]:return this[_0x50c9ad(0x1f3)](_0x573728);case MODEL_PROVIDERS[_0x50c9ad(0x1f2)]:return this[_0x50c9ad(0x19a)](_0x573728);default:return _0x573728;}}[a0_0x2b0c53(0x1e0)](_0x3f6544,_0x17ec3b){return{'role':_0x3f6544['role']||'user','content':_0x3f6544['content'],'timestamp':_0x3f6544['timestamp']};}[a0_0x2b0c53(0x1a2)](_0x2f41db){const _0x23a10d=a0_0x2b0c53;return _0x2f41db[_0x23a10d(0x1da)](_0x22c8f7=>{const _0x3b6816=_0x23a10d;if(_0x22c8f7[_0x3b6816(0x1fd)]===_0x3b6816(0x20d))return{'role':_0x3b6816(0x215),'content':'System:\x20'+_0x22c8f7[_0x3b6816(0x19d)]};return _0x22c8f7;});}['_formatForOpenAI'](_0x204076){return _0x204076;}[a0_0x2b0c53(0x19a)](_0x4a560a){const _0x5f32cd=a0_0x2b0c53;return _0x4a560a[_0x5f32cd(0x1da)](_0x11ff67=>({..._0x11ff67,'content':typeof _0x11ff67['content']==='string'?_0x11ff67[_0x5f32cd(0x19d)]:JSON['stringify'](_0x11ff67[_0x5f32cd(0x19d)])}));}[a0_0x2b0c53(0x1ef)](_0x48dd2d){const _0x527109=a0_0x2b0c53;this['logger'][_0x527109(0x211)]('Validating\x20model',{'model':_0x48dd2d,'modelType':typeof _0x48dd2d});if(this[_0x527109(0x1a0)][_0x48dd2d]!==undefined)return!![];return this[_0x527109(0x1d8)][_0x527109(0x1fe)](_0x527109(0x186),{'model':_0x48dd2d,'availableModels':Object['keys'](this[_0x527109(0x1a0)])}),![];}async['_checkModelHealth'](_0x2024dd){return!![];}async[a0_0x2b0c53(0x234)](_0xd1aa25,_0x34e8c0){const _0x259e08=a0_0x2b0c53;return Math[_0x259e08(0x1d7)](_0xd1aa25[_0x259e08(0x1e4)]/0x4);}async[a0_0x2b0c53(0x20f)](_0x438d4d,_0xa751dd){const _0x2cea33=a0_0x2b0c53,_0x306519=_0xa751dd*0x4;if(_0x438d4d['length']<=_0x306519)return _0x438d4d;return _0x438d4d[_0x2cea33(0x229)](0x0,_0x306519-0x14)+'\x0a...\x20[message\x20truncated]';}async[a0_0x2b0c53(0x18b)](_0x5ee8bb,_0x3c8676){const _0x3cdc68=a0_0x2b0c53,_0x10c69f=_0x5ee8bb[_0x3cdc68(0x1da)](_0x1d71ff=>_0x1d71ff['role']+':\x20'+_0x1d71ff['content'])[_0x3cdc68(0x1d4)]('\x0a'),_0x16cbb4=0x1f4;if(_0x10c69f['length']<=_0x16cbb4)return _0x10c69f;return _0x10c69f['substring'](0x0,_0x16cbb4)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x37ce9b,_0x143756,_0x313d49,_0x405438={}){const _0x21cad1=a0_0x2b0c53,_0x3d8fcb='https://autopilot-api.azurewebsites.net/llm/chat';let _0x5b8a8b,_0x5e8352=null,_0x43a260=null;this[_0x21cad1(0x1d8)]?.[_0x21cad1(0x19b)](_0x21cad1(0x1bb),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x405438['sessionId'],'hasSessionId':!!_0x405438['sessionId'],'optionsKeys':Object['keys'](_0x405438),'model':_0x143756['model']});if(this[_0x21cad1(0x207)]&&_0x405438['sessionId']){const _0x2a240a=this[_0x21cad1(0x207)]['getKeysForRequest'](_0x405438['sessionId'],{'platformProvided':_0x405438[_0x21cad1(0x18c)]||![],'vendor':this[_0x21cad1(0x1f9)](_0x143756[_0x21cad1(0x21c)])});_0x5e8352=_0x2a240a[_0x21cad1(0x1b9)],_0x43a260=_0x2a240a['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x405438[_0x21cad1(0x1c2)],'hasLoxiaKey':!!_0x5e8352,'hasVendorKey':!!_0x43a260,'vendor':this['_getVendorFromModel'](_0x143756[_0x21cad1(0x21c)])});}!_0x5e8352&&_0x405438['apiKey']&&(_0x5e8352=_0x405438['apiKey']);!_0x5e8352&&this[_0x21cad1(0x212)][_0x21cad1(0x222)]&&(_0x5e8352=this[_0x21cad1(0x212)]['apiKey']);if(!_0x5e8352)throw new Error(_0x21cad1(0x1e8));const _0x5c0e7c=_0x143756['model'],_0x414f66={'conversationId':_0x313d49,'message':_0x143756[_0x21cad1(0x20b)][_0x143756[_0x21cad1(0x20b)][_0x21cad1(0x1e4)]-0x1]?.['content']||'','messages':_0x143756['messages'],'model':_0x5c0e7c,'requestId':_0x313d49,'options':_0x143756[_0x21cad1(0x22d)]||{},'platformProvided':_0x405438[_0x21cad1(0x18c)]||![]};_0x143756['system']&&(_0x414f66[_0x21cad1(0x232)]=_0x143756[_0x21cad1(0x20d)]);_0x405438['platformProvided']?_0x414f66['apiKey']=_0x5e8352:(_0x43a260&&(_0x414f66[_0x21cad1(0x231)]=_0x43a260),_0x405438['customApiKeys']&&(_0x414f66[_0x21cad1(0x1c1)]=_0x405438['customApiKeys']),_0x414f66[_0x21cad1(0x222)]=_0x5e8352);for(let _0x3cba79=0x1;_0x3cba79<=this[_0x21cad1(0x227)];_0x3cba79++){try{this[_0x21cad1(0x1d8)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3d8fcb,'model':_0x143756[_0x21cad1(0x21c)],'requestId':_0x313d49,'attempt':_0x3cba79,'hasApiKey':!!_0x5e8352});const _0x17f510=await fetch(_0x3d8fcb,{'method':'POST','headers':{'Content-Type':_0x21cad1(0x196),'Authorization':_0x21cad1(0x1fa)+_0x5e8352,'X-Request-ID':_0x313d49},'body':JSON[_0x21cad1(0x1be)](_0x414f66),'timeout':this[_0x21cad1(0x1aa)]});if(!_0x17f510['ok']){const _0x50ff5b=await _0x17f510[_0x21cad1(0x1ce)](),_0x3a1490=new Error(_0x21cad1(0x1f4)+_0x17f510[_0x21cad1(0x1d2)]+':\x20'+_0x17f510['statusText']+(_0x50ff5b?_0x21cad1(0x21d)+_0x50ff5b:''));_0x3a1490[_0x21cad1(0x1d2)]=_0x17f510['status'];throw _0x3a1490;}const _0x3387e9=await _0x17f510[_0x21cad1(0x21f)]();return{'choices':[{'message':{'content':_0x3387e9['content']||'','role':'assistant'},'finish_reason':_0x3387e9['finishReason']||_0x21cad1(0x1db)}],'usage':_0x3387e9[_0x21cad1(0x1ca)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x3387e9['model']||_0x143756[_0x21cad1(0x21c)],'id':_0x3387e9[_0x21cad1(0x1f7)]||_0x313d49};}catch(_0x4d46de){_0x5b8a8b=_0x4d46de,this[_0x21cad1(0x1d8)]['warn'](_0x21cad1(0x1ab),{'attempt':_0x3cba79,'requestId':_0x313d49,'error':_0x4d46de['message'],'status':_0x4d46de[_0x21cad1(0x1d2)]});if(_0x3cba79<this[_0x21cad1(0x227)]){const _0x31411e=Math['pow'](0x2,_0x3cba79)*0x3e8;this[_0x21cad1(0x1d8)][_0x21cad1(0x1fe)]('Retrying\x20in\x20'+_0x31411e+'ms',{'attempt':_0x3cba79,'requestId':_0x313d49}),await new Promise(_0x2c0c8c=>setTimeout(_0x2c0c8c,_0x31411e));}}}this[_0x21cad1(0x1d8)][_0x21cad1(0x18f)](_0x21cad1(0x1cd),{'requestId':_0x313d49,'error':_0x5b8a8b[_0x21cad1(0x20e)]});const _0x5da23e=_0x5b8a8b[_0x21cad1(0x20e)]&&_0x5b8a8b['message']['includes']('No\x20API\x20key\x20configured');if(_0x5da23e)throw new Error('API\x20Configuration\x20Error:\x20'+_0x5b8a8b[_0x21cad1(0x20e)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x5b8a8b[_0x21cad1(0x20e)],'role':_0x21cad1(0x1de)},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x143756['model'],'id':_0x21cad1(0x1f1)+_0x313d49,'error':_0x5b8a8b['message']};}async['_makeImageAPIRequest'](_0x5c3fc7,_0x65e87d,_0x1521b1={}){const _0x4c1f33=a0_0x2b0c53,_0x14d16d='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x5b7097,_0x1915dd=null,_0x1ce033=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1521b1[_0x4c1f33(0x1c2)],'hasSessionId':!!_0x1521b1['sessionId'],'model':_0x5c3fc7[_0x4c1f33(0x21c)]});if(this[_0x4c1f33(0x207)]&&_0x1521b1[_0x4c1f33(0x1c2)]){const _0x20ff81=this[_0x4c1f33(0x207)][_0x4c1f33(0x1cc)](_0x1521b1[_0x4c1f33(0x1c2)],{'platformProvided':_0x1521b1[_0x4c1f33(0x18c)]||![],'vendor':this['_getVendorFromModel'](_0x5c3fc7[_0x4c1f33(0x21c)])});_0x1915dd=_0x20ff81[_0x4c1f33(0x1b9)],_0x1ce033=_0x20ff81['vendorApiKey'],this[_0x4c1f33(0x1d8)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1521b1[_0x4c1f33(0x1c2)],'hasLoxiaKey':!!_0x1915dd,'hasVendorKey':!!_0x1ce033});}!_0x1915dd&&_0x1521b1[_0x4c1f33(0x222)]&&(_0x1915dd=_0x1521b1['apiKey']);!_0x1915dd&&this['config'][_0x4c1f33(0x222)]&&(_0x1915dd=this['config'][_0x4c1f33(0x222)]);if(!_0x1915dd)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3bbcdd={'prompt':_0x5c3fc7[_0x4c1f33(0x218)],'model':_0x5c3fc7[_0x4c1f33(0x21c)]||_0x4c1f33(0x204),'size':_0x5c3fc7[_0x4c1f33(0x1f5)],'quality':_0x5c3fc7['quality'],'style':_0x5c3fc7['style']||'vivid','n':_0x5c3fc7['n']||0x1,'requestId':_0x65e87d};for(let _0x50fdcd=0x1;_0x50fdcd<=this[_0x4c1f33(0x227)];_0x50fdcd++){try{this['logger']['info'](_0x4c1f33(0x205),{'url':_0x14d16d,'model':_0x5c3fc7[_0x4c1f33(0x21c)],'requestId':_0x65e87d,'attempt':_0x50fdcd,'hasApiKey':!!_0x1915dd});const _0xf35e56=await fetch(_0x14d16d,{'method':_0x4c1f33(0x1ad),'headers':{'Content-Type':_0x4c1f33(0x196),'Authorization':'Bearer\x20'+_0x1915dd,'X-Request-ID':_0x65e87d},'body':JSON[_0x4c1f33(0x1be)](_0x3bbcdd),'timeout':this['timeout']*0x2});if(!_0xf35e56['ok']){const _0x4382c4=await _0xf35e56['text'](),_0x46c607=new Error(_0x4c1f33(0x1f4)+_0xf35e56['status']+':\x20'+_0xf35e56[_0x4c1f33(0x217)]+(_0x4382c4?'\x20-\x20'+_0x4382c4:''));_0x46c607['status']=_0xf35e56[_0x4c1f33(0x1d2)];throw _0x46c607;}const _0x28fce3=await _0xf35e56[_0x4c1f33(0x21f)]();return{'data':_0x28fce3[_0x4c1f33(0x1a8)]||[],'model':_0x28fce3['model']||_0x5c3fc7[_0x4c1f33(0x21c)],'created':_0x28fce3['created']||Date['now'](),'usage':_0x28fce3['usage']};}catch(_0x317382){_0x5b7097=_0x317382,this[_0x4c1f33(0x1d8)]['warn'](_0x4c1f33(0x1ed),{'attempt':_0x50fdcd,'requestId':_0x65e87d,'error':_0x317382['message'],'status':_0x317382['status']});if(_0x50fdcd<this['retryAttempts']){const _0x1e154e=Math['pow'](0x2,_0x50fdcd)*0x3e8;this[_0x4c1f33(0x1d8)][_0x4c1f33(0x1fe)](_0x4c1f33(0x22b)+_0x1e154e+'ms',{'attempt':_0x50fdcd,'requestId':_0x65e87d}),await new Promise(_0x18653c=>setTimeout(_0x18653c,_0x1e154e));}}}this['logger'][_0x4c1f33(0x18f)](_0x4c1f33(0x1e3),{'requestId':_0x65e87d,'error':_0x5b7097['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x5b7097['message']);}async['_checkRateLimit'](_0x4e06c2){await new Promise(_0x551218=>setTimeout(_0x551218,0x64));}async['_handleRateLimit'](_0x17c0ae){const _0x9cb0b=a0_0x2b0c53,_0x334a6a=0xea60;this[_0x9cb0b(0x1d8)][_0x9cb0b(0x19b)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x334a6a+'ms',_0x17c0ae),await new Promise(_0x1767e7=>setTimeout(_0x1767e7,_0x334a6a));}async['_handleServiceUnavailable'](_0x276ba3){const _0x10f67e=a0_0x2b0c53;this['_recordFailure']();const _0x2c23be=0x7530;this['logger'][_0x10f67e(0x19b)](_0x10f67e(0x1bf)+_0x2c23be+'ms',_0x276ba3),await new Promise(_0x4e5a16=>setTimeout(_0x4e5a16,_0x2c23be));}['_isCircuitBreakerOpen'](){const _0x3989a2=a0_0x2b0c53;if(!this[_0x3989a2(0x22a)][_0x3989a2(0x189)])return![];const _0x2fa484=Date[_0x3989a2(0x201)]()-this['circuitBreaker'][_0x3989a2(0x190)];if(_0x2fa484>this['circuitBreaker']['timeout'])return this[_0x3989a2(0x22a)]['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x1bbf06=a0_0x2b0c53;this[_0x1bbf06(0x22a)]['failures']++,this[_0x1bbf06(0x22a)][_0x1bbf06(0x190)]=Date['now'](),this['circuitBreaker']['failures']>=this[_0x1bbf06(0x22a)]['threshold']&&(this[_0x1bbf06(0x22a)][_0x1bbf06(0x189)]=!![],this[_0x1bbf06(0x1d8)]['warn'](_0x1bbf06(0x187)));}['_resetCircuitBreaker'](){const _0x5e27e8=a0_0x2b0c53;this['circuitBreaker']['failures']>0x0&&(this[_0x5e27e8(0x22a)][_0x5e27e8(0x209)]=0x0,this['circuitBreaker'][_0x5e27e8(0x189)]=![],this['logger']['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x2b0c53(0x1f9)](_0x29e27a){const _0x58d5a0=a0_0x2b0c53;if(!_0x29e27a)return null;const _0x2c8042=_0x29e27a['toLowerCase']();if(_0x2c8042['includes'](_0x58d5a0(0x1fc))||_0x2c8042['includes']('claude'))return _0x58d5a0(0x1fc);else{if(_0x2c8042[_0x58d5a0(0x1d9)](_0x58d5a0(0x1bc))||_0x2c8042['includes'](_0x58d5a0(0x219)))return'openai';else{if(_0x2c8042[_0x58d5a0(0x1d9)](_0x58d5a0(0x21b)))return'deepseek';else{if(_0x2c8042['includes'](_0x58d5a0(0x1c0)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0xeda784,_0x47f12d){const _0x39e7ee=a0_0x2b0c53;this[_0x39e7ee(0x1c4)]=_0xeda784,this[_0x39e7ee(0x1d8)]=_0x47f12d,this[_0x39e7ee(0x216)]=new Map();}async[a0_0x2b0c53(0x1a7)](_0x3ef064){const _0x2bef48=a0_0x2b0c53;return{'messages':[],'model':_0x3ef064,'lastUpdated':new Date()[_0x2bef48(0x200)]()};}}export default AIService;
1
+ function a0_0x45af(){const _0x2cb709=['revfufnfruS','ueHj','x3jLy29YzezHAwX1CMu','y3vZDg9TqxbPs2v5CW','C2v0qwDLBNrqB29S','CMfUzg9T','yMfJA2vUza','Bw9KzwXtCgvJCW','CMv0CNLbDhrLBxb0CW','AgvHBhrOEq','DhjHy2TvC2fNzq','B3bLBMfP','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','AgvHBhrOlwnOzwnR','y2HLy2Ttzxj2AwnLsgvHBhrO','zgf0yq','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','x2zVCM1HDfnPBMDSzu1LC3nHz2u','odfpExneANq','C3r5Bgu','CMv2AxnLzf9WCM9TChq','x3n1Bw1HCML6zu1LC3nHz2vZ','x2vZDgLTyxrLvg9Rzw5Z','l2nOyxqVy29TCgXLDgLVBNm','C2vUze1LC3nHz2u','DgLTzw91Da','DhjPBq','y29TCgXLEgL0Eq','ueHjxZq','mtG3ndu5mLjzsufKsa','CgXHDgzVCM1qCM92AwrLza','z2v0qwDLBNq','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','BwvZC2fNzq','odm2nZu1CvHltMTb','C3rYAw5N','ywXS','tK9ux0zpvu5e','C2vZC2LVBKLK','CM9Szq','DxnHz2u','yMfZzvvYBa','mZu0nJzqz3reBxK','qu5usfjpueLdx1nptK5fva','mtyWnZC0mefVBvrizW','t1bftKfj','Bwf4x3rVA2vUCW','CxvHBgL0Eq','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','mtq2A3fmqu52','uMf0zsbSAw1PDcbLEgnLzwrLza','x21HA2vbueLszxf1zxn0','u0vsvKLdrv9vtKfwquLmqujmrq','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','C3DPDgnOqwDLBNrnB2rLBa','mtqWndiWme12vNPcBG','AxnbCNjHEq','x2DLDfzLBMrVCKzYB21nB2rLBa','x2LZvMfSAwrnB2rLBa','vw5RBM93BIbTB2rLBdOG','x2zVCM1HDezVCKfUDgHYB3bPyW','C3rHy2S','CMvXDwvZDff1zxvL','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','C3rHBMrHCMq','Ahr0Chm6lY9HCgKUBg94AweUywK','zMLUAxnOx3jLyxnVBG','lcb1C2LUzYbMywXSyMfJAW','nZKXAfLjre13','y2HVAwnLCW','yw50AhjVCgLJ','mtCXote5mM91vxzPva','AxnpCgvU','C3DPDgnOtw9KzwW','zxjYB3i','sw52ywXPzcbTB2rLBdOG','ChjLzMvYCMvKtw9KzwW','y3jLyxrLza','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','x2zVCM1HDezVCKf6DxjL','x2nOzwnRuMf0zuXPBwL0','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','x2HHBMrSzvjHDgvmAw1PDa','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','l2HLywX0Aa','B3b0Aw9UCW','qKfex0DbvevxqvK','zxn0Aw1HDgvKvg9Rzw5Z','CMvZCg9UC2vgB3jTyxq','Bw9KzwW','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','y2LYy3vPDejYzwfRzxi','y3vYCMvUDe1VzgvS','Cg93','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','C3vIC3rYAw5N','ChvZAa','y29UDMvYC2f0Aw9UtwfUywDLCNm','CgHP','yxbPs2v5twfUywDLCG','AgfUzgXLshr0CevYCM9Y','x2zVCM1HDezVCK9Wzw5bsq','BgvUz3rO','C3rYAw5NAwz5','zxjYB3jiyw5KBgvY','mtG3m1rqr0nttW','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','DMvUzg9YqxbPs2v5','BwvZC2fNzxm','ywDLBNrqB29S','Dg9ju09tDhjPBMC','qvPvuKu','C2L6zq','BgfZDezHAwX1CMvuAw1L','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','y29UDgvUDa','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','D2fYBG','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','zMX1Ec0XlJeTChjV','Dg90ywXFDg9Rzw5Z','C3rHDhvZ','AM9PBG','y2XHC3nPzNLfCNjVCG','zMfZDa','DxnLCG','ywDLBNrjza','BM93','C3rVCa','yxbPs2v5','y29UzMLN','Bg9Nz2vY','sfruuca','C3LZDgvTuhjVBxb0','rKfmtejbq0S','vu5bvvrit1jjwKve','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','qKfex1jfuvvfu1q','ANnVBG','CMvXDwvZDeLK','Aw5MBW','C3vTBwfYEq','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','su5urvjoquXFu0vsvKvsx0vsuK9s','r0furvDbwv9usu1ft1vu','ChjVBxb0','BwfW','x3jLC2v0q2LYy3vPDejYzwfRzxi','z2v0s2v5C0zVCLjLCxvLC3q','uMv0CNLPBMCGAw4G','qu5usfjpueLd','CMv2zxjZzq','C3LZDgvT','u3LZDgvToIa','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','yxbWBgLJyxrPB24VANnVBG','qu5usfjpueLdx09qvvm','quKGC2vYDMLJzsbLCNjVCJOG','DgvTCgvYyxr1CMu','ChjVBxb0x3rVA2vUCW','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','tw9KzwWGC3DPDgnOigzHAwXLzdOG','ve9px01btLLFuKvrvuvtvfm','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','zMfPBhvYzxm','Aw5JBhvKzxm'];a0_0x45af=function(){return _0x2cb709;};return a0_0x45af();}const a0_0x565f52=a0_0x5116;function a0_0x5116(_0x4874b0,_0x359ffd){_0x4874b0=_0x4874b0-0x17b;const _0x45af44=a0_0x45af();let _0x5116eb=_0x45af44[_0x4874b0];if(a0_0x5116['ZAEWIJ']===undefined){var _0x5b6e89=function(_0x2cb94e){const _0x4fefca='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x54d4e5='',_0x23afdf='';for(let _0x532f8b=0x0,_0x545ee0,_0xd0bf06,_0x1b06c2=0x0;_0xd0bf06=_0x2cb94e['charAt'](_0x1b06c2++);~_0xd0bf06&&(_0x545ee0=_0x532f8b%0x4?_0x545ee0*0x40+_0xd0bf06:_0xd0bf06,_0x532f8b++%0x4)?_0x54d4e5+=String['fromCharCode'](0xff&_0x545ee0>>(-0x2*_0x532f8b&0x6)):0x0){_0xd0bf06=_0x4fefca['indexOf'](_0xd0bf06);}for(let _0x3795db=0x0,_0x4dceaa=_0x54d4e5['length'];_0x3795db<_0x4dceaa;_0x3795db++){_0x23afdf+='%'+('00'+_0x54d4e5['charCodeAt'](_0x3795db)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x23afdf);};a0_0x5116['NCGwbH']=_0x5b6e89,a0_0x5116['vUaktN']={},a0_0x5116['ZAEWIJ']=!![];}const _0xc758c1=_0x45af44[0x0],_0x5bc8dc=_0x4874b0+_0xc758c1,_0x536979=a0_0x5116['vUaktN'][_0x5bc8dc];return!_0x536979?(_0x5116eb=a0_0x5116['NCGwbH'](_0x5116eb),a0_0x5116['vUaktN'][_0x5bc8dc]=_0x5116eb):_0x5116eb=_0x536979,_0x5116eb;}(function(_0x351846,_0x4ec170){const _0x3e1fe3=a0_0x5116,_0x2ef494=_0x351846();while(!![]){try{const _0x19d7e0=-parseInt(_0x3e1fe3(0x1b3))/0x1*(parseInt(_0x3e1fe3(0x221))/0x2)+-parseInt(_0x3e1fe3(0x18e))/0x3+parseInt(_0x3e1fe3(0x17e))/0x4+-parseInt(_0x3e1fe3(0x212))/0x5+parseInt(_0x3e1fe3(0x21a))/0x6*(-parseInt(_0x3e1fe3(0x18b))/0x7)+parseInt(_0x3e1fe3(0x20d))/0x8+parseInt(_0x3e1fe3(0x202))/0x9*(parseInt(_0x3e1fe3(0x21c))/0xa);if(_0x19d7e0===_0x4ec170)break;else _0x2ef494['push'](_0x2ef494['shift']());}catch(_0x4b2892){_0x2ef494['push'](_0x2ef494['shift']());}}}(a0_0x45af,0x76f55));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x54d4e5,_0x23afdf,_0x532f8b,_0x545ee0){const _0x2f5690=a0_0x5116;this[_0x2f5690(0x1cc)]=_0x54d4e5,this[_0x2f5690(0x1cd)]=_0x23afdf,this['budgetService']=_0x532f8b,this[_0x2f5690(0x1b2)]=_0x545ee0,this[_0x2f5690(0x219)]=_0x54d4e5[_0x2f5690(0x1f6)]?.['baseUrl']||_0x2f5690(0x188),this[_0x2f5690(0x209)]=_0x54d4e5[_0x2f5690(0x1f6)]?.[_0x2f5690(0x209)]||0xea60,this['retryAttempts']=_0x54d4e5[_0x2f5690(0x1f6)]?.['retryAttempts']||0x3,this['rateLimiters']=new Map(),this[_0x2f5690(0x185)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x2f5690(0x1f7)]=this[_0x2f5690(0x1fc)](),this[_0x2f5690(0x1ab)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x565f52(0x208)](_0xd0bf06,_0x1b06c2,_0x3795db={}){const _0x26e420=a0_0x565f52,_0x4dceaa='req-'+Date[_0x26e420(0x1c9)]()+'-'+Math[_0x26e420(0x1f5)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x26e420(0x198)](_0xd0bf06);const _0x16751f=this[_0x26e420(0x195)](_0x1b06c2,_0xd0bf06,_0x3795db),_0xb19ff6={'model':_0xd0bf06,'messages':_0x16751f,'options':{'max_tokens':this['modelSpecs'][_0xd0bf06]?.['maxTokens']||0xfa0,'temperature':_0x3795db[_0x26e420(0x1e8)]||0.7,'stream':_0x3795db['stream']||![]},'metadata':{'requestId':_0x4dceaa,'agentId':_0x3795db['agentId'],'timestamp':new Date()[_0x26e420(0x1b8)]()}};_0x3795db['systemPrompt']&&(_0xb19ff6[_0x26e420(0x1e2)]=_0x3795db[_0x26e420(0x1cf)]);this['logger']['info'](_0x26e420(0x1e4)+_0xd0bf06,{'requestId':_0x4dceaa,'agentId':_0x3795db[_0x26e420(0x1c8)],'messageCount':Array[_0x26e420(0x17f)](_0x1b06c2)?_0x1b06c2[_0x26e420(0x1b0)]:0x1,'maxTokens':_0xb19ff6[_0x26e420(0x21e)]});const _0x38a7c8=await this[_0x26e420(0x223)](_0x26e420(0x207),_0xb19ff6,_0x4dceaa,{..._0x3795db,'sessionId':_0x3795db[_0x26e420(0x216)],'platformProvided':_0x3795db['platformProvided']||![]});return _0x38a7c8[_0x26e420(0x218)]&&await this[_0x26e420(0x1fa)](_0x3795db['agentId'],_0xd0bf06,{'prompt_tokens':_0x38a7c8[_0x26e420(0x218)][_0x26e420(0x1e9)]||0x0,'completion_tokens':_0x38a7c8['usage']['completion_tokens']||0x0,'total_tokens':_0x38a7c8[_0x26e420(0x218)][_0x26e420(0x1c2)]||0x0}),this[_0x26e420(0x1dd)](),{'content':_0x38a7c8[_0x26e420(0x18c)][0x0]?.['message']?.[_0x26e420(0x1bd)]||'','model':_0x38a7c8['model'],'tokenUsage':_0x38a7c8[_0x26e420(0x218)],'requestId':_0x4dceaa,'finishReason':_0x38a7c8[_0x26e420(0x18c)][0x0]?.[_0x26e420(0x189)]};}catch(_0x574571){this['_recordFailure'](),this[_0x26e420(0x1cd)][_0x26e420(0x191)]('AI\x20service\x20request\x20failed:\x20'+_0x574571['message'],{'requestId':_0x4dceaa,'model':_0xd0bf06,'agentId':_0x3795db[_0x26e420(0x1c8)],'error':_0x574571[_0x26e420(0x184)]}),await this[_0x26e420(0x1ae)](_0x574571,{'requestId':_0x4dceaa,'model':_0xd0bf06,'agentId':_0x3795db['agentId']});throw _0x574571;}}async['routeModel'](_0x16022b,_0x1bd025={}){const _0x442abe=a0_0x565f52;try{const _0x487756=MODEL_ROUTING[_0x16022b['toUpperCase']()]||MODEL_ROUTING['FALLBACK'],_0x22f5a2=[];for(const _0x5147b1 of _0x487756){const _0x46e912=await this['_checkModelHealth'](_0x5147b1);_0x46e912&&_0x22f5a2[_0x442abe(0x1aa)](_0x5147b1);}if(_0x22f5a2[_0x442abe(0x1b0)]===0x0)return this['logger'][_0x442abe(0x1bf)](_0x442abe(0x19d)+_0x16022b+_0x442abe(0x18a)),MODEL_ROUTING[_0x442abe(0x1d0)][0x0];let _0x1af81b=_0x22f5a2[0x0];if(_0x1bd025[_0x442abe(0x193)]&&_0x22f5a2[_0x442abe(0x1ef)](_0x1bd025[_0x442abe(0x193)]))_0x1af81b=_0x1bd025[_0x442abe(0x193)];else{if(_0x1bd025[_0x442abe(0x20b)]==='high'&&_0x22f5a2['includes'](MODELS['ANTHROPIC_OPUS']))_0x1af81b=MODELS[_0x442abe(0x1e6)];else _0x1bd025['speed']===_0x442abe(0x1c6)&&_0x22f5a2[_0x442abe(0x1ef)](MODELS['ANTHROPIC_HAIKU'])&&(_0x1af81b=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info']('Model\x20routed\x20for\x20task:\x20'+_0x16022b,{'selectedModel':_0x1af81b,'availableModels':_0x22f5a2[_0x442abe(0x1b0)],'context':_0x1bd025}),_0x1af81b;}catch(_0x588948){return this['logger'][_0x442abe(0x191)](_0x442abe(0x1d2)+_0x588948[_0x442abe(0x211)],{'task':_0x16022b,'context':_0x1bd025}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x3b7884,_0x224ee4){const _0x5bf5a8=a0_0x565f52,_0x598e5d=this[_0x5bf5a8(0x1f7)][_0x224ee4];if(!_0x598e5d)throw new Error(_0x5bf5a8(0x182)+_0x224ee4);const _0x2a350d=_0x598e5d['contextWindow']*0.8;let _0x463c8b=0x0;const _0x3a83ca=[],_0x4182aa=await Promise[_0x5bf5a8(0x214)](_0x3b7884['map'](async _0x57d8f6=>({..._0x57d8f6,'estimatedTokens':await this[_0x5bf5a8(0x206)](_0x57d8f6['content'],_0x224ee4)}))),_0x37bf87=[..._0x4182aa][_0x5bf5a8(0x1e1)]();for(const _0xda973e of _0x37bf87){if(_0x463c8b+_0xda973e[_0x5bf5a8(0x1a1)]>_0x2a350d){if(_0x3a83ca['length']===0x0){const _0x4c4c3e=await this['_truncateMessage'](_0xda973e[_0x5bf5a8(0x1bd)],_0x2a350d);_0x3a83ca['unshift']({..._0xda973e,'content':_0x4c4c3e,'estimatedTokens':_0x2a350d});}break;}_0x3a83ca['unshift'](_0xda973e),_0x463c8b+=_0xda973e[_0x5bf5a8(0x1a1)];}const _0x8a908d=_0x4182aa['slice'](0x0,-_0x3a83ca['length']);if(_0x8a908d[_0x5bf5a8(0x1b0)]>0x0){const _0x49d157=await this['_summarizeMessages'](_0x8a908d,_0x224ee4);_0x3a83ca['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x49d157,'timestamp':_0x8a908d[0x0]['timestamp'],'type':_0x5bf5a8(0x1d7),'estimatedTokens':await this[_0x5bf5a8(0x206)](_0x49d157,_0x224ee4)});}return this[_0x5bf5a8(0x1cd)]['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x224ee4,{'originalMessages':_0x3b7884[_0x5bf5a8(0x1b0)],'compactizedMessages':_0x3a83ca['length'],'estimatedTokens':_0x463c8b,'maxTokens':_0x2a350d}),_0x3a83ca;}async['trackUsage'](_0x578afa,_0x558a85,_0x5a1891,_0x2a5504){try{this['budgetService']&&this['budgetService']['trackUsage'](_0x578afa,_0x558a85,_0x5a1891);}catch(_0x1949b2){this['logger']['error']('Usage\x20tracking\x20failed:\x20'+_0x1949b2['message']);}}async['handleHttpError'](_0xaae89d,_0xb558bb){const _0xa283cc=a0_0x565f52,_0x22defa=this['errorHandler']?.[_0xa283cc(0x1c5)]?.(_0xaae89d,_0xb558bb);switch(_0xaae89d[_0xa283cc(0x1c3)]||_0xaae89d['code']){case HTTP_STATUS[_0xa283cc(0x1d3)]:this[_0xa283cc(0x1cd)][_0xa283cc(0x191)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0xb558bb,'error':_0xaae89d['message']});throw new Error('Invalid\x20request:\x20'+_0xaae89d['message']);case HTTP_STATUS[_0xa283cc(0x1d1)]:this['logger'][_0xa283cc(0x191)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0xb558bb});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this['logger']['error'](_0xa283cc(0x1b4),{'context':_0xb558bb});throw new Error(_0xa283cc(0x199));case HTTP_STATUS[_0xa283cc(0x215)]:this[_0xa283cc(0x1cd)][_0xa283cc(0x191)]('AI\x20service\x20endpoint\x20not\x20found',{'context':_0xb558bb});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0xa283cc(0x1ec)]:this['logger']['warn'](_0xa283cc(0x222),{'context':_0xb558bb}),await this['_handleRateLimit'](_0xb558bb);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS[_0xa283cc(0x1d9)]:case HTTP_STATUS[_0xa283cc(0x1a0)]:case HTTP_STATUS[_0xa283cc(0x17b)]:case HTTP_STATUS[_0xa283cc(0x1da)]:this[_0xa283cc(0x1cd)]['error']('AI\x20service\x20unavailable',{'context':_0xb558bb,'status':_0xaae89d['status']}),await this[_0xa283cc(0x1d8)](_0xb558bb);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0xa283cc(0x1cd)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0xb558bb,'error':_0xaae89d[_0xa283cc(0x211)]});throw new Error(_0xa283cc(0x1e7)+_0xaae89d['message']);}}['setApiKeyManager'](_0x4e8ba0){const _0x10bd28=a0_0x565f52;this['apiKeyManager']=_0x4e8ba0,this[_0x10bd28(0x1cd)]?.[_0x10bd28(0x1d6)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x4e8ba0});}[a0_0x565f52(0x1f4)](_0x54153c){const _0x44e905=a0_0x565f52;this['agentPool']=_0x54153c,this['logger']?.['info'](_0x44e905(0x210),{'hasAgentPool':!!_0x54153c});}async['generateImage'](_0x48a376,_0x3b0f39={}){const _0x473fc8=a0_0x565f52,_0x31b072='img-'+Date[_0x473fc8(0x1c9)]()+'-'+Math[_0x473fc8(0x1f5)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x473fc8(0x1c0));if(!_0x48a376||typeof _0x48a376!=='string'||_0x48a376[_0x473fc8(0x20a)]()[_0x473fc8(0x1b0)]===0x0)throw new Error(_0x473fc8(0x1bc));const _0x4abcea=_0x3b0f39['model']||_0x473fc8(0x1c1),_0x4d1748=_0x3b0f39[_0x473fc8(0x1ba)]||'1024x1024',_0x18b01b=_0x3b0f39['quality']||_0x473fc8(0x187),_0x39f1c5=_0x3b0f39[_0x473fc8(0x1a2)]||'url';this['logger']['info'](_0x473fc8(0x200)+_0x4abcea,{'requestId':_0x31b072,'model':_0x4abcea,'size':_0x4d1748,'quality':_0x18b01b,'promptLength':_0x48a376[_0x473fc8(0x1b0)]});const _0x55086e={'prompt':_0x48a376,'model':_0x4abcea,'size':_0x4d1748,'quality':_0x18b01b,'response_format':_0x39f1c5,'n':0x1,'metadata':{'requestId':_0x31b072,'timestamp':new Date()[_0x473fc8(0x1b8)]()}},_0x1148c4=await this['_makeImageAPIRequest'](_0x55086e,_0x31b072,{'sessionId':_0x3b0f39['sessionId'],'platformProvided':_0x3b0f39['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0x1148c4['data']?.[0x0]?.['url']||null,'b64_json':_0x1148c4['data']?.[0x0]?.['b64_json']||null,'model':_0x1148c4['model']||_0x4abcea,'requestId':_0x31b072,'revisedPrompt':_0x1148c4[_0x473fc8(0x1ff)]?.[0x0]?.[_0x473fc8(0x204)]||_0x48a376};}catch(_0x44d00b){this[_0x473fc8(0x1f2)](),this['logger']['error']('Image\x20generation\x20failed:\x20'+_0x44d00b[_0x473fc8(0x211)],{'requestId':_0x31b072,'model':_0x3b0f39[_0x473fc8(0x1a3)],'error':_0x44d00b['stack']});throw _0x44d00b;}}async[a0_0x565f52(0x1fe)](){const _0x1415d9=a0_0x565f52;try{const _0x211bb3=await this['_makeAPIRequest'](_0x1415d9(0x19e),{},_0x1415d9(0x1fd));return _0x211bb3['status']===_0x1415d9(0x1f9);}catch(_0x27de1e){return![];}}async[a0_0x565f52(0x17d)](_0x2cb988,_0xf4b3bd){const _0x584095=a0_0x565f52;try{if(!this['_isValidModel'](_0xf4b3bd))throw new Error(_0x584095(0x192)+_0xf4b3bd);let _0x3c638c=this['conversationManagers']['get'](_0x2cb988);!_0x3c638c&&(_0x3c638c=new ConversationManager(_0x2cb988,this['logger']),this['conversationManagers']['set'](_0x2cb988,_0x3c638c));const _0x3f197=await _0x3c638c[_0x584095(0x190)](_0xf4b3bd),_0x4f522f=await this[_0x584095(0x1b7)]?.[_0x584095(0x20f)](_0x2cb988);return _0x4f522f&&(_0x4f522f[_0x584095(0x1a6)]=_0xf4b3bd,await this['agentPool']['persistAgentState'](_0x2cb988)),this[_0x584095(0x1cd)]['info'](_0x584095(0x196)+_0x2cb988,{'newModel':_0xf4b3bd,'messageCount':_0x3f197['messages'][_0x584095(0x1b0)]}),{'success':!![],'agentId':_0x2cb988,'newModel':_0xf4b3bd,'conversation':_0x3f197};}catch(_0x3a2b7b){this['logger'][_0x584095(0x191)](_0x584095(0x1eb)+_0x3a2b7b[_0x584095(0x211)],{'agentId':_0x2cb988,'newModel':_0xf4b3bd});throw _0x3a2b7b;}}['_initializeModelSpecs'](){const _0x3530b=a0_0x565f52,_0x331415={[MODELS[_0x3530b(0x21b)]]:{'provider':MODEL_PROVIDERS[_0x3530b(0x1e0)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x3530b(0x1e6)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x3530b(0x1e0)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x3530b(0x21d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x3530b(0x21d)],'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['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS[_0x3530b(0x1f0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x3530b(0x20c)]]:{'provider':MODEL_PROVIDERS[_0x3530b(0x1f1)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x3530b(0x1b9),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x3530b(0x1b9),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x331415;}[a0_0x565f52(0x195)](_0x5b1dbf,_0x52d7aa,_0x4c7b87){const _0x2b6251=a0_0x565f52,_0x59f946=this[_0x2b6251(0x1f7)][_0x52d7aa]||{'provider':'AZURE'};let _0x5c326e;typeof _0x5b1dbf===_0x2b6251(0x213)?_0x5c326e=[{'role':'user','content':_0x5b1dbf}]:_0x5c326e=_0x5b1dbf['map'](_0x6a3776=>this['_formatSingleMessage'](_0x6a3776,_0x52d7aa));switch(_0x59f946['provider']){case MODEL_PROVIDERS[_0x2b6251(0x1e0)]:return this['_formatForAnthropic'](_0x5c326e);case MODEL_PROVIDERS[_0x2b6251(0x21d)]:return this[_0x2b6251(0x1af)](_0x5c326e);case MODEL_PROVIDERS['AZURE']:return this[_0x2b6251(0x197)](_0x5c326e);default:return _0x5c326e;}}[a0_0x565f52(0x201)](_0x3c5d2d,_0x20ec14){const _0x345242=a0_0x565f52;return{'role':_0x3c5d2d['role']||'user','content':_0x3c5d2d[_0x345242(0x1bd)],'timestamp':_0x3c5d2d['timestamp']};}[a0_0x565f52(0x183)](_0x358712){return _0x358712['map'](_0x3dc94c=>{const _0x225358=a0_0x5116;if(_0x3dc94c[_0x225358(0x217)]===_0x225358(0x1e2))return{'role':_0x225358(0x1c7),'content':_0x225358(0x1e3)+_0x3dc94c['content']};return _0x3dc94c;});}[a0_0x565f52(0x1af)](_0x12e32d){return _0x12e32d;}[a0_0x565f52(0x197)](_0x49c97a){const _0x41c8d0=a0_0x565f52;return _0x49c97a[_0x41c8d0(0x1dc)](_0x3f0625=>({..._0x3f0625,'content':typeof _0x3f0625['content']===_0x41c8d0(0x213)?_0x3f0625['content']:JSON[_0x41c8d0(0x1b1)](_0x3f0625['content'])}));}[a0_0x565f52(0x181)](_0xf6f631){const _0x57c03b=a0_0x565f52;this[_0x57c03b(0x1cd)]['debug']('Validating\x20model',{'model':_0xf6f631,'modelType':typeof _0xf6f631});if(this['modelSpecs'][_0xf6f631]!==undefined)return!![];return this['logger'][_0x57c03b(0x1bf)](_0x57c03b(0x1a8),{'model':_0xf6f631,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async['_checkModelHealth'](_0x5ac569){return!![];}async[a0_0x565f52(0x206)](_0x59b6b3,_0x3cf8ca){return Math['ceil'](_0x59b6b3['length']/0x4);}async['_truncateMessage'](_0x573741,_0x17866d){const _0x322ff3=a0_0x565f52,_0x3b2288=_0x17866d*0x4;if(_0x573741[_0x322ff3(0x1b0)]<=_0x3b2288)return _0x573741;return _0x573741[_0x322ff3(0x1a9)](0x0,_0x3b2288-0x14)+_0x322ff3(0x19a);}async[a0_0x565f52(0x205)](_0x126b68,_0x1d9e3b){const _0x33aa58=a0_0x565f52,_0xdbeb7=_0x126b68['map'](_0x1ad73b=>_0x1ad73b[_0x33aa58(0x217)]+':\x20'+_0x1ad73b[_0x33aa58(0x1bd)])[_0x33aa58(0x1c4)]('\x0a'),_0x43715a=0x1f4;if(_0xdbeb7[_0x33aa58(0x1b0)]<=_0x43715a)return _0xdbeb7;return _0xdbeb7['substring'](0x0,_0x43715a)+_0x33aa58(0x19b);}async['_makeAPIRequest'](_0x5b6769,_0x48d944,_0x278d83,_0x594e9c={}){const _0x44330e=a0_0x565f52,_0x3a8ed7=_0x44330e(0x186);let _0x279a28,_0xe1f7c2=null,_0x2570c7=null;this[_0x44330e(0x1cd)]?.['info'](_0x44330e(0x17c),{'hasApiKeyManager':!!this[_0x44330e(0x1ad)],'sessionId':_0x594e9c['sessionId'],'hasSessionId':!!_0x594e9c['sessionId'],'optionsKeys':Object['keys'](_0x594e9c),'model':_0x48d944['model']});if(this[_0x44330e(0x1ad)]&&_0x594e9c[_0x44330e(0x216)]){const _0x109d03=this['apiKeyManager']['getKeysForRequest'](_0x594e9c['sessionId'],{'platformProvided':_0x594e9c['platformProvided']||![],'vendor':this[_0x44330e(0x180)](_0x48d944['model'])});_0xe1f7c2=_0x109d03['loxiaApiKey'],_0x2570c7=_0x109d03[_0x44330e(0x1b5)],this[_0x44330e(0x1cd)]?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x594e9c['sessionId'],'hasLoxiaKey':!!_0xe1f7c2,'hasVendorKey':!!_0x2570c7,'vendor':this[_0x44330e(0x180)](_0x48d944['model'])});}!_0xe1f7c2&&_0x594e9c['apiKey']&&(_0xe1f7c2=_0x594e9c['apiKey']);!_0xe1f7c2&&this[_0x44330e(0x1cc)][_0x44330e(0x1cb)]&&(_0xe1f7c2=this[_0x44330e(0x1cc)]['apiKey']);if(!_0xe1f7c2)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3caee5=_0x48d944[_0x44330e(0x1a3)],_0x340814={'conversationId':_0x278d83,'message':_0x48d944['messages'][_0x48d944['messages']['length']-0x1]?.[_0x44330e(0x1bd)]||'','messages':_0x48d944[_0x44330e(0x1b6)],'model':_0x3caee5,'requestId':_0x278d83,'options':_0x48d944[_0x44330e(0x19f)]||{},'platformProvided':_0x594e9c[_0x44330e(0x20e)]||![]};_0x48d944['system']&&(_0x340814[_0x44330e(0x1cf)]=_0x48d944[_0x44330e(0x1e2)]);_0x594e9c[_0x44330e(0x20e)]?_0x340814['apiKey']=_0xe1f7c2:(_0x2570c7&&(_0x340814['vendorApiKey']=_0x2570c7),_0x594e9c[_0x44330e(0x1f3)]&&(_0x340814['customApiKeys']=_0x594e9c[_0x44330e(0x1f3)]),_0x340814['apiKey']=_0xe1f7c2);for(let _0x60a234=0x1;_0x60a234<=this[_0x44330e(0x1f8)];_0x60a234++){try{this['logger']['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3a8ed7,'model':_0x48d944[_0x44330e(0x1a3)],'requestId':_0x278d83,'attempt':_0x60a234,'hasApiKey':!!_0xe1f7c2});const _0x4142a2=await fetch(_0x3a8ed7,{'method':'POST','headers':{'Content-Type':_0x44330e(0x1e5),'Authorization':'Bearer\x20'+_0xe1f7c2,'X-Request-ID':_0x278d83},'body':JSON[_0x44330e(0x1b1)](_0x340814),'timeout':this['timeout']});if(!_0x4142a2['ok']){const _0x40f18c=await _0x4142a2['text'](),_0x4063b7=new Error('HTTP\x20'+_0x4142a2[_0x44330e(0x1c3)]+':\x20'+_0x4142a2['statusText']+(_0x40f18c?'\x20-\x20'+_0x40f18c:''));_0x4063b7[_0x44330e(0x1c3)]=_0x4142a2[_0x44330e(0x1c3)];throw _0x4063b7;}const _0x222b6b=await _0x4142a2[_0x44330e(0x1d4)]();return{'choices':[{'message':{'content':_0x222b6b[_0x44330e(0x1bd)]||'','role':'assistant'},'finish_reason':_0x222b6b['finishReason']||'stop'}],'usage':_0x222b6b[_0x44330e(0x218)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x222b6b[_0x44330e(0x1a3)]||_0x48d944['model'],'id':_0x222b6b[_0x44330e(0x1d5)]||_0x278d83};}catch(_0x3e5de7){_0x279a28=_0x3e5de7,this[_0x44330e(0x1cd)][_0x44330e(0x1bf)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x60a234,'requestId':_0x278d83,'error':_0x3e5de7[_0x44330e(0x211)],'status':_0x3e5de7['status']});if(_0x60a234<this[_0x44330e(0x1f8)]){const _0x1c0d26=Math[_0x44330e(0x1a7)](0x2,_0x60a234)*0x3e8;this['logger']['warn'](_0x44330e(0x1df)+_0x1c0d26+'ms',{'attempt':_0x60a234,'requestId':_0x278d83}),await new Promise(_0x2b70f1=>setTimeout(_0x2b70f1,_0x1c0d26));}}}this[_0x44330e(0x1cd)]['error']('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x278d83,'error':_0x279a28['message']});const _0x2e212f=_0x279a28['message']&&_0x279a28[_0x44330e(0x211)]['includes']('No\x20API\x20key\x20configured');if(_0x2e212f)throw new Error('API\x20Configuration\x20Error:\x20'+_0x279a28[_0x44330e(0x211)]);return{'choices':[{'message':{'content':_0x44330e(0x1ea)+_0x279a28[_0x44330e(0x211)],'role':'assistant'},'finish_reason':_0x44330e(0x1ca)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x48d944['model'],'id':'error-'+_0x278d83,'error':_0x279a28['message']};}async['_makeImageAPIRequest'](_0x5a09a0,_0x2d3fd4,_0x1d5ec0={}){const _0x382e91=a0_0x565f52,_0x28291f=_0x382e91(0x220);let _0x264284,_0x1563a1=null,_0x4e9dde=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1d5ec0['sessionId'],'hasSessionId':!!_0x1d5ec0[_0x382e91(0x216)],'model':_0x5a09a0[_0x382e91(0x1a3)]});if(this[_0x382e91(0x1ad)]&&_0x1d5ec0['sessionId']){const _0x31b8a1=this[_0x382e91(0x1ad)][_0x382e91(0x1de)](_0x1d5ec0['sessionId'],{'platformProvided':_0x1d5ec0[_0x382e91(0x20e)]||![],'vendor':this['_getVendorFromModel'](_0x5a09a0['model'])});_0x1563a1=_0x31b8a1['loxiaApiKey'],_0x4e9dde=_0x31b8a1[_0x382e91(0x1b5)],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1d5ec0['sessionId'],'hasLoxiaKey':!!_0x1563a1,'hasVendorKey':!!_0x4e9dde});}!_0x1563a1&&_0x1d5ec0[_0x382e91(0x1cb)]&&(_0x1563a1=_0x1d5ec0['apiKey']);!_0x1563a1&&this[_0x382e91(0x1cc)][_0x382e91(0x1cb)]&&(_0x1563a1=this['config'][_0x382e91(0x1cb)]);if(!_0x1563a1)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x550676={'prompt':_0x5a09a0[_0x382e91(0x1db)],'model':_0x5a09a0['model']||'azure-openai-dalle3','size':_0x5a09a0['size'],'quality':_0x5a09a0[_0x382e91(0x21f)],'style':_0x5a09a0[_0x382e91(0x203)]||'vivid','n':_0x5a09a0['n']||0x1,'requestId':_0x2d3fd4};for(let _0x2bb252=0x1;_0x2bb252<=this['retryAttempts'];_0x2bb252++){try{this['logger'][_0x382e91(0x1d6)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x28291f,'model':_0x5a09a0[_0x382e91(0x1a3)],'requestId':_0x2d3fd4,'attempt':_0x2bb252,'hasApiKey':!!_0x1563a1});const _0x44c825=await fetch(_0x28291f,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x1563a1,'X-Request-ID':_0x2d3fd4},'body':JSON[_0x382e91(0x1b1)](_0x550676),'timeout':this['timeout']*0x2});if(!_0x44c825['ok']){const _0x4906c2=await _0x44c825['text'](),_0x5502ca=new Error(_0x382e91(0x1ce)+_0x44c825[_0x382e91(0x1c3)]+':\x20'+_0x44c825['statusText']+(_0x4906c2?'\x20-\x20'+_0x4906c2:''));_0x5502ca['status']=_0x44c825[_0x382e91(0x1c3)];throw _0x5502ca;}const _0x393235=await _0x44c825[_0x382e91(0x1d4)]();return{'data':_0x393235['images']||[],'model':_0x393235[_0x382e91(0x1a3)]||_0x5a09a0['model'],'created':_0x393235[_0x382e91(0x194)]||Date[_0x382e91(0x1c9)](),'usage':_0x393235[_0x382e91(0x218)]};}catch(_0x1ee38b){_0x264284=_0x1ee38b,this[_0x382e91(0x1cd)]['warn']('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x2bb252,'requestId':_0x2d3fd4,'error':_0x1ee38b['message'],'status':_0x1ee38b['status']});if(_0x2bb252<this['retryAttempts']){const _0x1c0597=Math[_0x382e91(0x1a7)](0x2,_0x2bb252)*0x3e8;this['logger'][_0x382e91(0x1bf)]('Retrying\x20in\x20'+_0x1c0597+'ms',{'attempt':_0x2bb252,'requestId':_0x2d3fd4}),await new Promise(_0x2cf3f1=>setTimeout(_0x2cf3f1,_0x1c0597));}}}this['logger']['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x2d3fd4,'error':_0x264284['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x264284['message']);}async[a0_0x565f52(0x198)](_0x516530){await new Promise(_0x54c5c4=>setTimeout(_0x54c5c4,0x64));}async[a0_0x565f52(0x19c)](_0x4970ee){const _0x2e1eb1=a0_0x565f52,_0x3b25f0=0xea60;this['logger']['info'](_0x2e1eb1(0x1be)+_0x3b25f0+'ms',_0x4970ee),await new Promise(_0x4edbfa=>setTimeout(_0x4edbfa,_0x3b25f0));}async[a0_0x565f52(0x1d8)](_0x31eed3){const _0x4e78e6=a0_0x565f52;this['_recordFailure']();const _0x2e15ec=0x7530;this[_0x4e78e6(0x1cd)][_0x4e78e6(0x1d6)](_0x4e78e6(0x1ed)+_0x2e15ec+'ms',_0x31eed3),await new Promise(_0x4b7b42=>setTimeout(_0x4b7b42,_0x2e15ec));}['_isCircuitBreakerOpen'](){const _0x2f3805=a0_0x565f52;if(!this[_0x2f3805(0x1a5)][_0x2f3805(0x18f)])return![];const _0xa845b0=Date[_0x2f3805(0x1c9)]()-this['circuitBreaker'][_0x2f3805(0x1bb)];if(_0xa845b0>this['circuitBreaker'][_0x2f3805(0x209)])return this['circuitBreaker']['isOpen']=![],this[_0x2f3805(0x1a5)]['failures']=0x0,![];return!![];}[a0_0x565f52(0x1f2)](){const _0x59fcb4=a0_0x565f52;this['circuitBreaker'][_0x59fcb4(0x1ee)]++,this['circuitBreaker']['lastFailureTime']=Date[_0x59fcb4(0x1c9)](),this['circuitBreaker'][_0x59fcb4(0x1ee)]>=this[_0x59fcb4(0x1a5)]['threshold']&&(this['circuitBreaker'][_0x59fcb4(0x18f)]=!![],this[_0x59fcb4(0x1cd)][_0x59fcb4(0x1bf)](_0x59fcb4(0x1a4)));}[a0_0x565f52(0x1dd)](){const _0x2a34a4=a0_0x565f52;this[_0x2a34a4(0x1a5)][_0x2a34a4(0x1ee)]>0x0&&(this['circuitBreaker'][_0x2a34a4(0x1ee)]=0x0,this['circuitBreaker']['isOpen']=![],this[_0x2a34a4(0x1cd)][_0x2a34a4(0x1d6)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x29cd37){const _0xe5615b=a0_0x565f52;if(!_0x29cd37)return null;const _0x2b939d=_0x29cd37['toLowerCase']();if(_0x2b939d['includes']('anthropic')||_0x2b939d['includes']('claude'))return _0xe5615b(0x18d);else{if(_0x2b939d[_0xe5615b(0x1ef)](_0xe5615b(0x1fb))||_0x2b939d[_0xe5615b(0x1ef)]('gpt'))return _0xe5615b(0x1fb);else{if(_0x2b939d['includes']('deepseek'))return'deepseek';else{if(_0x2b939d[_0xe5615b(0x1ef)](_0xe5615b(0x1ac)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x477765,_0x3234de){const _0xbf2866=a0_0x565f52;this[_0xbf2866(0x1c8)]=_0x477765,this[_0xbf2866(0x1cd)]=_0x3234de,this['conversations']=new Map();}async['switchModel'](_0x34c420){return{'messages':[],'model':_0x34c420,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
@@ -1 +1 @@
1
- const a0_0x4d97ac=a0_0x3fc6;(function(_0x4d0ed0,_0x2760d4){const _0x560b88=a0_0x3fc6,_0x1f3484=_0x4d0ed0();while(!![]){try{const _0x13f3f8=-parseInt(_0x560b88(0x17e))/0x1*(-parseInt(_0x560b88(0x18b))/0x2)+parseInt(_0x560b88(0x193))/0x3+parseInt(_0x560b88(0x179))/0x4+-parseInt(_0x560b88(0x18f))/0x5+parseInt(_0x560b88(0x199))/0x6+parseInt(_0x560b88(0x17d))/0x7+-parseInt(_0x560b88(0x194))/0x8;if(_0x13f3f8===_0x2760d4)break;else _0x1f3484['push'](_0x1f3484['shift']());}catch(_0x4277e3){_0x1f3484['push'](_0x1f3484['shift']());}}}(a0_0x5112,0x30ae4));function a0_0x3fc6(_0x3656bf,_0x3ed9df){_0x3656bf=_0x3656bf-0x178;const _0x51121c=a0_0x5112();let _0x3fc688=_0x51121c[_0x3656bf];if(a0_0x3fc6['evQhxe']===undefined){var _0x1d390e=function(_0x44cfc0){const _0x116daf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39b63c='',_0xcc68f9='';for(let _0xe9ff36=0x0,_0x496191,_0x13f6d7,_0x18846c=0x0;_0x13f6d7=_0x44cfc0['charAt'](_0x18846c++);~_0x13f6d7&&(_0x496191=_0xe9ff36%0x4?_0x496191*0x40+_0x13f6d7:_0x13f6d7,_0xe9ff36++%0x4)?_0x39b63c+=String['fromCharCode'](0xff&_0x496191>>(-0x2*_0xe9ff36&0x6)):0x0){_0x13f6d7=_0x116daf['indexOf'](_0x13f6d7);}for(let _0x26f97b=0x0,_0x5ccb83=_0x39b63c['length'];_0x26f97b<_0x5ccb83;_0x26f97b++){_0xcc68f9+='%'+('00'+_0x39b63c['charCodeAt'](_0x26f97b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xcc68f9);};a0_0x3fc6['REJwpn']=_0x1d390e,a0_0x3fc6['UUCzeO']={},a0_0x3fc6['evQhxe']=!![];}const _0x5a5dba=_0x51121c[0x0],_0x195601=_0x3656bf+_0x5a5dba,_0x155d05=a0_0x3fc6['UUCzeO'][_0x195601];return!_0x155d05?(_0x3fc688=a0_0x3fc6['REJwpn'](_0x3fc688),a0_0x3fc6['UUCzeO'][_0x195601]=_0x3fc688):_0x3fc688=_0x155d05,_0x3fc688;}class ApiKeyManager{constructor(_0x39b63c){const _0x140629=a0_0x3fc6;this['logger']=_0x39b63c,this['sessionKeys']=new Map(),this[_0x140629(0x198)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0xcc68f9,_0xe9ff36){const _0x2a7ebc=a0_0x3fc6;if(!_0xcc68f9)throw new Error(_0x2a7ebc(0x17c));this['sessionKeys'][_0x2a7ebc(0x185)](_0xcc68f9,{'loxiaApiKey':_0xe9ff36['loxiaApiKey']||null,'vendorKeys':_0xe9ff36['vendorKeys']||{},'updatedAt':new Date()[_0x2a7ebc(0x184)]()}),this[_0x2a7ebc(0x191)]?.[_0x2a7ebc(0x195)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0xcc68f9,'hasLoxiaKey':!!_0xe9ff36['loxiaApiKey'],'vendorKeys':Object['keys'](_0xe9ff36[_0x2a7ebc(0x187)]||{}),'timestamp':new Date()[_0x2a7ebc(0x184)]()});}[a0_0x4d97ac(0x196)](_0x496191){const _0x364cb1=a0_0x4d97ac;if(!_0x496191)return this[_0x364cb1(0x198)];const _0x13f6d7=this[_0x364cb1(0x17f)]['get'](_0x496191);if(_0x13f6d7)return _0x13f6d7;return this['globalKeys'];}[a0_0x4d97ac(0x181)](_0x18846c,_0x26f97b={}){const _0x3f9bb0=a0_0x4d97ac,_0x5ccb83=this[_0x3f9bb0(0x196)](_0x18846c),_0x53c7c9={'loxiaApiKey':_0x5ccb83['loxiaApiKey'],'vendorApiKey':null};return!_0x26f97b['platformProvided']&&_0x26f97b[_0x3f9bb0(0x197)]&&_0x5ccb83[_0x3f9bb0(0x187)]&&(_0x53c7c9[_0x3f9bb0(0x192)]=_0x5ccb83[_0x3f9bb0(0x187)][_0x26f97b[_0x3f9bb0(0x197)]]),_0x53c7c9;}[a0_0x4d97ac(0x17b)](_0xe4343f){const _0x2509fc=a0_0x4d97ac;if(this['sessionKeys'][_0x2509fc(0x189)](_0xe4343f))return this['logger']?.[_0x2509fc(0x195)](_0x2509fc(0x18a),{'sessionId':_0xe4343f}),!![];return![];}['setGlobalKeys'](_0x12b670){const _0x257645=a0_0x4d97ac;this[_0x257645(0x198)]={'loxiaApiKey':_0x12b670['loxiaApiKey']||this[_0x257645(0x198)][_0x257645(0x18c)],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x12b670[_0x257645(0x187)]||{}}},this['logger']?.[_0x257645(0x195)](_0x257645(0x188),{'hasLoxiaKey':!!this['globalKeys']['loxiaApiKey'],'vendorKeys':Object['keys'](this['globalKeys'][_0x257645(0x187)])});}[a0_0x4d97ac(0x182)](){const _0x407667=a0_0x4d97ac;return Array['from'](this[_0x407667(0x17f)][_0x407667(0x178)]())[_0x407667(0x18d)](([_0x22ca96,_0x2c1fa1])=>({'sessionId':_0x22ca96,'hasLoxiaKey':!!_0x2c1fa1['loxiaApiKey'],'vendorKeys':Object[_0x407667(0x190)](_0x2c1fa1[_0x407667(0x187)]||{}),'updatedAt':_0x2c1fa1[_0x407667(0x18e)]}));}['cleanupExpiredSessions'](_0x5e96a9=0x18*0x3c*0x3c*0x3e8){const _0x10b927=a0_0x4d97ac,_0x5202e4=Date['now'](),_0x310256=[];for(const [_0x44b93e,_0x3916b0]of this['sessionKeys'][_0x10b927(0x178)]()){const _0x446bac=_0x5202e4-new Date(_0x3916b0[_0x10b927(0x18e)])[_0x10b927(0x17a)]();_0x446bac>_0x5e96a9&&_0x310256['push'](_0x44b93e);}return _0x310256[_0x10b927(0x180)](_0x4ce055=>{const _0x6f432d=_0x10b927;this[_0x6f432d(0x17f)]['delete'](_0x4ce055);}),_0x310256['length']>0x0&&this[_0x10b927(0x191)]?.['info'](_0x10b927(0x186),{'expiredSessions':_0x310256[_0x10b927(0x183)],'remainingSessions':this[_0x10b927(0x17f)]['size']}),_0x310256['length'];}}function a0_0x5112(){const _0x317e74=['zM9YrwfJAa','z2v0s2v5C0zVCLjLCxvLC3q','z2v0qwn0AxzLu2vZC2LVBNm','BgvUz3rO','Dg9ju09tDhjPBMC','C2v0','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','DMvUzg9Ys2v5CW','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','zgvSzxrL','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','nfb5D1PZqG','Bg94AwfbCgLlzxK','BwfW','DxbKyxrLzef0','ntiXotyWDgTMv09Y','A2v5CW','Bg9Nz2vY','DMvUzg9YqxbPs2v5','mJq2nJe1AuvywxnV','mZKZmZa2nefWuhzvvq','Aw5MBW','z2v0u2vZC2LVBKTLExm','DMvUzg9Y','z2XVyMfSs2v5CW','mZa3mty0D3LdsKHy','zw50CMLLCW','odq3ndi4Evr1D2HZ','z2v0vgLTzq','CMvTB3zLu2vZC2LVBKTLExm','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','mJuWntCXm3ffq2Tgwq','ndyXmdn3zhLAEue','C2vZC2LVBKTLExm'];a0_0x5112=function(){return _0x317e74;};return a0_0x5112();}export default ApiKeyManager;
1
+ const a0_0xbc54bf=a0_0xd19a;(function(_0x4b68a7,_0x1b0860){const _0x42849b=a0_0xd19a,_0x2c1937=_0x4b68a7();while(!![]){try{const _0x2bb051=-parseInt(_0x42849b(0x79))/0x1+-parseInt(_0x42849b(0x78))/0x2+-parseInt(_0x42849b(0x81))/0x3+-parseInt(_0x42849b(0x74))/0x4*(-parseInt(_0x42849b(0x82))/0x5)+parseInt(_0x42849b(0x7a))/0x6*(-parseInt(_0x42849b(0x92))/0x7)+-parseInt(_0x42849b(0x8c))/0x8+parseInt(_0x42849b(0x80))/0x9;if(_0x2bb051===_0x1b0860)break;else _0x2c1937['push'](_0x2c1937['shift']());}catch(_0x3e9cf9){_0x2c1937['push'](_0x2c1937['shift']());}}}(a0_0x5f02,0xccd70));function a0_0xd19a(_0x391d45,_0x10c5c6){_0x391d45=_0x391d45-0x73;const _0x5f02bd=a0_0x5f02();let _0xd19a9a=_0x5f02bd[_0x391d45];if(a0_0xd19a['VouXdC']===undefined){var _0x58a365=function(_0xfa7598){const _0x4d5e3c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ebe31='',_0x1b088c='';for(let _0xd7e80=0x0,_0x402bde,_0x354562,_0x10d4bf=0x0;_0x354562=_0xfa7598['charAt'](_0x10d4bf++);~_0x354562&&(_0x402bde=_0xd7e80%0x4?_0x402bde*0x40+_0x354562:_0x354562,_0xd7e80++%0x4)?_0x2ebe31+=String['fromCharCode'](0xff&_0x402bde>>(-0x2*_0xd7e80&0x6)):0x0){_0x354562=_0x4d5e3c['indexOf'](_0x354562);}for(let _0x410c65=0x0,_0x268ce8=_0x2ebe31['length'];_0x410c65<_0x268ce8;_0x410c65++){_0x1b088c+='%'+('00'+_0x2ebe31['charCodeAt'](_0x410c65)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b088c);};a0_0xd19a['xpcCBv']=_0x58a365,a0_0xd19a['GqzLHi']={},a0_0xd19a['VouXdC']=!![];}const _0x28b3b1=_0x5f02bd[0x0],_0x62c270=_0x391d45+_0x28b3b1,_0x5673bb=a0_0xd19a['GqzLHi'][_0x62c270];return!_0x5673bb?(_0xd19a9a=a0_0xd19a['xpcCBv'](_0xd19a9a),a0_0xd19a['GqzLHi'][_0x62c270]=_0xd19a9a):_0xd19a9a=_0x5673bb,_0xd19a9a;}class ApiKeyManager{constructor(_0x2ebe31){const _0x2a5595=a0_0xd19a;this['logger']=_0x2ebe31,this[_0x2a5595(0x86)]=new Map(),this[_0x2a5595(0x76)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x1b088c,_0xd7e80){const _0x124841=a0_0xd19a;if(!_0x1b088c)throw new Error(_0x124841(0x7f));this['sessionKeys']['set'](_0x1b088c,{'loxiaApiKey':_0xd7e80['loxiaApiKey']||null,'vendorKeys':_0xd7e80['vendorKeys']||{},'updatedAt':new Date()[_0x124841(0x7c)]()}),this[_0x124841(0x7b)]?.[_0x124841(0x75)](_0x124841(0x83),{'sessionId':_0x1b088c,'hasLoxiaKey':!!_0xd7e80['loxiaApiKey'],'vendorKeys':Object['keys'](_0xd7e80[_0x124841(0x73)]||{}),'timestamp':new Date()[_0x124841(0x7c)]()});}['getSessionKeys'](_0x402bde){const _0x155ff6=a0_0xd19a;if(!_0x402bde)return this[_0x155ff6(0x76)];const _0x354562=this[_0x155ff6(0x86)][_0x155ff6(0x7e)](_0x402bde);if(_0x354562)return _0x354562;return this[_0x155ff6(0x76)];}['getKeysForRequest'](_0x10d4bf,_0x410c65={}){const _0x7f3a5f=a0_0xd19a,_0x268ce8=this[_0x7f3a5f(0x8d)](_0x10d4bf),_0x437aac={'loxiaApiKey':_0x268ce8['loxiaApiKey'],'vendorApiKey':null};return!_0x410c65[_0x7f3a5f(0x90)]&&_0x410c65[_0x7f3a5f(0x8e)]&&_0x268ce8[_0x7f3a5f(0x73)]&&(_0x437aac['vendorApiKey']=_0x268ce8[_0x7f3a5f(0x73)][_0x410c65[_0x7f3a5f(0x8e)]]),_0x437aac;}['removeSessionKeys'](_0x5920d7){const _0x323f54=a0_0xd19a;if(this['sessionKeys']['delete'](_0x5920d7))return this['logger']?.[_0x323f54(0x75)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x5920d7}),!![];return![];}[a0_0xbc54bf(0x87)](_0x120c69){const _0xb935fd=a0_0xbc54bf;this['globalKeys']={'loxiaApiKey':_0x120c69['loxiaApiKey']||this[_0xb935fd(0x76)][_0xb935fd(0x7d)],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x120c69['vendorKeys']||{}}},this[_0xb935fd(0x7b)]?.['info']('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0xb935fd(0x76)]['loxiaApiKey'],'vendorKeys':Object[_0xb935fd(0x77)](this['globalKeys'][_0xb935fd(0x73)])});}['getActiveSessions'](){const _0x3ee202=a0_0xbc54bf;return Array[_0x3ee202(0x89)](this[_0x3ee202(0x86)]['entries']())[_0x3ee202(0x91)](([_0x250ad2,_0x4f7848])=>({'sessionId':_0x250ad2,'hasLoxiaKey':!!_0x4f7848[_0x3ee202(0x7d)],'vendorKeys':Object['keys'](_0x4f7848[_0x3ee202(0x73)]||{}),'updatedAt':_0x4f7848[_0x3ee202(0x8f)]}));}['cleanupExpiredSessions'](_0x111f5c=0x18*0x3c*0x3c*0x3e8){const _0xb4b49a=a0_0xbc54bf,_0x552696=Date['now'](),_0x490fa4=[];for(const [_0x2e1306,_0x12c9ab]of this[_0xb4b49a(0x86)][_0xb4b49a(0x84)]()){const _0x252d25=_0x552696-new Date(_0x12c9ab[_0xb4b49a(0x8f)])['getTime']();_0x252d25>_0x111f5c&&_0x490fa4['push'](_0x2e1306);}return _0x490fa4['forEach'](_0xcbcb08=>{const _0x5a073a=_0xb4b49a;this['sessionKeys'][_0x5a073a(0x85)](_0xcbcb08);}),_0x490fa4['length']>0x0&&this[_0xb4b49a(0x7b)]?.[_0xb4b49a(0x75)](_0xb4b49a(0x8b),{'expiredSessions':_0x490fa4['length'],'remainingSessions':this['sessionKeys'][_0xb4b49a(0x88)]}),_0x490fa4[_0xb4b49a(0x8a)];}}function a0_0x5f02(){const _0x1e142a=['C2v0r2XVyMfSs2v5CW','C2L6zq','zNjVBq','BgvUz3rO','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','odeWntq0ogDTzgnLza','z2v0u2vZC2LVBKTLExm','DMvUzg9Y','DxbKyxrLzef0','CgXHDgzVCM1qCM92AwrLza','BwfW','odK2y0HiBM5z','DMvUzg9Ys2v5CW','otq0mdr3ugXtAhe','Aw5MBW','z2XVyMfSs2v5CW','A2v5CW','mZC2nZG0vKfszKnv','mteZmZK1n2riveDksa','mZm4mtzUDe55BNi','Bg9Nz2vY','Dg9ju09tDhjPBMC','Bg94AwfbCgLlzxK','z2v0','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','ndaWmteYndzvCuvqqLO','mZq5mda3ngDjv3bJtG','mtmWqxjRzMjT','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','zw50CMLLCW','zgvSzxrL','C2vZC2LVBKTLExm'];a0_0x5f02=function(){return _0x1e142a;};return a0_0x5f02();}export default ApiKeyManager;
@@ -1 +1 @@
1
- const a0_0x1342eb=a0_0x3895;function a0_0x3895(_0x367c8f,_0x3cb00a){_0x367c8f=_0x367c8f-0x84;const _0x5b2df6=a0_0x5b2d();let _0x3895bb=_0x5b2df6[_0x367c8f];if(a0_0x3895['LFWIDe']===undefined){var _0x53baf1=function(_0x433d40){const _0x8b21e9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x27f61c='',_0x2be7d='';for(let _0x291abf=0x0,_0x58c15f,_0x258275,_0x53de8b=0x0;_0x258275=_0x433d40['charAt'](_0x53de8b++);~_0x258275&&(_0x58c15f=_0x291abf%0x4?_0x58c15f*0x40+_0x258275:_0x258275,_0x291abf++%0x4)?_0x27f61c+=String['fromCharCode'](0xff&_0x58c15f>>(-0x2*_0x291abf&0x6)):0x0){_0x258275=_0x8b21e9['indexOf'](_0x258275);}for(let _0x1fabc6=0x0,_0x3bd0ad=_0x27f61c['length'];_0x1fabc6<_0x3bd0ad;_0x1fabc6++){_0x2be7d+='%'+('00'+_0x27f61c['charCodeAt'](_0x1fabc6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2be7d);};a0_0x3895['HlyAiZ']=_0x53baf1,a0_0x3895['bJFjyf']={},a0_0x3895['LFWIDe']=!![];}const _0x16d4e9=_0x5b2df6[0x0],_0x4927ea=_0x367c8f+_0x16d4e9,_0x2d7c35=a0_0x3895['bJFjyf'][_0x4927ea];return!_0x2d7c35?(_0x3895bb=a0_0x3895['HlyAiZ'](_0x3895bb),a0_0x3895['bJFjyf'][_0x4927ea]=_0x3895bb):_0x3895bb=_0x2d7c35,_0x3895bb;}(function(_0x49b177,_0x3b3ecc){const _0x410c9b=a0_0x3895,_0x58b42c=_0x49b177();while(!![]){try{const _0x36c7cf=parseInt(_0x410c9b(0xb4))/0x1+-parseInt(_0x410c9b(0x92))/0x2+parseInt(_0x410c9b(0x86))/0x3+parseInt(_0x410c9b(0xa0))/0x4+parseInt(_0x410c9b(0x85))/0x5+-parseInt(_0x410c9b(0x87))/0x6*(-parseInt(_0x410c9b(0xa6))/0x7)+-parseInt(_0x410c9b(0x94))/0x8*(parseInt(_0x410c9b(0x95))/0x9);if(_0x36c7cf===_0x3b3ecc)break;else _0x58b42c['push'](_0x58b42c['shift']());}catch(_0x195c11){_0x58b42c['push'](_0x58b42c['shift']());}}}(a0_0x5b2d,0x7f7cc));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x27f61c,_0x2be7d){const _0x145cef=a0_0x3895;this[_0x145cef(0x98)]=_0x27f61c,this[_0x145cef(0xa5)]=_0x2be7d,this['benchmarks']=null,this['lastUpdated']=null,this['isLoading']=![],this[_0x145cef(0x8f)]=_0x145cef(0xa2),this['refreshInterval']=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async[a0_0x1342eb(0x91)](){const _0x46090a=a0_0x1342eb;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger'][_0x46090a(0xa3)](_0x46090a(0x88));}catch(_0x291abf){this['logger']['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x291abf['message']}),this['benchmarks']=null;}}['getBenchmarks'](){const _0x4ffa6a=a0_0x1342eb;if(!this[_0x4ffa6a(0x9a)])return this[_0x4ffa6a(0xa5)]['error'](_0x4ffa6a(0x8d),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x4ffa6a(0x9a)];}async['loadBenchmarks'](){const _0x16eb2d=a0_0x1342eb;if(this['isLoading']){this[_0x16eb2d(0xa5)]['debug'](_0x16eb2d(0x90));return;}this['isLoading']=!![];try{const _0x58c15f=await this['_fetchFromAzureBackend']();if(_0x58c15f)this[_0x16eb2d(0x9a)]=_0x58c15f,this['lastUpdated']=new Date(),this['logger']['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x58c15f[_0x16eb2d(0x9e)]?.[_0x16eb2d(0x99)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x258275){this['logger'][_0x16eb2d(0xb7)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x258275['message'],'endpoint':url}),!this[_0x16eb2d(0x9a)]&&(this['benchmarks']=null);}finally{this[_0x16eb2d(0x9d)]=![];}}['getBenchmarkTable'](){const _0x5830f3=a0_0x1342eb,_0x53de8b=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.[_0x5830f3(0x8a)]()||_0x5830f3(0x84),'models':_0x53de8b[_0x5830f3(0x9e)]||[],'tasks':_0x53de8b[_0x5830f3(0x9b)]||{},'summary':this['_generateBenchmarkSummary'](_0x53de8b)};}[a0_0x1342eb(0xad)](){const _0x12fba8=a0_0x1342eb;if(!this[_0x12fba8(0xaa)])return!![];const _0x1fabc6=Date[_0x12fba8(0xa1)]()-this[_0x12fba8(0xaa)]['getTime']();return _0x1fabc6>this['refreshInterval'];}async[a0_0x1342eb(0x8b)](){const _0xee24e4=a0_0x1342eb,_0x3bd0ad=this[_0xee24e4(0x8f)]+'/llm/model-benchmarks';let _0x398a3e=null;this['config'][_0xee24e4(0xb6)]&&(_0x398a3e=this['config'][_0xee24e4(0xb6)]);const _0x58a232={'method':'GET','headers':{'Content-Type':_0xee24e4(0x8e),..._0x398a3e&&{'Authorization':_0xee24e4(0xa9)+_0x398a3e}},'timeout':0x2710};this[_0xee24e4(0xa5)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x3bd0ad});const _0x507868=await fetch(_0x3bd0ad,_0x58a232);if(!_0x507868['ok'])throw new Error('HTTP\x20'+_0x507868['status']+':\x20'+_0x507868['statusText']);const _0x3413ce=await _0x507868[_0xee24e4(0xba)]();return _0x3413ce;}[a0_0x1342eb(0xb5)](_0x50f9e5){const _0x2784a3=a0_0x1342eb,_0x195188=_0x50f9e5['models']||[];return{'totalModels':_0x195188['length'],'taskCategories':Object[_0x2784a3(0x93)](_0x50f9e5['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x195188,_0x2784a3(0xa7)),'bestForAnalysis':this[_0x2784a3(0xbc)](_0x195188,_0x2784a3(0xab)),'bestForQuickTasks':this[_0x2784a3(0xbc)](_0x195188,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x195188,_0x2784a3(0xb1)),'fastestModel':this[_0x2784a3(0xae)](_0x195188),'mostCostEfficient':this['_getMostCostEfficient'](_0x195188)};}[a0_0x1342eb(0xbc)](_0x35892c,_0x2b4937){const _0x825030=a0_0x1342eb;return _0x35892c[_0x825030(0xb0)](_0x556e8d=>_0x556e8d[_0x825030(0x9b)]&&_0x556e8d[_0x825030(0x9b)][_0x2b4937])['sort']((_0x311b99,_0x3f3200)=>(_0x3f3200[_0x825030(0x9b)][_0x2b4937][_0x825030(0x97)]||0x0)-(_0x311b99[_0x825030(0x9b)][_0x2b4937]['score']||0x0))[0x0]?.[_0x825030(0x9f)]||'unknown';}[a0_0x1342eb(0xae)](_0x2437b4){const _0x4d736c=a0_0x1342eb,_0x58f052={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x2437b4[_0x4d736c(0xb3)]((_0x470f5d,_0x5685ba)=>{const _0x2c3fa3=_0x4d736c,_0x2e7146=Math['max'](...Object[_0x2c3fa3(0x9c)](_0x470f5d[_0x2c3fa3(0x9b)]||{})[_0x2c3fa3(0xac)](_0x13a87a=>_0x58f052[_0x13a87a[_0x2c3fa3(0x89)]]||0x0)),_0x15c536=Math[_0x2c3fa3(0xa8)](...Object[_0x2c3fa3(0x9c)](_0x5685ba[_0x2c3fa3(0x9b)]||{})['map'](_0x1757ed=>_0x58f052[_0x1757ed['speed']]||0x0));return _0x15c536-_0x2e7146;})[0x0]?.[_0x4d736c(0x9f)]||_0x4d736c(0x84);}[a0_0x1342eb(0xbb)](_0x29afac){const _0x3f475f=a0_0x1342eb,_0x137f08={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x29afac[_0x3f475f(0xb3)]((_0x4d5a8e,_0x4d1de9)=>{const _0x481b29=_0x3f475f,_0x58d59d=Math[_0x481b29(0xa8)](...Object['values'](_0x4d5a8e[_0x481b29(0x9b)]||{})[_0x481b29(0xac)](_0x5930ac=>_0x137f08[_0x5930ac['cost']]||0x0)),_0x19109f=Math['max'](...Object[_0x481b29(0x9c)](_0x4d1de9['tasks']||{})[_0x481b29(0xac)](_0x4d9c6c=>_0x137f08[_0x4d9c6c[_0x481b29(0xb8)]]||0x0));return _0x19109f-_0x58d59d;})[0x0]?.[_0x3f475f(0x9f)]||_0x3f475f(0x84);}[a0_0x1342eb(0xb9)](){const _0x5e36a8=a0_0x1342eb;setInterval(async()=>{const _0x35f2c5=a0_0x3895;this[_0x35f2c5(0xad)]()&&(this[_0x35f2c5(0xa5)][_0x35f2c5(0xa4)](_0x35f2c5(0xb2)),await this['loadBenchmarks']());},this[_0x5e36a8(0x8c)]);}async[a0_0x1342eb(0xaf)](){const _0x41add8=a0_0x1342eb;this[_0x41add8(0xa5)][_0x41add8(0xa3)]('Force\x20refreshing\x20benchmark\x20data'),await this['loadBenchmarks']();}['getStatus'](){const _0x27522f=a0_0x1342eb;return{'initialized':!!this[_0x27522f(0x9a)],'lastUpdated':this['lastUpdated']?.[_0x27522f(0x8a)]()||null,'source':this['benchmarks']?.[_0x27522f(0x96)]||_0x27522f(0x84),'modelCount':this['benchmarks']?.['models']?.[_0x27522f(0x99)]||0x0,'isLoading':this[_0x27522f(0x9d)],'needsRefresh':this['needsRefresh']()};}}function a0_0x5b2d(){const _0x5e4d19=['CMvMCMvZAeLUDgvYDMfS','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','yxbWBgLJyxrPB24VANnVBG','yxP1CMvcywnRzw5KvxjS','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','Aw5PDgLHBgL6zq','mZaYmZyYs3fWwgfN','A2v5CW','mJiYotm3nKjOywPgvW','ndvTyMnszLi','C291CMnL','C2nVCMu','y29UzMLN','BgvUz3rO','yMvUy2HTyxjRCW','DgfZA3m','DMfSDwvZ','AxnmB2fKAw5N','Bw9KzwXZ','BMfTzq','mZKXmJeXnMfAvLrcEG','BM93','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','Aw5MBW','zgvIDwC','Bg9Nz2vY','otfKCKDOze0','y29KAw5N','Bwf4','qMvHCMvYia','BgfZDfvWzgf0zwq','yw5HBhLZAxm','BwfW','BMvLzhnszwzYzxnO','x2DLDezHC3rLC3rnB2rLBa','zM9Yy2vszwzYzxnO','zMLSDgvY','y3jLyxrPDMu','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','C29YDa','otq2mZn2u05lr1u','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','yxbPs2v5','zxjYB3i','y29ZDa','x3nJAgvKDwXLuMvMCMvZAa','ANnVBG','x2DLDe1VC3rdB3n0rwzMAwnPzw50','x2DLDejLC3rnB2rLBezVCLrHC2S','Dw5RBM93BG','nJCZmZaWzNLTwM1Z','mtyWntqWnxDsvejqCq','mtq5nJy0ELbLvw9L','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','C3bLzwq','Dg9ju09tDhjPBMC','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza'];a0_0x5b2d=function(){return _0x5e4d19;};return a0_0x5b2d();}export default BenchmarkService;
1
+ const a0_0x453c65=a0_0x11fe;(function(_0xca7a58,_0x997fb9){const _0x1b7617=a0_0x11fe,_0x26f30c=_0xca7a58();while(!![]){try{const _0x497ac7=-parseInt(_0x1b7617(0x74))/0x1*(parseInt(_0x1b7617(0x70))/0x2)+parseInt(_0x1b7617(0xa5))/0x3+-parseInt(_0x1b7617(0x7b))/0x4*(parseInt(_0x1b7617(0x72))/0x5)+-parseInt(_0x1b7617(0x79))/0x6+-parseInt(_0x1b7617(0x73))/0x7+parseInt(_0x1b7617(0x7f))/0x8+-parseInt(_0x1b7617(0x77))/0x9;if(_0x497ac7===_0x997fb9)break;else _0x26f30c['push'](_0x26f30c['shift']());}catch(_0x2045a9){_0x26f30c['push'](_0x26f30c['shift']());}}}(a0_0xd7e5,0x7e58c));function a0_0x11fe(_0x5ceeeb,_0x4c3b34){_0x5ceeeb=_0x5ceeeb-0x6e;const _0xd7e5bd=a0_0xd7e5();let _0x11fe63=_0xd7e5bd[_0x5ceeeb];if(a0_0x11fe['EbjdFo']===undefined){var _0x5872ef=function(_0x150c4b){const _0x2cc337='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x52ba1b='',_0x18dce4='';for(let _0x2a8502=0x0,_0x178489,_0x146727,_0x2f0a20=0x0;_0x146727=_0x150c4b['charAt'](_0x2f0a20++);~_0x146727&&(_0x178489=_0x2a8502%0x4?_0x178489*0x40+_0x146727:_0x146727,_0x2a8502++%0x4)?_0x52ba1b+=String['fromCharCode'](0xff&_0x178489>>(-0x2*_0x2a8502&0x6)):0x0){_0x146727=_0x2cc337['indexOf'](_0x146727);}for(let _0x1af510=0x0,_0x4aaa2f=_0x52ba1b['length'];_0x1af510<_0x4aaa2f;_0x1af510++){_0x18dce4+='%'+('00'+_0x52ba1b['charCodeAt'](_0x1af510)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18dce4);};a0_0x11fe['WIMVgI']=_0x5872ef,a0_0x11fe['GNPEYg']={},a0_0x11fe['EbjdFo']=!![];}const _0x201221=_0xd7e5bd[0x0],_0x39b63f=_0x5ceeeb+_0x201221,_0x45bc35=a0_0x11fe['GNPEYg'][_0x39b63f];return!_0x45bc35?(_0x11fe63=a0_0x11fe['WIMVgI'](_0x11fe63),a0_0x11fe['GNPEYg'][_0x39b63f]=_0x11fe63):_0x11fe63=_0x45bc35,_0x11fe63;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0xd7e5(){const _0x45caaf=['AxnmB2fKAw5N','yxbPs2v5','zgvIDwC','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','BgvUz3rO','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BgfZDfvWzgf0zwq','Bwf4','Bg9HzejLBMnOBwfYA3m','y29ZDa','BM93','BwvZC2fNzq','zM9Yy2vszwzYzxnO','C291CMnL','x2DLDezHC3rLC3rnB2rLBa','z2v0vgLTzq','Bw9KzwXZ','qMvHCMvYia','yMvUy2HTyxjRCW','mJm3mdqXmu1RA2fiDG','z2v0qMvUy2HTyxjRvgfIBgu','x3nJAgvKDwXLuMvMCMvZAa','DMfSDwvZ','z2v0u3rHDhvZ','CxvPy2STDgfZA3m','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','C2nVCMu','BMvLzhnszwzYzxnO','mJa2mKPXz2D2wa','x2DLDejLC3rnB2rLBezVCLrHC2S','mZu0otKWBfPJsuvn','mZG3nduWn1jLwK5dwa','mtvAt3POA3q','Dg9ju09tDhjPBMC','zxjYB3i','nZe0otqYAMXZBwHx','A2v5CW','mta3nZqXnevRwfrwsG','DgfZA3m','ngnnt0LLva','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','BwfW','C29YDa','ntaXmdGWmgLNrKXgBq','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','y29UzMLN','CMvMCMvZAeLUDgvYDMfS','yw5HBhLZAxm','yxP1CMvcywnRzw5KvxjS','BMfTzq','Bg9Nz2vY','x2DLDe1VC3rdB3n0rwzMAwnPzw50','C3rHDhvZvgv4Da','C3rHDhvZ','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','Aw5PDgLHBgL6zq','yxbWBgLJyxrPB24VANnVBG','Dw5RBM93BG','y29KAw5N','C3bLzwq','Aw5MBW'];a0_0xd7e5=function(){return _0x45caaf;};return a0_0xd7e5();}class BenchmarkService{constructor(_0x52ba1b,_0x18dce4){const _0x39fbcf=a0_0x11fe;this[_0x39fbcf(0x81)]=_0x52ba1b,this['logger']=_0x18dce4,this[_0x39fbcf(0xa4)]=null,this[_0x39fbcf(0x98)]=null,this['isLoading']=![],this[_0x39fbcf(0x84)]=_0x39fbcf(0xab),this[_0x39fbcf(0x82)]=MODEL_ROUTER_CONFIG[_0x39fbcf(0x97)];}async[a0_0x453c65(0x8b)](){const _0x1ef323=a0_0x453c65;try{await this[_0x1ef323(0x9a)](),this[_0x1ef323(0xa7)](),this['logger']['info']('Benchmark\x20service\x20initialized');}catch(_0x2a8502){this[_0x1ef323(0x86)]['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x2a8502['message']}),this['benchmarks']=null;}}['getBenchmarks'](){const _0x2d7811=a0_0x453c65;if(!this[_0x2d7811(0xa4)])return this['logger']['error'](_0x2d7811(0x95),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x2d7811(0xa4)];}async[a0_0x453c65(0x9a)](){const _0x50f2ea=a0_0x453c65;if(this['isLoading']){this['logger'][_0x50f2ea(0x93)](_0x50f2ea(0x94));return;}this[_0x50f2ea(0x91)]=!![];try{const _0x178489=await this['_fetchFromAzureBackend']();if(_0x178489)this['benchmarks']=_0x178489,this['lastUpdated']=new Date(),this[_0x50f2ea(0x86)][_0x50f2ea(0x90)]('Benchmarks loaded from Azure backend',{'modelCount':_0x178489['models']?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x146727){this['logger'][_0x50f2ea(0x76)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x146727[_0x50f2ea(0x9d)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this[_0x50f2ea(0x91)]=![];}}[a0_0x453c65(0xa6)](){const _0x18ea1e=a0_0x453c65,_0x2f0a20=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.[_0x18ea1e(0x75)]()||_0x18ea1e(0x8d),'models':_0x2f0a20['models']||[],'tasks':_0x2f0a20['tasks']||{},'summary':this[_0x18ea1e(0x80)](_0x2f0a20)};}['needsRefresh'](){const _0x5149cc=a0_0x453c65;if(!this['lastUpdated'])return!![];const _0x1af510=Date[_0x5149cc(0x9c)]()-this['lastUpdated'][_0x5149cc(0xa1)]();return _0x1af510>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0x273c63=a0_0x453c65,_0x4aaa2f=this[_0x273c63(0x84)]+_0x273c63(0x8a);let _0x864153=null;this[_0x273c63(0x81)][_0x273c63(0x92)]&&(_0x864153=this[_0x273c63(0x81)]['apiKey']);const _0x2e82e3={'method':'GET','headers':{'Content-Type':_0x273c63(0x8c),..._0x864153&&{'Authorization':_0x273c63(0xa3)+_0x864153}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x4aaa2f});const _0x4b4257=await fetch(_0x4aaa2f,_0x2e82e3);if(!_0x4b4257['ok'])throw new Error('HTTP\x20'+_0x4b4257[_0x273c63(0x89)]+':\x20'+_0x4b4257[_0x273c63(0x88)]);const _0xaf29ca=await _0x4b4257['json']();return _0xaf29ca;}['_generateBenchmarkSummary'](_0x25da50){const _0x124cc4=a0_0x453c65,_0xd1a092=_0x25da50[_0x124cc4(0xa2)]||[];return{'totalModels':_0xd1a092[_0x124cc4(0x96)],'taskCategories':Object[_0x124cc4(0x78)](_0x25da50[_0x124cc4(0x7a)]||{}),'bestForCoding':this['_getBestModelForTask'](_0xd1a092,_0x124cc4(0x8e)),'bestForAnalysis':this['_getBestModelForTask'](_0xd1a092,_0x124cc4(0x83)),'bestForQuickTasks':this['_getBestModelForTask'](_0xd1a092,_0x124cc4(0xaa)),'bestForCreative':this[_0x124cc4(0x71)](_0xd1a092,'creative'),'fastestModel':this[_0x124cc4(0xa0)](_0xd1a092),'mostCostEfficient':this[_0x124cc4(0x87)](_0xd1a092)};}[a0_0x453c65(0x71)](_0x329f38,_0x4ba899){const _0x39d65c=a0_0x453c65;return _0x329f38['filter'](_0x2a463e=>_0x2a463e[_0x39d65c(0x7a)]&&_0x2a463e[_0x39d65c(0x7a)][_0x4ba899])[_0x39d65c(0x7e)]((_0x39491c,_0x31fb17)=>(_0x31fb17['tasks'][_0x4ba899][_0x39d65c(0x6e)]||0x0)-(_0x39491c['tasks'][_0x4ba899][_0x39d65c(0x6e)]||0x0))[0x0]?.[_0x39d65c(0x85)]||'unknown';}['_getFastestModel'](_0x186377){const _0x52b3dc=a0_0x453c65,_0x5bd579={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x186377['sort']((_0x1b60e0,_0x4b1b3a)=>{const _0x1d7206=a0_0x11fe,_0x2cc2c1=Math['max'](...Object[_0x1d7206(0xa8)](_0x1b60e0[_0x1d7206(0x7a)]||{})['map'](_0x41b8d6=>_0x5bd579[_0x41b8d6[_0x1d7206(0x8f)]]||0x0)),_0x34fced=Math['max'](...Object['values'](_0x4b1b3a[_0x1d7206(0x7a)]||{})[_0x1d7206(0x7d)](_0x1b326f=>_0x5bd579[_0x1b326f[_0x1d7206(0x8f)]]||0x0));return _0x34fced-_0x2cc2c1;})[0x0]?.[_0x52b3dc(0x85)]||_0x52b3dc(0x8d);}[a0_0x453c65(0x87)](_0x46d286){const _0x50a362=a0_0x453c65,_0x2d8b90={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x46d286[_0x50a362(0x7e)]((_0x407148,_0x1785e0)=>{const _0x3cfb4f=_0x50a362,_0x2cdde8=Math[_0x3cfb4f(0x99)](...Object['values'](_0x407148['tasks']||{})[_0x3cfb4f(0x7d)](_0x6efae4=>_0x2d8b90[_0x6efae4[_0x3cfb4f(0x9b)]]||0x0)),_0x1d2a1f=Math[_0x3cfb4f(0x99)](...Object[_0x3cfb4f(0xa8)](_0x1785e0['tasks']||{})['map'](_0x37a706=>_0x2d8b90[_0x37a706[_0x3cfb4f(0x9b)]]||0x0));return _0x1d2a1f-_0x2cdde8;})[0x0]?.[_0x50a362(0x85)]||'unknown';}[a0_0x453c65(0xa7)](){const _0x302603=a0_0x453c65;setInterval(async()=>{const _0x5b982d=a0_0x11fe;this[_0x5b982d(0x6f)]()&&(this[_0x5b982d(0x86)]['debug']('Refreshing\x20benchmark\x20data'),await this[_0x5b982d(0x9a)]());},this[_0x302603(0x82)]);}async[a0_0x453c65(0x9e)](){const _0x496073=a0_0x453c65;this[_0x496073(0x86)][_0x496073(0x90)](_0x496073(0x7c)),await this['loadBenchmarks']();}[a0_0x453c65(0xa9)](){const _0x1b3a5d=a0_0x453c65;return{'initialized':!!this[_0x1b3a5d(0xa4)],'lastUpdated':this['lastUpdated']?.[_0x1b3a5d(0x75)]()||null,'source':this['benchmarks']?.[_0x1b3a5d(0x9f)]||'unknown','modelCount':this[_0x1b3a5d(0xa4)]?.[_0x1b3a5d(0xa2)]?.['length']||0x0,'isLoading':this['isLoading'],'needsRefresh':this[_0x1b3a5d(0x6f)]()};}}export default BenchmarkService;
@@ -1 +1 @@
1
- function a0_0x5dcf(_0x290c5d,_0x45ea62){_0x290c5d=_0x290c5d-0xc0;const _0x56c73e=a0_0x56c7();let _0x5dcf4b=_0x56c73e[_0x290c5d];if(a0_0x5dcf['cfWKdf']===undefined){var _0x42ede6=function(_0x2857cf){const _0x4aec38='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa78609='',_0xc4316a='';for(let _0x3dcf71=0x0,_0x2bd6e6,_0x5d8d2e,_0x2bc25b=0x0;_0x5d8d2e=_0x2857cf['charAt'](_0x2bc25b++);~_0x5d8d2e&&(_0x2bd6e6=_0x3dcf71%0x4?_0x2bd6e6*0x40+_0x5d8d2e:_0x5d8d2e,_0x3dcf71++%0x4)?_0xa78609+=String['fromCharCode'](0xff&_0x2bd6e6>>(-0x2*_0x3dcf71&0x6)):0x0){_0x5d8d2e=_0x4aec38['indexOf'](_0x5d8d2e);}for(let _0x16ff34=0x0,_0x30a240=_0xa78609['length'];_0x16ff34<_0x30a240;_0x16ff34++){_0xc4316a+='%'+('00'+_0xa78609['charCodeAt'](_0x16ff34)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc4316a);};a0_0x5dcf['bilopj']=_0x42ede6,a0_0x5dcf['SLkmpF']={},a0_0x5dcf['cfWKdf']=!![];}const _0x2ffca6=_0x56c73e[0x0],_0x52f10e=_0x290c5d+_0x2ffca6,_0x36b255=a0_0x5dcf['SLkmpF'][_0x52f10e];return!_0x36b255?(_0x5dcf4b=a0_0x5dcf['bilopj'](_0x5dcf4b),a0_0x5dcf['SLkmpF'][_0x52f10e]=_0x5dcf4b):_0x5dcf4b=_0x36b255,_0x5dcf4b;}const a0_0x340bc2=a0_0x5dcf;(function(_0x54fc3f,_0x169f71){const _0x4b3559=a0_0x5dcf,_0x1475f3=_0x54fc3f();while(!![]){try{const _0x208c3c=-parseInt(_0x4b3559(0xdd))/0x1*(parseInt(_0x4b3559(0x107))/0x2)+parseInt(_0x4b3559(0x10e))/0x3*(parseInt(_0x4b3559(0xda))/0x4)+parseInt(_0x4b3559(0xec))/0x5+parseInt(_0x4b3559(0xfd))/0x6*(-parseInt(_0x4b3559(0x11c))/0x7)+-parseInt(_0x4b3559(0x11b))/0x8*(parseInt(_0x4b3559(0xe0))/0x9)+-parseInt(_0x4b3559(0xf4))/0xa*(parseInt(_0x4b3559(0x100))/0xb)+-parseInt(_0x4b3559(0xe5))/0xc*(-parseInt(_0x4b3559(0xd7))/0xd);if(_0x208c3c===_0x169f71)break;else _0x1475f3['push'](_0x1475f3['shift']());}catch(_0x57cfcc){_0x1475f3['push'](_0x1475f3['shift']());}}}(a0_0x56c7,0x390dd));function a0_0x56c7(){const _0x23f112=['z2v0','C2v0','y29UzMLN','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mZi5nMjuqLv4uG','mtrktwnHq1q','z2v0tw9UDgG','z2v0v2vLA0TLEq','C3rYAw5NAwz5','yNvKz2v0qwXLCNq','ChvZAa','zw50CMLLCW','y29UDMvYDfrVq1nw','C2f2zvvZywDLrgf0yq','Bg9Nz2vY','ywXLCNrZ','Aw5PDgLHBgL6zvvZywDLrw50CNK','Bg9HzfvZywDLrgf0yq','yNvKz2v0CW','C2v0DxbqzxjPB2rPy1nHDMu','D2fYBG','q29ZDa','Dg90ywW','y3n2','z2v0rNvSBfLLyxi','rgfPBhK','y3jLyxrLrw1WDhLvC2fNzq','refjtfK','AxnxAxrOAw5cDwrNzxq','mtaZmde1oujItfv3Ea','z2v0qwDLBNrvC2fNzq','veHsrvnit0XeuW','mZe2DhLuwLb1','z2v0vxnHz2u','Bw9UDgHSEq','mZvptMfNBxi','C2v0qNvKz2v0CW','zgfPBhLbDMvYywDLCW','mtaXotDgCgjqBwi','BgfZDefSzxj0vgLTzxm','AM9PBG','ANnVBG','z2v0tw9KzwXvC2fNzq','mtq0r2TPuMLR','z2v0uMvTywLUAw5NqNvKz2v0','Bwf4','Dg9WqwDLBNrZ','qNvKz2v0igXPBwL0CYb1CgrHDgvK','ltaX','Dw5ZAgLMDa','mtGYmJyXmgz6thfsBW','yNLnB2rLBa','Dg9Rzw5ZqNLeyxK','qwDLBNq','tw9KzwW','AgfZ','y29ZDa','Dg9tDhjPBMC','mteYmhDNy2rQyq','C29YDa','C2vUzfrOCMvZAg9SzefSzxj0','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','ugvYAw9K','zM9YrwfJAa','zw1PDa','vg9Rzw5Z','z2v0rgf5s2v5','nZmZmdm4uKfkrhzl','C3bSAxq','zgfPBhK','mJiXmJfoswjnr2e','ywDLBNrjza','BM93','C2XPy2u','Dg9ju09tDhjPBMC','BwfW','DxnHz2u','mtKZotrgEgzNzgm','y2HLy2TcDwrNzxrmAw1PDhm','CMvXDwvZDhm','BwvZC2fNzq','rgf0zq','yNLbz2vUDa','y2fSy3vSyxrLq29ZDa','nZm2ohbJvwvYua','zxjYB3i','DxbKyxrLvxnHz2vfBNrYEq','C2vUzej1zgDLDefSzxj0','D2vLA2X5','z2v0v2vLA051BwjLCG','DgHYzxnOB2XKCW','Dg9Rzw5Z','y29ZDej5rgf5'];a0_0x56c7=function(){return _0x23f112;};return a0_0x56c7();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0xa78609,_0xc4316a){const _0x4035de=a0_0x5dcf;this[_0x4035de(0x119)]=_0xa78609||{},this['logger']=_0xc4316a,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x4035de(0xcc)]={'daily':BUDGET_LIMITS[_0x4035de(0xd5)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS['MONTHLY']},this[_0x4035de(0xc9)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x4035de(0xd9)],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x4035de(0xcd)]();}['trackUsage'](_0x3dcf71,_0x2bd6e6,_0x5d8d2e){const _0x11e6b8=a0_0x5dcf;try{const _0x2bc25b=this[_0x11e6b8(0x10d)](_0x2bd6e6,_0x5d8d2e),_0x16ff34=new Date(),_0x30a240=this['getDayKey'](_0x16ff34),_0x25c34b=this[_0x11e6b8(0xc1)](_0x16ff34),_0x309c99=this['getMonthKey'](_0x16ff34);this[_0x11e6b8(0xca)](this[_0x11e6b8(0x106)]['daily'],_0x30a240),this[_0x11e6b8(0xca)](this[_0x11e6b8(0x106)][_0x11e6b8(0x112)],_0x25c34b),this['initializeUsageEntry'](this['usage'][_0x11e6b8(0xdc)],_0x309c99);const _0x1a5d17={'agentId':_0x3dcf71,'modelId':_0x2bd6e6,'tokens':_0x5d8d2e['total_tokens'],'cost':_0x2bc25b,'timestamp':_0x16ff34['toISOString']()};return this['updateUsageEntry'](this['usage'][_0x11e6b8(0xff)]['get'](_0x30a240),_0x1a5d17),this[_0x11e6b8(0x110)](this['usage'][_0x11e6b8(0x112)]['get'](_0x25c34b),_0x1a5d17),this[_0x11e6b8(0x110)](this['usage'][_0x11e6b8(0xdc)][_0x11e6b8(0x117)](_0x309c99),_0x1a5d17),this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)]['tokens']+=_0x5d8d2e['total_tokens'],this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)][_0x11e6b8(0xf2)]+=_0x2bc25b,this[_0x11e6b8(0x106)]['total']['requests']+=0x1,this[_0x11e6b8(0x108)](_0x30a240,_0x25c34b,_0x309c99),this['logger']['info']('Usage\x20tracked',{'agentId':_0x3dcf71,'modelId':_0x2bd6e6,'tokens':_0x5d8d2e['total_tokens'],'cost':_0x2bc25b,'totalCost':this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)]['cost']}),{'cost':_0x2bc25b,'totalCost':this['usage'][_0x11e6b8(0xd0)]['cost'],'totalTokens':this[_0x11e6b8(0x106)]['total']['tokens'],'dailyUsage':this['usage'][_0x11e6b8(0xff)][_0x11e6b8(0x117)](_0x30a240),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5f050d){this[_0x11e6b8(0xc8)][_0x11e6b8(0x10f)]('Failed\x20to\x20track\x20usage',{'error':_0x5f050d[_0x11e6b8(0x10a)],'agentId':_0x3dcf71,'modelId':_0x2bd6e6});throw _0x5f050d;}}['calculateCost'](_0x2781c2,_0x9bbdeb){const _0x3ff51f=a0_0x5dcf,_0x3d0b6f=COST_PER_TOKEN[_0x2781c2];if(!_0x3d0b6f)return this[_0x3ff51f(0xc8)]['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x2781c2}),0x0;const _0x345428=(_0x9bbdeb['prompt_tokens']||0x0)*_0x3d0b6f['input'],_0x1579fa=(_0x9bbdeb['completion_tokens']||0x0)*_0x3d0b6f['output'];return _0x345428+_0x1579fa;}['getUsage'](_0x59deba=a0_0x340bc2(0xff),_0x1cbf96=new Date()){const _0x59fb5d=a0_0x340bc2;switch(_0x59deba){case'daily':return this['usage'][_0x59fb5d(0xff)][_0x59fb5d(0x117)](this['getDayKey'](_0x1cbf96))||this['createEmptyUsage']();case _0x59fb5d(0x112):return this['usage']['weekly'][_0x59fb5d(0x117)](this[_0x59fb5d(0xc1)](_0x1cbf96))||this[_0x59fb5d(0xd4)]();case'monthly':return this['usage'][_0x59fb5d(0xdc)][_0x59fb5d(0x117)](this['getMonthKey'](_0x1cbf96))||this[_0x59fb5d(0xd4)]();case _0x59fb5d(0xd0):return{...this[_0x59fb5d(0x106)]['total']};default:throw new Error('Invalid\x20period:\x20'+_0x59deba);}}[a0_0x340bc2(0xd8)](_0x5c402e,_0x40df65='daily'){const _0x52b4a2=a0_0x340bc2,_0x3e07fe=this['getUsage'](_0x40df65);return _0x3e07fe['byAgent']?.[_0x5c402e]||this[_0x52b4a2(0xd4)]();}[a0_0x340bc2(0xe4)](_0x2a8858,_0x1c642e='daily'){const _0x16a5f5=a0_0x340bc2,_0x51daf8=this['getUsage'](_0x1c642e);return _0x51daf8['byModel']?.[_0x2a8858]||this[_0x16a5f5(0xd4)]();}[a0_0x340bc2(0xde)](_0x1ede0c){const _0x1c17fb=a0_0x340bc2;if(_0x1ede0c['daily']!==undefined)this['budgets'][_0x1c17fb(0xff)]=_0x1ede0c[_0x1c17fb(0xff)];if(_0x1ede0c[_0x1c17fb(0x112)]!==undefined)this[_0x1c17fb(0xcc)][_0x1c17fb(0x112)]=_0x1ede0c[_0x1c17fb(0x112)];if(_0x1ede0c['monthly']!==undefined)this[_0x1c17fb(0xcc)][_0x1c17fb(0xdc)]=_0x1ede0c[_0x1c17fb(0xdc)];this['logger']['info'](_0x1c17fb(0xe9),this['budgets']),this['saveUsageData']();}[a0_0x340bc2(0xe6)](){const _0x298ed6=a0_0x340bc2,_0x1cd8d0=new Date(),_0x3bf971=this[_0x298ed6(0xdb)](_0x298ed6(0xff),_0x1cd8d0),_0x1f9727=this['getUsage']('weekly',_0x1cd8d0),_0x4ab28b=this[_0x298ed6(0xdb)]('monthly',_0x1cd8d0);return{'daily':Math['max'](0x0,this['budgets'][_0x298ed6(0xff)]-_0x3bf971['cost']),'weekly':Math[_0x298ed6(0xe7)](0x0,this['budgets'][_0x298ed6(0x112)]-_0x1f9727[_0x298ed6(0xf2)]),'monthly':Math['max'](0x0,this['budgets'][_0x298ed6(0xdc)]-_0x4ab28b['cost'])};}[a0_0x340bc2(0xd6)](_0x38fe80=a0_0x340bc2(0xff)){const _0xdee4fa=a0_0x340bc2,_0x58884f=this[_0xdee4fa(0xdb)](_0x38fe80),_0x5c6545=this[_0xdee4fa(0xcc)][_0x38fe80];return _0x58884f['cost']<=_0x5c6545;}['getUsageTrends'](_0x5ad238=0x1e){const _0x12ce13=a0_0x340bc2,_0x1d4d53={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x224cd6=new Date();let _0x5d8d3c=0x0,_0x5f5622=0x0,_0x4492f1=0x0;const _0x20b344=new Map(),_0x4d8f0f=new Map();for(let _0x5f44c0=0x0;_0x5f44c0<_0x5ad238;_0x5f44c0++){const _0x2080a8=new Date(_0x224cd6);_0x2080a8['setDate'](_0x2080a8['getDate']()-_0x5f44c0);const _0x15ba42=this['getDayKey'](_0x2080a8),_0x37b61c=this[_0x12ce13(0x106)][_0x12ce13(0xff)]['get'](_0x15ba42);_0x37b61c?(_0x5d8d3c+=_0x37b61c['cost'],_0x5f5622+=_0x37b61c[_0x12ce13(0x115)],_0x4492f1+=_0x37b61c['requests'],_0x1d4d53[_0x12ce13(0x116)][_0x12ce13(0xeb)]({'date':_0x15ba42,'cost':_0x37b61c[_0x12ce13(0xf2)]}),_0x1d4d53['tokensByDay'][_0x12ce13(0xeb)]({'date':_0x15ba42,'tokens':_0x37b61c['tokens']}),Object[_0x12ce13(0xc5)](_0x37b61c['byAgent']||{})[_0x12ce13(0xf9)](([_0x285493,_0x4401c2])=>{const _0x4261c3=_0x12ce13;!_0x20b344[_0x4261c3(0xf1)](_0x285493)&&_0x20b344['set'](_0x285493,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x2ae5f2=_0x20b344['get'](_0x285493);_0x2ae5f2['cost']+=_0x4401c2['cost'],_0x2ae5f2[_0x4261c3(0x115)]+=_0x4401c2[_0x4261c3(0x115)],_0x2ae5f2['requests']+=_0x4401c2[_0x4261c3(0x109)];}),Object[_0x12ce13(0xc5)](_0x37b61c[_0x12ce13(0xed)]||{})['forEach'](([_0x582557,_0x210849])=>{const _0x20c06a=_0x12ce13;!_0x4d8f0f['has'](_0x582557)&&_0x4d8f0f['set'](_0x582557,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x15c6d5=_0x4d8f0f[_0x20c06a(0x117)](_0x582557);_0x15c6d5[_0x20c06a(0xf2)]+=_0x210849['cost'],_0x15c6d5[_0x20c06a(0x115)]+=_0x210849[_0x20c06a(0x115)],_0x15c6d5[_0x20c06a(0x109)]+=_0x210849[_0x20c06a(0x109)];})):(_0x1d4d53[_0x12ce13(0x116)]['unshift']({'date':_0x15ba42,'cost':0x0}),_0x1d4d53[_0x12ce13(0xee)]['unshift']({'date':_0x15ba42,'tokens':0x0}));}return _0x1d4d53[_0x12ce13(0xdf)][_0x12ce13(0xf2)]=_0x5d8d3c/_0x5ad238,_0x1d4d53[_0x12ce13(0xdf)]['tokens']=_0x5f5622/_0x5ad238,_0x1d4d53[_0x12ce13(0xdf)]['requests']=_0x4492f1/_0x5ad238,_0x1d4d53[_0x12ce13(0xe8)]=Array['from'](_0x20b344['entries']())['map'](([_0x153918,_0x2baee0])=>({'id':_0x153918,..._0x2baee0}))[_0x12ce13(0xf5)]((_0x285257,_0x3300b4)=>_0x3300b4[_0x12ce13(0xf2)]-_0x285257[_0x12ce13(0xf2)])[_0x12ce13(0x103)](0x0,0xa),_0x1d4d53['topModels']=Array['from'](_0x4d8f0f[_0x12ce13(0xc5)]())[_0x12ce13(0x105)](([_0x3bf2b6,_0x351b6d])=>({'id':_0x3bf2b6,..._0x351b6d}))[_0x12ce13(0xf5)]((_0x43c8fb,_0x16c3e3)=>_0x16c3e3[_0x12ce13(0xf2)]-_0x43c8fb[_0x12ce13(0xf2)])['slice'](0x0,0xa),_0x1d4d53;}['exportUsageData'](_0x3c5c9e=a0_0x340bc2(0xe3),_0x3cd9dc=null,_0x4b06a2=null){const _0x1c58fa=a0_0x340bc2,_0x41cc6c={'budgets':this[_0x1c58fa(0xcc)],'total':this[_0x1c58fa(0x106)][_0x1c58fa(0xd0)],'daily':{},'weekly':{},'monthly':{}},_0x223641=(_0x199f17,_0xa5ed85)=>{const _0x511e03=_0x1c58fa,_0x13ef33={};return _0x199f17[_0x511e03(0xf9)]((_0x18fe16,_0x3e18d0)=>{const _0x2629a2=_0xa5ed85(_0x3e18d0);(!_0x3cd9dc||_0x2629a2>=_0x3cd9dc)&&(!_0x4b06a2||_0x2629a2<=_0x4b06a2)&&(_0x13ef33[_0x3e18d0]=_0x18fe16);}),_0x13ef33;};_0x3cd9dc||_0x4b06a2?(_0x41cc6c['daily']=_0x223641(this[_0x1c58fa(0x106)][_0x1c58fa(0xff)],_0x587a98=>new Date(_0x587a98)),_0x41cc6c[_0x1c58fa(0x112)]=_0x223641(this['usage'][_0x1c58fa(0x112)],_0x196fb8=>new Date(_0x196fb8)),_0x41cc6c[_0x1c58fa(0xdc)]=_0x223641(this[_0x1c58fa(0x106)][_0x1c58fa(0xdc)],_0x29a616=>new Date(_0x29a616+_0x1c58fa(0xea)))):(this[_0x1c58fa(0x106)][_0x1c58fa(0xff)]['forEach']((_0x513a72,_0x100fcf)=>_0x41cc6c['daily'][_0x100fcf]=_0x513a72),this['usage']['weekly'][_0x1c58fa(0xf9)]((_0x1c11f3,_0x4a895e)=>_0x41cc6c['weekly'][_0x4a895e]=_0x1c11f3),this['usage']['monthly'][_0x1c58fa(0xf9)]((_0x3f137c,_0x715c7a)=>_0x41cc6c['monthly'][_0x715c7a]=_0x3f137c));if(_0x3c5c9e===_0x1c58fa(0xd1))return this[_0x1c58fa(0xc6)](_0x41cc6c);return JSON[_0x1c58fa(0xc2)](_0x41cc6c,null,0x2);}[a0_0x340bc2(0xca)](_0x3e852a,_0x5cadc3){const _0x514073=a0_0x340bc2;!_0x3e852a[_0x514073(0xf1)](_0x5cadc3)&&_0x3e852a[_0x514073(0x118)](_0x5cadc3,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x340bc2(0x110)](_0x3fe3c0,_0x2b7e73){const _0x27e203=a0_0x340bc2;_0x3fe3c0['cost']+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0['tokens']+=_0x2b7e73[_0x27e203(0x115)],_0x3fe3c0['requests']+=0x1,!_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73[_0x27e203(0x101)]]&&(_0x3fe3c0['byAgent'][_0x2b7e73[_0x27e203(0x101)]]=this[_0x27e203(0xd4)]()),_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73[_0x27e203(0x101)]]['cost']+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0['byAgent'][_0x2b7e73[_0x27e203(0x101)]][_0x27e203(0x115)]+=_0x2b7e73[_0x27e203(0x115)],_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73['agentId']]['requests']+=0x1,!_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']]&&(_0x3fe3c0['byModel'][_0x2b7e73['modelId']]=this['createEmptyUsage']()),_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0xf2)]+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0x115)]+=_0x2b7e73['tokens'],_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0x109)]+=0x1;}[a0_0x340bc2(0x108)](_0x41164d,_0x4d9eff,_0x29cecf){const _0x160610=a0_0x340bc2,_0x3d4e43=this['usage']['daily']['get'](_0x41164d),_0x4288c9=this['usage'][_0x160610(0x112)]['get'](_0x4d9eff),_0x93c4a5=this['usage'][_0x160610(0xdc)][_0x160610(0x117)](_0x29cecf);_0x3d4e43['cost']>this['budgets']['daily']&&this[_0x160610(0x111)](_0x160610(0xff),_0x3d4e43['cost'],this['budgets']['daily']),_0x4288c9['cost']>this[_0x160610(0xcc)][_0x160610(0x112)]&&this['sendBudgetAlert'](_0x160610(0x112),_0x4288c9[_0x160610(0xf2)],this[_0x160610(0xcc)]['weekly']),_0x93c4a5['cost']>this['budgets']['monthly']&&this['sendBudgetAlert']('monthly',_0x93c4a5['cost'],this[_0x160610(0xcc)]['monthly']),this[_0x160610(0x11a)](_0x3d4e43,_0x4288c9,_0x93c4a5);}[a0_0x340bc2(0x11a)](_0x4242c5,_0x3fefa0,_0x367ddb){const _0x100b46=a0_0x340bc2,_0x5517fb=this['alerts'][_0x100b46(0x114)];this['checkThreshold'](_0x100b46(0xff),_0x4242c5[_0x100b46(0xf2)],this['budgets'][_0x100b46(0xff)],_0x5517fb),this['checkThreshold'](_0x100b46(0x112),_0x3fefa0['cost'],this['budgets']['weekly'],_0x5517fb),this['checkThreshold'](_0x100b46(0xdc),_0x367ddb[_0x100b46(0xf2)],this['budgets']['monthly'],_0x5517fb);}['checkThreshold'](_0x2a128e,_0x44c2ef,_0x16c682,_0x59f102){const _0x38d56d=a0_0x340bc2,_0x38c621=_0x44c2ef/_0x16c682*0x64;for(const _0x2f7475 of _0x59f102){if(_0x38c621>=_0x2f7475){const _0x44aea0=_0x2a128e+'_'+_0x2f7475,_0x17536c=this[_0x38d56d(0xc9)][_0x38d56d(0xe1)]['get'](_0x44aea0),_0x46f1a6=Date[_0x38d56d(0x102)]();(!_0x17536c||_0x46f1a6-_0x17536c>0x36ee80)&&(this[_0x38d56d(0xf6)](_0x2a128e,_0x38c621,_0x2f7475,_0x44c2ef,_0x16c682),this[_0x38d56d(0xc9)][_0x38d56d(0xe1)]['set'](_0x44aea0,_0x46f1a6));break;}}}['sendBudgetAlert'](_0x576fd2,_0x1a2334,_0x372881){const _0x52ad61=a0_0x340bc2;this['logger']['warn']('Budget\x20limit\x20exceeded',{'period':_0x576fd2,'currentUsage':_0x1a2334,'budgetLimit':_0x372881,'excess':_0x1a2334-_0x372881}),typeof process!=='undefined'&&process['emit']&&process[_0x52ad61(0xfa)]('budgetAlert',{'type':'budget_exceeded','period':_0x576fd2,'currentUsage':_0x1a2334,'budgetLimit':_0x372881,'excess':_0x1a2334-_0x372881});}['sendThresholdAlert'](_0x4d671e,_0x446079,_0x374493,_0x39f282,_0x5df62d){const _0x3b751a=a0_0x340bc2;this['logger'][_0x3b751a(0xce)]('Budget\x20threshold\x20reached',{'period':_0x4d671e,'percentage':Math['round'](_0x446079),'threshold':_0x374493,'usage':_0x39f282,'budget':_0x5df62d}),typeof process!=='undefined'&&process['emit']&&process[_0x3b751a(0xfa)](_0x3b751a(0xc3),{'type':'threshold_reached','period':_0x4d671e,'percentage':Math['round'](_0x446079),'threshold':_0x374493,'usage':_0x39f282,'budget':_0x5df62d});}[a0_0x340bc2(0xfc)](_0x3c9e4e){const _0x2b37dd=a0_0x340bc2;return _0x3c9e4e[_0x2b37dd(0x104)]()[_0x2b37dd(0xfe)]('T')[0x0];}[a0_0x340bc2(0xc1)](_0x358718){const _0x138293=a0_0x340bc2,_0x7281b9=_0x358718[_0x138293(0xd2)](),_0xb19b5d=this[_0x138293(0x113)](_0x358718);return _0x7281b9+'-W'+_0xb19b5d['toString']()['padStart'](0x2,'0');}['getMonthKey'](_0x322041){const _0x1ebf67=a0_0x340bc2,_0x351130=_0x322041['getFullYear'](),_0x52dc70=_0x322041[_0x1ebf67(0xc0)]()+0x1;return _0x351130+'-'+_0x52dc70[_0x1ebf67(0xf3)]()['padStart'](0x2,'0');}[a0_0x340bc2(0x113)](_0x77c25b){const _0x588594=new Date(_0x77c25b['getFullYear'](),0x0,0x1),_0x280d80=(_0x77c25b-_0x588594)/0x5265c00;return Math['ceil']((_0x280d80+_0x588594['getDay']()+0x1)/0x7);}['convertToCSV'](_0xffd604){const _0x3c7bea=a0_0x340bc2,_0x1e4db1=[];return _0x1e4db1[_0x3c7bea(0xc4)]([_0x3c7bea(0xf8),_0x3c7bea(0x10b),_0x3c7bea(0xcf),_0x3c7bea(0xfb),'Requests',_0x3c7bea(0xef),_0x3c7bea(0xf0)]),Object[_0x3c7bea(0xc5)](_0xffd604['daily'])[_0x3c7bea(0xf9)](([_0x5368ba,_0x5ccf69])=>{const _0x3d233e=_0x3c7bea;_0x1e4db1['push'](['Daily',_0x5368ba,_0x5ccf69['cost'],_0x5ccf69['tokens'],_0x5ccf69[_0x3d233e(0x109)],'','']),Object['entries'](_0x5ccf69[_0x3d233e(0x10c)]||{})['forEach'](([_0x3cbaea,_0xfd6180])=>{const _0x4f3ff5=_0x3d233e;_0x1e4db1['push']([_0x4f3ff5(0xd3),_0x5368ba,_0xfd6180['cost'],_0xfd6180[_0x4f3ff5(0x115)],_0xfd6180[_0x4f3ff5(0x109)],_0x3cbaea,'']);});}),_0x1e4db1['map'](_0x40513f=>_0x40513f[_0x3c7bea(0xe2)](','))[_0x3c7bea(0xe2)]('\x0a');}[a0_0x340bc2(0xcb)](){const _0x16c8bc=a0_0x340bc2;try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x29efa2){this[_0x16c8bc(0xc8)]['error'](_0x16c8bc(0xf7),{'error':_0x29efa2['message']});}}[a0_0x340bc2(0xc7)](){const _0x31969f=a0_0x340bc2;try{this['logger']['debug']('Usage\x20data\x20saved');}catch(_0x13ca38){this[_0x31969f(0xc8)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x13ca38['message']});}}[a0_0x340bc2(0xcd)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
1
+ const a0_0x2a3f22=a0_0x50ff;(function(_0x4f163a,_0x3f88d3){const _0x1c2d7f=a0_0x50ff,_0x27e6db=_0x4f163a();while(!![]){try{const _0x3a6a73=parseInt(_0x1c2d7f(0x1de))/0x1+-parseInt(_0x1c2d7f(0x1a5))/0x2+parseInt(_0x1c2d7f(0x1a2))/0x3*(parseInt(_0x1c2d7f(0x1c5))/0x4)+-parseInt(_0x1c2d7f(0x1d9))/0x5*(-parseInt(_0x1c2d7f(0x1e6))/0x6)+parseInt(_0x1c2d7f(0x1da))/0x7*(-parseInt(_0x1c2d7f(0x1f4))/0x8)+-parseInt(_0x1c2d7f(0x1e2))/0x9*(-parseInt(_0x1c2d7f(0x1e0))/0xa)+-parseInt(_0x1c2d7f(0x1c6))/0xb*(parseInt(_0x1c2d7f(0x1b4))/0xc);if(_0x3a6a73===_0x3f88d3)break;else _0x27e6db['push'](_0x27e6db['shift']());}catch(_0xbddd09){_0x27e6db['push'](_0x27e6db['shift']());}}}(a0_0x1300,0x2157b));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x50ff(_0x194a5a,_0x4c473b){_0x194a5a=_0x194a5a-0x18c;const _0x1300ca=a0_0x1300();let _0x50ffa7=_0x1300ca[_0x194a5a];if(a0_0x50ff['dscmxQ']===undefined){var _0xaf154=function(_0x4fdd48){const _0x102b4f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4d0457='',_0x5dfc46='';for(let _0x52ad34=0x0,_0x3c3362,_0x7239ac,_0x5c627f=0x0;_0x7239ac=_0x4fdd48['charAt'](_0x5c627f++);~_0x7239ac&&(_0x3c3362=_0x52ad34%0x4?_0x3c3362*0x40+_0x7239ac:_0x7239ac,_0x52ad34++%0x4)?_0x4d0457+=String['fromCharCode'](0xff&_0x3c3362>>(-0x2*_0x52ad34&0x6)):0x0){_0x7239ac=_0x102b4f['indexOf'](_0x7239ac);}for(let _0x3df13c=0x0,_0x38f284=_0x4d0457['length'];_0x3df13c<_0x38f284;_0x3df13c++){_0x5dfc46+='%'+('00'+_0x4d0457['charCodeAt'](_0x3df13c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5dfc46);};a0_0x50ff['OTjpGF']=_0xaf154,a0_0x50ff['gZeTQX']={},a0_0x50ff['dscmxQ']=!![];}const _0x2ae0eb=_0x1300ca[0x0],_0x777d52=_0x194a5a+_0x2ae0eb,_0x46ecc3=a0_0x50ff['gZeTQX'][_0x777d52];return!_0x46ecc3?(_0x50ffa7=a0_0x50ff['OTjpGF'](_0x50ffa7),a0_0x50ff['gZeTQX'][_0x777d52]=_0x50ffa7):_0x50ffa7=_0x46ecc3,_0x50ffa7;}export class BudgetService{constructor(_0x4d0457,_0x5dfc46){const _0x199b7c=a0_0x50ff;this[_0x199b7c(0x1df)]=_0x4d0457||{},this['logger']=_0x5dfc46,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x199b7c(0x1ce)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x199b7c(0x1a4)],'monthly':BUDGET_LIMITS[_0x199b7c(0x1d2)]},this[_0x199b7c(0x1b6)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this[_0x199b7c(0x1bd)](),this[_0x199b7c(0x1b9)]();}['trackUsage'](_0x52ad34,_0x3c3362,_0x7239ac){const _0x1d558b=a0_0x50ff;try{const _0x5c627f=this['calculateCost'](_0x3c3362,_0x7239ac),_0x3df13c=new Date(),_0x38f284=this['getDayKey'](_0x3df13c),_0xaa035d=this['getWeekKey'](_0x3df13c),_0x5de134=this[_0x1d558b(0x18d)](_0x3df13c);this[_0x1d558b(0x19f)](this[_0x1d558b(0x19b)][_0x1d558b(0x1f1)],_0x38f284),this['initializeUsageEntry'](this['usage']['weekly'],_0xaa035d),this[_0x1d558b(0x19f)](this['usage'][_0x1d558b(0x1b5)],_0x5de134);const _0x2396d9={'agentId':_0x52ad34,'modelId':_0x3c3362,'tokens':_0x7239ac[_0x1d558b(0x1e9)],'cost':_0x5c627f,'timestamp':_0x3df13c['toISOString']()};return this['updateUsageEntry'](this['usage'][_0x1d558b(0x1f1)][_0x1d558b(0x1a3)](_0x38f284),_0x2396d9),this[_0x1d558b(0x1c1)](this[_0x1d558b(0x19b)][_0x1d558b(0x1c7)]['get'](_0xaa035d),_0x2396d9),this[_0x1d558b(0x1c1)](this['usage']['monthly'][_0x1d558b(0x1a3)](_0x5de134),_0x2396d9),this['usage'][_0x1d558b(0x1f2)][_0x1d558b(0x18c)]+=_0x7239ac[_0x1d558b(0x1e9)],this[_0x1d558b(0x19b)][_0x1d558b(0x1f2)][_0x1d558b(0x1d4)]+=_0x5c627f,this[_0x1d558b(0x19b)][_0x1d558b(0x1f2)]['requests']+=0x1,this['checkBudgetLimits'](_0x38f284,_0xaa035d,_0x5de134),this[_0x1d558b(0x1b2)]['info'](_0x1d558b(0x1a9),{'agentId':_0x52ad34,'modelId':_0x3c3362,'tokens':_0x7239ac[_0x1d558b(0x1e9)],'cost':_0x5c627f,'totalCost':this['usage']['total']['cost']}),{'cost':_0x5c627f,'totalCost':this[_0x1d558b(0x19b)][_0x1d558b(0x1f2)][_0x1d558b(0x1d4)],'totalTokens':this[_0x1d558b(0x19b)][_0x1d558b(0x1f2)]['tokens'],'dailyUsage':this['usage']['daily']['get'](_0x38f284),'budgetRemaining':this[_0x1d558b(0x192)]()};}catch(_0x58d891){this[_0x1d558b(0x1b2)][_0x1d558b(0x193)](_0x1d558b(0x1ca),{'error':_0x58d891['message'],'agentId':_0x52ad34,'modelId':_0x3c3362});throw _0x58d891;}}[a0_0x2a3f22(0x1ac)](_0x34e27f,_0x2e670a){const _0xebd688=a0_0x2a3f22,_0x475650=COST_PER_TOKEN[_0x34e27f];if(!_0x475650)return this['logger'][_0xebd688(0x1ba)](_0xebd688(0x1e1),{'modelId':_0x34e27f}),0x0;const _0x708689=(_0x2e670a[_0xebd688(0x1ad)]||0x0)*_0x475650['input'],_0x1f5df3=(_0x2e670a[_0xebd688(0x19e)]||0x0)*_0x475650[_0xebd688(0x19a)];return _0x708689+_0x1f5df3;}[a0_0x2a3f22(0x190)](_0xe80a7d='daily',_0x3566d9=new Date()){const _0x5e7ffb=a0_0x2a3f22;switch(_0xe80a7d){case'daily':return this[_0x5e7ffb(0x19b)][_0x5e7ffb(0x1f1)][_0x5e7ffb(0x1a3)](this['getDayKey'](_0x3566d9))||this[_0x5e7ffb(0x1ee)]();case _0x5e7ffb(0x1c7):return this[_0x5e7ffb(0x19b)]['weekly'][_0x5e7ffb(0x1a3)](this[_0x5e7ffb(0x1bb)](_0x3566d9))||this['createEmptyUsage']();case'monthly':return this[_0x5e7ffb(0x19b)]['monthly']['get'](this['getMonthKey'](_0x3566d9))||this['createEmptyUsage']();case'total':return{...this['usage'][_0x5e7ffb(0x1f2)]};default:throw new Error('Invalid\x20period:\x20'+_0xe80a7d);}}[a0_0x2a3f22(0x1a0)](_0x4c6a4d,_0x34af96='daily'){const _0x3ad972=a0_0x2a3f22,_0x3df602=this[_0x3ad972(0x190)](_0x34af96);return _0x3df602['byAgent']?.[_0x4c6a4d]||this[_0x3ad972(0x1ee)]();}[a0_0x2a3f22(0x1d5)](_0x2b127e,_0x5223c8=a0_0x2a3f22(0x1f1)){const _0x1b0c09=a0_0x2a3f22,_0x32e5f3=this['getUsage'](_0x5223c8);return _0x32e5f3['byModel']?.[_0x2b127e]||this[_0x1b0c09(0x1ee)]();}[a0_0x2a3f22(0x19c)](_0x46a555){const _0x182bdf=a0_0x2a3f22;if(_0x46a555[_0x182bdf(0x1f1)]!==undefined)this[_0x182bdf(0x1ce)][_0x182bdf(0x1f1)]=_0x46a555[_0x182bdf(0x1f1)];if(_0x46a555['weekly']!==undefined)this['budgets'][_0x182bdf(0x1c7)]=_0x46a555[_0x182bdf(0x1c7)];if(_0x46a555[_0x182bdf(0x1b5)]!==undefined)this[_0x182bdf(0x1ce)][_0x182bdf(0x1b5)]=_0x46a555[_0x182bdf(0x1b5)];this['logger'][_0x182bdf(0x1e4)]('Budget\x20limits\x20updated',this[_0x182bdf(0x1ce)]),this['saveUsageData']();}['getRemainingBudget'](){const _0xa77ca4=a0_0x2a3f22,_0x3b4caa=new Date(),_0x3ef3bb=this['getUsage'](_0xa77ca4(0x1f1),_0x3b4caa),_0x2d33ec=this[_0xa77ca4(0x190)]('weekly',_0x3b4caa),_0x3aaea4=this['getUsage'](_0xa77ca4(0x1b5),_0x3b4caa);return{'daily':Math[_0xa77ca4(0x1a6)](0x0,this[_0xa77ca4(0x1ce)]['daily']-_0x3ef3bb['cost']),'weekly':Math[_0xa77ca4(0x1a6)](0x0,this[_0xa77ca4(0x1ce)]['weekly']-_0x2d33ec[_0xa77ca4(0x1d4)]),'monthly':Math['max'](0x0,this[_0xa77ca4(0x1ce)]['monthly']-_0x3aaea4['cost'])};}['isWithinBudget'](_0x519f5c=a0_0x2a3f22(0x1f1)){const _0x5ba627=a0_0x2a3f22,_0xc3d10a=this[_0x5ba627(0x190)](_0x519f5c),_0x20702e=this['budgets'][_0x519f5c];return _0xc3d10a[_0x5ba627(0x1d4)]<=_0x20702e;}[a0_0x2a3f22(0x1b0)](_0x3d78fb=0x1e){const _0x471b67=a0_0x2a3f22,_0x320557={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x25fb5b=new Date();let _0x50cec2=0x0,_0x3a5879=0x0,_0x52f1bf=0x0;const _0x2de348=new Map(),_0xa7a3b7=new Map();for(let _0x58aeaf=0x0;_0x58aeaf<_0x3d78fb;_0x58aeaf++){const _0x539e5b=new Date(_0x25fb5b);_0x539e5b[_0x471b67(0x1e5)](_0x539e5b[_0x471b67(0x1c4)]()-_0x58aeaf);const _0x59c568=this['getDayKey'](_0x539e5b),_0x4af2f6=this[_0x471b67(0x19b)][_0x471b67(0x1f1)]['get'](_0x59c568);_0x4af2f6?(_0x50cec2+=_0x4af2f6['cost'],_0x3a5879+=_0x4af2f6[_0x471b67(0x18c)],_0x52f1bf+=_0x4af2f6['requests'],_0x320557['costByDay'][_0x471b67(0x1ef)]({'date':_0x59c568,'cost':_0x4af2f6['cost']}),_0x320557[_0x471b67(0x1aa)]['unshift']({'date':_0x59c568,'tokens':_0x4af2f6['tokens']}),Object[_0x471b67(0x1e7)](_0x4af2f6[_0x471b67(0x1cf)]||{})[_0x471b67(0x1d7)](([_0x5e770a,_0xbc795c])=>{const _0x22eed1=_0x471b67;!_0x2de348[_0x22eed1(0x1c0)](_0x5e770a)&&_0x2de348[_0x22eed1(0x1c3)](_0x5e770a,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x1d097c=_0x2de348[_0x22eed1(0x1a3)](_0x5e770a);_0x1d097c['cost']+=_0xbc795c['cost'],_0x1d097c['tokens']+=_0xbc795c['tokens'],_0x1d097c[_0x22eed1(0x1d6)]+=_0xbc795c[_0x22eed1(0x1d6)];}),Object['entries'](_0x4af2f6[_0x471b67(0x198)]||{})[_0x471b67(0x1d7)](([_0x14998e,_0x2c3d1b])=>{const _0x236b17=_0x471b67;!_0xa7a3b7[_0x236b17(0x1c0)](_0x14998e)&&_0xa7a3b7['set'](_0x14998e,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x2bb28b=_0xa7a3b7['get'](_0x14998e);_0x2bb28b['cost']+=_0x2c3d1b[_0x236b17(0x1d4)],_0x2bb28b[_0x236b17(0x18c)]+=_0x2c3d1b['tokens'],_0x2bb28b[_0x236b17(0x1d6)]+=_0x2c3d1b[_0x236b17(0x1d6)];})):(_0x320557[_0x471b67(0x1af)][_0x471b67(0x1ef)]({'date':_0x59c568,'cost':0x0}),_0x320557['tokensByDay'][_0x471b67(0x1ef)]({'date':_0x59c568,'tokens':0x0}));}return _0x320557['dailyAverages'][_0x471b67(0x1d4)]=_0x50cec2/_0x3d78fb,_0x320557[_0x471b67(0x1be)]['tokens']=_0x3a5879/_0x3d78fb,_0x320557[_0x471b67(0x1be)][_0x471b67(0x1d6)]=_0x52f1bf/_0x3d78fb,_0x320557['topAgents']=Array[_0x471b67(0x1c9)](_0x2de348['entries']())[_0x471b67(0x1cc)](([_0x3a3cc8,_0x16bd05])=>({'id':_0x3a3cc8,..._0x16bd05}))[_0x471b67(0x1bf)]((_0x3d371f,_0x5cfa84)=>_0x5cfa84['cost']-_0x3d371f[_0x471b67(0x1d4)])['slice'](0x0,0xa),_0x320557[_0x471b67(0x1b1)]=Array['from'](_0xa7a3b7[_0x471b67(0x1e7)]())['map'](([_0xd816c8,_0xc6505d])=>({'id':_0xd816c8,..._0xc6505d}))[_0x471b67(0x1bf)]((_0x186cf2,_0x5d97bc)=>_0x5d97bc[_0x471b67(0x1d4)]-_0x186cf2[_0x471b67(0x1d4)])[_0x471b67(0x1cb)](0x0,0xa),_0x320557;}['exportUsageData'](_0xd1bf06='json',_0x146928=null,_0x5ace71=null){const _0x1a8487=a0_0x2a3f22,_0x301d45={'budgets':this[_0x1a8487(0x1ce)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x4eea20=(_0x3b5c10,_0x3ceb2e)=>{const _0x1902d5={};return _0x3b5c10['forEach']((_0x103ac5,_0x3f0329)=>{const _0x1f509f=_0x3ceb2e(_0x3f0329);(!_0x146928||_0x1f509f>=_0x146928)&&(!_0x5ace71||_0x1f509f<=_0x5ace71)&&(_0x1902d5[_0x3f0329]=_0x103ac5);}),_0x1902d5;};_0x146928||_0x5ace71?(_0x301d45[_0x1a8487(0x1f1)]=_0x4eea20(this['usage']['daily'],_0x4e5d12=>new Date(_0x4e5d12)),_0x301d45[_0x1a8487(0x1c7)]=_0x4eea20(this[_0x1a8487(0x19b)][_0x1a8487(0x1c7)],_0x36d87f=>new Date(_0x36d87f)),_0x301d45[_0x1a8487(0x1b5)]=_0x4eea20(this['usage']['monthly'],_0x5622db=>new Date(_0x5622db+_0x1a8487(0x194)))):(this[_0x1a8487(0x19b)][_0x1a8487(0x1f1)][_0x1a8487(0x1d7)]((_0x2e4e78,_0xe1d6fd)=>_0x301d45[_0x1a8487(0x1f1)][_0xe1d6fd]=_0x2e4e78),this[_0x1a8487(0x19b)]['weekly'][_0x1a8487(0x1d7)]((_0x322c16,_0x1f2061)=>_0x301d45['weekly'][_0x1f2061]=_0x322c16),this['usage'][_0x1a8487(0x1b5)]['forEach']((_0x5454c8,_0x33a6c3)=>_0x301d45[_0x1a8487(0x1b5)][_0x33a6c3]=_0x5454c8));if(_0xd1bf06===_0x1a8487(0x1d1))return this['convertToCSV'](_0x301d45);return JSON['stringify'](_0x301d45,null,0x2);}['initializeUsageEntry'](_0x3216ec,_0x4aba28){!_0x3216ec['has'](_0x4aba28)&&_0x3216ec['set'](_0x4aba28,this['createEmptyUsage']());}[a0_0x2a3f22(0x1ee)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x442f48,_0x15feba){const _0x219ad9=a0_0x2a3f22;_0x442f48['cost']+=_0x15feba['cost'],_0x442f48[_0x219ad9(0x18c)]+=_0x15feba['tokens'],_0x442f48['requests']+=0x1,!_0x442f48[_0x219ad9(0x1cf)][_0x15feba['agentId']]&&(_0x442f48['byAgent'][_0x15feba[_0x219ad9(0x191)]]=this['createEmptyUsage']()),_0x442f48[_0x219ad9(0x1cf)][_0x15feba[_0x219ad9(0x191)]][_0x219ad9(0x1d4)]+=_0x15feba['cost'],_0x442f48[_0x219ad9(0x1cf)][_0x15feba[_0x219ad9(0x191)]][_0x219ad9(0x18c)]+=_0x15feba['tokens'],_0x442f48['byAgent'][_0x15feba['agentId']]['requests']+=0x1,!_0x442f48['byModel'][_0x15feba[_0x219ad9(0x1c2)]]&&(_0x442f48['byModel'][_0x15feba[_0x219ad9(0x1c2)]]=this[_0x219ad9(0x1ee)]()),_0x442f48[_0x219ad9(0x198)][_0x15feba[_0x219ad9(0x1c2)]]['cost']+=_0x15feba['cost'],_0x442f48[_0x219ad9(0x198)][_0x15feba['modelId']]['tokens']+=_0x15feba['tokens'],_0x442f48[_0x219ad9(0x198)][_0x15feba['modelId']]['requests']+=0x1;}[a0_0x2a3f22(0x1ec)](_0x2523df,_0x2dbc33,_0x592ae6){const _0x16e8e0=a0_0x2a3f22,_0x2f2a79=this[_0x16e8e0(0x19b)][_0x16e8e0(0x1f1)][_0x16e8e0(0x1a3)](_0x2523df),_0x2044c2=this[_0x16e8e0(0x19b)][_0x16e8e0(0x1c7)][_0x16e8e0(0x1a3)](_0x2dbc33),_0x4794e3=this[_0x16e8e0(0x19b)][_0x16e8e0(0x1b5)]['get'](_0x592ae6);_0x2f2a79[_0x16e8e0(0x1d4)]>this[_0x16e8e0(0x1ce)]['daily']&&this['sendBudgetAlert']('daily',_0x2f2a79[_0x16e8e0(0x1d4)],this[_0x16e8e0(0x1ce)]['daily']),_0x2044c2[_0x16e8e0(0x1d4)]>this['budgets']['weekly']&&this[_0x16e8e0(0x1e3)](_0x16e8e0(0x1c7),_0x2044c2['cost'],this[_0x16e8e0(0x1ce)]['weekly']),_0x4794e3[_0x16e8e0(0x1d4)]>this[_0x16e8e0(0x1ce)][_0x16e8e0(0x1b5)]&&this['sendBudgetAlert'](_0x16e8e0(0x1b5),_0x4794e3['cost'],this[_0x16e8e0(0x1ce)]['monthly']),this['checkThresholdAlerts'](_0x2f2a79,_0x2044c2,_0x4794e3);}['checkThresholdAlerts'](_0x78a7b,_0x10099e,_0x3832d7){const _0x16bb31=a0_0x2a3f22,_0x504728=this[_0x16bb31(0x1b6)][_0x16bb31(0x1a7)];this[_0x16bb31(0x1dd)]('daily',_0x78a7b['cost'],this['budgets'][_0x16bb31(0x1f1)],_0x504728),this[_0x16bb31(0x1dd)]('weekly',_0x10099e['cost'],this[_0x16bb31(0x1ce)]['weekly'],_0x504728),this['checkThreshold'](_0x16bb31(0x1b5),_0x3832d7[_0x16bb31(0x1d4)],this['budgets'][_0x16bb31(0x1b5)],_0x504728);}[a0_0x2a3f22(0x1dd)](_0x1ef13c,_0x4c8940,_0x51533c,_0x53a517){const _0xb53460=a0_0x2a3f22,_0x384260=_0x4c8940/_0x51533c*0x64;for(const _0x2d283f of _0x53a517){if(_0x384260>=_0x2d283f){const _0xc8e5d3=_0x1ef13c+'_'+_0x2d283f,_0x40525e=this[_0xb53460(0x1b6)][_0xb53460(0x1f0)]['get'](_0xc8e5d3),_0x509e6c=Date['now']();(!_0x40525e||_0x509e6c-_0x40525e>0x36ee80)&&(this[_0xb53460(0x1a8)](_0x1ef13c,_0x384260,_0x2d283f,_0x4c8940,_0x51533c),this['alerts']['lastAlertTimes'][_0xb53460(0x1c3)](_0xc8e5d3,_0x509e6c));break;}}}['sendBudgetAlert'](_0x574a0b,_0x57bb7f,_0x3871c3){const _0x4efafe=a0_0x2a3f22;this['logger']['warn'](_0x4efafe(0x1ae),{'period':_0x574a0b,'currentUsage':_0x57bb7f,'budgetLimit':_0x3871c3,'excess':_0x57bb7f-_0x3871c3}),typeof process!==_0x4efafe(0x19d)&&process[_0x4efafe(0x196)]&&process['emit'](_0x4efafe(0x1b3),{'type':'budget_exceeded','period':_0x574a0b,'currentUsage':_0x57bb7f,'budgetLimit':_0x3871c3,'excess':_0x57bb7f-_0x3871c3});}[a0_0x2a3f22(0x1a8)](_0x13a3a3,_0x3a30e3,_0x23b78a,_0x3d3c8b,_0x27d9b2){const _0x12c49c=a0_0x2a3f22;this['logger']['warn'](_0x12c49c(0x1b8),{'period':_0x13a3a3,'percentage':Math['round'](_0x3a30e3),'threshold':_0x23b78a,'usage':_0x3d3c8b,'budget':_0x27d9b2}),typeof process!==_0x12c49c(0x19d)&&process['emit']&&process[_0x12c49c(0x196)](_0x12c49c(0x1b3),{'type':_0x12c49c(0x1d3),'period':_0x13a3a3,'percentage':Math[_0x12c49c(0x1a1)](_0x3a30e3),'threshold':_0x23b78a,'usage':_0x3d3c8b,'budget':_0x27d9b2});}[a0_0x2a3f22(0x1ab)](_0x21a0dd){const _0xaa2d65=a0_0x2a3f22;return _0x21a0dd['toISOString']()[_0xaa2d65(0x18f)]('T')[0x0];}[a0_0x2a3f22(0x1bb)](_0x13b5ea){const _0x151182=a0_0x2a3f22,_0x40effa=_0x13b5ea['getFullYear'](),_0x2afde2=this[_0x151182(0x1ed)](_0x13b5ea);return _0x40effa+'-W'+_0x2afde2[_0x151182(0x1ea)]()[_0x151182(0x195)](0x2,'0');}['getMonthKey'](_0x24505a){const _0x652185=a0_0x2a3f22,_0x269cdb=_0x24505a['getFullYear'](),_0x33c78c=_0x24505a['getMonth']()+0x1;return _0x269cdb+'-'+_0x33c78c['toString']()[_0x652185(0x195)](0x2,'0');}['getWeekNumber'](_0x1d5b4a){const _0x44e0b7=a0_0x2a3f22,_0xa3ba6f=new Date(_0x1d5b4a[_0x44e0b7(0x1e8)](),0x0,0x1),_0xba38fd=(_0x1d5b4a-_0xa3ba6f)/0x5265c00;return Math['ceil']((_0xba38fd+_0xa3ba6f[_0x44e0b7(0x197)]()+0x1)/0x7);}['convertToCSV'](_0x2149ef){const _0x407fae=a0_0x2a3f22,_0x35498f=[];return _0x35498f[_0x407fae(0x199)](['Period',_0x407fae(0x1db),_0x407fae(0x1f3),_0x407fae(0x1bc),'Requests',_0x407fae(0x1c8),_0x407fae(0x18e)]),Object['entries'](_0x2149ef[_0x407fae(0x1f1)])[_0x407fae(0x1d7)](([_0x54b5b0,_0x18ab9c])=>{const _0x42621b=_0x407fae;_0x35498f[_0x42621b(0x199)](['Daily',_0x54b5b0,_0x18ab9c['cost'],_0x18ab9c['tokens'],_0x18ab9c['requests'],'','']),Object['entries'](_0x18ab9c[_0x42621b(0x1cf)]||{})['forEach'](([_0x537aa0,_0x2985f0])=>{const _0x2b9bdd=_0x42621b;_0x35498f[_0x2b9bdd(0x199)]([_0x2b9bdd(0x1eb),_0x54b5b0,_0x2985f0['cost'],_0x2985f0[_0x2b9bdd(0x18c)],_0x2985f0[_0x2b9bdd(0x1d6)],_0x537aa0,'']);});}),_0x35498f[_0x407fae(0x1cc)](_0x5d088f=>_0x5d088f['join'](','))[_0x407fae(0x1dc)]('\x0a');}[a0_0x2a3f22(0x1bd)](){const _0x5777b5=a0_0x2a3f22;try{this[_0x5777b5(0x1b2)][_0x5777b5(0x1e4)](_0x5777b5(0x1d8));}catch(_0x29ff07){this[_0x5777b5(0x1b2)]['error']('Failed\x20to\x20load\x20usage\x20data',{'error':_0x29ff07['message']});}}['saveUsageData'](){const _0x5d124e=a0_0x2a3f22;try{this[_0x5d124e(0x1b2)]['debug'](_0x5d124e(0x1b7));}catch(_0x445d7e){this['logger'][_0x5d124e(0x193)](_0x5d124e(0x1d0),{'error':_0x445d7e[_0x5d124e(0x1cd)]});}}['setupPeriodicSave'](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}function a0_0x1300(){const _0x46c609=['BwvZC2fNzq','yNvKz2v0CW','yNLbz2vUDa','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','y3n2','tu9oveHmwq','DgHYzxnOB2XKx3jLywnOzwq','y29ZDa','z2v0tw9KzwXvC2fNzq','CMvXDwvZDhm','zM9YrwfJAa','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','nZCZndm1qufdBw1e','otflt3jtDgO','rgf0zq','AM9PBG','y2HLy2TuAhjLC2HVBgq','mJaYmJi3ue9TzhDw','y29UzMLN','nJi2mhv2EurAsq','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','mti2owDfyxPeDq','C2vUzej1zgDLDefSzxj0','Aw5MBW','C2v0rgf0zq','nLLNtefxBq','zw50CMLLCW','z2v0rNvSBfLLyxi','Dg90ywXFDg9Rzw5Z','Dg9tDhjPBMC','rgfPBhK','y2HLy2TcDwrNzxrmAw1PDhm','z2v0v2vLA051BwjLCG','y3jLyxrLrw1WDhLvC2fNzq','Dw5ZAgLMDa','BgfZDefSzxj0vgLTzxm','zgfPBhK','Dg90ywW','q29ZDa','mJC1nJHhtMfMExu','Dg9Rzw5Z','z2v0tw9UDgHlzxK','tw9KzwW','C3bSAxq','z2v0vxnHz2u','ywDLBNrjza','z2v0uMvTywLUAw5NqNvKz2v0','zxjYB3i','ltaX','CgfKu3rHCNq','zw1PDa','z2v0rgf5','yNLnB2rLBa','ChvZAa','B3v0Chv0','DxnHz2u','C2v0qNvKz2v0CW','Dw5KzwzPBMvK','y29TCgXLDgLVBL90B2TLBNm','Aw5PDgLHBgL6zvvZywDLrw50CNK','z2v0qwDLBNrvC2fNzq','CM91BMq','mte1oda5BMz4Bw5K','z2v0','v0vfs0Xz','mtaWmtm2A0LdBMXh','Bwf4','DgHYzxnOB2XKCW','C2vUzfrOCMvZAg9SzefSzxj0','vxnHz2uGDhjHy2TLza','Dg9Rzw5ZqNLeyxK','z2v0rgf5s2v5','y2fSy3vSyxrLq29ZDa','ChjVBxb0x3rVA2vUCW','qNvKz2v0igXPBwL0igv4y2vLzgvK','y29ZDej5rgf5','z2v0vxnHz2vuCMvUzhm','Dg9Wtw9KzwXZ','Bg9Nz2vY','yNvKz2v0qwXLCNq','mtuXnda3nLHRwwjmvG','Bw9UDgHSEq','ywXLCNrZ','vxnHz2uGzgf0ysbZyxzLza','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','C2v0DxbqzxjPB2rPy1nHDMu','D2fYBG','z2v0v2vLA0TLEq','vg9Rzw5Z','Bg9HzfvZywDLrgf0yq','zgfPBhLbDMvYywDLCW','C29YDa','AgfZ','DxbKyxrLvxnHz2vfBNrYEq','Bw9KzwXjza','C2v0','z2v0rgf0zq','nhnOtNznvq','mJjcyuDhEM8','D2vLA2X5','qwDLBNq','zNjVBq','rMfPBgvKihrVihrYywnRihvZywDL','C2XPy2u','BwfW'];a0_0x1300=function(){return _0x46c609;};return a0_0x1300();}export default BudgetService;
@@ -1 +1 @@
1
- const a0_0x5e8d55=a0_0x1a5c;(function(_0xcd86a8,_0x44d45f){const _0x25c24f=a0_0x1a5c,_0x589f79=_0xcd86a8();while(!![]){try{const _0xa7a996=-parseInt(_0x25c24f(0x1b9))/0x1*(parseInt(_0x25c24f(0x1a2))/0x2)+-parseInt(_0x25c24f(0x1ad))/0x3+parseInt(_0x25c24f(0x1c7))/0x4+parseInt(_0x25c24f(0x1a1))/0x5*(parseInt(_0x25c24f(0x1b0))/0x6)+-parseInt(_0x25c24f(0x1c5))/0x7+-parseInt(_0x25c24f(0x1c1))/0x8+-parseInt(_0x25c24f(0x1c0))/0x9*(-parseInt(_0x25c24f(0x1ba))/0xa);if(_0xa7a996===_0x44d45f)break;else _0x589f79['push'](_0x589f79['shift']());}catch(_0x77e9a6){_0x589f79['push'](_0x589f79['shift']());}}}(a0_0x1760,0x5f879));import a0_0x4f751d from'./fileAttachmentService.js';function a0_0x1a5c(_0x46709d,_0x40aeea){_0x46709d=_0x46709d-0x1a0;const _0x176071=a0_0x1760();let _0x1a5c35=_0x176071[_0x46709d];if(a0_0x1a5c['QFDBfp']===undefined){var _0x590904=function(_0x3e01a5){const _0x233005='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f751d='',_0xcfa573='';for(let _0x173ad2=0x0,_0x496d55,_0x327178,_0x582fb7=0x0;_0x327178=_0x3e01a5['charAt'](_0x582fb7++);~_0x327178&&(_0x496d55=_0x173ad2%0x4?_0x496d55*0x40+_0x327178:_0x327178,_0x173ad2++%0x4)?_0x4f751d+=String['fromCharCode'](0xff&_0x496d55>>(-0x2*_0x173ad2&0x6)):0x0){_0x327178=_0x233005['indexOf'](_0x327178);}for(let _0x57c29f=0x0,_0x3707ee=_0x4f751d['length'];_0x57c29f<_0x3707ee;_0x57c29f++){_0xcfa573+='%'+('00'+_0x4f751d['charCodeAt'](_0x57c29f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xcfa573);};a0_0x1a5c['JQXZOg']=_0x590904,a0_0x1a5c['bZriwO']={},a0_0x1a5c['QFDBfp']=!![];}const _0x5f4315=_0x176071[0x0],_0x1cbc79=_0x46709d+_0x5f4315,_0x2e5e45=a0_0x1a5c['bZriwO'][_0x1cbc79];return!_0x2e5e45?(_0x1a5c35=a0_0x1a5c['JQXZOg'](_0x1a5c35),a0_0x1a5c['bZriwO'][_0x1cbc79]=_0x1a5c35):_0x1a5c35=_0x2e5e45,_0x1a5c35;}function a0_0x1760(){const _0x21b180=['cJXHDhrHy2HLzc1MAwXLCZ4k','zM9YBwf0ugrMrMLSzq','BwvZC2fNzq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','zxn0Aw1HDgvKvg9Rzw5Z','ow9Ks0XquW','ndm1mti0oer4tMDcEa','BgvUz3rO','ica8zMLSzsbUyw1Lpsi','s0iIig1Vzgu9iMnVBNrLBNqIpGO','mJi5nJqYwxPzzfHZ','iIaVpG','mtu0nJe1mNrSAKTZtW','iIbZAxPLpsi','mcbcExrLCW','iIb0ExbLpsi','zM9YBwf0vgv4DezPBgu','jNf1B3q7','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','Dg9Rzw5fC3rPBwf0zq','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','y29UzMLN','zM9YBwf0qNL0zxm','CMvWBgfJzq','mZCWnwTYyKrkwq','ote0mtHLAhDtBgO','yxr0ywnOBwvUDfnLCNzPy2u','zxjYB3i','CMvMzxjLBMnL','CgrM','zM9YBwf0uMvMzxjLBMnLrMLSzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','Dg9gAxHLza','zxnJyxbLwg1S','Bw9Kzq','Bg9Nz2vY','mtC4odq4mfzTtxPMwq','zMLSDgvY','cIaGpc9MAwXLpG','mtuZmhjItxHvAq','C2L6zq','iIbTB2rPzMLLzd0I','ChvZAa','Cg93','y29UDgvUDa','Aw1Hz2u','zM9YBwf0sw1Hz2vgAwXL','C3bSAxq','nuDPsfnktW','mtiXnZiXmZbAt0j4Dgu'];a0_0x1760=function(){return _0x21b180;};return a0_0x1760();}class ContextInjectionService{constructor(_0xcfa573={},_0x173ad2=null){const _0x1575b4=a0_0x1a5c;this[_0x1575b4(0x1d0)]=_0xcfa573,this[_0x1575b4(0x1ac)]=_0x173ad2,this[_0x1575b4(0x1a3)]=new a0_0x4f751d(_0xcfa573,_0x173ad2);}async['initialize'](){await this['attachmentService']['initialize']();}async['buildDynamicContext'](_0x496d55){const _0xac3fbe=a0_0x1a5c;try{const _0x327178=await this['attachmentService'][_0xac3fbe(0x1be)](_0x496d55);if(_0x327178[_0xac3fbe(0x1c2)]===0x0)return'';const _0x582fb7=_0x327178['filter'](_0x1f2a0e=>_0x1f2a0e['mode']==='content'),_0x57c29f=_0x327178['filter'](_0x75ed48=>_0x75ed48[_0xac3fbe(0x1ab)]==='reference');let _0x3707ee='';if(_0x582fb7['length']>0x0){_0x3707ee+=_0xac3fbe(0x1bb);for(const _0x2fe8eb of _0x582fb7){const _0x1b64a4=await this[_0xac3fbe(0x1a3)]['getAttachmentContent'](_0x2fe8eb['fileId']);if(_0x1b64a4){const _0x313235=this['formatContentFile'](_0x2fe8eb,_0x1b64a4);_0x3707ee+=_0x313235+'\x0a';}}_0x3707ee+='</attached-files>\x0a';}if(_0x57c29f[_0xac3fbe(0x1c2)]>0x0){_0x3707ee+='\x0a<file-references>\x0a';for(const _0x19c409 of _0x57c29f){const _0x585f6c=this[_0xac3fbe(0x1a7)](_0x19c409);_0x3707ee+=_0x585f6c+'\x0a';}_0x3707ee+=_0xac3fbe(0x1a8),_0x3707ee+=_0xac3fbe(0x1cd);}return _0x3707ee;}catch(_0x2b17bf){return this[_0xac3fbe(0x1ac)]?.[_0xac3fbe(0x1a4)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x496d55,'error':_0x2b17bf['message']}),'';}}['formatContentFile'](_0x377ea2,_0x28f0e8){const _0x48cfec=a0_0x1a5c,{fileName:_0x29c2ca,fileType:_0x2f364a,size:_0x497dd4,contentType:_0x270d47}=_0x377ea2,_0x1c2440=(_0x497dd4/0x400)['toFixed'](0x2);if(_0x270d47==='text')return this['formatTextFile'](_0x377ea2,_0x28f0e8);else{if(_0x270d47===_0x48cfec(0x1b6))return this[_0x48cfec(0x1b7)](_0x377ea2,_0x28f0e8);else{if(_0x270d47===_0x48cfec(0x1a6))return this[_0x48cfec(0x1bc)](_0x377ea2,_0x28f0e8);}}return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x29c2ca)+'\x22\x20type=\x22'+_0x2f364a+_0x48cfec(0x1c8)+_0x1c2440+_0x48cfec(0x1c4)+this[_0x48cfec(0x1aa)](_0x28f0e8)+_0x48cfec(0x1af);}[a0_0x5e8d55(0x1cb)](_0x5434f7,_0x3fcb7c){const _0x1e7e50=a0_0x5e8d55,{fileName:_0x57ad9d,fileType:_0x4aece7,size:_0x545a8e}=_0x5434f7,_0x59f338=(_0x545a8e/0x400)[_0x1e7e50(0x1a9)](0x2);return _0x1e7e50(0x1c3)+this['escapeXml'](_0x57ad9d)+_0x1e7e50(0x1ca)+_0x4aece7+'\x22\x20size=\x22'+_0x59f338+_0x1e7e50(0x1c4)+this[_0x1e7e50(0x1aa)](_0x3fcb7c)+_0x1e7e50(0x1af);}['formatImageFile'](_0x42ba01,_0xbff2b1){const _0x5ef4ec=a0_0x5e8d55,{fileName:_0xc81dbc,fileType:_0x2e9802,size:_0x334003}=_0x42ba01,_0x468eac=(_0x334003/0x400)[_0x5ef4ec(0x1a9)](0x2);return _0x5ef4ec(0x1c3)+this[_0x5ef4ec(0x1aa)](_0xc81dbc)+'\x22\x20type=\x22'+_0x2e9802+'\x22\x20size=\x22'+_0x468eac+_0x5ef4ec(0x1c4)+_0xbff2b1+_0x5ef4ec(0x1af);}['formatPdfFile'](_0x57250d,_0x58f5d4){const _0x42125a=a0_0x5e8d55,{fileName:_0x5e0b2e,fileType:_0xae65e1,size:_0x2a0e5d}=_0x57250d,_0x4152df=(_0x2a0e5d/0x400)[_0x42125a(0x1a9)](0x2);return _0x42125a(0x1c3)+this[_0x42125a(0x1aa)](_0x5e0b2e)+_0x42125a(0x1ca)+_0xae65e1+_0x42125a(0x1c8)+_0x4152df+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x42125a(0x1aa)](_0x58f5d4)+_0x42125a(0x1af);}[a0_0x5e8d55(0x1a7)](_0x4a0d2a){const _0x13a1c9=a0_0x5e8d55,{fileName:_0xd8a1f5,originalPath:_0x5e86e4,size:_0x1ff061,fileType:_0x51c578,lastModified:_0x5f5180}=_0x4a0d2a,_0x383479=this['formatBytes'](_0x1ff061),_0x2d935d=new Date(_0x5f5180)['toISOString']()[_0x13a1c9(0x1b8)]('T')[0x0];return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0xd8a1f5)+'\x22\x20path=\x22'+this['escapeXml'](_0x5e86e4)+_0x13a1c9(0x1c8)+_0x383479+'\x22\x20type=\x22'+_0x51c578+_0x13a1c9(0x1b2)+_0x2d935d+_0x13a1c9(0x1c6);}['escapeXml'](_0x276cdd){const _0x1018f8=a0_0x5e8d55;if(!_0x276cdd)return'';return _0x276cdd[_0x1018f8(0x1a0)](/&/g,'&amp;')[_0x1018f8(0x1a0)](/</g,'&lt;')['replace'](/>/g,'&gt;')[_0x1018f8(0x1a0)](/"/g,_0x1018f8(0x1cc))[_0x1018f8(0x1a0)](/'/g,'&apos;');}[a0_0x5e8d55(0x1d1)](_0x310ee5){const _0x471fb5=a0_0x5e8d55;if(_0x310ee5===0x0)return _0x471fb5(0x1c9);const _0x21aa7e=0x400,_0x1f06e4=['Bytes','KB','MB','GB'],_0x44168b=Math['floor'](Math['log'](_0x310ee5)/Math['log'](_0x21aa7e));return parseFloat((_0x310ee5/Math[_0x471fb5(0x1b4)](_0x21aa7e,_0x44168b))[_0x471fb5(0x1a9)](0x2))+_0x1f06e4[_0x44168b];}async['estimateTotalTokens'](_0xa3eb89){const _0x59fdf4=a0_0x5e8d55;try{const _0x2760c7=await this['attachmentService'][_0x59fdf4(0x1be)](_0xa3eb89);let _0x2550ad=0x0;for(const _0x34a131 of _0x2760c7){_0x34a131[_0x59fdf4(0x1ab)]===_0x59fdf4(0x1b5)?_0x2550ad+=_0x34a131[_0x59fdf4(0x1ce)]||0x0:_0x2550ad+=0x14;}return _0x2550ad;}catch(_0x39a394){return this[_0x59fdf4(0x1ac)]?.['error'](_0x59fdf4(0x1cf),{'agentId':_0xa3eb89,'error':_0x39a394[_0x59fdf4(0x1bd)]}),0x0;}}async['getAttachmentSummary'](_0x1e0fe0){const _0x3a9fbc=a0_0x5e8d55;try{const _0x4e787e=await this[_0x3a9fbc(0x1a3)][_0x3a9fbc(0x1be)](_0x1e0fe0),_0x5e4e2a={'totalActive':_0x4e787e[_0x3a9fbc(0x1c2)],'contentMode':_0x4e787e[_0x3a9fbc(0x1ae)](_0x35ed12=>_0x35ed12['mode']==='content')[_0x3a9fbc(0x1c2)],'referenceMode':_0x4e787e[_0x3a9fbc(0x1ae)](_0x39df08=>_0x39df08['mode']===_0x3a9fbc(0x1a5))[_0x3a9fbc(0x1c2)],'estimatedTokens':0x0,'files':[]};for(const _0x37abd8 of _0x4e787e){_0x5e4e2a[_0x3a9fbc(0x1bf)]+=_0x37abd8[_0x3a9fbc(0x1ce)]||0x0,_0x5e4e2a['files'][_0x3a9fbc(0x1b3)]({'fileName':_0x37abd8['fileName'],'mode':_0x37abd8['mode'],'size':this['formatBytes'](_0x37abd8[_0x3a9fbc(0x1b1)]),'tokens':_0x37abd8['tokenEstimate']||0x0});}return _0x5e4e2a;}catch(_0x1602f4){return this['logger']?.['error']('Error\x20getting\x20attachment\x20summary',{'agentId':_0x1e0fe0,'error':_0x1602f4[_0x3a9fbc(0x1bd)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
1
+ const a0_0x2c59aa=a0_0x4f2b;(function(_0x537fad,_0x1da05a){const _0x569cb1=a0_0x4f2b,_0x1c8511=_0x537fad();while(!![]){try{const _0x484d32=-parseInt(_0x569cb1(0xb5))/0x1+parseInt(_0x569cb1(0xd8))/0x2+parseInt(_0x569cb1(0xe1))/0x3+parseInt(_0x569cb1(0xce))/0x4+-parseInt(_0x569cb1(0xcc))/0x5+-parseInt(_0x569cb1(0xb6))/0x6*(parseInt(_0x569cb1(0xc0))/0x7)+parseInt(_0x569cb1(0xdc))/0x8*(-parseInt(_0x569cb1(0xde))/0x9);if(_0x484d32===_0x1da05a)break;else _0x1c8511['push'](_0x1c8511['shift']());}catch(_0x12fbbd){_0x1c8511['push'](_0x1c8511['shift']());}}}(a0_0x6c06,0x53816));function a0_0x6c06(){const _0x314b41=['Aw5PDgLHBgL6zq','s0iIig1Vzgu9iMnVBNrLBNqIpGO','Bg9N','pc9HDhrHy2HLzc1MAwXLCZ4k','zM9YBwf0vgv4DezPBgu','zMXVB3i','mJyYnJe2nu9nzhnIzG','C2L6zq','mtCXoti3mM5Su0LXqW','yNvPBgreEw5HBwLJq29UDgv4Da','zM9YBwf0sw1Hz2vgAwXL','mcbcExrLCW','iIaVpG','zxn0Aw1HDgvKvg9Rzw5Z','CMvWBgfJzq','BwvZC2fNzq','yxr0ywnOBwvUDfnLCNzPy2u','Dg9gAxHLza','odaWmdiWD3bSEfLK','iIb0ExbLpsi','zxjYB3i','zM9YBwf0qNL0zxm','mJrpAKrNA2u','jMfTCdS','mtC0mtu5t3rRAMPY','pc9MAwXLlxjLzMvYzw5Jzxm+cG','z2v0qwn0AxzLqxr0ywnOBwvUDhm','mtG4mJCXmefWB0PACG','BgvUz3rO','zM9YBwf0q29UDgvUDezPBgu','Aw1Hz2u','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','zMLSzxm','y29UDgvUDa','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','mZuZmJq1r0P2EvvJ','mtGXodzXAhjPtw4','Bg9Nz2vY','cIaGpc9MAwXLpG','iIbZAxPLpsi','Bw9Kzq','ica8zMLSzsbUyw1Lpsi','jMX0oW','zxnJyxbLwg1S','cJXHDhrHy2HLzc1MAwXLCZ4k','zM9YBwf0uMvMzxjLBMnLrMLSzq','ndeZD2LJuMTv','qNL0zxm','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','zMLSDgvY','Dg9Rzw5fC3rPBwf0zq','iIbTB2rPzMLLzd0I'];a0_0x6c06=function(){return _0x314b41;};return a0_0x6c06();}function a0_0x4f2b(_0x69e938,_0xe708a3){_0x69e938=_0x69e938-0xae;const _0x6c063d=a0_0x6c06();let _0x4f2b4e=_0x6c063d[_0x69e938];if(a0_0x4f2b['huHiBx']===undefined){var _0x42c5ec=function(_0x3eb9ab){const _0x7bb3d6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14c266='',_0x495754='';for(let _0x33bcff=0x0,_0x27e150,_0x444204,_0x11fb8f=0x0;_0x444204=_0x3eb9ab['charAt'](_0x11fb8f++);~_0x444204&&(_0x27e150=_0x33bcff%0x4?_0x27e150*0x40+_0x444204:_0x444204,_0x33bcff++%0x4)?_0x14c266+=String['fromCharCode'](0xff&_0x27e150>>(-0x2*_0x33bcff&0x6)):0x0){_0x444204=_0x7bb3d6['indexOf'](_0x444204);}for(let _0x2c5600=0x0,_0x43449=_0x14c266['length'];_0x2c5600<_0x43449;_0x2c5600++){_0x495754+='%'+('00'+_0x14c266['charCodeAt'](_0x2c5600)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x495754);};a0_0x4f2b['egcpSs']=_0x42c5ec,a0_0x4f2b['PheRZE']={},a0_0x4f2b['huHiBx']=!![];}const _0x5864eb=_0x6c063d[0x0],_0x275620=_0x69e938+_0x5864eb,_0x120947=a0_0x4f2b['PheRZE'][_0x275620];return!_0x120947?(_0x4f2b4e=a0_0x4f2b['egcpSs'](_0x4f2b4e),a0_0x4f2b['PheRZE'][_0x275620]=_0x4f2b4e):_0x4f2b4e=_0x120947,_0x4f2b4e;}import a0_0x14c266 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x495754={},_0x33bcff=null){const _0xbf5d9=a0_0x4f2b;this['config']=_0x495754,this[_0xbf5d9(0xb7)]=_0x33bcff,this['attachmentService']=new a0_0x14c266(_0x495754,_0x33bcff);}async[a0_0x2c59aa(0xc6)](){const _0x2c9e68=a0_0x2c59aa;await this['attachmentService'][_0x2c9e68(0xc6)]();}async[a0_0x2c59aa(0xcf)](_0x27e150){const _0x5d7274=a0_0x2c59aa;try{const _0x444204=await this[_0x5d7274(0xd6)][_0x5d7274(0xe0)](_0x27e150);if(_0x444204[_0x5d7274(0xae)]===0x0)return'';const _0x11fb8f=_0x444204[_0x5d7274(0xc3)](_0x50cf30=>_0x50cf30[_0x5d7274(0xba)]===_0x5d7274(0xb3)),_0x2c5600=_0x444204[_0x5d7274(0xc3)](_0x4ffee1=>_0x4ffee1['mode']==='reference');let _0x43449='';if(_0x11fb8f[_0x5d7274(0xae)]>0x0){_0x43449+=_0x5d7274(0xbe);for(const _0x32a87b of _0x11fb8f){const _0x1c928f=await this[_0x5d7274(0xd6)]['getAttachmentContent'](_0x32a87b['fileId']);if(_0x1c928f){const _0x4b716c=this[_0x5d7274(0xaf)](_0x32a87b,_0x1c928f);_0x43449+=_0x4b716c+'\x0a';}}_0x43449+=_0x5d7274(0xc9);}if(_0x2c5600[_0x5d7274(0xae)]>0x0){_0x43449+='\x0a<file-references>\x0a';for(const _0x20e859 of _0x2c5600){const _0x4bacf6=this['formatReferenceFile'](_0x20e859);_0x43449+=_0x4bacf6+'\x0a';}_0x43449+=_0x5d7274(0xdf),_0x43449+=_0x5d7274(0xb4);}return _0x43449;}catch(_0x1f31ae){return this[_0x5d7274(0xb7)]?.[_0x5d7274(0xda)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x27e150,'error':_0x1f31ae[_0x5d7274(0xd5)]}),'';}}[a0_0x2c59aa(0xaf)](_0x3c9e9f,_0x2feb1c){const _0x2119d2=a0_0x2c59aa,{fileName:_0xf8cf24,fileType:_0x22acd3,size:_0x5d533f,contentType:_0x4eed8f}=_0x3c9e9f,_0x1ce749=(_0x5d533f/0x400)['toFixed'](0x2);if(_0x4eed8f==='text')return this[_0x2119d2(0xca)](_0x3c9e9f,_0x2feb1c);else{if(_0x4eed8f===_0x2119d2(0xb0))return this['formatImageFile'](_0x3c9e9f,_0x2feb1c);else{if(_0x4eed8f==='pdf')return this['formatPdfFile'](_0x3c9e9f,_0x2feb1c);}}return _0x2119d2(0xbb)+this[_0x2119d2(0xbd)](_0xf8cf24)+_0x2119d2(0xd9)+_0x22acd3+_0x2119d2(0xb9)+_0x1ce749+_0x2119d2(0xc7)+this[_0x2119d2(0xbd)](_0x2feb1c)+'\x0a\x20\x20</file>';}[a0_0x2c59aa(0xca)](_0x1a80e8,_0x34b847){const _0x25289f=a0_0x2c59aa,{fileName:_0x439082,fileType:_0x2c495b,size:_0xa52b78}=_0x1a80e8,_0x34ff48=(_0xa52b78/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x439082)+_0x25289f(0xd9)+_0x2c495b+_0x25289f(0xb9)+_0x34ff48+_0x25289f(0xc7)+this[_0x25289f(0xbd)](_0x34b847)+_0x25289f(0xb8);}[a0_0x2c59aa(0xd0)](_0x5cc356,_0x293bd2){const _0x16939e=a0_0x2c59aa,{fileName:_0x4d7a71,fileType:_0x227c6c,size:_0x994bb7}=_0x5cc356,_0x1ea9e8=(_0x994bb7/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x16939e(0xbd)](_0x4d7a71)+_0x16939e(0xd9)+_0x227c6c+_0x16939e(0xb9)+_0x1ea9e8+_0x16939e(0xc7)+_0x293bd2+_0x16939e(0xb8);}['formatPdfFile'](_0x2c1a3b,_0x5c2765){const _0xdd4f37=a0_0x2c59aa,{fileName:_0x304330,fileType:_0x4afc7a,size:_0x16c937}=_0x2c1a3b,_0x19d1f8=(_0x16c937/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x304330)+'\x22\x20type=\x22'+_0x4afc7a+'\x22\x20size=\x22'+_0x19d1f8+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0xdd4f37(0xbd)](_0x5c2765)+_0xdd4f37(0xb8);}[a0_0x2c59aa(0xbf)](_0x2eb1eb){const _0x31b5c3=a0_0x2c59aa,{fileName:_0x4b8a73,originalPath:_0x2f64a7,size:_0x435cd6,fileType:_0x3e1aa5,lastModified:_0x34cbea}=_0x2eb1eb,_0x32760d=this[_0x31b5c3(0xdb)](_0x435cd6),_0x26dc58=new Date(_0x34cbea)['toISOString']()['split']('T')[0x0];return _0x31b5c3(0xbb)+this[_0x31b5c3(0xbd)](_0x4b8a73)+'\x22\x20path=\x22'+this[_0x31b5c3(0xbd)](_0x2f64a7)+_0x31b5c3(0xb9)+_0x32760d+'\x22\x20type=\x22'+_0x3e1aa5+_0x31b5c3(0xc5)+_0x26dc58+_0x31b5c3(0xd2);}[a0_0x2c59aa(0xbd)](_0x11d961){const _0x3cda74=a0_0x2c59aa;if(!_0x11d961)return'';return _0x11d961['replace'](/&/g,_0x3cda74(0xdd))[_0x3cda74(0xd4)](/</g,_0x3cda74(0xbc))['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&apos;');}[a0_0x2c59aa(0xdb)](_0x53c7e3){const _0x5f43e6=a0_0x2c59aa;if(_0x53c7e3===0x0)return _0x5f43e6(0xd1);const _0x4e2598=0x400,_0x1c249a=[_0x5f43e6(0xc1),'KB','MB','GB'],_0x19d107=Math[_0x5f43e6(0xcb)](Math[_0x5f43e6(0xc8)](_0x53c7e3)/Math[_0x5f43e6(0xc8)](_0x4e2598));return parseFloat((_0x53c7e3/Math['pow'](_0x4e2598,_0x19d107))[_0x5f43e6(0xd7)](0x2))+_0x1c249a[_0x19d107];}async['estimateTotalTokens'](_0x491b84){const _0x319f6f=a0_0x2c59aa;try{const _0x45555f=await this[_0x319f6f(0xd6)]['getActiveAttachments'](_0x491b84);let _0x7b9222=0x0;for(const _0x413eb2 of _0x45555f){_0x413eb2[_0x319f6f(0xba)]==='content'?_0x7b9222+=_0x413eb2[_0x319f6f(0xc4)]||0x0:_0x7b9222+=0x14;}return _0x7b9222;}catch(_0x2f917a){return this['logger']?.[_0x319f6f(0xda)](_0x319f6f(0xb1),{'agentId':_0x491b84,'error':_0x2f917a[_0x319f6f(0xd5)]}),0x0;}}async[a0_0x2c59aa(0xc2)](_0x3a7807){const _0x59e6d6=a0_0x2c59aa;try{const _0x558e57=await this[_0x59e6d6(0xd6)][_0x59e6d6(0xe0)](_0x3a7807),_0x5e4312={'totalActive':_0x558e57[_0x59e6d6(0xae)],'contentMode':_0x558e57[_0x59e6d6(0xc3)](_0x4212a8=>_0x4212a8[_0x59e6d6(0xba)]==='content')[_0x59e6d6(0xae)],'referenceMode':_0x558e57[_0x59e6d6(0xc3)](_0x85c3d7=>_0x85c3d7['mode']==='reference')['length'],'estimatedTokens':0x0,'files':[]};for(const _0xe3ba24 of _0x558e57){_0x5e4312[_0x59e6d6(0xd3)]+=_0xe3ba24[_0x59e6d6(0xc4)]||0x0,_0x5e4312[_0x59e6d6(0xb2)]['push']({'fileName':_0xe3ba24['fileName'],'mode':_0xe3ba24[_0x59e6d6(0xba)],'size':this['formatBytes'](_0xe3ba24[_0x59e6d6(0xcd)]),'tokens':_0xe3ba24['tokenEstimate']||0x0});}return _0x5e4312;}catch(_0x49af63){return this[_0x59e6d6(0xb7)]?.['error']('Error\x20getting\x20attachment\x20summary',{'agentId':_0x3a7807,'error':_0x49af63[_0x59e6d6(0xd5)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;