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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/bin/cli.js +1 -1
  2. package/bin/loxia-terminal-v2.js +1 -1
  3. package/bin/loxia-terminal.js +1 -1
  4. package/bin/start-with-terminal.js +1 -1
  5. package/package.json +1 -2
  6. package/scripts/install-scanners.js +1 -1
  7. package/src/analyzers/CSSAnalyzer.js +1 -1
  8. package/src/analyzers/ConfigValidator.js +1 -1
  9. package/src/analyzers/ESLintAnalyzer.js +1 -1
  10. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  11. package/src/analyzers/PrettierFormatter.js +1 -1
  12. package/src/analyzers/PythonAnalyzer.js +1 -1
  13. package/src/analyzers/SecurityAnalyzer.js +1 -1
  14. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  15. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  17. package/src/analyzers/codeCloneDetector/index.js +1 -1
  18. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  19. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  20. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  21. package/src/core/agentPool.js +1 -1
  22. package/src/core/agentScheduler.js +1 -1
  23. package/src/core/contextManager.js +1 -1
  24. package/src/core/messageProcessor.js +1 -1
  25. package/src/core/orchestrator.js +1 -1
  26. package/src/core/stateManager.js +1 -1
  27. package/src/index.js +1 -1
  28. package/src/interfaces/cli.js +1 -1
  29. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  38. package/src/interfaces/terminal/api/apiClient.js +1 -1
  39. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  40. package/src/interfaces/terminal/api/session.js +1 -1
  41. package/src/interfaces/terminal/api/websocket.js +1 -1
  42. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  43. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  44. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  45. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  47. package/src/interfaces/terminal/components/Header.js +1 -1
  48. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  49. package/src/interfaces/terminal/components/InputBox.js +1 -1
  50. package/src/interfaces/terminal/components/Layout.js +1 -1
  51. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  52. package/src/interfaces/terminal/components/MessageList.js +1 -1
  53. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  54. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  55. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  56. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  57. package/src/interfaces/terminal/components/TextInput.js +1 -1
  58. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  59. package/src/interfaces/terminal/config/constants.js +1 -1
  60. package/src/interfaces/terminal/index.js +1 -1
  61. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  62. package/src/interfaces/terminal/state/useAgents.js +1 -1
  63. package/src/interfaces/terminal/state/useConnection.js +1 -1
  64. package/src/interfaces/terminal/state/useMessages.js +1 -1
  65. package/src/interfaces/terminal/state/useTools.js +1 -1
  66. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  67. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  68. package/src/interfaces/terminal/utils/theme.js +1 -1
  69. package/src/interfaces/webServer.js +1 -1
  70. package/src/modules/fileExplorer/controller.js +1 -1
  71. package/src/modules/fileExplorer/index.js +1 -1
  72. package/src/modules/fileExplorer/middleware.js +1 -1
  73. package/src/modules/fileExplorer/routes.js +1 -1
  74. package/src/services/aiService.js +1 -1
  75. package/src/services/apiKeyManager.js +1 -1
  76. package/src/services/benchmarkService.js +1 -1
  77. package/src/services/budgetService.js +1 -1
  78. package/src/services/contextInjectionService.js +1 -1
  79. package/src/services/conversationCompactionService.js +1 -1
  80. package/src/services/errorHandler.js +1 -1
  81. package/src/services/fileAttachmentService.js +1 -1
  82. package/src/services/modelRouterService.js +1 -1
  83. package/src/services/modelsService.js +1 -1
  84. package/src/services/qualityInspector.js +1 -1
  85. package/src/services/tokenCountingService.js +1 -1
  86. package/src/tools/agentCommunicationTool.js +1 -1
  87. package/src/tools/agentDelayTool.js +1 -1
  88. package/src/tools/asyncToolManager.js +1 -1
  89. package/src/tools/baseTool.js +1 -1
  90. package/src/tools/browserTool.js +1 -1
  91. package/src/tools/cloneDetectionTool.js +1 -1
  92. package/src/tools/dependencyResolverTool.js +1 -1
  93. package/src/tools/fileContentReplaceTool.js +1 -1
  94. package/src/tools/fileSystemTool.js +1 -1
  95. package/src/tools/fileTreeTool.js +1 -1
  96. package/src/tools/imageTool.js +1 -1
  97. package/src/tools/importAnalyzerTool.js +1 -1
  98. package/src/tools/jobDoneTool.js +1 -1
  99. package/src/tools/seekTool.js +1 -1
  100. package/src/tools/staticAnalysisTool.js +1 -1
  101. package/src/tools/taskManagerTool.js +1 -1
  102. package/src/tools/terminalTool.js +1 -1
  103. package/src/tools/webTool.js +1 -1
  104. package/src/types/agent.js +1 -1
  105. package/src/types/contextReference.js +1 -1
  106. package/src/types/conversation.js +1 -1
  107. package/src/types/toolCommand.js +1 -1
  108. package/src/utilities/attachmentValidator.js +1 -1
  109. package/src/utilities/configManager.js +1 -1
  110. package/src/utilities/constants.js +1 -1
  111. package/src/utilities/directoryAccessManager.js +1 -1
  112. package/src/utilities/fileProcessor.js +1 -1
  113. package/src/utilities/logger.js +1 -1
  114. package/src/utilities/tagParser.js +1 -1
  115. package/src/utilities/toolConstants.js +1 -1
  116. package/src/utilities/userDataDir.js +1 -0
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-C5X7qBNF.js → index-DXN850Y2.js} +69 -65
  119. package/web-ui/build/static/index-an-YRzUX.css +1 -0
  120. package/web-ui/build/static/index-g2UFuTwG.css +0 -1
