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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/agentActivityService.js +1 -1
  76. package/src/services/aiService.js +1 -1
  77. package/src/services/apiKeyManager.js +1 -1
  78. package/src/services/benchmarkService.js +1 -1
  79. package/src/services/budgetService.js +1 -1
  80. package/src/services/contextInjectionService.js +1 -1
  81. package/src/services/conversationCompactionService.js +1 -1
  82. package/src/services/errorHandler.js +1 -1
  83. package/src/services/fileAttachmentService.js +1 -1
  84. package/src/services/modelRouterService.js +1 -1
  85. package/src/services/modelsService.js +1 -1
  86. package/src/services/qualityInspector.js +1 -1
  87. package/src/services/tokenCountingService.js +1 -1
  88. package/src/tools/agentCommunicationTool.js +1 -1
  89. package/src/tools/agentDelayTool.js +1 -1
  90. package/src/tools/asyncToolManager.js +1 -1
  91. package/src/tools/baseTool.js +1 -1
  92. package/src/tools/browserTool.js +1 -1
  93. package/src/tools/cloneDetectionTool.js +1 -1
  94. package/src/tools/dependencyResolverTool.js +1 -1
  95. package/src/tools/fileContentReplaceTool.js +1 -1
  96. package/src/tools/fileSystemTool.js +1 -1
  97. package/src/tools/fileTreeTool.js +1 -1
  98. package/src/tools/imageTool.js +1 -1
  99. package/src/tools/importAnalyzerTool.js +1 -1
  100. package/src/tools/jobDoneTool.js +1 -1
  101. package/src/tools/seekTool.js +1 -1
  102. package/src/tools/staticAnalysisTool.js +1 -1
  103. package/src/tools/taskManagerTool.js +1 -1
  104. package/src/tools/terminalTool.js +1 -1
  105. package/src/tools/webTool.js +1 -1
  106. package/src/types/agent.js +1 -1
  107. package/src/types/contextReference.js +1 -1
  108. package/src/types/conversation.js +1 -1
  109. package/src/types/toolCommand.js +1 -1
  110. package/src/utilities/attachmentValidator.js +1 -1
  111. package/src/utilities/configManager.js +1 -1
  112. package/src/utilities/constants.js +1 -1
  113. package/src/utilities/directoryAccessManager.js +1 -1
  114. package/src/utilities/fileProcessor.js +1 -1
  115. package/src/utilities/logger.js +1 -1
  116. package/src/utilities/tagParser.js +1 -1
  117. package/src/utilities/toolConstants.js +1 -1
  118. package/src/utilities/userDataDir.js +1 -1
  119. package/web-ui/build/index.html +2 -2
  120. package/web-ui/build/static/index-CR8edPA3.js +348 -0
  121. package/web-ui/build/static/index-uN7nOVvZ.css +1 -0
  122. package/web-ui/build/static/index-DXN850Y2.js +0 -400
  123. package/web-ui/build/static/index-an-YRzUX.css +0 -1
