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

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 -1
  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_0x293c1d=a0_0x2075;(function(_0x1aae45,_0x11a431){const _0x1dffa2=a0_0x2075,_0x6e0991=_0x1aae45();while(!![]){try{const _0x4dfdab=-parseInt(_0x1dffa2(0x1e3))/0x1+parseInt(_0x1dffa2(0x222))/0x2*(-parseInt(_0x1dffa2(0x198))/0x3)+parseInt(_0x1dffa2(0x1c0))/0x4+parseInt(_0x1dffa2(0x1d6))/0x5*(-parseInt(_0x1dffa2(0x1c3))/0x6)+parseInt(_0x1dffa2(0x1da))/0x7+-parseInt(_0x1dffa2(0x201))/0x8+-parseInt(_0x1dffa2(0x1f9))/0x9*(-parseInt(_0x1dffa2(0x1b5))/0xa);if(_0x4dfdab===_0x11a431)break;else _0x6e0991['push'](_0x6e0991['shift']());}catch(_0x4cf504){_0x6e0991['push'](_0x6e0991['shift']());}}}(a0_0x311f,0xada31));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x2075(_0xf77a90,_0x628751){_0xf77a90=_0xf77a90-0x193;const _0x311fdf=a0_0x311f();let _0x2075a5=_0x311fdf[_0xf77a90];if(a0_0x2075['VxdMfI']===undefined){var _0x181edc=function(_0x2d5a87){const _0x2fe778='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2502dd='',_0x41822c='';for(let _0x512c48=0x0,_0x311eee,_0x20928c,_0x1e02c4=0x0;_0x20928c=_0x2d5a87['charAt'](_0x1e02c4++);~_0x20928c&&(_0x311eee=_0x512c48%0x4?_0x311eee*0x40+_0x20928c:_0x20928c,_0x512c48++%0x4)?_0x2502dd+=String['fromCharCode'](0xff&_0x311eee>>(-0x2*_0x512c48&0x6)):0x0){_0x20928c=_0x2fe778['indexOf'](_0x20928c);}for(let _0x54b86b=0x0,_0x47c13e=_0x2502dd['length'];_0x54b86b<_0x47c13e;_0x54b86b++){_0x41822c+='%'+('00'+_0x2502dd['charCodeAt'](_0x54b86b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x41822c);};a0_0x2075['yJDEeA']=_0x181edc,a0_0x2075['oBesbS']={},a0_0x2075['VxdMfI']=!![];}const _0x597b49=_0x311fdf[0x0],_0x3d0f75=_0xf77a90+_0x597b49,_0x3194b2=a0_0x2075['oBesbS'][_0x3d0f75];return!_0x3194b2?(_0x2075a5=a0_0x2075['yJDEeA'](_0x2075a5),a0_0x2075['oBesbS'][_0x3d0f75]=_0x2075a5):_0x2075a5=_0x3194b2,_0x2075a5;}class AIService{constructor(_0x2502dd,_0x41822c,_0x512c48,_0x311eee){const _0x326559=a0_0x2075;this[_0x326559(0x1a6)]=_0x2502dd,this['logger']=_0x41822c,this[_0x326559(0x208)]=_0x512c48,this[_0x326559(0x1cd)]=_0x311eee,this[_0x326559(0x1ab)]=_0x2502dd['backend']?.[_0x326559(0x1ab)]||'https://api.loxia.ai',this[_0x326559(0x213)]=_0x2502dd[_0x326559(0x20c)]?.[_0x326559(0x213)]||0xea60,this['retryAttempts']=_0x2502dd['backend']?.['retryAttempts']||0x3,this['rateLimiters']=new Map(),this[_0x326559(0x22b)]=new Map(),this[_0x326559(0x219)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x326559(0x1cf)]=new Map(),this[_0x326559(0x1ad)]=null,this[_0x326559(0x1cc)]=null;}async['sendMessage'](_0x20928c,_0x1e02c4,_0x54b86b={}){const _0x5e4036=a0_0x2075,_0x47c13e='req-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x5e4036(0x1e9)](_0x20928c);const _0x5bd70a=this[_0x5e4036(0x209)](_0x1e02c4,_0x20928c,_0x54b86b),_0x29c382={'model':_0x20928c,'messages':_0x5bd70a,'options':{'max_tokens':this['modelSpecs'][_0x20928c]?.['maxTokens']||0xfa0,'temperature':_0x54b86b['temperature']||0.7,'stream':_0x54b86b['stream']||![]},'metadata':{'requestId':_0x47c13e,'agentId':_0x54b86b['agentId'],'timestamp':new Date()[_0x5e4036(0x1e0)]()}};_0x54b86b['systemPrompt']&&(_0x29c382['system']=_0x54b86b['systemPrompt']);this['logger']['info']('Sending\x20message\x20to\x20model:\x20'+_0x20928c,{'requestId':_0x47c13e,'agentId':_0x54b86b[_0x5e4036(0x224)],'messageCount':Array[_0x5e4036(0x1e1)](_0x1e02c4)?_0x1e02c4[_0x5e4036(0x197)]:0x1,'maxTokens':_0x29c382[_0x5e4036(0x20a)]});const _0x4ed6fc=await this['_makeAPIRequest']('/chat/completions',_0x29c382,_0x47c13e,{..._0x54b86b,'sessionId':_0x54b86b['sessionId'],'platformProvided':_0x54b86b['platformProvided']||![]});return _0x4ed6fc['usage']&&await this['trackUsage'](_0x54b86b[_0x5e4036(0x224)],_0x20928c,{'prompt_tokens':_0x4ed6fc[_0x5e4036(0x20b)]['prompt_tokens']||0x0,'completion_tokens':_0x4ed6fc['usage']['completion_tokens']||0x0,'total_tokens':_0x4ed6fc[_0x5e4036(0x20b)][_0x5e4036(0x227)]||0x0}),this[_0x5e4036(0x1d7)](),{'content':_0x4ed6fc['choices'][0x0]?.['message']?.[_0x5e4036(0x1f2)]||'','model':_0x4ed6fc[_0x5e4036(0x1a1)],'tokenUsage':_0x4ed6fc['usage'],'requestId':_0x47c13e,'finishReason':_0x4ed6fc[_0x5e4036(0x1f1)][0x0]?.['finish_reason']};}catch(_0x7fd068){this['_recordFailure'](),this[_0x5e4036(0x1be)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x7fd068['message'],{'requestId':_0x47c13e,'model':_0x20928c,'agentId':_0x54b86b['agentId'],'error':_0x7fd068['stack']}),await this[_0x5e4036(0x203)](_0x7fd068,{'requestId':_0x47c13e,'model':_0x20928c,'agentId':_0x54b86b[_0x5e4036(0x224)]});throw _0x7fd068;}}async[a0_0x293c1d(0x1ba)](_0xeffb41,_0x18b861={}){const _0x45e662=a0_0x293c1d;try{const _0x1fd6e1=MODEL_ROUTING[_0xeffb41[_0x45e662(0x1a5)]()]||MODEL_ROUTING[_0x45e662(0x1a9)],_0x2cd8e1=[];for(const _0xeeeb76 of _0x1fd6e1){const _0x37a8df=await this['_checkModelHealth'](_0xeeeb76);_0x37a8df&&_0x2cd8e1[_0x45e662(0x1a4)](_0xeeeb76);}if(_0x2cd8e1['length']===0x0)return this[_0x45e662(0x1be)][_0x45e662(0x1fe)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0xeffb41+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x357561=_0x2cd8e1[0x0];if(_0x18b861['preferredModel']&&_0x2cd8e1[_0x45e662(0x1d1)](_0x18b861['preferredModel']))_0x357561=_0x18b861['preferredModel'];else{if(_0x18b861['complexity']===_0x45e662(0x220)&&_0x2cd8e1[_0x45e662(0x1d1)](MODELS['ANTHROPIC_OPUS']))_0x357561=MODELS['ANTHROPIC_OPUS'];else _0x18b861['speed']==='fast'&&_0x2cd8e1[_0x45e662(0x1d1)](MODELS['ANTHROPIC_HAIKU'])&&(_0x357561=MODELS[_0x45e662(0x1fb)]);}return this['logger']['info'](_0x45e662(0x1ed)+_0xeffb41,{'selectedModel':_0x357561,'availableModels':_0x2cd8e1['length'],'context':_0x18b861}),_0x357561;}catch(_0x486d4a){return this[_0x45e662(0x1be)]['error']('Model\x20routing\x20failed:\x20'+_0x486d4a[_0x45e662(0x1d8)],{'task':_0xeffb41,'context':_0x18b861}),MODEL_ROUTING[_0x45e662(0x1a9)][0x0];}}async['compactizeConversation'](_0x24ec1d,_0x56c1ef){const _0x531c8c=a0_0x293c1d,_0x33d514=this[_0x531c8c(0x232)][_0x56c1ef];if(!_0x33d514)throw new Error(_0x531c8c(0x218)+_0x56c1ef);const _0x580458=_0x33d514['contextWindow']*0.8;let _0x12cc37=0x0;const _0x105f99=[],_0x30a7b9=await Promise[_0x531c8c(0x223)](_0x24ec1d[_0x531c8c(0x19f)](async _0x5c4bba=>({..._0x5c4bba,'estimatedTokens':await this['_estimateTokens'](_0x5c4bba[_0x531c8c(0x1f2)],_0x56c1ef)}))),_0x4d7953=[..._0x30a7b9]['reverse']();for(const _0x285f9c of _0x4d7953){if(_0x12cc37+_0x285f9c['estimatedTokens']>_0x580458){if(_0x105f99['length']===0x0){const _0xe9bc6d=await this[_0x531c8c(0x19b)](_0x285f9c['content'],_0x580458);_0x105f99['unshift']({..._0x285f9c,'content':_0xe9bc6d,'estimatedTokens':_0x580458});}break;}_0x105f99[_0x531c8c(0x1b4)](_0x285f9c),_0x12cc37+=_0x285f9c[_0x531c8c(0x1e8)];}const _0xf60f16=_0x30a7b9[_0x531c8c(0x21b)](0x0,-_0x105f99['length']);if(_0xf60f16[_0x531c8c(0x197)]>0x0){const _0x596e9f=await this[_0x531c8c(0x225)](_0xf60f16,_0x56c1ef);_0x105f99['unshift']({'role':_0x531c8c(0x210),'content':_0x531c8c(0x1ea)+_0x596e9f,'timestamp':_0xf60f16[0x0]['timestamp'],'type':_0x531c8c(0x1df),'estimatedTokens':await this[_0x531c8c(0x20f)](_0x596e9f,_0x56c1ef)});}return this['logger'][_0x531c8c(0x19a)](_0x531c8c(0x1ae)+_0x56c1ef,{'originalMessages':_0x24ec1d['length'],'compactizedMessages':_0x105f99['length'],'estimatedTokens':_0x12cc37,'maxTokens':_0x580458}),_0x105f99;}async['trackUsage'](_0x490bfe,_0x150478,_0x1f75af,_0x3c5eff){const _0x44bd47=a0_0x293c1d;try{this[_0x44bd47(0x208)]&&this[_0x44bd47(0x208)]['trackUsage'](_0x490bfe,_0x150478,_0x1f75af);}catch(_0x18d5b9){this[_0x44bd47(0x1be)]['error'](_0x44bd47(0x205)+_0x18d5b9[_0x44bd47(0x1d8)]);}}async['handleHttpError'](_0x2b6da1,_0x5efb75){const _0x4202d1=a0_0x293c1d,_0x5cdc9b=this[_0x4202d1(0x1cd)]?.[_0x4202d1(0x1d9)]?.(_0x2b6da1,_0x5efb75);switch(_0x2b6da1[_0x4202d1(0x1e5)]||_0x2b6da1['code']){case HTTP_STATUS[_0x4202d1(0x1bf)]:this['logger'][_0x4202d1(0x211)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x5efb75,'error':_0x2b6da1['message']});throw new Error(_0x4202d1(0x1ff)+_0x2b6da1[_0x4202d1(0x1d8)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger']['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x5efb75});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x4202d1(0x1be)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x5efb75});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x4202d1(0x1a3)]:this['logger'][_0x4202d1(0x211)](_0x4202d1(0x1b8),{'context':_0x5efb75});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0x4202d1(0x1de)]:this['logger'][_0x4202d1(0x1fe)]('Rate\x20limit\x20exceeded',{'context':_0x5efb75}),await this['_handleRateLimit'](_0x5efb75);throw new Error(_0x4202d1(0x1eb));case HTTP_STATUS[_0x4202d1(0x1dd)]:case HTTP_STATUS[_0x4202d1(0x1b6)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x4202d1(0x1fc)]:this['logger'][_0x4202d1(0x211)](_0x4202d1(0x216),{'context':_0x5efb75,'status':_0x2b6da1[_0x4202d1(0x1e5)]}),await this[_0x4202d1(0x19e)](_0x5efb75);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x4202d1(0x1be)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x5efb75,'error':_0x2b6da1[_0x4202d1(0x1d8)]});throw new Error('AI\x20service\x20error:\x20'+_0x2b6da1[_0x4202d1(0x1d8)]);}}[a0_0x293c1d(0x1aa)](_0x556e73){const _0x183d15=a0_0x293c1d;this[_0x183d15(0x1ad)]=_0x556e73,this[_0x183d15(0x1be)]?.[_0x183d15(0x19a)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x556e73});}['setAgentPool'](_0xf6d851){const _0x2f541e=a0_0x293c1d;this[_0x2f541e(0x1cc)]=_0xf6d851,this[_0x2f541e(0x1be)]?.[_0x2f541e(0x19a)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0xf6d851});}async['generateImage'](_0x50847a,_0x43514c={}){const _0x582659=a0_0x293c1d,_0x54fdef=_0x582659(0x221)+Date['now']()+'-'+Math[_0x582659(0x22f)]()[_0x582659(0x1dc)](0x24)['substr'](0x2,0x9);try{if(this[_0x582659(0x1f0)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x50847a||typeof _0x50847a!=='string'||_0x50847a[_0x582659(0x21c)]()[_0x582659(0x197)]===0x0)throw new Error(_0x582659(0x1e6));const _0x46eeda=_0x43514c[_0x582659(0x1a1)]||_0x582659(0x22a),_0x3895a4=_0x43514c[_0x582659(0x193)]||_0x582659(0x1f8),_0x39a03c=_0x43514c[_0x582659(0x226)]||_0x582659(0x215),_0x32ea6f=_0x43514c['responseFormat']||_0x582659(0x1fd);this['logger'][_0x582659(0x19a)]('Generating\x20image\x20with\x20model:\x20'+_0x46eeda,{'requestId':_0x54fdef,'model':_0x46eeda,'size':_0x3895a4,'quality':_0x39a03c,'promptLength':_0x50847a[_0x582659(0x197)]});const _0x5a6fcd={'prompt':_0x50847a,'model':_0x46eeda,'size':_0x3895a4,'quality':_0x39a03c,'response_format':_0x32ea6f,'n':0x1,'metadata':{'requestId':_0x54fdef,'timestamp':new Date()['toISOString']()}},_0x40156a=await this[_0x582659(0x1ec)](_0x5a6fcd,_0x54fdef,{'sessionId':_0x43514c[_0x582659(0x1d4)],'platformProvided':_0x43514c['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0x40156a['data']?.[0x0]?.['url']||null,'b64_json':_0x40156a[_0x582659(0x1c1)]?.[0x0]?.['b64_json']||null,'model':_0x40156a['model']||_0x46eeda,'requestId':_0x54fdef,'revisedPrompt':_0x40156a[_0x582659(0x1c1)]?.[0x0]?.['revised_prompt']||_0x50847a};}catch(_0x3b951c){this[_0x582659(0x207)](),this['logger'][_0x582659(0x211)](_0x582659(0x21d)+_0x3b951c['message'],{'requestId':_0x54fdef,'model':_0x43514c['model'],'error':_0x3b951c['stack']});throw _0x3b951c;}}async[a0_0x293c1d(0x1b0)](){const _0x3e24ed=a0_0x293c1d;try{const _0x5487e4=await this['_makeAPIRequest']('/health',{},'health-check');return _0x5487e4['status']===_0x3e24ed(0x1ce);}catch(_0x586ddc){return![];}}async[a0_0x293c1d(0x1e2)](_0x488a3f,_0x396f48){const _0x44c2ad=a0_0x293c1d;try{if(!this['_isValidModel'](_0x396f48))throw new Error(_0x44c2ad(0x1c5)+_0x396f48);let _0x12ca08=this[_0x44c2ad(0x1cf)]['get'](_0x488a3f);!_0x12ca08&&(_0x12ca08=new ConversationManager(_0x488a3f,this['logger']),this[_0x44c2ad(0x1cf)][_0x44c2ad(0x1c9)](_0x488a3f,_0x12ca08));const _0x4d0f1e=await _0x12ca08['switchModel'](_0x396f48),_0x2c3015=await this[_0x44c2ad(0x1cc)]?.[_0x44c2ad(0x1db)](_0x488a3f);return _0x2c3015&&(_0x2c3015[_0x44c2ad(0x1b1)]=_0x396f48,await this[_0x44c2ad(0x1cc)]['persistAgentState'](_0x488a3f)),this[_0x44c2ad(0x1be)][_0x44c2ad(0x19a)](_0x44c2ad(0x1ee)+_0x488a3f,{'newModel':_0x396f48,'messageCount':_0x4d0f1e[_0x44c2ad(0x1ac)]['length']}),{'success':!![],'agentId':_0x488a3f,'newModel':_0x396f48,'conversation':_0x4d0f1e};}catch(_0x52293e){this['logger'][_0x44c2ad(0x211)](_0x44c2ad(0x1c2)+_0x52293e[_0x44c2ad(0x1d8)],{'agentId':_0x488a3f,'newModel':_0x396f48});throw _0x52293e;}}['_initializeModelSpecs'](){const _0x4a98d7=a0_0x293c1d,_0x1dad2c={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x4a98d7(0x229)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x4a98d7(0x1f7)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x4a98d7(0x1fb)]]:{'provider':MODEL_PROVIDERS[_0x4a98d7(0x229)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x4a98d7(0x200)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x4a98d7(0x206)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x4a98d7(0x1d3)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x4a98d7(0x1d3)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x4a98d7(0x21e)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x1dad2c;}[a0_0x293c1d(0x209)](_0x36a394,_0x429e5c,_0x4dcbdb){const _0x3d4998=a0_0x293c1d,_0x166d90=this['modelSpecs'][_0x429e5c]||{'provider':_0x3d4998(0x1f5)};let _0x338427;typeof _0x36a394==='string'?_0x338427=[{'role':'user','content':_0x36a394}]:_0x338427=_0x36a394[_0x3d4998(0x19f)](_0x393e47=>this[_0x3d4998(0x195)](_0x393e47,_0x429e5c));switch(_0x166d90['provider']){case MODEL_PROVIDERS[_0x3d4998(0x229)]:return this['_formatForAnthropic'](_0x338427);case MODEL_PROVIDERS['OPENAI']:return this['_formatForOpenAI'](_0x338427);case MODEL_PROVIDERS[_0x3d4998(0x1f5)]:return this[_0x3d4998(0x204)](_0x338427);default:return _0x338427;}}[a0_0x293c1d(0x195)](_0xe64631,_0x1327c7){const _0x34ec7c=a0_0x293c1d;return{'role':_0xe64631[_0x34ec7c(0x1a7)]||'user','content':_0xe64631[_0x34ec7c(0x1f2)],'timestamp':_0xe64631[_0x34ec7c(0x1b3)]};}[a0_0x293c1d(0x1c8)](_0x4d61e1){return _0x4d61e1['map'](_0x212be1=>{const _0x3f6f40=a0_0x2075;if(_0x212be1['role']===_0x3f6f40(0x210))return{'role':'user','content':_0x3f6f40(0x214)+_0x212be1[_0x3f6f40(0x1f2)]};return _0x212be1;});}[a0_0x293c1d(0x1cb)](_0x4e96b9){return _0x4e96b9;}['_formatForAzure'](_0x2b2b80){return _0x2b2b80['map'](_0xde8f18=>({..._0xde8f18,'content':typeof _0xde8f18['content']==='string'?_0xde8f18['content']:JSON['stringify'](_0xde8f18['content'])}));}['_isValidModel'](_0x5ad54b){const _0x2ceaa0=a0_0x293c1d;this['logger']['debug']('Validating\x20model',{'model':_0x5ad54b,'modelType':typeof _0x5ad54b});if(this['modelSpecs'][_0x5ad54b]!==undefined)return!![];return this[_0x2ceaa0(0x1be)][_0x2ceaa0(0x1fe)](_0x2ceaa0(0x1a2),{'model':_0x5ad54b,'availableModels':Object[_0x2ceaa0(0x1d2)](this['modelSpecs'])}),![];}async[a0_0x293c1d(0x22c)](_0x5a895c){return!![];}async['_estimateTokens'](_0x3f8380,_0x4ea9d2){return Math['ceil'](_0x3f8380['length']/0x4);}async[a0_0x293c1d(0x19b)](_0x40a4c5,_0x48a015){const _0x53b972=a0_0x293c1d,_0x21c3b7=_0x48a015*0x4;if(_0x40a4c5[_0x53b972(0x197)]<=_0x21c3b7)return _0x40a4c5;return _0x40a4c5[_0x53b972(0x233)](0x0,_0x21c3b7-0x14)+_0x53b972(0x217);}async['_summarizeMessages'](_0x15ffb7,_0x27198e){const _0x5baef5=a0_0x293c1d,_0x1ed07c=_0x15ffb7[_0x5baef5(0x19f)](_0x528307=>_0x528307[_0x5baef5(0x1a7)]+':\x20'+_0x528307[_0x5baef5(0x1f2)])['join']('\x0a'),_0x54048e=0x1f4;if(_0x1ed07c['length']<=_0x54048e)return _0x1ed07c;return _0x1ed07c[_0x5baef5(0x233)](0x0,_0x54048e)+_0x5baef5(0x1ca);}async[a0_0x293c1d(0x1d5)](_0x1c4813,_0x32a15e,_0xbb66fa,_0x2009e7={}){const _0x176b34=a0_0x293c1d,_0x53fd89='https://autopilot-api.azurewebsites.net/llm/chat';let _0x234110,_0x182c6f=null,_0x1f83e3=null;this['logger']?.[_0x176b34(0x19a)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x176b34(0x1ad)],'sessionId':_0x2009e7[_0x176b34(0x1d4)],'hasSessionId':!!_0x2009e7[_0x176b34(0x1d4)],'optionsKeys':Object[_0x176b34(0x1d2)](_0x2009e7),'model':_0x32a15e[_0x176b34(0x1a1)]});if(this['apiKeyManager']&&_0x2009e7[_0x176b34(0x1d4)]){const _0x5333fb=this['apiKeyManager'][_0x176b34(0x1c4)](_0x2009e7['sessionId'],{'platformProvided':_0x2009e7['platformProvided']||![],'vendor':this[_0x176b34(0x1a8)](_0x32a15e[_0x176b34(0x1a1)])});_0x182c6f=_0x5333fb[_0x176b34(0x19c)],_0x1f83e3=_0x5333fb[_0x176b34(0x1bd)],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x2009e7['sessionId'],'hasLoxiaKey':!!_0x182c6f,'hasVendorKey':!!_0x1f83e3,'vendor':this['_getVendorFromModel'](_0x32a15e[_0x176b34(0x1a1)])});}!_0x182c6f&&_0x2009e7['apiKey']&&(_0x182c6f=_0x2009e7[_0x176b34(0x20e)]);!_0x182c6f&&this['config']['apiKey']&&(_0x182c6f=this[_0x176b34(0x1a6)]['apiKey']);if(!_0x182c6f)throw new Error(_0x176b34(0x202));const _0x3978ff=_0x32a15e[_0x176b34(0x1a1)],_0x2593e5={'conversationId':_0xbb66fa,'message':_0x32a15e[_0x176b34(0x1ac)][_0x32a15e['messages']['length']-0x1]?.['content']||'','messages':_0x32a15e[_0x176b34(0x1ac)],'model':_0x3978ff,'requestId':_0xbb66fa,'options':_0x32a15e['options']||{},'platformProvided':_0x2009e7[_0x176b34(0x22d)]||![]};_0x32a15e[_0x176b34(0x210)]&&(_0x2593e5['systemPrompt']=_0x32a15e[_0x176b34(0x210)]);_0x2009e7['platformProvided']?_0x2593e5['apiKey']=_0x182c6f:(_0x1f83e3&&(_0x2593e5[_0x176b34(0x1bd)]=_0x1f83e3),_0x2009e7[_0x176b34(0x1fa)]&&(_0x2593e5[_0x176b34(0x1fa)]=_0x2009e7[_0x176b34(0x1fa)]),_0x2593e5['apiKey']=_0x182c6f);for(let _0x4c2e1e=0x1;_0x4c2e1e<=this['retryAttempts'];_0x4c2e1e++){try{this[_0x176b34(0x1be)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x53fd89,'model':_0x32a15e['model'],'requestId':_0xbb66fa,'attempt':_0x4c2e1e,'hasApiKey':!!_0x182c6f});const _0x4669bc=await fetch(_0x53fd89,{'method':_0x176b34(0x1e4),'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x182c6f,'X-Request-ID':_0xbb66fa},'body':JSON['stringify'](_0x2593e5),'timeout':this[_0x176b34(0x213)]});if(!_0x4669bc['ok']){const _0x556508=await _0x4669bc['text'](),_0x35485a=new Error('HTTP\x20'+_0x4669bc[_0x176b34(0x1e5)]+':\x20'+_0x4669bc['statusText']+(_0x556508?_0x176b34(0x1f3)+_0x556508:''));_0x35485a['status']=_0x4669bc['status'];throw _0x35485a;}const _0x5d2f24=await _0x4669bc[_0x176b34(0x228)]();return{'choices':[{'message':{'content':_0x5d2f24['content']||'','role':'assistant'},'finish_reason':_0x5d2f24[_0x176b34(0x20d)]||_0x176b34(0x231)}],'usage':_0x5d2f24['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x5d2f24['model']||_0x32a15e[_0x176b34(0x1a1)],'id':_0x5d2f24[_0x176b34(0x1f6)]||_0xbb66fa};}catch(_0x307130){_0x234110=_0x307130,this['logger']['warn'](_0x176b34(0x234),{'attempt':_0x4c2e1e,'requestId':_0xbb66fa,'error':_0x307130[_0x176b34(0x1d8)],'status':_0x307130[_0x176b34(0x1e5)]});if(_0x4c2e1e<this['retryAttempts']){const _0x2712d3=Math[_0x176b34(0x1c7)](0x2,_0x4c2e1e)*0x3e8;this[_0x176b34(0x1be)]['warn']('Retrying\x20in\x20'+_0x2712d3+'ms',{'attempt':_0x4c2e1e,'requestId':_0xbb66fa}),await new Promise(_0x3411a9=>setTimeout(_0x3411a9,_0x2712d3));}}}this[_0x176b34(0x1be)]['error'](_0x176b34(0x196),{'requestId':_0xbb66fa,'error':_0x234110[_0x176b34(0x1d8)]});const _0x1faedb=_0x234110[_0x176b34(0x1d8)]&&_0x234110['message']['includes'](_0x176b34(0x1a0));if(_0x1faedb)throw new Error('API\x20Configuration\x20Error:\x20'+_0x234110[_0x176b34(0x1d8)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x234110[_0x176b34(0x1d8)],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x32a15e[_0x176b34(0x1a1)],'id':_0x176b34(0x21a)+_0xbb66fa,'error':_0x234110[_0x176b34(0x1d8)]};}async['_makeImageAPIRequest'](_0x10d41f,_0x10f34b,_0x5b641d={}){const _0xde6409=a0_0x293c1d,_0x2b7afb='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x137905,_0x4588e0=null,_0x41d17e=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0xde6409(0x1ad)],'sessionId':_0x5b641d['sessionId'],'hasSessionId':!!_0x5b641d['sessionId'],'model':_0x10d41f[_0xde6409(0x1a1)]});if(this[_0xde6409(0x1ad)]&&_0x5b641d['sessionId']){const _0x50e0ba=this[_0xde6409(0x1ad)][_0xde6409(0x1c4)](_0x5b641d['sessionId'],{'platformProvided':_0x5b641d[_0xde6409(0x22d)]||![],'vendor':this[_0xde6409(0x1a8)](_0x10d41f['model'])});_0x4588e0=_0x50e0ba[_0xde6409(0x19c)],_0x41d17e=_0x50e0ba['vendorApiKey'],this[_0xde6409(0x1be)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x5b641d['sessionId'],'hasLoxiaKey':!!_0x4588e0,'hasVendorKey':!!_0x41d17e});}!_0x4588e0&&_0x5b641d[_0xde6409(0x20e)]&&(_0x4588e0=_0x5b641d['apiKey']);!_0x4588e0&&this[_0xde6409(0x1a6)][_0xde6409(0x20e)]&&(_0x4588e0=this['config'][_0xde6409(0x20e)]);if(!_0x4588e0)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x487fd7={'prompt':_0x10d41f['prompt'],'model':_0x10d41f[_0xde6409(0x1a1)]||_0xde6409(0x1f4),'size':_0x10d41f[_0xde6409(0x193)],'quality':_0x10d41f['quality'],'style':_0x10d41f[_0xde6409(0x1b7)]||_0xde6409(0x1d0),'n':_0x10d41f['n']||0x1,'requestId':_0x10f34b};for(let _0x545ea0=0x1;_0x545ea0<=this[_0xde6409(0x1bb)];_0x545ea0++){try{this[_0xde6409(0x1be)][_0xde6409(0x19a)](_0xde6409(0x1b9),{'url':_0x2b7afb,'model':_0x10d41f[_0xde6409(0x1a1)],'requestId':_0x10f34b,'attempt':_0x545ea0,'hasApiKey':!!_0x4588e0});const _0x1e70e5=await fetch(_0x2b7afb,{'method':_0xde6409(0x1e4),'headers':{'Content-Type':_0xde6409(0x22e),'Authorization':'Bearer\x20'+_0x4588e0,'X-Request-ID':_0x10f34b},'body':JSON[_0xde6409(0x21f)](_0x487fd7),'timeout':this[_0xde6409(0x213)]*0x2});if(!_0x1e70e5['ok']){const _0x16225f=await _0x1e70e5['text'](),_0x467c28=new Error('HTTP\x20'+_0x1e70e5['status']+':\x20'+_0x1e70e5[_0xde6409(0x19d)]+(_0x16225f?'\x20-\x20'+_0x16225f:''));_0x467c28['status']=_0x1e70e5[_0xde6409(0x1e5)];throw _0x467c28;}const _0x1be291=await _0x1e70e5[_0xde6409(0x228)]();return{'data':_0x1be291['images']||[],'model':_0x1be291[_0xde6409(0x1a1)]||_0x10d41f['model'],'created':_0x1be291['created']||Date['now'](),'usage':_0x1be291['usage']};}catch(_0x3838ae){_0x137905=_0x3838ae,this['logger'][_0xde6409(0x1fe)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x545ea0,'requestId':_0x10f34b,'error':_0x3838ae[_0xde6409(0x1d8)],'status':_0x3838ae['status']});if(_0x545ea0<this['retryAttempts']){const _0x12f689=Math[_0xde6409(0x1c7)](0x2,_0x545ea0)*0x3e8;this['logger'][_0xde6409(0x1fe)]('Retrying\x20in\x20'+_0x12f689+'ms',{'attempt':_0x545ea0,'requestId':_0x10f34b}),await new Promise(_0x51f6c5=>setTimeout(_0x51f6c5,_0x12f689));}}}this['logger'][_0xde6409(0x211)](_0xde6409(0x1bc),{'requestId':_0x10f34b,'error':_0x137905['message']});throw new Error(_0xde6409(0x21d)+_0x137905[_0xde6409(0x1d8)]);}async['_checkRateLimit'](_0x11a006){await new Promise(_0x2b2cf8=>setTimeout(_0x2b2cf8,0x64));}async[a0_0x293c1d(0x212)](_0x2a680b){const _0x1e8b62=a0_0x293c1d,_0x1b58d4=0xea60;this[_0x1e8b62(0x1be)][_0x1e8b62(0x19a)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x1b58d4+'ms',_0x2a680b),await new Promise(_0x42aad9=>setTimeout(_0x42aad9,_0x1b58d4));}async['_handleServiceUnavailable'](_0x5ebaa5){const _0x4b78b0=a0_0x293c1d;this['_recordFailure']();const _0x4ff1d6=0x7530;this[_0x4b78b0(0x1be)][_0x4b78b0(0x19a)]('Service\x20unavailable,\x20waiting\x20'+_0x4ff1d6+'ms',_0x5ebaa5),await new Promise(_0x8f7e04=>setTimeout(_0x8f7e04,_0x4ff1d6));}[a0_0x293c1d(0x1f0)](){const _0x41c91c=a0_0x293c1d;if(!this['circuitBreaker'][_0x41c91c(0x199)])return![];const _0x1b187c=Date[_0x41c91c(0x1c6)]()-this['circuitBreaker']['lastFailureTime'];if(_0x1b187c>this['circuitBreaker'][_0x41c91c(0x213)])return this[_0x41c91c(0x219)][_0x41c91c(0x199)]=![],this['circuitBreaker'][_0x41c91c(0x1b2)]=0x0,![];return!![];}['_recordFailure'](){const _0x58d373=a0_0x293c1d;this['circuitBreaker'][_0x58d373(0x1b2)]++,this[_0x58d373(0x219)]['lastFailureTime']=Date['now'](),this['circuitBreaker']['failures']>=this[_0x58d373(0x219)][_0x58d373(0x194)]&&(this[_0x58d373(0x219)][_0x58d373(0x199)]=!![],this['logger']['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x293c1d(0x1d7)](){const _0x240c4b=a0_0x293c1d;this['circuitBreaker'][_0x240c4b(0x1b2)]>0x0&&(this['circuitBreaker']['failures']=0x0,this['circuitBreaker'][_0x240c4b(0x199)]=![],this[_0x240c4b(0x1be)]['info'](_0x240c4b(0x1af)));}['_getVendorFromModel'](_0x272d1e){const _0x5c0dc0=a0_0x293c1d;if(!_0x272d1e)return null;const _0x49d717=_0x272d1e[_0x5c0dc0(0x1ef)]();if(_0x49d717['includes'](_0x5c0dc0(0x230))||_0x49d717[_0x5c0dc0(0x1d1)]('claude'))return _0x5c0dc0(0x230);else{if(_0x49d717['includes'](_0x5c0dc0(0x1e7))||_0x49d717[_0x5c0dc0(0x1d1)]('gpt'))return _0x5c0dc0(0x1e7);else{if(_0x49d717[_0x5c0dc0(0x1d1)]('deepseek'))return'deepseek';else{if(_0x49d717[_0x5c0dc0(0x1d1)]('phi'))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x2423c7,_0x3bfbf2){this['agentId']=_0x2423c7,this['logger']=_0x3bfbf2,this['conversations']=new Map();}async['switchModel'](_0x26997f){return{'messages':[],'model':_0x26997f,'lastUpdated':new Date()['toISOString']()};}}function a0_0x311f(){const _0x15f95b=['x2nOzwnRtw9KzwXizwfSDgG','CgXHDgzVCM1qCM92AwrLza','yxbWBgLJyxrPB24VANnVBG','CMfUzg9T','yw50AhjVCgLJ','C3rVCa','Bw9KzwXtCgvJCW','C3vIC3rYAw5N','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C2L6zq','DgHYzxnOB2XK','x2zVCM1HDfnPBMDSzu1LC3nHz2u','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','BgvUz3rO','m3Hgv0vAwG','AxnpCgvU','Aw5MBW','x3rYDw5JyxrLtwvZC2fNzq','Bg94AwfbCgLlzxK','C3rHDhvZvgv4Da','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','BwfW','tM8GqvbjigTLEsbJB25MAwD1CMvK','Bw9KzwW','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','tK9ux0zpvu5e','ChvZAa','Dg9vChbLCKnHC2u','y29UzMLN','CM9Szq','x2DLDfzLBMrVCKzYB21nB2rLBa','rKfmtejbq0S','C2v0qxbPs2v5twfUywDLCG','yMfZzvvYBa','BwvZC2fNzxm','yxbPs2v5twfUywDLCG','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','y2HLy2Ttzxj2AwnLsgvHBhrO','y3vYCMvUDe1VzgvS','zMfPBhvYzxm','DgLTzxn0yw1W','Dw5ZAgLMDa','mZb5svvVsMK','qKfex0DbvevxqvK','C3r5Bgu','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','CM91DgvnB2rLBa','CMv0CNLbDhrLBxb0CW','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','DMvUzg9YqxbPs2v5','Bg9Nz2vY','qKfex1jfuvvfu1q','mJe2mtCYtfjnvwTX','zgf0yq','tw9KzwWGC3DPDgnOigzHAwXLzdOG','mJeZntiYCMDOEKLd','z2v0s2v5C0zVCLjLCxvLC3q','sw52ywXPzcbTB2rLBdOG','BM93','Cg93','x2zVCM1HDezVCKfUDgHYB3bPyW','C2v0','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','x2zVCM1HDezVCK9Wzw5bsq','ywDLBNrqB29S','zxjYB3jiyw5KBgvY','AgvHBhrOEq','y29UDMvYC2f0Aw9UtwfUywDLCNm','DML2Awq','Aw5JBhvKzxm','A2v5CW','t1bftKfj','C2vZC2LVBKLK','x21HA2vbueLszxf1zxn0','ntbvAxjzsMG','x3jLC2v0q2LYy3vPDejYzwfRzxi','BwvZC2fNzq','y2XHC3nPzNLfCNjVCG','ode5ndq3m0vkANnlrG','z2v0qwDLBNq','Dg9tDhjPBMC','su5urvjoquXFu0vsvKvsx0vsuK9s','ve9px01btLLFuKvrvuvtvfm','C3vTBwfYEq','Dg9ju09tDhjPBMC','AxnbCNjHEq','C3DPDgnOqwDLBNrnB2rLBa','nJa1odC2tM51zvzq','ue9tva','C3rHDhvZ','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','B3bLBMfP','zxn0Aw1HDgvKvg9Rzw5Z','x2nOzwnRuMf0zuXPBwL0','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','x21HA2vjBwfNzufqsvjLCxvLC3q','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','Dg9mB3DLCKnHC2u','x2LZq2LYy3vPDejYzwfRzxjpCgvU','y2HVAwnLCW','y29UDgvUDa','ic0G','yxP1CMuTB3bLBMfPlwrHBgXLmW','qvPvuKu','CMvXDwvZDeLK','qu5usfjpueLdx09qvvm','mtaYnhGXmdi0','mtC2ote4nfvYDerwDq','y3vZDg9TqxbPs2v5CW','qu5usfjpueLdx0HbsuTv','r0furvDbwv9usu1ft1vu','DxjS','D2fYBG','sw52ywXPzcbYzxf1zxn0oIa','r1buxZq','odqZodqWC0vVqM54','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','AgfUzgXLshr0CevYCM9Y','x2zVCM1HDezVCKf6DxjL','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','r1buxZrFtuLosq','x3jLy29YzezHAwX1CMu','yNvKz2v0u2vYDMLJzq','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','Bwf4x3rVA2vUCW','DxnHz2u','yMfJA2vUza','zMLUAxnOuMvHC29U','yxbPs2v5','x2vZDgLTyxrLvg9Rzw5Z','C3LZDgvT','zxjYB3i','x2HHBMrSzvjHDgvmAw1PDa','DgLTzw91Da','u3LZDgvToIa','C3rHBMrHCMq','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','vw5RBM93BIbTB2rLBdOG','y2LYy3vPDejYzwfRzxi','zxjYB3iT','C2XPy2u','DhjPBq','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','ueHjxZq','C3rYAw5NAwz5','AgLNAa','Aw1Nlq','nZe5mZrfyM9kEve','ywXS','ywDLBNrjza','x3n1Bw1HCML6zu1LC3nHz2vZ','CxvHBgL0Eq','Dg90ywXFDg9Rzw5Z','ANnVBG','qu5usfjpueLd','zMX1Ec0XlJeTChjV','CMvXDwvZDff1zxvL'];a0_0x311f=function(){return _0x15f95b;};return a0_0x311f();}export default AIService;
@@ -1 +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_0x459f64=a0_0x46ed;(function(_0x4a4c53,_0x78f499){const _0x203fb3=a0_0x46ed,_0x10f864=_0x4a4c53();while(!![]){try{const _0x58dc42=-parseInt(_0x203fb3(0x1cd))/0x1*(parseInt(_0x203fb3(0x1c8))/0x2)+parseInt(_0x203fb3(0x1c0))/0x3*(parseInt(_0x203fb3(0x1cb))/0x4)+-parseInt(_0x203fb3(0x1d7))/0x5+parseInt(_0x203fb3(0x1c9))/0x6+-parseInt(_0x203fb3(0x1d4))/0x7+-parseInt(_0x203fb3(0x1d8))/0x8+parseInt(_0x203fb3(0x1d2))/0x9;if(_0x58dc42===_0x78f499)break;else _0x10f864['push'](_0x10f864['shift']());}catch(_0x4d3ac6){_0x10f864['push'](_0x10f864['shift']());}}}(a0_0x4de7,0x23f39));function a0_0x46ed(_0x2e21a2,_0x29f79d){_0x2e21a2=_0x2e21a2-0x1ba;const _0x4de7e=a0_0x4de7();let _0x46edc4=_0x4de7e[_0x2e21a2];if(a0_0x46ed['SHxlFQ']===undefined){var _0x37471f=function(_0x1b88f6){const _0x219dcc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x55ada5='',_0xf6c34a='';for(let _0x14b157=0x0,_0x340ab9,_0x431dc5,_0x1264cd=0x0;_0x431dc5=_0x1b88f6['charAt'](_0x1264cd++);~_0x431dc5&&(_0x340ab9=_0x14b157%0x4?_0x340ab9*0x40+_0x431dc5:_0x431dc5,_0x14b157++%0x4)?_0x55ada5+=String['fromCharCode'](0xff&_0x340ab9>>(-0x2*_0x14b157&0x6)):0x0){_0x431dc5=_0x219dcc['indexOf'](_0x431dc5);}for(let _0x3acf4c=0x0,_0x577b23=_0x55ada5['length'];_0x3acf4c<_0x577b23;_0x3acf4c++){_0xf6c34a+='%'+('00'+_0x55ada5['charCodeAt'](_0x3acf4c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xf6c34a);};a0_0x46ed['zBaaEv']=_0x37471f,a0_0x46ed['MPusEg']={},a0_0x46ed['SHxlFQ']=!![];}const _0x54e17b=_0x4de7e[0x0],_0x1411cc=_0x2e21a2+_0x54e17b,_0x235b07=a0_0x46ed['MPusEg'][_0x1411cc];return!_0x235b07?(_0x46edc4=a0_0x46ed['zBaaEv'](_0x46edc4),a0_0x46ed['MPusEg'][_0x1411cc]=_0x46edc4):_0x46edc4=_0x235b07,_0x46edc4;}function a0_0x4de7(){const _0x28b5d=['ntmWmvbnte9Avq','zw50CMLLCW','DxbKyxrLzef0','z2XVyMfSs2v5CW','C2v0u2vZC2LVBKTLExm','BM93','Aw5MBW','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','nZy0uKfSsuHn','odu5mNjSCKXgAq','CMvTB3zLu2vZC2LVBKTLExm','mJm2twjTv2ft','C2vZC2LVBKTLExm','nte3qxroENbx','z2v0vgLTzq','DMvUzg9Ys2v5CW','A2v5CW','z2v0u2vZC2LVBKTLExm','ode0mduWowvqCfbIzW','Bg94AwfbCgLlzxK','mte1mZiYoujLD0LWta','BwfW','ChvZAa','mteXmZiWnwXgtMDssG','mJiYndm3nK1rv0vKtW','CgXHDgzVCM1qCM92AwrLza','C2L6zq','DMvUzg9YqxbPs2v5','z2v0s2v5C0zVCLjLCxvLC3q','Bg9Nz2vY','DMvUzg9Y','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm'];a0_0x4de7=function(){return _0x28b5d;};return a0_0x4de7();}class ApiKeyManager{constructor(_0x55ada5){const _0x54a484=a0_0x46ed;this[_0x54a484(0x1bd)]=_0x55ada5,this[_0x54a484(0x1cc)]=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x459f64(0x1c4)](_0xf6c34a,_0x14b157){const _0x404b77=a0_0x459f64;if(!_0xf6c34a)throw new Error('Session\x20ID\x20is\x20required');this[_0x404b77(0x1cc)]['set'](_0xf6c34a,{'loxiaApiKey':_0x14b157['loxiaApiKey']||null,'vendorKeys':_0x14b157[_0x404b77(0x1cf)]||{},'updatedAt':new Date()['toISOString']()}),this[_0x404b77(0x1bd)]?.[_0x404b77(0x1c6)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0xf6c34a,'hasLoxiaKey':!!_0x14b157[_0x404b77(0x1d3)],'vendorKeys':Object[_0x404b77(0x1d0)](_0x14b157['vendorKeys']||{}),'timestamp':new Date()['toISOString']()});}['getSessionKeys'](_0x340ab9){const _0xc49366=a0_0x459f64;if(!_0x340ab9)return this[_0xc49366(0x1c3)];const _0x431dc5=this[_0xc49366(0x1cc)]['get'](_0x340ab9);if(_0x431dc5)return _0x431dc5;return this['globalKeys'];}[a0_0x459f64(0x1bc)](_0x1264cd,_0x3acf4c={}){const _0x52b398=a0_0x459f64,_0x577b23=this[_0x52b398(0x1d1)](_0x1264cd),_0x5408ae={'loxiaApiKey':_0x577b23['loxiaApiKey'],'vendorApiKey':null};return!_0x3acf4c[_0x52b398(0x1d9)]&&_0x3acf4c[_0x52b398(0x1be)]&&_0x577b23['vendorKeys']&&(_0x5408ae[_0x52b398(0x1bb)]=_0x577b23[_0x52b398(0x1cf)][_0x3acf4c[_0x52b398(0x1be)]]),_0x5408ae;}[a0_0x459f64(0x1ca)](_0x3caaf6){const _0x48becd=a0_0x459f64;if(this[_0x48becd(0x1cc)]['delete'](_0x3caaf6))return this[_0x48becd(0x1bd)]?.[_0x48becd(0x1c6)](_0x48becd(0x1c7),{'sessionId':_0x3caaf6}),!![];return![];}['setGlobalKeys'](_0x280002){const _0x5d0431=a0_0x459f64;this[_0x5d0431(0x1c3)]={'loxiaApiKey':_0x280002[_0x5d0431(0x1d3)]||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this[_0x5d0431(0x1c3)]['vendorKeys'],..._0x280002['vendorKeys']||{}}},this['logger']?.[_0x5d0431(0x1c6)]('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0x5d0431(0x1c3)][_0x5d0431(0x1d3)],'vendorKeys':Object[_0x5d0431(0x1d0)](this['globalKeys']['vendorKeys'])});}['getActiveSessions'](){const _0x1f8242=a0_0x459f64;return Array['from'](this[_0x1f8242(0x1cc)][_0x1f8242(0x1c1)]())[_0x1f8242(0x1d5)](([_0x21e4e5,_0x4e38a8])=>({'sessionId':_0x21e4e5,'hasLoxiaKey':!!_0x4e38a8[_0x1f8242(0x1d3)],'vendorKeys':Object[_0x1f8242(0x1d0)](_0x4e38a8['vendorKeys']||{}),'updatedAt':_0x4e38a8[_0x1f8242(0x1c2)]}));}['cleanupExpiredSessions'](_0x5151ed=0x18*0x3c*0x3c*0x3e8){const _0x8ddf62=a0_0x459f64,_0xe7df24=Date[_0x8ddf62(0x1c5)](),_0xf1c5b7=[];for(const [_0x293bc,_0x27a739]of this[_0x8ddf62(0x1cc)][_0x8ddf62(0x1c1)]()){const _0x1dfd25=_0xe7df24-new Date(_0x27a739[_0x8ddf62(0x1c2)])[_0x8ddf62(0x1ce)]();_0x1dfd25>_0x5151ed&&_0xf1c5b7[_0x8ddf62(0x1d6)](_0x293bc);}return _0xf1c5b7['forEach'](_0x51bae7=>{this['sessionKeys']['delete'](_0x51bae7);}),_0xf1c5b7['length']>0x0&&this['logger']?.[_0x8ddf62(0x1c6)](_0x8ddf62(0x1bf),{'expiredSessions':_0xf1c5b7['length'],'remainingSessions':this['sessionKeys'][_0x8ddf62(0x1ba)]}),_0xf1c5b7['length'];}}export default ApiKeyManager;
@@ -1 +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
+ function a0_0x32b5(_0x519b8d,_0x3635f5){_0x519b8d=_0x519b8d-0xf7;const _0x1d0278=a0_0x1d02();let _0x32b5c0=_0x1d0278[_0x519b8d];if(a0_0x32b5['BNJQLE']===undefined){var _0x5306d5=function(_0x5f1cff){const _0x17da6a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb98959='',_0xb012f4='';for(let _0x2eeff9=0x0,_0x123a58,_0x438e06,_0x4e8be3=0x0;_0x438e06=_0x5f1cff['charAt'](_0x4e8be3++);~_0x438e06&&(_0x123a58=_0x2eeff9%0x4?_0x123a58*0x40+_0x438e06:_0x438e06,_0x2eeff9++%0x4)?_0xb98959+=String['fromCharCode'](0xff&_0x123a58>>(-0x2*_0x2eeff9&0x6)):0x0){_0x438e06=_0x17da6a['indexOf'](_0x438e06);}for(let _0x43deb8=0x0,_0x50d8b1=_0xb98959['length'];_0x43deb8<_0x50d8b1;_0x43deb8++){_0xb012f4+='%'+('00'+_0xb98959['charCodeAt'](_0x43deb8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb012f4);};a0_0x32b5['oCgksi']=_0x5306d5,a0_0x32b5['dqSSuS']={},a0_0x32b5['BNJQLE']=!![];}const _0x1a0181=_0x1d0278[0x0],_0x128b3c=_0x519b8d+_0x1a0181,_0x4709ab=a0_0x32b5['dqSSuS'][_0x128b3c];return!_0x4709ab?(_0x32b5c0=a0_0x32b5['oCgksi'](_0x32b5c0),a0_0x32b5['dqSSuS'][_0x128b3c]=_0x32b5c0):_0x32b5c0=_0x4709ab,_0x32b5c0;}const a0_0x185099=a0_0x32b5;(function(_0x53ffad,_0x151a78){const _0x32e9fb=a0_0x32b5,_0x1837a4=_0x53ffad();while(!![]){try{const _0x29965f=parseInt(_0x32e9fb(0x118))/0x1+-parseInt(_0x32e9fb(0x111))/0x2+-parseInt(_0x32e9fb(0x10c))/0x3+-parseInt(_0x32e9fb(0xff))/0x4*(parseInt(_0x32e9fb(0x109))/0x5)+-parseInt(_0x32e9fb(0x122))/0x6+parseInt(_0x32e9fb(0x119))/0x7*(-parseInt(_0x32e9fb(0x116))/0x8)+-parseInt(_0x32e9fb(0x11d))/0x9*(-parseInt(_0x32e9fb(0x12b))/0xa);if(_0x29965f===_0x151a78)break;else _0x1837a4['push'](_0x1837a4['shift']());}catch(_0x1bb88b){_0x1837a4['push'](_0x1837a4['shift']());}}}(a0_0x1d02,0xcd7ef));function a0_0x1d02(){const _0x535a20=['BgvUz3rO','CxvPy2STDgfZA3m','oeDcC3LsyW','y3jLyxrPDMu','ndaWntq0DM5RBNze','ntKWmdy1y3zlq3nW','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','yMvUy2HTyxjRCW','BwfW','nJe2ndm5n1DABLn5CW','Dg9ju09tDhjPBMC','sfruuca','Bw9KzwXZ','yxbWBgLJyxrPB24VANnVBG','mJiXmJi5nNj6AxjZrG','yw5HBhLZAxm','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','y29UzMLN','BMvLzhnszwzYzxnO','BMfTzq','DMfSDwvZ','x2DLDejLC3rnB2rLBezVCLrHC2S','Aw5PDgLHBgL6zq','ntb4DvjrChq','BwvZC2fNzq','DgfZA3m','BM93','C3bLzwq','ANnVBG','zMLSDgvY','yxP1CMvcywnRzw5KvxjS','Bwf4','yxbPs2v5','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','mtqYmgnTu3r3rq','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','z2v0vgLTzq','z2v0u3rHDhvZ','x2DLDezHC3rLC3rnB2rLBa','C2nVCMu','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','AxnmB2fKAw5N','Bg9Nz2vY','zxjYB3i','mta0mtvcshrkrvm','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','CMvMCMvZAeLUDgvYDMfS','mtaZntiWnhDrAMLTDG','BgfZDfvWzgf0zwq','z2v0qMvUy2HTyxjRCW','zgvIDwC','C29YDa','mJG5mtKWohLgq2zTtW','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','Dw5RBM93BG'];a0_0x1d02=function(){return _0x535a20;};return a0_0x1d02();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0xb98959,_0xb012f4){const _0x4a6f6c=a0_0x32b5;this['config']=_0xb98959,this[_0x4a6f6c(0x107)]=_0xb012f4,this['benchmarks']=null,this[_0x4a6f6c(0x10d)]=null,this[_0x4a6f6c(0x106)]=![],this['azureBackendUrl']=_0x4a6f6c(0xfe),this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x4a6f6c(0x124)];}async[a0_0x185099(0x12a)](){const _0x1c0ea9=a0_0x185099;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger']['info'](_0x1c0ea9(0x105));}catch(_0x2eeff9){this['logger']['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x2eeff9[_0x1c0ea9(0x12c)]}),this[_0x1c0ea9(0x11b)]=null;}}[a0_0x185099(0x10e)](){const _0x3a4473=a0_0x185099;if(!this[_0x3a4473(0x11b)])return this['logger'][_0x3a4473(0x108)](_0x3a4473(0x112),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x5b6f72=a0_0x185099;if(this['isLoading']){this[_0x5b6f72(0x107)][_0x5b6f72(0x10f)](_0x5b6f72(0x10a));return;}this[_0x5b6f72(0x106)]=!![];try{const _0x123a58=await this['_fetchFromAzureBackend']();if(_0x123a58)this[_0x5b6f72(0x11b)]=_0x123a58,this['lastUpdated']=new Date(),this[_0x5b6f72(0x107)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x123a58['models']?.[_0x5b6f72(0x114)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x438e06){this[_0x5b6f72(0x107)][_0x5b6f72(0x108)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x438e06['message'],'endpoint':url}),!this[_0x5b6f72(0x11b)]&&(this['benchmarks']=null);}finally{this[_0x5b6f72(0x106)]=![];}}['getBenchmarkTable'](){const _0x2f9829=a0_0x185099,_0x4e8be3=this[_0x2f9829(0x10e)]();return{'lastUpdated':this['lastUpdated']?.[_0x2f9829(0x11e)]()||'unknown','models':_0x4e8be3[_0x2f9829(0x120)]||[],'tasks':_0x4e8be3['tasks']||{},'summary':this[_0x2f9829(0x11a)](_0x4e8be3)};}[a0_0x185099(0x126)](){const _0x4737ad=a0_0x185099;if(!this[_0x4737ad(0x10d)])return!![];const _0x43deb8=Date[_0x4737ad(0xf7)]()-this[_0x4737ad(0x10d)][_0x4737ad(0x101)]();return _0x43deb8>this[_0x4737ad(0x10b)];}async['_fetchFromAzureBackend'](){const _0x519948=a0_0x185099,_0x50d8b1=this[_0x519948(0xfb)]+'/llm/model-benchmarks';let _0x375b4c=null;this['config'][_0x519948(0xfd)]&&(_0x375b4c=this[_0x519948(0x125)][_0x519948(0xfd)]);const _0x416437={'method':'GET','headers':{'Content-Type':_0x519948(0x121),..._0x375b4c&&{'Authorization':'Bearer\x20'+_0x375b4c}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x50d8b1});const _0x3db397=await fetch(_0x50d8b1,_0x416437);if(!_0x3db397['ok'])throw new Error(_0x519948(0x11f)+_0x3db397['status']+':\x20'+_0x3db397['statusText']);const _0x5edca3=await _0x3db397[_0x519948(0xf9)]();return _0x5edca3;}[a0_0x185099(0x11a)](_0x404a67){const _0x55677d=a0_0x185099,_0x2dc55e=_0x404a67[_0x55677d(0x120)]||[];return{'totalModels':_0x2dc55e['length'],'taskCategories':Object['keys'](_0x404a67['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x2dc55e,'coding'),'bestForAnalysis':this[_0x55677d(0x129)](_0x2dc55e,_0x55677d(0x123)),'bestForQuickTasks':this[_0x55677d(0x129)](_0x2dc55e,_0x55677d(0x115)),'bestForCreative':this['_getBestModelForTask'](_0x2dc55e,_0x55677d(0x117)),'fastestModel':this[_0x55677d(0x103)](_0x2dc55e),'mostCostEfficient':this['_getMostCostEfficient'](_0x2dc55e)};}['_getBestModelForTask'](_0x5cdc35,_0x1e46d8){const _0x2471bf=a0_0x185099;return _0x5cdc35[_0x2471bf(0xfa)](_0x181b5a=>_0x181b5a[_0x2471bf(0x12d)]&&_0x181b5a[_0x2471bf(0x12d)][_0x1e46d8])[_0x2471bf(0x110)]((_0x582c43,_0x26d10c)=>(_0x26d10c[_0x2471bf(0x12d)][_0x1e46d8][_0x2471bf(0x104)]||0x0)-(_0x582c43['tasks'][_0x1e46d8][_0x2471bf(0x104)]||0x0))[0x0]?.['name']||_0x2471bf(0x113);}['_getFastestModel'](_0x47dfea){const _0x88ecc1=a0_0x185099,_0x184ff2={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x47dfea['sort']((_0x3e6ff3,_0x246da6)=>{const _0x56a6ae=a0_0x32b5,_0xbba1f0=Math[_0x56a6ae(0xfc)](...Object['values'](_0x3e6ff3['tasks']||{})['map'](_0x284eb0=>_0x184ff2[_0x284eb0[_0x56a6ae(0xf8)]]||0x0)),_0x43bf5c=Math[_0x56a6ae(0xfc)](...Object['values'](_0x246da6[_0x56a6ae(0x12d)]||{})[_0x56a6ae(0x11c)](_0x2ea572=>_0x184ff2[_0x2ea572['speed']]||0x0));return _0x43bf5c-_0xbba1f0;})[0x0]?.['name']||_0x88ecc1(0x113);}['_getMostCostEfficient'](_0x338526){const _0x59fc77=a0_0x185099,_0x5f537a={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x338526['sort']((_0x2805bf,_0x48483f)=>{const _0x435761=a0_0x32b5,_0x398c9a=Math[_0x435761(0xfc)](...Object[_0x435761(0x128)](_0x2805bf['tasks']||{})['map'](_0x23d003=>_0x5f537a[_0x23d003['cost']]||0x0)),_0x3b0d2c=Math['max'](...Object['values'](_0x48483f[_0x435761(0x12d)]||{})[_0x435761(0x11c)](_0x138790=>_0x5f537a[_0x138790['cost']]||0x0));return _0x3b0d2c-_0x398c9a;})[0x0]?.[_0x59fc77(0x127)]||_0x59fc77(0x113);}['_scheduleRefresh'](){setInterval(async()=>{const _0x5bb213=a0_0x32b5;this['needsRefresh']()&&(this[_0x5bb213(0x107)]['debug']('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this['refreshInterval']);}async['forceRefresh'](){const _0x2fe03d=a0_0x185099;this[_0x2fe03d(0x107)]['info'](_0x2fe03d(0x100)),await this['loadBenchmarks']();}[a0_0x185099(0x102)](){const _0x4050b0=a0_0x185099;return{'initialized':!!this[_0x4050b0(0x11b)],'lastUpdated':this['lastUpdated']?.[_0x4050b0(0x11e)]()||null,'source':this['benchmarks']?.['source']||_0x4050b0(0x113),'modelCount':this['benchmarks']?.['models']?.[_0x4050b0(0x114)]||0x0,'isLoading':this[_0x4050b0(0x106)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
@@ -1 +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_0x398c00=a0_0x2441;function a0_0x2441(_0x3faf6c,_0xadc7be){_0x3faf6c=_0x3faf6c-0x10f;const _0x2134cd=a0_0x2134();let _0x2441c8=_0x2134cd[_0x3faf6c];if(a0_0x2441['ifuXRJ']===undefined){var _0x48c44c=function(_0x24a234){const _0x2d647b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56224d='',_0x3d9de3='';for(let _0x433397=0x0,_0x42b67d,_0x11385a,_0x491f8c=0x0;_0x11385a=_0x24a234['charAt'](_0x491f8c++);~_0x11385a&&(_0x42b67d=_0x433397%0x4?_0x42b67d*0x40+_0x11385a:_0x11385a,_0x433397++%0x4)?_0x56224d+=String['fromCharCode'](0xff&_0x42b67d>>(-0x2*_0x433397&0x6)):0x0){_0x11385a=_0x2d647b['indexOf'](_0x11385a);}for(let _0x592a19=0x0,_0x4124a9=_0x56224d['length'];_0x592a19<_0x4124a9;_0x592a19++){_0x3d9de3+='%'+('00'+_0x56224d['charCodeAt'](_0x592a19)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3d9de3);};a0_0x2441['SHdMtt']=_0x48c44c,a0_0x2441['OCKEtu']={},a0_0x2441['ifuXRJ']=!![];}const _0x190293=_0x2134cd[0x0],_0x7cc9ea=_0x3faf6c+_0x190293,_0xb40942=a0_0x2441['OCKEtu'][_0x7cc9ea];return!_0xb40942?(_0x2441c8=a0_0x2441['SHdMtt'](_0x2441c8),a0_0x2441['OCKEtu'][_0x7cc9ea]=_0x2441c8):_0x2441c8=_0xb40942,_0x2441c8;}(function(_0xb5503f,_0x2bb4b9){const _0x48db99=a0_0x2441,_0x2a650a=_0xb5503f();while(!![]){try{const _0x33d8fe=parseInt(_0x48db99(0x12f))/0x1*(parseInt(_0x48db99(0x15f))/0x2)+-parseInt(_0x48db99(0x130))/0x3+parseInt(_0x48db99(0x11a))/0x4*(parseInt(_0x48db99(0x125))/0x5)+parseInt(_0x48db99(0x110))/0x6+-parseInt(_0x48db99(0x12e))/0x7*(-parseInt(_0x48db99(0x14b))/0x8)+parseInt(_0x48db99(0x145))/0x9+parseInt(_0x48db99(0x132))/0xa*(-parseInt(_0x48db99(0x136))/0xb);if(_0x33d8fe===_0x2bb4b9)break;else _0x2a650a['push'](_0x2a650a['shift']());}catch(_0x4d573f){_0x2a650a['push'](_0x2a650a['shift']());}}}(a0_0x2134,0xcaf28));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x2134(){const _0x5a67fd=['C29YDa','yNvKz2v0CW','Bwf4','mZC2A1HlzgrP','D2vLA2X5','BM93','rMfPBgvKihrVihrYywnRihvZywDL','Dw5ZAgLMDa','C2v0','C3bSAxq','refjtfK','zgfPBhLbDMvYywDLCW','y3jLyxrLrw1WDhLvC2fNzq','Dg90ywXFDg9Rzw5Z','ANnVBG','y2vPBa','Aw5PDgLHBgL6zvvZywDLrw50CNK','ywDLBNrjza','q29ZDa','Dg9WqwDLBNrZ','Bw9UDgHSEq','ywXLCNrZ','Aw5WDxq','mLHUv1fvwG','CMvXDwvZDhm','DxnHz2u','C2vUzej1zgDLDefSzxj0','Dw5KzwzPBMvK','y29UDMvYDfrVq1nw','Bw9KzwXjza','Dg90ywW','rgfPBhK','Dg9Rzw5ZqNLeyxK','ntm3mtyWmLneAM1jwG','y2HLy2TcDwrNzxrmAw1PDhm','y2HLy2TuAhjLC2HVBgrbBgvYDhm','z2v0','Dg9ju09tDhjPBMC','z2v0v2vLA0TLEq','AgfZ','BgfZDefSzxj0vgLTzxm','z2v0tw9UDgHlzxK','zxjYB3i','mZG2ngLcv3Lhzq','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','y29ZDa','yNLbz2vUDa','C2XPy2u','AM9PBG','C2f2zvvZywDLrgf0yq','vxnHz2uGzgf0ysbZyxzLza','zgfPBhK','z2v0vxnHz2u','ugvYAw9K','mJyXmerwr0LgCG','zNjVBq','DhjHy2TvC2fNzq','ChjVBxb0x3rVA2vUCW','C3rYAw5NAwz5','y2HLy2TuAhjLC2HVBgq','tw9KzwW','z2v0tw9UDgG','veHsrvnit0XeuW','mte0otG5wLvby2D5','mJm2mtuZt3vbrvvo','mZmWnJi3uwXWrKLU','C2v0DxbqzxjPB2rPy1nHDMu','mJm4otqWv0fUzufQ','CgfKu3rHCNq','ChvZAa','qNvKz2v0igXPBwL0igv4y2vLzgvK','mta0nxHzren6sa','zM9YrwfJAa','D2fYBG','Dg9tDhjPBMC','Bg9Nz2vY','zxHWB3j0vxnHz2veyxrH','z2v0rNvSBfLLyxi','yNLnB2rLBa','y2fSy3vSyxrLq29ZDa','DxbKyxrLvxnHz2vfBNrYEq','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','Dg9Rzw5Z','z2v0rgf5s2v5','zw1PDa','BwfW','nZiZmZaZmhfZu2v3ta','zw50CMLLCW','uMvXDwvZDhm'];a0_0x2134=function(){return _0x5a67fd;};return a0_0x2134();}export class BudgetService{constructor(_0x56224d,_0x3d9de3){const _0x136797=a0_0x2441;this['config']=_0x56224d||{},this['logger']=_0x3d9de3,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x136797(0x152)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS['MONTHLY']},this[_0x136797(0x15d)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x136797(0x12d)],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x136797(0x131)]();}[a0_0x398c00(0x127)](_0x433397,_0x42b67d,_0x11385a){const _0x59bb8a=a0_0x398c00;try{const _0x491f8c=this[_0x59bb8a(0x13e)](_0x42b67d,_0x11385a),_0x592a19=new Date(),_0x4124a9=this['getDayKey'](_0x592a19),_0x435e56=this[_0x59bb8a(0x115)](_0x592a19),_0x51ede9=this[_0x59bb8a(0x118)](_0x592a19);this['initializeUsageEntry'](this[_0x59bb8a(0x161)][_0x59bb8a(0x122)],_0x4124a9),this[_0x59bb8a(0x158)](this[_0x59bb8a(0x161)][_0x59bb8a(0x14c)],_0x435e56),this[_0x59bb8a(0x158)](this['usage']['monthly'],_0x51ede9);const _0x5dc94c={'agentId':_0x433397,'modelId':_0x42b67d,'tokens':_0x11385a['total_tokens'],'cost':_0x491f8c,'timestamp':_0x592a19[_0x59bb8a(0x114)]()};return this[_0x59bb8a(0x13f)](this[_0x59bb8a(0x161)][_0x59bb8a(0x122)]['get'](_0x4124a9),_0x5dc94c),this['updateUsageEntry'](this[_0x59bb8a(0x161)][_0x59bb8a(0x14c)]['get'](_0x435e56),_0x5dc94c),this['updateUsageEntry'](this['usage']['monthly']['get'](_0x51ede9),_0x5dc94c),this['usage']['total']['tokens']+=_0x11385a[_0x59bb8a(0x155)],this['usage']['total'][_0x59bb8a(0x11c)]+=_0x491f8c,this[_0x59bb8a(0x161)][_0x59bb8a(0x166)]['requests']+=0x1,this['checkBudgetLimits'](_0x4124a9,_0x435e56,_0x51ede9),this['logger']['info']('Usage\x20tracked',{'agentId':_0x433397,'modelId':_0x42b67d,'tokens':_0x11385a[_0x59bb8a(0x155)],'cost':_0x491f8c,'totalCost':this[_0x59bb8a(0x161)]['total']['cost']}),{'cost':_0x491f8c,'totalCost':this['usage']['total'][_0x59bb8a(0x11c)],'totalTokens':this[_0x59bb8a(0x161)]['total']['tokens'],'dailyUsage':this[_0x59bb8a(0x161)][_0x59bb8a(0x122)]['get'](_0x4124a9),'budgetRemaining':this['getRemainingBudget']()};}catch(_0xc829dc){this[_0x59bb8a(0x13a)][_0x59bb8a(0x119)](_0x59bb8a(0x14e),{'error':_0xc829dc['message'],'agentId':_0x433397,'modelId':_0x42b67d});throw _0xc829dc;}}[a0_0x398c00(0x13e)](_0x242cd5,_0x385cc0){const _0x2e093d=a0_0x398c00,_0x2e5a5c=COST_PER_TOKEN[_0x242cd5];if(!_0x2e5a5c)return this['logger'][_0x2e093d(0x138)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x242cd5}),0x0;const _0x88719e=(_0x385cc0[_0x2e093d(0x128)]||0x0)*_0x2e5a5c[_0x2e093d(0x15e)],_0x3c8af1=(_0x385cc0['completion_tokens']||0x0)*_0x2e5a5c['output'];return _0x88719e+_0x3c8af1;}['getUsage'](_0x31573a='daily',_0x24504a=new Date()){const _0x35f547=a0_0x398c00;switch(_0x31573a){case _0x35f547(0x122):return this[_0x35f547(0x161)][_0x35f547(0x122)][_0x35f547(0x113)](this['getDayKey'](_0x24504a))||this['createEmptyUsage']();case'weekly':return this['usage']['weekly']['get'](this[_0x35f547(0x115)](_0x24504a))||this['createEmptyUsage']();case'monthly':return this['usage']['monthly'][_0x35f547(0x113)](this[_0x35f547(0x118)](_0x24504a))||this[_0x35f547(0x154)]();case _0x35f547(0x166):return{...this[_0x35f547(0x161)][_0x35f547(0x166)]};default:throw new Error('Invalid\x20period:\x20'+_0x31573a);}}['getAgentUsage'](_0x1d49f1,_0x27f703='daily'){const _0x592b5a=a0_0x398c00,_0x37a03a=this[_0x592b5a(0x123)](_0x27f703);return _0x37a03a[_0x592b5a(0x11d)]?.[_0x1d49f1]||this[_0x592b5a(0x154)]();}['getModelUsage'](_0x3d075f,_0x5d2d5f='daily'){const _0x292f6a=this['getUsage'](_0x5d2d5f);return _0x292f6a['byModel']?.[_0x3d075f]||this['createEmptyUsage']();}['setBudgets'](_0x114b60){const _0x334d2a=a0_0x398c00;if(_0x114b60[_0x334d2a(0x122)]!==undefined)this[_0x334d2a(0x149)]['daily']=_0x114b60['daily'];if(_0x114b60[_0x334d2a(0x14c)]!==undefined)this['budgets']['weekly']=_0x114b60['weekly'];if(_0x114b60['monthly']!==undefined)this[_0x334d2a(0x149)][_0x334d2a(0x15c)]=_0x114b60[_0x334d2a(0x15c)];this['logger']['info']('Budget\x20limits\x20updated',this[_0x334d2a(0x149)]),this[_0x334d2a(0x120)]();}['getRemainingBudget'](){const _0x512594=a0_0x398c00,_0x2a2b1b=new Date(),_0x191ba0=this['getUsage']('daily',_0x2a2b1b),_0x346437=this['getUsage']('weekly',_0x2a2b1b),_0x311fe0=this[_0x512594(0x123)](_0x512594(0x15c),_0x2a2b1b);return{'daily':Math['max'](0x0,this[_0x512594(0x149)]['daily']-_0x191ba0[_0x512594(0x11c)]),'weekly':Math[_0x512594(0x14a)](0x0,this['budgets'][_0x512594(0x14c)]-_0x346437['cost']),'monthly':Math[_0x512594(0x14a)](0x0,this['budgets']['monthly']-_0x311fe0[_0x512594(0x11c)])};}['isWithinBudget'](_0x10f330=a0_0x398c00(0x122)){const _0x212438=a0_0x398c00,_0x45fdb3=this['getUsage'](_0x10f330),_0x2ca158=this['budgets'][_0x10f330];return _0x45fdb3[_0x212438(0x11c)]<=_0x2ca158;}['getUsageTrends'](_0x3ab614=0x1e){const _0x306505=a0_0x398c00,_0x73b8d8={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x448bf3=new Date();let _0x7b5547=0x0,_0x48d13a=0x0,_0x5f2d66=0x0;const _0x44c433=new Map(),_0x35acb4=new Map();for(let _0x38ef20=0x0;_0x38ef20<_0x3ab614;_0x38ef20++){const _0x4ea373=new Date(_0x448bf3);_0x4ea373['setDate'](_0x4ea373['getDate']()-_0x38ef20);const _0x580594=this[_0x306505(0x142)](_0x4ea373),_0x549453=this['usage'][_0x306505(0x122)]['get'](_0x580594);_0x549453?(_0x7b5547+=_0x549453['cost'],_0x48d13a+=_0x549453[_0x306505(0x141)],_0x5f2d66+=_0x549453[_0x306505(0x160)],_0x73b8d8['costByDay'][_0x306505(0x14f)]({'date':_0x580594,'cost':_0x549453[_0x306505(0x11c)]}),_0x73b8d8[_0x306505(0x10f)]['unshift']({'date':_0x580594,'tokens':_0x549453['tokens']}),Object[_0x306505(0x146)](_0x549453[_0x306505(0x11d)]||{})['forEach'](([_0x25a2f7,_0x2ba2d5])=>{const _0x506dc0=_0x306505;!_0x44c433[_0x506dc0(0x116)](_0x25a2f7)&&_0x44c433['set'](_0x25a2f7,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x4029c9=_0x44c433['get'](_0x25a2f7);_0x4029c9[_0x506dc0(0x11c)]+=_0x2ba2d5['cost'],_0x4029c9['tokens']+=_0x2ba2d5['tokens'],_0x4029c9[_0x506dc0(0x160)]+=_0x2ba2d5[_0x506dc0(0x160)];}),Object[_0x306505(0x146)](_0x549453[_0x306505(0x13d)]||{})['forEach'](([_0x519479,_0x548da4])=>{const _0x24be16=_0x306505;!_0x35acb4['has'](_0x519479)&&_0x35acb4[_0x24be16(0x150)](_0x519479,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x23d957=_0x35acb4[_0x24be16(0x113)](_0x519479);_0x23d957['cost']+=_0x548da4['cost'],_0x23d957['tokens']+=_0x548da4[_0x24be16(0x141)],_0x23d957['requests']+=_0x548da4[_0x24be16(0x160)];})):(_0x73b8d8['costByDay'][_0x306505(0x14f)]({'date':_0x580594,'cost':0x0}),_0x73b8d8[_0x306505(0x10f)]['unshift']({'date':_0x580594,'tokens':0x0}));}return _0x73b8d8[_0x306505(0x153)][_0x306505(0x11c)]=_0x7b5547/_0x3ab614,_0x73b8d8[_0x306505(0x153)]['tokens']=_0x48d13a/_0x3ab614,_0x73b8d8['dailyAverages'][_0x306505(0x160)]=_0x5f2d66/_0x3ab614,_0x73b8d8[_0x306505(0x15b)]=Array[_0x306505(0x126)](_0x44c433[_0x306505(0x146)]())[_0x306505(0x144)](([_0x4c126b,_0x16ea48])=>({'id':_0x4c126b,..._0x16ea48}))[_0x306505(0x148)]((_0x137e2f,_0x48905a)=>_0x48905a[_0x306505(0x11c)]-_0x137e2f[_0x306505(0x11c)])[_0x306505(0x11e)](0x0,0xa),_0x73b8d8['topModels']=Array[_0x306505(0x126)](_0x35acb4[_0x306505(0x146)]())['map'](([_0x11ecf4,_0x195a5c])=>({'id':_0x11ecf4,..._0x195a5c}))[_0x306505(0x148)]((_0x5c94e1,_0x34af50)=>_0x34af50[_0x306505(0x11c)]-_0x5c94e1[_0x306505(0x11c)])[_0x306505(0x11e)](0x0,0xa),_0x73b8d8;}[a0_0x398c00(0x13b)](_0x21ff8e=a0_0x398c00(0x156),_0x8899bf=null,_0x958bde=null){const _0x455378=a0_0x398c00,_0x173ae7={'budgets':this[_0x455378(0x149)],'total':this[_0x455378(0x161)]['total'],'daily':{},'weekly':{},'monthly':{}},_0x1cf944=(_0x1a8fbc,_0x25984a)=>{const _0x5e311c={};return _0x1a8fbc['forEach']((_0x272b76,_0x14c11c)=>{const _0x4ade6f=_0x25984a(_0x14c11c);(!_0x8899bf||_0x4ade6f>=_0x8899bf)&&(!_0x958bde||_0x4ade6f<=_0x958bde)&&(_0x5e311c[_0x14c11c]=_0x272b76);}),_0x5e311c;};_0x8899bf||_0x958bde?(_0x173ae7[_0x455378(0x122)]=_0x1cf944(this[_0x455378(0x161)][_0x455378(0x122)],_0x6c6260=>new Date(_0x6c6260)),_0x173ae7['weekly']=_0x1cf944(this['usage']['weekly'],_0x571884=>new Date(_0x571884)),_0x173ae7['monthly']=_0x1cf944(this[_0x455378(0x161)]['monthly'],_0x295226=>new Date(_0x295226+'-01'))):(this[_0x455378(0x161)]['daily'][_0x455378(0x137)]((_0x5747f9,_0x307a38)=>_0x173ae7['daily'][_0x307a38]=_0x5747f9),this['usage'][_0x455378(0x14c)][_0x455378(0x137)]((_0x36bf1b,_0x521906)=>_0x173ae7['weekly'][_0x521906]=_0x36bf1b),this['usage'][_0x455378(0x15c)][_0x455378(0x137)]((_0x514eb7,_0x1f5f1b)=>_0x173ae7[_0x455378(0x15c)][_0x1f5f1b]=_0x514eb7));if(_0x21ff8e==='csv')return this['convertToCSV'](_0x173ae7);return JSON[_0x455378(0x129)](_0x173ae7,null,0x2);}['initializeUsageEntry'](_0xf5aeb7,_0x15a626){const _0x5b4794=a0_0x398c00;!_0xf5aeb7['has'](_0x15a626)&&_0xf5aeb7['set'](_0x15a626,this[_0x5b4794(0x154)]());}[a0_0x398c00(0x154)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x351ff0,_0x4d23b2){const _0x103ab4=a0_0x398c00;_0x351ff0['cost']+=_0x4d23b2['cost'],_0x351ff0['tokens']+=_0x4d23b2[_0x103ab4(0x141)],_0x351ff0['requests']+=0x1,!_0x351ff0['byAgent'][_0x4d23b2['agentId']]&&(_0x351ff0[_0x103ab4(0x11d)][_0x4d23b2['agentId']]=this[_0x103ab4(0x154)]()),_0x351ff0['byAgent'][_0x4d23b2['agentId']][_0x103ab4(0x11c)]+=_0x4d23b2[_0x103ab4(0x11c)],_0x351ff0[_0x103ab4(0x11d)][_0x4d23b2['agentId']][_0x103ab4(0x141)]+=_0x4d23b2[_0x103ab4(0x141)],_0x351ff0[_0x103ab4(0x11d)][_0x4d23b2[_0x103ab4(0x159)]]['requests']+=0x1,!_0x351ff0['byModel'][_0x4d23b2['modelId']]&&(_0x351ff0['byModel'][_0x4d23b2[_0x103ab4(0x165)]]=this['createEmptyUsage']()),_0x351ff0['byModel'][_0x4d23b2['modelId']][_0x103ab4(0x11c)]+=_0x4d23b2[_0x103ab4(0x11c)],_0x351ff0['byModel'][_0x4d23b2['modelId']]['tokens']+=_0x4d23b2[_0x103ab4(0x141)],_0x351ff0['byModel'][_0x4d23b2[_0x103ab4(0x165)]]['requests']+=0x1;}[a0_0x398c00(0x111)](_0x482540,_0xf057e5,_0x133dba){const _0x468d90=a0_0x398c00,_0x5a470b=this['usage'][_0x468d90(0x122)][_0x468d90(0x113)](_0x482540),_0x3df44b=this[_0x468d90(0x161)][_0x468d90(0x14c)][_0x468d90(0x113)](_0xf057e5),_0x3202ef=this['usage'][_0x468d90(0x15c)][_0x468d90(0x113)](_0x133dba);_0x5a470b[_0x468d90(0x11c)]>this['budgets']['daily']&&this[_0x468d90(0x162)](_0x468d90(0x122),_0x5a470b['cost'],this['budgets']['daily']),_0x3df44b[_0x468d90(0x11c)]>this['budgets'][_0x468d90(0x14c)]&&this[_0x468d90(0x162)](_0x468d90(0x14c),_0x3df44b['cost'],this[_0x468d90(0x149)]['weekly']),_0x3202ef['cost']>this['budgets']['monthly']&&this['sendBudgetAlert'](_0x468d90(0x15c),_0x3202ef[_0x468d90(0x11c)],this[_0x468d90(0x149)]['monthly']),this[_0x468d90(0x112)](_0x5a470b,_0x3df44b,_0x3202ef);}['checkThresholdAlerts'](_0x449981,_0x4b545e,_0x1c5a04){const _0x4ddb58=a0_0x398c00,_0x14775d=this[_0x4ddb58(0x15d)]['thresholds'];this[_0x4ddb58(0x12a)]('daily',_0x449981[_0x4ddb58(0x11c)],this[_0x4ddb58(0x149)]['daily'],_0x14775d),this[_0x4ddb58(0x12a)]('weekly',_0x4b545e['cost'],this['budgets']['weekly'],_0x14775d),this['checkThreshold'](_0x4ddb58(0x15c),_0x1c5a04['cost'],this[_0x4ddb58(0x149)][_0x4ddb58(0x15c)],_0x14775d);}[a0_0x398c00(0x12a)](_0x31a436,_0x1ef903,_0x62dde3,_0x4a2c22){const _0x4ebebf=a0_0x398c00,_0x1c5aeb=_0x1ef903/_0x62dde3*0x64;for(const _0x22343b of _0x4a2c22){if(_0x1c5aeb>=_0x22343b){const _0x2e65a0=_0x31a436+'_'+_0x22343b,_0x1d63d=this[_0x4ebebf(0x15d)][_0x4ebebf(0x117)][_0x4ebebf(0x113)](_0x2e65a0),_0x3cb821=Date[_0x4ebebf(0x14d)]();(!_0x1d63d||_0x3cb821-_0x1d63d>0x36ee80)&&(this['sendThresholdAlert'](_0x31a436,_0x1c5aeb,_0x22343b,_0x1ef903,_0x62dde3),this['alerts']['lastAlertTimes'][_0x4ebebf(0x150)](_0x2e65a0,_0x3cb821));break;}}}['sendBudgetAlert'](_0xf33a77,_0x341658,_0x537a7b){const _0x1b09e5=a0_0x398c00;this['logger']['warn'](_0x1b09e5(0x135),{'period':_0xf33a77,'currentUsage':_0x341658,'budgetLimit':_0x537a7b,'excess':_0x341658-_0x537a7b}),typeof process!==_0x1b09e5(0x163)&&process['emit']&&process[_0x1b09e5(0x143)]('budgetAlert',{'type':'budget_exceeded','period':_0xf33a77,'currentUsage':_0x341658,'budgetLimit':_0x537a7b,'excess':_0x341658-_0x537a7b});}['sendThresholdAlert'](_0x413b4e,_0x1b5a74,_0x9d0aaa,_0x4367ac,_0x1b0794){const _0x2d78c3=a0_0x398c00;this[_0x2d78c3(0x13a)][_0x2d78c3(0x138)](_0x2d78c3(0x11b),{'period':_0x413b4e,'percentage':Math['round'](_0x1b5a74),'threshold':_0x9d0aaa,'usage':_0x4367ac,'budget':_0x1b0794}),typeof process!==_0x2d78c3(0x163)&&process['emit']&&process[_0x2d78c3(0x143)]('budgetAlert',{'type':'threshold_reached','period':_0x413b4e,'percentage':Math['round'](_0x1b5a74),'threshold':_0x9d0aaa,'usage':_0x4367ac,'budget':_0x1b0794});}[a0_0x398c00(0x142)](_0x20c5db){const _0x4b3784=a0_0x398c00;return _0x20c5db['toISOString']()[_0x4b3784(0x151)]('T')[0x0];}[a0_0x398c00(0x115)](_0x9a2174){const _0x508e60=a0_0x398c00,_0x9742bd=_0x9a2174['getFullYear'](),_0x32e7d7=this['getWeekNumber'](_0x9a2174);return _0x9742bd+'-W'+_0x32e7d7[_0x508e60(0x139)]()['padStart'](0x2,'0');}[a0_0x398c00(0x118)](_0x39ddeb){const _0xd13704=a0_0x398c00,_0x34da99=_0x39ddeb[_0xd13704(0x13c)](),_0x29dcb6=_0x39ddeb[_0xd13704(0x12c)]()+0x1;return _0x34da99+'-'+_0x29dcb6[_0xd13704(0x139)]()[_0xd13704(0x133)](0x2,'0');}['getWeekNumber'](_0x49a585){const _0x48f169=a0_0x398c00,_0x2195f8=new Date(_0x49a585['getFullYear'](),0x0,0x1),_0x1bfe34=(_0x49a585-_0x2195f8)/0x5265c00;return Math[_0x48f169(0x157)]((_0x1bfe34+_0x2195f8['getDay']()+0x1)/0x7);}[a0_0x398c00(0x164)](_0x58ca55){const _0x318c69=a0_0x398c00,_0x37a733=[];return _0x37a733['push']([_0x318c69(0x124),'Date',_0x318c69(0x15a),'Tokens',_0x318c69(0x147),'Agent',_0x318c69(0x12b)]),Object['entries'](_0x58ca55['daily'])[_0x318c69(0x137)](([_0x4ed66f,_0x15bb71])=>{const _0x268635=_0x318c69;_0x37a733[_0x268635(0x134)](['Daily',_0x4ed66f,_0x15bb71['cost'],_0x15bb71['tokens'],_0x15bb71[_0x268635(0x160)],'','']),Object[_0x268635(0x146)](_0x15bb71['byAgent']||{})[_0x268635(0x137)](([_0xb69ef9,_0x26d816])=>{const _0x277114=_0x268635;_0x37a733[_0x277114(0x134)]([_0x277114(0x167),_0x4ed66f,_0x26d816['cost'],_0x26d816[_0x277114(0x141)],_0x26d816[_0x277114(0x160)],_0xb69ef9,'']);});}),_0x37a733[_0x318c69(0x144)](_0x475c88=>_0x475c88[_0x318c69(0x11f)](','))['join']('\x0a');}['loadUsageData'](){try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x1a8a27){this['logger']['error']('Failed\x20to\x20load\x20usage\x20data',{'error':_0x1a8a27['message']});}}[a0_0x398c00(0x120)](){const _0x5258b8=a0_0x398c00;try{this['logger']['debug'](_0x5258b8(0x121));}catch(_0x4f23d6){this[_0x5258b8(0x13a)][_0x5258b8(0x119)](_0x5258b8(0x140),{'error':_0x4f23d6['message']});}}[a0_0x398c00(0x131)](){setInterval(()=>{const _0x36a3df=a0_0x2441;this[_0x36a3df(0x120)]();},0x493e0);}}export default BudgetService;
@@ -1 +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
+ const a0_0x4a371a=a0_0xa6be;function a0_0xa6be(_0x2100a2,_0x2718e5){_0x2100a2=_0x2100a2-0x1e4;const _0x493331=a0_0x4933();let _0xa6beed=_0x493331[_0x2100a2];if(a0_0xa6be['MFsBsO']===undefined){var _0x3c7583=function(_0x4b2ace){const _0x18a5be='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2a898a='',_0x2f6c52='';for(let _0x44f35f=0x0,_0x222b47,_0x57ba40,_0x2d512b=0x0;_0x57ba40=_0x4b2ace['charAt'](_0x2d512b++);~_0x57ba40&&(_0x222b47=_0x44f35f%0x4?_0x222b47*0x40+_0x57ba40:_0x57ba40,_0x44f35f++%0x4)?_0x2a898a+=String['fromCharCode'](0xff&_0x222b47>>(-0x2*_0x44f35f&0x6)):0x0){_0x57ba40=_0x18a5be['indexOf'](_0x57ba40);}for(let _0xbf89b0=0x0,_0x4afe1b=_0x2a898a['length'];_0xbf89b0<_0x4afe1b;_0xbf89b0++){_0x2f6c52+='%'+('00'+_0x2a898a['charCodeAt'](_0xbf89b0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f6c52);};a0_0xa6be['aAPfvB']=_0x3c7583,a0_0xa6be['LpgAlX']={},a0_0xa6be['MFsBsO']=!![];}const _0x4998e4=_0x493331[0x0],_0x3b1fc0=_0x2100a2+_0x4998e4,_0x4e3639=a0_0xa6be['LpgAlX'][_0x3b1fc0];return!_0x4e3639?(_0xa6beed=a0_0xa6be['aAPfvB'](_0xa6beed),a0_0xa6be['LpgAlX'][_0x3b1fc0]=_0xa6beed):_0xa6beed=_0x4e3639,_0xa6beed;}(function(_0x334a33,_0x3f6062){const _0x4ba199=a0_0xa6be,_0x4612fd=_0x334a33();while(!![]){try{const _0x431ee1=parseInt(_0x4ba199(0x210))/0x1*(-parseInt(_0x4ba199(0x20e))/0x2)+-parseInt(_0x4ba199(0x1e6))/0x3*(parseInt(_0x4ba199(0x1ea))/0x4)+-parseInt(_0x4ba199(0x214))/0x5*(-parseInt(_0x4ba199(0x203))/0x6)+-parseInt(_0x4ba199(0x21a))/0x7*(-parseInt(_0x4ba199(0x201))/0x8)+-parseInt(_0x4ba199(0x1f1))/0x9+-parseInt(_0x4ba199(0x1ef))/0xa*(parseInt(_0x4ba199(0x1f8))/0xb)+parseInt(_0x4ba199(0x1e5))/0xc;if(_0x431ee1===_0x3f6062)break;else _0x4612fd['push'](_0x4612fd['shift']());}catch(_0x1d551b){_0x4612fd['push'](_0x4612fd['shift']());}}}(a0_0x4933,0x9d201));function a0_0x4933(){const _0xa3f777=['zM9YBwf0uMvMzxjLBMnLrMLSzq','Dg9Rzw5fC3rPBwf0zq','mteYmZC5nxfMD05AEa','s0iIig1Vzgu9iMnVBNrLBNqIpGO','ica8zMLSzsbUyw1Lpsi','mcbcExrLCW','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','z2v0qwn0AxzLqxr0ywnOBwvUDhm','ntmYn3jKrhDJvq','zM9YBwf0q29UDgvUDezPBgu','cIaGpc9MAwXLpG','yxr0ywnOBwvUDfnLCNzPy2u','mtK4odCYmtzqB3HqCLC','mZbSq2zwq1e','C2L6zq','CMvMzxjLBMnL','y29UDgvUDa','mZa3mtq0D2Hpzxbi','Cg93','jMfTCdS','zM9YBwf0qNL0zxm','BwvZC2fNzq','mteZmJb4Afrrr2C','iIaVpG','nZaXmdq2mfPXthztCG','Bw9Kzq','zMLSzuLK','qNL0zxm','CgrM','Aw5PDgLHBgL6zq','Bg9Nz2vY','nteZn09LD3Dfzq','zM9YBwf0sw1Hz2vgAwXL','Aw1Hz2u','zMLSDgvY','Bg9N','zM9YBwf0vgv4DezPBgu','zxn0Aw1HDgvuB3rHBfrVA2vUCW','jMD0oW','yNvPBgreEw5HBwLJq29UDgv4Da','odCYofvjvxDkva','jNf1B3q7','mtHXBNfowKu','ChvZAa','Dg9ju09tDhjPBMC','Dg9gAxHLza','iIbZAxPLpsi','jMfWB3m7','zMXVB3i','CMvWBgfJzq','iIb0ExbLpsi','zM9YBwf0ugrMrMLSzq','zxnJyxbLwg1S','mJi3mdzbtuTJvvi','BgvUz3rO','mZLSs1v0v0u','zxjYB3i'];a0_0x4933=function(){return _0xa3f777;};return a0_0x4933();}import a0_0x2a898a from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x2f6c52={},_0x44f35f=null){const _0x219519=a0_0xa6be;this['config']=_0x2f6c52,this['logger']=_0x44f35f,this[_0x219519(0x1e4)]=new a0_0x2a898a(_0x2f6c52,_0x44f35f);}async[a0_0x4a371a(0x1f6)](){const _0x42d0f4=a0_0x4a371a;await this[_0x42d0f4(0x1e4)]['initialize']();}async[a0_0x4a371a(0x200)](_0x222b47){const _0x4c4189=a0_0x4a371a;try{const _0x57ba40=await this[_0x4c4189(0x1e4)][_0x4c4189(0x219)](_0x222b47);if(_0x57ba40[_0x4c4189(0x20f)]===0x0)return'';const _0x2d512b=_0x57ba40[_0x4c4189(0x1fb)](_0x2aaa22=>_0x2aaa22['mode']==='content'),_0xbf89b0=_0x57ba40[_0x4c4189(0x1fb)](_0x2cdb5c=>_0x2cdb5c[_0x4c4189(0x1f2)]===_0x4c4189(0x1e8));let _0x4afe1b='';if(_0x2d512b[_0x4c4189(0x20f)]>0x0){_0x4afe1b+='\x0a<attached-files>\x0a';for(const _0x532a4d of _0x2d512b){const _0x2d26a8=await this[_0x4c4189(0x1e4)]['getAttachmentContent'](_0x532a4d[_0x4c4189(0x1f3)]);if(_0x2d26a8){const _0x534fc1=this[_0x4c4189(0x21b)](_0x532a4d,_0x2d26a8);_0x4afe1b+=_0x534fc1+'\x0a';}}_0x4afe1b+='</attached-files>\x0a';}if(_0xbf89b0[_0x4c4189(0x20f)]>0x0){_0x4afe1b+='\x0a<file-references>\x0a';for(const _0x5f02da of _0xbf89b0){const _0x5ee7f4=this[_0x4c4189(0x212)](_0x5f02da);_0x4afe1b+=_0x5ee7f4+'\x0a';}_0x4afe1b+='</file-references>\x0a',_0x4afe1b+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x4afe1b;}catch(_0xe5172c){return this['logger']?.[_0x4c4189(0x211)](_0x4c4189(0x218),{'agentId':_0x222b47,'error':_0xe5172c['message']}),'';}}['formatContentFile'](_0x5446f9,_0x44a62c){const _0x2e6276=a0_0x4a371a,{fileName:_0x1b318c,fileType:_0x3544ce,size:_0x4f5956,contentType:_0x18e9ac}=_0x5446f9,_0x4ae8e5=(_0x4f5956/0x400)[_0x2e6276(0x206)](0x2);if(_0x18e9ac==='text')return this[_0x2e6276(0x1fd)](_0x5446f9,_0x44a62c);else{if(_0x18e9ac===_0x2e6276(0x1fa))return this['formatImageFile'](_0x5446f9,_0x44a62c);else{if(_0x18e9ac===_0x2e6276(0x1f5))return this[_0x2e6276(0x20c)](_0x5446f9,_0x44a62c);}}return'\x20\x20<file\x20name=\x22'+this[_0x2e6276(0x20d)](_0x1b318c)+'\x22\x20type=\x22'+_0x3544ce+'\x22\x20size=\x22'+_0x4ae8e5+_0x2e6276(0x215)+this[_0x2e6276(0x20d)](_0x44a62c)+'\x0a\x20\x20</file>';}[a0_0x4a371a(0x1fd)](_0x417bc7,_0x202203){const _0x1e5103=a0_0x4a371a,{fileName:_0x104618,fileType:_0xab3a00,size:_0x26e3a6}=_0x417bc7,_0x50a9ad=(_0x26e3a6/0x400)['toFixed'](0x2);return _0x1e5103(0x216)+this[_0x1e5103(0x20d)](_0x104618)+'\x22\x20type=\x22'+_0xab3a00+_0x1e5103(0x207)+_0x50a9ad+_0x1e5103(0x215)+this['escapeXml'](_0x202203)+'\x0a\x20\x20</file>';}[a0_0x4a371a(0x1f9)](_0x4863d7,_0x2c14cf){const _0x360150=a0_0x4a371a,{fileName:_0x590515,fileType:_0x13f890,size:_0x2f0cbe}=_0x4863d7,_0x3554c8=(_0x2f0cbe/0x400)[_0x360150(0x206)](0x2);return _0x360150(0x216)+this['escapeXml'](_0x590515)+_0x360150(0x20b)+_0x13f890+'\x22\x20size=\x22'+_0x3554c8+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x2c14cf+_0x360150(0x21c);}[a0_0x4a371a(0x20c)](_0x9b934c,_0x2d24be){const _0x323273=a0_0x4a371a,{fileName:_0x292c6d,fileType:_0x7d0ee9,size:_0x48c96d}=_0x9b934c,_0x5b080a=(_0x48c96d/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x292c6d)+_0x323273(0x20b)+_0x7d0ee9+'\x22\x20size=\x22'+_0x5b080a+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x323273(0x20d)](_0x2d24be)+_0x323273(0x21c);}[a0_0x4a371a(0x212)](_0x51bcc2){const _0x25ed60=a0_0x4a371a,{fileName:_0x2874a4,originalPath:_0x2a4bc1,size:_0x452f87,fileType:_0x20abb6,lastModified:_0x31f7cd}=_0x51bcc2,_0x59ef59=this[_0x25ed60(0x1ed)](_0x452f87),_0x2945c9=new Date(_0x31f7cd)[_0x25ed60(0x205)]()['split']('T')[0x0];return _0x25ed60(0x216)+this['escapeXml'](_0x2874a4)+'\x22\x20path=\x22'+this[_0x25ed60(0x20d)](_0x2a4bc1)+'\x22\x20size=\x22'+_0x59ef59+_0x25ed60(0x20b)+_0x20abb6+'\x22\x20modified=\x22'+_0x2945c9+_0x25ed60(0x1f0);}[a0_0x4a371a(0x20d)](_0x4e639c){const _0x29a800=a0_0x4a371a;if(!_0x4e639c)return'';return _0x4e639c['replace'](/&/g,_0x29a800(0x1ec))[_0x29a800(0x20a)](/</g,'&lt;')['replace'](/>/g,_0x29a800(0x1ff))['replace'](/"/g,_0x29a800(0x202))['replace'](/'/g,_0x29a800(0x208));}[a0_0x4a371a(0x1ed)](_0x3c9fb4){const _0x1a3f48=a0_0x4a371a;if(_0x3c9fb4===0x0)return _0x1a3f48(0x217);const _0x18c3e3=0x400,_0x5b7577=[_0x1a3f48(0x1f4),'KB','MB','GB'],_0x7265f5=Math[_0x1a3f48(0x209)](Math[_0x1a3f48(0x1fc)](_0x3c9fb4)/Math['log'](_0x18c3e3));return parseFloat((_0x3c9fb4/Math[_0x1a3f48(0x1eb)](_0x18c3e3,_0x7265f5))['toFixed'](0x2))+_0x5b7577[_0x7265f5];}async[a0_0x4a371a(0x1fe)](_0x398fe3){const _0x5c66b8=a0_0x4a371a;try{const _0x5199b0=await this['attachmentService']['getActiveAttachments'](_0x398fe3);let _0x599e85=0x0;for(const _0x346f03 of _0x5199b0){_0x346f03['mode']==='content'?_0x599e85+=_0x346f03[_0x5c66b8(0x213)]||0x0:_0x599e85+=0x14;}return _0x599e85;}catch(_0x573156){return this[_0x5c66b8(0x1f7)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x398fe3,'error':_0x573156[_0x5c66b8(0x1ee)]}),0x0;}}async['getAttachmentSummary'](_0x50c4a7){const _0xfb9125=a0_0x4a371a;try{const _0x4c4503=await this['attachmentService']['getActiveAttachments'](_0x50c4a7),_0x4c318b={'totalActive':_0x4c4503['length'],'contentMode':_0x4c4503[_0xfb9125(0x1fb)](_0x11f611=>_0x11f611['mode']===_0xfb9125(0x1e9))[_0xfb9125(0x20f)],'referenceMode':_0x4c4503[_0xfb9125(0x1fb)](_0x3e4f81=>_0x3e4f81['mode']==='reference')['length'],'estimatedTokens':0x0,'files':[]};for(const _0x2ae158 of _0x4c4503){_0x4c318b['estimatedTokens']+=_0x2ae158['tokenEstimate']||0x0,_0x4c318b['files'][_0xfb9125(0x204)]({'fileName':_0x2ae158['fileName'],'mode':_0x2ae158['mode'],'size':this[_0xfb9125(0x1ed)](_0x2ae158[_0xfb9125(0x1e7)]),'tokens':_0x2ae158[_0xfb9125(0x213)]||0x0});}return _0x4c318b;}catch(_0x251984){return this[_0xfb9125(0x1f7)]?.['error']('Error\x20getting\x20attachment\x20summary',{'agentId':_0x50c4a7,'error':_0x251984[_0xfb9125(0x1ee)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;