@@ -1 +1 @@
1
- const a0_0x353b80=a0_0x36f7;(function(_0x3aa805,_0x26dbc){const _0x475af6=a0_0x36f7,_0x25cfc0=_0x3aa805();while(!![]){try{const _0x2128ad=-parseInt(_0x475af6(0x1e6))/0x1*(-parseInt(_0x475af6(0x1d8))/0x2)+parseInt(_0x475af6(0x23b))/0x3+parseInt(_0x475af6(0x206))/0x4+-parseInt(_0x475af6(0x22f))/0x5+parseInt(_0x475af6(0x1ef))/0x6*(-parseInt(_0x475af6(0x252))/0x7)+parseInt(_0x475af6(0x214))/0x8*(parseInt(_0x475af6(0x1d6))/0x9)+-parseInt(_0x475af6(0x26b))/0xa;if(_0x2128ad===_0x26dbc)break;else _0x25cfc0['push'](_0x25cfc0['shift']());}catch(_0x31271e){_0x25cfc0['push'](_0x25cfc0['shift']());}}}(a0_0x35b5,0x9733f));function a0_0x36f7(_0x3ac1dd,_0x49b9fc){_0x3ac1dd=_0x3ac1dd-0x1cf;const _0x35b5ba=a0_0x35b5();let _0x36f773=_0x35b5ba[_0x3ac1dd];if(a0_0x36f7['VUNOQu']===undefined){var _0x2ea2b3=function(_0x4eb66e){const _0x35e721='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x47f60f='',_0x2d8016='';for(let _0x17233d=0x0,_0x5878ed,_0x3f92eb,_0x4c7498=0x0;_0x3f92eb=_0x4eb66e['charAt'](_0x4c7498++);~_0x3f92eb&&(_0x5878ed=_0x17233d%0x4?_0x5878ed*0x40+_0x3f92eb:_0x3f92eb,_0x17233d++%0x4)?_0x47f60f+=String['fromCharCode'](0xff&_0x5878ed>>(-0x2*_0x17233d&0x6)):0x0){_0x3f92eb=_0x35e721['indexOf'](_0x3f92eb);}for(let _0x49d02c=0x0,_0x53dd7e=_0x47f60f['length'];_0x49d02c<_0x53dd7e;_0x49d02c++){_0x2d8016+='%'+('00'+_0x47f60f['charCodeAt'](_0x49d02c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d8016);};a0_0x36f7['YmnZMw']=_0x2ea2b3,a0_0x36f7['WTRLkj']={},a0_0x36f7['VUNOQu']=!![];}const _0x3ab003=_0x35b5ba[0x0],_0x23f407=_0x3ac1dd+_0x3ab003,_0x7b8bb5=a0_0x36f7['WTRLkj'][_0x23f407];return!_0x7b8bb5?(_0x36f773=a0_0x36f7['YmnZMw'](_0x36f773),a0_0x36f7['WTRLkj'][_0x23f407]=_0x36f773):_0x36f773=_0x7b8bb5,_0x36f773;}function a0_0x35b5(){const _0x3a66b0=['y29UDMvYC2f0Aw9UtwfUywDLCNm','x2HHBMrSzvjHDgvmAw1PDa','y29UDMvYC2f0Aw9UCW','yxbPs2v5','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','u3LZDgvToIa','C3rVCa','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','yMfJA2vUza','C3vIC3rY','yJy0x2PZB24','zxn0Aw1HDgvKvg9Rzw5Z','x3jLy29YzezHAwX1CMu','x2DLDfzLBMrVCKzYB21nB2rLBa','zgvIDwC','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','mta3oteYmdbWwLDRq0K','DhjHy2TvC2fNzq','z2v0s2v5C0zVCLjLCxvLC3q','x21HA2vbueLszxf1zxn0','C3rHBMrHCMq','y2XHDwrL','ChjLzMvYCMvKtw9KzwW','zMfZDa','y2XHC3nPzNLfCNjVCG','zMfPBhvYzxm','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','zxjYB3i','qu5usfjpueLdx09qvvm','BwvZC2fNzxm','z3b0','ueHj','Aw5MBW','Bw9KzwXtCgvJCW','CMvXDwvZDff1zxvL','BM93','qKfex1jfuvvfu1q','nta3mtu5AM51BgLq','x2zVCM1HDezVCKfUDgHYB3bPyW','nerervbIvG','BgfZDezHAwX1CMvuAw1L','C2v0qwDLBNrqB29S','ywDLBNrqB29S','qvPvuKu','CMfUzg9T','C3bLzwq','DxjS','Bw9KzwW','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','BwfW','x3rYDw5JyxrLtwvZC2fNzq','qMvHCMvYia','Aw1Hz2vZ','mtiWmtu0AKjOqMzK','B3b0Aw9UCW','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','yxP1CMuTB3bLBMfPlwrHBgXLmW','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','y29UDgv4DfDPBMrVDW','zMLUAxnOx3jLyxnVBG','C2vUze1LC3nHz2u','DMvUzg9YqxbPs2v5','mJmWnZeYsgniBLPf','Cg93','D2fYBG','uMv0CNLPBMCGAw4G','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3DPDgnOtw9KzwW','DxnHz2u','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','y29Kzq','C3r5Bgu','x2nOzwnRtw9KzwXizwfSDgG','x2zVCM1HDezVCK9Wzw5bsq','BwvZC2fNzq','z2vUzxjHDgvjBwfNzq','C2L6zq','Dg9vChbLCKnHC2u','y3vYCMvUDe1VzgvS','AgfUzgXLshr0CevYCM9Y','C3rHy2S','y29UDgvUDa','Aw1Nlq','Bg9Nz2vY','qu5usfjpueLdx1nptK5fva','ndq0mtK5nKTjuwzoBG','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C3LZDgvT','C3vTBwfYEq','yxbPs2v5twfUywDLCG','DgHYzxnOB2XK','uMf0zsbSAw1PDcbLEgnLzwrLza','B3bLBMfP','vw5RBM93BIbTB2rLBdOG','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','CMvZCg9UC2vgB3jTyxq','C3vIC3rYAw5N','z2v0qwDLBNq','C2vZC2LVBKLK','mtuYy09hDNjp','x2vZDgLTyxrLvg9Rzw5Z','CgHP','C3rYzwfT','Dgv4Da','vu5bvvrit1jjwKve','x3jLC2v0q2LYy3vPDejYzwfRzxi','rKfmtejbq0S','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','Bg94AwfbCgLlzxK','ANnVBG','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C3LZDgvTuhjVBxb0','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','tM8GqvbjigTLEsbJB25MAwD1CMvK','ChjVBxb0x3rVA2vUCW','qu5usfjpueLdx0HbsuTv','t1bftKfj','AgvHBhrOEq','CM9Szq','l2nOyxqVy29TCgXLDgLVBNm','CMv2AxnLzf9WCM9TChq','y2HVAwnLCW','DxnLCG','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','CgXHDgzVCM1qCM92AwrLza','mZK0nZCYmezpuLnjvq','DML2Awq','su5urvjoquXFu0vsvKvsx0vsuK9s','Dw5ZAgLMDa','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','ywDLBNrjza','mtaYnhGXmdi0','y29UzMLN','Aw5JBhvKzxm','DhjPBq','zgf0yq','CxvHBgL0Eq','mZqYotuXm2vJtvfPtG','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','CMv0CNLbDhrLBxb0CW','yNvKz2v0u2vYDMLJzq','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','x2LZvMfSAwrnB2rLBa','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','x2nOzwnRuMf0zuXPBwL0','C2v0qxbPs2v5twfUywDLCG','AxnpCgvU','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','Ahr0Chm6lY9HCgKUBg94AweUywK','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','yMfZzvvYBa','C3rHDhvZ','y2LYy3vPDejYzwfRzxi','BgvUz3rO','Bwf4vg9Rzw5Z','DgLTzw91Da','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','mtK2y2zry1vw','DgLTzxn0yw1W','qu5usfjpueLd','ve9px01btLLFuKvrvuvtvfm','tK9ux0zpvu5e','CgvYC2LZDefNzw50u3rHDgu','x2zVCM1HDezVCKf6DxjL','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq'];a0_0x35b5=function(){return _0x3a66b0;};return a0_0x35b5();}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x47f60f,_0x2d8016,_0x17233d,_0x5878ed){const _0x46fb17=a0_0x36f7;this['config']=_0x47f60f,this['logger']=_0x2d8016,this['budgetService']=_0x17233d,this['errorHandler']=_0x5878ed,this[_0x46fb17(0x24b)]=_0x47f60f[_0x46fb17(0x263)]?.['baseUrl']||_0x46fb17(0x248),this[_0x46fb17(0x250)]=_0x47f60f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x47f60f['backend']?.[_0x46fb17(0x23e)]||0x3,this['rateLimiters']=new Map(),this[_0x46fb17(0x1d3)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x46fb17(0x233)](),this[_0x46fb17(0x25a)]=new Map(),this[_0x46fb17(0x20a)]=null,this[_0x46fb17(0x1db)]=null;}async[a0_0x353b80(0x1ed)](_0x3f92eb,_0x4c7498,_0x49d02c={}){const _0x34fe76=a0_0x353b80,_0x53dd7e='req-'+Date['now']()+'-'+Math[_0x34fe76(0x1dd)]()['toString'](0x24)[_0x34fe76(0x264)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x34fe76(0x222));await this['_checkRateLimit'](_0x3f92eb);const _0x5e717a=this[_0x34fe76(0x26a)](_0x4c7498,_0x3f92eb,_0x49d02c),_0x2b8ae1={'model':_0x3f92eb,'messages':_0x5e717a,'options':{'max_tokens':this['modelSpecs'][_0x3f92eb]?.[_0x34fe76(0x24f)]||0xfa0,'temperature':_0x49d02c['temperature']||0.7,'stream':_0x49d02c[_0x34fe76(0x217)]||![]},'metadata':{'requestId':_0x53dd7e,'agentId':_0x49d02c['agentId'],'timestamp':new Date()['toISOString']()}};_0x49d02c['systemPrompt']&&(_0x2b8ae1[_0x34fe76(0x208)]=_0x49d02c['systemPrompt']);this[_0x34fe76(0x204)]['info']('Sending\x20message\x20to\x20model:\x20'+_0x3f92eb,{'requestId':_0x53dd7e,'agentId':_0x49d02c[_0x34fe76(0x234)],'messageCount':Array['isArray'](_0x4c7498)?_0x4c7498[_0x34fe76(0x24e)]:0x1,'maxTokens':_0x2b8ae1['max_tokens']});const _0x524f43=await this['_makeAPIRequest'](_0x34fe76(0x229),_0x2b8ae1,_0x53dd7e,{..._0x49d02c,'sessionId':_0x49d02c[_0x34fe76(0x213)],'platformProvided':_0x49d02c[_0x34fe76(0x22e)]||![]});return _0x524f43[_0x34fe76(0x1f5)]&&await this[_0x34fe76(0x26c)](_0x49d02c[_0x34fe76(0x234)],_0x3f92eb,{'prompt_tokens':_0x524f43[_0x34fe76(0x1f5)][_0x34fe76(0x224)]||0x0,'completion_tokens':_0x524f43[_0x34fe76(0x1f5)]['completion_tokens']||0x0,'total_tokens':_0x524f43['usage']['total_tokens']||0x0}),this[_0x34fe76(0x21a)](),{'content':_0x524f43[_0x34fe76(0x22b)][0x0]?.['message']?.['content']||'','model':_0x524f43['model'],'tokenUsage':_0x524f43['usage'],'requestId':_0x53dd7e,'finishReason':_0x524f43[_0x34fe76(0x22b)][0x0]?.[_0x34fe76(0x1ec)]};}catch(_0x33c570){this[_0x34fe76(0x267)](),this['logger']['error']('AI\x20service\x20request\x20failed:\x20'+_0x33c570['message'],{'requestId':_0x53dd7e,'model':_0x3f92eb,'agentId':_0x49d02c[_0x34fe76(0x234)],'error':_0x33c570['stack']}),await this[_0x34fe76(0x200)](_0x33c570,{'requestId':_0x53dd7e,'model':_0x3f92eb,'agentId':_0x49d02c['agentId']});throw _0x33c570;}}async['routeModel'](_0x31101c,_0x3a76d7={}){const _0x3891fc=a0_0x353b80;try{const _0x105131=MODEL_ROUTING[_0x31101c[_0x3891fc(0x1fe)]()]||MODEL_ROUTING['FALLBACK'],_0x58cc1f=[];for(const _0x49df08 of _0x105131){const _0x1a3dab=await this['_checkModelHealth'](_0x49df08);_0x1a3dab&&_0x58cc1f['push'](_0x49df08);}if(_0x58cc1f[_0x3891fc(0x24e)]===0x0)return this[_0x3891fc(0x204)]['warn'](_0x3891fc(0x21f)+_0x31101c+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x32eec0=_0x58cc1f[0x0];if(_0x3a76d7[_0x3891fc(0x271)]&&_0x58cc1f[_0x3891fc(0x237)](_0x3a76d7['preferredModel']))_0x32eec0=_0x3a76d7[_0x3891fc(0x271)];else{if(_0x3a76d7['complexity']==='high'&&_0x58cc1f['includes'](MODELS['ANTHROPIC_OPUS']))_0x32eec0=MODELS[_0x3891fc(0x277)];else _0x3a76d7[_0x3891fc(0x1de)]===_0x3891fc(0x272)&&_0x58cc1f[_0x3891fc(0x237)](MODELS[_0x3891fc(0x225)])&&(_0x32eec0=MODELS[_0x3891fc(0x225)]);}return this[_0x3891fc(0x204)][_0x3891fc(0x1d1)](_0x3891fc(0x25f)+_0x31101c,{'selectedModel':_0x32eec0,'availableModels':_0x58cc1f[_0x3891fc(0x24e)],'context':_0x3a76d7}),_0x32eec0;}catch(_0x47246a){return this[_0x3891fc(0x204)][_0x3891fc(0x276)](_0x3891fc(0x22d)+_0x47246a[_0x3891fc(0x1fb)],{'task':_0x31101c,'context':_0x3a76d7}),MODEL_ROUTING[_0x3891fc(0x21b)][0x0];}}async['compactizeConversation'](_0x296c34,_0x561fbe){const _0xe4f006=a0_0x353b80,_0x576aa4=this[_0xe4f006(0x1d2)][_0x561fbe];if(!_0x576aa4)throw new Error(_0xe4f006(0x20e)+_0x561fbe);const _0x4809fb=_0x576aa4[_0xe4f006(0x1eb)]*0.8;let _0x48223c=0x0;const _0x574be9=[],_0x100847=await Promise['all'](_0x296c34['map'](async _0x4c741e=>({..._0x4c741e,'estimatedTokens':await this[_0xe4f006(0x215)](_0x4c741e['content'],_0x561fbe)}))),_0xe65e7=[..._0x100847]['reverse']();for(const _0x12beff of _0xe65e7){if(_0x48223c+_0x12beff[_0xe4f006(0x266)]>_0x4809fb){if(_0x574be9['length']===0x0){const _0x1097d5=await this['_truncateMessage'](_0x12beff['content'],_0x4809fb);_0x574be9[_0xe4f006(0x232)]({..._0x12beff,'content':_0x1097d5,'estimatedTokens':_0x4809fb});}break;}_0x574be9[_0xe4f006(0x232)](_0x12beff),_0x48223c+=_0x12beff['estimatedTokens'];}const _0x1aa24d=_0x100847['slice'](0x0,-_0x574be9['length']);if(_0x1aa24d['length']>0x0){const _0x2693ec=await this['_summarizeMessages'](_0x1aa24d,_0x561fbe);_0x574be9[_0xe4f006(0x232)]({'role':_0xe4f006(0x208),'content':_0xe4f006(0x1e1)+_0x2693ec,'timestamp':_0x1aa24d[0x0]['timestamp'],'type':_0xe4f006(0x209),'estimatedTokens':await this['_estimateTokens'](_0x2693ec,_0x561fbe)});}return this[_0xe4f006(0x204)]['info'](_0xe4f006(0x24a)+_0x561fbe,{'originalMessages':_0x296c34[_0xe4f006(0x24e)],'compactizedMessages':_0x574be9[_0xe4f006(0x24e)],'estimatedTokens':_0x48223c,'maxTokens':_0x4809fb}),_0x574be9;}async['trackUsage'](_0x1d1079,_0x1f8c47,_0x2da714,_0x393ae2){const _0x1722c6=a0_0x353b80;try{this[_0x1722c6(0x23f)]&&this['budgetService'][_0x1722c6(0x26c)](_0x1d1079,_0x1f8c47,_0x2da714);}catch(_0x579a4d){this['logger'][_0x1722c6(0x276)](_0x1722c6(0x275)+_0x579a4d[_0x1722c6(0x1fb)]);}}async['handleHttpError'](_0x5e8f91,_0x2c4f5a){const _0x2adfb0=a0_0x353b80,_0x15de26=this['errorHandler']?.[_0x2adfb0(0x273)]?.(_0x5e8f91,_0x2c4f5a);switch(_0x5e8f91['status']||_0x5e8f91[_0x2adfb0(0x1f7)]){case HTTP_STATUS[_0x2adfb0(0x1d5)]:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x242),{'context':_0x2c4f5a,'error':_0x5e8f91[_0x2adfb0(0x1fb)]});throw new Error('Invalid\x20request:\x20'+_0x5e8f91[_0x2adfb0(0x1fb)]);case HTTP_STATUS[_0x2adfb0(0x219)]:this['logger'][_0x2adfb0(0x276)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2c4f5a});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x2adfb0(0x204)][_0x2adfb0(0x276)]('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x2c4f5a});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x2adfb0(0x256)]:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x240),{'context':_0x2c4f5a});throw new Error(_0x2adfb0(0x1f3));case HTTP_STATUS[_0x2adfb0(0x255)]:this[_0x2adfb0(0x204)]['warn'](_0x2adfb0(0x20c),{'context':_0x2c4f5a}),await this[_0x2adfb0(0x25b)](_0x2c4f5a);throw new Error(_0x2adfb0(0x262));case HTTP_STATUS[_0x2adfb0(0x231)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x25e),{'context':_0x2c4f5a,'status':_0x5e8f91['status']}),await this['_handleServiceUnavailable'](_0x2c4f5a);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x2c4f5a,'error':_0x5e8f91[_0x2adfb0(0x1fb)]});throw new Error('AI\x20service\x20error:\x20'+_0x5e8f91[_0x2adfb0(0x1fb)]);}}[a0_0x353b80(0x245)](_0x1752bc){const _0x4f2c8d=a0_0x353b80;this['apiKeyManager']=_0x1752bc,this[_0x4f2c8d(0x204)]?.['info'](_0x4f2c8d(0x259),{'hasManager':!!_0x1752bc});}[a0_0x353b80(0x1da)](_0x3dbfad){const _0x15abd9=a0_0x353b80;this[_0x15abd9(0x1db)]=_0x3dbfad,this[_0x15abd9(0x204)]?.[_0x15abd9(0x1d1)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3dbfad});}async[a0_0x353b80(0x1fc)](_0x30e336,_0x1319e4={}){const _0x3c945f=a0_0x353b80,_0xdba4d2=_0x3c945f(0x203)+Date[_0x3c945f(0x1d4)]()+'-'+Math['random']()['toString'](0x24)[_0x3c945f(0x264)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x30e336||typeof _0x30e336!=='string'||_0x30e336[_0x3c945f(0x238)]()[_0x3c945f(0x24e)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x9d75b9=_0x1319e4[_0x3c945f(0x1e0)]||'flux-1.1-pro',_0x444afe=_0x1319e4[_0x3c945f(0x1fd)]||_0x3c945f(0x235),_0x52927e=_0x1319e4['quality']||_0x3c945f(0x26f),_0x257b07=_0x1319e4[_0x3c945f(0x210)]||_0x3c945f(0x1df);this['logger'][_0x3c945f(0x1d1)](_0x3c945f(0x20f)+_0x9d75b9,{'requestId':_0xdba4d2,'model':_0x9d75b9,'size':_0x444afe,'quality':_0x52927e,'promptLength':_0x30e336[_0x3c945f(0x24e)]});const _0x2911f9={'prompt':_0x30e336,'model':_0x9d75b9,'size':_0x444afe,'quality':_0x52927e,'response_format':_0x257b07,'n':0x1,'metadata':{'requestId':_0xdba4d2,'timestamp':new Date()['toISOString']()}},_0x30c8f9=await this['_makeImageAPIRequest'](_0x2911f9,_0xdba4d2,{'sessionId':_0x1319e4[_0x3c945f(0x213)],'platformProvided':_0x1319e4[_0x3c945f(0x22e)]||![]});return this[_0x3c945f(0x21a)](),{'url':_0x30c8f9[_0x3c945f(0x239)]?.[0x0]?.['url']||null,'b64_json':_0x30c8f9['data']?.[0x0]?.[_0x3c945f(0x265)]||null,'model':_0x30c8f9[_0x3c945f(0x1e0)]||_0x9d75b9,'requestId':_0xdba4d2,'revisedPrompt':_0x30c8f9[_0x3c945f(0x239)]?.[0x0]?.[_0x3c945f(0x22a)]||_0x30e336};}catch(_0x4ab399){this['_recordFailure'](),this[_0x3c945f(0x204)][_0x3c945f(0x276)]('Image\x20generation\x20failed:\x20'+_0x4ab399['message'],{'requestId':_0xdba4d2,'model':_0x1319e4[_0x3c945f(0x1e0)],'error':_0x4ab399[_0x3c945f(0x201)]});throw _0x4ab399;}}async['checkServiceHealth'](){const _0x5ed53d=a0_0x353b80;try{const _0x4c639c=await this['_makeAPIRequest']('/health',{},'health-check');return _0x4c639c['status']===_0x5ed53d(0x227);}catch(_0x1fdee5){return![];}}async['switchAgentModel'](_0x7e5ef3,_0x34b2e5){const _0x557467=a0_0x353b80;try{if(!this[_0x557467(0x241)](_0x34b2e5))throw new Error('Invalid\x20model:\x20'+_0x34b2e5);let _0x284de7=this[_0x557467(0x25a)]['get'](_0x7e5ef3);!_0x284de7&&(_0x284de7=new ConversationManager(_0x7e5ef3,this[_0x557467(0x204)]),this[_0x557467(0x25a)]['set'](_0x7e5ef3,_0x284de7));const _0x566158=await _0x284de7[_0x557467(0x1f4)](_0x34b2e5),_0x23a6aa=await this[_0x557467(0x1db)]?.[_0x557467(0x212)](_0x7e5ef3);return _0x23a6aa&&(_0x23a6aa[_0x557467(0x1ff)]=_0x34b2e5,await this[_0x557467(0x1db)][_0x557467(0x257)](_0x7e5ef3)),this['logger']['info'](_0x557467(0x251)+_0x7e5ef3,{'newModel':_0x34b2e5,'messageCount':_0x566158['messages'][_0x557467(0x24e)]}),{'success':!![],'agentId':_0x7e5ef3,'newModel':_0x34b2e5,'conversation':_0x566158};}catch(_0xc4c4e9){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0xc4c4e9['message'],{'agentId':_0x7e5ef3,'newModel':_0x34b2e5});throw _0xc4c4e9;}}[a0_0x353b80(0x233)](){const _0x251b70=a0_0x353b80,_0x46a84d={[MODELS[_0x251b70(0x205)]]:{'provider':MODEL_PROVIDERS[_0x251b70(0x254)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x251b70(0x277)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x251b70(0x225)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x251b70(0x1d0)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x251b70(0x1dc),'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':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x251b70(0x1dc),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x46a84d;}[a0_0x353b80(0x26a)](_0x5756b7,_0x349122,_0x38de0d){const _0x5dc4bf=a0_0x353b80,_0x507bc0=this['modelSpecs'][_0x349122]||{'provider':'AZURE'};let _0x11a95e;typeof _0x5756b7==='string'?_0x11a95e=[{'role':_0x5dc4bf(0x22c),'content':_0x5756b7}]:_0x11a95e=_0x5756b7[_0x5dc4bf(0x1e2)](_0x2c54ec=>this[_0x5dc4bf(0x243)](_0x2c54ec,_0x349122));switch(_0x507bc0['provider']){case MODEL_PROVIDERS[_0x5dc4bf(0x254)]:return this['_formatForAnthropic'](_0x11a95e);case MODEL_PROVIDERS['OPENAI']:return this['_formatForOpenAI'](_0x11a95e);case MODEL_PROVIDERS[_0x5dc4bf(0x1dc)]:return this[_0x5dc4bf(0x258)](_0x11a95e);default:return _0x11a95e;}}[a0_0x353b80(0x243)](_0x3df56a,_0x170878){const _0x2b6e9f=a0_0x353b80;return{'role':_0x3df56a[_0x2b6e9f(0x228)]||_0x2b6e9f(0x22c),'content':_0x3df56a[_0x2b6e9f(0x202)],'timestamp':_0x3df56a[_0x2b6e9f(0x253)]};}[a0_0x353b80(0x1d7)](_0x5dcde0){return _0x5dcde0['map'](_0x313113=>{const _0x532126=a0_0x36f7;if(_0x313113['role']==='system')return{'role':'user','content':_0x532126(0x260)+_0x313113['content']};return _0x313113;});}[a0_0x353b80(0x1fa)](_0x595239){return _0x595239;}['_formatForAzure'](_0x58306c){const _0x3958b4=a0_0x353b80;return _0x58306c['map'](_0xd38ed0=>({..._0xd38ed0,'content':typeof _0xd38ed0[_0x3958b4(0x202)]==='string'?_0xd38ed0['content']:JSON['stringify'](_0xd38ed0[_0x3958b4(0x202)])}));}[a0_0x353b80(0x241)](_0x1e49b6){const _0x12bbba=a0_0x353b80;this['logger'][_0x12bbba(0x269)]('Validating\x20model',{'model':_0x1e49b6,'modelType':typeof _0x1e49b6});if(this['modelSpecs'][_0x1e49b6]!==undefined)return!![];return this[_0x12bbba(0x204)][_0x12bbba(0x1f1)](_0x12bbba(0x249),{'model':_0x1e49b6,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async[a0_0x353b80(0x1f9)](_0x2fba96){return!![];}async['_estimateTokens'](_0xb6615b,_0x5593ac){const _0x5c5f88=a0_0x353b80;return Math['ceil'](_0xb6615b[_0x5c5f88(0x24e)]/0x4);}async[a0_0x353b80(0x1e3)](_0x1f1905,_0x46605b){const _0x48ae79=a0_0x353b80,_0x53096b=_0x46605b*0x4;if(_0x1f1905[_0x48ae79(0x24e)]<=_0x53096b)return _0x1f1905;return _0x1f1905[_0x48ae79(0x211)](0x0,_0x53096b-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x193dc5,_0x542e6d){const _0x617245=a0_0x353b80,_0x72aa1d=_0x193dc5['map'](_0x4e852e=>_0x4e852e[_0x617245(0x228)]+':\x20'+_0x4e852e['content'])['join']('\x0a'),_0x16ac19=0x1f4;if(_0x72aa1d['length']<=_0x16ac19)return _0x72aa1d;return _0x72aa1d[_0x617245(0x211)](0x0,_0x16ac19)+_0x617245(0x21c);}async[a0_0x353b80(0x26e)](_0x20679c,_0x4ec65a,_0x118463,_0x183bca={}){const _0x2276c2=a0_0x353b80,_0x1b7f7a=_0x2276c2(0x23d);let _0x660736,_0x49772a=null,_0x5bde4e=null;this['logger']?.['info']('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x2276c2(0x20a)],'sessionId':_0x183bca['sessionId'],'hasSessionId':!!_0x183bca['sessionId'],'optionsKeys':Object['keys'](_0x183bca),'model':_0x4ec65a['model']});if(this['apiKeyManager']&&_0x183bca['sessionId']){const _0x49f0ef=this[_0x2276c2(0x20a)][_0x2276c2(0x26d)](_0x183bca[_0x2276c2(0x213)],{'platformProvided':_0x183bca[_0x2276c2(0x22e)]||![],'vendor':this['_getVendorFromModel'](_0x4ec65a['model'])});_0x49772a=_0x49f0ef[_0x2276c2(0x21d)],_0x5bde4e=_0x49f0ef[_0x2276c2(0x1ee)],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x183bca[_0x2276c2(0x213)],'hasLoxiaKey':!!_0x49772a,'hasVendorKey':!!_0x5bde4e,'vendor':this[_0x2276c2(0x268)](_0x4ec65a[_0x2276c2(0x1e0)])});}!_0x49772a&&_0x183bca[_0x2276c2(0x25d)]&&(_0x49772a=_0x183bca[_0x2276c2(0x25d)]);!_0x49772a&&this[_0x2276c2(0x236)]['apiKey']&&(_0x49772a=this['config'][_0x2276c2(0x25d)]);if(!_0x49772a)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x5bb7fd=_0x4ec65a['model'],_0x3920ec={'conversationId':_0x118463,'message':_0x4ec65a['messages'][_0x4ec65a[_0x2276c2(0x278)]['length']-0x1]?.[_0x2276c2(0x202)]||'','messages':_0x4ec65a['messages'],'model':_0x5bb7fd,'requestId':_0x118463,'options':_0x4ec65a[_0x2276c2(0x1e7)]||{},'platformProvided':_0x183bca['platformProvided']||![]};_0x4ec65a['system']&&(_0x3920ec[_0x2276c2(0x221)]=_0x4ec65a[_0x2276c2(0x208)]);_0x183bca['platformProvided']?_0x3920ec['apiKey']=_0x49772a:(_0x5bde4e&&(_0x3920ec['vendorApiKey']=_0x5bde4e),_0x183bca['customApiKeys']&&(_0x3920ec['customApiKeys']=_0x183bca['customApiKeys']),_0x3920ec['apiKey']=_0x49772a);for(let _0x3c04cd=0x1;_0x3c04cd<=this['retryAttempts'];_0x3c04cd++){try{this['logger'][_0x2276c2(0x1d1)](_0x2276c2(0x1e8),{'url':_0x1b7f7a,'model':_0x4ec65a[_0x2276c2(0x1e0)],'requestId':_0x118463,'attempt':_0x3c04cd,'hasApiKey':!!_0x49772a});const _0x5ddc48=await fetch(_0x1b7f7a,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x2276c2(0x1e4)+_0x49772a,'X-Request-ID':_0x118463},'body':JSON['stringify'](_0x3920ec),'timeout':this['timeout']});if(!_0x5ddc48['ok']){const _0xa4a923=await _0x5ddc48[_0x2276c2(0x218)](),_0x455f8c=new Error('HTTP\x20'+_0x5ddc48[_0x2276c2(0x24c)]+':\x20'+_0x5ddc48['statusText']+(_0xa4a923?'\x20-\x20'+_0xa4a923:''));_0x455f8c[_0x2276c2(0x24c)]=_0x5ddc48[_0x2276c2(0x24c)];throw _0x455f8c;}const _0x27327d=await _0x5ddc48[_0x2276c2(0x21e)]();return{'choices':[{'message':{'content':_0x27327d['content']||'','role':'assistant'},'finish_reason':_0x27327d['finishReason']||_0x2276c2(0x261)}],'usage':_0x27327d['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x27327d['model']||_0x4ec65a[_0x2276c2(0x1e0)],'id':_0x27327d['requestId']||_0x118463};}catch(_0xe45d12){_0x660736=_0xe45d12,this['logger']['warn'](_0x2276c2(0x207),{'attempt':_0x3c04cd,'requestId':_0x118463,'error':_0xe45d12['message'],'status':_0xe45d12['status']});if(_0x3c04cd<this['retryAttempts']){const _0x2b8aa2=Math[_0x2276c2(0x1f0)](0x2,_0x3c04cd)*0x3e8;this[_0x2276c2(0x204)]['warn']('Retrying\x20in\x20'+_0x2b8aa2+'ms',{'attempt':_0x3c04cd,'requestId':_0x118463}),await new Promise(_0x71a536=>setTimeout(_0x71a536,_0x2b8aa2));}}}this['logger']['error'](_0x2276c2(0x23c),{'requestId':_0x118463,'error':_0x660736['message']});const _0x3e0f5a=_0x660736[_0x2276c2(0x1fb)]&&_0x660736[_0x2276c2(0x1fb)]['includes'](_0x2276c2(0x223));if(_0x3e0f5a)throw new Error('API\x20Configuration\x20Error:\x20'+_0x660736['message']);return{'choices':[{'message':{'content':_0x2276c2(0x1f6)+_0x660736['message'],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4ec65a[_0x2276c2(0x1e0)],'id':'error-'+_0x118463,'error':_0x660736['message']};}async['_makeImageAPIRequest'](_0x3d6c5a,_0x503792,_0x4795f9={}){const _0x15d057=a0_0x353b80,_0xd5b989='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x3c06a4,_0x4ec8f5=null,_0x1c4430=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x4795f9[_0x15d057(0x213)],'hasSessionId':!!_0x4795f9['sessionId'],'model':_0x3d6c5a[_0x15d057(0x1e0)]});if(this[_0x15d057(0x20a)]&&_0x4795f9['sessionId']){const _0x476f7d=this[_0x15d057(0x20a)][_0x15d057(0x26d)](_0x4795f9[_0x15d057(0x213)],{'platformProvided':_0x4795f9[_0x15d057(0x22e)]||![],'vendor':this['_getVendorFromModel'](_0x3d6c5a[_0x15d057(0x1e0)])});_0x4ec8f5=_0x476f7d[_0x15d057(0x21d)],_0x1c4430=_0x476f7d['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x4795f9['sessionId'],'hasLoxiaKey':!!_0x4ec8f5,'hasVendorKey':!!_0x1c4430});}!_0x4ec8f5&&_0x4795f9['apiKey']&&(_0x4ec8f5=_0x4795f9['apiKey']);!_0x4ec8f5&&this['config'][_0x15d057(0x25d)]&&(_0x4ec8f5=this[_0x15d057(0x236)]['apiKey']);if(!_0x4ec8f5)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x25274a={'prompt':_0x3d6c5a['prompt'],'model':_0x3d6c5a[_0x15d057(0x1e0)]||_0x15d057(0x1e9),'size':_0x3d6c5a['size'],'quality':_0x3d6c5a[_0x15d057(0x23a)],'style':_0x3d6c5a[_0x15d057(0x1f8)]||_0x15d057(0x230),'n':_0x3d6c5a['n']||0x1,'requestId':_0x503792};for(let _0x5c959a=0x1;_0x5c959a<=this[_0x15d057(0x23e)];_0x5c959a++){try{this['logger'][_0x15d057(0x1d1)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0xd5b989,'model':_0x3d6c5a[_0x15d057(0x1e0)],'requestId':_0x503792,'attempt':_0x5c959a,'hasApiKey':!!_0x4ec8f5});const _0x2e12b7=await fetch(_0xd5b989,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x4ec8f5,'X-Request-ID':_0x503792},'body':JSON['stringify'](_0x25274a),'timeout':this[_0x15d057(0x250)]*0x2});if(!_0x2e12b7['ok']){const _0x534115=await _0x2e12b7['text'](),_0x11b129=new Error('HTTP\x20'+_0x2e12b7[_0x15d057(0x24c)]+':\x20'+_0x2e12b7['statusText']+(_0x534115?'\x20-\x20'+_0x534115:''));_0x11b129['status']=_0x2e12b7['status'];throw _0x11b129;}const _0xc31778=await _0x2e12b7['json']();return{'data':_0xc31778[_0x15d057(0x1e5)]||[],'model':_0xc31778['model']||_0x3d6c5a[_0x15d057(0x1e0)],'created':_0xc31778['created']||Date['now'](),'usage':_0xc31778['usage']};}catch(_0x1a3c34){_0x3c06a4=_0x1a3c34,this[_0x15d057(0x204)]['warn'](_0x15d057(0x220),{'attempt':_0x5c959a,'requestId':_0x503792,'error':_0x1a3c34['message'],'status':_0x1a3c34['status']});if(_0x5c959a<this['retryAttempts']){const _0x3342e6=Math['pow'](0x2,_0x5c959a)*0x3e8;this['logger'][_0x15d057(0x1f1)](_0x15d057(0x1f2)+_0x3342e6+'ms',{'attempt':_0x5c959a,'requestId':_0x503792}),await new Promise(_0x130ef6=>setTimeout(_0x130ef6,_0x3342e6));}}}this[_0x15d057(0x204)]['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x503792,'error':_0x3c06a4[_0x15d057(0x1fb)]});throw new Error('Image\x20generation\x20failed:\x20'+_0x3c06a4['message']);}async[a0_0x353b80(0x244)](_0x10306a){await new Promise(_0x2c45fe=>setTimeout(_0x2c45fe,0x64));}async[a0_0x353b80(0x25b)](_0x5415e5){const _0x2a5724=a0_0x353b80,_0x3953a4=0xea60;this[_0x2a5724(0x204)][_0x2a5724(0x1d1)](_0x2a5724(0x247)+_0x3953a4+'ms',_0x5415e5),await new Promise(_0x2bdc81=>setTimeout(_0x2bdc81,_0x3953a4));}async[a0_0x353b80(0x1ea)](_0x4452a4){const _0x4bd661=a0_0x353b80;this[_0x4bd661(0x267)]();const _0x3ede15=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x3ede15+'ms',_0x4452a4),await new Promise(_0x4410e1=>setTimeout(_0x4410e1,_0x3ede15));}['_isCircuitBreakerOpen'](){const _0x10a710=a0_0x353b80;if(!this['circuitBreaker']['isOpen'])return![];const _0x59c264=Date[_0x10a710(0x1d4)]()-this['circuitBreaker'][_0x10a710(0x1d9)];if(_0x59c264>this[_0x10a710(0x24d)][_0x10a710(0x250)])return this['circuitBreaker'][_0x10a710(0x246)]=![],this['circuitBreaker'][_0x10a710(0x274)]=0x0,![];return!![];}['_recordFailure'](){const _0x27f960=a0_0x353b80;this['circuitBreaker']['failures']++,this['circuitBreaker'][_0x27f960(0x1d9)]=Date[_0x27f960(0x1d4)](),this[_0x27f960(0x24d)]['failures']>=this[_0x27f960(0x24d)][_0x27f960(0x20b)]&&(this[_0x27f960(0x24d)]['isOpen']=!![],this[_0x27f960(0x204)]['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x353b80(0x21a)](){const _0x250e9b=a0_0x353b80;this['circuitBreaker'][_0x250e9b(0x274)]>0x0&&(this[_0x250e9b(0x24d)][_0x250e9b(0x274)]=0x0,this[_0x250e9b(0x24d)]['isOpen']=![],this[_0x250e9b(0x204)][_0x250e9b(0x1d1)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x148dd1){const _0x2827e9=a0_0x353b80;if(!_0x148dd1)return null;const _0x30fa39=_0x148dd1['toLowerCase']();if(_0x30fa39['includes']('anthropic')||_0x30fa39['includes'](_0x2827e9(0x270)))return'anthropic';else{if(_0x30fa39[_0x2827e9(0x237)]('openai')||_0x30fa39[_0x2827e9(0x237)](_0x2827e9(0x1cf)))return _0x2827e9(0x20d);else{if(_0x30fa39['includes']('deepseek'))return'deepseek';else{if(_0x30fa39['includes'](_0x2827e9(0x216)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x20c6e3,_0x282907){const _0x54509c=a0_0x353b80;this['agentId']=_0x20c6e3,this['logger']=_0x282907,this[_0x54509c(0x25c)]=new Map();}async['switchModel'](_0x1b9535){return{'messages':[],'model':_0x1b9535,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
1
+ const a0_0x3e0030=a0_0x170f;(function(_0xbe0eaa,_0xb89231){const _0x4c1cb9=a0_0x170f,_0x401417=_0xbe0eaa();while(!![]){try{const _0x204c00=-parseInt(_0x4c1cb9(0x215))/0x1*(-parseInt(_0x4c1cb9(0x1c1))/0x2)+parseInt(_0x4c1cb9(0x1df))/0x3*(parseInt(_0x4c1cb9(0x1b0))/0x4)+parseInt(_0x4c1cb9(0x1c9))/0x5+-parseInt(_0x4c1cb9(0x1f9))/0x6+-parseInt(_0x4c1cb9(0x1bc))/0x7+parseInt(_0x4c1cb9(0x222))/0x8+parseInt(_0x4c1cb9(0x1dc))/0x9*(parseInt(_0x4c1cb9(0x257))/0xa);if(_0x204c00===_0xb89231)break;else _0x401417['push'](_0x401417['shift']());}catch(_0x385225){_0x401417['push'](_0x401417['shift']());}}}(a0_0x5f3f,0xd82aa));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x170f(_0xac9fa0,_0x4f2c90){_0xac9fa0=_0xac9fa0-0x1aa;const _0x5f3f94=a0_0x5f3f();let _0x170fb2=_0x5f3f94[_0xac9fa0];if(a0_0x170f['KeDQhl']===undefined){var _0x57e062=function(_0x3ecd70){const _0x5d25e0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23d0e6='',_0x472369='';for(let _0x3bccf6=0x0,_0x1d963e,_0x330893,_0x2acc76=0x0;_0x330893=_0x3ecd70['charAt'](_0x2acc76++);~_0x330893&&(_0x1d963e=_0x3bccf6%0x4?_0x1d963e*0x40+_0x330893:_0x330893,_0x3bccf6++%0x4)?_0x23d0e6+=String['fromCharCode'](0xff&_0x1d963e>>(-0x2*_0x3bccf6&0x6)):0x0){_0x330893=_0x5d25e0['indexOf'](_0x330893);}for(let _0x389ade=0x0,_0x3ccafb=_0x23d0e6['length'];_0x389ade<_0x3ccafb;_0x389ade++){_0x472369+='%'+('00'+_0x23d0e6['charCodeAt'](_0x389ade)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x472369);};a0_0x170f['ObrxSV']=_0x57e062,a0_0x170f['qqXbkA']={},a0_0x170f['KeDQhl']=!![];}const _0x3e00af=_0x5f3f94[0x0],_0x340a51=_0xac9fa0+_0x3e00af,_0x2a3485=a0_0x170f['qqXbkA'][_0x340a51];return!_0x2a3485?(_0x170fb2=a0_0x170f['ObrxSV'](_0x170fb2),a0_0x170f['qqXbkA'][_0x340a51]=_0x170fb2):_0x170fb2=_0x2a3485,_0x170fb2;}function a0_0x5f3f(){const _0x6141a5=['mJr2vuvcyu0','CgXHDgzVCM1qCM92AwrLza','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','BwvZC2fNzxm','z2vUzxjHDgvjBwfNzq','DxnLCG','yxbPs2v5twfUywDLCG','D2fYBG','DML2Awq','y2vPBa','AxnpCgvU','ue9tva','ic0G','x2nOzwnRuMf0zuXPBwL0','ChjLzMvYCMvKtw9KzwW','x3jLy29YzezHAwX1CMu','C3bLzwq','y29UDMvYC2f0Aw9UCW','x2HHBMrSzvjHDgvmAw1PDa','Dgv4Da','ChjVBxb0','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','CMvXDwvZDff1zxvL','x2zVCM1HDezVCK9Wzw5bsq','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','x3jLC2v0q2LYy3vPDejYzwfRzxi','ntuWnJi2mfvPyuzgDa','zgvLChnLzwS','uMf0zsbSAw1PDcbLEgnLzwrLza','Aw5JBhvKzxm','Dw5ZAgLMDa','sw52ywXPzcbYzxf1zxn0oIa','y3vZDg9TqxbPs2v5CW','r1buxZrFtuLosq','qMvHCMvYia','uMv0CNLPBMCGAw4G','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','x2DLDfzLBMrVCKzYB21nB2rLBa','DMvUzg9YqxbPs2v5','ywDLBNrjza','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','C3rYAw5N','CMfUzg9T','zMX1Ec0XlJeTChjV','C2vUze1LC3nHz2u','C3rHDhvZ','CMf0zuXPBwL0zxjZ','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','u0vsvKLdrv9vtKfwquLmqujmrq','ChvZAa','y29UDgv4DfDPBMrVDW','DxjS','BwvZC2fNzq','mtLyAMreqvi','CMv2zxjZzq','zMfPBhvYzxm','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','quKGC2vYDMLJzsbLCNjVCJOG','z2v0s2v5C0zVCLjLCxvLC3q','z3b0','AgfUzgXLshr0CevYCM9Y','x2zVCM1HDezVCKfUDgHYB3bPyW','Aw5MBW','qKfex0DbvevxqvK','tw9KzwWGC3DPDgnOigzHAwXLzdOG','ANnVBG','ntq4nJqYnef6EKf6rG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','Bwf4x3rVA2vUCW','CgvYC2LZDefNzw50u3rHDgu','C3LZDgvT','tK9ux0zpvu5e','CMvZCg9UC2vgB3jTyxq','y29TCgXLEgL0Eq','Dg9tDhjPBMC','CMvXlq','DgLTzw91Da','y2LYy3vPDejYzwfRzxi','CM9Szq','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','CMvXDwvZDeLK','t1bftKfj','Aw1Hz2vZ','C3vIC3rYAw5N','BwfW','ywXS','A2v5CW','qu5usfjpueLdx0HbsuTv','C2XPy2u','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','C3DPDgnOtw9KzwW','C3rHBMrHCMq','CxvHBgL0Eq','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','DhjHy2TvC2fNzq','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','z2v0','B3b0Aw9UCW','y29UDMvYC2f0Aw9UtwfUywDLCNm','y29UzMLN','Bg9Nz2vY','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','rKfmtejbq0S','C2v0qwDLBNrqB29S','C3LZDgvTuhjVBxb0','zMLUAxnOuMvHC29U','qvPvuKu','x2nOzwnRtw9KzwXizwfSDgG','zxn0Aw1HDgvKvg9Rzw5Z','zgf0yq','x2LZvMfSAwrnB2rLBa','x3rYDw5JyxrLtwvZC2fNzq','ChjVDMLKzxi','vu5bvvrit1jjwKve','x2LZq2LYy3vPDejYzwfRzxjpCgvU','ywDLBNrqB29S','mtuWBKLnBxHW','BM93','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','yJy0x2PZB24','mtaYnhGXmdi0','x2zVCM1HDfnPBMDSzu1LC3nHz2u','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','CMv0CNLbDhrLBxb0CW','nJe0nJmYrg5tyKv1','yMfJA2vUza','y29UDgvUDa','CMv2AxnLzf9WCM9TChq','Dg9ju09tDhjPBMC','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','yNvKz2v0u2vYDMLJzq','yxbPs2v5','yxnZAxn0yw50','AgLNAa','Bw9KzwW','y2XHC3nPzNLfCNjVCG','ote4ndCYmvvKCKHJrW','y29Kzq','vw5RBM93BIbTB2rLBdOG','C3rYAw5NAwz5','x2vZDgLTyxrLvg9Rzw5Z','mtaWmtr4s2vPquq','Dg9vChbLCKnHC2u','C3rVCa','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','C3rHDhvZvgv4Da','BgvUz3rO','qu5usfjpueLd','z2v0qwDLBNq','oti0ndmWr0r3suLS','y2HVAwnLCW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','DhjPBq','Dg90ywXFDg9Rzw5Z','ueHjxZq','DgHYzxnOB2XK','zxjYB3i','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','C2vZC2LVBKLK','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','yMfZzvvYBa','C3rHy2S','DxnHz2u','r1buxZq','Bw9KzwXtCgvJCW','C3r5Bgu','zxjYB3jiyw5KBgvY','sfruuca','ntuYmdG3sfvkzM5Y','CgHP','x21HA2vjBwfNzufqsvjLCxvLC3q'];a0_0x5f3f=function(){return _0x6141a5;};return a0_0x5f3f();}class AIService{constructor(_0x23d0e6,_0x472369,_0x3bccf6,_0x1d963e){const _0x977c62=a0_0x170f;this[_0x977c62(0x245)]=_0x23d0e6,this['logger']=_0x472369,this[_0x977c62(0x1b6)]=_0x3bccf6,this[_0x977c62(0x1da)]=_0x1d963e,this[_0x977c62(0x1d4)]=_0x23d0e6[_0x977c62(0x1b1)]?.[_0x977c62(0x1d4)]||'https://api.loxia.ai',this['timeout']=_0x23d0e6['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x23d0e6['backend']?.[_0x977c62(0x1af)]||0x3,this[_0x977c62(0x20d)]=new Map(),this[_0x977c62(0x1f5)]=new Map(),this[_0x977c62(0x22e)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x977c62(0x20e)](),this[_0x977c62(0x244)]=new Map(),this[_0x977c62(0x1e5)]=null,this[_0x977c62(0x256)]=null;}async[a0_0x3e0030(0x20b)](_0x330893,_0x2acc76,_0x389ade={}){const _0x3b3687=a0_0x3e0030,_0x3ccafb=_0x3b3687(0x22c)+Date['now']()+'-'+Math[_0x3b3687(0x209)]()[_0x3b3687(0x22b)](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x330893);const _0x1fcd7a=this[_0x3b3687(0x241)](_0x2acc76,_0x330893,_0x389ade),_0x198f66={'model':_0x330893,'messages':_0x1fcd7a,'options':{'max_tokens':this['modelSpecs'][_0x330893]?.['maxTokens']||0xfa0,'temperature':_0x389ade['temperature']||0.7,'stream':_0x389ade['stream']||![]},'metadata':{'requestId':_0x3ccafb,'agentId':_0x389ade['agentId'],'timestamp':new Date()[_0x3b3687(0x1b4)]()}};_0x389ade[_0x3b3687(0x24b)]&&(_0x198f66[_0x3b3687(0x227)]=_0x389ade['systemPrompt']);this[_0x3b3687(0x246)][_0x3b3687(0x21e)]('Sending\x20message\x20to\x20model:\x20'+_0x330893,{'requestId':_0x3ccafb,'agentId':_0x389ade[_0x3b3687(0x206)],'messageCount':Array['isArray'](_0x2acc76)?_0x2acc76['length']:0x1,'maxTokens':_0x198f66[_0x3b3687(0x225)]});const _0x217122=await this['_makeAPIRequest']('/chat/completions',_0x198f66,_0x3ccafb,{..._0x389ade,'sessionId':_0x389ade['sessionId'],'platformProvided':_0x389ade['platformProvided']||![]});return _0x217122['usage']&&await this['trackUsage'](_0x389ade['agentId'],_0x330893,{'prompt_tokens':_0x217122[_0x3b3687(0x1d6)]['prompt_tokens']||0x0,'completion_tokens':_0x217122['usage']['completion_tokens']||0x0,'total_tokens':_0x217122['usage'][_0x3b3687(0x1cd)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x217122['choices'][0x0]?.['message']?.['content']||'','model':_0x217122['model'],'tokenUsage':_0x217122[_0x3b3687(0x1d6)],'requestId':_0x3ccafb,'finishReason':_0x217122[_0x3b3687(0x1ca)][0x0]?.['finish_reason']};}catch(_0x23b105){this[_0x3b3687(0x1ee)](),this['logger'][_0x3b3687(0x1d0)](_0x3b3687(0x23f)+_0x23b105[_0x3b3687(0x214)],{'requestId':_0x3ccafb,'model':_0x330893,'agentId':_0x389ade[_0x3b3687(0x206)],'error':_0x23b105[_0x3b3687(0x1d5)]}),await this['handleHttpError'](_0x23b105,{'requestId':_0x3ccafb,'model':_0x330893,'agentId':_0x389ade['agentId']});throw _0x23b105;}}async['routeModel'](_0x2dd936,_0x4871a7={}){const _0xa46688=a0_0x3e0030;try{const _0x2a11e1=MODEL_ROUTING[_0x2dd936[_0xa46688(0x1c2)]()]||MODEL_ROUTING[_0xa46688(0x249)],_0x2dc14b=[];for(const _0x1d3ec6 of _0x2a11e1){const _0x4fdfe7=await this['_checkModelHealth'](_0x1d3ec6);_0x4fdfe7&&_0x2dc14b[_0xa46688(0x211)](_0x1d3ec6);}if(_0x2dc14b[_0xa46688(0x1c6)]===0x0)return this['logger']['warn'](_0xa46688(0x230)+_0x2dd936+',\x20using\x20fallback'),MODEL_ROUTING[_0xa46688(0x249)][0x0];let _0x11a2ef=_0x2dc14b[0x0];if(_0x4871a7[_0xa46688(0x1ed)]&&_0x2dc14b['includes'](_0x4871a7['preferredModel']))_0x11a2ef=_0x4871a7['preferredModel'];else{if(_0x4871a7[_0xa46688(0x22a)]===_0xa46688(0x1b9)&&_0x2dc14b[_0xa46688(0x1fc)](MODELS['ANTHROPIC_OPUS']))_0x11a2ef=MODELS['ANTHROPIC_OPUS'];else _0x4871a7[_0xa46688(0x1ef)]==='fast'&&_0x2dc14b['includes'](MODELS[_0xa46688(0x239)])&&(_0x11a2ef=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info'](_0xa46688(0x1cb)+_0x2dd936,{'selectedModel':_0x11a2ef,'availableModels':_0x2dc14b[_0xa46688(0x1c6)],'context':_0x4871a7}),_0x11a2ef;}catch(_0xb3af99){return this['logger']['error'](_0xa46688(0x218)+_0xb3af99[_0xa46688(0x214)],{'task':_0x2dd936,'context':_0x4871a7}),MODEL_ROUTING[_0xa46688(0x249)][0x0];}}async['compactizeConversation'](_0x5a0f6a,_0x2f4466){const _0x1d83ed=a0_0x3e0030,_0x15c016=this[_0x1d83ed(0x1d8)][_0x2f4466];if(!_0x15c016)throw new Error(_0x1d83ed(0x1be)+_0x2f4466);const _0x2183ac=_0x15c016[_0x1d83ed(0x212)]*0.8;let _0x3b2aa5=0x0;const _0x4de653=[],_0x14bde9=await Promise[_0x1d83ed(0x237)](_0x5a0f6a[_0x1d83ed(0x236)](async _0x2bbe9d=>({..._0x2bbe9d,'estimatedTokens':await this[_0x1d83ed(0x1c0)](_0x2bbe9d[_0x1d83ed(0x1b2)],_0x2f4466)}))),_0x28e4ad=[..._0x14bde9][_0x1d83ed(0x216)]();for(const _0x2590ae of _0x28e4ad){if(_0x3b2aa5+_0x2590ae['estimatedTokens']>_0x2183ac){if(_0x4de653['length']===0x0){const _0x2bc1f7=await this[_0x1d83ed(0x252)](_0x2590ae['content'],_0x2183ac);_0x4de653[_0x1d83ed(0x1fd)]({..._0x2590ae,'content':_0x2bc1f7,'estimatedTokens':_0x2183ac});}break;}_0x4de653['unshift'](_0x2590ae),_0x3b2aa5+=_0x2590ae[_0x1d83ed(0x24f)];}const _0x485c99=_0x14bde9[_0x1d83ed(0x23a)](0x0,-_0x4de653[_0x1d83ed(0x1c6)]);if(_0x485c99[_0x1d83ed(0x1c6)]>0x0){const _0x235a2e=await this['_summarizeMessages'](_0x485c99,_0x2f4466);_0x4de653['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x235a2e,'timestamp':_0x485c99[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x1d83ed(0x1c0)](_0x235a2e,_0x2f4466)});}return this['logger']['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x2f4466,{'originalMessages':_0x5a0f6a['length'],'compactizedMessages':_0x4de653['length'],'estimatedTokens':_0x3b2aa5,'maxTokens':_0x2183ac}),_0x4de653;}async[a0_0x3e0030(0x240)](_0x33bce2,_0x14196f,_0x1e75d7,_0x5067f6){const _0x4d0c89=a0_0x3e0030;try{this[_0x4d0c89(0x1b6)]&&this[_0x4d0c89(0x1b6)][_0x4d0c89(0x240)](_0x33bce2,_0x14196f,_0x1e75d7);}catch(_0x39183d){this['logger']['error'](_0x4d0c89(0x248)+_0x39183d['message']);}}async[a0_0x3e0030(0x21c)](_0x1b7a87,_0x4f4709){const _0x433a48=a0_0x3e0030,_0x4150a1=this[_0x433a48(0x1da)]?.[_0x433a48(0x1bb)]?.(_0x1b7a87,_0x4f4709);switch(_0x1b7a87[_0x433a48(0x20c)]||_0x1b7a87[_0x433a48(0x1bd)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x433a48(0x1d0)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x4f4709,'error':_0x1b7a87['message']});throw new Error(_0x433a48(0x1fe)+_0x1b7a87['message']);case HTTP_STATUS[_0x433a48(0x254)]:this[_0x433a48(0x246)]['error'](_0x433a48(0x1d1),{'context':_0x4f4709});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x433a48(0x246)]['error'](_0x433a48(0x203),{'context':_0x4f4709});throw new Error(_0x433a48(0x1f4));case HTTP_STATUS[_0x433a48(0x228)]:this['logger']['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x4f4709});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger']['warn'](_0x433a48(0x1fb),{'context':_0x4f4709}),await this[_0x433a48(0x1f1)](_0x4f4709);throw new Error(_0x433a48(0x1e1));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x433a48(0x21f)]:case HTTP_STATUS[_0x433a48(0x210)]:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x433a48(0x246)][_0x433a48(0x1d0)](_0x433a48(0x1d3),{'context':_0x4f4709,'status':_0x1b7a87['status']}),await this['_handleServiceUnavailable'](_0x4f4709);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x433a48(0x246)]['error'](_0x433a48(0x23b),{'context':_0x4f4709,'error':_0x1b7a87[_0x433a48(0x214)]});throw new Error(_0x433a48(0x219)+_0x1b7a87['message']);}}['setApiKeyManager'](_0x512216){const _0x18445b=a0_0x3e0030;this['apiKeyManager']=_0x512216,this['logger']?.[_0x18445b(0x21e)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x512216});}[a0_0x3e0030(0x24a)](_0x3c84ad){const _0x2d8bc1=a0_0x3e0030;this['agentPool']=_0x3c84ad,this[_0x2d8bc1(0x246)]?.['info'](_0x2d8bc1(0x1aa),{'hasAgentPool':!!_0x3c84ad});}async[a0_0x3e0030(0x1e3)](_0x3723ba,_0x24dcd5={}){const _0x5e7e95=a0_0x3e0030,_0x2f27bd='img-'+Date[_0x5e7e95(0x258)]()+'-'+Math[_0x5e7e95(0x209)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this[_0x5e7e95(0x255)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x3723ba||typeof _0x3723ba!=='string'||_0x3723ba[_0x5e7e95(0x1cc)]()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x14d0b5=_0x24dcd5[_0x5e7e95(0x1ba)]||_0x5e7e95(0x20a),_0x2079d0=_0x24dcd5['size']||_0x5e7e95(0x1ac),_0x5f3209=_0x24dcd5[_0x5e7e95(0x23e)]||_0x5e7e95(0x23d),_0x20a9c0=_0x24dcd5[_0x5e7e95(0x229)]||_0x5e7e95(0x213);this[_0x5e7e95(0x246)][_0x5e7e95(0x21e)](_0x5e7e95(0x1f7)+_0x14d0b5,{'requestId':_0x2f27bd,'model':_0x14d0b5,'size':_0x2079d0,'quality':_0x5f3209,'promptLength':_0x3723ba[_0x5e7e95(0x1c6)]});const _0x5465af={'prompt':_0x3723ba,'model':_0x14d0b5,'size':_0x2079d0,'quality':_0x5f3209,'response_format':_0x20a9c0,'n':0x1,'metadata':{'requestId':_0x2f27bd,'timestamp':new Date()['toISOString']()}},_0x5d461b=await this[_0x5e7e95(0x1de)](_0x5465af,_0x2f27bd,{'sessionId':_0x24dcd5['sessionId'],'platformProvided':_0x24dcd5[_0x5e7e95(0x1e0)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x5d461b[_0x5e7e95(0x250)]?.[0x0]?.[_0x5e7e95(0x213)]||null,'b64_json':_0x5d461b[_0x5e7e95(0x250)]?.[0x0]?.[_0x5e7e95(0x1ab)]||null,'model':_0x5d461b[_0x5e7e95(0x1ba)]||_0x14d0b5,'requestId':_0x2f27bd,'revisedPrompt':_0x5d461b['data']?.[0x0]?.[_0x5e7e95(0x1b3)]||_0x3723ba};}catch(_0x1a215f){this['_recordFailure'](),this[_0x5e7e95(0x246)][_0x5e7e95(0x1d0)]('Image\x20generation\x20failed:\x20'+_0x1a215f[_0x5e7e95(0x214)],{'requestId':_0x2f27bd,'model':_0x24dcd5[_0x5e7e95(0x1ba)],'error':_0x1a215f['stack']});throw _0x1a215f;}}async['checkServiceHealth'](){const _0x8832c7=a0_0x3e0030;try{const _0x468edb=await this['_makeAPIRequest']('/health',{},'health-check');return _0x468edb[_0x8832c7(0x20c)]==='healthy';}catch(_0x5da506){return![];}}async['switchAgentModel'](_0x57b0b2,_0x45c086){const _0x553761=a0_0x3e0030;try{if(!this['_isValidModel'](_0x45c086))throw new Error('Invalid\x20model:\x20'+_0x45c086);let _0x38e0ee=this[_0x553761(0x244)][_0x553761(0x242)](_0x57b0b2);!_0x38e0ee&&(_0x38e0ee=new ConversationManager(_0x57b0b2,this[_0x553761(0x246)]),this['conversationManagers']['set'](_0x57b0b2,_0x38e0ee));const _0x131380=await _0x38e0ee[_0x553761(0x23c)](_0x45c086),_0x18e051=await this[_0x553761(0x256)]?.[_0x553761(0x1c8)](_0x57b0b2);return _0x18e051&&(_0x18e051['currentModel']=_0x45c086,await this[_0x553761(0x256)][_0x553761(0x226)](_0x57b0b2)),this['logger']['info']('Agent\x20model\x20switched:\x20'+_0x57b0b2,{'newModel':_0x45c086,'messageCount':_0x131380['messages'][_0x553761(0x1c6)]}),{'success':!![],'agentId':_0x57b0b2,'newModel':_0x45c086,'conversation':_0x131380};}catch(_0x11ca32){this['logger'][_0x553761(0x1d0)](_0x553761(0x220)+_0x11ca32[_0x553761(0x214)],{'agentId':_0x57b0b2,'newModel':_0x45c086});throw _0x11ca32;}}[a0_0x3e0030(0x20e)](){const _0x1cc308=a0_0x3e0030,_0x55d96d={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS[_0x1cc308(0x1c7)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x1cc308(0x1c7)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x1cc308(0x1d7)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x1cc308(0x200)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x1cc308(0x233)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x1cc308(0x1ce)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x1cc308(0x24d),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x55d96d;}[a0_0x3e0030(0x241)](_0x4968b5,_0x503979,_0x5bc17f){const _0x4ca204=a0_0x3e0030,_0x128dcd=this['modelSpecs'][_0x503979]||{'provider':'AZURE'};let _0x3c9058;typeof _0x4968b5===_0x4ca204(0x208)?_0x3c9058=[{'role':'user','content':_0x4968b5}]:_0x3c9058=_0x4968b5[_0x4ca204(0x236)](_0xacaed3=>this[_0x4ca204(0x1ad)](_0xacaed3,_0x503979));switch(_0x128dcd[_0x4ca204(0x253)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x3c9058);case MODEL_PROVIDERS[_0x4ca204(0x233)]:return this[_0x4ca204(0x1f6)](_0x3c9058);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x3c9058);default:return _0x3c9058;}}['_formatSingleMessage'](_0x25db3e,_0x735bc2){const _0x20c6c7=a0_0x3e0030;return{'role':_0x25db3e[_0x20c6c7(0x22f)]||'user','content':_0x25db3e[_0x20c6c7(0x1b2)],'timestamp':_0x25db3e['timestamp']};}[a0_0x3e0030(0x21d)](_0x598753){return _0x598753['map'](_0x16694e=>{const _0x328e38=a0_0x170f;if(_0x16694e['role']===_0x328e38(0x227))return{'role':_0x328e38(0x1e4),'content':'System:\x20'+_0x16694e['content']};return _0x16694e;});}[a0_0x3e0030(0x1f6)](_0x510024){return _0x510024;}['_formatForAzure'](_0x4966a5){const _0x18a49c=a0_0x3e0030;return _0x4966a5[_0x18a49c(0x236)](_0x32aca3=>({..._0x32aca3,'content':typeof _0x32aca3[_0x18a49c(0x1b2)]===_0x18a49c(0x208)?_0x32aca3[_0x18a49c(0x1b2)]:JSON['stringify'](_0x32aca3['content'])}));}[a0_0x3e0030(0x251)](_0x1cc3ca){const _0x2f523a=a0_0x3e0030;this[_0x2f523a(0x246)]['debug']('Validating\x20model',{'model':_0x1cc3ca,'modelType':typeof _0x1cc3ca});if(this[_0x2f523a(0x1d8)][_0x1cc3ca]!==undefined)return!![];return this[_0x2f523a(0x246)]['warn']('Model\x20validation\x20failed',{'model':_0x1cc3ca,'availableModels':Object['keys'](this[_0x2f523a(0x1d8)])}),![];}async[a0_0x3e0030(0x24e)](_0x3efbca){return!![];}async[a0_0x3e0030(0x1c0)](_0x1db7aa,_0x3c2bfa){const _0xff12c3=a0_0x3e0030;return Math[_0xff12c3(0x1e8)](_0x1db7aa[_0xff12c3(0x1c6)]/0x4);}async[a0_0x3e0030(0x252)](_0x55e252,_0xca916c){const _0x160532=a0_0x3e0030,_0x4b21cd=_0xca916c*0x4;if(_0x55e252[_0x160532(0x1c6)]<=_0x4b21cd)return _0x55e252;return _0x55e252[_0x160532(0x235)](0x0,_0x4b21cd-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x607e8e,_0x4eca31){const _0x36558b=a0_0x3e0030,_0x1e782a=_0x607e8e['map'](_0x449706=>_0x449706[_0x36558b(0x22f)]+':\x20'+_0x449706[_0x36558b(0x1b2)])['join']('\x0a'),_0x29c76b=0x1f4;if(_0x1e782a['length']<=_0x29c76b)return _0x1e782a;return _0x1e782a['substring'](0x0,_0x29c76b)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x204ca0,_0x4d4769,_0xe8511a,_0xb1da53={}){const _0x4d5d1c=a0_0x3e0030,_0x4ee596='https://autopilot-api.azurewebsites.net/llm/chat';let _0x4eadd4,_0x2032cd=null,_0x5a0c43=null;this[_0x4d5d1c(0x246)]?.[_0x4d5d1c(0x21e)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x4d5d1c(0x1e5)],'sessionId':_0xb1da53['sessionId'],'hasSessionId':!!_0xb1da53[_0x4d5d1c(0x1d2)],'optionsKeys':Object[_0x4d5d1c(0x238)](_0xb1da53),'model':_0x4d4769['model']});if(this['apiKeyManager']&&_0xb1da53['sessionId']){const _0x181749=this[_0x4d5d1c(0x1e5)]['getKeysForRequest'](_0xb1da53['sessionId'],{'platformProvided':_0xb1da53[_0x4d5d1c(0x1e0)]||![],'vendor':this['_getVendorFromModel'](_0x4d4769[_0x4d5d1c(0x1ba)])});_0x2032cd=_0x181749['loxiaApiKey'],_0x5a0c43=_0x181749['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0xb1da53[_0x4d5d1c(0x1d2)],'hasLoxiaKey':!!_0x2032cd,'hasVendorKey':!!_0x5a0c43,'vendor':this['_getVendorFromModel'](_0x4d4769[_0x4d5d1c(0x1ba)])});}!_0x2032cd&&_0xb1da53[_0x4d5d1c(0x1b7)]&&(_0x2032cd=_0xb1da53[_0x4d5d1c(0x1b7)]);!_0x2032cd&&this[_0x4d5d1c(0x245)][_0x4d5d1c(0x1b7)]&&(_0x2032cd=this[_0x4d5d1c(0x245)]['apiKey']);if(!_0x2032cd)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x2ef7bc=_0x4d4769[_0x4d5d1c(0x1ba)],_0xe18460={'conversationId':_0xe8511a,'message':_0x4d4769[_0x4d5d1c(0x1e2)][_0x4d4769['messages']['length']-0x1]?.['content']||'','messages':_0x4d4769[_0x4d5d1c(0x1e2)],'model':_0x2ef7bc,'requestId':_0xe8511a,'options':_0x4d4769[_0x4d5d1c(0x243)]||{},'platformProvided':_0xb1da53[_0x4d5d1c(0x1e0)]||![]};_0x4d4769[_0x4d5d1c(0x227)]&&(_0xe18460['systemPrompt']=_0x4d4769['system']);_0xb1da53[_0x4d5d1c(0x1e0)]?_0xe18460[_0x4d5d1c(0x1b7)]=_0x2032cd:(_0x5a0c43&&(_0xe18460[_0x4d5d1c(0x205)]=_0x5a0c43),_0xb1da53['customApiKeys']&&(_0xe18460['customApiKeys']=_0xb1da53[_0x4d5d1c(0x1ff)]),_0xe18460[_0x4d5d1c(0x1b7)]=_0x2032cd);for(let _0x3f25dd=0x1;_0x3f25dd<=this[_0x4d5d1c(0x1af)];_0x3f25dd++){try{this['logger']['info'](_0x4d5d1c(0x1c4),{'url':_0x4ee596,'model':_0x4d4769[_0x4d5d1c(0x1ba)],'requestId':_0xe8511a,'attempt':_0x3f25dd,'hasApiKey':!!_0x2032cd});const _0x4eb289=await fetch(_0x4ee596,{'method':_0x4d5d1c(0x1ea),'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x2032cd,'X-Request-ID':_0xe8511a},'body':JSON['stringify'](_0xe18460),'timeout':this[_0x4d5d1c(0x22d)]});if(!_0x4eb289['ok']){const _0x489b65=await _0x4eb289[_0x4d5d1c(0x1f2)](),_0x3beab0=new Error(_0x4d5d1c(0x1db)+_0x4eb289['status']+':\x20'+_0x4eb289[_0x4d5d1c(0x1c5)]+(_0x489b65?_0x4d5d1c(0x1eb)+_0x489b65:''));_0x3beab0[_0x4d5d1c(0x20c)]=_0x4eb289[_0x4d5d1c(0x20c)];throw _0x3beab0;}const _0x5efdfa=await _0x4eb289['json']();return{'choices':[{'message':{'content':_0x5efdfa[_0x4d5d1c(0x1b2)]||'','role':'assistant'},'finish_reason':_0x5efdfa[_0x4d5d1c(0x24c)]||_0x4d5d1c(0x1c3)}],'usage':_0x5efdfa[_0x4d5d1c(0x1d6)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x5efdfa['model']||_0x4d4769['model'],'id':_0x5efdfa[_0x4d5d1c(0x232)]||_0xe8511a};}catch(_0xb2371a){_0x4eadd4=_0xb2371a,this[_0x4d5d1c(0x246)][_0x4d5d1c(0x1e6)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x3f25dd,'requestId':_0xe8511a,'error':_0xb2371a[_0x4d5d1c(0x214)],'status':_0xb2371a[_0x4d5d1c(0x20c)]});if(_0x3f25dd<this[_0x4d5d1c(0x1af)]){const _0x4fcbe3=Math['pow'](0x2,_0x3f25dd)*0x3e8;this[_0x4d5d1c(0x246)][_0x4d5d1c(0x1e6)](_0x4d5d1c(0x202)+_0x4fcbe3+'ms',{'attempt':_0x3f25dd,'requestId':_0xe8511a}),await new Promise(_0x171b9e=>setTimeout(_0x171b9e,_0x4fcbe3));}}}this['logger'][_0x4d5d1c(0x1d0)](_0x4d5d1c(0x20f),{'requestId':_0xe8511a,'error':_0x4eadd4['message']});const _0x357b5d=_0x4eadd4['message']&&_0x4eadd4['message'][_0x4d5d1c(0x1fc)]('No\x20API\x20key\x20configured');if(_0x357b5d)throw new Error('API\x20Configuration\x20Error:\x20'+_0x4eadd4['message']);return{'choices':[{'message':{'content':_0x4d5d1c(0x223)+_0x4eadd4['message'],'role':_0x4d5d1c(0x1b8)},'finish_reason':_0x4d5d1c(0x1c3)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4d4769['model'],'id':'error-'+_0xe8511a,'error':_0x4eadd4['message']};}async[a0_0x3e0030(0x1de)](_0xcb5c22,_0x2f4b2f,_0x547c53={}){const _0x50ba4c=a0_0x3e0030,_0x48b211=_0x50ba4c(0x1ae);let _0x17c652,_0x442afc=null,_0x478c62=null;this[_0x50ba4c(0x246)]?.[_0x50ba4c(0x21e)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x50ba4c(0x1e5)],'sessionId':_0x547c53[_0x50ba4c(0x1d2)],'hasSessionId':!!_0x547c53[_0x50ba4c(0x1d2)],'model':_0xcb5c22[_0x50ba4c(0x1ba)]});if(this[_0x50ba4c(0x1e5)]&&_0x547c53['sessionId']){const _0x3aba49=this['apiKeyManager'][_0x50ba4c(0x21a)](_0x547c53['sessionId'],{'platformProvided':_0x547c53['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0xcb5c22['model'])});_0x442afc=_0x3aba49['loxiaApiKey'],_0x478c62=_0x3aba49['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x547c53[_0x50ba4c(0x1d2)],'hasLoxiaKey':!!_0x442afc,'hasVendorKey':!!_0x478c62});}!_0x442afc&&_0x547c53[_0x50ba4c(0x1b7)]&&(_0x442afc=_0x547c53['apiKey']);!_0x442afc&&this['config']['apiKey']&&(_0x442afc=this['config'][_0x50ba4c(0x1b7)]);if(!_0x442afc)throw new Error(_0x50ba4c(0x247));const _0x265971={'prompt':_0xcb5c22[_0x50ba4c(0x1f3)],'model':_0xcb5c22['model']||'azure-openai-dalle3','size':_0xcb5c22['size'],'quality':_0xcb5c22[_0x50ba4c(0x23e)],'style':_0xcb5c22[_0x50ba4c(0x1d9)]||_0x50ba4c(0x1e7),'n':_0xcb5c22['n']||0x1,'requestId':_0x2f4b2f};for(let _0x3073f2=0x1;_0x3073f2<=this['retryAttempts'];_0x3073f2++){try{this['logger']['info']('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x48b211,'model':_0xcb5c22['model'],'requestId':_0x2f4b2f,'attempt':_0x3073f2,'hasApiKey':!!_0x442afc});const _0x256576=await fetch(_0x48b211,{'method':_0x50ba4c(0x1ea),'headers':{'Content-Type':'application/json','Authorization':_0x50ba4c(0x201)+_0x442afc,'X-Request-ID':_0x2f4b2f},'body':JSON[_0x50ba4c(0x1bf)](_0x265971),'timeout':this[_0x50ba4c(0x22d)]*0x2});if(!_0x256576['ok']){const _0x1db09a=await _0x256576[_0x50ba4c(0x1f2)](),_0x512c11=new Error(_0x50ba4c(0x1db)+_0x256576['status']+':\x20'+_0x256576['statusText']+(_0x1db09a?_0x50ba4c(0x1eb)+_0x1db09a:''));_0x512c11[_0x50ba4c(0x20c)]=_0x256576['status'];throw _0x512c11;}const _0x446893=await _0x256576[_0x50ba4c(0x221)]();return{'data':_0x446893[_0x50ba4c(0x234)]||[],'model':_0x446893[_0x50ba4c(0x1ba)]||_0xcb5c22[_0x50ba4c(0x1ba)],'created':_0x446893['created']||Date[_0x50ba4c(0x258)](),'usage':_0x446893['usage']};}catch(_0xe7ef70){_0x17c652=_0xe7ef70,this['logger']['warn'](_0x50ba4c(0x231),{'attempt':_0x3073f2,'requestId':_0x2f4b2f,'error':_0xe7ef70['message'],'status':_0xe7ef70[_0x50ba4c(0x20c)]});if(_0x3073f2<this['retryAttempts']){const _0x5efeb6=Math['pow'](0x2,_0x3073f2)*0x3e8;this[_0x50ba4c(0x246)][_0x50ba4c(0x1e6)]('Retrying\x20in\x20'+_0x5efeb6+'ms',{'attempt':_0x3073f2,'requestId':_0x2f4b2f}),await new Promise(_0xdb1cca=>setTimeout(_0xdb1cca,_0x5efeb6));}}}this['logger'][_0x50ba4c(0x1d0)](_0x50ba4c(0x207),{'requestId':_0x2f4b2f,'error':_0x17c652['message']});throw new Error(_0x50ba4c(0x1b5)+_0x17c652[_0x50ba4c(0x214)]);}async[a0_0x3e0030(0x1ec)](_0x22a694){await new Promise(_0xd0318e=>setTimeout(_0xd0318e,0x64));}async['_handleRateLimit'](_0x4ebb61){const _0x4c219b=0xea60;this['logger']['info']('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x4c219b+'ms',_0x4ebb61),await new Promise(_0x599b25=>setTimeout(_0x599b25,_0x4c219b));}async['_handleServiceUnavailable'](_0x543502){const _0x1b26b2=a0_0x3e0030;this[_0x1b26b2(0x1ee)]();const _0x37271a=0x7530;this['logger'][_0x1b26b2(0x21e)]('Service\x20unavailable,\x20waiting\x20'+_0x37271a+'ms',_0x543502),await new Promise(_0x20d217=>setTimeout(_0x20d217,_0x37271a));}['_isCircuitBreakerOpen'](){const _0x462339=a0_0x3e0030;if(!this[_0x462339(0x22e)]['isOpen'])return![];const _0x1bcc9c=Date[_0x462339(0x258)]()-this['circuitBreaker']['lastFailureTime'];if(_0x1bcc9c>this['circuitBreaker'][_0x462339(0x22d)])return this['circuitBreaker']['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}[a0_0x3e0030(0x1ee)](){const _0x2cb137=a0_0x3e0030;this[_0x2cb137(0x22e)]['failures']++,this[_0x2cb137(0x22e)]['lastFailureTime']=Date['now'](),this[_0x2cb137(0x22e)][_0x2cb137(0x217)]>=this[_0x2cb137(0x22e)][_0x2cb137(0x1cf)]&&(this['circuitBreaker'][_0x2cb137(0x1e9)]=!![],this['logger'][_0x2cb137(0x1e6)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x3e0030(0x1f8)](){const _0x50cd3c=a0_0x3e0030;this['circuitBreaker'][_0x50cd3c(0x217)]>0x0&&(this[_0x50cd3c(0x22e)]['failures']=0x0,this['circuitBreaker']['isOpen']=![],this[_0x50cd3c(0x246)][_0x50cd3c(0x21e)](_0x50cd3c(0x224)));}[a0_0x3e0030(0x204)](_0x47a8ad){const _0x209244=a0_0x3e0030;if(!_0x47a8ad)return null;const _0x394122=_0x47a8ad['toLowerCase']();if(_0x394122['includes']('anthropic')||_0x394122[_0x209244(0x1fc)]('claude'))return'anthropic';else{if(_0x394122['includes']('openai')||_0x394122[_0x209244(0x1fc)](_0x209244(0x21b)))return'openai';else{if(_0x394122['includes'](_0x209244(0x1fa)))return _0x209244(0x1fa);else{if(_0x394122['includes'](_0x209244(0x1dd)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x3744d1,_0x43ef5a){const _0x325e98=a0_0x3e0030;this['agentId']=_0x3744d1,this['logger']=_0x43ef5a,this[_0x325e98(0x1f0)]=new Map();}async['switchModel'](_0x1aee09){return{'messages':[],'model':_0x1aee09,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
@@ -1 +1 @@
1
- const a0_0x44eec7=a0_0x5baa;(function(_0xafea70,_0x1c59c0){const _0x5ba0d3=a0_0x5baa,_0xccb200=_0xafea70();while(!![]){try{const _0x4d74fd=-parseInt(_0x5ba0d3(0x69))/0x1*(parseInt(_0x5ba0d3(0x6a))/0x2)+-parseInt(_0x5ba0d3(0x6d))/0x3+parseInt(_0x5ba0d3(0x71))/0x4*(parseInt(_0x5ba0d3(0x7f))/0x5)+-parseInt(_0x5ba0d3(0x74))/0x6+parseInt(_0x5ba0d3(0x73))/0x7+-parseInt(_0x5ba0d3(0x88))/0x8*(parseInt(_0x5ba0d3(0x8a))/0x9)+parseInt(_0x5ba0d3(0x6f))/0xa;if(_0x4d74fd===_0x1c59c0)break;else _0xccb200['push'](_0xccb200['shift']());}catch(_0x4b1a23){_0xccb200['push'](_0xccb200['shift']());}}}(a0_0x20f6,0x7fbbd));class ApiKeyManager{constructor(_0x3bc4c1){this['logger']=_0x3bc4c1,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x44eec7(0x7a)](_0x46d807,_0x2ce6ad){const _0x1c51d6=a0_0x44eec7;if(!_0x46d807)throw new Error(_0x1c51d6(0x6e));this[_0x1c51d6(0x78)][_0x1c51d6(0x84)](_0x46d807,{'loxiaApiKey':_0x2ce6ad['loxiaApiKey']||null,'vendorKeys':_0x2ce6ad[_0x1c51d6(0x85)]||{},'updatedAt':new Date()[_0x1c51d6(0x67)]()}),this['logger']?.[_0x1c51d6(0x76)](_0x1c51d6(0x87),{'sessionId':_0x46d807,'hasLoxiaKey':!!_0x2ce6ad['loxiaApiKey'],'vendorKeys':Object[_0x1c51d6(0x80)](_0x2ce6ad['vendorKeys']||{}),'timestamp':new Date()[_0x1c51d6(0x67)]()});}[a0_0x44eec7(0x79)](_0x291a6f){const _0x4f6b11=a0_0x44eec7;if(!_0x291a6f)return this[_0x4f6b11(0x72)];const _0x179aeb=this[_0x4f6b11(0x78)][_0x4f6b11(0x6b)](_0x291a6f);if(_0x179aeb)return _0x179aeb;return this['globalKeys'];}['getKeysForRequest'](_0x25ef4d,_0x1c682f={}){const _0x537fb9=a0_0x44eec7,_0x1bafdf=this['getSessionKeys'](_0x25ef4d),_0x53951c={'loxiaApiKey':_0x1bafdf['loxiaApiKey'],'vendorApiKey':null};return!_0x1c682f[_0x537fb9(0x81)]&&_0x1c682f[_0x537fb9(0x7e)]&&_0x1bafdf[_0x537fb9(0x85)]&&(_0x53951c['vendorApiKey']=_0x1bafdf['vendorKeys'][_0x1c682f[_0x537fb9(0x7e)]]),_0x53951c;}[a0_0x44eec7(0x75)](_0x39ef5c){const _0x38cfda=a0_0x44eec7;if(this[_0x38cfda(0x78)]['delete'](_0x39ef5c))return this['logger']?.['info']('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x39ef5c}),!![];return![];}[a0_0x44eec7(0x68)](_0x13dc30){const _0x1db569=a0_0x44eec7;this[_0x1db569(0x72)]={'loxiaApiKey':_0x13dc30['loxiaApiKey']||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this[_0x1db569(0x72)]['vendorKeys'],..._0x13dc30['vendorKeys']||{}}},this[_0x1db569(0x70)]?.[_0x1db569(0x76)]('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0x1db569(0x72)]['loxiaApiKey'],'vendorKeys':Object['keys'](this['globalKeys']['vendorKeys'])});}['getActiveSessions'](){const _0x14428a=a0_0x44eec7;return Array['from'](this[_0x14428a(0x78)][_0x14428a(0x7c)]())['map'](([_0x5758b9,_0x8eaf77])=>({'sessionId':_0x5758b9,'hasLoxiaKey':!!_0x8eaf77[_0x14428a(0x86)],'vendorKeys':Object[_0x14428a(0x80)](_0x8eaf77['vendorKeys']||{}),'updatedAt':_0x8eaf77[_0x14428a(0x77)]}));}[a0_0x44eec7(0x83)](_0x3a612e=0x18*0x3c*0x3c*0x3e8){const _0x8920b9=a0_0x44eec7,_0x3ec470=Date['now'](),_0x385592=[];for(const [_0x3f63e1,_0x190033]of this[_0x8920b9(0x78)]['entries']()){const _0xe3357c=_0x3ec470-new Date(_0x190033[_0x8920b9(0x77)])[_0x8920b9(0x7d)]();_0xe3357c>_0x3a612e&&_0x385592[_0x8920b9(0x82)](_0x3f63e1);}return _0x385592['forEach'](_0x3d80e9=>{const _0x967502=_0x8920b9;this[_0x967502(0x78)][_0x967502(0x7b)](_0x3d80e9);}),_0x385592[_0x8920b9(0x6c)]>0x0&&this['logger']?.['info']('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x385592[_0x8920b9(0x6c)],'remainingSessions':this['sessionKeys'][_0x8920b9(0x89)]}),_0x385592[_0x8920b9(0x6c)];}}function a0_0x5baa(_0x13100c,_0x5ba549){_0x13100c=_0x13100c-0x67;const _0x20f62a=a0_0x20f6();let _0x5baa34=_0x20f62a[_0x13100c];if(a0_0x5baa['GEJlvr']===undefined){var _0xc23035=function(_0x4b6a64){const _0x3162e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3bc4c1='',_0x46d807='';for(let _0x2ce6ad=0x0,_0x291a6f,_0x179aeb,_0x25ef4d=0x0;_0x179aeb=_0x4b6a64['charAt'](_0x25ef4d++);~_0x179aeb&&(_0x291a6f=_0x2ce6ad%0x4?_0x291a6f*0x40+_0x179aeb:_0x179aeb,_0x2ce6ad++%0x4)?_0x3bc4c1+=String['fromCharCode'](0xff&_0x291a6f>>(-0x2*_0x2ce6ad&0x6)):0x0){_0x179aeb=_0x3162e5['indexOf'](_0x179aeb);}for(let _0x1c682f=0x0,_0x1bafdf=_0x3bc4c1['length'];_0x1c682f<_0x1bafdf;_0x1c682f++){_0x46d807+='%'+('00'+_0x3bc4c1['charCodeAt'](_0x1c682f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46d807);};a0_0x5baa['aAqmRn']=_0xc23035,a0_0x5baa['sIRcLR']={},a0_0x5baa['GEJlvr']=!![];}const _0x462117=_0x20f62a[0x0],_0x16936e=_0x13100c+_0x462117,_0x361669=a0_0x5baa['sIRcLR'][_0x16936e];return!_0x361669?(_0x5baa34=a0_0x5baa['aAqmRn'](_0x5baa34),a0_0x5baa['sIRcLR'][_0x16936e]=_0x5baa34):_0x5baa34=_0x361669,_0x5baa34;}function a0_0x20f6(){const _0x49a423=['z2v0','BgvUz3rO','mtGWnJq1nNL6yvnQCW','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','mtq4mtiZntbbuffUC0e','Bg9Nz2vY','mJK0nda0DgP1EhLe','z2XVyMfSs2v5CW','mJqWotu2ohLxDMHowq','mZyWotq4mgT3A21RuW','CMvTB3zLu2vZC2LVBKTLExm','Aw5MBW','DxbKyxrLzef0','C2vZC2LVBKTLExm','z2v0u2vZC2LVBKTLExm','C2v0u2vZC2LVBKTLExm','zgvSzxrL','zw50CMLLCW','z2v0vgLTzq','DMvUzg9Y','nJv3CuPOB2K','A2v5CW','CgXHDgzVCM1qCM92AwrLza','ChvZAa','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','C2v0','DMvUzg9Ys2v5CW','Bg94AwfbCgLlzxK','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mZC2CMDcs2jO','C2L6zq','mteXotqYuxz5q09p','Dg9ju09tDhjPBMC','C2v0r2XVyMfSs2v5CW','mtyYmZndtenVqNa','ntHVrLPSrMm'];a0_0x20f6=function(){return _0x49a423;};return a0_0x20f6();}export default ApiKeyManager;
1
+ const a0_0x32a75f=a0_0x3cc4;(function(_0x16be96,_0x3b8c50){const _0xe9b5e4=a0_0x3cc4,_0x284249=_0x16be96();while(!![]){try{const _0x3279ed=parseInt(_0xe9b5e4(0x121))/0x1*(-parseInt(_0xe9b5e4(0x118))/0x2)+parseInt(_0xe9b5e4(0x11b))/0x3+parseInt(_0xe9b5e4(0x134))/0x4+parseInt(_0xe9b5e4(0x124))/0x5+-parseInt(_0xe9b5e4(0x131))/0x6*(-parseInt(_0xe9b5e4(0x133))/0x7)+parseInt(_0xe9b5e4(0x136))/0x8+parseInt(_0xe9b5e4(0x132))/0x9*(-parseInt(_0xe9b5e4(0x11f))/0xa);if(_0x3279ed===_0x3b8c50)break;else _0x284249['push'](_0x284249['shift']());}catch(_0x3491b7){_0x284249['push'](_0x284249['shift']());}}}(a0_0x1ab5,0xd9a7a));function a0_0x3cc4(_0x2dc9cf,_0x2ce59c){_0x2dc9cf=_0x2dc9cf-0x118;const _0x1ab5ab=a0_0x1ab5();let _0x3cc411=_0x1ab5ab[_0x2dc9cf];if(a0_0x3cc4['oHVVZA']===undefined){var _0x58cc4e=function(_0x349bcb){const _0x44ee83='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2aab2c='',_0x3c0d92='';for(let _0xed99ef=0x0,_0x21b796,_0x42554f,_0x2df3bb=0x0;_0x42554f=_0x349bcb['charAt'](_0x2df3bb++);~_0x42554f&&(_0x21b796=_0xed99ef%0x4?_0x21b796*0x40+_0x42554f:_0x42554f,_0xed99ef++%0x4)?_0x2aab2c+=String['fromCharCode'](0xff&_0x21b796>>(-0x2*_0xed99ef&0x6)):0x0){_0x42554f=_0x44ee83['indexOf'](_0x42554f);}for(let _0x4e856f=0x0,_0x5afa71=_0x2aab2c['length'];_0x4e856f<_0x5afa71;_0x4e856f++){_0x3c0d92+='%'+('00'+_0x2aab2c['charCodeAt'](_0x4e856f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c0d92);};a0_0x3cc4['yxaGfh']=_0x58cc4e,a0_0x3cc4['XaZBqU']={},a0_0x3cc4['oHVVZA']=!![];}const _0x520050=_0x1ab5ab[0x0],_0x3a89fd=_0x2dc9cf+_0x520050,_0x2097ad=a0_0x3cc4['XaZBqU'][_0x3a89fd];return!_0x2097ad?(_0x3cc411=a0_0x3cc4['yxaGfh'](_0x3cc411),a0_0x3cc4['XaZBqU'][_0x3a89fd]=_0x3cc411):_0x3cc411=_0x2097ad,_0x3cc411;}function a0_0x1ab5(){const _0xa45171=['DMvUzg9Ys2v5CW','ntCXmdeXnw5qqLr3rG','C2v0','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','z2v0u2vZC2LVBKTLExm','C2L6zq','C2v0u2vZC2LVBKTLExm','zgvSzxrL','Bg9Nz2vY','z2XVyMfSs2v5CW','A2v5CW','Dg9ju09tDhjPBMC','ChvZAa','nJCXodj0q2f5Aw8','mtHHtKfuuxy','ote3tgf0rwXY','nJK5nti3mLrWzuDzBW','Aw5MBW','mta0ntiWntz5sgvHy3C','CgXHDgzVCM1qCM92AwrLza','z2v0vgLTzq','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','z2v0','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mJy0ndK3ofvHDvDqrq','zM9YrwfJAa','C2vZC2LVBKTLExm','mZy5nZiZnMnHzgHSqq','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','Bg94AwfbCgLlzxK','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','mJm0mti4mJbhrgDVAKy','DMvUzg9Y','mwXvA1fLBq','BgvUz3rO'];a0_0x1ab5=function(){return _0xa45171;};return a0_0x1ab5();}class ApiKeyManager{constructor(_0x2aab2c){const _0x181124=a0_0x3cc4;this['logger']=_0x2aab2c,this[_0x181124(0x11a)]=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x32a75f(0x12a)](_0x3c0d92,_0xed99ef){const _0x109205=a0_0x32a75f;if(!_0x3c0d92)throw new Error(_0x109205(0x139));this['sessionKeys'][_0x109205(0x125)](_0x3c0d92,{'loxiaApiKey':_0xed99ef['loxiaApiKey']||null,'vendorKeys':_0xed99ef['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this[_0x109205(0x12c)]?.[_0x109205(0x135)](_0x109205(0x13b),{'sessionId':_0x3c0d92,'hasLoxiaKey':!!_0xed99ef[_0x109205(0x11d)],'vendorKeys':Object['keys'](_0xed99ef['vendorKeys']||{}),'timestamp':new Date()[_0x109205(0x12f)]()});}[a0_0x32a75f(0x128)](_0x21b796){const _0xdee655=a0_0x32a75f;if(!_0x21b796)return this['globalKeys'];const _0x42554f=this['sessionKeys'][_0xdee655(0x13a)](_0x21b796);if(_0x42554f)return _0x42554f;return this['globalKeys'];}['getKeysForRequest'](_0x2df3bb,_0x4e856f={}){const _0x1e0159=a0_0x32a75f,_0x5afa71=this[_0x1e0159(0x128)](_0x2df3bb),_0x21b51a={'loxiaApiKey':_0x5afa71['loxiaApiKey'],'vendorApiKey':null};return!_0x4e856f[_0x1e0159(0x137)]&&_0x4e856f['vendor']&&_0x5afa71[_0x1e0159(0x123)]&&(_0x21b51a['vendorApiKey']=_0x5afa71['vendorKeys'][_0x4e856f[_0x1e0159(0x120)]]),_0x21b51a;}['removeSessionKeys'](_0x978d51){const _0x5f0f6c=a0_0x32a75f;if(this[_0x5f0f6c(0x11a)]['delete'](_0x978d51))return this['logger']?.['info'](_0x5f0f6c(0x127),{'sessionId':_0x978d51}),!![];return![];}['setGlobalKeys'](_0x306848){const _0x3944c3=a0_0x32a75f;this[_0x3944c3(0x12d)]={'loxiaApiKey':_0x306848[_0x3944c3(0x11d)]||this['globalKeys'][_0x3944c3(0x11d)],'vendorKeys':{...this[_0x3944c3(0x12d)][_0x3944c3(0x123)],..._0x306848['vendorKeys']||{}}},this['logger']?.[_0x3944c3(0x135)](_0x3944c3(0x126),{'hasLoxiaKey':!!this[_0x3944c3(0x12d)]['loxiaApiKey'],'vendorKeys':Object[_0x3944c3(0x12e)](this[_0x3944c3(0x12d)]['vendorKeys'])});}['getActiveSessions'](){const _0x564722=a0_0x32a75f;return Array['from'](this[_0x564722(0x11a)]['entries']())['map'](([_0x4b4299,_0x25aef4])=>({'sessionId':_0x4b4299,'hasLoxiaKey':!!_0x25aef4['loxiaApiKey'],'vendorKeys':Object['keys'](_0x25aef4['vendorKeys']||{}),'updatedAt':_0x25aef4['updatedAt']}));}[a0_0x32a75f(0x11e)](_0x4d37ee=0x18*0x3c*0x3c*0x3e8){const _0x82831=a0_0x32a75f,_0xb89f27=Date['now'](),_0x3eb0fa=[];for(const [_0x3e269e,_0x297b34]of this['sessionKeys']['entries']()){const _0x544a17=_0xb89f27-new Date(_0x297b34['updatedAt'])[_0x82831(0x138)]();_0x544a17>_0x4d37ee&&_0x3eb0fa[_0x82831(0x130)](_0x3e269e);}return _0x3eb0fa[_0x82831(0x119)](_0x4e2455=>{const _0x4890b3=_0x82831;this['sessionKeys'][_0x4890b3(0x12b)](_0x4e2455);}),_0x3eb0fa['length']>0x0&&this[_0x82831(0x12c)]?.['info'](_0x82831(0x11c),{'expiredSessions':_0x3eb0fa['length'],'remainingSessions':this['sessionKeys'][_0x82831(0x129)]}),_0x3eb0fa[_0x82831(0x122)];}}export default ApiKeyManager;
@@ -1 +1 @@
1
- function a0_0x36b7(_0x5b43cc,_0x2a697b){_0x5b43cc=_0x5b43cc-0x12e;const _0x313d51=a0_0x313d();let _0x36b7ec=_0x313d51[_0x5b43cc];if(a0_0x36b7['tyewPy']===undefined){var _0x1a6a5=function(_0x140d1c){const _0x161b2d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d5997='',_0x2834a2='';for(let _0x3cef39=0x0,_0x2be70e,_0xefe6db,_0x2c6e68=0x0;_0xefe6db=_0x140d1c['charAt'](_0x2c6e68++);~_0xefe6db&&(_0x2be70e=_0x3cef39%0x4?_0x2be70e*0x40+_0xefe6db:_0xefe6db,_0x3cef39++%0x4)?_0x3d5997+=String['fromCharCode'](0xff&_0x2be70e>>(-0x2*_0x3cef39&0x6)):0x0){_0xefe6db=_0x161b2d['indexOf'](_0xefe6db);}for(let _0x3d16ae=0x0,_0x36a753=_0x3d5997['length'];_0x3d16ae<_0x36a753;_0x3d16ae++){_0x2834a2+='%'+('00'+_0x3d5997['charCodeAt'](_0x3d16ae)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2834a2);};a0_0x36b7['RufCHz']=_0x1a6a5,a0_0x36b7['CCumzs']={},a0_0x36b7['tyewPy']=!![];}const _0x3d1314=_0x313d51[0x0],_0x468a7d=_0x5b43cc+_0x3d1314,_0x410705=a0_0x36b7['CCumzs'][_0x468a7d];return!_0x410705?(_0x36b7ec=a0_0x36b7['RufCHz'](_0x36b7ec),a0_0x36b7['CCumzs'][_0x468a7d]=_0x36b7ec):_0x36b7ec=_0x410705,_0x36b7ec;}function a0_0x313d(){const _0x4ed61a=['mZq3mtK4nKLPq3fyDG','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','CMvMCMvZAeLUDgvYDMfS','DMfSDwvZ','yw5HBhLZAxm','rMfPBgvKihrVigLUAxrPywXPEMuGyMvUy2HTyxjRihnLCNzPy2uGlsbotYbgquXmqKfdsW','mtiXotq4mK9bAhrhEa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','x2DLDezHC3rLC3rnB2rLBa','r0vu','Bg9Nz2vY','z2v0qMvUy2HTyxjRCW','DgfZA3m','y3jLyxrPDMu','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BwfW','y29UzMLN','nZjqDwn1v0O','mtqWmJrguu5svg0','m1nZEKvOqq','x2DLDe1VC3rdB3n0rwzMAwnPzw50','zxjYB3i','Bw9KzwXZ','qMvHCMvYia','BgvUz3rO','y29ZDa','Aw5MBW','Dw5RBM93BG','AxnmB2fKAw5N','yxbWBgLJyxrPB24VANnVBG','C291CMnL','ndu1mdmWvgLbtvnS','otKYmde1EgTsAxzn','C3rHDhvZ','x2DLDejLC3rnB2rLBezVCLrHC2S','yMvUy2HTyxjRCW','Bg9HzejLBMnOBwfYA3m','Bwf4','A2v5CW','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','mty2mJa5ouLQqwLxEG','nda0whbyrefw','BgfZDfvWzgf0zwq','C29YDa'];a0_0x313d=function(){return _0x4ed61a;};return a0_0x313d();}const a0_0x278d50=a0_0x36b7;(function(_0x26d1a3,_0x17fc9d){const _0x214f4f=a0_0x36b7,_0x59a112=_0x26d1a3();while(!![]){try{const _0x174ad3=parseInt(_0x214f4f(0x148))/0x1+-parseInt(_0x214f4f(0x13f))/0x2*(parseInt(_0x214f4f(0x133))/0x3)+-parseInt(_0x214f4f(0x149))/0x4+-parseInt(_0x214f4f(0x140))/0x5+parseInt(_0x214f4f(0x152))/0x6+-parseInt(_0x214f4f(0x14c))/0x7+parseInt(_0x214f4f(0x132))/0x8*(parseInt(_0x214f4f(0x131))/0x9);if(_0x174ad3===_0x17fc9d)break;else _0x59a112['push'](_0x59a112['shift']());}catch(_0x58288e){_0x59a112['push'](_0x59a112['shift']());}}}(a0_0x313d,0xe9ba9));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x3d5997,_0x2834a2){const _0x2a0f87=a0_0x36b7;this[_0x2a0f87(0x130)]=_0x3d5997,this['logger']=_0x2834a2,this[_0x2a0f87(0x143)]=null,this[_0x2a0f87(0x14a)]=null,this[_0x2a0f87(0x13c)]=![],this['azureBackendUrl']=_0x2a0f87(0x153),this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x2a0f87(0x12e)];}async['initialize'](){const _0x51bb7b=a0_0x36b7;try{await this[_0x51bb7b(0x144)](),this['_scheduleRefresh'](),this['logger'][_0x51bb7b(0x13a)]('Benchmark\x20service\x20initialized');}catch(_0x3cef39){this[_0x51bb7b(0x156)]['error'](_0x51bb7b(0x151),{'error':_0x3cef39['message']}),this['benchmarks']=null;}}['getBenchmarks'](){const _0x517ec5=a0_0x36b7;if(!this[_0x517ec5(0x143)])return this[_0x517ec5(0x156)][_0x517ec5(0x135)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0xb62ece=a0_0x36b7;if(this['isLoading']){this['logger']['debug'](_0xb62ece(0x147));return;}this['isLoading']=!![];try{const _0x2be70e=await this['_fetchFromAzureBackend']();if(_0x2be70e)this[_0xb62ece(0x143)]=_0x2be70e,this[_0xb62ece(0x14a)]=new Date(),this[_0xb62ece(0x156)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x2be70e[_0xb62ece(0x136)]?.[_0xb62ece(0x138)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0xefe6db){this[_0xb62ece(0x156)][_0xb62ece(0x135)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0xefe6db['message'],'endpoint':url}),!this['benchmarks']&&(this[_0xb62ece(0x143)]=null);}finally{this[_0xb62ece(0x13c)]=![];}}['getBenchmarkTable'](){const _0x3e21d4=a0_0x36b7,_0x2c6e68=this[_0x3e21d4(0x157)]();return{'lastUpdated':this[_0x3e21d4(0x14a)]?.['toISOString']()||'unknown','models':_0x2c6e68[_0x3e21d4(0x136)]||[],'tasks':_0x2c6e68['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x2c6e68)};}['needsRefresh'](){const _0x22f507=a0_0x36b7;if(!this[_0x22f507(0x14a)])return!![];const _0x3d16ae=Date['now']()-this[_0x22f507(0x14a)]['getTime']();return _0x3d16ae>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0x529367=a0_0x36b7,_0x36a753=this['azureBackendUrl']+'/llm/model-benchmarks';let _0xf1dc73=null;this['config']['apiKey']&&(_0xf1dc73=this[_0x529367(0x130)]['apiKey']);const _0x1dc38f={'method':_0x529367(0x155),'headers':{'Content-Type':_0x529367(0x13d),..._0xf1dc73&&{'Authorization':_0x529367(0x137)+_0xf1dc73}},'timeout':0x2710};this[_0x529367(0x156)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x36a753});const _0x449d68=await fetch(_0x36a753,_0x1dc38f);if(!_0x449d68['ok'])throw new Error('HTTP\x20'+_0x449d68[_0x529367(0x141)]+':\x20'+_0x449d68['statusText']);const _0x26f333=await _0x449d68['json']();return _0x26f333;}['_generateBenchmarkSummary'](_0x13637f){const _0x48c3f1=a0_0x36b7,_0x541029=_0x13637f[_0x48c3f1(0x136)]||[];return{'totalModels':_0x541029[_0x48c3f1(0x138)],'taskCategories':Object[_0x48c3f1(0x146)](_0x13637f[_0x48c3f1(0x158)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x541029,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x541029,_0x48c3f1(0x150)),'bestForQuickTasks':this[_0x48c3f1(0x142)](_0x541029,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x541029,_0x48c3f1(0x159)),'fastestModel':this['_getFastestModel'](_0x541029),'mostCostEfficient':this[_0x48c3f1(0x134)](_0x541029)};}[a0_0x278d50(0x142)](_0x6a643a,_0x34d7ac){const _0x25da30=a0_0x278d50;return _0x6a643a['filter'](_0x485306=>_0x485306['tasks']&&_0x485306[_0x25da30(0x158)][_0x34d7ac])['sort']((_0x41af76,_0x407cf5)=>(_0x407cf5[_0x25da30(0x158)][_0x34d7ac]['score']||0x0)-(_0x41af76[_0x25da30(0x158)][_0x34d7ac]['score']||0x0))[0x0]?.['name']||_0x25da30(0x13b);}[a0_0x278d50(0x154)](_0x2b7417){const _0x36cab5=a0_0x278d50,_0x34dc8e={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x2b7417['sort']((_0x4ac3e9,_0x1aac14)=>{const _0x2f954f=a0_0x36b7,_0xa5c086=Math[_0x2f954f(0x145)](...Object[_0x2f954f(0x14f)](_0x4ac3e9['tasks']||{})[_0x2f954f(0x12f)](_0x11a09e=>_0x34dc8e[_0x11a09e['speed']]||0x0)),_0xa91ddf=Math[_0x2f954f(0x145)](...Object['values'](_0x1aac14[_0x2f954f(0x158)]||{})['map'](_0x2e9225=>_0x34dc8e[_0x2e9225['speed']]||0x0));return _0xa91ddf-_0xa5c086;})[0x0]?.['name']||_0x36cab5(0x13b);}[a0_0x278d50(0x134)](_0xc7c19c){const _0x4ea0b=a0_0x278d50,_0x232f8f={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0xc7c19c[_0x4ea0b(0x14b)]((_0x54ebbb,_0x246868)=>{const _0x709e86=_0x4ea0b,_0x249d3c=Math['max'](...Object['values'](_0x54ebbb[_0x709e86(0x158)]||{})[_0x709e86(0x12f)](_0x5ee209=>_0x232f8f[_0x5ee209[_0x709e86(0x139)]]||0x0)),_0x2fe197=Math['max'](...Object['values'](_0x246868[_0x709e86(0x158)]||{})['map'](_0x27992c=>_0x232f8f[_0x27992c['cost']]||0x0));return _0x2fe197-_0x249d3c;})[0x0]?.['name']||_0x4ea0b(0x13b);}['_scheduleRefresh'](){const _0x480df7=a0_0x278d50;setInterval(async()=>{const _0x3f2e0e=a0_0x36b7;this['needsRefresh']()&&(this['logger']['debug'](_0x3f2e0e(0x14d)),await this[_0x3f2e0e(0x144)]());},this[_0x480df7(0x14e)]);}async['forceRefresh'](){const _0x107910=a0_0x278d50;this['logger'][_0x107910(0x13a)]('Force\x20refreshing\x20benchmark\x20data'),await this[_0x107910(0x144)]();}['getStatus'](){const _0x35916b=a0_0x278d50;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.['toISOString']()||null,'source':this['benchmarks']?.[_0x35916b(0x13e)]||_0x35916b(0x13b),'modelCount':this[_0x35916b(0x143)]?.[_0x35916b(0x136)]?.[_0x35916b(0x138)]||0x0,'isLoading':this[_0x35916b(0x13c)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
1
+ const a0_0x4dfa4b=a0_0x8c3c;(function(_0x2cc64c,_0x31789f){const _0x37723f=a0_0x8c3c,_0x51d6bb=_0x2cc64c();while(!![]){try{const _0x3c0d31=-parseInt(_0x37723f(0x10f))/0x1*(-parseInt(_0x37723f(0x114))/0x2)+parseInt(_0x37723f(0x104))/0x3+-parseInt(_0x37723f(0x10a))/0x4+parseInt(_0x37723f(0x124))/0x5+-parseInt(_0x37723f(0x12f))/0x6*(parseInt(_0x37723f(0x12b))/0x7)+-parseInt(_0x37723f(0xfb))/0x8+parseInt(_0x37723f(0x11a))/0x9*(-parseInt(_0x37723f(0x111))/0xa);if(_0x3c0d31===_0x31789f)break;else _0x51d6bb['push'](_0x51d6bb['shift']());}catch(_0x34b774){_0x51d6bb['push'](_0x51d6bb['shift']());}}}(a0_0xff92,0x23ba7));function a0_0xff92(){const _0x39b56c=['BMfTzq','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','Bg9HzejLBMnOBwfYA3m','yxbWBgLJyxrPB24VANnVBG','yMvUy2HTyxjRCW','CMvMCMvZAeLUDgvYDMfS','A2v5CW','z2v0vgLTzq','ndC3ote4uengzfnY','Aw5PDgLHBgL6zq','C29YDa','BMvLzhnszwzYzxnO','C291CMnL','DMfSDwvZ','mtG1otiWsMjlvvbe','x2DLDejLC3rnB2rLBezVCLrHC2S','C3bLzwq','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','BgvUz3rO','mJmWmZe1yLn6qxLW','BwfW','mtbAzhzIwvC','DgfZA3m','z2v0u3rHDhvZ','mMrns0jluG','yxP1CMvcywnRzw5KvxjS','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','y29UzMLN','zxjYB3i','x2DLDezHC3rLC3rnB2rLBa','mtKXnJi3muTQCLz5Aa','Bwf4','y3jLyxrPDMu','CxvPy2STDgfZA3m','x3nJAgvKDwXLuMvMCMvZAa','r0vu','Dw5RBM93BG','Bw9KzwXZ','BM93','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','mti1ndmZnwXkreTWrW','BwvZC2fNzq','yw5HBhLZAxm','AxnmB2fKAw5N','BgfZDfvWzgf0zwq','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','C3rHDhvZ','mtqYnZK5m3jzuwHPwa','qMvHCMvYia','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','nKnZrwTIsW','zgvIDwC','Bg9Nz2vY','mJq1otC2u0zWsNjU'];a0_0xff92=function(){return _0x39b56c;};return a0_0xff92();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0x8c3c(_0x18027a,_0x755289){_0x18027a=_0x18027a-0xf9;const _0xff9243=a0_0xff92();let _0x8c3c3b=_0xff9243[_0x18027a];if(a0_0x8c3c['lUOnoL']===undefined){var _0x16d7ef=function(_0x165276){const _0x51f00d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x32140d='',_0x51c314='';for(let _0x121f28=0x0,_0x1b0cf6,_0x1cc196,_0x2b529a=0x0;_0x1cc196=_0x165276['charAt'](_0x2b529a++);~_0x1cc196&&(_0x1b0cf6=_0x121f28%0x4?_0x1b0cf6*0x40+_0x1cc196:_0x1cc196,_0x121f28++%0x4)?_0x32140d+=String['fromCharCode'](0xff&_0x1b0cf6>>(-0x2*_0x121f28&0x6)):0x0){_0x1cc196=_0x51f00d['indexOf'](_0x1cc196);}for(let _0x3672a1=0x0,_0x5655d1=_0x32140d['length'];_0x3672a1<_0x5655d1;_0x3672a1++){_0x51c314+='%'+('00'+_0x32140d['charCodeAt'](_0x3672a1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51c314);};a0_0x8c3c['WGUcpg']=_0x16d7ef,a0_0x8c3c['rGGHar']={},a0_0x8c3c['lUOnoL']=!![];}const _0x45a0b0=_0xff9243[0x0],_0x3c916c=_0x18027a+_0x45a0b0,_0x2120ed=a0_0x8c3c['rGGHar'][_0x3c916c];return!_0x2120ed?(_0x8c3c3b=a0_0x8c3c['WGUcpg'](_0x8c3c3b),a0_0x8c3c['rGGHar'][_0x3c916c]=_0x8c3c3b):_0x8c3c3b=_0x2120ed,_0x8c3c3b;}class BenchmarkService{constructor(_0x32140d,_0x51c314){const _0x41eef6=a0_0x8c3c;this['config']=_0x32140d,this['logger']=_0x51c314,this['benchmarks']=null,this[_0x41eef6(0x128)]=null,this[_0x41eef6(0x127)]=![],this[_0x41eef6(0x115)]='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async[a0_0x4dfa4b(0x105)](){const _0x3cd73e=a0_0x4dfa4b;try{await this['loadBenchmarks'](),this[_0x3cd73e(0x11e)](),this['logger']['info'](_0x3cd73e(0x12e));}catch(_0x121f28){this['logger'][_0x3cd73e(0x118)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x121f28[_0x3cd73e(0x125)]}),this[_0x3cd73e(0x100)]=null;}}['getBenchmarks'](){const _0x5a3d93=a0_0x4dfa4b;if(!this[_0x5a3d93(0x100)])return this['logger']['error'](_0x5a3d93(0xfd),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x326389=a0_0x4dfa4b;if(this['isLoading']){this[_0x326389(0xfa)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x326389(0x127)]=!![];try{const _0x1b0cf6=await this[_0x326389(0x12d)]();if(_0x1b0cf6)this['benchmarks']=_0x1b0cf6,this['lastUpdated']=new Date(),this[_0x326389(0xfa)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x1b0cf6[_0x326389(0x121)]?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x1cc196){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x1cc196[_0x326389(0x125)],'endpoint':url}),!this[_0x326389(0x100)]&&(this['benchmarks']=null);}finally{this['isLoading']=![];}}['getBenchmarkTable'](){const _0x2b529a=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||'unknown','models':_0x2b529a['models']||[],'tasks':_0x2b529a['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x2b529a)};}[a0_0x4dfa4b(0x107)](){const _0x3d0541=a0_0x4dfa4b;if(!this['lastUpdated'])return!![];const _0x3672a1=Date[_0x3d0541(0x122)]()-this[_0x3d0541(0x128)][_0x3d0541(0x103)]();return _0x3672a1>this['refreshInterval'];}async[a0_0x4dfa4b(0x12d)](){const _0x520e22=a0_0x4dfa4b,_0x5655d1=this['azureBackendUrl']+_0x520e22(0x123);let _0x17557d=null;this[_0x520e22(0x117)]['apiKey']&&(_0x17557d=this[_0x520e22(0x117)]['apiKey']);const _0x3e7fb0={'method':_0x520e22(0x11f),'headers':{'Content-Type':_0x520e22(0xff),..._0x17557d&&{'Authorization':_0x520e22(0x12c)+_0x17557d}},'timeout':0x2710};this[_0x520e22(0xfa)][_0x520e22(0xf9)]('Fetching benchmarks from Azure backend',{'url':_0x5655d1});const _0x8c585c=await fetch(_0x5655d1,_0x3e7fb0);if(!_0x8c585c['ok'])throw new Error('HTTP\x20'+_0x8c585c[_0x520e22(0x12a)]+':\x20'+_0x8c585c['statusText']);const _0x26505d=await _0x8c585c['json']();return _0x26505d;}[a0_0x4dfa4b(0x10d)](_0x4172b8){const _0x21edff=a0_0x4dfa4b,_0x2f7ee8=_0x4172b8[_0x21edff(0x121)]||[];return{'totalModels':_0x2f7ee8['length'],'taskCategories':Object[_0x21edff(0x102)](_0x4172b8['tasks']||{}),'bestForCoding':this[_0x21edff(0x10b)](_0x2f7ee8,'coding'),'bestForAnalysis':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x126)),'bestForQuickTasks':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x11d)),'bestForCreative':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x11c)),'fastestModel':this['_getFastestModel'](_0x2f7ee8),'mostCostEfficient':this['_getMostCostEfficient'](_0x2f7ee8)};}[a0_0x4dfa4b(0x10b)](_0x86a7d1,_0x15770a){const _0x32275d=a0_0x4dfa4b;return _0x86a7d1['filter'](_0x56688c=>_0x56688c['tasks']&&_0x56688c['tasks'][_0x15770a])[_0x32275d(0x106)]((_0x1895ec,_0x2d24e6)=>(_0x2d24e6[_0x32275d(0x112)][_0x15770a]['score']||0x0)-(_0x1895ec['tasks'][_0x15770a]['score']||0x0))[0x0]?.['name']||_0x32275d(0x120);}[a0_0x4dfa4b(0x119)](_0x38cb0a){const _0x35b50c=a0_0x4dfa4b,_0x472ee6={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x38cb0a['sort']((_0xdcba98,_0x8bfb0f)=>{const _0x575ebc=a0_0x8c3c,_0x54e9f0=Math[_0x575ebc(0x11b)](...Object['values'](_0xdcba98[_0x575ebc(0x112)]||{})[_0x575ebc(0x110)](_0xa1b908=>_0x472ee6[_0xa1b908[_0x575ebc(0x10c)]]||0x0)),_0x359e9e=Math[_0x575ebc(0x11b)](...Object[_0x575ebc(0x109)](_0x8bfb0f[_0x575ebc(0x112)]||{})['map'](_0x4b9c2e=>_0x472ee6[_0x4b9c2e['speed']]||0x0));return _0x359e9e-_0x54e9f0;})[0x0]?.['name']||_0x35b50c(0x120);}['_getMostCostEfficient'](_0x35a172){const _0x716170=a0_0x4dfa4b,_0x3cd56f={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x35a172[_0x716170(0x106)]((_0x18d4c9,_0x31e21e)=>{const _0x9fa16=_0x716170,_0x55b581=Math['max'](...Object['values'](_0x18d4c9[_0x9fa16(0x112)]||{})[_0x9fa16(0x110)](_0x3bcc02=>_0x3cd56f[_0x3bcc02['cost']]||0x0)),_0xbf8b98=Math['max'](...Object[_0x9fa16(0x109)](_0x31e21e['tasks']||{})['map'](_0x366f13=>_0x3cd56f[_0x366f13['cost']]||0x0));return _0xbf8b98-_0x55b581;})[0x0]?.[_0x716170(0xfc)]||'unknown';}['_scheduleRefresh'](){const _0x55aaac=a0_0x4dfa4b;setInterval(async()=>{const _0x5cfc3c=a0_0x8c3c;this[_0x5cfc3c(0x107)]()&&(this[_0x5cfc3c(0xfa)]['debug'](_0x5cfc3c(0x129)),await this[_0x5cfc3c(0xfe)]());},this[_0x55aaac(0x101)]);}async['forceRefresh'](){const _0x133d95=a0_0x4dfa4b;this[_0x133d95(0xfa)]['info'](_0x133d95(0x116)),await this[_0x133d95(0xfe)]();}[a0_0x4dfa4b(0x113)](){const _0x2cc59e=a0_0x4dfa4b;return{'initialized':!!this[_0x2cc59e(0x100)],'lastUpdated':this['lastUpdated']?.['toISOString']()||null,'source':this['benchmarks']?.[_0x2cc59e(0x108)]||_0x2cc59e(0x120),'modelCount':this['benchmarks']?.['models']?.[_0x2cc59e(0x10e)]||0x0,'isLoading':this[_0x2cc59e(0x127)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
@@ -1 +1 @@
1
- const a0_0x217561=a0_0x13ec;function a0_0x57bf(){const _0xa518bc=['tw9KzwW','C2v0qNvKz2v0CW','veHsrvnit0XeuW','zgfPBhLbDMvYywDLCW','y2HLy2TcDwrNzxrmAw1PDhm','mZeXotC3nfLRrwTcEa','ywDLBNrjza','Dw5ZAgLMDa','Aw5WDxq','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgq','zM9YrwfJAa','ndyYmJe1Dfjfwuvm','y29ZDa','rgfPBhK','mJCWndy3mwHIDuHgzG','zxjYB3i','z2v0rNvSBfLLyxi','C29YDa','C2f2zvvZywDLrgf0yq','yNvKz2v0qwXLCNq','vxnHz2uGzgf0ysbZyxzLza','CMvXDwvZDhm','nJG5nJq2nfLHqLPQsG','C2v0','mZbUqNLdt3u','y29TCgXLDgLVBL90B2TLBNm','yNLbz2vUDa','nty5otuYnM9XAhfdqq','z2v0','z2v0qwDLBNrvC2fNzq','ChvZAa','CM91BMq','zw1PDa','mtK1otK1B05QvKnz','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','ltaX','Bw9KzwXjza','y2fSy3vSyxrLq29ZDa','qNvKz2v0igXPBwL0CYb1CgrHDgvK','C2v0DxbqzxjPB2rPy1nHDMu','Dg9Rzw5Z','mJe0nJy0nhrsA3Hrsq','BwvZC2fNzq','Aw5MBW','zgvIDwC','z2v0rgf5','y3n2','Bg9Nz2vY','AgfZ','Dg9ju09tDhjPBMC','AM9PBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','z2v0v2vLA0TLEq','zgfPBhK','D2vLA2X5','Bwf4','AxnxAxrOAw5cDwrNzxq','z2v0tw9UDgHlzxK','y3jLyxrLrw1WDhLvC2fNzq','mtb2sNPiyxO','mJHZCKzqA2S','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','z2v0v2vLA051BwjLCG','Dg9Wtw9KzwXZ','Dw5KzwzPBMvK','Bw9UDgHSEq','Dg9tDhjPBMC','ywXLCNrZ','z2v0rgf5s2v5','z2v0uMvTywLUAw5NqNvKz2v0','C2v0rgf0zq','z2v0vxnHz2u','D2fYBG','DxbKyxrLvxnHz2vfBNrYEq','y29UDMvYDfrVq1nw','zw50CMLLCW','Dg90ywW','rMfPBgvKihrVihrYywnRihvZywDL','Bg9HzfvZywDLrgf0yq','C2vUzej1zgDLDefSzxj0','yNLnB2rLBa','C3rYAw5NAwz5','CgfKu3rHCNq','tu9oveHmwq','y29ZDej5rgf5','ugvYAw9K','DxnHz2u','BM93','yNvKz2v0CW'];a0_0x57bf=function(){return _0xa518bc;};return a0_0x57bf();}function a0_0x13ec(_0x300fd9,_0x2d7354){_0x300fd9=_0x300fd9-0xdc;const _0x57bf36=a0_0x57bf();let _0x13ec9e=_0x57bf36[_0x300fd9];if(a0_0x13ec['yskFVh']===undefined){var _0x149fe5=function(_0x2d6bc7){const _0x635e84='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14147f='',_0x4cca03='';for(let _0x2d7d37=0x0,_0x4ebf98,_0x10c343,_0x1a6a7b=0x0;_0x10c343=_0x2d6bc7['charAt'](_0x1a6a7b++);~_0x10c343&&(_0x4ebf98=_0x2d7d37%0x4?_0x4ebf98*0x40+_0x10c343:_0x10c343,_0x2d7d37++%0x4)?_0x14147f+=String['fromCharCode'](0xff&_0x4ebf98>>(-0x2*_0x2d7d37&0x6)):0x0){_0x10c343=_0x635e84['indexOf'](_0x10c343);}for(let _0x3c0724=0x0,_0x510704=_0x14147f['length'];_0x3c0724<_0x510704;_0x3c0724++){_0x4cca03+='%'+('00'+_0x14147f['charCodeAt'](_0x3c0724)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4cca03);};a0_0x13ec['SSLJHd']=_0x149fe5,a0_0x13ec['FPkitN']={},a0_0x13ec['yskFVh']=!![];}const _0x2a80ec=_0x57bf36[0x0],_0x329e4a=_0x300fd9+_0x2a80ec,_0x3326ad=a0_0x13ec['FPkitN'][_0x329e4a];return!_0x3326ad?(_0x13ec9e=a0_0x13ec['SSLJHd'](_0x13ec9e),a0_0x13ec['FPkitN'][_0x329e4a]=_0x13ec9e):_0x13ec9e=_0x3326ad,_0x13ec9e;}(function(_0x33183e,_0x5e4128){const _0x1ccb75=a0_0x13ec,_0x51ef89=_0x33183e();while(!![]){try{const _0x52b11e=parseInt(_0x1ccb75(0x11a))/0x1*(parseInt(_0x1ccb75(0x135))/0x2)+parseInt(_0x1ccb75(0x122))/0x3+-parseInt(_0x1ccb75(0x136))/0x4*(parseInt(_0x1ccb75(0x104))/0x5)+-parseInt(_0x1ccb75(0x114))/0x6+parseInt(_0x1ccb75(0xfd))/0x7+parseInt(_0x1ccb75(0x10f))/0x8+parseInt(_0x1ccb75(0x107))/0x9*(-parseInt(_0x1ccb75(0x111))/0xa);if(_0x52b11e===_0x5e4128)break;else _0x51ef89['push'](_0x51ef89['shift']());}catch(_0xb7ce1e){_0x51ef89['push'](_0x51ef89['shift']());}}}(a0_0x57bf,0x7b36c));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x14147f,_0x4cca03){const _0x216e9a=a0_0x13ec;this['config']=_0x14147f||{},this[_0x216e9a(0x128)]=_0x4cca03,this[_0x216e9a(0xf5)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x216e9a(0xf2)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x216e9a(0xfa)],'lastAlertTimes':new Map()},this[_0x216e9a(0xed)](),this[_0x216e9a(0x120)]();}['trackUsage'](_0x2d7d37,_0x4ebf98,_0x10c343){const _0x17c130=a0_0x13ec;try{const _0x1a6a7b=this[_0x17c130(0x11e)](_0x4ebf98,_0x10c343),_0x3c0724=new Date(),_0x510704=this[_0x17c130(0xe3)](_0x3c0724),_0x729664=this['getWeekKey'](_0x3c0724),_0x23f193=this[_0x17c130(0x133)](_0x3c0724);this['initializeUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0x12f)],_0x510704),this[_0x17c130(0x101)](this['usage'][_0x17c130(0x130)],_0x729664),this['initializeUsageEntry'](this['usage'][_0x17c130(0xe0)],_0x23f193);const _0xf27d99={'agentId':_0x2d7d37,'modelId':_0x4ebf98,'tokens':_0x10c343['total_tokens'],'cost':_0x1a6a7b,'timestamp':_0x3c0724[_0x17c130(0x12a)]()};return this['updateUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0x12f)][_0x17c130(0x115)](_0x510704),_0xf27d99),this[_0x17c130(0xe8)](this['usage'][_0x17c130(0x130)][_0x17c130(0x115)](_0x729664),_0xf27d99),this['updateUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0xe0)]['get'](_0x23f193),_0xf27d99),this['usage']['total']['tokens']+=_0x10c343['total_tokens'],this[_0x17c130(0xf5)][_0x17c130(0xeb)]['cost']+=_0x1a6a7b,this[_0x17c130(0xf5)]['total']['requests']+=0x1,this[_0x17c130(0xfc)](_0x510704,_0x729664,_0x23f193),this[_0x17c130(0x128)][_0x17c130(0x124)]('Usage\x20tracked',{'agentId':_0x2d7d37,'modelId':_0x4ebf98,'tokens':_0x10c343['total_tokens'],'cost':_0x1a6a7b,'totalCost':this[_0x17c130(0xf5)][_0x17c130(0xeb)]['cost']}),{'cost':_0x1a6a7b,'totalCost':this[_0x17c130(0xf5)][_0x17c130(0xeb)][_0x17c130(0x105)],'totalTokens':this[_0x17c130(0xf5)][_0x17c130(0xeb)]['tokens'],'dailyUsage':this['usage']['daily'][_0x17c130(0x115)](_0x510704),'budgetRemaining':this[_0x17c130(0xe4)]()};}catch(_0x77516b){this[_0x17c130(0x128)][_0x17c130(0x108)](_0x17c130(0xec),{'error':_0x77516b['message'],'agentId':_0x2d7d37,'modelId':_0x4ebf98});throw _0x77516b;}}[a0_0x217561(0x11e)](_0x2b5540,_0x519d69){const _0x315ae3=a0_0x217561,_0x41b135=COST_PER_TOKEN[_0x2b5540];if(!_0x41b135)return this[_0x315ae3(0x128)][_0x315ae3(0xe7)](_0x315ae3(0x11b),{'modelId':_0x2b5540}),0x0;const _0x2a84d4=(_0x519d69['prompt_tokens']||0x0)*_0x41b135[_0x315ae3(0x100)],_0x387090=(_0x519d69[_0x315ae3(0x112)]||0x0)*_0x41b135['output'];return _0x2a84d4+_0x387090;}['getUsage'](_0x1aac1b=a0_0x217561(0x12f),_0x42b8ca=new Date()){const _0xf689d8=a0_0x217561;switch(_0x1aac1b){case _0xf689d8(0x12f):return this['usage']['daily'][_0xf689d8(0x115)](this[_0xf689d8(0xe3)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0x130):return this['usage']['weekly'][_0xf689d8(0x115)](this[_0xf689d8(0x12e)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0xe0):return this['usage'][_0xf689d8(0xe0)]['get'](this[_0xf689d8(0x133)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0xeb):return{...this['usage'][_0xf689d8(0xeb)]};default:throw new Error('Invalid\x20period:\x20'+_0x1aac1b);}}[a0_0x217561(0x116)](_0x2ed630,_0x5076de='daily'){const _0xc22988=a0_0x217561,_0x38b790=this[_0xc22988(0xe6)](_0x5076de);return _0x38b790['byAgent']?.[_0x2ed630]||this[_0xc22988(0x134)]();}['getModelUsage'](_0x3d9f24,_0x48143c=a0_0x217561(0x12f)){const _0x1287a0=this['getUsage'](_0x48143c);return _0x1287a0['byModel']?.[_0x3d9f24]||this['createEmptyUsage']();}[a0_0x217561(0xf9)](_0x194c1e){const _0x554f7c=a0_0x217561;if(_0x194c1e[_0x554f7c(0x12f)]!==undefined)this['budgets'][_0x554f7c(0x12f)]=_0x194c1e['daily'];if(_0x194c1e[_0x554f7c(0x130)]!==undefined)this['budgets']['weekly']=_0x194c1e['weekly'];if(_0x194c1e['monthly']!==undefined)this['budgets'][_0x554f7c(0xe0)]=_0x194c1e[_0x554f7c(0xe0)];this[_0x554f7c(0x128)][_0x554f7c(0x124)](_0x554f7c(0x11f),this['budgets']),this[_0x554f7c(0x10b)]();}[a0_0x217561(0xe4)](){const _0x41f3f5=a0_0x217561,_0x48ee8e=new Date(),_0x25c991=this[_0x41f3f5(0xe6)](_0x41f3f5(0x12f),_0x48ee8e),_0x1fc40f=this['getUsage']('weekly',_0x48ee8e),_0x208f61=this[_0x41f3f5(0xe6)](_0x41f3f5(0xe0),_0x48ee8e);return{'daily':Math['max'](0x0,this[_0x41f3f5(0xf7)][_0x41f3f5(0x12f)]-_0x25c991[_0x41f3f5(0x105)]),'weekly':Math[_0x41f3f5(0x131)](0x0,this['budgets']['weekly']-_0x1fc40f[_0x41f3f5(0x105)]),'monthly':Math['max'](0x0,this[_0x41f3f5(0xf7)]['monthly']-_0x208f61[_0x41f3f5(0x105)])};}[a0_0x217561(0x132)](_0x24a527=a0_0x217561(0x12f)){const _0x2a317d=a0_0x217561,_0x411697=this[_0x2a317d(0xe6)](_0x24a527),_0xa427e6=this[_0x2a317d(0xf7)][_0x24a527];return _0x411697['cost']<=_0xa427e6;}['getUsageTrends'](_0x24b92b=0x1e){const _0x25a917=a0_0x217561,_0x4b21f3={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xe23d47=new Date();let _0x2b4738=0x0,_0x166544=0x0,_0x11692d=0x0;const _0x3e2a51=new Map(),_0x462993=new Map();for(let _0x40d972=0x0;_0x40d972<_0x24b92b;_0x40d972++){const _0x4b95fc=new Date(_0xe23d47);_0x4b95fc[_0x25a917(0xe5)](_0x4b95fc['getDate']()-_0x40d972);const _0x4d9d20=this[_0x25a917(0xe3)](_0x4b95fc),_0x287076=this[_0x25a917(0xf5)][_0x25a917(0x12f)][_0x25a917(0x115)](_0x4d9d20);_0x287076?(_0x2b4738+=_0x287076[_0x25a917(0x105)],_0x166544+=_0x287076['tokens'],_0x11692d+=_0x287076[_0x25a917(0x10e)],_0x4b21f3[_0x25a917(0xf3)]['unshift']({'date':_0x4d9d20,'cost':_0x287076[_0x25a917(0x105)]}),_0x4b21f3['tokensByDay']['unshift']({'date':_0x4d9d20,'tokens':_0x287076[_0x25a917(0x121)]}),Object['entries'](_0x287076[_0x25a917(0x113)]||{})['forEach'](([_0x18bfdf,_0x1cc974])=>{const _0x1c2a48=_0x25a917;!_0x3e2a51['has'](_0x18bfdf)&&_0x3e2a51['set'](_0x18bfdf,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x22d6fa=_0x3e2a51['get'](_0x18bfdf);_0x22d6fa[_0x1c2a48(0x105)]+=_0x1cc974[_0x1c2a48(0x105)],_0x22d6fa['tokens']+=_0x1cc974[_0x1c2a48(0x121)],_0x22d6fa[_0x1c2a48(0x10e)]+=_0x1cc974['requests'];}),Object['entries'](_0x287076['byModel']||{})['forEach'](([_0x6fb98,_0x2c98d8])=>{const _0x38818c=_0x25a917;!_0x462993[_0x38818c(0x129)](_0x6fb98)&&_0x462993[_0x38818c(0x110)](_0x6fb98,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5f0ec3=_0x462993[_0x38818c(0x115)](_0x6fb98);_0x5f0ec3[_0x38818c(0x105)]+=_0x2c98d8['cost'],_0x5f0ec3['tokens']+=_0x2c98d8['tokens'],_0x5f0ec3[_0x38818c(0x10e)]+=_0x2c98d8['requests'];})):(_0x4b21f3[_0x25a917(0xf3)]['unshift']({'date':_0x4d9d20,'cost':0x0}),_0x4b21f3['tokensByDay'][_0x25a917(0xff)]({'date':_0x4d9d20,'tokens':0x0}));}return _0x4b21f3[_0x25a917(0xfb)][_0x25a917(0x105)]=_0x2b4738/_0x24b92b,_0x4b21f3['dailyAverages'][_0x25a917(0x121)]=_0x166544/_0x24b92b,_0x4b21f3[_0x25a917(0xfb)]['requests']=_0x11692d/_0x24b92b,_0x4b21f3['topAgents']=Array['from'](_0x3e2a51[_0x25a917(0xea)]())['map'](([_0x23d63b,_0x5c0205])=>({'id':_0x23d63b,..._0x5c0205}))[_0x25a917(0x10a)]((_0x5779af,_0x5ebd0a)=>_0x5ebd0a[_0x25a917(0x105)]-_0x5779af['cost'])['slice'](0x0,0xa),_0x4b21f3[_0x25a917(0xde)]=Array['from'](_0x462993['entries']())['map'](([_0x1a0d8a,_0x3e08cd])=>({'id':_0x1a0d8a,..._0x3e08cd}))['sort']((_0x1fbcfa,_0x424e92)=>_0x424e92[_0x25a917(0x105)]-_0x1fbcfa[_0x25a917(0x105)])['slice'](0x0,0xa),_0x4b21f3;}['exportUsageData'](_0x31ecd2='json',_0x1e2533=null,_0x257007=null){const _0x77f78d=a0_0x217561,_0x3cdd1f={'budgets':this[_0x77f78d(0xf7)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0xaf8f56=(_0x381634,_0x1ed313)=>{const _0x550172=_0x77f78d,_0x55f07b={};return _0x381634[_0x550172(0x103)]((_0xc584d6,_0x1f77ef)=>{const _0x256f6c=_0x1ed313(_0x1f77ef);(!_0x1e2533||_0x256f6c>=_0x1e2533)&&(!_0x257007||_0x256f6c<=_0x257007)&&(_0x55f07b[_0x1f77ef]=_0xc584d6);}),_0x55f07b;};_0x1e2533||_0x257007?(_0x3cdd1f['daily']=_0xaf8f56(this['usage']['daily'],_0x42e02a=>new Date(_0x42e02a)),_0x3cdd1f[_0x77f78d(0x130)]=_0xaf8f56(this[_0x77f78d(0xf5)][_0x77f78d(0x130)],_0x52206=>new Date(_0x52206)),_0x3cdd1f['monthly']=_0xaf8f56(this[_0x77f78d(0xf5)]['monthly'],_0x5bcdb2=>new Date(_0x5bcdb2+_0x77f78d(0x11c)))):(this[_0x77f78d(0xf5)]['daily']['forEach']((_0x1181b5,_0x20ef2d)=>_0x3cdd1f[_0x77f78d(0x12f)][_0x20ef2d]=_0x1181b5),this['usage']['weekly'][_0x77f78d(0x103)]((_0x2995c4,_0x2ec233)=>_0x3cdd1f[_0x77f78d(0x130)][_0x2ec233]=_0x2995c4),this['usage'][_0x77f78d(0xe0)][_0x77f78d(0x103)]((_0x59e4da,_0x5cf716)=>_0x3cdd1f[_0x77f78d(0xe0)][_0x5cf716]=_0x59e4da));if(_0x31ecd2===_0x77f78d(0x127))return this['convertToCSV'](_0x3cdd1f);return JSON[_0x77f78d(0xf0)](_0x3cdd1f,null,0x2);}[a0_0x217561(0x101)](_0x3a3d28,_0x374344){const _0x5e72db=a0_0x217561;!_0x3a3d28[_0x5e72db(0x129)](_0x374344)&&_0x3a3d28['set'](_0x374344,this[_0x5e72db(0x134)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x217561(0xe8)](_0x181626,_0x1d61d5){const _0xa59ae0=a0_0x217561;_0x181626[_0xa59ae0(0x105)]+=_0x1d61d5['cost'],_0x181626['tokens']+=_0x1d61d5['tokens'],_0x181626['requests']+=0x1,!_0x181626[_0xa59ae0(0x113)][_0x1d61d5['agentId']]&&(_0x181626[_0xa59ae0(0x113)][_0x1d61d5[_0xa59ae0(0xfe)]]=this['createEmptyUsage']()),_0x181626['byAgent'][_0x1d61d5['agentId']]['cost']+=_0x1d61d5[_0xa59ae0(0x105)],_0x181626['byAgent'][_0x1d61d5[_0xa59ae0(0xfe)]][_0xa59ae0(0x121)]+=_0x1d61d5['tokens'],_0x181626[_0xa59ae0(0x113)][_0x1d61d5['agentId']][_0xa59ae0(0x10e)]+=0x1,!_0x181626[_0xa59ae0(0xef)][_0x1d61d5[_0xa59ae0(0x11d)]]&&(_0x181626[_0xa59ae0(0xef)][_0x1d61d5['modelId']]=this[_0xa59ae0(0x134)]()),_0x181626['byModel'][_0x1d61d5[_0xa59ae0(0x11d)]]['cost']+=_0x1d61d5['cost'],_0x181626['byModel'][_0x1d61d5['modelId']]['tokens']+=_0x1d61d5['tokens'],_0x181626[_0xa59ae0(0xef)][_0x1d61d5[_0xa59ae0(0x11d)]]['requests']+=0x1;}['checkBudgetLimits'](_0x57e9aa,_0x4b221f,_0x571ced){const _0x3d9da5=a0_0x217561,_0x4f61be=this['usage']['daily']['get'](_0x57e9aa),_0x4e2073=this[_0x3d9da5(0xf5)][_0x3d9da5(0x130)]['get'](_0x4b221f),_0xba7b0d=this['usage'][_0x3d9da5(0xe0)]['get'](_0x571ced);_0x4f61be[_0x3d9da5(0x105)]>this['budgets'][_0x3d9da5(0x12f)]&&this[_0x3d9da5(0xee)](_0x3d9da5(0x12f),_0x4f61be['cost'],this[_0x3d9da5(0xf7)]['daily']),_0x4e2073[_0x3d9da5(0x105)]>this['budgets'][_0x3d9da5(0x130)]&&this[_0x3d9da5(0xee)]('weekly',_0x4e2073['cost'],this['budgets']['weekly']),_0xba7b0d['cost']>this['budgets'][_0x3d9da5(0xe0)]&&this['sendBudgetAlert'](_0x3d9da5(0xe0),_0xba7b0d[_0x3d9da5(0x105)],this[_0x3d9da5(0xf7)][_0x3d9da5(0xe0)]),this[_0x3d9da5(0x12c)](_0x4f61be,_0x4e2073,_0xba7b0d);}['checkThresholdAlerts'](_0x227a4f,_0xf9a288,_0x43050b){const _0x5b8ca9=a0_0x217561,_0x1e248a=this[_0x5b8ca9(0xe2)]['thresholds'];this[_0x5b8ca9(0x102)]('daily',_0x227a4f[_0x5b8ca9(0x105)],this['budgets']['daily'],_0x1e248a),this['checkThreshold']('weekly',_0xf9a288['cost'],this['budgets']['weekly'],_0x1e248a),this[_0x5b8ca9(0x102)](_0x5b8ca9(0xe0),_0x43050b['cost'],this['budgets']['monthly'],_0x1e248a);}['checkThreshold'](_0xea0b8,_0x4bd446,_0x459c05,_0x3a573f){const _0x2b3a03=a0_0x217561,_0x2270c8=_0x4bd446/_0x459c05*0x64;for(const _0x2bef94 of _0x3a573f){if(_0x2270c8>=_0x2bef94){const _0x4c6949=_0xea0b8+'_'+_0x2bef94,_0x2e466f=this['alerts']['lastAlertTimes'][_0x2b3a03(0x115)](_0x4c6949),_0x4bbc0d=Date[_0x2b3a03(0xf6)]();(!_0x2e466f||_0x4bbc0d-_0x2e466f>0x36ee80)&&(this['sendThresholdAlert'](_0xea0b8,_0x2270c8,_0x2bef94,_0x4bd446,_0x459c05),this[_0x2b3a03(0xe2)]['lastAlertTimes']['set'](_0x4c6949,_0x4bbc0d));break;}}}['sendBudgetAlert'](_0xd3279b,_0x3bee18,_0x58fc45){const _0x4502fa=a0_0x217561;this[_0x4502fa(0x128)]['warn']('Budget\x20limit\x20exceeded',{'period':_0xd3279b,'currentUsage':_0x3bee18,'budgetLimit':_0x58fc45,'excess':_0x3bee18-_0x58fc45}),typeof process!==_0x4502fa(0xdf)&&process['emit']&&process['emit'](_0x4502fa(0x10c),{'type':'budget_exceeded','period':_0xd3279b,'currentUsage':_0x3bee18,'budgetLimit':_0x58fc45,'excess':_0x3bee18-_0x58fc45});}['sendThresholdAlert'](_0x10daef,_0xda7a02,_0x4bada0,_0x85c5e4,_0x1ca49d){const _0x3ef901=a0_0x217561;this['logger'][_0x3ef901(0xe7)]('Budget\x20threshold\x20reached',{'period':_0x10daef,'percentage':Math[_0x3ef901(0x118)](_0xda7a02),'threshold':_0x4bada0,'usage':_0x85c5e4,'budget':_0x1ca49d}),typeof process!=='undefined'&&process[_0x3ef901(0x119)]&&process['emit']('budgetAlert',{'type':'threshold_reached','period':_0x10daef,'percentage':Math['round'](_0xda7a02),'threshold':_0x4bada0,'usage':_0x85c5e4,'budget':_0x1ca49d});}['getDayKey'](_0x371b93){const _0x480e50=a0_0x217561;return _0x371b93[_0x480e50(0x12a)]()['split']('T')[0x0];}['getWeekKey'](_0x3abe69){const _0x276238=a0_0x217561,_0xf28f4c=_0x3abe69[_0x276238(0x109)](),_0x228d6c=this['getWeekNumber'](_0x3abe69);return _0xf28f4c+'-W'+_0x228d6c['toString']()['padStart'](0x2,'0');}[a0_0x217561(0x133)](_0x2fdc1c){const _0xca4e02=a0_0x217561,_0x12528d=_0x2fdc1c[_0xca4e02(0x109)](),_0x494e08=_0x2fdc1c['getMonth']()+0x1;return _0x12528d+'-'+_0x494e08[_0xca4e02(0xe1)]()[_0xca4e02(0xf1)](0x2,'0');}[a0_0x217561(0xdd)](_0x1c8d3a){const _0x3ac5e8=a0_0x217561,_0x176bbf=new Date(_0x1c8d3a['getFullYear'](),0x0,0x1),_0x36760=(_0x1c8d3a-_0x176bbf)/0x5265c00;return Math['ceil']((_0x36760+_0x176bbf[_0x3ac5e8(0x126)]()+0x1)/0x7);}[a0_0x217561(0xe9)](_0x34c050){const _0x1f81fa=a0_0x217561,_0x4a8df8=[];return _0x4a8df8[_0x1f81fa(0x117)]([_0x1f81fa(0xf4),'Date','Cost','Tokens','Requests','Agent',_0x1f81fa(0xf8)]),Object['entries'](_0x34c050[_0x1f81fa(0x12f)])['forEach'](([_0x55aae6,_0x298d2e])=>{const _0x17871a=_0x1f81fa;_0x4a8df8[_0x17871a(0x117)](['Daily',_0x55aae6,_0x298d2e[_0x17871a(0x105)],_0x298d2e['tokens'],_0x298d2e['requests'],'','']),Object['entries'](_0x298d2e['byAgent']||{})['forEach'](([_0x1ea794,_0x4161a2])=>{const _0x432cdd=_0x17871a;_0x4a8df8['push']([_0x432cdd(0x106),_0x55aae6,_0x4161a2[_0x432cdd(0x105)],_0x4161a2[_0x432cdd(0x121)],_0x4161a2['requests'],_0x1ea794,'']);});}),_0x4a8df8['map'](_0x121730=>_0x121730[_0x1f81fa(0x12b)](','))['join']('\x0a');}[a0_0x217561(0xed)](){const _0x2f4cd1=a0_0x217561;try{this['logger']['info'](_0x2f4cd1(0x12d));}catch(_0x3ef5dd){this['logger'][_0x2f4cd1(0x108)](_0x2f4cd1(0xdc),{'error':_0x3ef5dd['message']});}}['saveUsageData'](){const _0x7809c9=a0_0x217561;try{this['logger'][_0x7809c9(0x125)](_0x7809c9(0x10d));}catch(_0x2b7282){this[_0x7809c9(0x128)][_0x7809c9(0x108)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x2b7282[_0x7809c9(0x123)]});}}['setupPeriodicSave'](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
1
+ const a0_0x724650=a0_0x1e31;function a0_0x1e31(_0x54b0f8,_0x5a2a36){_0x54b0f8=_0x54b0f8-0xef;const _0xac542f=a0_0xac54();let _0x1e3186=_0xac542f[_0x54b0f8];if(a0_0x1e31['eYbMkQ']===undefined){var _0xdb1714=function(_0x874371){const _0x3ee2e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x425aa4='',_0x279712='';for(let _0x9d779a=0x0,_0x1236bb,_0x336e16,_0x37d27c=0x0;_0x336e16=_0x874371['charAt'](_0x37d27c++);~_0x336e16&&(_0x1236bb=_0x9d779a%0x4?_0x1236bb*0x40+_0x336e16:_0x336e16,_0x9d779a++%0x4)?_0x425aa4+=String['fromCharCode'](0xff&_0x1236bb>>(-0x2*_0x9d779a&0x6)):0x0){_0x336e16=_0x3ee2e5['indexOf'](_0x336e16);}for(let _0xdb069d=0x0,_0xd3a1e3=_0x425aa4['length'];_0xdb069d<_0xd3a1e3;_0xdb069d++){_0x279712+='%'+('00'+_0x425aa4['charCodeAt'](_0xdb069d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x279712);};a0_0x1e31['EdyXAE']=_0xdb1714,a0_0x1e31['aMnalk']={},a0_0x1e31['eYbMkQ']=!![];}const _0x306cbd=_0xac542f[0x0],_0x1da0d2=_0x54b0f8+_0x306cbd,_0x52f401=a0_0x1e31['aMnalk'][_0x1da0d2];return!_0x52f401?(_0x1e3186=a0_0x1e31['EdyXAE'](_0x1e3186),a0_0x1e31['aMnalk'][_0x1da0d2]=_0x1e3186):_0x1e3186=_0x52f401,_0x1e3186;}(function(_0x27b771,_0x25bfa0){const _0x156012=a0_0x1e31,_0x2489d7=_0x27b771();while(!![]){try{const _0x10f9ab=-parseInt(_0x156012(0x144))/0x1*(-parseInt(_0x156012(0xef))/0x2)+-parseInt(_0x156012(0x104))/0x3*(-parseInt(_0x156012(0x12d))/0x4)+parseInt(_0x156012(0x130))/0x5+parseInt(_0x156012(0x12e))/0x6*(-parseInt(_0x156012(0x10d))/0x7)+parseInt(_0x156012(0x124))/0x8+parseInt(_0x156012(0x135))/0x9+-parseInt(_0x156012(0x128))/0xa;if(_0x10f9ab===_0x25bfa0)break;else _0x2489d7['push'](_0x2489d7['shift']());}catch(_0x47389e){_0x2489d7['push'](_0x2489d7['shift']());}}}(a0_0xac54,0x9dc92));function a0_0xac54(){const _0x4ed5fe=['z2v0rgf0zq','nJK1nJqWoe1brufhBq','Dg90ywXFDg9Rzw5Z','refjtfK','DxnHz2u','mtG5mZyXmdbzAKD5wgK','D2vLA2X5','BwfW','zgfPBhK','Aw5MBW','ndu1nKPmyNfqCq','mtC0r3jgqLHw','Bg9Nz2vY','mZeYntm0meH1z0XMAG','y29UzMLN','C29YDa','CgfKu3rHCNq','BM93','mZa0mJC3nevVwhfHBW','vxnHz2uGzgf0ysbZyxzLza','ywXLCNrZ','z2v0rNvSBfLLyxi','z2v0tw9UDgHlzxK','ChvZAa','Dg9tDhjPBMC','Bw9UDgHSEq','sw52ywXPzcbWzxjPB2q6ia','zNjVBq','z2v0v2vLA0TLEq','z2v0','y2fSy3vSyxrLq29ZDa','C2v0DxbqzxjPB2rPy1nHDMu','zxjYB3i','nuzkthHxwa','y3jLyxrLrw1WDhLvC2fNzq','zgvIDwC','D2fYBG','ntmWntrMrhfhzgO','y2HLy2TuAhjLC2HVBgq','yNvKz2v0CW','Bwf4','Bg9HzfvZywDLrgf0yq','yNLnB2rLBa','C2v0qNvKz2v0CW','ChjVBxb0x3rVA2vUCW','Aw5WDxq','Bw9KzwXjza','yNLbz2vUDa','C2vUzfrOCMvZAg9SzefSzxj0','Aw5PDgLHBgL6zvvZywDLrw50CNK','zM9YrwfJAa','CMvXDwvZDhm','Dg9Rzw5Z','zgfPBhLbDMvYywDLCW','y29UDMvYDfrVq1nw','vg9Rzw5Z','AM9PBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mJa0ouPvt09Wza','zw50CMLLCW','z2v0rgf5','z2v0vxnHz2u','v0vfs0Xz','z2v0tw9KzwXvC2fNzq','ywDLBNrjza','z2v0uMvTywLUAw5NqNvKz2v0','y29ZDej5rgf5','ndKWotfOwNztBfG','DgHYzxnOB2XKx3jLywnOzwq','yNvKz2v0x2v4y2vLzgvK','AxnxAxrOAw5cDwrNzxq','CM91BMq','C3bSAxq','Dg90ywW','DxbKyxrLvxnHz2vfBNrYEq','rgf0zq','veHsrvnit0XeuW','y29ZDa','C2vUzej1zgDLDefSzxj0','C2v0','Dw5ZAgLMDa','z2v0rgf5s2v5','zw1PDa','uMvXDwvZDhm','qNvKz2v0igXPBwL0CYb1CgrHDgvK','AgfZ','tu9oveHmwq','yNvKz2v0qwXLCNq','q29ZDa'];a0_0xac54=function(){return _0x4ed5fe;};return a0_0xac54();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x425aa4,_0x279712){const _0x2a9d1b=a0_0x1e31;this[_0x2a9d1b(0x131)]=_0x425aa4||{},this[_0x2a9d1b(0x12f)]=_0x279712,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x2a9d1b(0x126)],'weekly':BUDGET_LIMITS[_0x2a9d1b(0x108)],'monthly':BUDGET_LIMITS[_0x2a9d1b(0x120)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x2a9d1b(0x116)],'lastAlertTimes':new Map()},this[_0x2a9d1b(0xf3)](),this[_0x2a9d1b(0x142)]();}['trackUsage'](_0x9d779a,_0x1236bb,_0x336e16){const _0x33ea51=a0_0x1e31;try{const _0x37d27c=this[_0x33ea51(0x141)](_0x1236bb,_0x336e16),_0xdb069d=new Date(),_0xd3a1e3=this['getDayKey'](_0xdb069d),_0x4094bc=this[_0x33ea51(0x13f)](_0xdb069d),_0x44562a=this['getMonthKey'](_0xdb069d);this[_0x33ea51(0xfb)](this['usage']['daily'],_0xd3a1e3),this[_0x33ea51(0xfb)](this['usage']['weekly'],_0x4094bc),this[_0x33ea51(0xfb)](this['usage']['monthly'],_0x44562a);const _0x7c5e14={'agentId':_0x9d779a,'modelId':_0x1236bb,'tokens':_0x336e16['total_tokens'],'cost':_0x37d27c,'timestamp':_0xdb069d['toISOString']()};return this[_0x33ea51(0x114)](this[_0x33ea51(0x127)][_0x33ea51(0x12b)][_0x33ea51(0x140)](_0xd3a1e3),_0x7c5e14),this['updateUsageEntry'](this['usage']['weekly']['get'](_0x4094bc),_0x7c5e14),this['updateUsageEntry'](this['usage'][_0x33ea51(0x13c)][_0x33ea51(0x140)](_0x44562a),_0x7c5e14),this['usage'][_0x33ea51(0x113)][_0x33ea51(0xfe)]+=_0x336e16[_0x33ea51(0x125)],this['usage']['total'][_0x33ea51(0x117)]+=_0x37d27c,this['usage']['total']['requests']+=0x1,this['checkBudgetLimits'](_0xd3a1e3,_0x4094bc,_0x44562a),this['logger'][_0x33ea51(0x12c)]('Usage\x20tracked',{'agentId':_0x9d779a,'modelId':_0x1236bb,'tokens':_0x336e16[_0x33ea51(0x125)],'cost':_0x37d27c,'totalCost':this['usage']['total'][_0x33ea51(0x117)]}),{'cost':_0x37d27c,'totalCost':this[_0x33ea51(0x127)]['total']['cost'],'totalTokens':this[_0x33ea51(0x127)][_0x33ea51(0x113)]['tokens'],'dailyUsage':this['usage'][_0x33ea51(0x12b)]['get'](_0xd3a1e3),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x2492c9){this['logger'][_0x33ea51(0x143)]('Failed\x20to\x20track\x20usage',{'error':_0x2492c9['message'],'agentId':_0x9d779a,'modelId':_0x1236bb});throw _0x2492c9;}}['calculateCost'](_0x9bc8f,_0x14f7c9){const _0x43c48a=a0_0x1e31,_0x4b2f5f=COST_PER_TOKEN[_0x9bc8f];if(!_0x4b2f5f)return this[_0x43c48a(0x12f)][_0x43c48a(0x147)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x9bc8f}),0x0;const _0x33dd68=(_0x14f7c9[_0x43c48a(0xf6)]||0x0)*_0x4b2f5f[_0x43c48a(0xf7)],_0x2ac472=(_0x14f7c9['completion_tokens']||0x0)*_0x4b2f5f['output'];return _0x33dd68+_0x2ac472;}['getUsage'](_0x409295='daily',_0x1fa15f=new Date()){const _0x492516=a0_0x1e31;switch(_0x409295){case'daily':return this[_0x492516(0x127)][_0x492516(0x12b)][_0x492516(0x140)](this[_0x492516(0x11b)](_0x1fa15f))||this['createEmptyUsage']();case _0x492516(0x129):return this[_0x492516(0x127)]['weekly']['get'](this['getWeekKey'](_0x1fa15f))||this['createEmptyUsage']();case _0x492516(0x13c):return this[_0x492516(0x127)][_0x492516(0x13c)][_0x492516(0x140)](this['getMonthKey'](_0x1fa15f))||this[_0x492516(0x145)]();case'total':return{...this[_0x492516(0x127)]['total']};default:throw new Error(_0x492516(0x13d)+_0x409295);}}['getAgentUsage'](_0x45b7c3,_0x78a9f3='daily'){const _0x4382ab=this['getUsage'](_0x78a9f3);return _0x4382ab['byAgent']?.[_0x45b7c3]||this['createEmptyUsage']();}[a0_0x724650(0x109)](_0x32c519,_0x27136f='daily'){const _0x20a680=a0_0x724650,_0x2d0ce7=this['getUsage'](_0x27136f);return _0x2d0ce7[_0x20a680(0xf4)]?.[_0x32c519]||this[_0x20a680(0x145)]();}[a0_0x724650(0xf5)](_0x5b534f){const _0x1a41fe=a0_0x724650;if(_0x5b534f['daily']!==undefined)this['budgets'][_0x1a41fe(0x12b)]=_0x5b534f['daily'];if(_0x5b534f['weekly']!==undefined)this['budgets']['weekly']=_0x5b534f['weekly'];if(_0x5b534f['monthly']!==undefined)this[_0x1a41fe(0xf1)][_0x1a41fe(0x13c)]=_0x5b534f['monthly'];this[_0x1a41fe(0x12f)][_0x1a41fe(0x12c)](_0x1a41fe(0x11e),this['budgets']),this['saveUsageData']();}[a0_0x724650(0x10b)](){const _0x1026cf=a0_0x724650,_0x2c9d94=new Date(),_0x4d906e=this['getUsage']('daily',_0x2c9d94),_0x271377=this[_0x1026cf(0x107)]('weekly',_0x2c9d94),_0x5a85aa=this[_0x1026cf(0x107)]('monthly',_0x2c9d94);return{'daily':Math['max'](0x0,this['budgets'][_0x1026cf(0x12b)]-_0x4d906e['cost']),'weekly':Math[_0x1026cf(0xf2)](0x0,this[_0x1026cf(0xf1)][_0x1026cf(0x129)]-_0x271377[_0x1026cf(0x117)]),'monthly':Math['max'](0x0,this['budgets']['monthly']-_0x5a85aa['cost'])};}[a0_0x724650(0x110)](_0x5f5bc5=a0_0x724650(0x12b)){const _0x50c6da=a0_0x724650,_0xf0af7a=this[_0x50c6da(0x107)](_0x5f5bc5),_0x2fab71=this[_0x50c6da(0xf1)][_0x5f5bc5];return _0xf0af7a['cost']<=_0x2fab71;}['getUsageTrends'](_0x18fd48=0x1e){const _0x413bb0=a0_0x724650,_0x226d6e={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xac0583=new Date();let _0x34c864=0x0,_0x3d91eb=0x0,_0x55646d=0x0;const _0x3dce1b=new Map(),_0x5df2a0=new Map();for(let _0x3acceb=0x0;_0x3acceb<_0x18fd48;_0x3acceb++){const _0x1995b1=new Date(_0xac0583);_0x1995b1['setDate'](_0x1995b1[_0x413bb0(0x123)]()-_0x3acceb);const _0x3a10d2=this[_0x413bb0(0x11b)](_0x1995b1),_0x581132=this['usage']['daily'][_0x413bb0(0x140)](_0x3a10d2);_0x581132?(_0x34c864+=_0x581132['cost'],_0x3d91eb+=_0x581132[_0x413bb0(0xfe)],_0x55646d+=_0x581132[_0x413bb0(0xfd)],_0x226d6e[_0x413bb0(0x10c)]['unshift']({'date':_0x3a10d2,'cost':_0x581132['cost']}),_0x226d6e['tokensByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'tokens':_0x581132['tokens']}),Object[_0x413bb0(0x105)](_0x581132['byAgent']||{})['forEach'](([_0x2f6895,_0x57f000])=>{const _0x3ab428=_0x413bb0;!_0x3dce1b[_0x3ab428(0x11f)](_0x2f6895)&&_0x3dce1b[_0x3ab428(0x119)](_0x2f6895,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x30b11f=_0x3dce1b['get'](_0x2f6895);_0x30b11f['cost']+=_0x57f000['cost'],_0x30b11f[_0x3ab428(0xfe)]+=_0x57f000[_0x3ab428(0xfe)],_0x30b11f[_0x3ab428(0xfd)]+=_0x57f000[_0x3ab428(0xfd)];}),Object['entries'](_0x581132[_0x413bb0(0xf4)]||{})['forEach'](([_0x3ecd77,_0x291724])=>{const _0x3d66b9=_0x413bb0;!_0x5df2a0['has'](_0x3ecd77)&&_0x5df2a0[_0x3d66b9(0x119)](_0x3ecd77,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x359cf1=_0x5df2a0[_0x3d66b9(0x140)](_0x3ecd77);_0x359cf1[_0x3d66b9(0x117)]+=_0x291724[_0x3d66b9(0x117)],_0x359cf1[_0x3d66b9(0xfe)]+=_0x291724['tokens'],_0x359cf1['requests']+=_0x291724[_0x3d66b9(0xfd)];})):(_0x226d6e['costByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'cost':0x0}),_0x226d6e['tokensByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'tokens':0x0}));}return _0x226d6e['dailyAverages']['cost']=_0x34c864/_0x18fd48,_0x226d6e[_0x413bb0(0xff)]['tokens']=_0x3d91eb/_0x18fd48,_0x226d6e['dailyAverages']['requests']=_0x55646d/_0x18fd48,_0x226d6e['topAgents']=Array[_0x413bb0(0x13e)](_0x3dce1b[_0x413bb0(0x105)]())['map'](([_0x48b0b2,_0x89acfd])=>({'id':_0x48b0b2,..._0x89acfd}))[_0x413bb0(0x132)]((_0x810685,_0x4856d3)=>_0x4856d3['cost']-_0x810685['cost'])['slice'](0x0,0xa),_0x226d6e['topModels']=Array['from'](_0x5df2a0['entries']())['map'](([_0x1f064a,_0x73bdcf])=>({'id':_0x1f064a,..._0x73bdcf}))[_0x413bb0(0x132)]((_0x390760,_0x37cb97)=>_0x37cb97['cost']-_0x390760[_0x413bb0(0x117)])['slice'](0x0,0xa),_0x226d6e;}['exportUsageData'](_0x2ccfbf='json',_0x3d87ad=null,_0x3a655a=null){const _0x38d809=a0_0x724650,_0x1f5a16={'budgets':this['budgets'],'total':this['usage'][_0x38d809(0x113)],'daily':{},'weekly':{},'monthly':{}},_0x3fae38=(_0x1d9fc5,_0x146c29)=>{const _0x390f5a={};return _0x1d9fc5['forEach']((_0x3fe154,_0x352e83)=>{const _0x46b15c=_0x146c29(_0x352e83);(!_0x3d87ad||_0x46b15c>=_0x3d87ad)&&(!_0x3a655a||_0x46b15c<=_0x3a655a)&&(_0x390f5a[_0x352e83]=_0x3fe154);}),_0x390f5a;};_0x3d87ad||_0x3a655a?(_0x1f5a16['daily']=_0x3fae38(this['usage'][_0x38d809(0x12b)],_0xde8eb7=>new Date(_0xde8eb7)),_0x1f5a16[_0x38d809(0x129)]=_0x3fae38(this['usage'][_0x38d809(0x129)],_0x271316=>new Date(_0x271316)),_0x1f5a16[_0x38d809(0x13c)]=_0x3fae38(this['usage']['monthly'],_0x10b46d=>new Date(_0x10b46d+'-01'))):(this[_0x38d809(0x127)][_0x38d809(0x12b)][_0x38d809(0xfc)]((_0x5a7c97,_0x5d00b9)=>_0x1f5a16[_0x38d809(0x12b)][_0x5d00b9]=_0x5a7c97),this[_0x38d809(0x127)][_0x38d809(0x129)]['forEach']((_0x4f9fae,_0xed364f)=>_0x1f5a16[_0x38d809(0x129)][_0xed364f]=_0x4f9fae),this[_0x38d809(0x127)]['monthly'][_0x38d809(0xfc)]((_0x10415b,_0x487cd3)=>_0x1f5a16['monthly'][_0x487cd3]=_0x10415b));if(_0x2ccfbf==='csv')return this[_0x38d809(0x100)](_0x1f5a16);return JSON['stringify'](_0x1f5a16,null,0x2);}['initializeUsageEntry'](_0x2f8bc4,_0x2a2456){const _0x34244c=a0_0x724650;!_0x2f8bc4['has'](_0x2a2456)&&_0x2f8bc4[_0x34244c(0x119)](_0x2a2456,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x16942a,_0x2b6d0c){const _0x5b7caa=a0_0x724650;_0x16942a[_0x5b7caa(0x117)]+=_0x2b6d0c['cost'],_0x16942a[_0x5b7caa(0xfe)]+=_0x2b6d0c[_0x5b7caa(0xfe)],_0x16942a[_0x5b7caa(0xfd)]+=0x1,!_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c[_0x5b7caa(0x10a)]]&&(_0x16942a['byAgent'][_0x2b6d0c[_0x5b7caa(0x10a)]]=this[_0x5b7caa(0x145)]()),_0x16942a['byAgent'][_0x2b6d0c[_0x5b7caa(0x10a)]]['cost']+=_0x2b6d0c['cost'],_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c['agentId']]['tokens']+=_0x2b6d0c['tokens'],_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c['agentId']][_0x5b7caa(0xfd)]+=0x1,!_0x16942a['byModel'][_0x2b6d0c[_0x5b7caa(0xf8)]]&&(_0x16942a['byModel'][_0x2b6d0c['modelId']]=this[_0x5b7caa(0x145)]()),_0x16942a[_0x5b7caa(0xf4)][_0x2b6d0c[_0x5b7caa(0xf8)]][_0x5b7caa(0x117)]+=_0x2b6d0c['cost'],_0x16942a['byModel'][_0x2b6d0c[_0x5b7caa(0xf8)]][_0x5b7caa(0xfe)]+=_0x2b6d0c['tokens'],_0x16942a['byModel'][_0x2b6d0c['modelId']][_0x5b7caa(0xfd)]+=0x1;}['checkBudgetLimits'](_0x22a94d,_0x5c8864,_0x35fae1){const _0x59bfde=a0_0x724650,_0x36dad6=this[_0x59bfde(0x127)]['daily'][_0x59bfde(0x140)](_0x22a94d),_0x596bb6=this[_0x59bfde(0x127)][_0x59bfde(0x129)]['get'](_0x5c8864),_0x3c4c42=this['usage'][_0x59bfde(0x13c)]['get'](_0x35fae1);_0x36dad6[_0x59bfde(0x117)]>this['budgets']['daily']&&this[_0x59bfde(0x118)](_0x59bfde(0x12b),_0x36dad6['cost'],this[_0x59bfde(0xf1)]['daily']),_0x596bb6['cost']>this['budgets']['weekly']&&this['sendBudgetAlert'](_0x59bfde(0x129),_0x596bb6['cost'],this[_0x59bfde(0xf1)][_0x59bfde(0x129)]),_0x3c4c42['cost']>this['budgets']['monthly']&&this[_0x59bfde(0x118)]('monthly',_0x3c4c42['cost'],this['budgets'][_0x59bfde(0x13c)]),this[_0x59bfde(0x103)](_0x36dad6,_0x596bb6,_0x3c4c42);}['checkThresholdAlerts'](_0x154cb9,_0x44874a,_0x3e0c7d){const _0x10daf8=a0_0x724650,_0x3a2be2=this['alerts']['thresholds'];this['checkThreshold']('daily',_0x154cb9[_0x10daf8(0x117)],this[_0x10daf8(0xf1)]['daily'],_0x3a2be2),this[_0x10daf8(0xf0)]('weekly',_0x44874a[_0x10daf8(0x117)],this[_0x10daf8(0xf1)][_0x10daf8(0x129)],_0x3a2be2),this[_0x10daf8(0xf0)]('monthly',_0x3e0c7d[_0x10daf8(0x117)],this['budgets']['monthly'],_0x3a2be2);}[a0_0x724650(0xf0)](_0x99b342,_0x1f182e,_0x2efb61,_0xf0c095){const _0x1aa08c=a0_0x724650,_0x39dbad=_0x1f182e/_0x2efb61*0x64;for(const _0x31bbc9 of _0xf0c095){if(_0x39dbad>=_0x31bbc9){const _0x2e4358=_0x99b342+'_'+_0x31bbc9,_0x4e92f8=this[_0x1aa08c(0x137)]['lastAlertTimes'][_0x1aa08c(0x140)](_0x2e4358),_0x3ea48e=Date[_0x1aa08c(0x134)]();(!_0x4e92f8||_0x3ea48e-_0x4e92f8>0x36ee80)&&(this[_0x1aa08c(0xfa)](_0x99b342,_0x39dbad,_0x31bbc9,_0x1f182e,_0x2efb61),this[_0x1aa08c(0x137)]['lastAlertTimes'][_0x1aa08c(0x119)](_0x2e4358,_0x3ea48e));break;}}}['sendBudgetAlert'](_0x4141c3,_0x13c3b4,_0x1c422f){const _0x4a8e55=a0_0x724650;this['logger'][_0x4a8e55(0x147)]('Budget\x20limit\x20exceeded',{'period':_0x4141c3,'currentUsage':_0x13c3b4,'budgetLimit':_0x1c422f,'excess':_0x13c3b4-_0x1c422f}),typeof process!=='undefined'&&process['emit']&&process['emit'](_0x4a8e55(0x121),{'type':_0x4a8e55(0x10f),'period':_0x4141c3,'currentUsage':_0x13c3b4,'budgetLimit':_0x1c422f,'excess':_0x13c3b4-_0x1c422f});}['sendThresholdAlert'](_0x127a77,_0x222d6a,_0x3fe609,_0x47bb67,_0x1b0351){const _0x1d78d7=a0_0x724650;this[_0x1d78d7(0x12f)]['warn']('Budget\x20threshold\x20reached',{'period':_0x127a77,'percentage':Math['round'](_0x222d6a),'threshold':_0x3fe609,'usage':_0x47bb67,'budget':_0x1b0351}),typeof process!=='undefined'&&process[_0x1d78d7(0x11c)]&&process['emit']('budgetAlert',{'type':_0x1d78d7(0x10e),'period':_0x127a77,'percentage':Math[_0x1d78d7(0x111)](_0x222d6a),'threshold':_0x3fe609,'usage':_0x47bb67,'budget':_0x1b0351});}['getDayKey'](_0x55d8dc){const _0x109b50=a0_0x724650;return _0x55d8dc['toISOString']()[_0x109b50(0x112)]('T')[0x0];}['getWeekKey'](_0x1e1fe1){const _0x1eb7ce=a0_0x724650,_0x500175=_0x1e1fe1[_0x1eb7ce(0x138)](),_0x270c4e=this['getWeekNumber'](_0x1e1fe1);return _0x500175+'-W'+_0x270c4e['toString']()['padStart'](0x2,'0');}[a0_0x724650(0x139)](_0x4059f2){const _0x1af5fc=a0_0x724650,_0x1a4519=_0x4059f2[_0x1af5fc(0x138)](),_0x25e9bc=_0x4059f2['getMonth']()+0x1;return _0x1a4519+'-'+_0x25e9bc[_0x1af5fc(0x13b)]()[_0x1af5fc(0x133)](0x2,'0');}['getWeekNumber'](_0xa10e40){const _0x41ba0d=a0_0x724650,_0x82ba58=new Date(_0xa10e40[_0x41ba0d(0x138)](),0x0,0x1),_0x316178=(_0xa10e40-_0x82ba58)/0x5265c00;return Math['ceil']((_0x316178+_0x82ba58[_0x41ba0d(0x106)]()+0x1)/0x7);}['convertToCSV'](_0x5898b9){const _0x3dba08=a0_0x724650,_0x2aaed7=[];return _0x2aaed7['push'](['Period',_0x3dba08(0x115),_0x3dba08(0x122),_0x3dba08(0x101),_0x3dba08(0x11d),'Agent','Model']),Object['entries'](_0x5898b9['daily'])[_0x3dba08(0xfc)](([_0x181732,_0x10eb6a])=>{const _0x190779=_0x3dba08;_0x2aaed7[_0x190779(0x13a)](['Daily',_0x181732,_0x10eb6a[_0x190779(0x117)],_0x10eb6a['tokens'],_0x10eb6a[_0x190779(0xfd)],'','']),Object['entries'](_0x10eb6a[_0x190779(0xf9)]||{})[_0x190779(0xfc)](([_0x4a8b54,_0x5c12c3])=>{const _0x42ac7a=_0x190779;_0x2aaed7[_0x42ac7a(0x13a)](['Daily',_0x181732,_0x5c12c3['cost'],_0x5c12c3['tokens'],_0x5c12c3['requests'],_0x4a8b54,'']);});}),_0x2aaed7[_0x3dba08(0x12a)](_0x255287=>_0x255287[_0x3dba08(0x102)](','))['join']('\x0a');}[a0_0x724650(0xf3)](){const _0x1e3e7d=a0_0x724650;try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x3fb4f7){this[_0x1e3e7d(0x12f)][_0x1e3e7d(0x143)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x3fb4f7['message']});}}['saveUsageData'](){const _0x2d630c=a0_0x724650;try{this['logger'][_0x2d630c(0x146)](_0x2d630c(0x136));}catch(_0x6b947c){this[_0x2d630c(0x12f)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x6b947c['message']});}}[a0_0x724650(0x142)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
@@ -1 +1 @@
1
- function a0_0x4ebb(_0x3b29d1,_0x2f6fde){_0x3b29d1=_0x3b29d1-0xfd;const _0x10f072=a0_0x10f0();let _0x4ebb47=_0x10f072[_0x3b29d1];if(a0_0x4ebb['fBrJmD']===undefined){var _0x4d4050=function(_0x5b6c44){const _0x457403='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x7f49bd='',_0x2226f4='';for(let _0x49302e=0x0,_0x482e2b,_0x5948d6,_0x3502e8=0x0;_0x5948d6=_0x5b6c44['charAt'](_0x3502e8++);~_0x5948d6&&(_0x482e2b=_0x49302e%0x4?_0x482e2b*0x40+_0x5948d6:_0x5948d6,_0x49302e++%0x4)?_0x7f49bd+=String['fromCharCode'](0xff&_0x482e2b>>(-0x2*_0x49302e&0x6)):0x0){_0x5948d6=_0x457403['indexOf'](_0x5948d6);}for(let _0x3de263=0x0,_0x4d8fb7=_0x7f49bd['length'];_0x3de263<_0x4d8fb7;_0x3de263++){_0x2226f4+='%'+('00'+_0x7f49bd['charCodeAt'](_0x3de263)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2226f4);};a0_0x4ebb['LSRrXz']=_0x4d4050,a0_0x4ebb['AwjAWP']={},a0_0x4ebb['fBrJmD']=!![];}const _0x4a78da=_0x10f072[0x0],_0x55a345=_0x3b29d1+_0x4a78da,_0x23aea0=a0_0x4ebb['AwjAWP'][_0x55a345];return!_0x23aea0?(_0x4ebb47=a0_0x4ebb['LSRrXz'](_0x4ebb47),a0_0x4ebb['AwjAWP'][_0x55a345]=_0x4ebb47):_0x4ebb47=_0x23aea0,_0x4ebb47;}const a0_0x4c45f7=a0_0x4ebb;(function(_0xef7cc2,_0x3e02f9){const _0x45b102=a0_0x4ebb,_0x381436=_0xef7cc2();while(!![]){try{const _0x5a0dec=parseInt(_0x45b102(0x10c))/0x1+-parseInt(_0x45b102(0x12e))/0x2*(parseInt(_0x45b102(0x10e))/0x3)+-parseInt(_0x45b102(0x129))/0x4*(-parseInt(_0x45b102(0x12d))/0x5)+-parseInt(_0x45b102(0x12c))/0x6+parseInt(_0x45b102(0x11e))/0x7*(-parseInt(_0x45b102(0x11d))/0x8)+-parseInt(_0x45b102(0x125))/0x9+parseInt(_0x45b102(0x10b))/0xa*(parseInt(_0x45b102(0x11a))/0xb);if(_0x5a0dec===_0x3e02f9)break;else _0x381436['push'](_0x381436['shift']());}catch(_0x26d66f){_0x381436['push'](_0x381436['shift']());}}}(a0_0x10f0,0x3f47c));import a0_0x7f49bd from'./fileAttachmentService.js';function a0_0x10f0(){const _0x1a4289=['CMvMzxjLBMnL','zMLSzu5HBwu','zM9YBwf0q29UDgvUDezPBgu','Dg9Rzw5fC3rPBwf0zq','Dg9ju09tDhjPBMC','zM9YBwf0vgv4DezPBgu','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','nde5mhfev1vzqq','mZK1mJqWCLHTtNr6','zM9YBwf0qNL0zxm','m0jTu3POAG','jNf1B3q7','zxn0Aw1HDgvuB3rHBfrVA2vUCW','pc9HDhrHy2HLzc1MAwXLCZ4k','zxnJyxbLwg1S','zM9YBwf0sw1Hz2vgAwXL','BwvZC2fNzq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','ChvZAa','zMXVB3i','y29UDgvUDa','yNvPBgreEw5HBwLJq29UDgv4Da','nZiZofb0Cg1uva','jMD0oW','Bw9Kzq','mJq4nJqWoeXqBvfsuW','n2L2EhrssW','zMLSDgvY','iIb0ExbLpsi','CgrM','iIbTB2rPzMLLzd0I','Bg9Nz2vY','s0iIig1Vzgu9iMnVBNrLBNqIpGO','mtC0odqYmvDWDNLqBG','Aw5PDgLHBgL6zq','jMX0oW','CMvWBgfJzq','mtu1nLbczgHztq','zM9YBwf0uMvMzxjLBMnLrMLSzq','jMfWB3m7','mJGXmtG0whD1sLDS','nty5mg5tChLeqW','nJa0otG4uvzzswnn','z2v0qxr0ywnOBwvUDenVBNrLBNq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','iIbZAxPLpsi','Bg9N','zM9YBwf0ugrMrMLSzq','Dgv4Da','yxr0ywnOBwvUDfnLCNzPy2u','cJXMAwXLlxjLzMvYzw5Jzxm+cG','zxjYB3i','cIaGpc9MAwXLpG','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','BgvUz3rO','ica8zMLSzsbUyw1Lpsi','Dg9gAxHLza'];a0_0x10f0=function(){return _0x1a4289;};return a0_0x10f0();}class ContextInjectionService{constructor(_0x2226f4={},_0x49302e=null){const _0x1103bf=a0_0x4ebb;this['config']=_0x2226f4,this['logger']=_0x49302e,this[_0x1103bf(0x135)]=new a0_0x7f49bd(_0x2226f4,_0x49302e);}async['initialize'](){const _0x22f244=a0_0x4ebb;await this['attachmentService'][_0x22f244(0x126)]();}async[a0_0x4c45f7(0x119)](_0x482e2b){const _0x22de7b=a0_0x4c45f7;try{const _0x5948d6=await this[_0x22de7b(0x135)][_0x22de7b(0x115)](_0x482e2b);if(_0x5948d6['length']===0x0)return'';const _0x3502e8=_0x5948d6[_0x22de7b(0x11f)](_0x5d5ce1=>_0x5d5ce1['mode']===_0x22de7b(0x118)),_0x3de263=_0x5948d6[_0x22de7b(0x11f)](_0x26690f=>_0x26690f['mode']==='reference');let _0x4d8fb7='';if(_0x3502e8[_0x22de7b(0x101)]>0x0){_0x4d8fb7+='\x0a<attached-files>\x0a';for(const _0x5029e5 of _0x3502e8){const _0x35d888=await this[_0x22de7b(0x135)][_0x22de7b(0x12f)](_0x5029e5['fileId']);if(_0x35d888){const _0x4920d7=this['formatContentFile'](_0x5029e5,_0x35d888);_0x4d8fb7+=_0x4920d7+'\x0a';}}_0x4d8fb7+=_0x22de7b(0x111);}if(_0x3de263[_0x22de7b(0x101)]>0x0){_0x4d8fb7+=_0x22de7b(0xfd);for(const _0x25016e of _0x3de263){const _0x24a3e1=this['formatReferenceFile'](_0x25016e);_0x4d8fb7+=_0x24a3e1+'\x0a';}_0x4d8fb7+=_0x22de7b(0x130),_0x4d8fb7+=_0x22de7b(0x10a);}return _0x4d8fb7;}catch(_0x2a2761){return this['logger']?.[_0x22de7b(0xfe)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x482e2b,'error':_0x2a2761[_0x22de7b(0x114)]}),'';}}[a0_0x4c45f7(0x106)](_0x521d53,_0x404d12){const _0x35c0be=a0_0x4c45f7,{fileName:_0x264b4c,fileType:_0x2bb86a,size:_0x1defb8,contentType:_0x274d08}=_0x521d53,_0x352da1=(_0x1defb8/0x400)['toFixed'](0x2);if(_0x274d08===_0x35c0be(0x134))return this[_0x35c0be(0x109)](_0x521d53,_0x404d12);else{if(_0x274d08==='image')return this[_0x35c0be(0x113)](_0x521d53,_0x404d12);else{if(_0x274d08===_0x35c0be(0x121))return this[_0x35c0be(0x133)](_0x521d53,_0x404d12);}}return'\x20\x20<file\x20name=\x22'+this[_0x35c0be(0x112)](_0x264b4c)+'\x22\x20type=\x22'+_0x2bb86a+_0x35c0be(0x131)+_0x352da1+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x35c0be(0x112)](_0x404d12)+'\x0a\x20\x20</file>';}[a0_0x4c45f7(0x109)](_0x1a0c90,_0xfb3933){const _0x591336=a0_0x4c45f7,{fileName:_0x13c96a,fileType:_0x2753e7,size:_0x2ea6d2}=_0x1a0c90,_0x208fdc=(_0x2ea6d2/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x13c96a)+'\x22\x20type=\x22'+_0x2753e7+'\x22\x20size=\x22'+_0x208fdc+_0x591336(0x124)+this[_0x591336(0x112)](_0xfb3933)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x1c6791,_0x47a393){const _0x1b7616=a0_0x4c45f7,{fileName:_0x2203f4,fileType:_0xd167c0,size:_0x39e644}=_0x1c6791,_0x528ee7=(_0x39e644/0x400)[_0x1b7616(0x103)](0x2);return _0x1b7616(0x102)+this['escapeXml'](_0x2203f4)+_0x1b7616(0x120)+_0xd167c0+'\x22\x20size=\x22'+_0x528ee7+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x47a393+'\x0a\x20\x20</file>';}['formatPdfFile'](_0x3b4a8b,_0x56e522){const _0x16490e=a0_0x4c45f7,{fileName:_0x4331e0,fileType:_0x4dac4d,size:_0x5f0c86}=_0x3b4a8b,_0xd8305e=(_0x5f0c86/0x400)['toFixed'](0x2);return _0x16490e(0x102)+this['escapeXml'](_0x4331e0)+_0x16490e(0x120)+_0x4dac4d+'\x22\x20size=\x22'+_0xd8305e+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x56e522)+_0x16490e(0xff);}[a0_0x4c45f7(0x12a)](_0x4918af){const _0x490bbc=a0_0x4c45f7,{fileName:_0x42d2b6,originalPath:_0x3cdd0c,size:_0x54309e,fileType:_0x21aa08,lastModified:_0x23f94a}=_0x4918af,_0xb4298e=this['formatBytes'](_0x54309e),_0xbbfa52=new Date(_0x23f94a)[_0x490bbc(0x108)]()['split']('T')[0x0];return _0x490bbc(0x102)+this[_0x490bbc(0x112)](_0x42d2b6)+'\x22\x20path=\x22'+this[_0x490bbc(0x112)](_0x3cdd0c)+_0x490bbc(0x131)+_0xb4298e+'\x22\x20type=\x22'+_0x21aa08+_0x490bbc(0x122)+_0xbbfa52+'\x22\x20/>';}[a0_0x4c45f7(0x112)](_0x2e75a1){const _0x4eb381=a0_0x4c45f7;if(!_0x2e75a1)return'';return _0x2e75a1[_0x4eb381(0x128)](/&/g,'&amp;')['replace'](/</g,_0x4eb381(0x127))['replace'](/>/g,_0x4eb381(0x11b))[_0x4eb381(0x128)](/"/g,_0x4eb381(0x10f))['replace'](/'/g,_0x4eb381(0x12b));}['formatBytes'](_0x252202){const _0x1abfc8=a0_0x4c45f7;if(_0x252202===0x0)return'0\x20Bytes';const _0xd91ec8=0x400,_0xee1a6=['Bytes','KB','MB','GB'],_0x323d36=Math[_0x1abfc8(0x117)](Math['log'](_0x252202)/Math[_0x1abfc8(0x132)](_0xd91ec8));return parseFloat((_0x252202/Math['pow'](_0xd91ec8,_0x323d36))[_0x1abfc8(0x103)](0x2))+_0xee1a6[_0x323d36];}async[a0_0x4c45f7(0x110)](_0x29ae16){const _0x4eeb4a=a0_0x4c45f7;try{const _0x5e162b=await this['attachmentService'][_0x4eeb4a(0x115)](_0x29ae16);let _0x2764b5=0x0;for(const _0x406149 of _0x5e162b){_0x406149['mode']===_0x4eeb4a(0x118)?_0x2764b5+=_0x406149['tokenEstimate']||0x0:_0x2764b5+=0x14;}return _0x2764b5;}catch(_0x12156e){return this[_0x4eeb4a(0x123)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x29ae16,'error':_0x12156e[_0x4eeb4a(0x114)]}),0x0;}}async['getAttachmentSummary'](_0x52e229){const _0x1bd759=a0_0x4c45f7;try{const _0x3d7c7c=await this['attachmentService'][_0x1bd759(0x115)](_0x52e229),_0x4df3cf={'totalActive':_0x3d7c7c[_0x1bd759(0x101)],'contentMode':_0x3d7c7c['filter'](_0x323ce3=>_0x323ce3[_0x1bd759(0x11c)]==='content')['length'],'referenceMode':_0x3d7c7c[_0x1bd759(0x11f)](_0x5b8f1e=>_0x5b8f1e['mode']===_0x1bd759(0x104))[_0x1bd759(0x101)],'estimatedTokens':0x0,'files':[]};for(const _0xe32939 of _0x3d7c7c){_0x4df3cf['estimatedTokens']+=_0xe32939[_0x1bd759(0x107)]||0x0,_0x4df3cf['files'][_0x1bd759(0x116)]({'fileName':_0xe32939[_0x1bd759(0x105)],'mode':_0xe32939[_0x1bd759(0x11c)],'size':this[_0x1bd759(0x10d)](_0xe32939['size']),'tokens':_0xe32939['tokenEstimate']||0x0});}return _0x4df3cf;}catch(_0x66f9e1){return this['logger']?.['error'](_0x1bd759(0x100),{'agentId':_0x52e229,'error':_0x66f9e1[_0x1bd759(0x114)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
1
+ function a0_0x2046(){const _0x376aa3=['mJa2mdC3nLzRuLfyrq','iIbZAxPLpsi','mZK0mNLyAuXNAW','Bg9Nz2vY','Dgv4Da','zMLSzuLK','zxjYB3i','CMvMzxjLBMnL','Dg9Rzw5fC3rPBwf0zq','y29UzMLN','BgvUz3rO','ChvZAa','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0q29UDgvUDezPBgu','mZGZmgDUBwnAta','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','zxnJyxbLwg1S','mtrUqKrju2K','zMLSDgvY','CMvWBgfJzq','zM9YBwf0vgv4DezPBgu','mJq5otqYBfLguxH2','mtbnrfbjAuS','zM9YBwf0qNL0zxm','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIbTB2rPzMLLzd0I','Bw9Kzq','BwvZC2fNzq','zMXVB3i','mtaWodiWngjQzfHcrq','cIaGpc9MAwXLpG','CgrM','yNvPBgreEw5HBwLJq29UDgv4Da','Bg9N','iIb0ExbLpsi','m0DOvvvvqq','Dg9gAxHLza','zM9YBwf0uMvMzxjLBMnLrMLSzq','zMLSzxm','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','ica8zMLSzsbUyw1Lpsi','mty4vKPftKDh','mJu4mZCYExbhquTn','y29UDgvUDa','s0iIig1Vzgu9iMnVBNrLBNqIpGO','iIbWyxrOpsi','Aw1Hz2u','zM9YBwf0ugrMrMLSzq','ode4mJHoqw90t1m','mZq5ndC3mNbHshPoBG'];a0_0x2046=function(){return _0x376aa3;};return a0_0x2046();}function a0_0x36ff(_0x521c3c,_0x37d8cf){_0x521c3c=_0x521c3c-0x77;const _0x2046d6=a0_0x2046();let _0x36fff9=_0x2046d6[_0x521c3c];if(a0_0x36ff['pFirSF']===undefined){var _0x227afd=function(_0x1267f8){const _0x14ef8e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39f97e='',_0x579b28='';for(let _0x3d9d23=0x0,_0x1bc13c,_0x518895,_0x157698=0x0;_0x518895=_0x1267f8['charAt'](_0x157698++);~_0x518895&&(_0x1bc13c=_0x3d9d23%0x4?_0x1bc13c*0x40+_0x518895:_0x518895,_0x3d9d23++%0x4)?_0x39f97e+=String['fromCharCode'](0xff&_0x1bc13c>>(-0x2*_0x3d9d23&0x6)):0x0){_0x518895=_0x14ef8e['indexOf'](_0x518895);}for(let _0x507eb8=0x0,_0x56225e=_0x39f97e['length'];_0x507eb8<_0x56225e;_0x507eb8++){_0x579b28+='%'+('00'+_0x39f97e['charCodeAt'](_0x507eb8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x579b28);};a0_0x36ff['bquYaR']=_0x227afd,a0_0x36ff['lcrcxA']={},a0_0x36ff['pFirSF']=!![];}const _0x5744f6=_0x2046d6[0x0],_0x25bea4=_0x521c3c+_0x5744f6,_0x5e037a=a0_0x36ff['lcrcxA'][_0x25bea4];return!_0x5e037a?(_0x36fff9=a0_0x36ff['bquYaR'](_0x36fff9),a0_0x36ff['lcrcxA'][_0x25bea4]=_0x36fff9):_0x36fff9=_0x5e037a,_0x36fff9;}const a0_0x27e730=a0_0x36ff;(function(_0x2319c2,_0xbee343){const _0x13bc54=a0_0x36ff,_0x4414a3=_0x2319c2();while(!![]){try{const _0x4522be=parseInt(_0x13bc54(0x95))/0x1+parseInt(_0x13bc54(0x8f))/0x2+-parseInt(_0x13bc54(0x88))/0x3*(parseInt(_0x13bc54(0x82))/0x4)+parseInt(_0x13bc54(0xa5))/0x5*(parseInt(_0x13bc54(0x99))/0x6)+-parseInt(_0x13bc54(0xa9))/0x7*(-parseInt(_0x13bc54(0x97))/0x8)+-parseInt(_0x13bc54(0x96))/0x9*(parseInt(_0x13bc54(0x7b))/0xa)+-parseInt(_0x13bc54(0x7a))/0xb*(parseInt(_0x13bc54(0x8e))/0xc);if(_0x4522be===_0xbee343)break;else _0x4414a3['push'](_0x4414a3['shift']());}catch(_0x4158ae){_0x4414a3['push'](_0x4414a3['shift']());}}}(a0_0x2046,0x4229b));import a0_0x39f97e from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x579b28={},_0x3d9d23=null){const _0x1e625f=a0_0x36ff;this[_0x1e625f(0xa0)]=_0x579b28,this['logger']=_0x3d9d23,this['attachmentService']=new a0_0x39f97e(_0x579b28,_0x3d9d23);}async['initialize'](){await this['attachmentService']['initialize']();}async[a0_0x27e730(0x85)](_0x1bc13c){const _0x24a6bd=a0_0x27e730;try{const _0x518895=await this[_0x24a6bd(0xa3)]['getActiveAttachments'](_0x1bc13c);if(_0x518895[_0x24a6bd(0xa1)]===0x0)return'';const _0x157698=_0x518895['filter'](_0x3dc528=>_0x3dc528['mode']===_0x24a6bd(0x90)),_0x507eb8=_0x518895[_0x24a6bd(0x77)](_0x1c50cc=>_0x1c50cc['mode']==='reference');let _0x56225e='';if(_0x157698['length']>0x0){_0x56225e+='\x0a<attached-files>\x0a';for(const _0xdf016e of _0x157698){const _0xc34069=await this[_0x24a6bd(0xa3)]['getAttachmentContent'](_0xdf016e[_0x24a6bd(0x9c)]);if(_0xc34069){const _0x239492=this[_0x24a6bd(0xa4)](_0xdf016e,_0xc34069);_0x56225e+=_0x239492+'\x0a';}}_0x56225e+='</attached-files>\x0a';}if(_0x507eb8[_0x24a6bd(0xa1)]>0x0){_0x56225e+=_0x24a6bd(0x7d);for(const _0x474fe7 of _0x507eb8){const _0x4ec1cc=this[_0x24a6bd(0x8a)](_0x474fe7);_0x56225e+=_0x4ec1cc+'\x0a';}_0x56225e+='</file-references>\x0a',_0x56225e+=_0x24a6bd(0xa6);}return _0x56225e;}catch(_0x25f0a5){return this['logger']?.['error']('Error\x20building\x20dynamic\x20context',{'agentId':_0x1bc13c,'error':_0x25f0a5['message']}),'';}}['formatContentFile'](_0x4962ff,_0x2b5ba6){const _0xf08be0=a0_0x27e730,{fileName:_0x5d8638,fileType:_0x57e8ba,size:_0xf3e80d,contentType:_0x237967}=_0x4962ff,_0x55c52f=(_0xf3e80d/0x400)['toFixed'](0x2);if(_0x237967===_0xf08be0(0x9b))return this[_0xf08be0(0x79)](_0x4962ff,_0x2b5ba6);else{if(_0x237967===_0xf08be0(0x93))return this['formatImageFile'](_0x4962ff,_0x2b5ba6);else{if(_0x237967===_0xf08be0(0x84))return this[_0xf08be0(0x94)](_0x4962ff,_0x2b5ba6);}}return _0xf08be0(0x8d)+this[_0xf08be0(0xa8)](_0x5d8638)+_0xf08be0(0x87)+_0x57e8ba+_0xf08be0(0x98)+_0x55c52f+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x2b5ba6)+_0xf08be0(0x83);}[a0_0x27e730(0x79)](_0x298ef1,_0x4583fe){const _0x1866ab=a0_0x27e730,{fileName:_0x222144,fileType:_0x243c1b,size:_0x3b47e6}=_0x298ef1,_0x7347db=(_0x3b47e6/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x222144)+_0x1866ab(0x87)+_0x243c1b+_0x1866ab(0x98)+_0x7347db+_0x1866ab(0x91)+this[_0x1866ab(0xa8)](_0x4583fe)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x902da1,_0x270708){const _0x1f3974=a0_0x27e730,{fileName:_0x332b87,fileType:_0x505249,size:_0x27537d}=_0x902da1,_0x2c6c98=(_0x27537d/0x400)[_0x1f3974(0x89)](0x2);return _0x1f3974(0x8d)+this['escapeXml'](_0x332b87)+_0x1f3974(0x87)+_0x505249+_0x1f3974(0x98)+_0x2c6c98+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x270708+'\x0a\x20\x20</file>';}[a0_0x27e730(0x94)](_0x4e800d,_0x49689e){const _0x210a68=a0_0x27e730,{fileName:_0x44eb45,fileType:_0x48427d,size:_0x1a0ce7}=_0x4e800d,_0x1fb9af=(_0x1a0ce7/0x400)[_0x210a68(0x89)](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x210a68(0xa8)](_0x44eb45)+'\x22\x20type=\x22'+_0x48427d+'\x22\x20size=\x22'+_0x1fb9af+_0x210a68(0x91)+this[_0x210a68(0xa8)](_0x49689e)+_0x210a68(0x83);}['formatReferenceFile'](_0x54840e){const _0xf8250e=a0_0x27e730,{fileName:_0x3d6171,originalPath:_0x4c4591,size:_0x130280,fileType:_0x4fa142,lastModified:_0x2d441d}=_0x54840e,_0x41bbdf=this['formatBytes'](_0x130280),_0x5d252e=new Date(_0x2d441d)['toISOString']()['split']('T')[0x0];return _0xf8250e(0x8d)+this[_0xf8250e(0xa8)](_0x3d6171)+_0xf8250e(0x92)+this[_0xf8250e(0xa8)](_0x4c4591)+_0xf8250e(0x98)+_0x41bbdf+_0xf8250e(0x87)+_0x4fa142+_0xf8250e(0x7e)+_0x5d252e+'\x22\x20/>';}['escapeXml'](_0x19a548){const _0x2852b8=a0_0x27e730;if(!_0x19a548)return'';return _0x19a548['replace'](/&/g,'&amp;')[_0x2852b8(0x78)](/</g,'&lt;')['replace'](/>/g,'&gt;')[_0x2852b8(0x78)](/"/g,'&quot;')['replace'](/'/g,'&apos;');}['formatBytes'](_0x51c192){const _0x4bd8eb=a0_0x27e730;if(_0x51c192===0x0)return'0\x20Bytes';const _0x2032df=0x400,_0x477bdf=['Bytes','KB','MB','GB'],_0x1675f4=Math[_0x4bd8eb(0x81)](Math[_0x4bd8eb(0x86)](_0x51c192)/Math[_0x4bd8eb(0x86)](_0x2032df));return parseFloat((_0x51c192/Math['pow'](_0x2032df,_0x1675f4))[_0x4bd8eb(0x89)](0x2))+_0x477bdf[_0x1675f4];}async['estimateTotalTokens'](_0x2ad5bd){const _0x1e95af=a0_0x27e730;try{const _0x189b4c=await this[_0x1e95af(0xa3)]['getActiveAttachments'](_0x2ad5bd);let _0x524901=0x0;for(const _0x2c35e0 of _0x189b4c){_0x2c35e0['mode']===_0x1e95af(0x90)?_0x524901+=_0x2c35e0['tokenEstimate']||0x0:_0x524901+=0x14;}return _0x524901;}catch(_0x2d4fb7){return this['logger']?.['error'](_0x1e95af(0x8c),{'agentId':_0x2ad5bd,'error':_0x2d4fb7[_0x1e95af(0x80)]}),0x0;}}async['getAttachmentSummary'](_0x317947){const _0x1a5c82=a0_0x27e730;try{const _0x426012=await this[_0x1a5c82(0xa3)]['getActiveAttachments'](_0x317947),_0x3561aa={'totalActive':_0x426012['length'],'contentMode':_0x426012[_0x1a5c82(0x77)](_0x174141=>_0x174141[_0x1a5c82(0x7f)]==='content')['length'],'referenceMode':_0x426012[_0x1a5c82(0x77)](_0x2f40ae=>_0x2f40ae['mode']===_0x1a5c82(0x9e))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x4dfcba of _0x426012){_0x3561aa['estimatedTokens']+=_0x4dfcba['tokenEstimate']||0x0,_0x3561aa[_0x1a5c82(0x8b)][_0x1a5c82(0xa2)]({'fileName':_0x4dfcba['fileName'],'mode':_0x4dfcba['mode'],'size':this[_0x1a5c82(0x7c)](_0x4dfcba['size']),'tokens':_0x4dfcba[_0x1a5c82(0x9f)]||0x0});}return _0x3561aa;}catch(_0x523ce1){return this[_0x1a5c82(0x9a)]?.[_0x1a5c82(0x9d)](_0x1a5c82(0xa7),{'agentId':_0x317947,'error':_0x523ce1[_0x1a5c82(0x80)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;