@@ -1 +1 @@
1
- function a0_0x395b(_0xd463f3,_0x31858c){_0xd463f3=_0xd463f3-0x186;const _0x57cdf3=a0_0x57cd();let _0x395bb0=_0x57cdf3[_0xd463f3];if(a0_0x395b['prpdWG']===undefined){var _0x2a4eeb=function(_0x26c0a7){const _0x6f666a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d2624='',_0x562cd0='';for(let _0x2ff4b1=0x0,_0x223766,_0x413367,_0x493830=0x0;_0x413367=_0x26c0a7['charAt'](_0x493830++);~_0x413367&&(_0x223766=_0x2ff4b1%0x4?_0x223766*0x40+_0x413367:_0x413367,_0x2ff4b1++%0x4)?_0x2d2624+=String['fromCharCode'](0xff&_0x223766>>(-0x2*_0x2ff4b1&0x6)):0x0){_0x413367=_0x6f666a['indexOf'](_0x413367);}for(let _0x2aa0ab=0x0,_0x49614a=_0x2d2624['length'];_0x2aa0ab<_0x49614a;_0x2aa0ab++){_0x562cd0+='%'+('00'+_0x2d2624['charCodeAt'](_0x2aa0ab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x562cd0);};a0_0x395b['YTaYpJ']=_0x2a4eeb,a0_0x395b['GfNAiA']={},a0_0x395b['prpdWG']=!![];}const _0x6e7d5b=_0x57cdf3[0x0],_0x3fe05a=_0xd463f3+_0x6e7d5b,_0x38aedd=a0_0x395b['GfNAiA'][_0x3fe05a];return!_0x38aedd?(_0x395bb0=a0_0x395b['YTaYpJ'](_0x395bb0),a0_0x395b['GfNAiA'][_0x3fe05a]=_0x395bb0):_0x395bb0=_0x38aedd,_0x395bb0;}const a0_0x2b0c53=a0_0x395b;(function(_0x2a313f,_0x16a8ef){const _0x3f1933=a0_0x395b,_0x334fa9=_0x2a313f();while(!![]){try{const _0x1aaa4f=-parseInt(_0x3f1933(0x1f8))/0x1+parseInt(_0x3f1933(0x21a))/0x2+parseInt(_0x3f1933(0x1d0))/0x3*(-parseInt(_0x3f1933(0x230))/0x4)+parseInt(_0x3f1933(0x1ee))/0x5*(parseInt(_0x3f1933(0x220))/0x6)+-parseInt(_0x3f1933(0x1ea))/0x7+-parseInt(_0x3f1933(0x1b4))/0x8+-parseInt(_0x3f1933(0x1d1))/0x9*(-parseInt(_0x3f1933(0x22c))/0xa);if(_0x1aaa4f===_0x16a8ef)break;else _0x334fa9['push'](_0x334fa9['shift']());}catch(_0x5577d4){_0x334fa9['push'](_0x334fa9['shift']());}}}(a0_0x57cd,0xc6c55));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x57cd(){const _0x1b06a1=['yxbWBgLJyxrPB24VANnVBG','C3rHy2S','DgvTCgvYyxr1CMu','yMfZzvvYBa','x2zVCM1HDezVCKf6DxjL','Aw5MBW','qu5usfjpueLd','y29UDgvUDa','Dg90ywXFDg9Rzw5Z','x2nOzwnRtw9KzwXizwfSDgG','Bw9KzwXtCgvJCW','CMv2zxjZzq','x2zVCM1HDezVCKfUDgHYB3bPyW','C3rYzwfT','vu5bvvrit1jjwKve','yMfJA2vUza','l2HLywX0Aa','C3DPDgnOtw9KzwW','Aw1Hz2vZ','revfufnfruTFuJe','DgLTzw91Da','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','ywDLBNrqB29S','ue9tva','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','Bwf4vg9Rzw5Z','C3bLzwq','Aw1Nlq','C3vIC3rY','x3jLy29YzezHAwX1CMu','mta2nZmWmdHttw5qtLO','x21HA2vbueLszxf1zxn0','CgvYC2LZDefNzw50u3rHDgu','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','Bg94AwfbCgLlzxK','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','B3bLBMfP','l2nOyxqVy29TCgXLDgLVBNm','C3rYAw5NAwz5','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','CgHP','y3vZDg9TqxbPs2v5CW','C2vZC2LVBKLK','t1bftKfj','ywDLBNrjza','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','rKfmtejbq0S','y2XHC3nPzNLfCNjVCG','Dw5ZAgLMDa','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','DxnHz2u','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','z2v0s2v5C0zVCLjLCxvLC3q','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','Dgv4Da','ChvZAa','oxvPzhfbsa','mZu3ntqZwhv4q2vS','C3rHDhvZ','zxn0Aw1HDgvKvg9Rzw5Z','AM9PBG','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','qu5usfjpueLdx09qvvm','y2vPBa','Bg9Nz2vY','Aw5JBhvKzxm','BwfW','C3rVCa','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','y2HVAwnLCW','yxnZAxn0yw50','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','zxjYB3jiyw5KBgvY','DxjS','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','BgvUz3rO','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','ChjVDMLKzxi','qu5usfjpueLdx0HbsuTv','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','r0furvDbwv9usu1ft1vu','mZa1ntG1n0ztEev0ta','C2vUze1LC3nHz2u','C2v0qwDLBNrqB29S','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','mtqXndq1CuvZBxDq','x2LZvMfSAwrnB2rLBa','yNvKz2v0u2vYDMLJzq','zxjYB3iT','qvPvuKu','x2zVCM1HDezVCK9Wzw5bsq','sfruuca','C2L6zq','sw52ywXPzcbYzxf1zxn0oIa','CMvXDwvZDeLK','mte5odK2nxLLwg1ABW','x2DLDfzLBMrVCKzYB21nB2rLBa','qMvHCMvYia','C3rHBMrHCMq','yw50AhjVCgLJ','CM9Szq','D2fYBG','C3DPDgnOqwDLBNrnB2rLBa','Dg9ju09tDhjPBMC','BM93','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','yxP1CMuTB3bLBMfPlwrHBgXLmW','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','yxbPs2v5twfUywDLCG','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','zMfPBhvYzxm','C3rYAw5N','BwvZC2fNzxm','Ahr0Chm6lY9HCgKUBg94AweUywK','C3LZDgvT','BwvZC2fNzq','x3rYDw5JyxrLtwvZC2fNzq','ve9px01btLLFuKvrvuvtvfm','zgvIDwC','y29UzMLN','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','DhjHy2TvC2fNzq','DxnLCG','y29UDMvYC2f0Aw9UCW','C3rHDhvZvgv4Da','ChjVBxb0','z3b0','nde5ogLlzMLhsG','zgvLChnLzwS','Bw9KzwW','ic0G','y29UDMvYC2f0Aw9UtwfUywDLCNm','ANnVBG','mZblsgLhzMO','rK9sqKLerevo','yxbPs2v5','x2LZq2LYy3vPDejYzwfRzxjpCgvU','zMX1Ec0XlJeTChjV','CMvZCg9UC2vgB3jTyxq','CMfUzg9T','CMv0CNLbDhrLBxb0CW','z2v0qwDLBNq','C3vIC3rYAw5N','y2LYy3vPDejYzwfRzxi','uMv0CNLPBMCGAw4G','mti2mhbhz2HNrq','B3b0Aw9UCW','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','qKfex1jfuvvfu1q','mtGYmdq1mMrgsu90AG','DMvUzg9YqxbPs2v5','C3LZDgvTuhjVBxb0','su5urvjoquXFu0vsvKvsx0vsuK9s','x2vZDgLTyxrLvg9Rzw5Z','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','AgfUzgXLshr0CevYCM9Y','AxnpCgvU','zgf0yq','x3n1Bw1HCML6zu1LC3nHz2vZ','CgXHDgzVCM1qCM92AwrLza','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','AgvHBhrOEq','zxjYB3i','BgfZDezHAwX1CMvuAw1L','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','yJy0x2PZB24','x2HHBMrSzvjHDgvmAw1PDa','x3jLC2v0q2LYy3vPDejYzwfRzxi','C3vTBwfYEq'];a0_0x57cd=function(){return _0x1b06a1;};return a0_0x57cd();}class AIService{constructor(_0x2d2624,_0x562cd0,_0x2ff4b1,_0x223766){const _0xad2375=a0_0x395b;this[_0xad2375(0x212)]=_0x2d2624,this[_0xad2375(0x1d8)]=_0x562cd0,this['budgetService']=_0x2ff4b1,this['errorHandler']=_0x223766,this[_0xad2375(0x199)]=_0x2d2624['backend']?.[_0xad2375(0x199)]||_0xad2375(0x20c),this[_0xad2375(0x1aa)]=_0x2d2624[_0xad2375(0x1a5)]?.[_0xad2375(0x1aa)]||0xea60,this[_0xad2375(0x227)]=_0x2d2624[_0xad2375(0x1a5)]?.['retryAttempts']||0x3,this['rateLimiters']=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0xad2375(0x1d5)](),this[_0xad2375(0x21e)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x2b0c53(0x1eb)](_0x413367,_0x493830,_0x2aa0ab={}){const _0x3ae6af=a0_0x2b0c53,_0x49614a='req-'+Date[_0x3ae6af(0x201)]()+'-'+Math[_0x3ae6af(0x226)]()['toString'](0x24)[_0x3ae6af(0x1b2)](0x2,0x9);try{if(this[_0x3ae6af(0x223)]())throw new Error(_0x3ae6af(0x1ae));await this['_checkRateLimit'](_0x413367);const _0x578fef=this['_formatMessagesForModel'](_0x493830,_0x413367,_0x2aa0ab),_0x67ecd1={'model':_0x413367,'messages':_0x578fef,'options':{'max_tokens':this[_0x3ae6af(0x1a0)][_0x413367]?.[_0x3ae6af(0x1af)]||0xfa0,'temperature':_0x2aa0ab[_0x3ae6af(0x198)]||0.7,'stream':_0x2aa0ab[_0x3ae6af(0x1a3)]||![]},'metadata':{'requestId':_0x49614a,'agentId':_0x2aa0ab[_0x3ae6af(0x1c4)],'timestamp':new Date()[_0x3ae6af(0x200)]()}};_0x2aa0ab[_0x3ae6af(0x232)]&&(_0x67ecd1['system']=_0x2aa0ab['systemPrompt']);this['logger'][_0x3ae6af(0x19b)](_0x3ae6af(0x1cb)+_0x413367,{'requestId':_0x49614a,'agentId':_0x2aa0ab['agentId'],'messageCount':Array['isArray'](_0x493830)?_0x493830['length']:0x1,'maxTokens':_0x67ecd1['max_tokens']});const _0x554a60=await this['_makeAPIRequest'](_0x3ae6af(0x1bd),_0x67ecd1,_0x49614a,{..._0x2aa0ab,'sessionId':_0x2aa0ab['sessionId'],'platformProvided':_0x2aa0ab[_0x3ae6af(0x18c)]||![]});return _0x554a60['usage']&&await this[_0x3ae6af(0x214)](_0x2aa0ab[_0x3ae6af(0x1c4)],_0x413367,{'prompt_tokens':_0x554a60['usage']['prompt_tokens']||0x0,'completion_tokens':_0x554a60['usage']['completion_tokens']||0x0,'total_tokens':_0x554a60['usage'][_0x3ae6af(0x19e)]||0x0}),this[_0x3ae6af(0x194)](),{'content':_0x554a60[_0x3ae6af(0x1dd)][0x0]?.[_0x3ae6af(0x20e)]?.[_0x3ae6af(0x19d)]||'','model':_0x554a60['model'],'tokenUsage':_0x554a60[_0x3ae6af(0x1ca)],'requestId':_0x49614a,'finishReason':_0x554a60[_0x3ae6af(0x1dd)][0x0]?.['finish_reason']};}catch(_0x2f6346){this[_0x3ae6af(0x1b3)](),this[_0x3ae6af(0x1d8)]['error'](_0x3ae6af(0x22e)+_0x2f6346['message'],{'requestId':_0x49614a,'model':_0x413367,'agentId':_0x2aa0ab['agentId'],'error':_0x2f6346['stack']}),await this[_0x3ae6af(0x188)](_0x2f6346,{'requestId':_0x49614a,'model':_0x413367,'agentId':_0x2aa0ab['agentId']});throw _0x2f6346;}}async['routeModel'](_0x9cdfaf,_0x13b87b={}){const _0x129b86=a0_0x2b0c53;try{const _0x518bc8=MODEL_ROUTING[_0x9cdfaf['toUpperCase']()]||MODEL_ROUTING[_0x129b86(0x1c6)],_0x1ad857=[];for(const _0x59ac0e of _0x518bc8){const _0x6e0860=await this[_0x129b86(0x19f)](_0x59ac0e);_0x6e0860&&_0x1ad857[_0x129b86(0x1cf)](_0x59ac0e);}if(_0x1ad857[_0x129b86(0x1e4)]===0x0)return this[_0x129b86(0x1d8)][_0x129b86(0x1fe)](_0x129b86(0x191)+_0x9cdfaf+',\x20using\x20fallback'),MODEL_ROUTING[_0x129b86(0x1c6)][0x0];let _0x2b1b8c=_0x1ad857[0x0];if(_0x13b87b['preferredModel']&&_0x1ad857['includes'](_0x13b87b['preferredModel']))_0x2b1b8c=_0x13b87b['preferredModel'];else{if(_0x13b87b['complexity']==='high'&&_0x1ad857[_0x129b86(0x1d9)](MODELS['ANTHROPIC_OPUS']))_0x2b1b8c=MODELS['ANTHROPIC_OPUS'];else _0x13b87b[_0x129b86(0x1b0)]==='fast'&&_0x1ad857[_0x129b86(0x1d9)](MODELS['ANTHROPIC_HAIKU'])&&(_0x2b1b8c=MODELS['ANTHROPIC_HAIKU']);}return this[_0x129b86(0x1d8)][_0x129b86(0x19b)]('Model\x20routed\x20for\x20task:\x20'+_0x9cdfaf,{'selectedModel':_0x2b1b8c,'availableModels':_0x1ad857[_0x129b86(0x1e4)],'context':_0x13b87b}),_0x2b1b8c;}catch(_0x4292b1){return this[_0x129b86(0x1d8)]['error'](_0x129b86(0x1c5)+_0x4292b1['message'],{'task':_0x9cdfaf,'context':_0x13b87b}),MODEL_ROUTING[_0x129b86(0x1c6)][0x0];}}async['compactizeConversation'](_0x3ecae5,_0x4fe3b2){const _0x28dc1c=a0_0x2b0c53,_0x53d220=this[_0x28dc1c(0x1a0)][_0x4fe3b2];if(!_0x53d220)throw new Error('Unknown\x20model:\x20'+_0x4fe3b2);const _0x43d778=_0x53d220['contextWindow']*0.8;let _0x1bf541=0x0;const _0x110b98=[],_0x4fd6ba=await Promise['all'](_0x3ecae5['map'](async _0x57823e=>({..._0x57823e,'estimatedTokens':await this['_estimateTokens'](_0x57823e['content'],_0x4fe3b2)}))),_0x2efd73=[..._0x4fd6ba][_0x28dc1c(0x1a1)]();for(const _0x1fa472 of _0x2efd73){if(_0x1bf541+_0x1fa472[_0x28dc1c(0x1d3)]>_0x43d778){if(_0x110b98[_0x28dc1c(0x1e4)]===0x0){const _0x1f2757=await this[_0x28dc1c(0x20f)](_0x1fa472[_0x28dc1c(0x19d)],_0x43d778);_0x110b98[_0x28dc1c(0x1c8)]({..._0x1fa472,'content':_0x1f2757,'estimatedTokens':_0x43d778});}break;}_0x110b98['unshift'](_0x1fa472),_0x1bf541+=_0x1fa472['estimatedTokens'];}const _0x2d132c=_0x4fd6ba['slice'](0x0,-_0x110b98['length']);if(_0x2d132c['length']>0x0){const _0x1f0ec7=await this['_summarizeMessages'](_0x2d132c,_0x4fe3b2);_0x110b98['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x1f0ec7,'timestamp':_0x2d132c[0x0]['timestamp'],'type':_0x28dc1c(0x195),'estimatedTokens':await this['_estimateTokens'](_0x1f0ec7,_0x4fe3b2)});}return this[_0x28dc1c(0x1d8)]['info'](_0x28dc1c(0x1dc)+_0x4fe3b2,{'originalMessages':_0x3ecae5[_0x28dc1c(0x1e4)],'compactizedMessages':_0x110b98['length'],'estimatedTokens':_0x1bf541,'maxTokens':_0x43d778}),_0x110b98;}async['trackUsage'](_0x1e192c,_0x4fe2fe,_0x1d7158,_0x571c49){const _0x5448d4=a0_0x2b0c53;try{this[_0x5448d4(0x1f0)]&&this[_0x5448d4(0x1f0)]['trackUsage'](_0x1e192c,_0x4fe2fe,_0x1d7158);}catch(_0x508d9f){this['logger'][_0x5448d4(0x18f)](_0x5448d4(0x1e5)+_0x508d9f['message']);}}async[a0_0x2b0c53(0x188)](_0x124b96,_0x3bf7a9){const _0x886c11=a0_0x2b0c53,_0x4290bd=this[_0x886c11(0x1e1)]?.[_0x886c11(0x1c7)]?.(_0x124b96,_0x3bf7a9);switch(_0x124b96['status']||_0x124b96['code']){case HTTP_STATUS[_0x886c11(0x22f)]:this[_0x886c11(0x1d8)]['error'](_0x886c11(0x203),{'context':_0x3bf7a9,'error':_0x124b96['message']});throw new Error(_0x886c11(0x1f6)+_0x124b96[_0x886c11(0x20e)]);case HTTP_STATUS[_0x886c11(0x1a4)]:this[_0x886c11(0x1d8)]['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x3bf7a9});throw new Error(_0x886c11(0x206));case HTTP_STATUS[_0x886c11(0x221)]:this['logger']['error'](_0x886c11(0x1b7),{'context':_0x3bf7a9});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS['NOT_FOUND']:this[_0x886c11(0x1d8)][_0x886c11(0x18f)](_0x886c11(0x18d),{'context':_0x3bf7a9});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0x886c11(0x210)]:this['logger']['warn']('Rate\x20limit\x20exceeded',{'context':_0x3bf7a9}),await this[_0x886c11(0x193)](_0x3bf7a9);throw new Error(_0x886c11(0x1c9));case HTTP_STATUS[_0x886c11(0x233)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x886c11(0x1e9)]:this[_0x886c11(0x1d8)]['error'](_0x886c11(0x1ba),{'context':_0x3bf7a9,'status':_0x124b96['status']}),await this['_handleServiceUnavailable'](_0x3bf7a9);throw new Error(_0x886c11(0x1df));default:this[_0x886c11(0x1d8)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x3bf7a9,'error':_0x124b96['message']});throw new Error('AI\x20service\x20error:\x20'+_0x124b96[_0x886c11(0x20e)]);}}['setApiKeyManager'](_0x603c5e){const _0xf33d79=a0_0x2b0c53;this['apiKeyManager']=_0x603c5e,this[_0xf33d79(0x1d8)]?.[_0xf33d79(0x19b)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x603c5e});}[a0_0x2b0c53(0x1ec)](_0x36b22c){const _0x331162=a0_0x2b0c53;this['agentPool']=_0x36b22c,this['logger']?.[_0x331162(0x19b)](_0x331162(0x1b8),{'hasAgentPool':!!_0x36b22c});}async['generateImage'](_0x297eb1,_0x404ee9={}){const _0xbe35c0=a0_0x2b0c53,_0x43e581=_0xbe35c0(0x1b1)+Date['now']()+'-'+Math['random']()['toString'](0x24)[_0xbe35c0(0x1b2)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0xbe35c0(0x1ae));if(!_0x297eb1||typeof _0x297eb1!==_0xbe35c0(0x20a)||_0x297eb1['trim']()[_0xbe35c0(0x1e4)]===0x0)throw new Error(_0xbe35c0(0x208));const _0x1b79d3=_0x404ee9['model']||_0xbe35c0(0x224),_0x4bfad3=_0x404ee9['size']||'1024x1024',_0x38a950=_0x404ee9['quality']||_0xbe35c0(0x1fb),_0x32d175=_0x404ee9[_0xbe35c0(0x225)]||'url';this[_0xbe35c0(0x1d8)]['info']('Generating\x20image\x20with\x20model:\x20'+_0x1b79d3,{'requestId':_0x43e581,'model':_0x1b79d3,'size':_0x4bfad3,'quality':_0x38a950,'promptLength':_0x297eb1[_0xbe35c0(0x1e4)]});const _0x28a89a={'prompt':_0x297eb1,'model':_0x1b79d3,'size':_0x4bfad3,'quality':_0x38a950,'response_format':_0x32d175,'n':0x1,'metadata':{'requestId':_0x43e581,'timestamp':new Date()['toISOString']()}},_0x3e2306=await this['_makeImageAPIRequest'](_0x28a89a,_0x43e581,{'sessionId':_0x404ee9[_0xbe35c0(0x1c2)],'platformProvided':_0x404ee9[_0xbe35c0(0x18c)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x3e2306['data']?.[0x0]?.[_0xbe35c0(0x1e2)]||null,'b64_json':_0x3e2306[_0xbe35c0(0x18a)]?.[0x0]?.[_0xbe35c0(0x192)]||null,'model':_0x3e2306['model']||_0x1b79d3,'requestId':_0x43e581,'revisedPrompt':_0x3e2306['data']?.[0x0]?.['revised_prompt']||_0x297eb1};}catch(_0xd063e0){this['_recordFailure'](),this[_0xbe35c0(0x1d8)][_0xbe35c0(0x18f)](_0xbe35c0(0x213)+_0xd063e0['message'],{'requestId':_0x43e581,'model':_0x404ee9['model'],'error':_0xd063e0[_0xbe35c0(0x197)]});throw _0xd063e0;}}async['checkServiceHealth'](){const _0x297990=a0_0x2b0c53;try{const _0x3a229a=await this[_0x297990(0x1b5)](_0x297990(0x1a6),{},'health-check');return _0x3a229a['status']===_0x297990(0x18e);}catch(_0x1bcb37){return![];}}async[a0_0x2b0c53(0x1ff)](_0x2e61c5,_0x4e0bf8){const _0x17ee45=a0_0x2b0c53;try{if(!this['_isValidModel'](_0x4e0bf8))throw new Error('Invalid\x20model:\x20'+_0x4e0bf8);let _0x10dd80=this[_0x17ee45(0x21e)]['get'](_0x2e61c5);!_0x10dd80&&(_0x10dd80=new ConversationManager(_0x2e61c5,this['logger']),this['conversationManagers']['set'](_0x2e61c5,_0x10dd80));const _0x434e1a=await _0x10dd80['switchModel'](_0x4e0bf8),_0x4c1946=await this[_0x17ee45(0x1ac)]?.[_0x17ee45(0x228)](_0x2e61c5);return _0x4c1946&&(_0x4c1946['currentModel']=_0x4e0bf8,await this['agentPool'][_0x17ee45(0x1b6)](_0x2e61c5)),this['logger']['info'](_0x17ee45(0x202)+_0x2e61c5,{'newModel':_0x4e0bf8,'messageCount':_0x434e1a['messages']['length']}),{'success':!![],'agentId':_0x2e61c5,'newModel':_0x4e0bf8,'conversation':_0x434e1a};}catch(_0x3fd18c){this[_0x17ee45(0x1d8)][_0x17ee45(0x18f)]('Model\x20switch\x20failed:\x20'+_0x3fd18c[_0x17ee45(0x20e)],{'agentId':_0x2e61c5,'newModel':_0x4e0bf8});throw _0x3fd18c;}}[a0_0x2b0c53(0x1d5)](){const _0x14f214=a0_0x2b0c53,_0x5a330d={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x14f214(0x19c)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x14f214(0x1d6)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x14f214(0x1e7)]]:{'provider':MODEL_PROVIDERS[_0x14f214(0x19c)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x14f214(0x1c3)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x14f214(0x1a9)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x14f214(0x1f2),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x5a330d;}['_formatMessagesForModel'](_0x4b3466,_0x3d48ed,_0x531928){const _0x50c9ad=a0_0x2b0c53,_0x41e83c=this['modelSpecs'][_0x3d48ed]||{'provider':_0x50c9ad(0x1f2)};let _0x573728;typeof _0x4b3466==='string'?_0x573728=[{'role':_0x50c9ad(0x215),'content':_0x4b3466}]:_0x573728=_0x4b3466['map'](_0xe4389a=>this[_0x50c9ad(0x1e0)](_0xe4389a,_0x3d48ed));switch(_0x41e83c[_0x50c9ad(0x1e6)]){case MODEL_PROVIDERS[_0x50c9ad(0x19c)]:return this[_0x50c9ad(0x1a2)](_0x573728);case MODEL_PROVIDERS[_0x50c9ad(0x1c3)]:return this[_0x50c9ad(0x1f3)](_0x573728);case MODEL_PROVIDERS[_0x50c9ad(0x1f2)]:return this[_0x50c9ad(0x19a)](_0x573728);default:return _0x573728;}}[a0_0x2b0c53(0x1e0)](_0x3f6544,_0x17ec3b){return{'role':_0x3f6544['role']||'user','content':_0x3f6544['content'],'timestamp':_0x3f6544['timestamp']};}[a0_0x2b0c53(0x1a2)](_0x2f41db){const _0x23a10d=a0_0x2b0c53;return _0x2f41db[_0x23a10d(0x1da)](_0x22c8f7=>{const _0x3b6816=_0x23a10d;if(_0x22c8f7[_0x3b6816(0x1fd)]===_0x3b6816(0x20d))return{'role':_0x3b6816(0x215),'content':'System:\x20'+_0x22c8f7[_0x3b6816(0x19d)]};return _0x22c8f7;});}['_formatForOpenAI'](_0x204076){return _0x204076;}[a0_0x2b0c53(0x19a)](_0x4a560a){const _0x5f32cd=a0_0x2b0c53;return _0x4a560a[_0x5f32cd(0x1da)](_0x11ff67=>({..._0x11ff67,'content':typeof _0x11ff67['content']==='string'?_0x11ff67[_0x5f32cd(0x19d)]:JSON['stringify'](_0x11ff67[_0x5f32cd(0x19d)])}));}[a0_0x2b0c53(0x1ef)](_0x48dd2d){const _0x527109=a0_0x2b0c53;this['logger'][_0x527109(0x211)]('Validating\x20model',{'model':_0x48dd2d,'modelType':typeof _0x48dd2d});if(this[_0x527109(0x1a0)][_0x48dd2d]!==undefined)return!![];return this[_0x527109(0x1d8)][_0x527109(0x1fe)](_0x527109(0x186),{'model':_0x48dd2d,'availableModels':Object['keys'](this[_0x527109(0x1a0)])}),![];}async['_checkModelHealth'](_0x2024dd){return!![];}async[a0_0x2b0c53(0x234)](_0xd1aa25,_0x34e8c0){const _0x259e08=a0_0x2b0c53;return Math[_0x259e08(0x1d7)](_0xd1aa25[_0x259e08(0x1e4)]/0x4);}async[a0_0x2b0c53(0x20f)](_0x438d4d,_0xa751dd){const _0x2cea33=a0_0x2b0c53,_0x306519=_0xa751dd*0x4;if(_0x438d4d['length']<=_0x306519)return _0x438d4d;return _0x438d4d[_0x2cea33(0x229)](0x0,_0x306519-0x14)+'\x0a...\x20[message\x20truncated]';}async[a0_0x2b0c53(0x18b)](_0x5ee8bb,_0x3c8676){const _0x3cdc68=a0_0x2b0c53,_0x10c69f=_0x5ee8bb[_0x3cdc68(0x1da)](_0x1d71ff=>_0x1d71ff['role']+':\x20'+_0x1d71ff['content'])[_0x3cdc68(0x1d4)]('\x0a'),_0x16cbb4=0x1f4;if(_0x10c69f['length']<=_0x16cbb4)return _0x10c69f;return _0x10c69f['substring'](0x0,_0x16cbb4)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x37ce9b,_0x143756,_0x313d49,_0x405438={}){const _0x21cad1=a0_0x2b0c53,_0x3d8fcb='https://autopilot-api.azurewebsites.net/llm/chat';let _0x5b8a8b,_0x5e8352=null,_0x43a260=null;this[_0x21cad1(0x1d8)]?.[_0x21cad1(0x19b)](_0x21cad1(0x1bb),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x405438['sessionId'],'hasSessionId':!!_0x405438['sessionId'],'optionsKeys':Object['keys'](_0x405438),'model':_0x143756['model']});if(this[_0x21cad1(0x207)]&&_0x405438['sessionId']){const _0x2a240a=this[_0x21cad1(0x207)]['getKeysForRequest'](_0x405438['sessionId'],{'platformProvided':_0x405438[_0x21cad1(0x18c)]||![],'vendor':this[_0x21cad1(0x1f9)](_0x143756[_0x21cad1(0x21c)])});_0x5e8352=_0x2a240a[_0x21cad1(0x1b9)],_0x43a260=_0x2a240a['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x405438[_0x21cad1(0x1c2)],'hasLoxiaKey':!!_0x5e8352,'hasVendorKey':!!_0x43a260,'vendor':this['_getVendorFromModel'](_0x143756[_0x21cad1(0x21c)])});}!_0x5e8352&&_0x405438['apiKey']&&(_0x5e8352=_0x405438['apiKey']);!_0x5e8352&&this[_0x21cad1(0x212)][_0x21cad1(0x222)]&&(_0x5e8352=this[_0x21cad1(0x212)]['apiKey']);if(!_0x5e8352)throw new Error(_0x21cad1(0x1e8));const _0x5c0e7c=_0x143756['model'],_0x414f66={'conversationId':_0x313d49,'message':_0x143756[_0x21cad1(0x20b)][_0x143756[_0x21cad1(0x20b)][_0x21cad1(0x1e4)]-0x1]?.['content']||'','messages':_0x143756['messages'],'model':_0x5c0e7c,'requestId':_0x313d49,'options':_0x143756[_0x21cad1(0x22d)]||{},'platformProvided':_0x405438[_0x21cad1(0x18c)]||![]};_0x143756['system']&&(_0x414f66[_0x21cad1(0x232)]=_0x143756[_0x21cad1(0x20d)]);_0x405438['platformProvided']?_0x414f66['apiKey']=_0x5e8352:(_0x43a260&&(_0x414f66[_0x21cad1(0x231)]=_0x43a260),_0x405438['customApiKeys']&&(_0x414f66[_0x21cad1(0x1c1)]=_0x405438['customApiKeys']),_0x414f66[_0x21cad1(0x222)]=_0x5e8352);for(let _0x3cba79=0x1;_0x3cba79<=this[_0x21cad1(0x227)];_0x3cba79++){try{this[_0x21cad1(0x1d8)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3d8fcb,'model':_0x143756[_0x21cad1(0x21c)],'requestId':_0x313d49,'attempt':_0x3cba79,'hasApiKey':!!_0x5e8352});const _0x17f510=await fetch(_0x3d8fcb,{'method':'POST','headers':{'Content-Type':_0x21cad1(0x196),'Authorization':_0x21cad1(0x1fa)+_0x5e8352,'X-Request-ID':_0x313d49},'body':JSON[_0x21cad1(0x1be)](_0x414f66),'timeout':this[_0x21cad1(0x1aa)]});if(!_0x17f510['ok']){const _0x50ff5b=await _0x17f510[_0x21cad1(0x1ce)](),_0x3a1490=new Error(_0x21cad1(0x1f4)+_0x17f510[_0x21cad1(0x1d2)]+':\x20'+_0x17f510['statusText']+(_0x50ff5b?_0x21cad1(0x21d)+_0x50ff5b:''));_0x3a1490[_0x21cad1(0x1d2)]=_0x17f510['status'];throw _0x3a1490;}const _0x3387e9=await _0x17f510[_0x21cad1(0x21f)]();return{'choices':[{'message':{'content':_0x3387e9['content']||'','role':'assistant'},'finish_reason':_0x3387e9['finishReason']||_0x21cad1(0x1db)}],'usage':_0x3387e9[_0x21cad1(0x1ca)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x3387e9['model']||_0x143756[_0x21cad1(0x21c)],'id':_0x3387e9[_0x21cad1(0x1f7)]||_0x313d49};}catch(_0x4d46de){_0x5b8a8b=_0x4d46de,this[_0x21cad1(0x1d8)]['warn'](_0x21cad1(0x1ab),{'attempt':_0x3cba79,'requestId':_0x313d49,'error':_0x4d46de['message'],'status':_0x4d46de[_0x21cad1(0x1d2)]});if(_0x3cba79<this[_0x21cad1(0x227)]){const _0x31411e=Math['pow'](0x2,_0x3cba79)*0x3e8;this[_0x21cad1(0x1d8)][_0x21cad1(0x1fe)]('Retrying\x20in\x20'+_0x31411e+'ms',{'attempt':_0x3cba79,'requestId':_0x313d49}),await new Promise(_0x2c0c8c=>setTimeout(_0x2c0c8c,_0x31411e));}}}this[_0x21cad1(0x1d8)][_0x21cad1(0x18f)](_0x21cad1(0x1cd),{'requestId':_0x313d49,'error':_0x5b8a8b[_0x21cad1(0x20e)]});const _0x5da23e=_0x5b8a8b[_0x21cad1(0x20e)]&&_0x5b8a8b['message']['includes']('No\x20API\x20key\x20configured');if(_0x5da23e)throw new Error('API\x20Configuration\x20Error:\x20'+_0x5b8a8b[_0x21cad1(0x20e)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x5b8a8b[_0x21cad1(0x20e)],'role':_0x21cad1(0x1de)},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x143756['model'],'id':_0x21cad1(0x1f1)+_0x313d49,'error':_0x5b8a8b['message']};}async['_makeImageAPIRequest'](_0x5c3fc7,_0x65e87d,_0x1521b1={}){const _0x4c1f33=a0_0x2b0c53,_0x14d16d='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x5b7097,_0x1915dd=null,_0x1ce033=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1521b1[_0x4c1f33(0x1c2)],'hasSessionId':!!_0x1521b1['sessionId'],'model':_0x5c3fc7[_0x4c1f33(0x21c)]});if(this[_0x4c1f33(0x207)]&&_0x1521b1[_0x4c1f33(0x1c2)]){const _0x20ff81=this[_0x4c1f33(0x207)][_0x4c1f33(0x1cc)](_0x1521b1[_0x4c1f33(0x1c2)],{'platformProvided':_0x1521b1[_0x4c1f33(0x18c)]||![],'vendor':this['_getVendorFromModel'](_0x5c3fc7[_0x4c1f33(0x21c)])});_0x1915dd=_0x20ff81[_0x4c1f33(0x1b9)],_0x1ce033=_0x20ff81['vendorApiKey'],this[_0x4c1f33(0x1d8)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1521b1[_0x4c1f33(0x1c2)],'hasLoxiaKey':!!_0x1915dd,'hasVendorKey':!!_0x1ce033});}!_0x1915dd&&_0x1521b1[_0x4c1f33(0x222)]&&(_0x1915dd=_0x1521b1['apiKey']);!_0x1915dd&&this['config'][_0x4c1f33(0x222)]&&(_0x1915dd=this['config'][_0x4c1f33(0x222)]);if(!_0x1915dd)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3bbcdd={'prompt':_0x5c3fc7[_0x4c1f33(0x218)],'model':_0x5c3fc7[_0x4c1f33(0x21c)]||_0x4c1f33(0x204),'size':_0x5c3fc7[_0x4c1f33(0x1f5)],'quality':_0x5c3fc7['quality'],'style':_0x5c3fc7['style']||'vivid','n':_0x5c3fc7['n']||0x1,'requestId':_0x65e87d};for(let _0x50fdcd=0x1;_0x50fdcd<=this[_0x4c1f33(0x227)];_0x50fdcd++){try{this['logger']['info'](_0x4c1f33(0x205),{'url':_0x14d16d,'model':_0x5c3fc7[_0x4c1f33(0x21c)],'requestId':_0x65e87d,'attempt':_0x50fdcd,'hasApiKey':!!_0x1915dd});const _0xf35e56=await fetch(_0x14d16d,{'method':_0x4c1f33(0x1ad),'headers':{'Content-Type':_0x4c1f33(0x196),'Authorization':'Bearer\x20'+_0x1915dd,'X-Request-ID':_0x65e87d},'body':JSON[_0x4c1f33(0x1be)](_0x3bbcdd),'timeout':this['timeout']*0x2});if(!_0xf35e56['ok']){const _0x4382c4=await _0xf35e56['text'](),_0x46c607=new Error(_0x4c1f33(0x1f4)+_0xf35e56['status']+':\x20'+_0xf35e56[_0x4c1f33(0x217)]+(_0x4382c4?'\x20-\x20'+_0x4382c4:''));_0x46c607['status']=_0xf35e56[_0x4c1f33(0x1d2)];throw _0x46c607;}const _0x28fce3=await _0xf35e56[_0x4c1f33(0x21f)]();return{'data':_0x28fce3[_0x4c1f33(0x1a8)]||[],'model':_0x28fce3['model']||_0x5c3fc7[_0x4c1f33(0x21c)],'created':_0x28fce3['created']||Date['now'](),'usage':_0x28fce3['usage']};}catch(_0x317382){_0x5b7097=_0x317382,this[_0x4c1f33(0x1d8)]['warn'](_0x4c1f33(0x1ed),{'attempt':_0x50fdcd,'requestId':_0x65e87d,'error':_0x317382['message'],'status':_0x317382['status']});if(_0x50fdcd<this['retryAttempts']){const _0x1e154e=Math['pow'](0x2,_0x50fdcd)*0x3e8;this[_0x4c1f33(0x1d8)][_0x4c1f33(0x1fe)](_0x4c1f33(0x22b)+_0x1e154e+'ms',{'attempt':_0x50fdcd,'requestId':_0x65e87d}),await new Promise(_0x18653c=>setTimeout(_0x18653c,_0x1e154e));}}}this['logger'][_0x4c1f33(0x18f)](_0x4c1f33(0x1e3),{'requestId':_0x65e87d,'error':_0x5b7097['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x5b7097['message']);}async['_checkRateLimit'](_0x4e06c2){await new Promise(_0x551218=>setTimeout(_0x551218,0x64));}async['_handleRateLimit'](_0x17c0ae){const _0x9cb0b=a0_0x2b0c53,_0x334a6a=0xea60;this[_0x9cb0b(0x1d8)][_0x9cb0b(0x19b)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x334a6a+'ms',_0x17c0ae),await new Promise(_0x1767e7=>setTimeout(_0x1767e7,_0x334a6a));}async['_handleServiceUnavailable'](_0x276ba3){const _0x10f67e=a0_0x2b0c53;this['_recordFailure']();const _0x2c23be=0x7530;this['logger'][_0x10f67e(0x19b)](_0x10f67e(0x1bf)+_0x2c23be+'ms',_0x276ba3),await new Promise(_0x4e5a16=>setTimeout(_0x4e5a16,_0x2c23be));}['_isCircuitBreakerOpen'](){const _0x3989a2=a0_0x2b0c53;if(!this[_0x3989a2(0x22a)][_0x3989a2(0x189)])return![];const _0x2fa484=Date[_0x3989a2(0x201)]()-this['circuitBreaker'][_0x3989a2(0x190)];if(_0x2fa484>this['circuitBreaker']['timeout'])return this[_0x3989a2(0x22a)]['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x1bbf06=a0_0x2b0c53;this[_0x1bbf06(0x22a)]['failures']++,this[_0x1bbf06(0x22a)][_0x1bbf06(0x190)]=Date['now'](),this['circuitBreaker']['failures']>=this[_0x1bbf06(0x22a)]['threshold']&&(this[_0x1bbf06(0x22a)][_0x1bbf06(0x189)]=!![],this[_0x1bbf06(0x1d8)]['warn'](_0x1bbf06(0x187)));}['_resetCircuitBreaker'](){const _0x5e27e8=a0_0x2b0c53;this['circuitBreaker']['failures']>0x0&&(this[_0x5e27e8(0x22a)][_0x5e27e8(0x209)]=0x0,this['circuitBreaker'][_0x5e27e8(0x189)]=![],this['logger']['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x2b0c53(0x1f9)](_0x29e27a){const _0x58d5a0=a0_0x2b0c53;if(!_0x29e27a)return null;const _0x2c8042=_0x29e27a['toLowerCase']();if(_0x2c8042['includes'](_0x58d5a0(0x1fc))||_0x2c8042['includes']('claude'))return _0x58d5a0(0x1fc);else{if(_0x2c8042[_0x58d5a0(0x1d9)](_0x58d5a0(0x1bc))||_0x2c8042['includes'](_0x58d5a0(0x219)))return'openai';else{if(_0x2c8042[_0x58d5a0(0x1d9)](_0x58d5a0(0x21b)))return'deepseek';else{if(_0x2c8042['includes'](_0x58d5a0(0x1c0)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0xeda784,_0x47f12d){const _0x39e7ee=a0_0x2b0c53;this[_0x39e7ee(0x1c4)]=_0xeda784,this[_0x39e7ee(0x1d8)]=_0x47f12d,this[_0x39e7ee(0x216)]=new Map();}async[a0_0x2b0c53(0x1a7)](_0x3ef064){const _0x2bef48=a0_0x2b0c53;return{'messages':[],'model':_0x3ef064,'lastUpdated':new Date()[_0x2bef48(0x200)]()};}}export default AIService;
1
+ const a0_0x58e07c=a0_0x524b;function a0_0x1aa9(){const _0x2a2048=['uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','C3rHDhvZvgv4Da','Bw9KzwW','Aw5MBW','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','qu5usfjpueLdx09qvvm','ChjVBxb0','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','z2v0s2v5C0zVCLjLCxvLC3q','zgvIDwC','x3n1Bw1HCML6zu1LC3nHz2vZ','CxvHBgL0Eq','CgHP','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','C3rYAw5N','qu5usfjpueLd','x2nOzwnRtw9KzwXizwfSDgG','qKfex0DbvevxqvK','tM8GqvbjigTLEsbJB25MAwD1CMvK','Aw5JBhvKzxm','z2v0qwDLBNq','DhjHy2TvC2fNzq','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','t1bftKfj','y2LYy3vPDejYzwfRzxi','Aw1Nlq','C3r5Bgu','B3b0Aw9UCW','yw50AhjVCgLJ','zxjYB3iT','mZK5nZe0nKXRDgDTvq','BM93','mJy0ndmWB1HJB3fg','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','x2zVCM1HDfnPBMDSzu1LC3nHz2u','CgXHDgzVCM1qCM92AwrLza','C3rYAw5NAwz5','ue9tva','yNvKz2v0u2vYDMLJzq','y29UDgvUDa','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','qMvHCMvYia','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','x2zVCM1HDezVCKfUDgHYB3bPyW','x21HA2vbueLszxf1zxn0','x2DLDfzLBMrVCKzYB21nB2rLBa','mtaWBMjpshPM','zMfPBhvYzxm','yxbPs2v5','y3jLyxrLza','DgLTzxn0yw1W','Dg90ywXFDg9Rzw5Z','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','yxP1CMuTB3bLBMfPlwrHBgXLmW','ChjVDMLKzxi','C3bLzwq','y29Kzq','Bg9Nz2vY','revfufnfruTFuJe','Cg93','qu5usfjpueLdx0HbsuTv','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','uMf0zsbSAw1PDcbLEgnLzwrLza','ndjRB3LnAfa','uMv0CNLPBMCGAw4G','qvPvuKu','ic0G','su5urvjoquXFu0vsvKvsx0vsuK9s','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','ntiYtfHQCgHX','x21HA2vjBwfNzufqsvjLCxvLC3q','ChjLzMvYCMvKtw9KzwW','DxjS','mte2nti4mgLMtvzZtq','y3vZDg9TqxbPs2v5CW','C3vTBwfYEq','y2XHC3nPzNLfCNjVCG','Dw5ZAgLMDa','AgvHBhrOEq','Aw1Hz2vZ','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','CMfUzg9T','AxnpCgvU','sfruuca','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','C3LZDgvT','Dg9ju09tDhjPBMC','C3rHDhvZ','vw5RBM93BIbTB2rLBdOG','C3rHBMrHCMq','zMfZDa','yMfJA2vUza','BwvZC2fNzq','zxjYB3jiyw5KBgvY','BwvZC2fNzxm','BgvUz3rO','zxjYB3i','DxnHz2u','ndq3mdiWnwzZB2zvyW','nZq0ntq5nKDxtvjYCG','Ahr0Chm6lY9HCgKUBg94AweUywK','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','BgfZDezHAwX1CMvuAw1L','Bwf4x3rVA2vUCW','sw52ywXPzcbTB2rLBdOG','revfufnfruS','DxnLCG','zgf0yq','quKGC2vYDMLJzsbLCNjVCJOG','DMvUzg9YqxbPs2v5','C3rHy2S','AgvHBhrOlwnOzwnR','x2zVCM1HDezVCKf6DxjL','yMfZzvvYBa','u3LZDgvToIa','D2fYBG','CMv0CNLbDhrLBxb0CW','x3jLC2v0q2LYy3vPDejYzwfRzxi','ANnVBG','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','C2v0qxbPs2v5twfUywDLCG','C3rVCa','ywDLBNrjza','x3rYDw5JyxrLtwvZC2fNzq','ywDLBNrqB29S','Bw9KzwXtCgvJCW','x2vZDgLTyxrLvg9Rzw5Z','zgvLChnLzwS','mZe3n3nlvvHqtG','yxbWBgLJyxrPB24VANnVBG','CM9Szq','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','z3b0','AxnbCNjHEq','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','AgfUzgXLshr0CevYCM9Y','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','C3rYzwfT','C3vIC3rY','yxbPs2v5twfUywDLCG','y29UzMLN','C2L6zq','DgLTzw91Da','tK9ux0zpvu5e','yxnZAxn0yw50','yJy0x2PZB24','C2vZC2LVBKLK','BwfW','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','CMf0zuXPBwL0zxjZ','DgHYzxnOB2XK','ueHj','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','x3jLy29YzezHAwX1CMu','y2HVAwnLCW','x2zVCM1HDezVCK9Wzw5bsq','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','odi0odeYEKXquNf1'];a0_0x1aa9=function(){return _0x2a2048;};return a0_0x1aa9();}(function(_0x2a3bdc,_0x159a24){const _0x4af759=a0_0x524b,_0x1ba77b=_0x2a3bdc();while(!![]){try{const _0x4844cf=-parseInt(_0x4af759(0xd8))/0x1*(parseInt(_0x4af759(0x125))/0x2)+parseInt(_0x4af759(0x114))/0x3+-parseInt(_0x4af759(0xf5))/0x4+parseInt(_0x4af759(0x15a))/0x5+parseInt(_0x4af759(0x15b))/0x6+parseInt(_0x4af759(0x136))/0x7*(-parseInt(_0x4af759(0x141))/0x8)+-parseInt(_0x4af759(0x13d))/0x9*(parseInt(_0x4af759(0x116))/0xa);if(_0x4844cf===_0x159a24)break;else _0x1ba77b['push'](_0x1ba77b['shift']());}catch(_0xafc03e){_0x1ba77b['push'](_0x1ba77b['shift']());}}}(a0_0x1aa9,0xa9968));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x524b(_0x540b8f,_0x3b3d12){_0x540b8f=_0x540b8f-0xc6;const _0x1aa958=a0_0x1aa9();let _0x524b4a=_0x1aa958[_0x540b8f];if(a0_0x524b['rEgDfb']===undefined){var _0x4936da=function(_0x525d7f){const _0x506d73='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3101f8='',_0x56d469='';for(let _0x559853=0x0,_0x31b886,_0x4d5949,_0x41d219=0x0;_0x4d5949=_0x525d7f['charAt'](_0x41d219++);~_0x4d5949&&(_0x31b886=_0x559853%0x4?_0x31b886*0x40+_0x4d5949:_0x4d5949,_0x559853++%0x4)?_0x3101f8+=String['fromCharCode'](0xff&_0x31b886>>(-0x2*_0x559853&0x6)):0x0){_0x4d5949=_0x506d73['indexOf'](_0x4d5949);}for(let _0x5c55bf=0x0,_0x113139=_0x3101f8['length'];_0x5c55bf<_0x113139;_0x5c55bf++){_0x56d469+='%'+('00'+_0x3101f8['charCodeAt'](_0x5c55bf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56d469);};a0_0x524b['QnKeyS']=_0x4936da,a0_0x524b['eDqYPy']={},a0_0x524b['rEgDfb']=!![];}const _0x3aa58b=_0x1aa958[0x0],_0x5290c6=_0x540b8f+_0x3aa58b,_0x2c8340=a0_0x524b['eDqYPy'][_0x5290c6];return!_0x2c8340?(_0x524b4a=a0_0x524b['QnKeyS'](_0x524b4a),a0_0x524b['eDqYPy'][_0x5290c6]=_0x524b4a):_0x524b4a=_0x2c8340,_0x524b4a;}class AIService{constructor(_0x3101f8,_0x56d469,_0x559853,_0x31b886){const _0x1df78a=a0_0x524b;this[_0x1df78a(0xe4)]=_0x3101f8,this['logger']=_0x56d469,this['budgetService']=_0x559853,this[_0x1df78a(0x155)]=_0x31b886,this[_0x1df78a(0xc9)]=_0x3101f8[_0x1df78a(0x153)]?.[_0x1df78a(0xc9)]||_0x1df78a(0x15c),this['timeout']=_0x3101f8[_0x1df78a(0x153)]?.[_0x1df78a(0xe6)]||0xea60,this['retryAttempts']=_0x3101f8['backend']?.['retryAttempts']||0x3,this[_0x1df78a(0xed)]=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x1df78a(0x120)](),this['conversationManagers']=new Map(),this['apiKeyManager']=null,this[_0x1df78a(0xd4)]=null;}async['sendMessage'](_0x4d5949,_0x41d219,_0x5c55bf={}){const _0x477f6f=a0_0x524b,_0x113139='req-'+Date[_0x477f6f(0x115)]()+'-'+Math[_0x477f6f(0x149)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x4d5949);const _0x288356=this['_formatMessagesForModel'](_0x41d219,_0x4d5949,_0x5c55bf),_0x1a07ee={'model':_0x4d5949,'messages':_0x288356,'options':{'max_tokens':this[_0x477f6f(0xd5)][_0x4d5949]?.['maxTokens']||0xfa0,'temperature':_0x5c55bf['temperature']||0.7,'stream':_0x5c55bf[_0x477f6f(0xe1)]||![]},'metadata':{'requestId':_0x113139,'agentId':_0x5c55bf['agentId'],'timestamp':new Date()[_0x477f6f(0x14e)]()}};_0x5c55bf['systemPrompt']&&(_0x1a07ee[_0x477f6f(0x14d)]=_0x5c55bf['systemPrompt']);this[_0x477f6f(0x130)][_0x477f6f(0xf9)](_0x477f6f(0x10c)+_0x4d5949,{'requestId':_0x113139,'agentId':_0x5c55bf['agentId'],'messageCount':Array[_0x477f6f(0xdd)](_0x41d219)?_0x41d219['length']:0x1,'maxTokens':_0x1a07ee[_0x477f6f(0x15f)]});const _0x309ba7=await this['_makeAPIRequest']('/chat/completions',_0x1a07ee,_0x113139,{..._0x5c55bf,'sessionId':_0x5c55bf[_0x477f6f(0xea)],'platformProvided':_0x5c55bf['platformProvided']||![]});return _0x309ba7['usage']&&await this[_0x477f6f(0x10b)](_0x5c55bf['agentId'],_0x4d5949,{'prompt_tokens':_0x309ba7['usage']['prompt_tokens']||0x0,'completion_tokens':_0x309ba7['usage']['completion_tokens']||0x0,'total_tokens':_0x309ba7[_0x477f6f(0x159)][_0x477f6f(0x12a)]||0x0}),this[_0x477f6f(0xcd)](),{'content':_0x309ba7[_0x477f6f(0xf2)][0x0]?.['message']?.['content']||'','model':_0x309ba7[_0x477f6f(0xf8)],'tokenUsage':_0x309ba7['usage'],'requestId':_0x113139,'finishReason':_0x309ba7['choices'][0x0]?.['finish_reason']};}catch(_0x2984ce){this['_recordFailure'](),this['logger']['error'](_0x477f6f(0x13c)+_0x2984ce['message'],{'requestId':_0x113139,'model':_0x4d5949,'agentId':_0x5c55bf['agentId'],'error':_0x2984ce[_0x477f6f(0xc6)]}),await this[_0x477f6f(0xdf)](_0x2984ce,{'requestId':_0x113139,'model':_0x4d5949,'agentId':_0x5c55bf['agentId']});throw _0x2984ce;}}async['routeModel'](_0x80dc2b,_0x1b3937={}){const _0x126c28=a0_0x524b;try{const _0x315852=MODEL_ROUTING[_0x80dc2b['toUpperCase']()]||MODEL_ROUTING['FALLBACK'],_0x36cd01=[];for(const _0x4329cf of _0x315852){const _0xcf69f9=await this[_0x126c28(0x106)](_0x4329cf);_0xcf69f9&&_0x36cd01['push'](_0x4329cf);}if(_0x36cd01['length']===0x0)return this['logger']['warn'](_0x126c28(0xde)+_0x80dc2b+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x5856a5=_0x36cd01[0x0];if(_0x1b3937['preferredModel']&&_0x36cd01['includes'](_0x1b3937['preferredModel']))_0x5856a5=_0x1b3937[_0x126c28(0x13f)];else{if(_0x1b3937['complexity']==='high'&&_0x36cd01[_0x126c28(0x109)](MODELS[_0x126c28(0xfb)]))_0x5856a5=MODELS['ANTHROPIC_OPUS'];else _0x1b3937[_0x126c28(0x12e)]===_0x126c28(0x152)&&_0x36cd01[_0x126c28(0x109)](MODELS[_0x126c28(0x133)])&&(_0x5856a5=MODELS[_0x126c28(0x133)]);}return this['logger']['info'](_0x126c28(0xf0)+_0x80dc2b,{'selectedModel':_0x5856a5,'availableModels':_0x36cd01['length'],'context':_0x1b3937}),_0x5856a5;}catch(_0x541b3e){return this['logger']['error']('Model\x20routing\x20failed:\x20'+_0x541b3e['message'],{'task':_0x80dc2b,'context':_0x1b3937}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x5b8049,_0x5d4920){const _0x1b803c=a0_0x524b,_0x13ec4e=this['modelSpecs'][_0x5d4920];if(!_0x13ec4e)throw new Error(_0x1b803c(0x150)+_0x5d4920);const _0x983b51=_0x13ec4e['contextWindow']*0.8;let _0x1e844d=0x0;const _0x30a591=[],_0x3beecd=await Promise['all'](_0x5b8049[_0x1b803c(0xeb)](async _0x7b8ce5=>({..._0x7b8ce5,'estimatedTokens':await this[_0x1b803c(0xd6)](_0x7b8ce5[_0x1b803c(0x11d)],_0x5d4920)}))),_0x4f849b=[..._0x3beecd]['reverse']();for(const _0x355c43 of _0x4f849b){if(_0x1e844d+_0x355c43['estimatedTokens']>_0x983b51){if(_0x30a591['length']===0x0){const _0x4c1b4d=await this[_0x1b803c(0xd3)](_0x355c43['content'],_0x983b51);_0x30a591[_0x1b803c(0x145)]({..._0x355c43,'content':_0x4c1b4d,'estimatedTokens':_0x983b51});}break;}_0x30a591[_0x1b803c(0x145)](_0x355c43),_0x1e844d+=_0x355c43['estimatedTokens'];}const _0xaffa53=_0x3beecd['slice'](0x0,-_0x30a591[_0x1b803c(0x157)]);if(_0xaffa53[_0x1b803c(0x157)]>0x0){const _0x160a6a=await this[_0x1b803c(0x100)](_0xaffa53,_0x5d4920);_0x30a591['unshift']({'role':_0x1b803c(0x14d),'content':'Previous\x20conversation\x20summary:\x20'+_0x160a6a,'timestamp':_0xaffa53[0x0][_0x1b803c(0x129)],'type':_0x1b803c(0x143),'estimatedTokens':await this[_0x1b803c(0xd6)](_0x160a6a,_0x5d4920)});}return this['logger'][_0x1b803c(0xf9)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x5d4920,{'originalMessages':_0x5b8049['length'],'compactizedMessages':_0x30a591['length'],'estimatedTokens':_0x1e844d,'maxTokens':_0x983b51}),_0x30a591;}async['trackUsage'](_0x78ab37,_0x19eae6,_0x276f84,_0x5f5e7c){const _0x31ba7a=a0_0x524b;try{this[_0x31ba7a(0x11c)]&&this['budgetService']['trackUsage'](_0x78ab37,_0x19eae6,_0x276f84);}catch(_0x4f6922){this[_0x31ba7a(0x130)]['error']('Usage\x20tracking\x20failed:\x20'+_0x4f6922[_0x31ba7a(0x154)]);}}async['handleHttpError'](_0xb20ad5,_0x19cec2){const _0x4712aa=a0_0x524b,_0x5d696c=this[_0x4712aa(0x155)]?.[_0x4712aa(0x144)]?.(_0xb20ad5,_0x19cec2);switch(_0xb20ad5[_0x4712aa(0x14f)]||_0xb20ad5[_0x4712aa(0x12f)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x4712aa(0x158)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x19cec2,'error':_0xb20ad5['message']});throw new Error('Invalid\x20request:\x20'+_0xb20ad5[_0x4712aa(0x154)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger'][_0x4712aa(0x158)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x19cec2});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this['logger']['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x19cec2});throw new Error(_0x4712aa(0xec));case HTTP_STATUS[_0x4712aa(0xe7)]:this['logger'][_0x4712aa(0x158)]('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x19cec2});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x4712aa(0x130)]['warn'](_0x4712aa(0x135),{'context':_0x19cec2}),await this['_handleRateLimit'](_0x19cec2);throw new Error(_0x4712aa(0xf6));case HTTP_STATUS[_0x4712aa(0x13a)]:case HTTP_STATUS[_0x4712aa(0x107)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x4712aa(0x130)][_0x4712aa(0x158)](_0x4712aa(0x11e),{'context':_0x19cec2,'status':_0xb20ad5['status']}),await this[_0x4712aa(0x12b)](_0x19cec2);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x4712aa(0x130)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x19cec2,'error':_0xb20ad5['message']});throw new Error(_0x4712aa(0x164)+_0xb20ad5[_0x4712aa(0x154)]);}}[a0_0x58e07c(0xd0)](_0x2779e2){const _0xd30e29=a0_0x58e07c;this['apiKeyManager']=_0x2779e2,this[_0xd30e29(0x130)]?.['info'](_0xd30e29(0xcf),{'hasManager':!!_0x2779e2});}['setAgentPool'](_0x3f66df){const _0x30af80=a0_0x58e07c;this['agentPool']=_0x3f66df,this[_0x30af80(0x130)]?.[_0x30af80(0xf9)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3f66df});}async['generateImage'](_0x46560a,_0x25f103={}){const _0x2fa17b=a0_0x58e07c,_0x4a261d=_0x2fa17b(0x10f)+Date['now']()+'-'+Math[_0x2fa17b(0x149)]()['toString'](0x24)[_0x2fa17b(0xe2)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x46560a||typeof _0x46560a!==_0x2fa17b(0x104)||_0x46560a['trim']()[_0x2fa17b(0x157)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x4b0f0e=_0x25f103['model']||'flux-1.1-pro',_0x473fe3=_0x25f103[_0x2fa17b(0xe5)]||'1024x1024',_0x3a3b7a=_0x25f103[_0x2fa17b(0x101)]||_0x2fa17b(0x151),_0x43e10b=_0x25f103['responseFormat']||_0x2fa17b(0x140);this[_0x2fa17b(0x130)][_0x2fa17b(0xf9)]('Generating\x20image\x20with\x20model:\x20'+_0x4b0f0e,{'requestId':_0x4a261d,'model':_0x4b0f0e,'size':_0x473fe3,'quality':_0x3a3b7a,'promptLength':_0x46560a['length']});const _0x2ac027={'prompt':_0x46560a,'model':_0x4b0f0e,'size':_0x473fe3,'quality':_0x3a3b7a,'response_format':_0x43e10b,'n':0x1,'metadata':{'requestId':_0x4a261d,'timestamp':new Date()[_0x2fa17b(0x14e)]()}},_0x44caa8=await this[_0x2fa17b(0x13e)](_0x2ac027,_0x4a261d,{'sessionId':_0x25f103['sessionId'],'platformProvided':_0x25f103[_0x2fa17b(0x119)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x44caa8['data']?.[0x0]?.['url']||null,'b64_json':_0x44caa8[_0x2fa17b(0x163)]?.[0x0]?.[_0x2fa17b(0xe9)]||null,'model':_0x44caa8['model']||_0x4b0f0e,'requestId':_0x4a261d,'revisedPrompt':_0x44caa8[_0x2fa17b(0x163)]?.[0x0]?.['revised_prompt']||_0x46560a};}catch(_0x292984){this[_0x2fa17b(0xf1)](),this['logger']['error']('Image\x20generation\x20failed:\x20'+_0x292984['message'],{'requestId':_0x4a261d,'model':_0x25f103['model'],'error':_0x292984[_0x2fa17b(0xc6)]});throw _0x292984;}}async['checkServiceHealth'](){const _0x4d44db=a0_0x58e07c;try{const _0xbbc62d=await this[_0x4d44db(0x123)]('/health',{},_0x4d44db(0xc7));return _0xbbc62d[_0x4d44db(0x14f)]===_0x4d44db(0x146);}catch(_0x42094d){return![];}}async['switchAgentModel'](_0x4fcf6e,_0x553903){const _0x2b9b53=a0_0x58e07c;try{if(!this['_isValidModel'](_0x553903))throw new Error(_0x2b9b53(0x160)+_0x553903);let _0x2959a5=this['conversationManagers']['get'](_0x4fcf6e);!_0x2959a5&&(_0x2959a5=new ConversationManager(_0x4fcf6e,this['logger']),this['conversationManagers']['set'](_0x4fcf6e,_0x2959a5));const _0x32585f=await _0x2959a5['switchModel'](_0x553903),_0x47b347=await this[_0x2b9b53(0xd4)]?.[_0x2b9b53(0x10a)](_0x4fcf6e);return _0x47b347&&(_0x47b347['currentModel']=_0x553903,await this['agentPool']['persistAgentState'](_0x4fcf6e)),this['logger'][_0x2b9b53(0xf9)](_0x2b9b53(0x117)+_0x4fcf6e,{'newModel':_0x553903,'messageCount':_0x32585f[_0x2b9b53(0x156)]['length']}),{'success':!![],'agentId':_0x4fcf6e,'newModel':_0x553903,'conversation':_0x32585f};}catch(_0x49095b){this[_0x2b9b53(0x130)][_0x2b9b53(0x158)]('Model\x20switch\x20failed:\x20'+_0x49095b[_0x2b9b53(0x154)],{'agentId':_0x4fcf6e,'newModel':_0x553903});throw _0x49095b;}}[a0_0x58e07c(0x120)](){const _0x4e4a5f=a0_0x58e07c,_0x42e6fd={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x4e4a5f(0xfb)]]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x105)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x105)],'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[_0x4e4a5f(0x10d)],'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[_0x4e4a5f(0x10d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x10d)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x4e4a5f(0x131)]]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x161)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0xef)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x4e4a5f(0x138),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x42e6fd;}['_formatMessagesForModel'](_0x71007b,_0x34fef1,_0x280e1b){const _0x4da3e8=a0_0x58e07c,_0x581c43=this['modelSpecs'][_0x34fef1]||{'provider':'AZURE'};let _0x23c971;typeof _0x71007b===_0x4da3e8(0x104)?_0x23c971=[{'role':_0x4da3e8(0x162),'content':_0x71007b}]:_0x23c971=_0x71007b[_0x4da3e8(0xeb)](_0xa380b0=>this['_formatSingleMessage'](_0xa380b0,_0x34fef1));switch(_0x581c43[_0x4da3e8(0x12d)]){case MODEL_PROVIDERS['ANTHROPIC']:return this[_0x4da3e8(0x122)](_0x23c971);case MODEL_PROVIDERS['OPENAI']:return this[_0x4da3e8(0xf3)](_0x23c971);case MODEL_PROVIDERS['AZURE']:return this[_0x4da3e8(0xc8)](_0x23c971);default:return _0x23c971;}}[a0_0x58e07c(0x118)](_0x3d34a0,_0x2346fa){const _0x19056b=a0_0x58e07c;return{'role':_0x3d34a0[_0x19056b(0xda)]||'user','content':_0x3d34a0[_0x19056b(0x11d)],'timestamp':_0x3d34a0[_0x19056b(0x129)]};}['_formatForAnthropic'](_0x2db566){return _0x2db566['map'](_0x5be645=>{const _0x15b70e=a0_0x524b;if(_0x5be645[_0x15b70e(0xda)]===_0x15b70e(0x14d))return{'role':_0x15b70e(0x162),'content':_0x15b70e(0xca)+_0x5be645['content']};return _0x5be645;});}[a0_0x58e07c(0xf3)](_0x5f3215){return _0x5f3215;}['_formatForAzure'](_0x42c5cd){const _0x35f388=a0_0x58e07c;return _0x42c5cd[_0x35f388(0xeb)](_0x59b587=>({..._0x59b587,'content':typeof _0x59b587['content']===_0x35f388(0x104)?_0x59b587['content']:JSON['stringify'](_0x59b587['content'])}));}['_isValidModel'](_0x2a53e5){const _0x218ee8=a0_0x58e07c;this[_0x218ee8(0x130)][_0x218ee8(0xff)]('Validating\x20model',{'model':_0x2a53e5,'modelType':typeof _0x2a53e5});if(this['modelSpecs'][_0x2a53e5]!==undefined)return!![];return this['logger']['warn']('Model\x20validation\x20failed',{'model':_0x2a53e5,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async['_checkModelHealth'](_0x34e6bb){return!![];}async[a0_0x58e07c(0xd6)](_0x5d45dc,_0x286f9c){const _0x5437e3=a0_0x58e07c;return Math['ceil'](_0x5d45dc[_0x5437e3(0x157)]/0x4);}async[a0_0x58e07c(0xd3)](_0x30d706,_0x4d86ad){const _0x4aa58f=a0_0x58e07c,_0x2b8566=_0x4d86ad*0x4;if(_0x30d706['length']<=_0x2b8566)return _0x30d706;return _0x30d706['substring'](0x0,_0x2b8566-0x14)+_0x4aa58f(0x13b);}async['_summarizeMessages'](_0x37b455,_0x302980){const _0x1df728=a0_0x58e07c,_0x22f311=_0x37b455[_0x1df728(0xeb)](_0x350f40=>_0x350f40[_0x1df728(0xda)]+':\x20'+_0x350f40[_0x1df728(0x11d)])['join']('\x0a'),_0x8d4029=0x1f4;if(_0x22f311['length']<=_0x8d4029)return _0x22f311;return _0x22f311['substring'](0x0,_0x8d4029)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x58e07c(0x123)](_0x23be5d,_0x37919d,_0x596390,_0x1941ac={}){const _0x273bf8=a0_0x58e07c,_0xacdf81='https://autopilot-api.azurewebsites.net/llm/chat';let _0x434462,_0x48988d=null,_0x34a639=null;this[_0x273bf8(0x130)]?.['info'](_0x273bf8(0x148),{'hasApiKeyManager':!!this[_0x273bf8(0xe3)],'sessionId':_0x1941ac[_0x273bf8(0xea)],'hasSessionId':!!_0x1941ac[_0x273bf8(0xea)],'optionsKeys':Object['keys'](_0x1941ac),'model':_0x37919d['model']});if(this[_0x273bf8(0xe3)]&&_0x1941ac['sessionId']){const _0x2e92b2=this[_0x273bf8(0xe3)][_0x273bf8(0xfe)](_0x1941ac['sessionId'],{'platformProvided':_0x1941ac[_0x273bf8(0x119)]||![],'vendor':this[_0x273bf8(0x124)](_0x37919d[_0x273bf8(0xf8)])});_0x48988d=_0x2e92b2['loxiaApiKey'],_0x34a639=_0x2e92b2[_0x273bf8(0x165)],this['logger']?.[_0x273bf8(0xff)]('Retrieved API keys from session manager',{'sessionId':_0x1941ac['sessionId'],'hasLoxiaKey':!!_0x48988d,'hasVendorKey':!!_0x34a639,'vendor':this['_getVendorFromModel'](_0x37919d[_0x273bf8(0xf8)])});}!_0x48988d&&_0x1941ac[_0x273bf8(0x127)]&&(_0x48988d=_0x1941ac[_0x273bf8(0x127)]);!_0x48988d&&this[_0x273bf8(0xe4)]['apiKey']&&(_0x48988d=this[_0x273bf8(0xe4)]['apiKey']);if(!_0x48988d)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x16a943=_0x37919d[_0x273bf8(0xf8)],_0x478eb5={'conversationId':_0x596390,'message':_0x37919d[_0x273bf8(0x156)][_0x37919d['messages']['length']-0x1]?.['content']||'','messages':_0x37919d['messages'],'model':_0x16a943,'requestId':_0x596390,'options':_0x37919d[_0x273bf8(0x111)]||{},'platformProvided':_0x1941ac['platformProvided']||![]};_0x37919d[_0x273bf8(0x14d)]&&(_0x478eb5['systemPrompt']=_0x37919d['system']);_0x1941ac[_0x273bf8(0x119)]?_0x478eb5[_0x273bf8(0x127)]=_0x48988d:(_0x34a639&&(_0x478eb5[_0x273bf8(0x165)]=_0x34a639),_0x1941ac['customApiKeys']&&(_0x478eb5[_0x273bf8(0x142)]=_0x1941ac[_0x273bf8(0x142)]),_0x478eb5[_0x273bf8(0x127)]=_0x48988d);for(let _0x2e97bb=0x1;_0x2e97bb<=this[_0x273bf8(0xcc)];_0x2e97bb++){try{this[_0x273bf8(0x130)][_0x273bf8(0xf9)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0xacdf81,'model':_0x37919d['model'],'requestId':_0x596390,'attempt':_0x2e97bb,'hasApiKey':!!_0x48988d});const _0xa07066=await fetch(_0xacdf81,{'method':_0x273bf8(0x11b),'headers':{'Content-Type':'application/json','Authorization':_0x273bf8(0x11f)+_0x48988d,'X-Request-ID':_0x596390},'body':JSON['stringify'](_0x478eb5),'timeout':this['timeout']});if(!_0xa07066['ok']){const _0x33c69e=await _0xa07066['text'](),_0x25feea=new Error('HTTP\x20'+_0xa07066[_0x273bf8(0x14f)]+':\x20'+_0xa07066[_0x273bf8(0xf7)]+(_0x33c69e?'\x20-\x20'+_0x33c69e:''));_0x25feea[_0x273bf8(0x14f)]=_0xa07066[_0x273bf8(0x14f)];throw _0x25feea;}const _0x3883b2=await _0xa07066[_0x273bf8(0xce)]();return{'choices':[{'message':{'content':_0x3883b2[_0x273bf8(0x11d)]||'','role':_0x273bf8(0xe8)},'finish_reason':_0x3883b2['finishReason']||_0x273bf8(0xd1)}],'usage':_0x3883b2[_0x273bf8(0x159)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x3883b2['model']||_0x37919d[_0x273bf8(0xf8)],'id':_0x3883b2['requestId']||_0x596390};}catch(_0x4f0d05){_0x434462=_0x4f0d05,this['logger'][_0x273bf8(0xcb)](_0x273bf8(0xf4),{'attempt':_0x2e97bb,'requestId':_0x596390,'error':_0x4f0d05['message'],'status':_0x4f0d05[_0x273bf8(0x14f)]});if(_0x2e97bb<this[_0x273bf8(0xcc)]){const _0x3d5240=Math[_0x273bf8(0x132)](0x2,_0x2e97bb)*0x3e8;this[_0x273bf8(0x130)]['warn'](_0x273bf8(0x137)+_0x3d5240+'ms',{'attempt':_0x2e97bb,'requestId':_0x596390}),await new Promise(_0x3bae16=>setTimeout(_0x3bae16,_0x3d5240));}}}this[_0x273bf8(0x130)][_0x273bf8(0x158)]('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x596390,'error':_0x434462['message']});const _0x7825c5=_0x434462[_0x273bf8(0x154)]&&_0x434462['message'][_0x273bf8(0x109)](_0x273bf8(0x108));if(_0x7825c5)throw new Error(_0x273bf8(0xe0)+_0x434462[_0x273bf8(0x154)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x434462['message'],'role':_0x273bf8(0xe8)},'finish_reason':_0x273bf8(0xd1)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x37919d['model'],'id':_0x273bf8(0x113)+_0x596390,'error':_0x434462[_0x273bf8(0x154)]};}async['_makeImageAPIRequest'](_0x23794c,_0x2206c1,_0x422194={}){const _0x4d8435=a0_0x58e07c,_0x58d14b=_0x4d8435(0x134);let _0x599303,_0x14529b=null,_0x16bbf8=null;this[_0x4d8435(0x130)]?.[_0x4d8435(0xf9)](_0x4d8435(0xfd),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x422194['sessionId'],'hasSessionId':!!_0x422194['sessionId'],'model':_0x23794c[_0x4d8435(0xf8)]});if(this[_0x4d8435(0xe3)]&&_0x422194[_0x4d8435(0xea)]){const _0x189b12=this['apiKeyManager']['getKeysForRequest'](_0x422194['sessionId'],{'platformProvided':_0x422194['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x23794c[_0x4d8435(0xf8)])});_0x14529b=_0x189b12['loxiaApiKey'],_0x16bbf8=_0x189b12['vendorApiKey'],this[_0x4d8435(0x130)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x422194['sessionId'],'hasLoxiaKey':!!_0x14529b,'hasVendorKey':!!_0x16bbf8});}!_0x14529b&&_0x422194[_0x4d8435(0x127)]&&(_0x14529b=_0x422194['apiKey']);!_0x14529b&&this['config'][_0x4d8435(0x127)]&&(_0x14529b=this[_0x4d8435(0xe4)]['apiKey']);if(!_0x14529b)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x537ee8={'prompt':_0x23794c[_0x4d8435(0xfc)],'model':_0x23794c[_0x4d8435(0xf8)]||_0x4d8435(0x12c),'size':_0x23794c['size'],'quality':_0x23794c[_0x4d8435(0x101)],'style':_0x23794c[_0x4d8435(0x110)]||'vivid','n':_0x23794c['n']||0x1,'requestId':_0x2206c1};for(let _0x401261=0x1;_0x401261<=this['retryAttempts'];_0x401261++){try{this[_0x4d8435(0x130)][_0x4d8435(0xf9)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x58d14b,'model':_0x23794c['model'],'requestId':_0x2206c1,'attempt':_0x401261,'hasApiKey':!!_0x14529b});const _0x405333=await fetch(_0x58d14b,{'method':'POST','headers':{'Content-Type':_0x4d8435(0xd9),'Authorization':'Bearer\x20'+_0x14529b,'X-Request-ID':_0x2206c1},'body':JSON[_0x4d8435(0x11a)](_0x537ee8),'timeout':this[_0x4d8435(0xe6)]*0x2});if(!_0x405333['ok']){const _0x499801=await _0x405333['text'](),_0x2b54d0=new Error(_0x4d8435(0x14b)+_0x405333['status']+':\x20'+_0x405333['statusText']+(_0x499801?_0x4d8435(0x139)+_0x499801:''));_0x2b54d0['status']=_0x405333['status'];throw _0x2b54d0;}const _0x2962ad=await _0x405333[_0x4d8435(0xce)]();return{'data':_0x2962ad[_0x4d8435(0x147)]||[],'model':_0x2962ad['model']||_0x23794c[_0x4d8435(0xf8)],'created':_0x2962ad[_0x4d8435(0x128)]||Date[_0x4d8435(0x115)](),'usage':_0x2962ad['usage']};}catch(_0x2289be){_0x599303=_0x2289be,this['logger'][_0x4d8435(0xcb)](_0x4d8435(0x121),{'attempt':_0x401261,'requestId':_0x2206c1,'error':_0x2289be[_0x4d8435(0x154)],'status':_0x2289be[_0x4d8435(0x14f)]});if(_0x401261<this['retryAttempts']){const _0x4eeacf=Math['pow'](0x2,_0x401261)*0x3e8;this['logger']['warn']('Retrying\x20in\x20'+_0x4eeacf+'ms',{'attempt':_0x401261,'requestId':_0x2206c1}),await new Promise(_0x59c91e=>setTimeout(_0x59c91e,_0x4eeacf));}}}this['logger'][_0x4d8435(0x158)](_0x4d8435(0xdb),{'requestId':_0x2206c1,'error':_0x599303['message']});throw new Error(_0x4d8435(0x103)+_0x599303['message']);}async['_checkRateLimit'](_0x2ed234){await new Promise(_0x28da3f=>setTimeout(_0x28da3f,0x64));}async['_handleRateLimit'](_0x4b2892){const _0x5a6571=a0_0x58e07c,_0x37fba7=0xea60;this['logger'][_0x5a6571(0xf9)](_0x5a6571(0x15d)+_0x37fba7+'ms',_0x4b2892),await new Promise(_0x4a2897=>setTimeout(_0x4a2897,_0x37fba7));}async[a0_0x58e07c(0x12b)](_0x16ffef){const _0x51f8e4=a0_0x58e07c;this[_0x51f8e4(0xf1)]();const _0x49674c=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x49674c+'ms',_0x16ffef),await new Promise(_0x5dd729=>setTimeout(_0x5dd729,_0x49674c));}['_isCircuitBreakerOpen'](){const _0x2af83e=a0_0x58e07c;if(!this[_0x2af83e(0x10e)]['isOpen'])return![];const _0xb3a1df=Date['now']()-this[_0x2af83e(0x10e)]['lastFailureTime'];if(_0xb3a1df>this['circuitBreaker'][_0x2af83e(0xe6)])return this['circuitBreaker'][_0x2af83e(0x14a)]=![],this['circuitBreaker']['failures']=0x0,![];return!![];}[a0_0x58e07c(0xf1)](){const _0x3c6cae=a0_0x58e07c;this[_0x3c6cae(0x10e)]['failures']++,this['circuitBreaker'][_0x3c6cae(0x15e)]=Date['now'](),this[_0x3c6cae(0x10e)][_0x3c6cae(0x126)]>=this[_0x3c6cae(0x10e)][_0x3c6cae(0xee)]&&(this['circuitBreaker']['isOpen']=!![],this[_0x3c6cae(0x130)]['warn'](_0x3c6cae(0xfa)));}['_resetCircuitBreaker'](){const _0x27db32=a0_0x58e07c;this[_0x27db32(0x10e)]['failures']>0x0&&(this[_0x27db32(0x10e)]['failures']=0x0,this['circuitBreaker']['isOpen']=![],this[_0x27db32(0x130)]['info'](_0x27db32(0x14c)));}['_getVendorFromModel'](_0x17d1ff){const _0x4b745d=a0_0x58e07c;if(!_0x17d1ff)return null;const _0x5af8ba=_0x17d1ff['toLowerCase']();if(_0x5af8ba['includes']('anthropic')||_0x5af8ba['includes']('claude'))return _0x4b745d(0x112);else{if(_0x5af8ba['includes']('openai')||_0x5af8ba[_0x4b745d(0x109)](_0x4b745d(0xdc)))return'openai';else{if(_0x5af8ba[_0x4b745d(0x109)](_0x4b745d(0xd7)))return'deepseek';else{if(_0x5af8ba[_0x4b745d(0x109)](_0x4b745d(0x102)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x26ab7c,_0x29cbec){const _0x2aead6=a0_0x58e07c;this[_0x2aead6(0xd2)]=_0x26ab7c,this['logger']=_0x29cbec,this['conversations']=new Map();}async['switchModel'](_0x683f45){return{'messages':[],'model':_0x683f45,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
@@ -1 +1 @@
1
- const a0_0x4d97ac=a0_0x3fc6;(function(_0x4d0ed0,_0x2760d4){const _0x560b88=a0_0x3fc6,_0x1f3484=_0x4d0ed0();while(!![]){try{const _0x13f3f8=-parseInt(_0x560b88(0x17e))/0x1*(-parseInt(_0x560b88(0x18b))/0x2)+parseInt(_0x560b88(0x193))/0x3+parseInt(_0x560b88(0x179))/0x4+-parseInt(_0x560b88(0x18f))/0x5+parseInt(_0x560b88(0x199))/0x6+parseInt(_0x560b88(0x17d))/0x7+-parseInt(_0x560b88(0x194))/0x8;if(_0x13f3f8===_0x2760d4)break;else _0x1f3484['push'](_0x1f3484['shift']());}catch(_0x4277e3){_0x1f3484['push'](_0x1f3484['shift']());}}}(a0_0x5112,0x30ae4));function a0_0x3fc6(_0x3656bf,_0x3ed9df){_0x3656bf=_0x3656bf-0x178;const _0x51121c=a0_0x5112();let _0x3fc688=_0x51121c[_0x3656bf];if(a0_0x3fc6['evQhxe']===undefined){var _0x1d390e=function(_0x44cfc0){const _0x116daf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39b63c='',_0xcc68f9='';for(let _0xe9ff36=0x0,_0x496191,_0x13f6d7,_0x18846c=0x0;_0x13f6d7=_0x44cfc0['charAt'](_0x18846c++);~_0x13f6d7&&(_0x496191=_0xe9ff36%0x4?_0x496191*0x40+_0x13f6d7:_0x13f6d7,_0xe9ff36++%0x4)?_0x39b63c+=String['fromCharCode'](0xff&_0x496191>>(-0x2*_0xe9ff36&0x6)):0x0){_0x13f6d7=_0x116daf['indexOf'](_0x13f6d7);}for(let _0x26f97b=0x0,_0x5ccb83=_0x39b63c['length'];_0x26f97b<_0x5ccb83;_0x26f97b++){_0xcc68f9+='%'+('00'+_0x39b63c['charCodeAt'](_0x26f97b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xcc68f9);};a0_0x3fc6['REJwpn']=_0x1d390e,a0_0x3fc6['UUCzeO']={},a0_0x3fc6['evQhxe']=!![];}const _0x5a5dba=_0x51121c[0x0],_0x195601=_0x3656bf+_0x5a5dba,_0x155d05=a0_0x3fc6['UUCzeO'][_0x195601];return!_0x155d05?(_0x3fc688=a0_0x3fc6['REJwpn'](_0x3fc688),a0_0x3fc6['UUCzeO'][_0x195601]=_0x3fc688):_0x3fc688=_0x155d05,_0x3fc688;}class ApiKeyManager{constructor(_0x39b63c){const _0x140629=a0_0x3fc6;this['logger']=_0x39b63c,this['sessionKeys']=new Map(),this[_0x140629(0x198)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0xcc68f9,_0xe9ff36){const _0x2a7ebc=a0_0x3fc6;if(!_0xcc68f9)throw new Error(_0x2a7ebc(0x17c));this['sessionKeys'][_0x2a7ebc(0x185)](_0xcc68f9,{'loxiaApiKey':_0xe9ff36['loxiaApiKey']||null,'vendorKeys':_0xe9ff36['vendorKeys']||{},'updatedAt':new Date()[_0x2a7ebc(0x184)]()}),this[_0x2a7ebc(0x191)]?.[_0x2a7ebc(0x195)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0xcc68f9,'hasLoxiaKey':!!_0xe9ff36['loxiaApiKey'],'vendorKeys':Object['keys'](_0xe9ff36[_0x2a7ebc(0x187)]||{}),'timestamp':new Date()[_0x2a7ebc(0x184)]()});}[a0_0x4d97ac(0x196)](_0x496191){const _0x364cb1=a0_0x4d97ac;if(!_0x496191)return this[_0x364cb1(0x198)];const _0x13f6d7=this[_0x364cb1(0x17f)]['get'](_0x496191);if(_0x13f6d7)return _0x13f6d7;return this['globalKeys'];}[a0_0x4d97ac(0x181)](_0x18846c,_0x26f97b={}){const _0x3f9bb0=a0_0x4d97ac,_0x5ccb83=this[_0x3f9bb0(0x196)](_0x18846c),_0x53c7c9={'loxiaApiKey':_0x5ccb83['loxiaApiKey'],'vendorApiKey':null};return!_0x26f97b['platformProvided']&&_0x26f97b[_0x3f9bb0(0x197)]&&_0x5ccb83[_0x3f9bb0(0x187)]&&(_0x53c7c9[_0x3f9bb0(0x192)]=_0x5ccb83[_0x3f9bb0(0x187)][_0x26f97b[_0x3f9bb0(0x197)]]),_0x53c7c9;}[a0_0x4d97ac(0x17b)](_0xe4343f){const _0x2509fc=a0_0x4d97ac;if(this['sessionKeys'][_0x2509fc(0x189)](_0xe4343f))return this['logger']?.[_0x2509fc(0x195)](_0x2509fc(0x18a),{'sessionId':_0xe4343f}),!![];return![];}['setGlobalKeys'](_0x12b670){const _0x257645=a0_0x4d97ac;this[_0x257645(0x198)]={'loxiaApiKey':_0x12b670['loxiaApiKey']||this[_0x257645(0x198)][_0x257645(0x18c)],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x12b670[_0x257645(0x187)]||{}}},this['logger']?.[_0x257645(0x195)](_0x257645(0x188),{'hasLoxiaKey':!!this['globalKeys']['loxiaApiKey'],'vendorKeys':Object['keys'](this['globalKeys'][_0x257645(0x187)])});}[a0_0x4d97ac(0x182)](){const _0x407667=a0_0x4d97ac;return Array['from'](this[_0x407667(0x17f)][_0x407667(0x178)]())[_0x407667(0x18d)](([_0x22ca96,_0x2c1fa1])=>({'sessionId':_0x22ca96,'hasLoxiaKey':!!_0x2c1fa1['loxiaApiKey'],'vendorKeys':Object[_0x407667(0x190)](_0x2c1fa1[_0x407667(0x187)]||{}),'updatedAt':_0x2c1fa1[_0x407667(0x18e)]}));}['cleanupExpiredSessions'](_0x5e96a9=0x18*0x3c*0x3c*0x3e8){const _0x10b927=a0_0x4d97ac,_0x5202e4=Date['now'](),_0x310256=[];for(const [_0x44b93e,_0x3916b0]of this['sessionKeys'][_0x10b927(0x178)]()){const _0x446bac=_0x5202e4-new Date(_0x3916b0[_0x10b927(0x18e)])[_0x10b927(0x17a)]();_0x446bac>_0x5e96a9&&_0x310256['push'](_0x44b93e);}return _0x310256[_0x10b927(0x180)](_0x4ce055=>{const _0x6f432d=_0x10b927;this[_0x6f432d(0x17f)]['delete'](_0x4ce055);}),_0x310256['length']>0x0&&this[_0x10b927(0x191)]?.['info'](_0x10b927(0x186),{'expiredSessions':_0x310256[_0x10b927(0x183)],'remainingSessions':this[_0x10b927(0x17f)]['size']}),_0x310256['length'];}}function a0_0x5112(){const _0x317e74=['zM9YrwfJAa','z2v0s2v5C0zVCLjLCxvLC3q','z2v0qwn0AxzLu2vZC2LVBNm','BgvUz3rO','Dg9ju09tDhjPBMC','C2v0','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','DMvUzg9Ys2v5CW','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','zgvSzxrL','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','nfb5D1PZqG','Bg94AwfbCgLlzxK','BwfW','DxbKyxrLzef0','ntiXotyWDgTMv09Y','A2v5CW','Bg9Nz2vY','DMvUzg9YqxbPs2v5','mJq2nJe1AuvywxnV','mZKZmZa2nefWuhzvvq','Aw5MBW','z2v0u2vZC2LVBKTLExm','DMvUzg9Y','z2XVyMfSs2v5CW','mZa3mty0D3LdsKHy','zw50CMLLCW','odq3ndi4Evr1D2HZ','z2v0vgLTzq','CMvTB3zLu2vZC2LVBKTLExm','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','mJuWntCXm3ffq2Tgwq','ndyXmdn3zhLAEue','C2vZC2LVBKTLExm'];a0_0x5112=function(){return _0x317e74;};return a0_0x5112();}export default ApiKeyManager;
1
+ function a0_0x13ba(){const _0x3d099d=['mu9IuKfAyW','C2vZC2LVBKTLExm','z2v0u2vZC2LVBKTLExm','z2v0qwn0AxzLu2vZC2LVBNm','zM9YrwfJAa','nZK0mJC2DuDSwLbK','CMvTB3zLu2vZC2LVBKTLExm','DMvUzg9Y','ntaXotm5nK9Rt3bgwG','mZC2mdm5m0DtD0feyG','DxbKyxrLzef0','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','BM93','ntaZnJCYnxf3u0jeEq','C2v0r2XVyMfSs2v5CW','mJa0mtm3nNjns0DmDG','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','z2v0','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','Bg9Nz2vY','DMvUzg9Ys2v5CW','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','z2XVyMfSs2v5CW','Dg9ju09tDhjPBMC','A2v5CW','odDbu3jzwMW','mZzqvxDHz2y','zw50CMLLCW','Aw5MBW','mtm0nZG4twTyuuzJ','Bg94AwfbCgLlzxK','ChvZAa','mtq3odm3mdbmEfDdyvK','zNjVBq','zgvSzxrL','CgXHDgzVCM1qCM92AwrLza','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW'];a0_0x13ba=function(){return _0x3d099d;};return a0_0x13ba();}const a0_0x19c439=a0_0x5695;function a0_0x5695(_0x146438,_0x2b6aee){_0x146438=_0x146438-0x68;const _0x13bad8=a0_0x13ba();let _0x569521=_0x13bad8[_0x146438];if(a0_0x5695['pcRmHF']===undefined){var _0x2774ce=function(_0x55c67c){const _0xcbe78a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1595b7='',_0x6d5402='';for(let _0x24e253=0x0,_0x5e80ae,_0x5c9da1,_0x23c824=0x0;_0x5c9da1=_0x55c67c['charAt'](_0x23c824++);~_0x5c9da1&&(_0x5e80ae=_0x24e253%0x4?_0x5e80ae*0x40+_0x5c9da1:_0x5c9da1,_0x24e253++%0x4)?_0x1595b7+=String['fromCharCode'](0xff&_0x5e80ae>>(-0x2*_0x24e253&0x6)):0x0){_0x5c9da1=_0xcbe78a['indexOf'](_0x5c9da1);}for(let _0x2550dc=0x0,_0x140c8f=_0x1595b7['length'];_0x2550dc<_0x140c8f;_0x2550dc++){_0x6d5402+='%'+('00'+_0x1595b7['charCodeAt'](_0x2550dc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x6d5402);};a0_0x5695['APLebj']=_0x2774ce,a0_0x5695['YfHOlc']={},a0_0x5695['pcRmHF']=!![];}const _0x22c167=_0x13bad8[0x0],_0x3cd890=_0x146438+_0x22c167,_0x5d0b94=a0_0x5695['YfHOlc'][_0x3cd890];return!_0x5d0b94?(_0x569521=a0_0x5695['APLebj'](_0x569521),a0_0x5695['YfHOlc'][_0x3cd890]=_0x569521):_0x569521=_0x5d0b94,_0x569521;}(function(_0x16ad37,_0x262400){const _0x2b2f96=a0_0x5695,_0x14dbab=_0x16ad37();while(!![]){try{const _0x1a5e88=parseInt(_0x2b2f96(0x6f))/0x1*(parseInt(_0x2b2f96(0x74))/0x2)+parseInt(_0x2b2f96(0x88))/0x3*(parseInt(_0x2b2f96(0x8c))/0x4)+-parseInt(_0x2b2f96(0x7c))/0x5+-parseInt(_0x2b2f96(0x77))/0x6+parseInt(_0x2b2f96(0x78))/0x7+parseInt(_0x2b2f96(0x7e))/0x8*(-parseInt(_0x2b2f96(0x89))/0x9)+parseInt(_0x2b2f96(0x6a))/0xa;if(_0x1a5e88===_0x262400)break;else _0x14dbab['push'](_0x14dbab['shift']());}catch(_0x3c1478){_0x14dbab['push'](_0x14dbab['shift']());}}}(a0_0x13ba,0x80409));class ApiKeyManager{constructor(_0x1595b7){const _0x74a8e1=a0_0x5695;this['logger']=_0x1595b7,this['sessionKeys']=new Map(),this[_0x74a8e1(0x85)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x6d5402,_0x24e253){const _0x208ed8=a0_0x5695;if(!_0x6d5402)throw new Error(_0x208ed8(0x7f));this['sessionKeys']['set'](_0x6d5402,{'loxiaApiKey':_0x24e253['loxiaApiKey']||null,'vendorKeys':_0x24e253['vendorKeys']||{},'updatedAt':new Date()[_0x208ed8(0x86)]()}),this[_0x208ed8(0x82)]?.[_0x208ed8(0x8b)](_0x208ed8(0x81),{'sessionId':_0x6d5402,'hasLoxiaKey':!!_0x24e253['loxiaApiKey'],'vendorKeys':Object['keys'](_0x24e253[_0x208ed8(0x83)]||{}),'timestamp':new Date()[_0x208ed8(0x86)]()});}['getSessionKeys'](_0x5e80ae){const _0x8119f1=a0_0x5695;if(!_0x5e80ae)return this[_0x8119f1(0x85)];const _0x5c9da1=this[_0x8119f1(0x70)][_0x8119f1(0x80)](_0x5e80ae);if(_0x5c9da1)return _0x5c9da1;return this['globalKeys'];}['getKeysForRequest'](_0x23c824,_0x2550dc={}){const _0x5353b3=a0_0x5695,_0x140c8f=this[_0x5353b3(0x71)](_0x23c824),_0x5da8b8={'loxiaApiKey':_0x140c8f[_0x5353b3(0x68)],'vendorApiKey':null};return!_0x2550dc[_0x5353b3(0x6d)]&&_0x2550dc[_0x5353b3(0x76)]&&_0x140c8f[_0x5353b3(0x83)]&&(_0x5da8b8['vendorApiKey']=_0x140c8f['vendorKeys'][_0x2550dc['vendor']]),_0x5da8b8;}[a0_0x19c439(0x75)](_0x52a19d){const _0x58382b=a0_0x19c439;if(this[_0x58382b(0x70)]['delete'](_0x52a19d))return this['logger']?.['info'](_0x58382b(0x7a),{'sessionId':_0x52a19d}),!![];return![];}[a0_0x19c439(0x7d)](_0x308c8e){const _0x24e0f6=a0_0x19c439;this[_0x24e0f6(0x85)]={'loxiaApiKey':_0x308c8e['loxiaApiKey']||this['globalKeys'][_0x24e0f6(0x68)],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x308c8e[_0x24e0f6(0x83)]||{}}},this[_0x24e0f6(0x82)]?.['info']('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this['globalKeys'][_0x24e0f6(0x68)],'vendorKeys':Object[_0x24e0f6(0x87)](this['globalKeys']['vendorKeys'])});}[a0_0x19c439(0x72)](){const _0x7b0546=a0_0x19c439;return Array[_0x7b0546(0x6b)](this[_0x7b0546(0x70)]['entries']())['map'](([_0x219246,_0x19604a])=>({'sessionId':_0x219246,'hasLoxiaKey':!!_0x19604a['loxiaApiKey'],'vendorKeys':Object['keys'](_0x19604a['vendorKeys']||{}),'updatedAt':_0x19604a[_0x7b0546(0x79)]}));}[a0_0x19c439(0x6e)](_0x439856=0x18*0x3c*0x3c*0x3e8){const _0xb980d1=a0_0x19c439,_0x1de088=Date[_0xb980d1(0x7b)](),_0x30ca03=[];for(const [_0x2f4199,_0x148af1]of this['sessionKeys'][_0xb980d1(0x8a)]()){const _0x3e9abd=_0x1de088-new Date(_0x148af1[_0xb980d1(0x79)])['getTime']();_0x3e9abd>_0x439856&&_0x30ca03[_0xb980d1(0x69)](_0x2f4199);}return _0x30ca03[_0xb980d1(0x73)](_0x5ccd81=>{const _0x5c38f6=_0xb980d1;this['sessionKeys'][_0x5c38f6(0x6c)](_0x5ccd81);}),_0x30ca03['length']>0x0&&this[_0xb980d1(0x82)]?.[_0xb980d1(0x8b)](_0xb980d1(0x84),{'expiredSessions':_0x30ca03['length'],'remainingSessions':this[_0xb980d1(0x70)]['size']}),_0x30ca03['length'];}}export default ApiKeyManager;
@@ -1 +1 @@
1
- const a0_0x1342eb=a0_0x3895;function a0_0x3895(_0x367c8f,_0x3cb00a){_0x367c8f=_0x367c8f-0x84;const _0x5b2df6=a0_0x5b2d();let _0x3895bb=_0x5b2df6[_0x367c8f];if(a0_0x3895['LFWIDe']===undefined){var _0x53baf1=function(_0x433d40){const _0x8b21e9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x27f61c='',_0x2be7d='';for(let _0x291abf=0x0,_0x58c15f,_0x258275,_0x53de8b=0x0;_0x258275=_0x433d40['charAt'](_0x53de8b++);~_0x258275&&(_0x58c15f=_0x291abf%0x4?_0x58c15f*0x40+_0x258275:_0x258275,_0x291abf++%0x4)?_0x27f61c+=String['fromCharCode'](0xff&_0x58c15f>>(-0x2*_0x291abf&0x6)):0x0){_0x258275=_0x8b21e9['indexOf'](_0x258275);}for(let _0x1fabc6=0x0,_0x3bd0ad=_0x27f61c['length'];_0x1fabc6<_0x3bd0ad;_0x1fabc6++){_0x2be7d+='%'+('00'+_0x27f61c['charCodeAt'](_0x1fabc6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2be7d);};a0_0x3895['HlyAiZ']=_0x53baf1,a0_0x3895['bJFjyf']={},a0_0x3895['LFWIDe']=!![];}const _0x16d4e9=_0x5b2df6[0x0],_0x4927ea=_0x367c8f+_0x16d4e9,_0x2d7c35=a0_0x3895['bJFjyf'][_0x4927ea];return!_0x2d7c35?(_0x3895bb=a0_0x3895['HlyAiZ'](_0x3895bb),a0_0x3895['bJFjyf'][_0x4927ea]=_0x3895bb):_0x3895bb=_0x2d7c35,_0x3895bb;}(function(_0x49b177,_0x3b3ecc){const _0x410c9b=a0_0x3895,_0x58b42c=_0x49b177();while(!![]){try{const _0x36c7cf=parseInt(_0x410c9b(0xb4))/0x1+-parseInt(_0x410c9b(0x92))/0x2+parseInt(_0x410c9b(0x86))/0x3+parseInt(_0x410c9b(0xa0))/0x4+parseInt(_0x410c9b(0x85))/0x5+-parseInt(_0x410c9b(0x87))/0x6*(-parseInt(_0x410c9b(0xa6))/0x7)+-parseInt(_0x410c9b(0x94))/0x8*(parseInt(_0x410c9b(0x95))/0x9);if(_0x36c7cf===_0x3b3ecc)break;else _0x58b42c['push'](_0x58b42c['shift']());}catch(_0x195c11){_0x58b42c['push'](_0x58b42c['shift']());}}}(a0_0x5b2d,0x7f7cc));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x27f61c,_0x2be7d){const _0x145cef=a0_0x3895;this[_0x145cef(0x98)]=_0x27f61c,this[_0x145cef(0xa5)]=_0x2be7d,this['benchmarks']=null,this['lastUpdated']=null,this['isLoading']=![],this[_0x145cef(0x8f)]=_0x145cef(0xa2),this['refreshInterval']=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async[a0_0x1342eb(0x91)](){const _0x46090a=a0_0x1342eb;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger'][_0x46090a(0xa3)](_0x46090a(0x88));}catch(_0x291abf){this['logger']['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x291abf['message']}),this['benchmarks']=null;}}['getBenchmarks'](){const _0x4ffa6a=a0_0x1342eb;if(!this[_0x4ffa6a(0x9a)])return this[_0x4ffa6a(0xa5)]['error'](_0x4ffa6a(0x8d),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x4ffa6a(0x9a)];}async['loadBenchmarks'](){const _0x16eb2d=a0_0x1342eb;if(this['isLoading']){this[_0x16eb2d(0xa5)]['debug'](_0x16eb2d(0x90));return;}this['isLoading']=!![];try{const _0x58c15f=await this['_fetchFromAzureBackend']();if(_0x58c15f)this[_0x16eb2d(0x9a)]=_0x58c15f,this['lastUpdated']=new Date(),this['logger']['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x58c15f[_0x16eb2d(0x9e)]?.[_0x16eb2d(0x99)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x258275){this['logger'][_0x16eb2d(0xb7)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x258275['message'],'endpoint':url}),!this[_0x16eb2d(0x9a)]&&(this['benchmarks']=null);}finally{this[_0x16eb2d(0x9d)]=![];}}['getBenchmarkTable'](){const _0x5830f3=a0_0x1342eb,_0x53de8b=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.[_0x5830f3(0x8a)]()||_0x5830f3(0x84),'models':_0x53de8b[_0x5830f3(0x9e)]||[],'tasks':_0x53de8b[_0x5830f3(0x9b)]||{},'summary':this['_generateBenchmarkSummary'](_0x53de8b)};}[a0_0x1342eb(0xad)](){const _0x12fba8=a0_0x1342eb;if(!this[_0x12fba8(0xaa)])return!![];const _0x1fabc6=Date[_0x12fba8(0xa1)]()-this[_0x12fba8(0xaa)]['getTime']();return _0x1fabc6>this['refreshInterval'];}async[a0_0x1342eb(0x8b)](){const _0xee24e4=a0_0x1342eb,_0x3bd0ad=this[_0xee24e4(0x8f)]+'/llm/model-benchmarks';let _0x398a3e=null;this['config'][_0xee24e4(0xb6)]&&(_0x398a3e=this['config'][_0xee24e4(0xb6)]);const _0x58a232={'method':'GET','headers':{'Content-Type':_0xee24e4(0x8e),..._0x398a3e&&{'Authorization':_0xee24e4(0xa9)+_0x398a3e}},'timeout':0x2710};this[_0xee24e4(0xa5)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x3bd0ad});const _0x507868=await fetch(_0x3bd0ad,_0x58a232);if(!_0x507868['ok'])throw new Error('HTTP\x20'+_0x507868['status']+':\x20'+_0x507868['statusText']);const _0x3413ce=await _0x507868[_0xee24e4(0xba)]();return _0x3413ce;}[a0_0x1342eb(0xb5)](_0x50f9e5){const _0x2784a3=a0_0x1342eb,_0x195188=_0x50f9e5['models']||[];return{'totalModels':_0x195188['length'],'taskCategories':Object[_0x2784a3(0x93)](_0x50f9e5['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x195188,_0x2784a3(0xa7)),'bestForAnalysis':this[_0x2784a3(0xbc)](_0x195188,_0x2784a3(0xab)),'bestForQuickTasks':this[_0x2784a3(0xbc)](_0x195188,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x195188,_0x2784a3(0xb1)),'fastestModel':this[_0x2784a3(0xae)](_0x195188),'mostCostEfficient':this['_getMostCostEfficient'](_0x195188)};}[a0_0x1342eb(0xbc)](_0x35892c,_0x2b4937){const _0x825030=a0_0x1342eb;return _0x35892c[_0x825030(0xb0)](_0x556e8d=>_0x556e8d[_0x825030(0x9b)]&&_0x556e8d[_0x825030(0x9b)][_0x2b4937])['sort']((_0x311b99,_0x3f3200)=>(_0x3f3200[_0x825030(0x9b)][_0x2b4937][_0x825030(0x97)]||0x0)-(_0x311b99[_0x825030(0x9b)][_0x2b4937]['score']||0x0))[0x0]?.[_0x825030(0x9f)]||'unknown';}[a0_0x1342eb(0xae)](_0x2437b4){const _0x4d736c=a0_0x1342eb,_0x58f052={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x2437b4[_0x4d736c(0xb3)]((_0x470f5d,_0x5685ba)=>{const _0x2c3fa3=_0x4d736c,_0x2e7146=Math['max'](...Object[_0x2c3fa3(0x9c)](_0x470f5d[_0x2c3fa3(0x9b)]||{})[_0x2c3fa3(0xac)](_0x13a87a=>_0x58f052[_0x13a87a[_0x2c3fa3(0x89)]]||0x0)),_0x15c536=Math[_0x2c3fa3(0xa8)](...Object[_0x2c3fa3(0x9c)](_0x5685ba[_0x2c3fa3(0x9b)]||{})['map'](_0x1757ed=>_0x58f052[_0x1757ed['speed']]||0x0));return _0x15c536-_0x2e7146;})[0x0]?.[_0x4d736c(0x9f)]||_0x4d736c(0x84);}[a0_0x1342eb(0xbb)](_0x29afac){const _0x3f475f=a0_0x1342eb,_0x137f08={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x29afac[_0x3f475f(0xb3)]((_0x4d5a8e,_0x4d1de9)=>{const _0x481b29=_0x3f475f,_0x58d59d=Math[_0x481b29(0xa8)](...Object['values'](_0x4d5a8e[_0x481b29(0x9b)]||{})[_0x481b29(0xac)](_0x5930ac=>_0x137f08[_0x5930ac['cost']]||0x0)),_0x19109f=Math['max'](...Object[_0x481b29(0x9c)](_0x4d1de9['tasks']||{})[_0x481b29(0xac)](_0x4d9c6c=>_0x137f08[_0x4d9c6c[_0x481b29(0xb8)]]||0x0));return _0x19109f-_0x58d59d;})[0x0]?.[_0x3f475f(0x9f)]||_0x3f475f(0x84);}[a0_0x1342eb(0xb9)](){const _0x5e36a8=a0_0x1342eb;setInterval(async()=>{const _0x35f2c5=a0_0x3895;this[_0x35f2c5(0xad)]()&&(this[_0x35f2c5(0xa5)][_0x35f2c5(0xa4)](_0x35f2c5(0xb2)),await this['loadBenchmarks']());},this[_0x5e36a8(0x8c)]);}async[a0_0x1342eb(0xaf)](){const _0x41add8=a0_0x1342eb;this[_0x41add8(0xa5)][_0x41add8(0xa3)]('Force\x20refreshing\x20benchmark\x20data'),await this['loadBenchmarks']();}['getStatus'](){const _0x27522f=a0_0x1342eb;return{'initialized':!!this[_0x27522f(0x9a)],'lastUpdated':this['lastUpdated']?.[_0x27522f(0x8a)]()||null,'source':this['benchmarks']?.[_0x27522f(0x96)]||_0x27522f(0x84),'modelCount':this['benchmarks']?.['models']?.[_0x27522f(0x99)]||0x0,'isLoading':this[_0x27522f(0x9d)],'needsRefresh':this['needsRefresh']()};}}function a0_0x5b2d(){const _0x5e4d19=['CMvMCMvZAeLUDgvYDMfS','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','yxbWBgLJyxrPB24VANnVBG','yxP1CMvcywnRzw5KvxjS','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','Aw5PDgLHBgL6zq','mZaYmZyYs3fWwgfN','A2v5CW','mJiYotm3nKjOywPgvW','ndvTyMnszLi','C291CMnL','C2nVCMu','y29UzMLN','BgvUz3rO','yMvUy2HTyxjRCW','DgfZA3m','DMfSDwvZ','AxnmB2fKAw5N','Bw9KzwXZ','BMfTzq','mZKXmJeXnMfAvLrcEG','BM93','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','Aw5MBW','zgvIDwC','Bg9Nz2vY','otfKCKDOze0','y29KAw5N','Bwf4','qMvHCMvYia','BgfZDfvWzgf0zwq','yw5HBhLZAxm','BwfW','BMvLzhnszwzYzxnO','x2DLDezHC3rLC3rnB2rLBa','zM9Yy2vszwzYzxnO','zMLSDgvY','y3jLyxrPDMu','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','C29YDa','otq2mZn2u05lr1u','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','yxbPs2v5','zxjYB3i','y29ZDa','x3nJAgvKDwXLuMvMCMvZAa','ANnVBG','x2DLDe1VC3rdB3n0rwzMAwnPzw50','x2DLDejLC3rnB2rLBezVCLrHC2S','Dw5RBM93BG','nJCZmZaWzNLTwM1Z','mtyWntqWnxDsvejqCq','mtq5nJy0ELbLvw9L','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','C3bLzwq','Dg9ju09tDhjPBMC','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza'];a0_0x5b2d=function(){return _0x5e4d19;};return a0_0x5b2d();}export default BenchmarkService;
1
+ const a0_0x54c676=a0_0x12cf;(function(_0x28525a,_0x7d4ee0){const _0x306830=a0_0x12cf,_0x2aa104=_0x28525a();while(!![]){try{const _0x1bf92c=parseInt(_0x306830(0x1e7))/0x1+parseInt(_0x306830(0x1ed))/0x2*(-parseInt(_0x306830(0x20e))/0x3)+-parseInt(_0x306830(0x1e2))/0x4+-parseInt(_0x306830(0x1ec))/0x5+-parseInt(_0x306830(0x1f8))/0x6+parseInt(_0x306830(0x206))/0x7+-parseInt(_0x306830(0x1fb))/0x8*(-parseInt(_0x306830(0x1e0))/0x9);if(_0x1bf92c===_0x7d4ee0)break;else _0x2aa104['push'](_0x2aa104['shift']());}catch(_0x2b2c74){_0x2aa104['push'](_0x2aa104['shift']());}}}(a0_0x2740,0x616f2));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x4f9fe2,_0x57b13f){const _0xb44ccb=a0_0x12cf;this['config']=_0x4f9fe2,this[_0xb44ccb(0x1fd)]=_0x57b13f,this['benchmarks']=null,this['lastUpdated']=null,this[_0xb44ccb(0x210)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0xb44ccb(0x1fe)];}async[a0_0x54c676(0x1e9)](){const _0x1c3b37=a0_0x54c676;try{await this[_0x1c3b37(0x1f9)](),this['_scheduleRefresh'](),this[_0x1c3b37(0x1fd)]['info']('Benchmark\x20service\x20initialized');}catch(_0x299544){this['logger'][_0x1c3b37(0x208)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x299544['message']}),this[_0x1c3b37(0x1f5)]=null;}}['getBenchmarks'](){const _0x3ecc7e=a0_0x54c676;if(!this['benchmarks'])return this['logger']['error'](_0x3ecc7e(0x1fa),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async[a0_0x54c676(0x1f9)](){const _0x542dc4=a0_0x54c676;if(this['isLoading']){this[_0x542dc4(0x1fd)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this['isLoading']=!![];try{const _0x5f4a91=await this[_0x542dc4(0x207)]();if(_0x5f4a91)this['benchmarks']=_0x5f4a91,this[_0x542dc4(0x1e1)]=new Date(),this['logger'][_0x542dc4(0x1f1)]('Benchmarks loaded from Azure backend',{'modelCount':_0x5f4a91['models']?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x329bc3){this['logger'][_0x542dc4(0x208)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x329bc3[_0x542dc4(0x212)],'endpoint':url}),!this[_0x542dc4(0x1f5)]&&(this[_0x542dc4(0x1f5)]=null);}finally{this['isLoading']=![];}}[a0_0x54c676(0x1e4)](){const _0x4329a4=a0_0x54c676,_0x5e4966=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||_0x4329a4(0x1f3),'models':_0x5e4966['models']||[],'tasks':_0x5e4966['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x5e4966)};}[a0_0x54c676(0x1eb)](){const _0x10591d=a0_0x54c676;if(!this[_0x10591d(0x1e1)])return!![];const _0x47d58c=Date['now']()-this['lastUpdated'][_0x10591d(0x1f7)]();return _0x47d58c>this[_0x10591d(0x202)];}async[a0_0x54c676(0x207)](){const _0x1b39f7=a0_0x54c676,_0x1fbb9d=this['azureBackendUrl']+_0x1b39f7(0x1f6);let _0x10e7da=null;this[_0x1b39f7(0x1ea)]['apiKey']&&(_0x10e7da=this[_0x1b39f7(0x1ea)]['apiKey']);const _0x26c19b={'method':_0x1b39f7(0x1ef),'headers':{'Content-Type':'application/json',..._0x10e7da&&{'Authorization':_0x1b39f7(0x1fc)+_0x10e7da}},'timeout':0x2710};this[_0x1b39f7(0x1fd)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x1fbb9d});const _0x5f1ebe=await fetch(_0x1fbb9d,_0x26c19b);if(!_0x5f1ebe['ok'])throw new Error(_0x1b39f7(0x211)+_0x5f1ebe['status']+':\x20'+_0x5f1ebe[_0x1b39f7(0x205)]);const _0x24c896=await _0x5f1ebe[_0x1b39f7(0x200)]();return _0x24c896;}[a0_0x54c676(0x1ee)](_0x4df1f5){const _0x3bf770=a0_0x54c676,_0x342554=_0x4df1f5['models']||[];return{'totalModels':_0x342554[_0x3bf770(0x1f2)],'taskCategories':Object[_0x3bf770(0x20a)](_0x4df1f5['tasks']||{}),'bestForCoding':this[_0x3bf770(0x209)](_0x342554,'coding'),'bestForAnalysis':this[_0x3bf770(0x209)](_0x342554,_0x3bf770(0x201)),'bestForQuickTasks':this[_0x3bf770(0x209)](_0x342554,_0x3bf770(0x204)),'bestForCreative':this['_getBestModelForTask'](_0x342554,_0x3bf770(0x1e3)),'fastestModel':this['_getFastestModel'](_0x342554),'mostCostEfficient':this['_getMostCostEfficient'](_0x342554)};}['_getBestModelForTask'](_0x4ef701,_0x32dda4){const _0xc6ee9c=a0_0x54c676;return _0x4ef701['filter'](_0x13083b=>_0x13083b[_0xc6ee9c(0x20f)]&&_0x13083b['tasks'][_0x32dda4])['sort']((_0x48af96,_0x598ccc)=>(_0x598ccc[_0xc6ee9c(0x20f)][_0x32dda4]['score']||0x0)-(_0x48af96[_0xc6ee9c(0x20f)][_0x32dda4]['score']||0x0))[0x0]?.[_0xc6ee9c(0x1f0)]||_0xc6ee9c(0x1f3);}['_getFastestModel'](_0x580859){const _0x4d8096=a0_0x54c676,_0x4b6fff={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x580859['sort']((_0x51f4bb,_0x218ef7)=>{const _0x3bf6be=a0_0x12cf,_0x52c266=Math[_0x3bf6be(0x203)](...Object[_0x3bf6be(0x20c)](_0x51f4bb[_0x3bf6be(0x20f)]||{})['map'](_0x347044=>_0x4b6fff[_0x347044['speed']]||0x0)),_0x327bce=Math['max'](...Object[_0x3bf6be(0x20c)](_0x218ef7[_0x3bf6be(0x20f)]||{})[_0x3bf6be(0x1e6)](_0x42ff41=>_0x4b6fff[_0x42ff41['speed']]||0x0));return _0x327bce-_0x52c266;})[0x0]?.[_0x4d8096(0x1f0)]||_0x4d8096(0x1f3);}[a0_0x54c676(0x1f4)](_0x38836c){const _0x5b28d7={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x38836c['sort']((_0x5b8989,_0x4f5655)=>{const _0x32a2a2=a0_0x12cf,_0x481d1d=Math['max'](...Object[_0x32a2a2(0x20c)](_0x5b8989[_0x32a2a2(0x20f)]||{})['map'](_0x471055=>_0x5b28d7[_0x471055[_0x32a2a2(0x1ff)]]||0x0)),_0x30ed4b=Math[_0x32a2a2(0x203)](...Object[_0x32a2a2(0x20c)](_0x4f5655[_0x32a2a2(0x20f)]||{})['map'](_0x1bf833=>_0x5b28d7[_0x1bf833['cost']]||0x0));return _0x30ed4b-_0x481d1d;})[0x0]?.['name']||'unknown';}[a0_0x54c676(0x1e5)](){const _0x54ae54=a0_0x54c676;setInterval(async()=>{const _0x26f5c7=a0_0x12cf;this['needsRefresh']()&&(this['logger'][_0x26f5c7(0x1e8)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x54ae54(0x202)]);}async['forceRefresh'](){const _0x1a6708=a0_0x54c676;this['logger']['info'](_0x1a6708(0x20d)),await this['loadBenchmarks']();}[a0_0x54c676(0x20b)](){const _0x549abe=a0_0x54c676;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x549abe(0x213)]()||null,'source':this['benchmarks']?.[_0x549abe(0x1df)]||_0x549abe(0x1f3),'modelCount':this['benchmarks']?.['models']?.[_0x549abe(0x1f2)]||0x0,'isLoading':this['isLoading'],'needsRefresh':this[_0x549abe(0x1eb)]()};}}export default BenchmarkService;function a0_0x12cf(_0x50618e,_0x523f26){_0x50618e=_0x50618e-0x1df;const _0x27409d=a0_0x2740();let _0x12cf4e=_0x27409d[_0x50618e];if(a0_0x12cf['xXZQFD']===undefined){var _0x391ee5=function(_0x5332c4){const _0x566dcd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f9fe2='',_0x57b13f='';for(let _0x299544=0x0,_0x5f4a91,_0x329bc3,_0x5e4966=0x0;_0x329bc3=_0x5332c4['charAt'](_0x5e4966++);~_0x329bc3&&(_0x5f4a91=_0x299544%0x4?_0x5f4a91*0x40+_0x329bc3:_0x329bc3,_0x299544++%0x4)?_0x4f9fe2+=String['fromCharCode'](0xff&_0x5f4a91>>(-0x2*_0x299544&0x6)):0x0){_0x329bc3=_0x566dcd['indexOf'](_0x329bc3);}for(let _0x47d58c=0x0,_0x1fbb9d=_0x4f9fe2['length'];_0x47d58c<_0x1fbb9d;_0x47d58c++){_0x57b13f+='%'+('00'+_0x4f9fe2['charCodeAt'](_0x47d58c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x57b13f);};a0_0x12cf['vVpOVS']=_0x391ee5,a0_0x12cf['hsHJnT']={},a0_0x12cf['xXZQFD']=!![];}const _0x1040d1=_0x27409d[0x0],_0x139bb2=_0x50618e+_0x1040d1,_0xd5cbca=a0_0x12cf['hsHJnT'][_0x139bb2];return!_0xd5cbca?(_0x12cf4e=a0_0x12cf['vVpOVS'](_0x12cf4e),a0_0x12cf['hsHJnT'][_0x139bb2]=_0x12cf4e):_0x12cf4e=_0xd5cbca,_0x12cf4e;}function a0_0x2740(){const _0xe8b9c8=['BMfTzq','Aw5MBW','BgvUz3rO','Dw5RBM93BG','x2DLDe1VC3rdB3n0rwzMAwnPzw50','yMvUy2HTyxjRCW','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','z2v0vgLTzq','mJqYnJq5nLr2rxnssa','Bg9HzejLBMnOBwfYA3m','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','nZq1nZy4DuLWCgjn','qMvHCMvYia','Bg9Nz2vY','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','y29ZDa','ANnVBG','yw5HBhLZAxm','CMvMCMvZAeLUDgvYDMfS','Bwf4','CxvPy2STDgfZA3m','C3rHDhvZvgv4Da','ndG0nZGYoxDethvAyW','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','zxjYB3i','x2DLDejLC3rnB2rLBezVCLrHC2S','A2v5CW','z2v0u3rHDhvZ','DMfSDwvZ','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','nZa1D2Tur3Lb','DgfZA3m','AxnmB2fKAw5N','sfruuca','BwvZC2fNzq','Dg9ju09tDhjPBMC','C291CMnL','otbVz3PmuwG','BgfZDfvWzgf0zwq','mJy4mJCYmg9Aq0HpsW','y3jLyxrPDMu','z2v0qMvUy2HTyxjRvgfIBgu','x3nJAgvKDwXLuMvMCMvZAa','BwfW','nZmXnde0t0zHCLnV','zgvIDwC','Aw5PDgLHBgL6zq','y29UzMLN','BMvLzhnszwzYzxnO','mJy2nZqWmhbctuPirW','mJK2nLHxwuncuG','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','r0vu'];a0_0x2740=function(){return _0xe8b9c8;};return a0_0x2740();}
@@ -1 +1 @@
1
- function a0_0x5dcf(_0x290c5d,_0x45ea62){_0x290c5d=_0x290c5d-0xc0;const _0x56c73e=a0_0x56c7();let _0x5dcf4b=_0x56c73e[_0x290c5d];if(a0_0x5dcf['cfWKdf']===undefined){var _0x42ede6=function(_0x2857cf){const _0x4aec38='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa78609='',_0xc4316a='';for(let _0x3dcf71=0x0,_0x2bd6e6,_0x5d8d2e,_0x2bc25b=0x0;_0x5d8d2e=_0x2857cf['charAt'](_0x2bc25b++);~_0x5d8d2e&&(_0x2bd6e6=_0x3dcf71%0x4?_0x2bd6e6*0x40+_0x5d8d2e:_0x5d8d2e,_0x3dcf71++%0x4)?_0xa78609+=String['fromCharCode'](0xff&_0x2bd6e6>>(-0x2*_0x3dcf71&0x6)):0x0){_0x5d8d2e=_0x4aec38['indexOf'](_0x5d8d2e);}for(let _0x16ff34=0x0,_0x30a240=_0xa78609['length'];_0x16ff34<_0x30a240;_0x16ff34++){_0xc4316a+='%'+('00'+_0xa78609['charCodeAt'](_0x16ff34)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc4316a);};a0_0x5dcf['bilopj']=_0x42ede6,a0_0x5dcf['SLkmpF']={},a0_0x5dcf['cfWKdf']=!![];}const _0x2ffca6=_0x56c73e[0x0],_0x52f10e=_0x290c5d+_0x2ffca6,_0x36b255=a0_0x5dcf['SLkmpF'][_0x52f10e];return!_0x36b255?(_0x5dcf4b=a0_0x5dcf['bilopj'](_0x5dcf4b),a0_0x5dcf['SLkmpF'][_0x52f10e]=_0x5dcf4b):_0x5dcf4b=_0x36b255,_0x5dcf4b;}const a0_0x340bc2=a0_0x5dcf;(function(_0x54fc3f,_0x169f71){const _0x4b3559=a0_0x5dcf,_0x1475f3=_0x54fc3f();while(!![]){try{const _0x208c3c=-parseInt(_0x4b3559(0xdd))/0x1*(parseInt(_0x4b3559(0x107))/0x2)+parseInt(_0x4b3559(0x10e))/0x3*(parseInt(_0x4b3559(0xda))/0x4)+parseInt(_0x4b3559(0xec))/0x5+parseInt(_0x4b3559(0xfd))/0x6*(-parseInt(_0x4b3559(0x11c))/0x7)+-parseInt(_0x4b3559(0x11b))/0x8*(parseInt(_0x4b3559(0xe0))/0x9)+-parseInt(_0x4b3559(0xf4))/0xa*(parseInt(_0x4b3559(0x100))/0xb)+-parseInt(_0x4b3559(0xe5))/0xc*(-parseInt(_0x4b3559(0xd7))/0xd);if(_0x208c3c===_0x169f71)break;else _0x1475f3['push'](_0x1475f3['shift']());}catch(_0x57cfcc){_0x1475f3['push'](_0x1475f3['shift']());}}}(a0_0x56c7,0x390dd));function a0_0x56c7(){const _0x23f112=['z2v0','C2v0','y29UzMLN','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mZi5nMjuqLv4uG','mtrktwnHq1q','z2v0tw9UDgG','z2v0v2vLA0TLEq','C3rYAw5NAwz5','yNvKz2v0qwXLCNq','ChvZAa','zw50CMLLCW','y29UDMvYDfrVq1nw','C2f2zvvZywDLrgf0yq','Bg9Nz2vY','ywXLCNrZ','Aw5PDgLHBgL6zvvZywDLrw50CNK','Bg9HzfvZywDLrgf0yq','yNvKz2v0CW','C2v0DxbqzxjPB2rPy1nHDMu','D2fYBG','q29ZDa','Dg90ywW','y3n2','z2v0rNvSBfLLyxi','rgfPBhK','y3jLyxrLrw1WDhLvC2fNzq','refjtfK','AxnxAxrOAw5cDwrNzxq','mtaZmde1oujItfv3Ea','z2v0qwDLBNrvC2fNzq','veHsrvnit0XeuW','mZe2DhLuwLb1','z2v0vxnHz2u','Bw9UDgHSEq','mZvptMfNBxi','C2v0qNvKz2v0CW','zgfPBhLbDMvYywDLCW','mtaXotDgCgjqBwi','BgfZDefSzxj0vgLTzxm','AM9PBG','ANnVBG','z2v0tw9KzwXvC2fNzq','mtq0r2TPuMLR','z2v0uMvTywLUAw5NqNvKz2v0','Bwf4','Dg9WqwDLBNrZ','qNvKz2v0igXPBwL0CYb1CgrHDgvK','ltaX','Dw5ZAgLMDa','mtGYmJyXmgz6thfsBW','yNLnB2rLBa','Dg9Rzw5ZqNLeyxK','qwDLBNq','tw9KzwW','AgfZ','y29ZDa','Dg9tDhjPBMC','mteYmhDNy2rQyq','C29YDa','C2vUzfrOCMvZAg9SzefSzxj0','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','ugvYAw9K','zM9YrwfJAa','zw1PDa','vg9Rzw5Z','z2v0rgf5s2v5','nZmZmdm4uKfkrhzl','C3bSAxq','zgfPBhK','mJiXmJfoswjnr2e','ywDLBNrjza','BM93','C2XPy2u','Dg9ju09tDhjPBMC','BwfW','DxnHz2u','mtKZotrgEgzNzgm','y2HLy2TcDwrNzxrmAw1PDhm','CMvXDwvZDhm','BwvZC2fNzq','rgf0zq','yNLbz2vUDa','y2fSy3vSyxrLq29ZDa','nZm2ohbJvwvYua','zxjYB3i','DxbKyxrLvxnHz2vfBNrYEq','C2vUzej1zgDLDefSzxj0','D2vLA2X5','z2v0v2vLA051BwjLCG','DgHYzxnOB2XKCW','Dg9Rzw5Z','y29ZDej5rgf5'];a0_0x56c7=function(){return _0x23f112;};return a0_0x56c7();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0xa78609,_0xc4316a){const _0x4035de=a0_0x5dcf;this[_0x4035de(0x119)]=_0xa78609||{},this['logger']=_0xc4316a,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x4035de(0xcc)]={'daily':BUDGET_LIMITS[_0x4035de(0xd5)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS['MONTHLY']},this[_0x4035de(0xc9)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x4035de(0xd9)],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x4035de(0xcd)]();}['trackUsage'](_0x3dcf71,_0x2bd6e6,_0x5d8d2e){const _0x11e6b8=a0_0x5dcf;try{const _0x2bc25b=this[_0x11e6b8(0x10d)](_0x2bd6e6,_0x5d8d2e),_0x16ff34=new Date(),_0x30a240=this['getDayKey'](_0x16ff34),_0x25c34b=this[_0x11e6b8(0xc1)](_0x16ff34),_0x309c99=this['getMonthKey'](_0x16ff34);this[_0x11e6b8(0xca)](this[_0x11e6b8(0x106)]['daily'],_0x30a240),this[_0x11e6b8(0xca)](this[_0x11e6b8(0x106)][_0x11e6b8(0x112)],_0x25c34b),this['initializeUsageEntry'](this['usage'][_0x11e6b8(0xdc)],_0x309c99);const _0x1a5d17={'agentId':_0x3dcf71,'modelId':_0x2bd6e6,'tokens':_0x5d8d2e['total_tokens'],'cost':_0x2bc25b,'timestamp':_0x16ff34['toISOString']()};return this['updateUsageEntry'](this['usage'][_0x11e6b8(0xff)]['get'](_0x30a240),_0x1a5d17),this[_0x11e6b8(0x110)](this['usage'][_0x11e6b8(0x112)]['get'](_0x25c34b),_0x1a5d17),this[_0x11e6b8(0x110)](this['usage'][_0x11e6b8(0xdc)][_0x11e6b8(0x117)](_0x309c99),_0x1a5d17),this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)]['tokens']+=_0x5d8d2e['total_tokens'],this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)][_0x11e6b8(0xf2)]+=_0x2bc25b,this[_0x11e6b8(0x106)]['total']['requests']+=0x1,this[_0x11e6b8(0x108)](_0x30a240,_0x25c34b,_0x309c99),this['logger']['info']('Usage\x20tracked',{'agentId':_0x3dcf71,'modelId':_0x2bd6e6,'tokens':_0x5d8d2e['total_tokens'],'cost':_0x2bc25b,'totalCost':this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)]['cost']}),{'cost':_0x2bc25b,'totalCost':this['usage'][_0x11e6b8(0xd0)]['cost'],'totalTokens':this[_0x11e6b8(0x106)]['total']['tokens'],'dailyUsage':this['usage'][_0x11e6b8(0xff)][_0x11e6b8(0x117)](_0x30a240),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5f050d){this[_0x11e6b8(0xc8)][_0x11e6b8(0x10f)]('Failed\x20to\x20track\x20usage',{'error':_0x5f050d[_0x11e6b8(0x10a)],'agentId':_0x3dcf71,'modelId':_0x2bd6e6});throw _0x5f050d;}}['calculateCost'](_0x2781c2,_0x9bbdeb){const _0x3ff51f=a0_0x5dcf,_0x3d0b6f=COST_PER_TOKEN[_0x2781c2];if(!_0x3d0b6f)return this[_0x3ff51f(0xc8)]['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x2781c2}),0x0;const _0x345428=(_0x9bbdeb['prompt_tokens']||0x0)*_0x3d0b6f['input'],_0x1579fa=(_0x9bbdeb['completion_tokens']||0x0)*_0x3d0b6f['output'];return _0x345428+_0x1579fa;}['getUsage'](_0x59deba=a0_0x340bc2(0xff),_0x1cbf96=new Date()){const _0x59fb5d=a0_0x340bc2;switch(_0x59deba){case'daily':return this['usage'][_0x59fb5d(0xff)][_0x59fb5d(0x117)](this['getDayKey'](_0x1cbf96))||this['createEmptyUsage']();case _0x59fb5d(0x112):return this['usage']['weekly'][_0x59fb5d(0x117)](this[_0x59fb5d(0xc1)](_0x1cbf96))||this[_0x59fb5d(0xd4)]();case'monthly':return this['usage'][_0x59fb5d(0xdc)][_0x59fb5d(0x117)](this['getMonthKey'](_0x1cbf96))||this[_0x59fb5d(0xd4)]();case _0x59fb5d(0xd0):return{...this[_0x59fb5d(0x106)]['total']};default:throw new Error('Invalid\x20period:\x20'+_0x59deba);}}[a0_0x340bc2(0xd8)](_0x5c402e,_0x40df65='daily'){const _0x52b4a2=a0_0x340bc2,_0x3e07fe=this['getUsage'](_0x40df65);return _0x3e07fe['byAgent']?.[_0x5c402e]||this[_0x52b4a2(0xd4)]();}[a0_0x340bc2(0xe4)](_0x2a8858,_0x1c642e='daily'){const _0x16a5f5=a0_0x340bc2,_0x51daf8=this['getUsage'](_0x1c642e);return _0x51daf8['byModel']?.[_0x2a8858]||this[_0x16a5f5(0xd4)]();}[a0_0x340bc2(0xde)](_0x1ede0c){const _0x1c17fb=a0_0x340bc2;if(_0x1ede0c['daily']!==undefined)this['budgets'][_0x1c17fb(0xff)]=_0x1ede0c[_0x1c17fb(0xff)];if(_0x1ede0c[_0x1c17fb(0x112)]!==undefined)this[_0x1c17fb(0xcc)][_0x1c17fb(0x112)]=_0x1ede0c[_0x1c17fb(0x112)];if(_0x1ede0c['monthly']!==undefined)this[_0x1c17fb(0xcc)][_0x1c17fb(0xdc)]=_0x1ede0c[_0x1c17fb(0xdc)];this['logger']['info'](_0x1c17fb(0xe9),this['budgets']),this['saveUsageData']();}[a0_0x340bc2(0xe6)](){const _0x298ed6=a0_0x340bc2,_0x1cd8d0=new Date(),_0x3bf971=this[_0x298ed6(0xdb)](_0x298ed6(0xff),_0x1cd8d0),_0x1f9727=this['getUsage']('weekly',_0x1cd8d0),_0x4ab28b=this[_0x298ed6(0xdb)]('monthly',_0x1cd8d0);return{'daily':Math['max'](0x0,this['budgets'][_0x298ed6(0xff)]-_0x3bf971['cost']),'weekly':Math[_0x298ed6(0xe7)](0x0,this['budgets'][_0x298ed6(0x112)]-_0x1f9727[_0x298ed6(0xf2)]),'monthly':Math['max'](0x0,this['budgets'][_0x298ed6(0xdc)]-_0x4ab28b['cost'])};}[a0_0x340bc2(0xd6)](_0x38fe80=a0_0x340bc2(0xff)){const _0xdee4fa=a0_0x340bc2,_0x58884f=this[_0xdee4fa(0xdb)](_0x38fe80),_0x5c6545=this[_0xdee4fa(0xcc)][_0x38fe80];return _0x58884f['cost']<=_0x5c6545;}['getUsageTrends'](_0x5ad238=0x1e){const _0x12ce13=a0_0x340bc2,_0x1d4d53={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x224cd6=new Date();let _0x5d8d3c=0x0,_0x5f5622=0x0,_0x4492f1=0x0;const _0x20b344=new Map(),_0x4d8f0f=new Map();for(let _0x5f44c0=0x0;_0x5f44c0<_0x5ad238;_0x5f44c0++){const _0x2080a8=new Date(_0x224cd6);_0x2080a8['setDate'](_0x2080a8['getDate']()-_0x5f44c0);const _0x15ba42=this['getDayKey'](_0x2080a8),_0x37b61c=this[_0x12ce13(0x106)][_0x12ce13(0xff)]['get'](_0x15ba42);_0x37b61c?(_0x5d8d3c+=_0x37b61c['cost'],_0x5f5622+=_0x37b61c[_0x12ce13(0x115)],_0x4492f1+=_0x37b61c['requests'],_0x1d4d53[_0x12ce13(0x116)][_0x12ce13(0xeb)]({'date':_0x15ba42,'cost':_0x37b61c[_0x12ce13(0xf2)]}),_0x1d4d53['tokensByDay'][_0x12ce13(0xeb)]({'date':_0x15ba42,'tokens':_0x37b61c['tokens']}),Object[_0x12ce13(0xc5)](_0x37b61c['byAgent']||{})[_0x12ce13(0xf9)](([_0x285493,_0x4401c2])=>{const _0x4261c3=_0x12ce13;!_0x20b344[_0x4261c3(0xf1)](_0x285493)&&_0x20b344['set'](_0x285493,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x2ae5f2=_0x20b344['get'](_0x285493);_0x2ae5f2['cost']+=_0x4401c2['cost'],_0x2ae5f2[_0x4261c3(0x115)]+=_0x4401c2[_0x4261c3(0x115)],_0x2ae5f2['requests']+=_0x4401c2[_0x4261c3(0x109)];}),Object[_0x12ce13(0xc5)](_0x37b61c[_0x12ce13(0xed)]||{})['forEach'](([_0x582557,_0x210849])=>{const _0x20c06a=_0x12ce13;!_0x4d8f0f['has'](_0x582557)&&_0x4d8f0f['set'](_0x582557,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x15c6d5=_0x4d8f0f[_0x20c06a(0x117)](_0x582557);_0x15c6d5[_0x20c06a(0xf2)]+=_0x210849['cost'],_0x15c6d5[_0x20c06a(0x115)]+=_0x210849[_0x20c06a(0x115)],_0x15c6d5[_0x20c06a(0x109)]+=_0x210849[_0x20c06a(0x109)];})):(_0x1d4d53[_0x12ce13(0x116)]['unshift']({'date':_0x15ba42,'cost':0x0}),_0x1d4d53[_0x12ce13(0xee)]['unshift']({'date':_0x15ba42,'tokens':0x0}));}return _0x1d4d53[_0x12ce13(0xdf)][_0x12ce13(0xf2)]=_0x5d8d3c/_0x5ad238,_0x1d4d53[_0x12ce13(0xdf)]['tokens']=_0x5f5622/_0x5ad238,_0x1d4d53[_0x12ce13(0xdf)]['requests']=_0x4492f1/_0x5ad238,_0x1d4d53[_0x12ce13(0xe8)]=Array['from'](_0x20b344['entries']())['map'](([_0x153918,_0x2baee0])=>({'id':_0x153918,..._0x2baee0}))[_0x12ce13(0xf5)]((_0x285257,_0x3300b4)=>_0x3300b4[_0x12ce13(0xf2)]-_0x285257[_0x12ce13(0xf2)])[_0x12ce13(0x103)](0x0,0xa),_0x1d4d53['topModels']=Array['from'](_0x4d8f0f[_0x12ce13(0xc5)]())[_0x12ce13(0x105)](([_0x3bf2b6,_0x351b6d])=>({'id':_0x3bf2b6,..._0x351b6d}))[_0x12ce13(0xf5)]((_0x43c8fb,_0x16c3e3)=>_0x16c3e3[_0x12ce13(0xf2)]-_0x43c8fb[_0x12ce13(0xf2)])['slice'](0x0,0xa),_0x1d4d53;}['exportUsageData'](_0x3c5c9e=a0_0x340bc2(0xe3),_0x3cd9dc=null,_0x4b06a2=null){const _0x1c58fa=a0_0x340bc2,_0x41cc6c={'budgets':this[_0x1c58fa(0xcc)],'total':this[_0x1c58fa(0x106)][_0x1c58fa(0xd0)],'daily':{},'weekly':{},'monthly':{}},_0x223641=(_0x199f17,_0xa5ed85)=>{const _0x511e03=_0x1c58fa,_0x13ef33={};return _0x199f17[_0x511e03(0xf9)]((_0x18fe16,_0x3e18d0)=>{const _0x2629a2=_0xa5ed85(_0x3e18d0);(!_0x3cd9dc||_0x2629a2>=_0x3cd9dc)&&(!_0x4b06a2||_0x2629a2<=_0x4b06a2)&&(_0x13ef33[_0x3e18d0]=_0x18fe16);}),_0x13ef33;};_0x3cd9dc||_0x4b06a2?(_0x41cc6c['daily']=_0x223641(this[_0x1c58fa(0x106)][_0x1c58fa(0xff)],_0x587a98=>new Date(_0x587a98)),_0x41cc6c[_0x1c58fa(0x112)]=_0x223641(this['usage'][_0x1c58fa(0x112)],_0x196fb8=>new Date(_0x196fb8)),_0x41cc6c[_0x1c58fa(0xdc)]=_0x223641(this[_0x1c58fa(0x106)][_0x1c58fa(0xdc)],_0x29a616=>new Date(_0x29a616+_0x1c58fa(0xea)))):(this[_0x1c58fa(0x106)][_0x1c58fa(0xff)]['forEach']((_0x513a72,_0x100fcf)=>_0x41cc6c['daily'][_0x100fcf]=_0x513a72),this['usage']['weekly'][_0x1c58fa(0xf9)]((_0x1c11f3,_0x4a895e)=>_0x41cc6c['weekly'][_0x4a895e]=_0x1c11f3),this['usage']['monthly'][_0x1c58fa(0xf9)]((_0x3f137c,_0x715c7a)=>_0x41cc6c['monthly'][_0x715c7a]=_0x3f137c));if(_0x3c5c9e===_0x1c58fa(0xd1))return this[_0x1c58fa(0xc6)](_0x41cc6c);return JSON[_0x1c58fa(0xc2)](_0x41cc6c,null,0x2);}[a0_0x340bc2(0xca)](_0x3e852a,_0x5cadc3){const _0x514073=a0_0x340bc2;!_0x3e852a[_0x514073(0xf1)](_0x5cadc3)&&_0x3e852a[_0x514073(0x118)](_0x5cadc3,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x340bc2(0x110)](_0x3fe3c0,_0x2b7e73){const _0x27e203=a0_0x340bc2;_0x3fe3c0['cost']+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0['tokens']+=_0x2b7e73[_0x27e203(0x115)],_0x3fe3c0['requests']+=0x1,!_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73[_0x27e203(0x101)]]&&(_0x3fe3c0['byAgent'][_0x2b7e73[_0x27e203(0x101)]]=this[_0x27e203(0xd4)]()),_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73[_0x27e203(0x101)]]['cost']+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0['byAgent'][_0x2b7e73[_0x27e203(0x101)]][_0x27e203(0x115)]+=_0x2b7e73[_0x27e203(0x115)],_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73['agentId']]['requests']+=0x1,!_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']]&&(_0x3fe3c0['byModel'][_0x2b7e73['modelId']]=this['createEmptyUsage']()),_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0xf2)]+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0x115)]+=_0x2b7e73['tokens'],_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0x109)]+=0x1;}[a0_0x340bc2(0x108)](_0x41164d,_0x4d9eff,_0x29cecf){const _0x160610=a0_0x340bc2,_0x3d4e43=this['usage']['daily']['get'](_0x41164d),_0x4288c9=this['usage'][_0x160610(0x112)]['get'](_0x4d9eff),_0x93c4a5=this['usage'][_0x160610(0xdc)][_0x160610(0x117)](_0x29cecf);_0x3d4e43['cost']>this['budgets']['daily']&&this[_0x160610(0x111)](_0x160610(0xff),_0x3d4e43['cost'],this['budgets']['daily']),_0x4288c9['cost']>this[_0x160610(0xcc)][_0x160610(0x112)]&&this['sendBudgetAlert'](_0x160610(0x112),_0x4288c9[_0x160610(0xf2)],this[_0x160610(0xcc)]['weekly']),_0x93c4a5['cost']>this['budgets']['monthly']&&this['sendBudgetAlert']('monthly',_0x93c4a5['cost'],this[_0x160610(0xcc)]['monthly']),this[_0x160610(0x11a)](_0x3d4e43,_0x4288c9,_0x93c4a5);}[a0_0x340bc2(0x11a)](_0x4242c5,_0x3fefa0,_0x367ddb){const _0x100b46=a0_0x340bc2,_0x5517fb=this['alerts'][_0x100b46(0x114)];this['checkThreshold'](_0x100b46(0xff),_0x4242c5[_0x100b46(0xf2)],this['budgets'][_0x100b46(0xff)],_0x5517fb),this['checkThreshold'](_0x100b46(0x112),_0x3fefa0['cost'],this['budgets']['weekly'],_0x5517fb),this['checkThreshold'](_0x100b46(0xdc),_0x367ddb[_0x100b46(0xf2)],this['budgets']['monthly'],_0x5517fb);}['checkThreshold'](_0x2a128e,_0x44c2ef,_0x16c682,_0x59f102){const _0x38d56d=a0_0x340bc2,_0x38c621=_0x44c2ef/_0x16c682*0x64;for(const _0x2f7475 of _0x59f102){if(_0x38c621>=_0x2f7475){const _0x44aea0=_0x2a128e+'_'+_0x2f7475,_0x17536c=this[_0x38d56d(0xc9)][_0x38d56d(0xe1)]['get'](_0x44aea0),_0x46f1a6=Date[_0x38d56d(0x102)]();(!_0x17536c||_0x46f1a6-_0x17536c>0x36ee80)&&(this[_0x38d56d(0xf6)](_0x2a128e,_0x38c621,_0x2f7475,_0x44c2ef,_0x16c682),this[_0x38d56d(0xc9)][_0x38d56d(0xe1)]['set'](_0x44aea0,_0x46f1a6));break;}}}['sendBudgetAlert'](_0x576fd2,_0x1a2334,_0x372881){const _0x52ad61=a0_0x340bc2;this['logger']['warn']('Budget\x20limit\x20exceeded',{'period':_0x576fd2,'currentUsage':_0x1a2334,'budgetLimit':_0x372881,'excess':_0x1a2334-_0x372881}),typeof process!=='undefined'&&process['emit']&&process[_0x52ad61(0xfa)]('budgetAlert',{'type':'budget_exceeded','period':_0x576fd2,'currentUsage':_0x1a2334,'budgetLimit':_0x372881,'excess':_0x1a2334-_0x372881});}['sendThresholdAlert'](_0x4d671e,_0x446079,_0x374493,_0x39f282,_0x5df62d){const _0x3b751a=a0_0x340bc2;this['logger'][_0x3b751a(0xce)]('Budget\x20threshold\x20reached',{'period':_0x4d671e,'percentage':Math['round'](_0x446079),'threshold':_0x374493,'usage':_0x39f282,'budget':_0x5df62d}),typeof process!=='undefined'&&process['emit']&&process[_0x3b751a(0xfa)](_0x3b751a(0xc3),{'type':'threshold_reached','period':_0x4d671e,'percentage':Math['round'](_0x446079),'threshold':_0x374493,'usage':_0x39f282,'budget':_0x5df62d});}[a0_0x340bc2(0xfc)](_0x3c9e4e){const _0x2b37dd=a0_0x340bc2;return _0x3c9e4e[_0x2b37dd(0x104)]()[_0x2b37dd(0xfe)]('T')[0x0];}[a0_0x340bc2(0xc1)](_0x358718){const _0x138293=a0_0x340bc2,_0x7281b9=_0x358718[_0x138293(0xd2)](),_0xb19b5d=this[_0x138293(0x113)](_0x358718);return _0x7281b9+'-W'+_0xb19b5d['toString']()['padStart'](0x2,'0');}['getMonthKey'](_0x322041){const _0x1ebf67=a0_0x340bc2,_0x351130=_0x322041['getFullYear'](),_0x52dc70=_0x322041[_0x1ebf67(0xc0)]()+0x1;return _0x351130+'-'+_0x52dc70[_0x1ebf67(0xf3)]()['padStart'](0x2,'0');}[a0_0x340bc2(0x113)](_0x77c25b){const _0x588594=new Date(_0x77c25b['getFullYear'](),0x0,0x1),_0x280d80=(_0x77c25b-_0x588594)/0x5265c00;return Math['ceil']((_0x280d80+_0x588594['getDay']()+0x1)/0x7);}['convertToCSV'](_0xffd604){const _0x3c7bea=a0_0x340bc2,_0x1e4db1=[];return _0x1e4db1[_0x3c7bea(0xc4)]([_0x3c7bea(0xf8),_0x3c7bea(0x10b),_0x3c7bea(0xcf),_0x3c7bea(0xfb),'Requests',_0x3c7bea(0xef),_0x3c7bea(0xf0)]),Object[_0x3c7bea(0xc5)](_0xffd604['daily'])[_0x3c7bea(0xf9)](([_0x5368ba,_0x5ccf69])=>{const _0x3d233e=_0x3c7bea;_0x1e4db1['push'](['Daily',_0x5368ba,_0x5ccf69['cost'],_0x5ccf69['tokens'],_0x5ccf69[_0x3d233e(0x109)],'','']),Object['entries'](_0x5ccf69[_0x3d233e(0x10c)]||{})['forEach'](([_0x3cbaea,_0xfd6180])=>{const _0x4f3ff5=_0x3d233e;_0x1e4db1['push']([_0x4f3ff5(0xd3),_0x5368ba,_0xfd6180['cost'],_0xfd6180[_0x4f3ff5(0x115)],_0xfd6180[_0x4f3ff5(0x109)],_0x3cbaea,'']);});}),_0x1e4db1['map'](_0x40513f=>_0x40513f[_0x3c7bea(0xe2)](','))[_0x3c7bea(0xe2)]('\x0a');}[a0_0x340bc2(0xcb)](){const _0x16c8bc=a0_0x340bc2;try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x29efa2){this[_0x16c8bc(0xc8)]['error'](_0x16c8bc(0xf7),{'error':_0x29efa2['message']});}}[a0_0x340bc2(0xc7)](){const _0x31969f=a0_0x340bc2;try{this['logger']['debug']('Usage\x20data\x20saved');}catch(_0x13ca38){this[_0x31969f(0xc8)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x13ca38['message']});}}[a0_0x340bc2(0xcd)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
1
+ function a0_0xc992(_0x1d1ad0,_0x1fd5d4){_0x1d1ad0=_0x1d1ad0-0x1a1;const _0x3de347=a0_0x3de3();let _0xc9920c=_0x3de347[_0x1d1ad0];if(a0_0xc992['RgMthS']===undefined){var _0x3c1e05=function(_0x53f4ed){const _0x3ce7b8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xda20db='',_0x4103cc='';for(let _0x554444=0x0,_0xcfea4f,_0x320dae,_0x10ee18=0x0;_0x320dae=_0x53f4ed['charAt'](_0x10ee18++);~_0x320dae&&(_0xcfea4f=_0x554444%0x4?_0xcfea4f*0x40+_0x320dae:_0x320dae,_0x554444++%0x4)?_0xda20db+=String['fromCharCode'](0xff&_0xcfea4f>>(-0x2*_0x554444&0x6)):0x0){_0x320dae=_0x3ce7b8['indexOf'](_0x320dae);}for(let _0x3d11b2=0x0,_0x1c7f81=_0xda20db['length'];_0x3d11b2<_0x1c7f81;_0x3d11b2++){_0x4103cc+='%'+('00'+_0xda20db['charCodeAt'](_0x3d11b2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4103cc);};a0_0xc992['LKRQZT']=_0x3c1e05,a0_0xc992['nIAgiy']={},a0_0xc992['RgMthS']=!![];}const _0x255628=_0x3de347[0x0],_0x42e62d=_0x1d1ad0+_0x255628,_0xcd5aff=a0_0xc992['nIAgiy'][_0x42e62d];return!_0xcd5aff?(_0xc9920c=a0_0xc992['LKRQZT'](_0xc9920c),a0_0xc992['nIAgiy'][_0x42e62d]=_0xc9920c):_0xc9920c=_0xcd5aff,_0xc9920c;}function a0_0x3de3(){const _0x50b676=['ANnVBG','z2v0vxnHz2vuCMvUzhm','z2v0qwDLBNrvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','ltaX','mJKXnJeZmhbeC0vrzG','Bg9HzfvZywDLrgf0yq','Bw9KzwXjza','Dg9ju09tDhjPBMC','y3n2','Bwf4','ChvZAa','Dw5KzwzPBMvK','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','DgHYzxnOB2XKx3jLywnOzwq','zgfPBhK','C2XPy2u','z2v0rgf5s2v5','C2v0qNvKz2v0CW','z2v0rgf0zq','z2v0tw9UDgG','DxnHz2u','CMvXDwvZDhm','Dw5ZAgLMDa','BwfW','yNvKz2v0x2v4y2vLzgvK','Bw9UDgHSEq','zgfPBhLbDMvYywDLCW','C29YDa','y2HLy2TuAhjLC2HVBgrbBgvYDhm','y29ZDa','B3v0Chv0','DxbKyxrLvxnHz2vfBNrYEq','yNLnB2rLBa','C3rYAw5NAwz5','C2vUzej1zgDLDefSzxj0','rMfPBgvKihrVihrYywnRihvZywDL','z2v0rNvSBfLLyxi','BgfZDefSzxj0vgLTzxm','C2vUzfrOCMvZAg9SzefSzxj0','vxnHz2uGzgf0ysbZyxzLza','ywXLCNrZ','nZHwshbOB1K','zM9YrwfJAa','y2HLy2TuAhjLC2HVBgq','z2v0v2vLA051BwjLCG','Dg9Rzw5Z','z2v0uMvTywLUAw5NqNvKz2v0','C2f2zvvZywDLrgf0yq','D2vLA2X5','ndvRChjSsg0','Dg90ywXFDg9Rzw5Z','y2fSy3vSyxrLq29ZDa','nty3ndGYnhb4zgHoCW','AM9PBG','zNjVBq','yNLbz2vUDa','Dg90ywW','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','Aw5PDgLHBgL6zvvZywDLrw50CNK','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','y2vPBa','Bg9Nz2vY','q29ZDa','D2fYBG','C2v0','zxjYB3i','nZa3sufXyufT','odu3mZr3ExviDvO','y3jLyxrLrw1WDhLvC2fNzq','mta4mJHLvfDwA0m','yNvKz2v0CW','C2v0rgf0zq','yNvKz2v0qwXLCNq','AgfZ','Dg9Rzw5ZqNLeyxK','ywDLBNrjza','C2v0DxbqzxjPB2rPy1nHDMu','mti1mtC4mg5pvKrQAa','nti2mtzkB09eANK','zw50CMLLCW','zw1PDa','rgf0zq','uMvXDwvZDhm','DhjHy2TvC2fNzq','z2v0vxnHz2u','nteWmJHHt21NAMi','z2v0tw9UDgHlzxK','Aw5WDxq','vxnHz2uGDhjHy2TLza','z2v0','tu9oveHmwq'];a0_0x3de3=function(){return _0x50b676;};return a0_0x3de3();}const a0_0x1580b4=a0_0xc992;(function(_0x55b4e5,_0x186ee3){const _0x1ed3a8=a0_0xc992,_0x4259ed=_0x55b4e5();while(!![]){try{const _0x48b93a=-parseInt(_0x1ed3a8(0x1ab))/0x1+parseInt(_0x1ed3a8(0x1a3))/0x2+parseInt(_0x1ed3a8(0x1db))/0x3*(-parseInt(_0x1ed3a8(0x1f8))/0x4)+parseInt(_0x1ed3a8(0x1e3))/0x5*(parseInt(_0x1ed3a8(0x1f6))/0x6)+parseInt(_0x1ed3a8(0x1f5))/0x7*(parseInt(_0x1ed3a8(0x1a4))/0x8)+-parseInt(_0x1ed3a8(0x1e6))/0x9+-parseInt(_0x1ed3a8(0x1b6))/0xa;if(_0x48b93a===_0x186ee3)break;else _0x4259ed['push'](_0x4259ed['shift']());}catch(_0x3a5b92){_0x4259ed['push'](_0x4259ed['shift']());}}}(a0_0x3de3,0x5b9a9));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0xda20db,_0x4103cc){const _0x5ca772=a0_0xc992;this['config']=_0xda20db||{},this[_0x5ca772(0x1f0)]=_0x4103cc,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x5ca772(0x1f9)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x5ca772(0x1b0)]},this[_0x5ca772(0x1da)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this['setupPeriodicSave']();}[a0_0x1580b4(0x1a9)](_0x554444,_0xcfea4f,_0x320dae){const _0x1051f6=a0_0x1580b4;try{const _0x10ee18=this[_0x1051f6(0x1e5)](_0xcfea4f,_0x320dae),_0x3d11b2=new Date(),_0x1c7f81=this[_0x1051f6(0x1c2)](_0x3d11b2),_0x52fa3a=this['getWeekKey'](_0x3d11b2),_0x254dbd=this[_0x1051f6(0x1ac)](_0x3d11b2);this['initializeUsageEntry'](this['usage'][_0x1051f6(0x1c0)],_0x1c7f81),this['initializeUsageEntry'](this[_0x1051f6(0x1c6)][_0x1051f6(0x1e2)],_0x52fa3a),this[_0x1051f6(0x1ed)](this[_0x1051f6(0x1c6)][_0x1051f6(0x1cb)],_0x254dbd);const _0x6b6c99={'agentId':_0x554444,'modelId':_0xcfea4f,'tokens':_0x320dae[_0x1051f6(0x1e4)],'cost':_0x10ee18,'timestamp':_0x3d11b2[_0x1051f6(0x1b9)]()};return this[_0x1051f6(0x1d1)](this['usage']['daily']['get'](_0x1c7f81),_0x6b6c99),this[_0x1051f6(0x1d1)](this['usage'][_0x1051f6(0x1e2)][_0x1051f6(0x1af)](_0x52fa3a),_0x6b6c99),this['updateUsageEntry'](this[_0x1051f6(0x1c6)]['monthly']['get'](_0x254dbd),_0x6b6c99),this['usage'][_0x1051f6(0x1ea)][_0x1051f6(0x1df)]+=_0x320dae['total_tokens'],this['usage']['total']['cost']+=_0x10ee18,this[_0x1051f6(0x1c6)][_0x1051f6(0x1ea)][_0x1051f6(0x1c7)]+=0x1,this['checkBudgetLimits'](_0x1c7f81,_0x52fa3a,_0x254dbd),this[_0x1051f6(0x1f0)]['info'](_0x1051f6(0x1ae),{'agentId':_0x554444,'modelId':_0xcfea4f,'tokens':_0x320dae[_0x1051f6(0x1e4)],'cost':_0x10ee18,'totalCost':this['usage']['total']['cost']}),{'cost':_0x10ee18,'totalCost':this['usage']['total'][_0x1051f6(0x1cf)],'totalTokens':this[_0x1051f6(0x1c6)]['total']['tokens'],'dailyUsage':this['usage'][_0x1051f6(0x1c0)]['get'](_0x1c7f81),'budgetRemaining':this[_0x1051f6(0x1e0)]()};}catch(_0x3b3d42){this['logger']['error'](_0x1051f6(0x1d5),{'error':_0x3b3d42['message'],'agentId':_0x554444,'modelId':_0xcfea4f});throw _0x3b3d42;}}['calculateCost'](_0x22bedb,_0x48a97f){const _0x50481d=a0_0x1580b4,_0xdd8779=COST_PER_TOKEN[_0x22bedb];if(!_0xdd8779)return this['logger'][_0x50481d(0x1f2)](_0x50481d(0x1be),{'modelId':_0x22bedb}),0x0;const _0x35a55d=(_0x48a97f['prompt_tokens']||0x0)*_0xdd8779[_0x50481d(0x1ad)],_0x1a3aec=(_0x48a97f['completion_tokens']||0x0)*_0xdd8779[_0x50481d(0x1d0)];return _0x35a55d+_0x1a3aec;}[a0_0x1580b4(0x1aa)](_0x6d1f10=a0_0x1580b4(0x1c0),_0x4beb30=new Date()){const _0x3f60f4=a0_0x1580b4;switch(_0x6d1f10){case'daily':return this['usage']['daily']['get'](this[_0x3f60f4(0x1c2)](_0x4beb30))||this[_0x3f60f4(0x1f7)]();case'weekly':return this['usage'][_0x3f60f4(0x1e2)][_0x3f60f4(0x1af)](this['getWeekKey'](_0x4beb30))||this['createEmptyUsage']();case _0x3f60f4(0x1cb):return this[_0x3f60f4(0x1c6)]['monthly']['get'](this[_0x3f60f4(0x1ac)](_0x4beb30))||this[_0x3f60f4(0x1f7)]();case'total':return{...this[_0x3f60f4(0x1c6)]['total']};default:throw new Error(_0x3f60f4(0x1b4)+_0x6d1f10);}}[a0_0x1580b4(0x1b3)](_0x3fd911,_0x646a2b=a0_0x1580b4(0x1c0)){const _0x57fe94=a0_0x1580b4,_0x364b7b=this['getUsage'](_0x646a2b);return _0x364b7b['byAgent']?.[_0x3fd911]||this[_0x57fe94(0x1f7)]();}['getModelUsage'](_0x1a120a,_0x53b572='daily'){const _0x4c9248=this['getUsage'](_0x53b572);return _0x4c9248['byModel']?.[_0x1a120a]||this['createEmptyUsage']();}[a0_0x1580b4(0x1c3)](_0x50d6c6){const _0x88a729=a0_0x1580b4;if(_0x50d6c6['daily']!==undefined)this['budgets'][_0x88a729(0x1c0)]=_0x50d6c6['daily'];if(_0x50d6c6['weekly']!==undefined)this['budgets']['weekly']=_0x50d6c6['weekly'];if(_0x50d6c6[_0x88a729(0x1cb)]!==undefined)this['budgets'][_0x88a729(0x1cb)]=_0x50d6c6['monthly'];this['logger']['info']('Budget\x20limits\x20updated',this[_0x88a729(0x1f9)]),this[_0x88a729(0x1e1)]();}[a0_0x1580b4(0x1e0)](){const _0x5ee749=a0_0x1580b4,_0x2629c9=new Date(),_0x185b27=this['getUsage'](_0x5ee749(0x1c0),_0x2629c9),_0x16f0a5=this[_0x5ee749(0x1aa)]('weekly',_0x2629c9),_0x111d0a=this[_0x5ee749(0x1aa)](_0x5ee749(0x1cb),_0x2629c9);return{'daily':Math[_0x5ee749(0x1bb)](0x0,this[_0x5ee749(0x1f9)][_0x5ee749(0x1c0)]-_0x185b27[_0x5ee749(0x1cf)]),'weekly':Math[_0x5ee749(0x1bb)](0x0,this['budgets'][_0x5ee749(0x1e2)]-_0x16f0a5[_0x5ee749(0x1cf)]),'monthly':Math[_0x5ee749(0x1bb)](0x0,this[_0x5ee749(0x1f9)][_0x5ee749(0x1cb)]-_0x111d0a['cost'])};}['isWithinBudget'](_0x4b0df3=a0_0x1580b4(0x1c0)){const _0x4ba9d7=a0_0x1580b4,_0xd14a12=this[_0x4ba9d7(0x1aa)](_0x4b0df3),_0x20c2a7=this['budgets'][_0x4b0df3];return _0xd14a12['cost']<=_0x20c2a7;}[a0_0x1580b4(0x1b2)](_0x55627d=0x1e){const _0x594e33=a0_0x1580b4,_0x5502df={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x491ffe=new Date();let _0x39a4bb=0x0,_0x163a15=0x0,_0xf859c8=0x0;const _0x2ca67e=new Map(),_0x243db3=new Map();for(let _0x37fe6c=0x0;_0x37fe6c<_0x55627d;_0x37fe6c++){const _0xb12d80=new Date(_0x491ffe);_0xb12d80[_0x594e33(0x1fa)](_0xb12d80[_0x594e33(0x1c4)]()-_0x37fe6c);const _0x42a87b=this['getDayKey'](_0xb12d80),_0x17ddf5=this[_0x594e33(0x1c6)][_0x594e33(0x1c0)][_0x594e33(0x1af)](_0x42a87b);_0x17ddf5?(_0x39a4bb+=_0x17ddf5['cost'],_0x163a15+=_0x17ddf5['tokens'],_0xf859c8+=_0x17ddf5[_0x594e33(0x1c7)],_0x5502df['costByDay'][_0x594e33(0x1c8)]({'date':_0x42a87b,'cost':_0x17ddf5[_0x594e33(0x1cf)]}),_0x5502df[_0x594e33(0x1fd)]['unshift']({'date':_0x42a87b,'tokens':_0x17ddf5['tokens']}),Object['entries'](_0x17ddf5[_0x594e33(0x1e9)]||{})['forEach'](([_0x17fc1d,_0x405f5e])=>{const _0xb7bad4=_0x594e33;!_0x2ca67e[_0xb7bad4(0x1fc)](_0x17fc1d)&&_0x2ca67e['set'](_0x17fc1d,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x56b897=_0x2ca67e[_0xb7bad4(0x1af)](_0x17fc1d);_0x56b897['cost']+=_0x405f5e[_0xb7bad4(0x1cf)],_0x56b897[_0xb7bad4(0x1df)]+=_0x405f5e[_0xb7bad4(0x1df)],_0x56b897['requests']+=_0x405f5e[_0xb7bad4(0x1c7)];}),Object[_0x594e33(0x1a5)](_0x17ddf5[_0x594e33(0x1d2)]||{})[_0x594e33(0x1dc)](([_0x290514,_0x3c97f3])=>{const _0x12f912=_0x594e33;!_0x243db3['has'](_0x290514)&&_0x243db3[_0x12f912(0x1f3)](_0x290514,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x19e51d=_0x243db3['get'](_0x290514);_0x19e51d[_0x12f912(0x1cf)]+=_0x3c97f3[_0x12f912(0x1cf)],_0x19e51d[_0x12f912(0x1df)]+=_0x3c97f3[_0x12f912(0x1df)],_0x19e51d[_0x12f912(0x1c7)]+=_0x3c97f3['requests'];})):(_0x5502df['costByDay'][_0x594e33(0x1c8)]({'date':_0x42a87b,'cost':0x0}),_0x5502df[_0x594e33(0x1fd)]['unshift']({'date':_0x42a87b,'tokens':0x0}));}return _0x5502df['dailyAverages'][_0x594e33(0x1cf)]=_0x39a4bb/_0x55627d,_0x5502df[_0x594e33(0x1cc)][_0x594e33(0x1df)]=_0x163a15/_0x55627d,_0x5502df['dailyAverages'][_0x594e33(0x1c7)]=_0xf859c8/_0x55627d,_0x5502df['topAgents']=Array[_0x594e33(0x1e8)](_0x2ca67e['entries']())[_0x594e33(0x1c9)](([_0x42d50f,_0x20e4c3])=>({'id':_0x42d50f,..._0x20e4c3}))['sort']((_0x4eb0be,_0xb841b7)=>_0xb841b7[_0x594e33(0x1cf)]-_0x4eb0be['cost'])[_0x594e33(0x1c1)](0x0,0xa),_0x5502df['topModels']=Array['from'](_0x243db3['entries']())['map'](([_0x10102b,_0x1bdb90])=>({'id':_0x10102b,..._0x1bdb90}))[_0x594e33(0x1cd)]((_0x3815d2,_0x3b7d88)=>_0x3b7d88[_0x594e33(0x1cf)]-_0x3815d2['cost'])[_0x594e33(0x1c1)](0x0,0xa),_0x5502df;}['exportUsageData'](_0x56ef5c=a0_0x1580b4(0x1b1),_0x21b037=null,_0x199cfe=null){const _0x8ac120=a0_0x1580b4,_0x451f47={'budgets':this[_0x8ac120(0x1f9)],'total':this[_0x8ac120(0x1c6)][_0x8ac120(0x1ea)],'daily':{},'weekly':{},'monthly':{}},_0x1b1b7e=(_0x570ade,_0x577007)=>{const _0x10c754=_0x8ac120,_0x38d62b={};return _0x570ade[_0x10c754(0x1dc)]((_0x27bf67,_0x344353)=>{const _0x52adcb=_0x577007(_0x344353);(!_0x21b037||_0x52adcb>=_0x21b037)&&(!_0x199cfe||_0x52adcb<=_0x199cfe)&&(_0x38d62b[_0x344353]=_0x27bf67);}),_0x38d62b;};_0x21b037||_0x199cfe?(_0x451f47[_0x8ac120(0x1c0)]=_0x1b1b7e(this[_0x8ac120(0x1c6)]['daily'],_0x18f9ae=>new Date(_0x18f9ae)),_0x451f47[_0x8ac120(0x1e2)]=_0x1b1b7e(this['usage']['weekly'],_0x56d982=>new Date(_0x56d982)),_0x451f47['monthly']=_0x1b1b7e(this['usage']['monthly'],_0x334c0d=>new Date(_0x334c0d+_0x8ac120(0x1b5)))):(this['usage'][_0x8ac120(0x1c0)][_0x8ac120(0x1dc)]((_0xd1a752,_0x2a6031)=>_0x451f47['daily'][_0x2a6031]=_0xd1a752),this[_0x8ac120(0x1c6)][_0x8ac120(0x1e2)][_0x8ac120(0x1dc)]((_0x2b1c34,_0x120ced)=>_0x451f47['weekly'][_0x120ced]=_0x2b1c34),this['usage'][_0x8ac120(0x1cb)][_0x8ac120(0x1dc)]((_0x5c7ec2,_0x3fa1ed)=>_0x451f47['monthly'][_0x3fa1ed]=_0x5c7ec2));if(_0x56ef5c===_0x8ac120(0x1ba))return this['convertToCSV'](_0x451f47);return JSON[_0x8ac120(0x1d3)](_0x451f47,null,0x2);}[a0_0x1580b4(0x1ed)](_0x322763,_0x71860){const _0x5bee08=a0_0x1580b4;!_0x322763['has'](_0x71860)&&_0x322763[_0x5bee08(0x1f3)](_0x71860,this['createEmptyUsage']());}[a0_0x1580b4(0x1f7)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x1580b4(0x1d1)](_0x160125,_0x2bd6bf){const _0x12e4d4=a0_0x1580b4;_0x160125['cost']+=_0x2bd6bf[_0x12e4d4(0x1cf)],_0x160125['tokens']+=_0x2bd6bf['tokens'],_0x160125[_0x12e4d4(0x1c7)]+=0x1,!_0x160125[_0x12e4d4(0x1e9)][_0x2bd6bf['agentId']]&&(_0x160125['byAgent'][_0x2bd6bf['agentId']]=this[_0x12e4d4(0x1f7)]()),_0x160125[_0x12e4d4(0x1e9)][_0x2bd6bf[_0x12e4d4(0x1a1)]][_0x12e4d4(0x1cf)]+=_0x2bd6bf['cost'],_0x160125['byAgent'][_0x2bd6bf[_0x12e4d4(0x1a1)]]['tokens']+=_0x2bd6bf[_0x12e4d4(0x1df)],_0x160125['byAgent'][_0x2bd6bf[_0x12e4d4(0x1a1)]][_0x12e4d4(0x1c7)]+=0x1,!_0x160125[_0x12e4d4(0x1d2)][_0x2bd6bf[_0x12e4d4(0x1b8)]]&&(_0x160125[_0x12e4d4(0x1d2)][_0x2bd6bf[_0x12e4d4(0x1b8)]]=this['createEmptyUsage']()),_0x160125['byModel'][_0x2bd6bf['modelId']]['cost']+=_0x2bd6bf['cost'],_0x160125[_0x12e4d4(0x1d2)][_0x2bd6bf[_0x12e4d4(0x1b8)]]['tokens']+=_0x2bd6bf['tokens'],_0x160125['byModel'][_0x2bd6bf[_0x12e4d4(0x1b8)]]['requests']+=0x1;}['checkBudgetLimits'](_0x1a0f1c,_0x1971b7,_0x1459b5){const _0x29b0e0=a0_0x1580b4,_0x45c20c=this[_0x29b0e0(0x1c6)][_0x29b0e0(0x1c0)][_0x29b0e0(0x1af)](_0x1a0f1c),_0x33de9c=this[_0x29b0e0(0x1c6)]['weekly']['get'](_0x1971b7),_0x24cbe6=this['usage']['monthly'][_0x29b0e0(0x1af)](_0x1459b5);_0x45c20c[_0x29b0e0(0x1cf)]>this[_0x29b0e0(0x1f9)][_0x29b0e0(0x1c0)]&&this['sendBudgetAlert'](_0x29b0e0(0x1c0),_0x45c20c[_0x29b0e0(0x1cf)],this['budgets']['daily']),_0x33de9c[_0x29b0e0(0x1cf)]>this['budgets']['weekly']&&this['sendBudgetAlert']('weekly',_0x33de9c[_0x29b0e0(0x1cf)],this[_0x29b0e0(0x1f9)]['weekly']),_0x24cbe6[_0x29b0e0(0x1cf)]>this['budgets'][_0x29b0e0(0x1cb)]&&this[_0x29b0e0(0x1d4)](_0x29b0e0(0x1cb),_0x24cbe6['cost'],this[_0x29b0e0(0x1f9)]['monthly']),this[_0x29b0e0(0x1ce)](_0x45c20c,_0x33de9c,_0x24cbe6);}[a0_0x1580b4(0x1ce)](_0x3138b0,_0x1e097b,_0xb41969){const _0x21aca9=a0_0x1580b4,_0x273253=this[_0x21aca9(0x1da)]['thresholds'];this['checkThreshold']('daily',_0x3138b0[_0x21aca9(0x1cf)],this[_0x21aca9(0x1f9)]['daily'],_0x273253),this[_0x21aca9(0x1dd)](_0x21aca9(0x1e2),_0x1e097b['cost'],this['budgets'][_0x21aca9(0x1e2)],_0x273253),this[_0x21aca9(0x1dd)]('monthly',_0xb41969[_0x21aca9(0x1cf)],this['budgets'][_0x21aca9(0x1cb)],_0x273253);}['checkThreshold'](_0xd80fda,_0x523c98,_0x453ae7,_0x2f786a){const _0x50ca0e=a0_0x1580b4,_0x46a533=_0x523c98/_0x453ae7*0x64;for(const _0x29076a of _0x2f786a){if(_0x46a533>=_0x29076a){const _0x52a136=_0xd80fda+'_'+_0x29076a,_0x218a24=this['alerts'][_0x50ca0e(0x1d7)]['get'](_0x52a136),_0x2bf148=Date['now']();(!_0x218a24||_0x2bf148-_0x218a24>0x36ee80)&&(this[_0x50ca0e(0x1d8)](_0xd80fda,_0x46a533,_0x29076a,_0x523c98,_0x453ae7),this[_0x50ca0e(0x1da)][_0x50ca0e(0x1d7)]['set'](_0x52a136,_0x2bf148));break;}}}['sendBudgetAlert'](_0x52b552,_0xd8b4dc,_0x2984da){const _0x4be83c=a0_0x1580b4;this['logger']['warn']('Budget\x20limit\x20exceeded',{'period':_0x52b552,'currentUsage':_0xd8b4dc,'budgetLimit':_0x2984da,'excess':_0xd8b4dc-_0x2984da}),typeof process!==_0x4be83c(0x1bd)&&process['emit']&&process[_0x4be83c(0x1a6)]('budgetAlert',{'type':_0x4be83c(0x1ca),'period':_0x52b552,'currentUsage':_0xd8b4dc,'budgetLimit':_0x2984da,'excess':_0xd8b4dc-_0x2984da});}['sendThresholdAlert'](_0x2eadcb,_0x2bc21b,_0x314558,_0x20e8e2,_0x3365d6){const _0x37018c=a0_0x1580b4;this[_0x37018c(0x1f0)]['warn'](_0x37018c(0x1eb),{'period':_0x2eadcb,'percentage':Math['round'](_0x2bc21b),'threshold':_0x314558,'usage':_0x20e8e2,'budget':_0x3365d6}),typeof process!==_0x37018c(0x1bd)&&process['emit']&&process['emit'](_0x37018c(0x1fb),{'type':_0x37018c(0x1bf),'period':_0x2eadcb,'percentage':Math['round'](_0x2bc21b),'threshold':_0x314558,'usage':_0x20e8e2,'budget':_0x3365d6});}['getDayKey'](_0x2dcbf1){return _0x2dcbf1['toISOString']()['split']('T')[0x0];}['getWeekKey'](_0x2e7947){const _0x393633=a0_0x1580b4,_0x4fcc60=_0x2e7947[_0x393633(0x1d6)](),_0xe08e3e=this['getWeekNumber'](_0x2e7947);return _0x4fcc60+'-W'+_0xe08e3e['toString']()['padStart'](0x2,'0');}['getMonthKey'](_0xddf3c1){const _0x48313a=a0_0x1580b4,_0x2acf6a=_0xddf3c1['getFullYear'](),_0x5746b3=_0xddf3c1[_0x48313a(0x1c5)]()+0x1;return _0x2acf6a+'-'+_0x5746b3['toString']()['padStart'](0x2,'0');}[a0_0x1580b4(0x1de)](_0x1bf3b3){const _0x7b4138=a0_0x1580b4,_0x816762=new Date(_0x1bf3b3[_0x7b4138(0x1d6)](),0x0,0x1),_0x2904f2=(_0x1bf3b3-_0x816762)/0x5265c00;return Math[_0x7b4138(0x1ef)]((_0x2904f2+_0x816762['getDay']()+0x1)/0x7);}['convertToCSV'](_0x5930f9){const _0x553e2b=a0_0x1580b4,_0x1510a2=[];return _0x1510a2[_0x553e2b(0x1bc)](['Period',_0x553e2b(0x1a7),_0x553e2b(0x1f1),'Tokens',_0x553e2b(0x1a8),'Agent','Model']),Object['entries'](_0x5930f9['daily'])['forEach'](([_0x40e311,_0xc5c9cb])=>{const _0x37f595=_0x553e2b;_0x1510a2['push'](['Daily',_0x40e311,_0xc5c9cb[_0x37f595(0x1cf)],_0xc5c9cb['tokens'],_0xc5c9cb[_0x37f595(0x1c7)],'','']),Object[_0x37f595(0x1a5)](_0xc5c9cb[_0x37f595(0x1e9)]||{})[_0x37f595(0x1dc)](([_0x438906,_0x4cbf4d])=>{const _0x3f907e=_0x37f595;_0x1510a2['push'](['Daily',_0x40e311,_0x4cbf4d[_0x3f907e(0x1cf)],_0x4cbf4d['tokens'],_0x4cbf4d['requests'],_0x438906,'']);});}),_0x1510a2[_0x553e2b(0x1c9)](_0x3516dd=>_0x3516dd[_0x553e2b(0x1e7)](','))['join']('\x0a');}[a0_0x1580b4(0x1b7)](){const _0x44b26b=a0_0x1580b4;try{this['logger']['info'](_0x44b26b(0x1ee));}catch(_0x5caf32){this[_0x44b26b(0x1f0)][_0x44b26b(0x1f4)](_0x44b26b(0x1ec),{'error':_0x5caf32['message']});}}['saveUsageData'](){const _0x24a14e=a0_0x1580b4;try{this[_0x24a14e(0x1f0)]['debug'](_0x24a14e(0x1d9));}catch(_0x1db88c){this[_0x24a14e(0x1f0)][_0x24a14e(0x1f4)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x1db88c['message']});}}[a0_0x1580b4(0x1a2)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
@@ -1 +1 @@
1
- const a0_0x5e8d55=a0_0x1a5c;(function(_0xcd86a8,_0x44d45f){const _0x25c24f=a0_0x1a5c,_0x589f79=_0xcd86a8();while(!![]){try{const _0xa7a996=-parseInt(_0x25c24f(0x1b9))/0x1*(parseInt(_0x25c24f(0x1a2))/0x2)+-parseInt(_0x25c24f(0x1ad))/0x3+parseInt(_0x25c24f(0x1c7))/0x4+parseInt(_0x25c24f(0x1a1))/0x5*(parseInt(_0x25c24f(0x1b0))/0x6)+-parseInt(_0x25c24f(0x1c5))/0x7+-parseInt(_0x25c24f(0x1c1))/0x8+-parseInt(_0x25c24f(0x1c0))/0x9*(-parseInt(_0x25c24f(0x1ba))/0xa);if(_0xa7a996===_0x44d45f)break;else _0x589f79['push'](_0x589f79['shift']());}catch(_0x77e9a6){_0x589f79['push'](_0x589f79['shift']());}}}(a0_0x1760,0x5f879));import a0_0x4f751d from'./fileAttachmentService.js';function a0_0x1a5c(_0x46709d,_0x40aeea){_0x46709d=_0x46709d-0x1a0;const _0x176071=a0_0x1760();let _0x1a5c35=_0x176071[_0x46709d];if(a0_0x1a5c['QFDBfp']===undefined){var _0x590904=function(_0x3e01a5){const _0x233005='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f751d='',_0xcfa573='';for(let _0x173ad2=0x0,_0x496d55,_0x327178,_0x582fb7=0x0;_0x327178=_0x3e01a5['charAt'](_0x582fb7++);~_0x327178&&(_0x496d55=_0x173ad2%0x4?_0x496d55*0x40+_0x327178:_0x327178,_0x173ad2++%0x4)?_0x4f751d+=String['fromCharCode'](0xff&_0x496d55>>(-0x2*_0x173ad2&0x6)):0x0){_0x327178=_0x233005['indexOf'](_0x327178);}for(let _0x57c29f=0x0,_0x3707ee=_0x4f751d['length'];_0x57c29f<_0x3707ee;_0x57c29f++){_0xcfa573+='%'+('00'+_0x4f751d['charCodeAt'](_0x57c29f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xcfa573);};a0_0x1a5c['JQXZOg']=_0x590904,a0_0x1a5c['bZriwO']={},a0_0x1a5c['QFDBfp']=!![];}const _0x5f4315=_0x176071[0x0],_0x1cbc79=_0x46709d+_0x5f4315,_0x2e5e45=a0_0x1a5c['bZriwO'][_0x1cbc79];return!_0x2e5e45?(_0x1a5c35=a0_0x1a5c['JQXZOg'](_0x1a5c35),a0_0x1a5c['bZriwO'][_0x1cbc79]=_0x1a5c35):_0x1a5c35=_0x2e5e45,_0x1a5c35;}function a0_0x1760(){const _0x21b180=['cJXHDhrHy2HLzc1MAwXLCZ4k','zM9YBwf0ugrMrMLSzq','BwvZC2fNzq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','zxn0Aw1HDgvKvg9Rzw5Z','ow9Ks0XquW','ndm1mti0oer4tMDcEa','BgvUz3rO','ica8zMLSzsbUyw1Lpsi','s0iIig1Vzgu9iMnVBNrLBNqIpGO','mJi5nJqYwxPzzfHZ','iIaVpG','mtu0nJe1mNrSAKTZtW','iIbZAxPLpsi','mcbcExrLCW','iIb0ExbLpsi','zM9YBwf0vgv4DezPBgu','jNf1B3q7','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','Dg9Rzw5fC3rPBwf0zq','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','y29UzMLN','zM9YBwf0qNL0zxm','CMvWBgfJzq','mZCWnwTYyKrkwq','ote0mtHLAhDtBgO','yxr0ywnOBwvUDfnLCNzPy2u','zxjYB3i','CMvMzxjLBMnL','CgrM','zM9YBwf0uMvMzxjLBMnLrMLSzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','Dg9gAxHLza','zxnJyxbLwg1S','Bw9Kzq','Bg9Nz2vY','mtC4odq4mfzTtxPMwq','zMLSDgvY','cIaGpc9MAwXLpG','mtuZmhjItxHvAq','C2L6zq','iIbTB2rPzMLLzd0I','ChvZAa','Cg93','y29UDgvUDa','Aw1Hz2u','zM9YBwf0sw1Hz2vgAwXL','C3bSAxq','nuDPsfnktW','mtiXnZiXmZbAt0j4Dgu'];a0_0x1760=function(){return _0x21b180;};return a0_0x1760();}class ContextInjectionService{constructor(_0xcfa573={},_0x173ad2=null){const _0x1575b4=a0_0x1a5c;this[_0x1575b4(0x1d0)]=_0xcfa573,this[_0x1575b4(0x1ac)]=_0x173ad2,this[_0x1575b4(0x1a3)]=new a0_0x4f751d(_0xcfa573,_0x173ad2);}async['initialize'](){await this['attachmentService']['initialize']();}async['buildDynamicContext'](_0x496d55){const _0xac3fbe=a0_0x1a5c;try{const _0x327178=await this['attachmentService'][_0xac3fbe(0x1be)](_0x496d55);if(_0x327178[_0xac3fbe(0x1c2)]===0x0)return'';const _0x582fb7=_0x327178['filter'](_0x1f2a0e=>_0x1f2a0e['mode']==='content'),_0x57c29f=_0x327178['filter'](_0x75ed48=>_0x75ed48[_0xac3fbe(0x1ab)]==='reference');let _0x3707ee='';if(_0x582fb7['length']>0x0){_0x3707ee+=_0xac3fbe(0x1bb);for(const _0x2fe8eb of _0x582fb7){const _0x1b64a4=await this[_0xac3fbe(0x1a3)]['getAttachmentContent'](_0x2fe8eb['fileId']);if(_0x1b64a4){const _0x313235=this['formatContentFile'](_0x2fe8eb,_0x1b64a4);_0x3707ee+=_0x313235+'\x0a';}}_0x3707ee+='</attached-files>\x0a';}if(_0x57c29f[_0xac3fbe(0x1c2)]>0x0){_0x3707ee+='\x0a<file-references>\x0a';for(const _0x19c409 of _0x57c29f){const _0x585f6c=this[_0xac3fbe(0x1a7)](_0x19c409);_0x3707ee+=_0x585f6c+'\x0a';}_0x3707ee+=_0xac3fbe(0x1a8),_0x3707ee+=_0xac3fbe(0x1cd);}return _0x3707ee;}catch(_0x2b17bf){return this[_0xac3fbe(0x1ac)]?.[_0xac3fbe(0x1a4)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x496d55,'error':_0x2b17bf['message']}),'';}}['formatContentFile'](_0x377ea2,_0x28f0e8){const _0x48cfec=a0_0x1a5c,{fileName:_0x29c2ca,fileType:_0x2f364a,size:_0x497dd4,contentType:_0x270d47}=_0x377ea2,_0x1c2440=(_0x497dd4/0x400)['toFixed'](0x2);if(_0x270d47==='text')return this['formatTextFile'](_0x377ea2,_0x28f0e8);else{if(_0x270d47===_0x48cfec(0x1b6))return this[_0x48cfec(0x1b7)](_0x377ea2,_0x28f0e8);else{if(_0x270d47===_0x48cfec(0x1a6))return this[_0x48cfec(0x1bc)](_0x377ea2,_0x28f0e8);}}return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x29c2ca)+'\x22\x20type=\x22'+_0x2f364a+_0x48cfec(0x1c8)+_0x1c2440+_0x48cfec(0x1c4)+this[_0x48cfec(0x1aa)](_0x28f0e8)+_0x48cfec(0x1af);}[a0_0x5e8d55(0x1cb)](_0x5434f7,_0x3fcb7c){const _0x1e7e50=a0_0x5e8d55,{fileName:_0x57ad9d,fileType:_0x4aece7,size:_0x545a8e}=_0x5434f7,_0x59f338=(_0x545a8e/0x400)[_0x1e7e50(0x1a9)](0x2);return _0x1e7e50(0x1c3)+this['escapeXml'](_0x57ad9d)+_0x1e7e50(0x1ca)+_0x4aece7+'\x22\x20size=\x22'+_0x59f338+_0x1e7e50(0x1c4)+this[_0x1e7e50(0x1aa)](_0x3fcb7c)+_0x1e7e50(0x1af);}['formatImageFile'](_0x42ba01,_0xbff2b1){const _0x5ef4ec=a0_0x5e8d55,{fileName:_0xc81dbc,fileType:_0x2e9802,size:_0x334003}=_0x42ba01,_0x468eac=(_0x334003/0x400)[_0x5ef4ec(0x1a9)](0x2);return _0x5ef4ec(0x1c3)+this[_0x5ef4ec(0x1aa)](_0xc81dbc)+'\x22\x20type=\x22'+_0x2e9802+'\x22\x20size=\x22'+_0x468eac+_0x5ef4ec(0x1c4)+_0xbff2b1+_0x5ef4ec(0x1af);}['formatPdfFile'](_0x57250d,_0x58f5d4){const _0x42125a=a0_0x5e8d55,{fileName:_0x5e0b2e,fileType:_0xae65e1,size:_0x2a0e5d}=_0x57250d,_0x4152df=(_0x2a0e5d/0x400)[_0x42125a(0x1a9)](0x2);return _0x42125a(0x1c3)+this[_0x42125a(0x1aa)](_0x5e0b2e)+_0x42125a(0x1ca)+_0xae65e1+_0x42125a(0x1c8)+_0x4152df+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x42125a(0x1aa)](_0x58f5d4)+_0x42125a(0x1af);}[a0_0x5e8d55(0x1a7)](_0x4a0d2a){const _0x13a1c9=a0_0x5e8d55,{fileName:_0xd8a1f5,originalPath:_0x5e86e4,size:_0x1ff061,fileType:_0x51c578,lastModified:_0x5f5180}=_0x4a0d2a,_0x383479=this['formatBytes'](_0x1ff061),_0x2d935d=new Date(_0x5f5180)['toISOString']()[_0x13a1c9(0x1b8)]('T')[0x0];return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0xd8a1f5)+'\x22\x20path=\x22'+this['escapeXml'](_0x5e86e4)+_0x13a1c9(0x1c8)+_0x383479+'\x22\x20type=\x22'+_0x51c578+_0x13a1c9(0x1b2)+_0x2d935d+_0x13a1c9(0x1c6);}['escapeXml'](_0x276cdd){const _0x1018f8=a0_0x5e8d55;if(!_0x276cdd)return'';return _0x276cdd[_0x1018f8(0x1a0)](/&/g,'&amp;')[_0x1018f8(0x1a0)](/</g,'&lt;')['replace'](/>/g,'&gt;')[_0x1018f8(0x1a0)](/"/g,_0x1018f8(0x1cc))[_0x1018f8(0x1a0)](/'/g,'&apos;');}[a0_0x5e8d55(0x1d1)](_0x310ee5){const _0x471fb5=a0_0x5e8d55;if(_0x310ee5===0x0)return _0x471fb5(0x1c9);const _0x21aa7e=0x400,_0x1f06e4=['Bytes','KB','MB','GB'],_0x44168b=Math['floor'](Math['log'](_0x310ee5)/Math['log'](_0x21aa7e));return parseFloat((_0x310ee5/Math[_0x471fb5(0x1b4)](_0x21aa7e,_0x44168b))[_0x471fb5(0x1a9)](0x2))+_0x1f06e4[_0x44168b];}async['estimateTotalTokens'](_0xa3eb89){const _0x59fdf4=a0_0x5e8d55;try{const _0x2760c7=await this['attachmentService'][_0x59fdf4(0x1be)](_0xa3eb89);let _0x2550ad=0x0;for(const _0x34a131 of _0x2760c7){_0x34a131[_0x59fdf4(0x1ab)]===_0x59fdf4(0x1b5)?_0x2550ad+=_0x34a131[_0x59fdf4(0x1ce)]||0x0:_0x2550ad+=0x14;}return _0x2550ad;}catch(_0x39a394){return this[_0x59fdf4(0x1ac)]?.['error'](_0x59fdf4(0x1cf),{'agentId':_0xa3eb89,'error':_0x39a394[_0x59fdf4(0x1bd)]}),0x0;}}async['getAttachmentSummary'](_0x1e0fe0){const _0x3a9fbc=a0_0x5e8d55;try{const _0x4e787e=await this[_0x3a9fbc(0x1a3)][_0x3a9fbc(0x1be)](_0x1e0fe0),_0x5e4e2a={'totalActive':_0x4e787e[_0x3a9fbc(0x1c2)],'contentMode':_0x4e787e[_0x3a9fbc(0x1ae)](_0x35ed12=>_0x35ed12['mode']==='content')[_0x3a9fbc(0x1c2)],'referenceMode':_0x4e787e[_0x3a9fbc(0x1ae)](_0x39df08=>_0x39df08['mode']===_0x3a9fbc(0x1a5))[_0x3a9fbc(0x1c2)],'estimatedTokens':0x0,'files':[]};for(const _0x37abd8 of _0x4e787e){_0x5e4e2a[_0x3a9fbc(0x1bf)]+=_0x37abd8[_0x3a9fbc(0x1ce)]||0x0,_0x5e4e2a['files'][_0x3a9fbc(0x1b3)]({'fileName':_0x37abd8['fileName'],'mode':_0x37abd8['mode'],'size':this['formatBytes'](_0x37abd8[_0x3a9fbc(0x1b1)]),'tokens':_0x37abd8['tokenEstimate']||0x0});}return _0x5e4e2a;}catch(_0x1602f4){return this['logger']?.['error']('Error\x20getting\x20attachment\x20summary',{'agentId':_0x1e0fe0,'error':_0x1602f4[_0x3a9fbc(0x1bd)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
1
+ const a0_0x27467d=a0_0x3beb;(function(_0x35cfaa,_0x187249){const _0xf8b63e=a0_0x3beb,_0x234201=_0x35cfaa();while(!![]){try{const _0x57b271=-parseInt(_0xf8b63e(0x1a2))/0x1+parseInt(_0xf8b63e(0x1b3))/0x2*(parseInt(_0xf8b63e(0x1ba))/0x3)+-parseInt(_0xf8b63e(0x1cf))/0x4+-parseInt(_0xf8b63e(0x1b2))/0x5+-parseInt(_0xf8b63e(0x1ae))/0x6+-parseInt(_0xf8b63e(0x1ac))/0x7+parseInt(_0xf8b63e(0x1c8))/0x8*(parseInt(_0xf8b63e(0x1ca))/0x9);if(_0x57b271===_0x187249)break;else _0x234201['push'](_0x234201['shift']());}catch(_0x2ab36d){_0x234201['push'](_0x234201['shift']());}}}(a0_0x5b01,0x70f9b));import a0_0x4520a9 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x43c888={},_0x14bfa6=null){const _0x2bb67e=a0_0x3beb;this[_0x2bb67e(0x1c3)]=_0x43c888,this[_0x2bb67e(0x1a5)]=_0x14bfa6,this[_0x2bb67e(0x1b5)]=new a0_0x4520a9(_0x43c888,_0x14bfa6);}async[a0_0x27467d(0x1ad)](){const _0x10dc1e=a0_0x27467d;await this[_0x10dc1e(0x1b5)][_0x10dc1e(0x1ad)]();}async['buildDynamicContext'](_0x2831f6){const _0x3e1429=a0_0x27467d;try{const _0x28f635=await this[_0x3e1429(0x1b5)][_0x3e1429(0x1c7)](_0x2831f6);if(_0x28f635[_0x3e1429(0x1b0)]===0x0)return'';const _0x2bb101=_0x28f635[_0x3e1429(0x1a3)](_0x3a631e=>_0x3a631e[_0x3e1429(0x1c1)]==='content'),_0x5918ed=_0x28f635['filter'](_0x16237f=>_0x16237f['mode']==='reference');let _0x56079c='';if(_0x2bb101['length']>0x0){_0x56079c+=_0x3e1429(0x1c2);for(const _0x4aef70 of _0x2bb101){const _0x50a752=await this['attachmentService'][_0x3e1429(0x1b1)](_0x4aef70[_0x3e1429(0x1a4)]);if(_0x50a752){const _0x39dc06=this[_0x3e1429(0x1bb)](_0x4aef70,_0x50a752);_0x56079c+=_0x39dc06+'\x0a';}}_0x56079c+=_0x3e1429(0x1ce);}if(_0x5918ed[_0x3e1429(0x1b0)]>0x0){_0x56079c+=_0x3e1429(0x1c4);for(const _0x44b2f0 of _0x5918ed){const _0x562bbe=this['formatReferenceFile'](_0x44b2f0);_0x56079c+=_0x562bbe+'\x0a';}_0x56079c+=_0x3e1429(0x1af),_0x56079c+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x56079c;}catch(_0xb78cc4){return this['logger']?.[_0x3e1429(0x1d0)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x2831f6,'error':_0xb78cc4[_0x3e1429(0x1c9)]}),'';}}['formatContentFile'](_0x1133d1,_0x181b46){const _0x42b752=a0_0x27467d,{fileName:_0x5f0e78,fileType:_0x52faba,size:_0x2f54e1,contentType:_0x1bb8a8}=_0x1133d1,_0x32c902=(_0x2f54e1/0x400)[_0x42b752(0x1a6)](0x2);if(_0x1bb8a8===_0x42b752(0x1cb))return this['formatTextFile'](_0x1133d1,_0x181b46);else{if(_0x1bb8a8===_0x42b752(0x1a8))return this[_0x42b752(0x19f)](_0x1133d1,_0x181b46);else{if(_0x1bb8a8==='pdf')return this[_0x42b752(0x1b4)](_0x1133d1,_0x181b46);}}return'\x20\x20<file\x20name=\x22'+this[_0x42b752(0x1b6)](_0x5f0e78)+'\x22\x20type=\x22'+_0x52faba+_0x42b752(0x1b7)+_0x32c902+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x181b46)+_0x42b752(0x1c6);}['formatTextFile'](_0x1a7620,_0x212621){const _0x59aa8b=a0_0x27467d,{fileName:_0x3a8910,fileType:_0x52f9b5,size:_0x3ea1af}=_0x1a7620,_0x121947=(_0x3ea1af/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x59aa8b(0x1b6)](_0x3a8910)+'\x22\x20type=\x22'+_0x52f9b5+'\x22\x20size=\x22'+_0x121947+_0x59aa8b(0x1a7)+this['escapeXml'](_0x212621)+_0x59aa8b(0x1c6);}['formatImageFile'](_0x181c5c,_0x5fd763){const _0x36d614=a0_0x27467d,{fileName:_0x36aa3d,fileType:_0x51eac0,size:_0x142903}=_0x181c5c,_0x4d0ef5=(_0x142903/0x400)[_0x36d614(0x1a6)](0x2);return _0x36d614(0x1b9)+this[_0x36d614(0x1b6)](_0x36aa3d)+'\x22\x20type=\x22'+_0x51eac0+'\x22\x20size=\x22'+_0x4d0ef5+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x5fd763+'\x0a\x20\x20</file>';}[a0_0x27467d(0x1b4)](_0x53ebb4,_0x5cf8c8){const _0x5ab5ca=a0_0x27467d,{fileName:_0x24d8b4,fileType:_0x172b5d,size:_0x282385}=_0x53ebb4,_0x1f21ea=(_0x282385/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x24d8b4)+_0x5ab5ca(0x1aa)+_0x172b5d+'\x22\x20size=\x22'+_0x1f21ea+_0x5ab5ca(0x1a7)+this[_0x5ab5ca(0x1b6)](_0x5cf8c8)+_0x5ab5ca(0x1c6);}[a0_0x27467d(0x1a0)](_0x2dcc4b){const _0xaab0a8=a0_0x27467d,{fileName:_0x1ea29f,originalPath:_0x496300,size:_0x1f5cb8,fileType:_0x456d59,lastModified:_0x20402f}=_0x2dcc4b,_0x25b463=this[_0xaab0a8(0x1ab)](_0x1f5cb8),_0x1e3e7d=new Date(_0x20402f)['toISOString']()['split']('T')[0x0];return _0xaab0a8(0x1b9)+this['escapeXml'](_0x1ea29f)+'\x22\x20path=\x22'+this[_0xaab0a8(0x1b6)](_0x496300)+'\x22\x20size=\x22'+_0x25b463+'\x22\x20type=\x22'+_0x456d59+_0xaab0a8(0x1c5)+_0x1e3e7d+'\x22\x20/>';}['escapeXml'](_0x3eb17f){const _0x3d2566=a0_0x27467d;if(!_0x3eb17f)return'';return _0x3eb17f[_0x3d2566(0x1a9)](/&/g,_0x3d2566(0x1b8))['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')[_0x3d2566(0x1a9)](/"/g,_0x3d2566(0x1a1))[_0x3d2566(0x1a9)](/'/g,'&apos;');}['formatBytes'](_0x578956){const _0x39ab96=a0_0x27467d;if(_0x578956===0x0)return'0\x20Bytes';const _0x554768=0x400,_0x742c54=['Bytes','KB','MB','GB'],_0x4156ca=Math[_0x39ab96(0x1bd)](Math[_0x39ab96(0x1bc)](_0x578956)/Math['log'](_0x554768));return parseFloat((_0x578956/Math[_0x39ab96(0x1cc)](_0x554768,_0x4156ca))[_0x39ab96(0x1a6)](0x2))+_0x742c54[_0x4156ca];}async[a0_0x27467d(0x1bf)](_0x3d1376){const _0x4a0d7f=a0_0x27467d;try{const _0x1a0945=await this[_0x4a0d7f(0x1b5)]['getActiveAttachments'](_0x3d1376);let _0x11b2ee=0x0;for(const _0x2d5dfd of _0x1a0945){_0x2d5dfd[_0x4a0d7f(0x1c1)]===_0x4a0d7f(0x1be)?_0x11b2ee+=_0x2d5dfd[_0x4a0d7f(0x1cd)]||0x0:_0x11b2ee+=0x14;}return _0x11b2ee;}catch(_0x57ab37){return this[_0x4a0d7f(0x1a5)]?.[_0x4a0d7f(0x1d0)]('Error\x20estimating\x20total\x20tokens',{'agentId':_0x3d1376,'error':_0x57ab37['message']}),0x0;}}async['getAttachmentSummary'](_0x1e7322){const _0x6d2279=a0_0x27467d;try{const _0x7637ac=await this[_0x6d2279(0x1b5)]['getActiveAttachments'](_0x1e7322),_0x56a2e7={'totalActive':_0x7637ac[_0x6d2279(0x1b0)],'contentMode':_0x7637ac['filter'](_0x163088=>_0x163088['mode']==='content')[_0x6d2279(0x1b0)],'referenceMode':_0x7637ac[_0x6d2279(0x1a3)](_0x48e574=>_0x48e574['mode']==='reference')['length'],'estimatedTokens':0x0,'files':[]};for(const _0x33cf96 of _0x7637ac){_0x56a2e7[_0x6d2279(0x1c0)]+=_0x33cf96['tokenEstimate']||0x0,_0x56a2e7['files']['push']({'fileName':_0x33cf96['fileName'],'mode':_0x33cf96[_0x6d2279(0x1c1)],'size':this[_0x6d2279(0x1ab)](_0x33cf96['size']),'tokens':_0x33cf96['tokenEstimate']||0x0});}return _0x56a2e7;}catch(_0x4def7f){return this[_0x6d2279(0x1a5)]?.[_0x6d2279(0x1d0)]('Error\x20getting\x20attachment\x20summary',{'agentId':_0x1e7322,'error':_0x4def7f[_0x6d2279(0x1c9)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}function a0_0x3beb(_0x162fb1,_0x8b3f40){_0x162fb1=_0x162fb1-0x19f;const _0x5b01b7=a0_0x5b01();let _0x3beb04=_0x5b01b7[_0x162fb1];if(a0_0x3beb['QbXOGL']===undefined){var _0x5505a2=function(_0xf2d8f8){const _0x37934c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4520a9='',_0x43c888='';for(let _0x14bfa6=0x0,_0x2831f6,_0x28f635,_0x2bb101=0x0;_0x28f635=_0xf2d8f8['charAt'](_0x2bb101++);~_0x28f635&&(_0x2831f6=_0x14bfa6%0x4?_0x2831f6*0x40+_0x28f635:_0x28f635,_0x14bfa6++%0x4)?_0x4520a9+=String['fromCharCode'](0xff&_0x2831f6>>(-0x2*_0x14bfa6&0x6)):0x0){_0x28f635=_0x37934c['indexOf'](_0x28f635);}for(let _0x5918ed=0x0,_0x56079c=_0x4520a9['length'];_0x5918ed<_0x56079c;_0x5918ed++){_0x43c888+='%'+('00'+_0x4520a9['charCodeAt'](_0x5918ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c888);};a0_0x3beb['iirojo']=_0x5505a2,a0_0x3beb['tHEmqc']={},a0_0x3beb['QbXOGL']=!![];}const _0x2b8968=_0x5b01b7[0x0],_0xbf7001=_0x162fb1+_0x2b8968,_0x51d1d8=a0_0x3beb['tHEmqc'][_0xbf7001];return!_0x51d1d8?(_0x3beb04=a0_0x3beb['iirojo'](_0x3beb04),a0_0x3beb['tHEmqc'][_0xbf7001]=_0x3beb04):_0x3beb04=_0x51d1d8,_0x3beb04;}function a0_0x5b01(){const _0x5c6ea2=['Dg9Rzw5fC3rPBwf0zq','pc9HDhrHy2HLzc1MAwXLCZ4k','mte1mJq0ne52Bw95sG','zxjYB3i','zM9YBwf0sw1Hz2vgAwXL','zM9YBwf0uMvMzxjLBMnLrMLSzq','jNf1B3q7','ody4mtCXzgjhBgPA','zMLSDgvY','zMLSzuLK','Bg9Nz2vY','Dg9gAxHLza','s0iIig1Vzgu9iMnVBNrLBNqIpGO','Aw1Hz2u','CMvWBgfJzq','iIb0ExbLpsi','zM9YBwf0qNL0zxm','nZi1mtCYs3zWy3Lm','Aw5PDgLHBgL6zq','mZm4mZmWnhfIvKfHuW','pc9MAwXLlxjLzMvYzw5Jzxm+cG','BgvUz3rO','z2v0qxr0ywnOBwvUDenVBNrLBNq','mtCYmZK5nun4z3jTqW','mtyXmtzwyw1YEK4','zM9YBwf0ugrMrMLSzq','yxr0ywnOBwvUDfnLCNzPy2u','zxnJyxbLwg1S','iIbZAxPLpsi','jMfTCdS','ica8zMLSzsbUyw1Lpsi','mtGZzhvYwgHJ','zM9YBwf0q29UDgvUDezPBgu','Bg9N','zMXVB3i','y29UDgvUDa','zxn0Aw1HDgvuB3rHBfrVA2vUCW','zxn0Aw1HDgvKvg9Rzw5Z','Bw9Kzq','cJXHDhrHy2HLzc1MAwXLCZ4k','y29UzMLN','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIbTB2rPzMLLzd0I','cIaGpc9MAwXLpG','z2v0qwn0AxzLqxr0ywnOBwvUDhm','odb4Cxfgvwu','BwvZC2fNzq','mtKYntC5m1vgqLzqqG','Dgv4Da','Cg93'];a0_0x5b01=function(){return _0x5c6ea2;};return a0_0x5b01();}export default ContextInjectionService;