@loxia-labs/loxia-autopilot-one 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/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/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/index-BmKxmRe3.css +1 -0
  119. package/web-ui/build/static/{index-CX8ZfpGw.js → index-BzXbDs8z.js} +69 -69
  120. package/web-ui/build/static/index-Dwg_JrlO.css +0 -1
@@ -1 +1 @@
1
- function a0_0x4c95(){const _0x558751=['zgvIDwC','CM9Szq','BwvZC2fNzq','r0furvDbwv9usu1ft1vu','DgHYzxnOB2XK','AxnpCgvU','CM91DgvnB2rLBa','y29UzMLN','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','y29UDMvYC2f0Aw9UtwfUywDLCNm','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','C3LZDgvT','t1bftKfj','CMv0CNLbDhrLBxb0CW','y2LYy3vPDejYzwfRzxi','Aw5MBW','yxbPs2v5twfUywDLCG','quKGC2vYDMLJzsbLCNjVCJOG','BM93','DhjHy2TvC2fNzq','n3nhAwDnyW','qu5usfjpueLdx0HbsuTv','revfufnfruTFuJe','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','qMvHCMvYia','y3vYCMvUDe1VzgvS','DML2Awq','C3rYAw5N','z2v0s2v5C0zVCLjLCxvLC3q','qu5usfjpueLdx09qvvm','AxnbCNjHEq','C3rHDhvZ','ue9tva','nw9Uzg9HsG','vu5bvvrit1jjwKve','ndGYodaYu2Hdu3fw','ywDLBNrqB29S','yJy0x2PZB24','CMv2AxnLzf9WCM9TChq','x2LZq2LYy3vPDejYzwfRzxjpCgvU','mZeWsejqtMXZ','x21HA2vjBwfNzufqsvjLCxvLC3q','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','ueHjxZq','uMf0zsbSAw1PDcbLEgnLzwrLza','C3DPDgnOtw9KzwW','yw50AhjVCgLJ','ueHj','mtm3nZuYmNf2v3n5Cq','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3vIC3rYAw5N','r1buxZrFtuLosq','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','CgXHDgzVCM1qCM92AwrLza','qvPvuKu','vw5RBM93BIbTB2rLBdOG','Bw9KzwW','x21HA2vbueLszxf1zxn0','C3DPDgnOqwDLBNrnB2rLBa','Aw1Nlq','BwLJCM9ZB2z0','rKfmtejbq0S','yxbWBgLJyxrPB24VANnVBG','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','C3LZDgvTuhjVBxb0','CMv2zxjZzq','x3n1Bw1HCML6zu1LC3nHz2vZ','CMfUzg9T','ChjVDMLKzxi','yxnZAxn0yw50','C2v0qxbPs2v5twfUywDLCG','DgvTCgvYyxr1CMu','zMLUAxnOx3jLyxnVBG','C3bLzwq','zxjYB3iT','qKfex1jfuvvfu1q','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','Dg9tDhjPBMC','vMfSAwrHDgLUzYbTB2rLBa','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','AgvHBhrOEq','DxnHz2u','mty4ndflCwT0vg8','x2nOzwnRtw9KzwXizwfSDgG','AgvHBhrOlwnOzwnR','ywDLBNrjza','sw52ywXPzcbTB2rLBdOG','u3LZDgvToIa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','ywXS','mti0mdy5DwrZC2Dc','x2zVCM1HDezVCKf6DxjL','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','x2DLDfzLBMrVCKzYB21nB2rLBa','x2zVCM1HDezVCKfUDgHYB3bPyW','qu5usfjpueLd','CxvHBgL0Eq','CMvXDwvZDff1zxvL','x2vZDgLTyxrLvg9Rzw5Z','u0vsvKLdrv9vtKfwquLmqujmrq','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','BwvZC2fNzxm','uMv0CNLPBMCGAw4G','y2vPBa','y3vZDg9TqxbPs2v5CW','y29UDgvUDa','x3jLC2v0q2LYy3vPDejYzwfRzxi','D2fYBG','mtHiCwneuMK','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','C3vIC3rY','z2vUzxjHDgvjBwfNzq','tK9ux0zpvu5e','AgfUzgXLshr0CevYCM9Y','DxjS','DxnLCG','DgLTzw91Da','mZK0mJG4yNbqtxrP','C2vZC2LVBKLK','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zMfPBhvYzxm','B3bLBMfP','Aw5JBhvKzxm','y2XHC3nPzNLfCNjVCG','C3r5Bgu','y29TCgXLDgLVBL90B2TLBNm','zMfZDa','yNvKz2v0u2vYDMLJzq','BgfZDezHAwX1CMvuAw1L','Bwf4x3rVA2vUCW','Dw5ZAgLMDa','zxjYB3i','A2v5CW','DgLTzxn0yw1W','Ahr0Chm6lY9HCgKUBg94AweUywK','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','Dg9ju09tDhjPBMC','ChvZAa','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','y2HVAwnLCW','C2v0','Bw9KzwXtCgvJCW','zgvLChnLzwS','x2zVCM1HDfnPBMDSzu1LC3nHz2u','C3rVCa','zgf0yq','DMvUzg9YqxbPs2v5','C3rYzwfT','rK9sqKLerevo','mJGZmZHlu1PeDvm','x2zVCM1HDezVCK9Wzw5bsq','z2v0qwDLBNq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','BwfW','y3jLyxrLza','zxjYB3jiyw5KBgvY','yxbPs2v5','Bg9Nz2vY','l2HLywX0Aa','Bg94AwfbCgLlzxK','revfufnfruS','BgvUz3rO','CMf0zuXPBwL0zxjZ','yMfJA2vUza','mtaYnhGXmdi0','mtqXotGWofDHqxviBq','Cg93'];a0_0x4c95=function(){return _0x558751;};return a0_0x4c95();}function a0_0x179e(_0x1eb0bd,_0x2b1caa){_0x1eb0bd=_0x1eb0bd-0x186;const _0x4c9560=a0_0x4c95();let _0x179e1a=_0x4c9560[_0x1eb0bd];if(a0_0x179e['jnPcVo']===undefined){var _0x172e64=function(_0xb42407){const _0x4a62a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26f75f='',_0x3b14a0='';for(let _0x38d2b1=0x0,_0x142940,_0x2bf6f1,_0x1909d9=0x0;_0x2bf6f1=_0xb42407['charAt'](_0x1909d9++);~_0x2bf6f1&&(_0x142940=_0x38d2b1%0x4?_0x142940*0x40+_0x2bf6f1:_0x2bf6f1,_0x38d2b1++%0x4)?_0x26f75f+=String['fromCharCode'](0xff&_0x142940>>(-0x2*_0x38d2b1&0x6)):0x0){_0x2bf6f1=_0x4a62a2['indexOf'](_0x2bf6f1);}for(let _0x229a92=0x0,_0x4dabac=_0x26f75f['length'];_0x229a92<_0x4dabac;_0x229a92++){_0x3b14a0+='%'+('00'+_0x26f75f['charCodeAt'](_0x229a92)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b14a0);};a0_0x179e['EVsFRD']=_0x172e64,a0_0x179e['AVhOeV']={},a0_0x179e['jnPcVo']=!![];}const _0x50e7f9=_0x4c9560[0x0],_0x55edab=_0x1eb0bd+_0x50e7f9,_0x58335e=a0_0x179e['AVhOeV'][_0x55edab];return!_0x58335e?(_0x179e1a=a0_0x179e['EVsFRD'](_0x179e1a),a0_0x179e['AVhOeV'][_0x55edab]=_0x179e1a):_0x179e1a=_0x58335e,_0x179e1a;}const a0_0x150019=a0_0x179e;(function(_0x42ef73,_0x1cffe1){const _0x433730=a0_0x179e,_0x48b968=_0x42ef73();while(!![]){try{const _0x4ca118=parseInt(_0x433730(0x1f9))/0x1+-parseInt(_0x433730(0x192))/0x2*(-parseInt(_0x433730(0x214))/0x3)+parseInt(_0x433730(0x21e))/0x4*(-parseInt(_0x433730(0x1c5))/0x5)+parseInt(_0x433730(0x1c7))/0x6+-parseInt(_0x433730(0x1b8))/0x7*(parseInt(_0x433730(0x1a2))/0x8)+-parseInt(_0x433730(0x1d4))/0x9+parseInt(_0x433730(0x1cc))/0xa*(parseInt(_0x433730(0x201))/0xb);if(_0x4ca118===_0x1cffe1)break;else _0x48b968['push'](_0x48b968['shift']());}catch(_0x54796c){_0x48b968['push'](_0x48b968['shift']());}}}(a0_0x4c95,0x191d1));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x26f75f,_0x3b14a0,_0x38d2b1,_0x142940){const _0x495fec=a0_0x179e;this['config']=_0x26f75f,this[_0x495fec(0x19a)]=_0x3b14a0,this[_0x495fec(0x228)]=_0x38d2b1,this[_0x495fec(0x198)]=_0x142940,this['baseUrl']=_0x26f75f['backend']?.['baseUrl']||_0x495fec(0x22f),this['timeout']=_0x26f75f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x26f75f[_0x495fec(0x1a0)]?.[_0x495fec(0x1b1)]||0x3,this[_0x495fec(0x19f)]=new Map(),this[_0x495fec(0x208)]=new Map(),this[_0x495fec(0x1b2)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x495fec(0x1ad)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async['sendMessage'](_0x2bf6f1,_0x1909d9,_0x229a92={}){const _0x40b28d=a0_0x179e,_0x4dabac='req-'+Date[_0x40b28d(0x1b6)]()+'-'+Math['random']()[_0x40b28d(0x1f4)](0x24)[_0x40b28d(0x217)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x40b28d(0x1bb));await this['_checkRateLimit'](_0x2bf6f1);const _0x30a8fe=this['_formatMessagesForModel'](_0x1909d9,_0x2bf6f1,_0x229a92),_0x2c7db4={'model':_0x2bf6f1,'messages':_0x30a8fe,'options':{'max_tokens':this['modelSpecs'][_0x2bf6f1]?.['maxTokens']||0xfa0,'temperature':_0x229a92[_0x40b28d(0x1ee)]||0.7,'stream':_0x229a92[_0x40b28d(0x190)]||![]},'metadata':{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'timestamp':new Date()['toISOString']()}};_0x229a92['systemPrompt']&&(_0x2c7db4[_0x40b28d(0x1af)]=_0x229a92[_0x40b28d(0x1e7)]);this['logger']['info']('Sending\x20message\x20to\x20model:\x20'+_0x2bf6f1,{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'messageCount':Array[_0x40b28d(0x1c2)](_0x1909d9)?_0x1909d9[_0x40b28d(0x19e)]:0x1,'maxTokens':_0x2c7db4[_0x40b28d(0x22a)]});const _0xeac05e=await this[_0x40b28d(0x1de)]('/chat/completions',_0x2c7db4,_0x4dabac,{..._0x229a92,'sessionId':_0x229a92[_0x40b28d(0x21f)],'platformProvided':_0x229a92['platformProvided']||![]});return _0xeac05e[_0x40b28d(0x1f8)]&&await this[_0x40b28d(0x1b7)](_0x229a92['agentId'],_0x2bf6f1,{'prompt_tokens':_0xeac05e[_0x40b28d(0x1f8)]['prompt_tokens']||0x0,'completion_tokens':_0xeac05e[_0x40b28d(0x1f8)][_0x40b28d(0x226)]||0x0,'total_tokens':_0xeac05e[_0x40b28d(0x1f8)]['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0xeac05e['choices'][0x0]?.[_0x40b28d(0x1a6)]?.[_0x40b28d(0x211)]||'','model':_0xeac05e[_0x40b28d(0x1dd)],'tokenUsage':_0xeac05e[_0x40b28d(0x1f8)],'requestId':_0x4dabac,'finishReason':_0xeac05e[_0x40b28d(0x188)][0x0]?.[_0x40b28d(0x1ef)]};}catch(_0x538637){this['_recordFailure'](),this[_0x40b28d(0x19a)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x538637['message'],{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)],'error':_0x538637['stack']}),await this[_0x40b28d(0x21a)](_0x538637,{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)]});throw _0x538637;}}async[a0_0x150019(0x1aa)](_0x2e77c4,_0x5285ef={}){const _0x4e21c6=a0_0x150019;try{const _0x47f259=MODEL_ROUTING[_0x2e77c4['toUpperCase']()]||MODEL_ROUTING[_0x4e21c6(0x1e2)],_0x331bfe=[];for(const _0xa4ae11 of _0x47f259){const _0x544bbc=await this['_checkModelHealth'](_0xa4ae11);_0x544bbc&&_0x331bfe[_0x4e21c6(0x186)](_0xa4ae11);}if(_0x331bfe[_0x4e21c6(0x19e)]===0x0)return this[_0x4e21c6(0x19a)][_0x4e21c6(0x213)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x2e77c4+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x430023=_0x331bfe[0x0];if(_0x5285ef['preferredModel']&&_0x331bfe['includes'](_0x5285ef['preferredModel']))_0x430023=_0x5285ef['preferredModel'];else{if(_0x5285ef['complexity']==='high'&&_0x331bfe['includes'](MODELS['ANTHROPIC_OPUS']))_0x430023=MODELS[_0x4e21c6(0x1c1)];else _0x5285ef[_0x4e21c6(0x1f0)]===_0x4e21c6(0x227)&&_0x331bfe[_0x4e21c6(0x223)](MODELS['ANTHROPIC_HAIKU'])&&(_0x430023=MODELS[_0x4e21c6(0x1b9)]);}return this[_0x4e21c6(0x19a)]['info'](_0x4e21c6(0x231)+_0x2e77c4,{'selectedModel':_0x430023,'availableModels':_0x331bfe['length'],'context':_0x5285ef}),_0x430023;}catch(_0x308fe4){return this['logger'][_0x4e21c6(0x22c)]('Model\x20routing\x20failed:\x20'+_0x308fe4[_0x4e21c6(0x1a6)],{'task':_0x2e77c4,'context':_0x5285ef}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x150019(0x1e5)](_0x3d2b29,_0x4cb4ab){const _0x268de1=a0_0x150019,_0x5b7171=this[_0x268de1(0x18a)][_0x4cb4ab];if(!_0x5b7171)throw new Error(_0x268de1(0x1dc)+_0x4cb4ab);const _0x3b9073=_0x5b7171['contextWindow']*0.8;let _0x7d6070=0x0;const _0x5e081f=[],_0x5a1100=await Promise[_0x268de1(0x200)](_0x3d2b29['map'](async _0x4af32c=>({..._0x4af32c,'estimatedTokens':await this['_estimateTokens'](_0x4af32c[_0x268de1(0x211)],_0x4cb4ab)}))),_0x5a5f10=[..._0x5a1100][_0x268de1(0x1e8)]();for(const _0x17fbf1 of _0x5a5f10){if(_0x7d6070+_0x17fbf1['estimatedTokens']>_0x3b9073){if(_0x5e081f['length']===0x0){const _0x599f14=await this['_truncateMessage'](_0x17fbf1['content'],_0x3b9073);_0x5e081f['unshift']({..._0x17fbf1,'content':_0x599f14,'estimatedTokens':_0x3b9073});}break;}_0x5e081f['unshift'](_0x17fbf1),_0x7d6070+=_0x17fbf1['estimatedTokens'];}const _0x345e66=_0x5a1100['slice'](0x0,-_0x5e081f[_0x268de1(0x19e)]);if(_0x345e66['length']>0x0){const _0x17ee9b=await this['_summarizeMessages'](_0x345e66,_0x4cb4ab);_0x5e081f[_0x268de1(0x22b)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x17ee9b,'timestamp':_0x345e66[0x0]['timestamp'],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x17ee9b,_0x4cb4ab)});}return this['logger'][_0x268de1(0x1b3)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x4cb4ab,{'originalMessages':_0x3d2b29['length'],'compactizedMessages':_0x5e081f[_0x268de1(0x19e)],'estimatedTokens':_0x7d6070,'maxTokens':_0x3b9073}),_0x5e081f;}async['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d,_0x3af156){const _0x5b54b9=a0_0x150019;try{this[_0x5b54b9(0x228)]&&this[_0x5b54b9(0x228)]['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d);}catch(_0x14b366){this['logger'][_0x5b54b9(0x22c)]('Usage\x20tracking\x20failed:\x20'+_0x14b366['message']);}}async[a0_0x150019(0x21a)](_0x12bdc9,_0x1e1b4f){const _0x130fc8=a0_0x150019,_0x18aa90=this['errorHandler']?.[_0x130fc8(0x224)]?.(_0x12bdc9,_0x1e1b4f);switch(_0x12bdc9['status']||_0x12bdc9['code']){case HTTP_STATUS[_0x130fc8(0x1f2)]:this['logger'][_0x130fc8(0x22c)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x1e1b4f,'error':_0x12bdc9[_0x130fc8(0x1a6)]});throw new Error('Invalid\x20request:\x20'+_0x12bdc9['message']);case HTTP_STATUS[_0x130fc8(0x1c6)]:this['logger'][_0x130fc8(0x22c)](_0x130fc8(0x187),{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x20c));case HTTP_STATUS[_0x130fc8(0x191)]:this[_0x130fc8(0x19a)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x1e1b4f});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x130fc8(0x219)]:this[_0x130fc8(0x19a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x1d6));case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger'][_0x130fc8(0x213)](_0x130fc8(0x1d0),{'context':_0x1e1b4f}),await this['_handleRateLimit'](_0x1e1b4f);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS[_0x130fc8(0x20a)]:case HTTP_STATUS[_0x130fc8(0x1a7)]:this['logger'][_0x130fc8(0x22c)]('AI\x20service\x20unavailable',{'context':_0x1e1b4f,'status':_0x12bdc9['status']}),await this['_handleServiceUnavailable'](_0x1e1b4f);throw new Error(_0x130fc8(0x1e4));default:this[_0x130fc8(0x19a)][_0x130fc8(0x22c)](_0x130fc8(0x1f6),{'context':_0x1e1b4f,'error':_0x12bdc9['message']});throw new Error(_0x130fc8(0x1b5)+_0x12bdc9[_0x130fc8(0x1a6)]);}}[a0_0x150019(0x1ed)](_0x5e141b){const _0x45b357=a0_0x150019;this['apiKeyManager']=_0x5e141b,this['logger']?.[_0x45b357(0x1b3)](_0x45b357(0x215),{'hasManager':!!_0x5e141b});}['setAgentPool'](_0x227846){const _0x5b961e=a0_0x150019;this['agentPool']=_0x227846,this[_0x5b961e(0x19a)]?.['info'](_0x5b961e(0x20b),{'hasAgentPool':!!_0x227846});}async[a0_0x150019(0x218)](_0x5eaf42,_0x65b357={}){const _0x144d9=a0_0x150019,_0x5cb1c9=_0x144d9(0x1e0)+Date['now']()+'-'+Math[_0x144d9(0x1ea)]()[_0x144d9(0x1f4)](0x24)['substr'](0x2,0x9);try{if(this[_0x144d9(0x1cb)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x5eaf42||typeof _0x5eaf42!==_0x144d9(0x1bf)||_0x5eaf42['trim']()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x5bd1af=_0x65b357[_0x144d9(0x1dd)]||'flux-1.1-pro',_0x4b7450=_0x65b357['size']||_0x144d9(0x1a1),_0x4abf7f=_0x65b357[_0x144d9(0x207)]||'standard',_0x28a427=_0x65b357['responseFormat']||'url';this['logger']['info']('Generating\x20image\x20with\x20model:\x20'+_0x5bd1af,{'requestId':_0x5cb1c9,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'promptLength':_0x5eaf42['length']});const _0x541518={'prompt':_0x5eaf42,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'response_format':_0x28a427,'n':0x1,'metadata':{'requestId':_0x5cb1c9,'timestamp':new Date()['toISOString']()}},_0x3d3be6=await this['_makeImageAPIRequest'](_0x541518,_0x5cb1c9,{'sessionId':_0x65b357['sessionId'],'platformProvided':_0x65b357['platformProvided']||![]});return this[_0x144d9(0x212)](),{'url':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x21b)]||null,'b64_json':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x1c9)]||null,'model':_0x3d3be6['model']||_0x5bd1af,'requestId':_0x5cb1c9,'revisedPrompt':_0x3d3be6[_0x144d9(0x18e)]?.[0x0]?.[_0x144d9(0x1ca)]||_0x5eaf42};}catch(_0x3d9197){this['_recordFailure'](),this[_0x144d9(0x19a)]['error'](_0x144d9(0x1f3)+_0x3d9197['message'],{'requestId':_0x5cb1c9,'model':_0x65b357[_0x144d9(0x1dd)],'error':_0x3d9197['stack']});throw _0x3d9197;}}async['checkServiceHealth'](){const _0x22c6b0=a0_0x150019;try{const _0x397469=await this['_makeAPIRequest'](_0x22c6b0(0x19b),{},_0x22c6b0(0x1fb));return _0x397469[_0x22c6b0(0x1c3)]===_0x22c6b0(0x1f7);}catch(_0x1cf89e){return![];}}async[a0_0x150019(0x1df)](_0x1bb148,_0x1cb8ef){const _0x2d9dc0=a0_0x150019;try{if(!this['_isValidModel'](_0x1cb8ef))throw new Error(_0x2d9dc0(0x1fd)+_0x1cb8ef);let _0x3694fc=this['conversationManagers']['get'](_0x1bb148);!_0x3694fc&&(_0x3694fc=new ConversationManager(_0x1bb148,this['logger']),this[_0x2d9dc0(0x1ad)][_0x2d9dc0(0x189)](_0x1bb148,_0x3694fc));const _0x263f63=await _0x3694fc[_0x2d9dc0(0x1d1)](_0x1cb8ef),_0xc941ea=await this[_0x2d9dc0(0x1c8)]?.[_0x2d9dc0(0x194)](_0x1bb148);return _0xc941ea&&(_0xc941ea[_0x2d9dc0(0x1bd)]=_0x1cb8ef,await this[_0x2d9dc0(0x1c8)]['persistAgentState'](_0x1bb148)),this[_0x2d9dc0(0x19a)][_0x2d9dc0(0x1b3)](_0x2d9dc0(0x1d9)+_0x1bb148,{'newModel':_0x1cb8ef,'messageCount':_0x263f63[_0x2d9dc0(0x20d)][_0x2d9dc0(0x19e)]}),{'success':!![],'agentId':_0x1bb148,'newModel':_0x1cb8ef,'conversation':_0x263f63};}catch(_0x48b6ac){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0x48b6ac[_0x2d9dc0(0x1a6)],{'agentId':_0x1bb148,'newModel':_0x1cb8ef});throw _0x48b6ac;}}['_initializeModelSpecs'](){const _0x225d93=a0_0x150019,_0x3a666f={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x206)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x225d93(0x1c1)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x225d93(0x1b9)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x225d93(0x1d8)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x225d93(0x1ba)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x19d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x225d93(0x1cf)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1d3)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x225d93(0x1db),'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':_0x225d93(0x1db),'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':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x225d93(0x1db),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x3a666f;}[a0_0x150019(0x230)](_0x58f9c7,_0x58d611,_0x2650ae){const _0x26e20e=a0_0x150019,_0x41b825=this[_0x26e20e(0x18a)][_0x58d611]||{'provider':_0x26e20e(0x1db)};let _0x2f2b57;typeof _0x58f9c7===_0x26e20e(0x1bf)?_0x2f2b57=[{'role':_0x26e20e(0x21c),'content':_0x58f9c7}]:_0x2f2b57=_0x58f9c7['map'](_0x48356e=>this['_formatSingleMessage'](_0x48356e,_0x58d611));switch(_0x41b825[_0x26e20e(0x1eb)]){case MODEL_PROVIDERS[_0x26e20e(0x206)]:return this[_0x26e20e(0x205)](_0x2f2b57);case MODEL_PROVIDERS['OPENAI']:return this[_0x26e20e(0x193)](_0x2f2b57);case MODEL_PROVIDERS[_0x26e20e(0x1db)]:return this[_0x26e20e(0x202)](_0x2f2b57);default:return _0x2f2b57;}}[a0_0x150019(0x18c)](_0xc01512,_0x1b5d56){const _0x2d5b47=a0_0x150019;return{'role':_0xc01512[_0x2d5b47(0x1a5)]||_0x2d5b47(0x21c),'content':_0xc01512['content'],'timestamp':_0xc01512[_0x2d5b47(0x22e)]};}[a0_0x150019(0x205)](_0x24e95f){const _0x546fa1=a0_0x150019;return _0x24e95f[_0x546fa1(0x196)](_0x2c2985=>{const _0x39bd85=_0x546fa1;if(_0x2c2985['role']===_0x39bd85(0x1af))return{'role':_0x39bd85(0x21c),'content':_0x39bd85(0x1fe)+_0x2c2985[_0x39bd85(0x211)]};return _0x2c2985;});}['_formatForOpenAI'](_0x31bc10){return _0x31bc10;}['_formatForAzure'](_0x222958){const _0x2a0fa2=a0_0x150019;return _0x222958[_0x2a0fa2(0x196)](_0x2e9df9=>({..._0x2e9df9,'content':typeof _0x2e9df9[_0x2a0fa2(0x211)]==='string'?_0x2e9df9['content']:JSON['stringify'](_0x2e9df9[_0x2a0fa2(0x211)])}));}['_isValidModel'](_0x57c17e){const _0x591de8=a0_0x150019;this[_0x591de8(0x19a)][_0x591de8(0x1a4)](_0x591de8(0x1f5),{'model':_0x57c17e,'modelType':typeof _0x57c17e});if(this[_0x591de8(0x18a)][_0x57c17e]!==undefined)return!![];return this[_0x591de8(0x19a)]['warn'](_0x591de8(0x195),{'model':_0x57c17e,'availableModels':Object[_0x591de8(0x22d)](this[_0x591de8(0x18a)])}),![];}async[a0_0x150019(0x1fa)](_0x3ca937){return!![];}async[a0_0x150019(0x209)](_0xf0064f,_0x2a6133){const _0x103a6c=a0_0x150019;return Math[_0x103a6c(0x20f)](_0xf0064f[_0x103a6c(0x19e)]/0x4);}async['_truncateMessage'](_0x229970,_0x4a5ea0){const _0x515892=a0_0x150019,_0x21937c=_0x4a5ea0*0x4;if(_0x229970[_0x515892(0x19e)]<=_0x21937c)return _0x229970;return _0x229970[_0x515892(0x1d7)](0x0,_0x21937c-0x14)+_0x515892(0x1ae);}async[a0_0x150019(0x1e9)](_0x163629,_0x190bde){const _0xfebd2e=a0_0x150019,_0x1f9e58=_0x163629[_0xfebd2e(0x196)](_0x3794a2=>_0x3794a2[_0xfebd2e(0x1a5)]+':\x20'+_0x3794a2['content'])['join']('\x0a'),_0x22487d=0x1f4;if(_0x1f9e58[_0xfebd2e(0x19e)]<=_0x22487d)return _0x1f9e58;return _0x1f9e58[_0xfebd2e(0x1d7)](0x0,_0x22487d)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x150019(0x1de)](_0x5ea211,_0x15e009,_0xdcb505,_0x45c3d1={}){const _0x1e1381=a0_0x150019,_0x114f92=_0x1e1381(0x1ff);let _0x256d0f,_0x493edf=null,_0x39b429=null;this['logger']?.[_0x1e1381(0x1b3)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x1e1381(0x1b4)],'sessionId':_0x45c3d1['sessionId'],'hasSessionId':!!_0x45c3d1['sessionId'],'optionsKeys':Object['keys'](_0x45c3d1),'model':_0x15e009[_0x1e1381(0x1dd)]});if(this[_0x1e1381(0x1b4)]&&_0x45c3d1[_0x1e1381(0x21f)]){const _0x273adf=this['apiKeyManager']['getKeysForRequest'](_0x45c3d1['sessionId'],{'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![],'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});_0x493edf=_0x273adf[_0x1e1381(0x19c)],_0x39b429=_0x273adf[_0x1e1381(0x18f)],this['logger']?.[_0x1e1381(0x1a4)]('Retrieved API keys from session manager',{'sessionId':_0x45c3d1[_0x1e1381(0x21f)],'hasLoxiaKey':!!_0x493edf,'hasVendorKey':!!_0x39b429,'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});}!_0x493edf&&_0x45c3d1['apiKey']&&(_0x493edf=_0x45c3d1[_0x1e1381(0x199)]);!_0x493edf&&this['config']['apiKey']&&(_0x493edf=this['config']['apiKey']);if(!_0x493edf)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x40ed17=_0x15e009['model'],_0x1d0f3c={'conversationId':_0xdcb505,'message':_0x15e009['messages'][_0x15e009['messages']['length']-0x1]?.['content']||'','messages':_0x15e009['messages'],'model':_0x40ed17,'requestId':_0xdcb505,'options':_0x15e009['options']||{},'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![]};_0x15e009[_0x1e1381(0x1af)]&&(_0x1d0f3c[_0x1e1381(0x1e7)]=_0x15e009[_0x1e1381(0x1af)]);_0x45c3d1['platformProvided']?_0x1d0f3c['apiKey']=_0x493edf:(_0x39b429&&(_0x1d0f3c['vendorApiKey']=_0x39b429),_0x45c3d1[_0x1e1381(0x210)]&&(_0x1d0f3c[_0x1e1381(0x210)]=_0x45c3d1['customApiKeys']),_0x1d0f3c['apiKey']=_0x493edf);for(let _0x158635=0x1;_0x158635<=this[_0x1e1381(0x1b1)];_0x158635++){try{this[_0x1e1381(0x19a)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x114f92,'model':_0x15e009[_0x1e1381(0x1dd)],'requestId':_0xdcb505,'attempt':_0x158635,'hasApiKey':!!_0x493edf});const _0x5a7be9=await fetch(_0x114f92,{'method':'POST','headers':{'Content-Type':_0x1e1381(0x1e3),'Authorization':'Bearer\x20'+_0x493edf,'X-Request-ID':_0xdcb505},'body':JSON['stringify'](_0x1d0f3c),'timeout':this[_0x1e1381(0x21d)]});if(!_0x5a7be9['ok']){const _0x52e386=await _0x5a7be9['text'](),_0x2bd809=new Error('HTTP\x20'+_0x5a7be9[_0x1e1381(0x1c3)]+':\x20'+_0x5a7be9['statusText']+(_0x52e386?'\x20-\x20'+_0x52e386:''));_0x2bd809['status']=_0x5a7be9['status'];throw _0x2bd809;}const _0x4e1642=await _0x5a7be9['json']();return{'choices':[{'message':{'content':_0x4e1642['content']||'','role':'assistant'},'finish_reason':_0x4e1642['finishReason']||'stop'}],'usage':_0x4e1642[_0x1e1381(0x1f8)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4e1642['model']||_0x15e009[_0x1e1381(0x1dd)],'id':_0x4e1642['requestId']||_0xdcb505};}catch(_0x25eb26){_0x256d0f=_0x25eb26,this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x1ac),{'attempt':_0x158635,'requestId':_0xdcb505,'error':_0x25eb26[_0x1e1381(0x1a6)],'status':_0x25eb26[_0x1e1381(0x1c3)]});if(_0x158635<this[_0x1e1381(0x1b1)]){const _0x56f1e1=Math[_0x1e1381(0x1a3)](0x2,_0x158635)*0x3e8;this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x20e)+_0x56f1e1+'ms',{'attempt':_0x158635,'requestId':_0xdcb505}),await new Promise(_0x57c1b2=>setTimeout(_0x57c1b2,_0x56f1e1));}}}this['logger']['error'](_0x1e1381(0x203),{'requestId':_0xdcb505,'error':_0x256d0f[_0x1e1381(0x1a6)]});const _0x40187b=_0x256d0f['message']&&_0x256d0f['message']['includes']('No\x20API\x20key\x20configured');if(_0x40187b)throw new Error('API\x20Configuration\x20Error:\x20'+_0x256d0f[_0x1e1381(0x1a6)]);return{'choices':[{'message':{'content':_0x1e1381(0x1e6)+_0x256d0f[_0x1e1381(0x1a6)],'role':_0x1e1381(0x1ec)},'finish_reason':_0x1e1381(0x18d)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x15e009['model'],'id':_0x1e1381(0x1f1)+_0xdcb505,'error':_0x256d0f['message']};}async[a0_0x150019(0x1cd)](_0x3ce2b9,_0x93e30a,_0x27d485={}){const _0x36df8a=a0_0x150019,_0x38dacb='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0xa44334,_0x4e0c01=null,_0x44e7b0=null;this['logger']?.[_0x36df8a(0x1b3)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x36df8a(0x1b4)],'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasSessionId':!!_0x27d485[_0x36df8a(0x21f)],'model':_0x3ce2b9[_0x36df8a(0x1dd)]});if(this['apiKeyManager']&&_0x27d485['sessionId']){const _0x4c41d2=this['apiKeyManager'][_0x36df8a(0x1c0)](_0x27d485['sessionId'],{'platformProvided':_0x27d485[_0x36df8a(0x1da)]||![],'vendor':this[_0x36df8a(0x204)](_0x3ce2b9[_0x36df8a(0x1dd)])});_0x4e0c01=_0x4c41d2[_0x36df8a(0x19c)],_0x44e7b0=_0x4c41d2['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasLoxiaKey':!!_0x4e0c01,'hasVendorKey':!!_0x44e7b0});}!_0x4e0c01&&_0x27d485['apiKey']&&(_0x4e0c01=_0x27d485[_0x36df8a(0x199)]);!_0x4e0c01&&this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]&&(_0x4e0c01=this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]);if(!_0x4e0c01)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3b149b={'prompt':_0x3ce2b9['prompt'],'model':_0x3ce2b9['model']||'azure-openai-dalle3','size':_0x3ce2b9['size'],'quality':_0x3ce2b9['quality'],'style':_0x3ce2b9[_0x36df8a(0x225)]||_0x36df8a(0x1be),'n':_0x3ce2b9['n']||0x1,'requestId':_0x93e30a};for(let _0x5de402=0x1;_0x5de402<=this['retryAttempts'];_0x5de402++){try{this[_0x36df8a(0x19a)]['info'](_0x36df8a(0x1ce),{'url':_0x38dacb,'model':_0x3ce2b9[_0x36df8a(0x1dd)],'requestId':_0x93e30a,'attempt':_0x5de402,'hasApiKey':!!_0x4e0c01});const _0x2b2bc9=await fetch(_0x38dacb,{'method':_0x36df8a(0x1c4),'headers':{'Content-Type':_0x36df8a(0x1e3),'Authorization':_0x36df8a(0x1bc)+_0x4e0c01,'X-Request-ID':_0x93e30a},'body':JSON['stringify'](_0x3b149b),'timeout':this[_0x36df8a(0x21d)]*0x2});if(!_0x2b2bc9['ok']){const _0x3d25bb=await _0x2b2bc9['text'](),_0x430e39=new Error('HTTP\x20'+_0x2b2bc9[_0x36df8a(0x1c3)]+':\x20'+_0x2b2bc9['statusText']+(_0x3d25bb?'\x20-\x20'+_0x3d25bb:''));_0x430e39['status']=_0x2b2bc9['status'];throw _0x430e39;}const _0x1ab511=await _0x2b2bc9['json']();return{'data':_0x1ab511['images']||[],'model':_0x1ab511['model']||_0x3ce2b9['model'],'created':_0x1ab511[_0x36df8a(0x197)]||Date[_0x36df8a(0x1b6)](),'usage':_0x1ab511['usage']};}catch(_0x3664a2){_0xa44334=_0x3664a2,this['logger'][_0x36df8a(0x213)](_0x36df8a(0x1d5),{'attempt':_0x5de402,'requestId':_0x93e30a,'error':_0x3664a2[_0x36df8a(0x1a6)],'status':_0x3664a2['status']});if(_0x5de402<this[_0x36df8a(0x1b1)]){const _0x2c1777=Math[_0x36df8a(0x1a3)](0x2,_0x5de402)*0x3e8;this[_0x36df8a(0x19a)]['warn'](_0x36df8a(0x20e)+_0x2c1777+'ms',{'attempt':_0x5de402,'requestId':_0x93e30a}),await new Promise(_0x2a44d8=>setTimeout(_0x2a44d8,_0x2c1777));}}}this['logger'][_0x36df8a(0x22c)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x93e30a,'error':_0xa44334[_0x36df8a(0x1a6)]});throw new Error('Image\x20generation\x20failed:\x20'+_0xa44334['message']);}async['_checkRateLimit'](_0xbcdb7f){await new Promise(_0x9671e9=>setTimeout(_0x9671e9,0x64));}async['_handleRateLimit'](_0x726a2f){const _0x1f4d84=a0_0x150019,_0x740181=0xea60;this['logger'][_0x1f4d84(0x1b3)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x740181+'ms',_0x726a2f),await new Promise(_0x171071=>setTimeout(_0x171071,_0x740181));}async[a0_0x150019(0x220)](_0xb796fc){this['_recordFailure']();const _0x4031ab=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x4031ab+'ms',_0xb796fc),await new Promise(_0x3a0db5=>setTimeout(_0x3a0db5,_0x4031ab));}['_isCircuitBreakerOpen'](){const _0x5595c8=a0_0x150019;if(!this[_0x5595c8(0x1b2)][_0x5595c8(0x1a9)])return![];const _0x54c014=Date[_0x5595c8(0x1b6)]()-this['circuitBreaker'][_0x5595c8(0x229)];if(_0x54c014>this[_0x5595c8(0x1b2)]['timeout'])return this['circuitBreaker'][_0x5595c8(0x1a9)]=![],this[_0x5595c8(0x1b2)][_0x5595c8(0x221)]=0x0,![];return!![];}['_recordFailure'](){const _0x34a3fd=a0_0x150019;this['circuitBreaker'][_0x34a3fd(0x221)]++,this[_0x34a3fd(0x1b2)][_0x34a3fd(0x229)]=Date[_0x34a3fd(0x1b6)](),this[_0x34a3fd(0x1b2)]['failures']>=this[_0x34a3fd(0x1b2)][_0x34a3fd(0x1a8)]&&(this['circuitBreaker']['isOpen']=!![],this[_0x34a3fd(0x19a)]['warn'](_0x34a3fd(0x216)));}['_resetCircuitBreaker'](){const _0x26220=a0_0x150019;this[_0x26220(0x1b2)]['failures']>0x0&&(this[_0x26220(0x1b2)]['failures']=0x0,this['circuitBreaker'][_0x26220(0x1a9)]=![],this[_0x26220(0x19a)][_0x26220(0x1b3)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x51521f){const _0xee6e66=a0_0x150019;if(!_0x51521f)return null;const _0x13f499=_0x51521f['toLowerCase']();if(_0x13f499[_0xee6e66(0x223)](_0xee6e66(0x1d2))||_0x13f499['includes']('claude'))return'anthropic';else{if(_0x13f499['includes'](_0xee6e66(0x222))||_0x13f499[_0xee6e66(0x223)]('gpt'))return _0xee6e66(0x222);else{if(_0x13f499[_0xee6e66(0x223)]('deepseek'))return _0xee6e66(0x18b);else{if(_0x13f499[_0xee6e66(0x223)]('phi'))return _0xee6e66(0x1e1);}}}return null;}}class ConversationManager{constructor(_0x54e079,_0x4665ea){const _0x26f1bb=a0_0x150019;this[_0x26f1bb(0x1fc)]=_0x54e079,this['logger']=_0x4665ea,this['conversations']=new Map();}async[a0_0x150019(0x1d1)](_0x337477){const _0x378ce6=a0_0x150019;return{'messages':[],'model':_0x337477,'lastUpdated':new Date()[_0x378ce6(0x232)]()};}}export default AIService;
1
+ const a0_0x4c22d6=a0_0xa457;(function(_0x2fb4a2,_0x3296ee){const _0xa0e36c=a0_0xa457,_0xbf114b=_0x2fb4a2();while(!![]){try{const _0x33afff=-parseInt(_0xa0e36c(0x1b7))/0x1*(-parseInt(_0xa0e36c(0x1c5))/0x2)+-parseInt(_0xa0e36c(0x1aa))/0x3+-parseInt(_0xa0e36c(0x181))/0x4+-parseInt(_0xa0e36c(0x202))/0x5*(parseInt(_0xa0e36c(0x219))/0x6)+parseInt(_0xa0e36c(0x1e6))/0x7+parseInt(_0xa0e36c(0x196))/0x8*(parseInt(_0xa0e36c(0x205))/0x9)+parseInt(_0xa0e36c(0x200))/0xa;if(_0x33afff===_0x3296ee)break;else _0xbf114b['push'](_0xbf114b['shift']());}catch(_0x210b59){_0xbf114b['push'](_0xbf114b['shift']());}}}(a0_0x1bf8,0x43400));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x29c8a4,_0x451f6d,_0x4e9209,_0x1bcdf1){const _0x98222c=a0_0xa457;this['config']=_0x29c8a4,this['logger']=_0x451f6d,this[_0x98222c(0x1ab)]=_0x4e9209,this['errorHandler']=_0x1bcdf1,this[_0x98222c(0x193)]=_0x29c8a4[_0x98222c(0x19f)]?.[_0x98222c(0x193)]||_0x98222c(0x21d),this['timeout']=_0x29c8a4['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x29c8a4[_0x98222c(0x19f)]?.['retryAttempts']||0x3,this[_0x98222c(0x209)]=new Map(),this[_0x98222c(0x1ca)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x98222c(0x217)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x4c22d6(0x19a)](_0x36186f,_0x3c0e73,_0x1ace94={}){const _0x231450=a0_0x4c22d6,_0x1c1ce9='req-'+Date[_0x231450(0x1a4)]()+'-'+Math['random']()[_0x231450(0x182)](0x24)['substr'](0x2,0x9);try{if(this[_0x231450(0x1d3)]())throw new Error(_0x231450(0x1ef));await this[_0x231450(0x189)](_0x36186f);const _0x4425d0=this[_0x231450(0x1be)](_0x3c0e73,_0x36186f,_0x1ace94),_0x151c08={'model':_0x36186f,'messages':_0x4425d0,'options':{'max_tokens':this[_0x231450(0x203)][_0x36186f]?.['maxTokens']||0xfa0,'temperature':_0x1ace94[_0x231450(0x1c4)]||0.7,'stream':_0x1ace94[_0x231450(0x191)]||![]},'metadata':{'requestId':_0x1c1ce9,'agentId':_0x1ace94['agentId'],'timestamp':new Date()['toISOString']()}};_0x1ace94['systemPrompt']&&(_0x151c08['system']=_0x1ace94['systemPrompt']);this['logger'][_0x231450(0x183)]('Sending\x20message\x20to\x20model:\x20'+_0x36186f,{'requestId':_0x1c1ce9,'agentId':_0x1ace94[_0x231450(0x1b2)],'messageCount':Array['isArray'](_0x3c0e73)?_0x3c0e73['length']:0x1,'maxTokens':_0x151c08['max_tokens']});const _0x17725e=await this['_makeAPIRequest']('/chat/completions',_0x151c08,_0x1c1ce9,{..._0x1ace94,'sessionId':_0x1ace94['sessionId'],'platformProvided':_0x1ace94[_0x231450(0x194)]||![]});return _0x17725e['usage']&&await this[_0x231450(0x187)](_0x1ace94['agentId'],_0x36186f,{'prompt_tokens':_0x17725e['usage']['prompt_tokens']||0x0,'completion_tokens':_0x17725e[_0x231450(0x1ec)]['completion_tokens']||0x0,'total_tokens':_0x17725e[_0x231450(0x1ec)][_0x231450(0x1a5)]||0x0}),this[_0x231450(0x1e1)](),{'content':_0x17725e['choices'][0x0]?.['message']?.[_0x231450(0x20c)]||'','model':_0x17725e[_0x231450(0x1bc)],'tokenUsage':_0x17725e[_0x231450(0x1ec)],'requestId':_0x1c1ce9,'finishReason':_0x17725e[_0x231450(0x204)][0x0]?.['finish_reason']};}catch(_0x2453bd){this['_recordFailure'](),this[_0x231450(0x18a)][_0x231450(0x1ee)](_0x231450(0x1a8)+_0x2453bd[_0x231450(0x1d4)],{'requestId':_0x1c1ce9,'model':_0x36186f,'agentId':_0x1ace94['agentId'],'error':_0x2453bd[_0x231450(0x1d5)]}),await this[_0x231450(0x1f3)](_0x2453bd,{'requestId':_0x1c1ce9,'model':_0x36186f,'agentId':_0x1ace94[_0x231450(0x1b2)]});throw _0x2453bd;}}async[a0_0x4c22d6(0x17b)](_0xe76ff6,_0x15ec10={}){const _0x3f24b4=a0_0x4c22d6;try{const _0x1e97b4=MODEL_ROUTING[_0xe76ff6[_0x3f24b4(0x1e0)]()]||MODEL_ROUTING[_0x3f24b4(0x1c1)],_0x7e43bb=[];for(const _0x3f2438 of _0x1e97b4){const _0x551825=await this[_0x3f24b4(0x17d)](_0x3f2438);_0x551825&&_0x7e43bb['push'](_0x3f2438);}if(_0x7e43bb['length']===0x0)return this['logger']['warn'](_0x3f24b4(0x195)+_0xe76ff6+_0x3f24b4(0x1d7)),MODEL_ROUTING[_0x3f24b4(0x1c1)][0x0];let _0x377e4c=_0x7e43bb[0x0];if(_0x15ec10['preferredModel']&&_0x7e43bb['includes'](_0x15ec10['preferredModel']))_0x377e4c=_0x15ec10[_0x3f24b4(0x1cd)];else{if(_0x15ec10[_0x3f24b4(0x1c7)]===_0x3f24b4(0x1d0)&&_0x7e43bb['includes'](MODELS['ANTHROPIC_OPUS']))_0x377e4c=MODELS['ANTHROPIC_OPUS'];else _0x15ec10['speed']==='fast'&&_0x7e43bb['includes'](MODELS[_0x3f24b4(0x1e4)])&&(_0x377e4c=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info']('Model\x20routed\x20for\x20task:\x20'+_0xe76ff6,{'selectedModel':_0x377e4c,'availableModels':_0x7e43bb['length'],'context':_0x15ec10}),_0x377e4c;}catch(_0x5a12a9){return this['logger']['error']('Model\x20routing\x20failed:\x20'+_0x5a12a9['message'],{'task':_0xe76ff6,'context':_0x15ec10}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x4c22d6(0x1af)](_0x1ed3da,_0x2cc762){const _0x42c5aa=a0_0x4c22d6,_0x45bbce=this['modelSpecs'][_0x2cc762];if(!_0x45bbce)throw new Error('Unknown\x20model:\x20'+_0x2cc762);const _0x559cf5=_0x45bbce[_0x42c5aa(0x210)]*0.8;let _0x121f12=0x0;const _0x56256e=[],_0x1a47a0=await Promise[_0x42c5aa(0x1e3)](_0x1ed3da[_0x42c5aa(0x212)](async _0x2cde7c=>({..._0x2cde7c,'estimatedTokens':await this[_0x42c5aa(0x1bb)](_0x2cde7c[_0x42c5aa(0x20c)],_0x2cc762)}))),_0x458317=[..._0x1a47a0][_0x42c5aa(0x1de)]();for(const _0x41f2e3 of _0x458317){if(_0x121f12+_0x41f2e3[_0x42c5aa(0x1b3)]>_0x559cf5){if(_0x56256e['length']===0x0){const _0x20c607=await this['_truncateMessage'](_0x41f2e3['content'],_0x559cf5);_0x56256e['unshift']({..._0x41f2e3,'content':_0x20c607,'estimatedTokens':_0x559cf5});}break;}_0x56256e['unshift'](_0x41f2e3),_0x121f12+=_0x41f2e3[_0x42c5aa(0x1b3)];}const _0x5d999e=_0x1a47a0['slice'](0x0,-_0x56256e[_0x42c5aa(0x1dc)]);if(_0x5d999e['length']>0x0){const _0x4488f3=await this['_summarizeMessages'](_0x5d999e,_0x2cc762);_0x56256e['unshift']({'role':_0x42c5aa(0x1eb),'content':'Previous\x20conversation\x20summary:\x20'+_0x4488f3,'timestamp':_0x5d999e[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x42c5aa(0x1bb)](_0x4488f3,_0x2cc762)});}return this['logger'][_0x42c5aa(0x183)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x2cc762,{'originalMessages':_0x1ed3da['length'],'compactizedMessages':_0x56256e['length'],'estimatedTokens':_0x121f12,'maxTokens':_0x559cf5}),_0x56256e;}async[a0_0x4c22d6(0x187)](_0x2a085c,_0x3ec304,_0x348b07,_0x4ede6d){const _0x55cd70=a0_0x4c22d6;try{this['budgetService']&&this[_0x55cd70(0x1ab)]['trackUsage'](_0x2a085c,_0x3ec304,_0x348b07);}catch(_0x6724ea){this['logger']['error'](_0x55cd70(0x19e)+_0x6724ea[_0x55cd70(0x1d4)]);}}async[a0_0x4c22d6(0x1f3)](_0x362f27,_0x2b4f4b){const _0x1aaaeb=a0_0x4c22d6,_0x18fc7b=this[_0x1aaaeb(0x1a2)]?.[_0x1aaaeb(0x1c9)]?.(_0x362f27,_0x2b4f4b);switch(_0x362f27['status']||_0x362f27[_0x1aaaeb(0x18e)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x1aaaeb(0x1ee)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x2b4f4b,'error':_0x362f27['message']});throw new Error(_0x1aaaeb(0x18f)+_0x362f27[_0x1aaaeb(0x1d4)]);case HTTP_STATUS[_0x1aaaeb(0x1fe)]:this['logger'][_0x1aaaeb(0x1ee)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2b4f4b});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x1aaaeb(0x18a)]['error'](_0x1aaaeb(0x1f8),{'context':_0x2b4f4b});throw new Error(_0x1aaaeb(0x1b5));case HTTP_STATUS[_0x1aaaeb(0x179)]:this[_0x1aaaeb(0x18a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x2b4f4b});throw new Error(_0x1aaaeb(0x1a3));case HTTP_STATUS[_0x1aaaeb(0x21a)]:this[_0x1aaaeb(0x18a)][_0x1aaaeb(0x1b0)]('Rate\x20limit\x20exceeded',{'context':_0x2b4f4b}),await this['_handleRateLimit'](_0x2b4f4b);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS[_0x1aaaeb(0x21b)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x1aaaeb(0x198)]:this['logger']['error'](_0x1aaaeb(0x1e9),{'context':_0x2b4f4b,'status':_0x362f27[_0x1aaaeb(0x192)]}),await this['_handleServiceUnavailable'](_0x2b4f4b);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger'][_0x1aaaeb(0x1ee)]('Unknown\x20AI\x20service\x20error',{'context':_0x2b4f4b,'error':_0x362f27['message']});throw new Error('AI\x20service\x20error:\x20'+_0x362f27[_0x1aaaeb(0x1d4)]);}}['setApiKeyManager'](_0x18e299){const _0x455558=a0_0x4c22d6;this[_0x455558(0x1d6)]=_0x18e299,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x18e299});}[a0_0x4c22d6(0x1c3)](_0x3aef81){const _0x3e3b26=a0_0x4c22d6;this[_0x3e3b26(0x18d)]=_0x3aef81,this['logger']?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3aef81});}async[a0_0x4c22d6(0x213)](_0x542e08,_0x57e17d={}){const _0x599a58=a0_0x4c22d6,_0x44f4c6='img-'+Date[_0x599a58(0x1a4)]()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x542e08||typeof _0x542e08!=='string'||_0x542e08[_0x599a58(0x214)]()[_0x599a58(0x1dc)]===0x0)throw new Error(_0x599a58(0x20f));const _0x416600=_0x57e17d[_0x599a58(0x1bc)]||_0x599a58(0x20e),_0x3f1389=_0x57e17d[_0x599a58(0x1c0)]||_0x599a58(0x1cf),_0x17053a=_0x57e17d['quality']||'standard',_0x2156e2=_0x57e17d[_0x599a58(0x1fa)]||'url';this[_0x599a58(0x18a)]['info'](_0x599a58(0x1ff)+_0x416600,{'requestId':_0x44f4c6,'model':_0x416600,'size':_0x3f1389,'quality':_0x17053a,'promptLength':_0x542e08['length']});const _0xbb889e={'prompt':_0x542e08,'model':_0x416600,'size':_0x3f1389,'quality':_0x17053a,'response_format':_0x2156e2,'n':0x1,'metadata':{'requestId':_0x44f4c6,'timestamp':new Date()['toISOString']()}},_0x5b65c1=await this[_0x599a58(0x1bf)](_0xbb889e,_0x44f4c6,{'sessionId':_0x57e17d['sessionId'],'platformProvided':_0x57e17d[_0x599a58(0x194)]||![]});return this[_0x599a58(0x1e1)](),{'url':_0x5b65c1[_0x599a58(0x208)]?.[0x0]?.[_0x599a58(0x21c)]||null,'b64_json':_0x5b65c1['data']?.[0x0]?.[_0x599a58(0x1a0)]||null,'model':_0x5b65c1['model']||_0x416600,'requestId':_0x44f4c6,'revisedPrompt':_0x5b65c1['data']?.[0x0]?.[_0x599a58(0x1f6)]||_0x542e08};}catch(_0x263ca8){this['_recordFailure'](),this['logger'][_0x599a58(0x1ee)]('Image\x20generation\x20failed:\x20'+_0x263ca8['message'],{'requestId':_0x44f4c6,'model':_0x57e17d['model'],'error':_0x263ca8[_0x599a58(0x1d5)]});throw _0x263ca8;}}async[a0_0x4c22d6(0x19c)](){const _0x2ed4b7=a0_0x4c22d6;try{const _0x41b794=await this[_0x2ed4b7(0x1d1)](_0x2ed4b7(0x1df),{},'health-check');return _0x41b794[_0x2ed4b7(0x192)]==='healthy';}catch(_0x12c10c){return![];}}async['switchAgentModel'](_0x3c6d56,_0x32c9b8){const _0x44b508=a0_0x4c22d6;try{if(!this['_isValidModel'](_0x32c9b8))throw new Error(_0x44b508(0x1db)+_0x32c9b8);let _0x17f5ee=this['conversationManagers']['get'](_0x3c6d56);!_0x17f5ee&&(_0x17f5ee=new ConversationManager(_0x3c6d56,this['logger']),this[_0x44b508(0x217)]['set'](_0x3c6d56,_0x17f5ee));const _0x36f745=await _0x17f5ee['switchModel'](_0x32c9b8),_0x100c47=await this[_0x44b508(0x18d)]?.['getAgent'](_0x3c6d56);return _0x100c47&&(_0x100c47[_0x44b508(0x207)]=_0x32c9b8,await this['agentPool']['persistAgentState'](_0x3c6d56)),this[_0x44b508(0x18a)][_0x44b508(0x183)](_0x44b508(0x17f)+_0x3c6d56,{'newModel':_0x32c9b8,'messageCount':_0x36f745['messages']['length']}),{'success':!![],'agentId':_0x3c6d56,'newModel':_0x32c9b8,'conversation':_0x36f745};}catch(_0x205f6f){this[_0x44b508(0x18a)]['error'](_0x44b508(0x19d)+_0x205f6f['message'],{'agentId':_0x3c6d56,'newModel':_0x32c9b8});throw _0x205f6f;}}['_initializeModelSpecs'](){const _0x154fe1=a0_0x4c22d6,_0x4e048c={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x154fe1(0x1fc)]]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x1da)],'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['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[_0x154fe1(0x1da)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x154fe1(0x1f1)]]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x1d8)],'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':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x154fe1(0x1bd),'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':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x154fe1(0x1bd),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x4e048c;}[a0_0x4c22d6(0x1be)](_0x54deec,_0x258f5d,_0x53168e){const _0x2ea61a=a0_0x4c22d6,_0xa76cef=this['modelSpecs'][_0x258f5d]||{'provider':'AZURE'};let _0x49e53a;typeof _0x54deec===_0x2ea61a(0x1cc)?_0x49e53a=[{'role':_0x2ea61a(0x1b1),'content':_0x54deec}]:_0x49e53a=_0x54deec[_0x2ea61a(0x212)](_0x27c0e2=>this[_0x2ea61a(0x1c6)](_0x27c0e2,_0x258f5d));switch(_0xa76cef[_0x2ea61a(0x186)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x49e53a);case MODEL_PROVIDERS['OPENAI']:return this[_0x2ea61a(0x1f2)](_0x49e53a);case MODEL_PROVIDERS[_0x2ea61a(0x1bd)]:return this['_formatForAzure'](_0x49e53a);default:return _0x49e53a;}}['_formatSingleMessage'](_0x280d00,_0x3ba1f6){const _0x5ee02a=a0_0x4c22d6;return{'role':_0x280d00['role']||_0x5ee02a(0x1b1),'content':_0x280d00['content'],'timestamp':_0x280d00['timestamp']};}['_formatForAnthropic'](_0x1d164b){return _0x1d164b['map'](_0x4fcbb3=>{const _0x23701e=a0_0xa457;if(_0x4fcbb3['role']===_0x23701e(0x1eb))return{'role':_0x23701e(0x1b1),'content':'System:\x20'+_0x4fcbb3[_0x23701e(0x20c)]};return _0x4fcbb3;});}[a0_0x4c22d6(0x1f2)](_0x482f22){return _0x482f22;}['_formatForAzure'](_0x25997b){const _0x5b6afb=a0_0x4c22d6;return _0x25997b['map'](_0x4513dd=>({..._0x4513dd,'content':typeof _0x4513dd[_0x5b6afb(0x20c)]==='string'?_0x4513dd['content']:JSON['stringify'](_0x4513dd[_0x5b6afb(0x20c)])}));}[a0_0x4c22d6(0x1b6)](_0x1a03fc){const _0x1ff307=a0_0x4c22d6;this['logger'][_0x1ff307(0x19b)]('Validating\x20model',{'model':_0x1a03fc,'modelType':typeof _0x1a03fc});if(this[_0x1ff307(0x203)][_0x1a03fc]!==undefined)return!![];return this['logger'][_0x1ff307(0x1b0)](_0x1ff307(0x188),{'model':_0x1a03fc,'availableModels':Object['keys'](this[_0x1ff307(0x203)])}),![];}async[a0_0x4c22d6(0x17d)](_0x973ba9){return!![];}async[a0_0x4c22d6(0x1bb)](_0x535a12,_0x433001){return Math['ceil'](_0x535a12['length']/0x4);}async[a0_0x4c22d6(0x1ce)](_0x17f4e0,_0x3f2486){const _0x4c5bd1=a0_0x4c22d6,_0x491278=_0x3f2486*0x4;if(_0x17f4e0['length']<=_0x491278)return _0x17f4e0;return _0x17f4e0['substring'](0x0,_0x491278-0x14)+_0x4c5bd1(0x206);}async['_summarizeMessages'](_0x16e3b1,_0x55de4f){const _0x3d4430=a0_0x4c22d6,_0x1369e5=_0x16e3b1[_0x3d4430(0x212)](_0x41feb1=>_0x41feb1['role']+':\x20'+_0x41feb1[_0x3d4430(0x20c)])['join']('\x0a'),_0x4f5b46=0x1f4;if(_0x1369e5[_0x3d4430(0x1dc)]<=_0x4f5b46)return _0x1369e5;return _0x1369e5['substring'](0x0,_0x4f5b46)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x3e6882,_0x433b70,_0x3ee6a1,_0x1167e4={}){const _0x211093=a0_0x4c22d6,_0x3a625f='https://autopilot-api.azurewebsites.net/llm/chat';let _0x2f5417,_0x18d63b=null,_0x598512=null;this[_0x211093(0x18a)]?.['info'](_0x211093(0x1e8),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1167e4[_0x211093(0x1d9)],'hasSessionId':!!_0x1167e4['sessionId'],'optionsKeys':Object['keys'](_0x1167e4),'model':_0x433b70['model']});if(this[_0x211093(0x1d6)]&&_0x1167e4['sessionId']){const _0xe37fce=this[_0x211093(0x1d6)][_0x211093(0x1f4)](_0x1167e4[_0x211093(0x1d9)],{'platformProvided':_0x1167e4['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x433b70[_0x211093(0x1bc)])});_0x18d63b=_0xe37fce[_0x211093(0x1cb)],_0x598512=_0xe37fce['vendorApiKey'],this['logger']?.[_0x211093(0x19b)]('Retrieved API keys from session manager',{'sessionId':_0x1167e4['sessionId'],'hasLoxiaKey':!!_0x18d63b,'hasVendorKey':!!_0x598512,'vendor':this[_0x211093(0x1ae)](_0x433b70['model'])});}!_0x18d63b&&_0x1167e4['apiKey']&&(_0x18d63b=_0x1167e4[_0x211093(0x1c8)]);!_0x18d63b&&this[_0x211093(0x201)]['apiKey']&&(_0x18d63b=this['config'][_0x211093(0x1c8)]);if(!_0x18d63b)throw new Error(_0x211093(0x216));const _0x2634d6=_0x433b70['model'],_0x16a0a5={'conversationId':_0x3ee6a1,'message':_0x433b70[_0x211093(0x1b8)][_0x433b70[_0x211093(0x1b8)]['length']-0x1]?.[_0x211093(0x20c)]||'','messages':_0x433b70['messages'],'model':_0x2634d6,'requestId':_0x3ee6a1,'options':_0x433b70['options']||{},'platformProvided':_0x1167e4['platformProvided']||![]};_0x433b70[_0x211093(0x1eb)]&&(_0x16a0a5[_0x211093(0x1e7)]=_0x433b70['system']);_0x1167e4[_0x211093(0x194)]?_0x16a0a5[_0x211093(0x1c8)]=_0x18d63b:(_0x598512&&(_0x16a0a5['vendorApiKey']=_0x598512),_0x1167e4['customApiKeys']&&(_0x16a0a5['customApiKeys']=_0x1167e4['customApiKeys']),_0x16a0a5['apiKey']=_0x18d63b);for(let _0x5e459e=0x1;_0x5e459e<=this['retryAttempts'];_0x5e459e++){try{this['logger']['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3a625f,'model':_0x433b70['model'],'requestId':_0x3ee6a1,'attempt':_0x5e459e,'hasApiKey':!!_0x18d63b});const _0x2e6fa2=await fetch(_0x3a625f,{'method':'POST','headers':{'Content-Type':_0x211093(0x1f5),'Authorization':'Bearer\x20'+_0x18d63b,'X-Request-ID':_0x3ee6a1},'body':JSON[_0x211093(0x215)](_0x16a0a5),'timeout':this[_0x211093(0x1fd)]});if(!_0x2e6fa2['ok']){const _0x2c022f=await _0x2e6fa2['text'](),_0x193b85=new Error(_0x211093(0x17c)+_0x2e6fa2[_0x211093(0x192)]+':\x20'+_0x2e6fa2['statusText']+(_0x2c022f?'\x20-\x20'+_0x2c022f:''));_0x193b85[_0x211093(0x192)]=_0x2e6fa2['status'];throw _0x193b85;}const _0x1d56ff=await _0x2e6fa2[_0x211093(0x218)]();return{'choices':[{'message':{'content':_0x1d56ff[_0x211093(0x20c)]||'','role':_0x211093(0x180)},'finish_reason':_0x1d56ff['finishReason']||_0x211093(0x211)}],'usage':_0x1d56ff['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x1d56ff[_0x211093(0x1bc)]||_0x433b70[_0x211093(0x1bc)],'id':_0x1d56ff['requestId']||_0x3ee6a1};}catch(_0x219f66){_0x2f5417=_0x219f66,this['logger']['warn']('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x5e459e,'requestId':_0x3ee6a1,'error':_0x219f66[_0x211093(0x1d4)],'status':_0x219f66[_0x211093(0x192)]});if(_0x5e459e<this[_0x211093(0x18c)]){const _0x78caca=Math[_0x211093(0x1ea)](0x2,_0x5e459e)*0x3e8;this['logger']['warn']('Retrying\x20in\x20'+_0x78caca+'ms',{'attempt':_0x5e459e,'requestId':_0x3ee6a1}),await new Promise(_0x2e1511=>setTimeout(_0x2e1511,_0x78caca));}}}this[_0x211093(0x18a)]['error']('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x3ee6a1,'error':_0x2f5417['message']});const _0x4753f6=_0x2f5417['message']&&_0x2f5417[_0x211093(0x1d4)][_0x211093(0x1a6)](_0x211093(0x1ed));if(_0x4753f6)throw new Error(_0x211093(0x21e)+_0x2f5417['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x2f5417[_0x211093(0x1d4)],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x433b70['model'],'id':_0x211093(0x1ba)+_0x3ee6a1,'error':_0x2f5417[_0x211093(0x1d4)]};}async[a0_0x4c22d6(0x1bf)](_0x588c75,_0x27ddf2,_0x379627={}){const _0x291b56=a0_0x4c22d6,_0x4e9693='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x563b79,_0x1f360e=null,_0xb60f69=null;this[_0x291b56(0x18a)]?.[_0x291b56(0x183)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x291b56(0x1d6)],'sessionId':_0x379627['sessionId'],'hasSessionId':!!_0x379627[_0x291b56(0x1d9)],'model':_0x588c75[_0x291b56(0x1bc)]});if(this['apiKeyManager']&&_0x379627['sessionId']){const _0x38d932=this[_0x291b56(0x1d6)][_0x291b56(0x1f4)](_0x379627['sessionId'],{'platformProvided':_0x379627['platformProvided']||![],'vendor':this[_0x291b56(0x1ae)](_0x588c75[_0x291b56(0x1bc)])});_0x1f360e=_0x38d932['loxiaApiKey'],_0xb60f69=_0x38d932[_0x291b56(0x20a)],this[_0x291b56(0x18a)]?.[_0x291b56(0x19b)]('Retrieved API keys from session manager for image',{'sessionId':_0x379627[_0x291b56(0x1d9)],'hasLoxiaKey':!!_0x1f360e,'hasVendorKey':!!_0xb60f69});}!_0x1f360e&&_0x379627[_0x291b56(0x1c8)]&&(_0x1f360e=_0x379627['apiKey']);!_0x1f360e&&this['config']['apiKey']&&(_0x1f360e=this[_0x291b56(0x201)][_0x291b56(0x1c8)]);if(!_0x1f360e)throw new Error(_0x291b56(0x216));const _0x1f59ac={'prompt':_0x588c75[_0x291b56(0x1ac)],'model':_0x588c75[_0x291b56(0x1bc)]||'azure-openai-dalle3','size':_0x588c75['size'],'quality':_0x588c75['quality'],'style':_0x588c75[_0x291b56(0x199)]||_0x291b56(0x1a9),'n':_0x588c75['n']||0x1,'requestId':_0x27ddf2};for(let _0x28c297=0x1;_0x28c297<=this['retryAttempts'];_0x28c297++){try{this['logger'][_0x291b56(0x183)](_0x291b56(0x1dd),{'url':_0x4e9693,'model':_0x588c75['model'],'requestId':_0x27ddf2,'attempt':_0x28c297,'hasApiKey':!!_0x1f360e});const _0x14d993=await fetch(_0x4e9693,{'method':_0x291b56(0x1fb),'headers':{'Content-Type':_0x291b56(0x1f5),'Authorization':_0x291b56(0x17a)+_0x1f360e,'X-Request-ID':_0x27ddf2},'body':JSON['stringify'](_0x1f59ac),'timeout':this[_0x291b56(0x1fd)]*0x2});if(!_0x14d993['ok']){const _0x43075e=await _0x14d993[_0x291b56(0x1c2)](),_0x27ff73=new Error('HTTP\x20'+_0x14d993['status']+':\x20'+_0x14d993['statusText']+(_0x43075e?'\x20-\x20'+_0x43075e:''));_0x27ff73['status']=_0x14d993[_0x291b56(0x192)];throw _0x27ff73;}const _0x4cc799=await _0x14d993['json']();return{'data':_0x4cc799['images']||[],'model':_0x4cc799['model']||_0x588c75['model'],'created':_0x4cc799[_0x291b56(0x1a7)]||Date[_0x291b56(0x1a4)](),'usage':_0x4cc799[_0x291b56(0x1ec)]};}catch(_0x109984){_0x563b79=_0x109984,this[_0x291b56(0x18a)][_0x291b56(0x1b0)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x28c297,'requestId':_0x27ddf2,'error':_0x109984['message'],'status':_0x109984[_0x291b56(0x192)]});if(_0x28c297<this[_0x291b56(0x18c)]){const _0x336f4c=Math[_0x291b56(0x1ea)](0x2,_0x28c297)*0x3e8;this['logger'][_0x291b56(0x1b0)]('Retrying\x20in\x20'+_0x336f4c+'ms',{'attempt':_0x28c297,'requestId':_0x27ddf2}),await new Promise(_0x569cb1=>setTimeout(_0x569cb1,_0x336f4c));}}}this[_0x291b56(0x18a)][_0x291b56(0x1ee)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x27ddf2,'error':_0x563b79['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x563b79[_0x291b56(0x1d4)]);}async['_checkRateLimit'](_0x48a24d){await new Promise(_0x11e708=>setTimeout(_0x11e708,0x64));}async[a0_0x4c22d6(0x197)](_0x10908c){const _0x2e88f7=a0_0x4c22d6,_0x3f1cc8=0xea60;this['logger'][_0x2e88f7(0x183)](_0x2e88f7(0x184)+_0x3f1cc8+'ms',_0x10908c),await new Promise(_0x38c8a3=>setTimeout(_0x38c8a3,_0x3f1cc8));}async[a0_0x4c22d6(0x1a1)](_0x56a5b1){const _0x24875c=a0_0x4c22d6;this['_recordFailure']();const _0x53516b=0x7530;this['logger'][_0x24875c(0x183)](_0x24875c(0x1b9)+_0x53516b+'ms',_0x56a5b1),await new Promise(_0x251056=>setTimeout(_0x251056,_0x53516b));}['_isCircuitBreakerOpen'](){const _0x2e2cde=a0_0x4c22d6;if(!this['circuitBreaker'][_0x2e2cde(0x1f0)])return![];const _0x16b0e3=Date[_0x2e2cde(0x1a4)]()-this['circuitBreaker'][_0x2e2cde(0x1ad)];if(_0x16b0e3>this[_0x2e2cde(0x17e)]['timeout'])return this['circuitBreaker'][_0x2e2cde(0x1f0)]=![],this[_0x2e2cde(0x17e)]['failures']=0x0,![];return!![];}[a0_0x4c22d6(0x1b4)](){const _0x1f7ca9=a0_0x4c22d6;this[_0x1f7ca9(0x17e)]['failures']++,this[_0x1f7ca9(0x17e)]['lastFailureTime']=Date[_0x1f7ca9(0x1a4)](),this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x18b)]>=this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x1f7)]&&(this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x1f0)]=!![],this['logger']['warn'](_0x1f7ca9(0x1d2)));}[a0_0x4c22d6(0x1e1)](){const _0x1f8a99=a0_0x4c22d6;this[_0x1f8a99(0x17e)][_0x1f8a99(0x18b)]>0x0&&(this[_0x1f8a99(0x17e)]['failures']=0x0,this['circuitBreaker'][_0x1f8a99(0x1f0)]=![],this['logger'][_0x1f8a99(0x183)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x4c22d6(0x1ae)](_0x2a4ae5){const _0x55afcb=a0_0x4c22d6;if(!_0x2a4ae5)return null;const _0x4e7fc5=_0x2a4ae5['toLowerCase']();if(_0x4e7fc5['includes']('anthropic')||_0x4e7fc5[_0x55afcb(0x1a6)](_0x55afcb(0x20b)))return _0x55afcb(0x190);else{if(_0x4e7fc5[_0x55afcb(0x1a6)](_0x55afcb(0x20d))||_0x4e7fc5[_0x55afcb(0x1a6)]('gpt'))return'openai';else{if(_0x4e7fc5['includes']('deepseek'))return _0x55afcb(0x1e2);else{if(_0x4e7fc5[_0x55afcb(0x1a6)]('phi'))return _0x55afcb(0x1f9);}}}return null;}}class ConversationManager{constructor(_0x45d1a2,_0x3a7a8c){const _0x48a5d0=a0_0x4c22d6;this[_0x48a5d0(0x1b2)]=_0x45d1a2,this[_0x48a5d0(0x18a)]=_0x3a7a8c,this['conversations']=new Map();}async['switchModel'](_0x3cf9ef){const _0xa4e811=a0_0x4c22d6;return{'messages':[],'model':_0x3cf9ef,'lastUpdated':new Date()[_0xa4e811(0x1e5)]()};}}function a0_0xa457(_0x3b0189,_0x24f9e5){_0x3b0189=_0x3b0189-0x179;const _0x1bf8f9=a0_0x1bf8();let _0xa45750=_0x1bf8f9[_0x3b0189];if(a0_0xa457['VVtUrl']===undefined){var _0x5c366=function(_0x90f73d){const _0x434590='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29c8a4='',_0x451f6d='';for(let _0x4e9209=0x0,_0x1bcdf1,_0x36186f,_0x3c0e73=0x0;_0x36186f=_0x90f73d['charAt'](_0x3c0e73++);~_0x36186f&&(_0x1bcdf1=_0x4e9209%0x4?_0x1bcdf1*0x40+_0x36186f:_0x36186f,_0x4e9209++%0x4)?_0x29c8a4+=String['fromCharCode'](0xff&_0x1bcdf1>>(-0x2*_0x4e9209&0x6)):0x0){_0x36186f=_0x434590['indexOf'](_0x36186f);}for(let _0x1ace94=0x0,_0x1c1ce9=_0x29c8a4['length'];_0x1ace94<_0x1c1ce9;_0x1ace94++){_0x451f6d+='%'+('00'+_0x29c8a4['charCodeAt'](_0x1ace94)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x451f6d);};a0_0xa457['IAbIJu']=_0x5c366,a0_0xa457['xetLEm']={},a0_0xa457['VVtUrl']=!![];}const _0xcafd5b=_0x1bf8f9[0x0],_0x3ca9f3=_0x3b0189+_0xcafd5b,_0x491de8=a0_0xa457['xetLEm'][_0x3ca9f3];return!_0x491de8?(_0xa45750=a0_0xa457['IAbIJu'](_0xa45750),a0_0xa457['xetLEm'][_0x3ca9f3]=_0xa45750):_0xa45750=_0x491de8,_0xa45750;}function a0_0x1bf8(){const _0x51b182=['sw52ywXPzcbTB2rLBdOG','BgvUz3rO','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','CMv2zxjZzq','l2HLywX0Aa','Dg9vChbLCKnHC2u','x3jLC2v0q2LYy3vPDejYzwfRzxi','zgvLChnLzwS','ywXS','qu5usfjpueLdx0HbsuTv','Dg9ju09tDhjPBMC','mZyZndu0n1vmrvjcvW','C3LZDgvTuhjVBxb0','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','Cg93','C3LZDgvT','DxnHz2u','tM8GqvbjigTLEsbJB25MAwD1CMvK','zxjYB3i','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','AxnpCgvU','revfufnfruTFuJe','x2zVCM1HDezVCK9Wzw5bsq','AgfUzgXLshr0CevYCM9Y','z2v0s2v5C0zVCLjLCxvLC3q','yxbWBgLJyxrPB24VANnVBG','CMv2AxnLzf9WCM9TChq','DgHYzxnOB2XK','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','BwLJCM9ZB2z0','CMvZCg9UC2vgB3jTyxq','ue9tva','qu5usfjpueLdx09qvvm','DgLTzw91Da','vu5bvvrit1jjwKve','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','mJq2ntK0meHrBxnfAa','y29UzMLN','nZu1A21bueLo','Bw9KzwXtCgvJCW','y2HVAwnLCW','ntr0qvfeEeK','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','y3vYCMvUDe1VzgvS','zgf0yq','CMf0zuXPBwL0zxjZ','DMvUzg9YqxbPs2v5','y2XHDwrL','y29UDgvUDa','B3bLBMfP','zMX1Ec0XlJeTChjV','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','y29UDgv4DfDPBMrVDW','C3rVCa','BwfW','z2vUzxjHDgvjBwfNzq','DhjPBq','C3rYAw5NAwz5','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','y29UDMvYC2f0Aw9UtwfUywDLCNm','ANnVBG','mtuYotrHC2HAtxO','ve9px01btLLFuKvrvuvtvfm','su5urvjoquXFu0vsvKvsx0vsuK9s','DxjS','Ahr0Chm6lY9HCgKUBg94AweUywK','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','tK9ux0zpvu5e','qMvHCMvYia','CM91DgvnB2rLBa','sfruuca','x2nOzwnRtw9KzwXizwfSDgG','y2LYy3vPDejYzwfRzxi','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','yxnZAxn0yw50','ndy4odi4r2jmvLP2','Dg9tDhjPBMC','Aw5MBW','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','qu5usfjpueLd','ChjVDMLKzxi','DhjHy2TvC2fNzq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','x2nOzwnRuMf0zuXPBwL0','Bg9Nz2vY','zMfPBhvYzxm','CMv0CNLbDhrLBxb0CW','ywDLBNrqB29S','y29Kzq','sw52ywXPzcbYzxf1zxn0oIa','yw50AhjVCgLJ','C3rYzwfT','C3rHDhvZ','yMfZzvvYBa','CgXHDgzVCM1qCM92AwrLza','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','ntKXmKTNuuXpBW','x2HHBMrSzvjHDgvmAw1PDa','r0furvDbwv9usu1ft1vu','C3r5Bgu','C2vUze1LC3nHz2u','zgvIDwC','y2HLy2Ttzxj2AwnLsgvHBhrO','tw9KzwWGC3DPDgnOigzHAwXLzdOG','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','yMfJA2vUza','yJy0x2PZB24','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zxjYB3jiyw5KBgvY','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','BM93','Dg90ywXFDg9Rzw5Z','Aw5JBhvKzxm','y3jLyxrLza','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','DML2Awq','oty1mtm5EvLQwuT4','yNvKz2v0u2vYDMLJzq','ChjVBxb0','BgfZDezHAwX1CMvuAw1L','x2DLDfzLBMrVCKzYB21nB2rLBa','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','D2fYBG','DxnLCG','ywDLBNrjza','zxn0Aw1HDgvKvg9Rzw5Z','x3jLy29YzezHAwX1CMu','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','x2LZvMfSAwrnB2rLBa','mZi5mdi2sujfANri','BwvZC2fNzxm','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','zxjYB3iT','x2vZDgLTyxrLvg9Rzw5Z','Bw9KzwW','qvPvuKu','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','x21HA2vjBwfNzufqsvjLCxvLC3q','C2L6zq','rKfmtejbq0S','Dgv4Da','C2v0qwDLBNrqB29S','DgvTCgvYyxr1CMu','mKDgshfsvq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','y29TCgXLEgL0Eq','yxbPs2v5','y2XHC3nPzNLfCNjVCG','CMvXDwvZDff1zxvL','Bg94AwfbCgLlzxK','C3rYAw5N','ChjLzMvYCMvKtw9KzwW','x3rYDw5JyxrLtwvZC2fNzq','mtaYnhGXmdi0','AgLNAa','x21HA2vbueLszxf1zxn0','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','x2LZq2LYy3vPDejYzwfRzxjpCgvU','BwvZC2fNzq','C3rHy2S','yxbPs2v5twfUywDLCG','lcb1C2LUzYbMywXSyMfJAW','revfufnfruS','C2vZC2LVBKLK','t1bftKfj'];a0_0x1bf8=function(){return _0x51b182;};return a0_0x1bf8();}export default AIService;
@@ -1 +1 @@
1
- function a0_0x3b83(){const _0x307628=['q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','DMvUzg9Y','mtG1nde1Au1IAwnJ','z2v0','Aw5MBW','C2vZC2LVBKTLExm','mJmZndy0n1HpvwHKEG','z2v0u2vZC2LVBKTLExm','zNjVBq','mMH5qNfyza','z2v0s2v5C0zVCLjLCxvLC3q','zgvSzxrL','mtuXmJe4nhrVtM5PzG','C2L6zq','z2XVyMfSs2v5CW','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','nZq4mZCYAuzuD09S','Bg9Nz2vY','CgXHDgzVCM1qCM92AwrLza','nKjNAuvSyW','Bg94AwfbCgLlzxK','DxbKyxrLzef0','DMvUzg9YqxbPs2v5','ndK1otKZmgrLte1cqq','ndm3nNLds0Thua','Dg9ju09tDhjPBMC','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','C2v0r2XVyMfSs2v5CW','odKXmdy2Eu5cvfjX','oxHUvKH1vG','DMvUzg9Ys2v5CW'];a0_0x3b83=function(){return _0x307628;};return a0_0x3b83();}function a0_0x2834(_0x357e6f,_0x43cea9){_0x357e6f=_0x357e6f-0x13b;const _0x3b8346=a0_0x3b83();let _0x2834d3=_0x3b8346[_0x357e6f];if(a0_0x2834['RpOyaS']===undefined){var _0xf445eb=function(_0x2f01d7){const _0x1361cb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x127852='',_0x5bd500='';for(let _0x401ded=0x0,_0x586bfe,_0x27b6a5,_0x4e19b7=0x0;_0x27b6a5=_0x2f01d7['charAt'](_0x4e19b7++);~_0x27b6a5&&(_0x586bfe=_0x401ded%0x4?_0x586bfe*0x40+_0x27b6a5:_0x27b6a5,_0x401ded++%0x4)?_0x127852+=String['fromCharCode'](0xff&_0x586bfe>>(-0x2*_0x401ded&0x6)):0x0){_0x27b6a5=_0x1361cb['indexOf'](_0x27b6a5);}for(let _0x817c41=0x0,_0x124588=_0x127852['length'];_0x817c41<_0x124588;_0x817c41++){_0x5bd500+='%'+('00'+_0x127852['charCodeAt'](_0x817c41)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bd500);};a0_0x2834['joDVaY']=_0xf445eb,a0_0x2834['nTcoAk']={},a0_0x2834['RpOyaS']=!![];}const _0x2a9617=_0x3b8346[0x0],_0x1efa85=_0x357e6f+_0x2a9617,_0x576e01=a0_0x2834['nTcoAk'][_0x1efa85];return!_0x576e01?(_0x2834d3=a0_0x2834['joDVaY'](_0x2834d3),a0_0x2834['nTcoAk'][_0x1efa85]=_0x2834d3):_0x2834d3=_0x576e01,_0x2834d3;}const a0_0x569524=a0_0x2834;(function(_0x5cec48,_0x5e1f1a){const _0x476532=a0_0x2834,_0xf14ed4=_0x5cec48();while(!![]){try{const _0xcc9a26=-parseInt(_0x476532(0x140))/0x1*(parseInt(_0x476532(0x150))/0x2)+parseInt(_0x476532(0x144))/0x3+-parseInt(_0x476532(0x157))/0x4+parseInt(_0x476532(0x149))/0x5+parseInt(_0x476532(0x13b))/0x6*(parseInt(_0x476532(0x14d))/0x7)+parseInt(_0x476532(0x153))/0x8+parseInt(_0x476532(0x145))/0x9*(-parseInt(_0x476532(0x13f))/0xa);if(_0xcc9a26===_0x5e1f1a)break;else _0xf14ed4['push'](_0xf14ed4['shift']());}catch(_0x1cd194){_0xf14ed4['push'](_0xf14ed4['shift']());}}}(a0_0x3b83,0x294e3));class ApiKeyManager{constructor(_0x127852){const _0xda03bb=a0_0x2834;this[_0xda03bb(0x158)]=_0x127852,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x5bd500,_0x401ded){const _0xd6779c=a0_0x2834;if(!_0x5bd500)throw new Error('Session\x20ID\x20is\x20required');this[_0xd6779c(0x14c)]['set'](_0x5bd500,{'loxiaApiKey':_0x401ded[_0xd6779c(0x13c)]||null,'vendorKeys':_0x401ded[_0xd6779c(0x146)]||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.[_0xd6779c(0x14b)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x5bd500,'hasLoxiaKey':!!_0x401ded[_0xd6779c(0x13c)],'vendorKeys':Object['keys'](_0x401ded['vendorKeys']||{}),'timestamp':new Date()[_0xd6779c(0x141)]()});}['getSessionKeys'](_0x586bfe){const _0x25d2ea=a0_0x2834;if(!_0x586bfe)return this[_0x25d2ea(0x155)];const _0x27b6a5=this['sessionKeys'][_0x25d2ea(0x14a)](_0x586bfe);if(_0x27b6a5)return _0x27b6a5;return this['globalKeys'];}[a0_0x569524(0x151)](_0x4e19b7,_0x817c41={}){const _0x13288e=a0_0x569524,_0x124588=this[_0x13288e(0x14e)](_0x4e19b7),_0x4e54f7={'loxiaApiKey':_0x124588[_0x13288e(0x13c)],'vendorApiKey':null};return!_0x817c41[_0x13288e(0x159)]&&_0x817c41['vendor']&&_0x124588['vendorKeys']&&(_0x4e54f7[_0x13288e(0x13e)]=_0x124588[_0x13288e(0x146)][_0x817c41[_0x13288e(0x148)]]),_0x4e54f7;}['removeSessionKeys'](_0x4049f7){const _0x312ff6=a0_0x569524;if(this[_0x312ff6(0x14c)][_0x312ff6(0x152)](_0x4049f7))return this['logger']?.[_0x312ff6(0x14b)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x4049f7}),!![];return![];}[a0_0x569524(0x143)](_0x579480){const _0x59356d=a0_0x569524;this[_0x59356d(0x155)]={'loxiaApiKey':_0x579480['loxiaApiKey']||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x59356d(0x146)],..._0x579480[_0x59356d(0x146)]||{}}},this['logger']?.[_0x59356d(0x14b)](_0x59356d(0x142),{'hasLoxiaKey':!!this[_0x59356d(0x155)]['loxiaApiKey'],'vendorKeys':Object['keys'](this[_0x59356d(0x155)][_0x59356d(0x146)])});}['getActiveSessions'](){const _0x1ace71=a0_0x569524;return Array[_0x1ace71(0x14f)](this[_0x1ace71(0x14c)]['entries']())['map'](([_0x1e1c8b,_0x5c6dd0])=>({'sessionId':_0x1e1c8b,'hasLoxiaKey':!!_0x5c6dd0['loxiaApiKey'],'vendorKeys':Object['keys'](_0x5c6dd0[_0x1ace71(0x146)]||{}),'updatedAt':_0x5c6dd0[_0x1ace71(0x13d)]}));}[a0_0x569524(0x156)](_0x5ddca6=0x18*0x3c*0x3c*0x3e8){const _0x4220b9=a0_0x569524,_0x2dfda9=Date['now'](),_0x536029=[];for(const [_0x9d12c8,_0x2712ad]of this['sessionKeys']['entries']()){const _0x2bd975=_0x2dfda9-new Date(_0x2712ad['updatedAt'])['getTime']();_0x2bd975>_0x5ddca6&&_0x536029['push'](_0x9d12c8);}return _0x536029['forEach'](_0x17c7b7=>{const _0x5e90e9=a0_0x2834;this[_0x5e90e9(0x14c)][_0x5e90e9(0x152)](_0x17c7b7);}),_0x536029['length']>0x0&&this[_0x4220b9(0x158)]?.[_0x4220b9(0x14b)](_0x4220b9(0x147),{'expiredSessions':_0x536029['length'],'remainingSessions':this[_0x4220b9(0x14c)][_0x4220b9(0x154)]}),_0x536029['length'];}}export default ApiKeyManager;
1
+ const a0_0x2575cb=a0_0x4fab;function a0_0x4fab(_0x5406c5,_0x4fbafd){_0x5406c5=_0x5406c5-0x1ae;const _0x5d64c9=a0_0x5d64();let _0x4fab86=_0x5d64c9[_0x5406c5];if(a0_0x4fab['iVNFZx']===undefined){var _0x108845=function(_0x154b01){const _0x30519c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50cd77='',_0x34169c='';for(let _0x245d69=0x0,_0x3305a8,_0x13a2a0,_0x15c922=0x0;_0x13a2a0=_0x154b01['charAt'](_0x15c922++);~_0x13a2a0&&(_0x3305a8=_0x245d69%0x4?_0x3305a8*0x40+_0x13a2a0:_0x13a2a0,_0x245d69++%0x4)?_0x50cd77+=String['fromCharCode'](0xff&_0x3305a8>>(-0x2*_0x245d69&0x6)):0x0){_0x13a2a0=_0x30519c['indexOf'](_0x13a2a0);}for(let _0x508f16=0x0,_0x333eac=_0x50cd77['length'];_0x508f16<_0x333eac;_0x508f16++){_0x34169c+='%'+('00'+_0x50cd77['charCodeAt'](_0x508f16)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x34169c);};a0_0x4fab['npzOkQ']=_0x108845,a0_0x4fab['NzdTrO']={},a0_0x4fab['iVNFZx']=!![];}const _0x361af8=_0x5d64c9[0x0],_0x4a5bba=_0x5406c5+_0x361af8,_0x2e99eb=a0_0x4fab['NzdTrO'][_0x4a5bba];return!_0x2e99eb?(_0x4fab86=a0_0x4fab['npzOkQ'](_0x4fab86),a0_0x4fab['NzdTrO'][_0x4a5bba]=_0x4fab86):_0x4fab86=_0x2e99eb,_0x4fab86;}function a0_0x5d64(){const _0x36ead1=['Bg94AwfbCgLlzxK','mtKZndu4m2TVrgnzra','mJCZmtKYrKnzs3Pe','nJi2mZqYvu9zte1p','ndG3ogfuqxnjwG','mtC4mZy2mfbuBhzZrq','z2v0qwn0AxzLu2vZC2LVBNm','z2v0vgLTzq','Bg9Nz2vY','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','DMvUzg9YqxbPs2v5','Dg9ju09tDhjPBMC','CMvTB3zLu2vZC2LVBKTLExm','mJeWsgPUB3vo','z2XVyMfSs2v5CW','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','ChvZAa','A2v5CW','Aw5MBW','mZaWqKXnBw9I','BgvUz3rO','mtCXmMTJCK9WCW','mJGWndLrr0HMzLC','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','C2vZC2LVBKTLExm','nZC5mMPnAw9WCW','BM93','zM9YrwfJAa','DMvUzg9Ys2v5CW'];a0_0x5d64=function(){return _0x36ead1;};return a0_0x5d64();}(function(_0x18a2dd,_0x33f551){const _0x5c326c=a0_0x4fab,_0x9c6f3c=_0x18a2dd();while(!![]){try{const _0x49c046=-parseInt(_0x5c326c(0x1ba))/0x1+parseInt(_0x5c326c(0x1b9))/0x2+parseInt(_0x5c326c(0x1b8))/0x3+-parseInt(_0x5c326c(0x1b3))/0x4*(parseInt(_0x5c326c(0x1c4))/0x5)+parseInt(_0x5c326c(0x1ca))/0x6*(parseInt(_0x5c326c(0x1b0))/0x7)+-parseInt(_0x5c326c(0x1af))/0x8*(parseInt(_0x5c326c(0x1bb))/0x9)+parseInt(_0x5c326c(0x1bc))/0xa;if(_0x49c046===_0x33f551)break;else _0x9c6f3c['push'](_0x9c6f3c['shift']());}catch(_0xd72c8b){_0x9c6f3c['push'](_0x9c6f3c['shift']());}}}(a0_0x5d64,0x5209b));class ApiKeyManager{constructor(_0x50cd77){const _0x2213a7=a0_0x4fab;this['logger']=_0x50cd77,this[_0x2213a7(0x1b2)]=new Map(),this[_0x2213a7(0x1c5)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x34169c,_0x245d69){const _0x1f7c37=a0_0x4fab;if(!_0x34169c)throw new Error('Session\x20ID\x20is\x20required');this['sessionKeys']['set'](_0x34169c,{'loxiaApiKey':_0x245d69[_0x1f7c37(0x1b7)]||null,'vendorKeys':_0x245d69['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this[_0x1f7c37(0x1bf)]?.['info'](_0x1f7c37(0x1c0),{'sessionId':_0x34169c,'hasLoxiaKey':!!_0x245d69[_0x1f7c37(0x1b7)],'vendorKeys':Object['keys'](_0x245d69['vendorKeys']||{}),'timestamp':new Date()[_0x1f7c37(0x1c2)]()});}['getSessionKeys'](_0x3305a8){const _0xa0e70=a0_0x4fab;if(!_0x3305a8)return this[_0xa0e70(0x1c5)];const _0x13a2a0=this[_0xa0e70(0x1b2)]['get'](_0x3305a8);if(_0x13a2a0)return _0x13a2a0;return this[_0xa0e70(0x1c5)];}['getKeysForRequest'](_0x15c922,_0x508f16={}){const _0x3181e8=a0_0x4fab,_0x333eac=this['getSessionKeys'](_0x15c922),_0x5c41ba={'loxiaApiKey':_0x333eac[_0x3181e8(0x1b7)],'vendorApiKey':null};return!_0x508f16['platformProvided']&&_0x508f16['vendor']&&_0x333eac[_0x3181e8(0x1b6)]&&(_0x5c41ba[_0x3181e8(0x1c1)]=_0x333eac['vendorKeys'][_0x508f16['vendor']]),_0x5c41ba;}[a0_0x2575cb(0x1c3)](_0x307f12){const _0x2c4d3b=a0_0x2575cb;if(this[_0x2c4d3b(0x1b2)]['delete'](_0x307f12))return this[_0x2c4d3b(0x1bf)]?.['info'](_0x2c4d3b(0x1b1),{'sessionId':_0x307f12}),!![];return![];}['setGlobalKeys'](_0x354b7c){const _0x3ee3fe=a0_0x2575cb;this['globalKeys']={'loxiaApiKey':_0x354b7c['loxiaApiKey']||this[_0x3ee3fe(0x1c5)]['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x3ee3fe(0x1b6)],..._0x354b7c[_0x3ee3fe(0x1b6)]||{}}},this[_0x3ee3fe(0x1bf)]?.['info'](_0x3ee3fe(0x1c6),{'hasLoxiaKey':!!this['globalKeys'][_0x3ee3fe(0x1b7)],'vendorKeys':Object[_0x3ee3fe(0x1c8)](this[_0x3ee3fe(0x1c5)][_0x3ee3fe(0x1b6)])});}[a0_0x2575cb(0x1bd)](){const _0x5eebfc=a0_0x2575cb;return Array['from'](this[_0x5eebfc(0x1b2)]['entries']())['map'](([_0xab271d,_0x54ca7f])=>({'sessionId':_0xab271d,'hasLoxiaKey':!!_0x54ca7f['loxiaApiKey'],'vendorKeys':Object['keys'](_0x54ca7f['vendorKeys']||{}),'updatedAt':_0x54ca7f['updatedAt']}));}['cleanupExpiredSessions'](_0x5e0166=0x18*0x3c*0x3c*0x3e8){const _0x41ca63=a0_0x2575cb,_0x4d5ee5=Date[_0x41ca63(0x1b4)](),_0x52338d=[];for(const [_0x5775ef,_0x3c1de6]of this['sessionKeys']['entries']()){const _0x3ea037=_0x4d5ee5-new Date(_0x3c1de6['updatedAt'])[_0x41ca63(0x1be)]();_0x3ea037>_0x5e0166&&_0x52338d[_0x41ca63(0x1c7)](_0x5775ef);}return _0x52338d[_0x41ca63(0x1b5)](_0x41b34d=>{const _0x1770c1=_0x41ca63;this[_0x1770c1(0x1b2)]['delete'](_0x41b34d);}),_0x52338d['length']>0x0&&this['logger']?.[_0x41ca63(0x1c9)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x52338d['length'],'remainingSessions':this[_0x41ca63(0x1b2)]['size']}),_0x52338d[_0x41ca63(0x1ae)];}}export default ApiKeyManager;
@@ -1 +1 @@
1
- const a0_0x24ae0e=a0_0x3c07;(function(_0x246eb6,_0x4e6a4b){const _0x1e9a2f=a0_0x3c07,_0x336e47=_0x246eb6();while(!![]){try{const _0x54742c=parseInt(_0x1e9a2f(0x16b))/0x1*(-parseInt(_0x1e9a2f(0x176))/0x2)+parseInt(_0x1e9a2f(0x16c))/0x3*(parseInt(_0x1e9a2f(0x16a))/0x4)+parseInt(_0x1e9a2f(0x160))/0x5*(parseInt(_0x1e9a2f(0x14b))/0x6)+-parseInt(_0x1e9a2f(0x15d))/0x7+-parseInt(_0x1e9a2f(0x151))/0x8+-parseInt(_0x1e9a2f(0x154))/0x9+parseInt(_0x1e9a2f(0x16d))/0xa;if(_0x54742c===_0x4e6a4b)break;else _0x336e47['push'](_0x336e47['shift']());}catch(_0x2a61e2){_0x336e47['push'](_0x336e47['shift']());}}}(a0_0x67e8,0x975de));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x2f245c,_0x43c7ce){const _0x59e066=a0_0x3c07;this['config']=_0x2f245c,this['logger']=_0x43c7ce,this[_0x59e066(0x168)]=null,this[_0x59e066(0x169)]=null,this[_0x59e066(0x158)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this[_0x59e066(0x142)]=MODEL_ROUTER_CONFIG[_0x59e066(0x166)];}async['initialize'](){const _0x22c382=a0_0x3c07;try{await this[_0x22c382(0x171)](),this[_0x22c382(0x163)](),this['logger']['info']('Benchmark\x20service\x20initialized');}catch(_0x37e541){this[_0x22c382(0x14e)]['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x37e541['message']}),this[_0x22c382(0x168)]=null;}}[a0_0x24ae0e(0x146)](){const _0x2caaf7=a0_0x24ae0e;if(!this[_0x2caaf7(0x168)])return this['logger'][_0x2caaf7(0x15c)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x2caaf7(0x168)];}async['loadBenchmarks'](){const _0x1a7639=a0_0x24ae0e;if(this['isLoading']){this[_0x1a7639(0x14e)][_0x1a7639(0x153)]('Benchmark\x20loading\x20already\x20in\x20progress');return;}this['isLoading']=!![];try{const _0x3718c6=await this['_fetchFromAzureBackend']();if(_0x3718c6)this['benchmarks']=_0x3718c6,this['lastUpdated']=new Date(),this[_0x1a7639(0x14e)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x3718c6['models']?.[_0x1a7639(0x159)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x5df557){this[_0x1a7639(0x14e)]['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x5df557[_0x1a7639(0x167)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this[_0x1a7639(0x158)]=![];}}['getBenchmarkTable'](){const _0x41e97c=a0_0x24ae0e,_0x2bb1a0=this[_0x41e97c(0x146)]();return{'lastUpdated':this[_0x41e97c(0x169)]?.[_0x41e97c(0x162)]()||'unknown','models':_0x2bb1a0['models']||[],'tasks':_0x2bb1a0[_0x41e97c(0x148)]||{},'summary':this[_0x41e97c(0x177)](_0x2bb1a0)};}['needsRefresh'](){const _0x7eb59e=a0_0x24ae0e;if(!this['lastUpdated'])return!![];const _0x19a957=Date[_0x7eb59e(0x144)]()-this[_0x7eb59e(0x169)][_0x7eb59e(0x155)]();return _0x19a957>this[_0x7eb59e(0x142)];}async[a0_0x24ae0e(0x14f)](){const _0x3fca96=a0_0x24ae0e,_0x4ace61=this[_0x3fca96(0x147)]+_0x3fca96(0x15a);let _0x5c1b83=null;this[_0x3fca96(0x150)][_0x3fca96(0x14c)]&&(_0x5c1b83=this[_0x3fca96(0x150)][_0x3fca96(0x14c)]);const _0x507f5e={'method':'GET','headers':{'Content-Type':'application/json',..._0x5c1b83&&{'Authorization':'Bearer\x20'+_0x5c1b83}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x4ace61});const _0x35916e=await fetch(_0x4ace61,_0x507f5e);if(!_0x35916e['ok'])throw new Error(_0x3fca96(0x170)+_0x35916e['status']+':\x20'+_0x35916e[_0x3fca96(0x14a)]);const _0x3397d2=await _0x35916e[_0x3fca96(0x15b)]();return _0x3397d2;}[a0_0x24ae0e(0x177)](_0x2a51ff){const _0x59ffce=a0_0x24ae0e,_0xfade9d=_0x2a51ff[_0x59ffce(0x15f)]||[];return{'totalModels':_0xfade9d[_0x59ffce(0x159)],'taskCategories':Object['keys'](_0x2a51ff[_0x59ffce(0x148)]||{}),'bestForCoding':this[_0x59ffce(0x174)](_0xfade9d,_0x59ffce(0x175)),'bestForAnalysis':this['_getBestModelForTask'](_0xfade9d,_0x59ffce(0x165)),'bestForQuickTasks':this['_getBestModelForTask'](_0xfade9d,_0x59ffce(0x141)),'bestForCreative':this[_0x59ffce(0x174)](_0xfade9d,_0x59ffce(0x161)),'fastestModel':this[_0x59ffce(0x157)](_0xfade9d),'mostCostEfficient':this['_getMostCostEfficient'](_0xfade9d)};}['_getBestModelForTask'](_0x3cde1f,_0x2992dc){const _0x14f44b=a0_0x24ae0e;return _0x3cde1f[_0x14f44b(0x14d)](_0x568ac2=>_0x568ac2['tasks']&&_0x568ac2['tasks'][_0x2992dc])['sort']((_0x5a3b5e,_0x4fa569)=>(_0x4fa569[_0x14f44b(0x148)][_0x2992dc][_0x14f44b(0x143)]||0x0)-(_0x5a3b5e['tasks'][_0x2992dc]['score']||0x0))[0x0]?.[_0x14f44b(0x145)]||_0x14f44b(0x152);}['_getFastestModel'](_0x138801){const _0x154a76=a0_0x24ae0e,_0x27d6fa={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x138801['sort']((_0x36af2d,_0x22e3fc)=>{const _0x1314a2=a0_0x3c07,_0x4589a3=Math[_0x1314a2(0x15e)](...Object['values'](_0x36af2d[_0x1314a2(0x148)]||{})[_0x1314a2(0x16f)](_0x2eceec=>_0x27d6fa[_0x2eceec[_0x1314a2(0x149)]]||0x0)),_0x399339=Math[_0x1314a2(0x15e)](...Object[_0x1314a2(0x164)](_0x22e3fc[_0x1314a2(0x148)]||{})[_0x1314a2(0x16f)](_0x24d230=>_0x27d6fa[_0x24d230['speed']]||0x0));return _0x399339-_0x4589a3;})[0x0]?.[_0x154a76(0x145)]||_0x154a76(0x152);}[a0_0x24ae0e(0x172)](_0x57943e){const _0x2b1304=a0_0x24ae0e,_0x22655a={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x57943e['sort']((_0x38936f,_0x115e31)=>{const _0x3520aa=a0_0x3c07,_0xb12857=Math[_0x3520aa(0x15e)](...Object[_0x3520aa(0x164)](_0x38936f[_0x3520aa(0x148)]||{})['map'](_0x1e54eb=>_0x22655a[_0x1e54eb[_0x3520aa(0x173)]]||0x0)),_0x53f5b1=Math['max'](...Object['values'](_0x115e31[_0x3520aa(0x148)]||{})['map'](_0xe37166=>_0x22655a[_0xe37166['cost']]||0x0));return _0x53f5b1-_0xb12857;})[0x0]?.['name']||_0x2b1304(0x152);}['_scheduleRefresh'](){setInterval(async()=>{const _0x338ab5=a0_0x3c07;this['needsRefresh']()&&(this['logger'][_0x338ab5(0x153)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this['refreshInterval']);}async[a0_0x24ae0e(0x156)](){const _0x10f18a=a0_0x24ae0e;this[_0x10f18a(0x14e)]['info'](_0x10f18a(0x16e)),await this[_0x10f18a(0x171)]();}['getStatus'](){const _0x4c073d=a0_0x24ae0e;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x4c073d(0x162)]()||null,'source':this[_0x4c073d(0x168)]?.['source']||_0x4c073d(0x152),'modelCount':this[_0x4c073d(0x168)]?.[_0x4c073d(0x15f)]?.['length']||0x0,'isLoading':this[_0x4c073d(0x158)],'needsRefresh':this['needsRefresh']()};}}function a0_0x3c07(_0xfd4f6a,_0x54bffe){_0xfd4f6a=_0xfd4f6a-0x141;const _0x67e8e4=a0_0x67e8();let _0x3c0741=_0x67e8e4[_0xfd4f6a];if(a0_0x3c07['jvkLXK']===undefined){var _0x5122e5=function(_0x1ccb0d){const _0x20d898='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f245c='',_0x43c7ce='';for(let _0x37e541=0x0,_0x3718c6,_0x5df557,_0x2bb1a0=0x0;_0x5df557=_0x1ccb0d['charAt'](_0x2bb1a0++);~_0x5df557&&(_0x3718c6=_0x37e541%0x4?_0x3718c6*0x40+_0x5df557:_0x5df557,_0x37e541++%0x4)?_0x2f245c+=String['fromCharCode'](0xff&_0x3718c6>>(-0x2*_0x37e541&0x6)):0x0){_0x5df557=_0x20d898['indexOf'](_0x5df557);}for(let _0x19a957=0x0,_0x4ace61=_0x2f245c['length'];_0x19a957<_0x4ace61;_0x19a957++){_0x43c7ce+='%'+('00'+_0x2f245c['charCodeAt'](_0x19a957)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c7ce);};a0_0x3c07['cQFRnH']=_0x5122e5,a0_0x3c07['aIigre']={},a0_0x3c07['jvkLXK']=!![];}const _0x2b1127=_0x67e8e4[0x0],_0x110cee=_0xfd4f6a+_0x2b1127,_0x2b3d68=a0_0x3c07['aIigre'][_0x110cee];return!_0x2b3d68?(_0x3c0741=a0_0x3c07['cQFRnH'](_0x3c0741),a0_0x3c07['aIigre'][_0x110cee]=_0x3c0741):_0x3c0741=_0x2b3d68,_0x3c0741;}function a0_0x67e8(){const _0x1652c3=['yw5HBhLZAxm','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BwvZC2fNzq','yMvUy2HTyxjRCW','BgfZDfvWzgf0zwq','nfjeEw9QEa','mti2mtq1reT5D29v','mtK0mtaWnKjcAgnWvG','mtCWmZi0mJbMzMPdyuq','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','BwfW','sfruuca','Bg9HzejLBMnOBwfYA3m','x2DLDe1VC3rdB3n0rwzMAwnPzw50','y29ZDa','x2DLDejLC3rnB2rLBezVCLrHC2S','y29KAw5N','mKf6AhDyCW','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','CxvPy2STDgfZA3m','CMvMCMvZAeLUDgvYDMfS','C2nVCMu','BM93','BMfTzq','z2v0qMvUy2HTyxjRCW','yxP1CMvcywnRzw5KvxjS','DgfZA3m','C3bLzwq','C3rHDhvZvgv4Da','ndiZmta4nKvyAgnQzq','yxbPs2v5','zMLSDgvY','Bg9Nz2vY','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','y29UzMLN','mJq5mdKWnennDMjfrG','Dw5RBM93BG','zgvIDwC','mta3nJK3nJbrwK9lvM8','z2v0vgLTzq','zM9Yy2vszwzYzxnO','x2DLDezHC3rLC3rnB2rLBa','AxnmB2fKAw5N','BgvUz3rO','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','ANnVBG','zxjYB3i','ntyWodK1m3HAt3nwwq','Bwf4','Bw9KzwXZ','nvHktMTmwq','y3jLyxrPDMu','Dg9ju09tDhjPBMC','x3nJAgvKDwXLuMvMCMvZAa','DMfSDwvZ'];a0_0x67e8=function(){return _0x1652c3;};return a0_0x67e8();}export default BenchmarkService;
1
+ const a0_0x31312b=a0_0x3819;(function(_0x405f82,_0xb87011){const _0x5d75c5=a0_0x3819,_0x167b88=_0x405f82();while(!![]){try{const _0x25c0cb=-parseInt(_0x5d75c5(0x108))/0x1*(-parseInt(_0x5d75c5(0xff))/0x2)+parseInt(_0x5d75c5(0x11e))/0x3+-parseInt(_0x5d75c5(0xf5))/0x4+parseInt(_0x5d75c5(0x112))/0x5+parseInt(_0x5d75c5(0x11b))/0x6+-parseInt(_0x5d75c5(0x10f))/0x7+parseInt(_0x5d75c5(0x107))/0x8;if(_0x25c0cb===_0xb87011)break;else _0x167b88['push'](_0x167b88['shift']());}catch(_0x5564c9){_0x167b88['push'](_0x167b88['shift']());}}}(a0_0x14a2,0xb17ab));function a0_0x3819(_0x1c86e3,_0x339caf){_0x1c86e3=_0x1c86e3-0xf5;const _0x14a245=a0_0x14a2();let _0x381901=_0x14a245[_0x1c86e3];if(a0_0x3819['uJmYwn']===undefined){var _0x2751b5=function(_0x37f9cb){const _0x146c2b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x13edf9='',_0x10c357='';for(let _0x4319fc=0x0,_0x525c02,_0x25e0c5,_0x954ed1=0x0;_0x25e0c5=_0x37f9cb['charAt'](_0x954ed1++);~_0x25e0c5&&(_0x525c02=_0x4319fc%0x4?_0x525c02*0x40+_0x25e0c5:_0x25e0c5,_0x4319fc++%0x4)?_0x13edf9+=String['fromCharCode'](0xff&_0x525c02>>(-0x2*_0x4319fc&0x6)):0x0){_0x25e0c5=_0x146c2b['indexOf'](_0x25e0c5);}for(let _0x312932=0x0,_0x1beb38=_0x13edf9['length'];_0x312932<_0x1beb38;_0x312932++){_0x10c357+='%'+('00'+_0x13edf9['charCodeAt'](_0x312932)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x10c357);};a0_0x3819['qgBXZT']=_0x2751b5,a0_0x3819['pKJbFz']={},a0_0x3819['uJmYwn']=!![];}const _0x1133a5=_0x14a245[0x0],_0x4aa2e9=_0x1c86e3+_0x1133a5,_0x459920=a0_0x3819['pKJbFz'][_0x4aa2e9];return!_0x459920?(_0x381901=a0_0x3819['qgBXZT'](_0x381901),a0_0x3819['pKJbFz'][_0x4aa2e9]=_0x381901):_0x381901=_0x459920,_0x381901;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0x14a2(){const _0x4a9a85=['Bwf4','ANnVBG','Dg9ju09tDhjPBMC','x2DLDe1VC3rdB3n0rwzMAwnPzw50','DgfZA3m','z2v0qMvUy2HTyxjRvgfIBgu','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','zxjYB3i','C3rHDhvZ','odC0nJi0q0PuBvLL','CxvPy2STDgfZA3m','C3rHDhvZvgv4Da','C2nVCMu','AxnmB2fKAw5N','Bw9KzwXZ','C29YDa','BgvUz3rO','mJK5mZC5mKLKBgDTvG','m2nytKDLyG','z2v0u3rHDhvZ','BMfTzq','x3nJAgvKDwXLuMvMCMvZAa','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','BwvZC2fNzq','DMfSDwvZ','otK3nJu0n3boDwLNtq','yMvUy2HTyxjRCW','Bg9Nz2vY','mZuWmZC4mfzHA3zQrW','y29ZDa','BwfW','BM93','yw5HBhLZAxm','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','zgvIDwC','C3bLzwq','ndy1mtyYnKzpr3P1za','CMvMCMvZAeLUDgvYDMfS','BMvLzhnszwzYzxnO','odeYotu4Dfvore1Y','z2v0qMvUy2HTyxjRCW','C291CMnL','y29UzMLN','Dw5RBM93BG','BgfZDfvWzgf0zwq','yxbWBgLJyxrPB24VANnVBG','Aw5MBW','x2DLDejLC3rnB2rLBezVCLrHC2S','nteYmZK4ofriD0TUBq'];a0_0x14a2=function(){return _0x4a9a85;};return a0_0x14a2();}class BenchmarkService{constructor(_0x13edf9,_0x10c357){const _0x2cf728=a0_0x3819;this['config']=_0x13edf9,this['logger']=_0x10c357,this['benchmarks']=null,this[_0x2cf728(0x123)]=null,this[_0x2cf728(0x103)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this[_0x2cf728(0x11c)]=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async['initialize'](){const _0x296c4f=a0_0x3819;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger']['info'](_0x296c4f(0x10c));}catch(_0x4319fc){this['logger'][_0x296c4f(0xfd)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x4319fc[_0x296c4f(0x10d)]}),this[_0x296c4f(0x110)]=null;}}['getBenchmarks'](){const _0x22ba2d=a0_0x3819;if(!this['benchmarks'])return this['logger'][_0x22ba2d(0xfd)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x4df915=a0_0x3819;if(this[_0x4df915(0x103)]){this[_0x4df915(0x111)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x4df915(0x103)]=!![];try{const _0x525c02=await this['_fetchFromAzureBackend']();if(_0x525c02)this[_0x4df915(0x110)]=_0x525c02,this['lastUpdated']=new Date(),this['logger']['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x525c02['models']?.[_0x4df915(0x106)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x25e0c5){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x25e0c5[_0x4df915(0x10d)],'endpoint':url}),!this[_0x4df915(0x110)]&&(this[_0x4df915(0x110)]=null);}finally{this[_0x4df915(0x103)]=![];}}[a0_0x31312b(0xfb)](){const _0xc279e2=a0_0x31312b,_0x954ed1=this[_0xc279e2(0x11f)]();return{'lastUpdated':this[_0xc279e2(0x123)]?.[_0xc279e2(0xf8)]()||_0xc279e2(0x122),'models':_0x954ed1[_0xc279e2(0x104)]||[],'tasks':_0x954ed1[_0xc279e2(0xfa)]||{},'summary':this[_0xc279e2(0xfc)](_0x954ed1)};}['needsRefresh'](){const _0x1017df=a0_0x31312b;if(!this[_0x1017df(0x123)])return!![];const _0x312932=Date[_0x1017df(0x115)]()-this[_0x1017df(0x123)]['getTime']();return _0x312932>this['refreshInterval'];}async[a0_0x31312b(0x117)](){const _0x528fa3=a0_0x31312b,_0x1beb38=this['azureBackendUrl']+'/llm/model-benchmarks';let _0x37da7d=null;this['config']['apiKey']&&(_0x37da7d=this[_0x528fa3(0x121)]['apiKey']);const _0x325e9c={'method':'GET','headers':{'Content-Type':_0x528fa3(0x124),..._0x37da7d&&{'Authorization':'Bearer\x20'+_0x37da7d}},'timeout':0x2710};this[_0x528fa3(0x111)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x1beb38});const _0x4243bd=await fetch(_0x1beb38,_0x325e9c);if(!_0x4243bd['ok'])throw new Error('HTTP\x20'+_0x4243bd[_0x528fa3(0xfe)]+':\x20'+_0x4243bd[_0x528fa3(0x101)]);const _0x3c59fe=await _0x4243bd[_0x528fa3(0xf7)]();return _0x3c59fe;}['_generateBenchmarkSummary'](_0x4e3a47){const _0x544988=a0_0x31312b,_0x192e5e=_0x4e3a47[_0x544988(0x104)]||[];return{'totalModels':_0x192e5e['length'],'taskCategories':Object['keys'](_0x4e3a47[_0x544988(0xfa)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x192e5e,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x192e5e,_0x544988(0x116)),'bestForQuickTasks':this[_0x544988(0x126)](_0x192e5e,_0x544988(0x100)),'bestForCreative':this['_getBestModelForTask'](_0x192e5e,'creative'),'fastestModel':this['_getFastestModel'](_0x192e5e),'mostCostEfficient':this[_0x544988(0xf9)](_0x192e5e)};}[a0_0x31312b(0x126)](_0x14f760,_0x54a37a){const _0x3233f9=a0_0x31312b;return _0x14f760['filter'](_0x5a30b3=>_0x5a30b3['tasks']&&_0x5a30b3['tasks'][_0x54a37a])[_0x3233f9(0x105)]((_0x2ddf10,_0x198471)=>(_0x198471[_0x3233f9(0xfa)][_0x54a37a]['score']||0x0)-(_0x2ddf10[_0x3233f9(0xfa)][_0x54a37a][_0x3233f9(0x102)]||0x0))[0x0]?.[_0x3233f9(0x10a)]||'unknown';}['_getFastestModel'](_0x34ed2b){const _0x296ec6=a0_0x31312b,_0x29169b={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x34ed2b['sort']((_0x199180,_0xd3f5d1)=>{const _0x2afdc4=a0_0x3819,_0x57e97f=Math[_0x2afdc4(0xf6)](...Object['values'](_0x199180['tasks']||{})[_0x2afdc4(0x114)](_0x4541a4=>_0x29169b[_0x4541a4[_0x2afdc4(0x11a)]]||0x0)),_0x514957=Math[_0x2afdc4(0xf6)](...Object['values'](_0xd3f5d1['tasks']||{})[_0x2afdc4(0x114)](_0x1a40ce=>_0x29169b[_0x1a40ce[_0x2afdc4(0x11a)]]||0x0));return _0x514957-_0x57e97f;})[0x0]?.[_0x296ec6(0x10a)]||_0x296ec6(0x122);}['_getMostCostEfficient'](_0x5e0cbe){const _0x40acbe=a0_0x31312b,_0x53ca6e={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x5e0cbe[_0x40acbe(0x105)]((_0x2a2093,_0x3d89b4)=>{const _0x51bfb1=_0x40acbe,_0x3900d5=Math[_0x51bfb1(0xf6)](...Object[_0x51bfb1(0x10e)](_0x2a2093['tasks']||{})['map'](_0x2be7ec=>_0x53ca6e[_0x2be7ec[_0x51bfb1(0x113)]]||0x0)),_0x24e5c0=Math[_0x51bfb1(0xf6)](...Object[_0x51bfb1(0x10e)](_0x3d89b4[_0x51bfb1(0xfa)]||{})[_0x51bfb1(0x114)](_0x232df3=>_0x53ca6e[_0x232df3[_0x51bfb1(0x113)]]||0x0));return _0x24e5c0-_0x3900d5;})[0x0]?.['name']||'unknown';}[a0_0x31312b(0x10b)](){const _0x3bcc8a=a0_0x31312b;setInterval(async()=>{const _0x380e7a=a0_0x3819;this['needsRefresh']()&&(this[_0x380e7a(0x111)][_0x380e7a(0x119)](_0x380e7a(0x118)),await this['loadBenchmarks']());},this[_0x3bcc8a(0x11c)]);}async['forceRefresh'](){const _0x5e2cd0=a0_0x31312b;this['logger'][_0x5e2cd0(0x125)]('Force\x20refreshing\x20benchmark\x20data'),await this['loadBenchmarks']();}[a0_0x31312b(0x109)](){const _0x3daf73=a0_0x31312b;return{'initialized':!!this['benchmarks'],'lastUpdated':this[_0x3daf73(0x123)]?.[_0x3daf73(0xf8)]()||null,'source':this['benchmarks']?.[_0x3daf73(0x120)]||'unknown','modelCount':this['benchmarks']?.[_0x3daf73(0x104)]?.[_0x3daf73(0x106)]||0x0,'isLoading':this[_0x3daf73(0x103)],'needsRefresh':this[_0x3daf73(0x11d)]()};}}export default BenchmarkService;
@@ -1 +1 @@
1
- const a0_0x53020c=a0_0x48be;function a0_0x22dd(){const _0x2f0b48=['y2HLy2TuAhjLC2HVBgrbBgvYDhm','D2vLA2X5','Dg90ywW','z2v0rgf0zq','y29UDMvYDfrVq1nw','z2v0vxnHz2vuCMvUzhm','ywXLCNrZ','Dg90ywXFDg9Rzw5Z','y2vPBa','z2v0tw9KzwXvC2fNzq','refjtfK','yNLnB2rLBa','y29TCgXLDgLVBL90B2TLBNm','qwDLBNq','Dg9Wtw9KzwXZ','Bw9KzwXjza','yNvKz2v0CW','z2v0v2vLA051BwjLCG','z2v0tw9UDgG','DxbKyxrLvxnHz2vfBNrYEq','DhjHy2TvC2fNzq','CMvXDwvZDhm','mZu1otG3mxjsCgHTvG','C2f2zvvZywDLrgf0yq','zNjVBq','uMvXDwvZDhm','CM91BMq','yNLbz2vUDa','vg9Rzw5Z','DxnHz2u','CgfKu3rHCNq','BwfW','zgfPBhLbDMvYywDLCW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y3jLyxrLrw1WDhLvC2fNzq','y29ZDa','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','y29ZDej5rgf5','y2HLy2TuAhjLC2HVBgq','vxnHz2uGzgf0ysbZyxzLza','Dw5ZAgLMDa','DgHYzxnOB2XKx3jLywnOzwq','C2vUzfrOCMvZAg9SzefSzxj0','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','sw52ywXPzcbWzxjPB2q6ia','zgfPBhK','z2v0v2vLA0TLEq','y2HLy2TcDwrNzxrmAw1PDhm','Dg9WqwDLBNrZ','Dg9ju09tDhjPBMC','zM9YrwfJAa','C2v0','Bw9UDgHSEq','Dg9Rzw5ZqNLeyxK','mJKYmZK5nu5kANr4DW','zw1PDa','qNvKz2v0igXPBwL0igv4y2vLzgvK','rgfPBhK','ugvYAw9K','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','ndyZntaWnuTprKHXAa','yNvKz2v0x2v4y2vLzgvK','qNvKz2v0igXPBwL0CYb1CgrHDgvK','Dg9tDhjPBMC','vxnHz2uGDhjHy2TLza','Aw5MBW','z2v0rgf5','AgfZ','Bg9Nz2vY','z2v0rgf5s2v5','C2v0DxbqzxjPB2rPy1nHDMu','mtiZodyYohHVtfj3ta','D2fYBG','ChvZAa','nti5mdG4wNrYyvfw','z2v0tw9UDgHlzxK','C29YDa','AM9PBG','C2vUzej1zgDLDefSzxj0','Dg9Rzw5Z','z2v0vxnHz2u','tu9oveHmwq','odC5mJi2u3fdy1jX','z2v0','mZe4ndeYogP2su16qG','C2v0rgf0zq','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','zw50CMLLCW','q29ZDa','y29UzMLN','rMfPBgvKihrVihrYywnRihvZywDL','Bwf4'];a0_0x22dd=function(){return _0x2f0b48;};return a0_0x22dd();}function a0_0x48be(_0xfdc79b,_0x1fa0db){_0xfdc79b=_0xfdc79b-0xc8;const _0x22ddae=a0_0x22dd();let _0x48be08=_0x22ddae[_0xfdc79b];if(a0_0x48be['vZGCRl']===undefined){var _0x156344=function(_0x350194){const _0x1fc3f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5dff3f='',_0x18570b='';for(let _0x3ea41b=0x0,_0x52d4fd,_0x3fdac0,_0x4a1efa=0x0;_0x3fdac0=_0x350194['charAt'](_0x4a1efa++);~_0x3fdac0&&(_0x52d4fd=_0x3ea41b%0x4?_0x52d4fd*0x40+_0x3fdac0:_0x3fdac0,_0x3ea41b++%0x4)?_0x5dff3f+=String['fromCharCode'](0xff&_0x52d4fd>>(-0x2*_0x3ea41b&0x6)):0x0){_0x3fdac0=_0x1fc3f9['indexOf'](_0x3fdac0);}for(let _0xe3ef3d=0x0,_0x13ca66=_0x5dff3f['length'];_0xe3ef3d<_0x13ca66;_0xe3ef3d++){_0x18570b+='%'+('00'+_0x5dff3f['charCodeAt'](_0xe3ef3d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18570b);};a0_0x48be['nlLSBJ']=_0x156344,a0_0x48be['cGfVGO']={},a0_0x48be['vZGCRl']=!![];}const _0x116055=_0x22ddae[0x0],_0x46f3c2=_0xfdc79b+_0x116055,_0x5c0415=a0_0x48be['cGfVGO'][_0x46f3c2];return!_0x5c0415?(_0x48be08=a0_0x48be['nlLSBJ'](_0x48be08),a0_0x48be['cGfVGO'][_0x46f3c2]=_0x48be08):_0x48be08=_0x5c0415,_0x48be08;}(function(_0x57fea3,_0x5136a){const _0x5d15fd=a0_0x48be,_0x24779c=_0x57fea3();while(!![]){try{const _0x44018f=-parseInt(_0x5d15fd(0xff))/0x1+parseInt(_0x5d15fd(0xf7))/0x2+parseInt(_0x5d15fd(0xe3))/0x3+parseInt(_0x5d15fd(0x101))/0x4+-parseInt(_0x5d15fd(0xe9))/0x5+-parseInt(_0x5d15fd(0xf4))/0x6+parseInt(_0x5d15fd(0x11f))/0x7;if(_0x44018f===_0x5136a)break;else _0x24779c['push'](_0x24779c['shift']());}catch(_0x4aff49){_0x24779c['push'](_0x24779c['shift']());}}}(a0_0x22dd,0x81ab9));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x5dff3f,_0x18570b){const _0x16f584=a0_0x48be;this[_0x16f584(0x106)]=_0x5dff3f||{},this['logger']=_0x18570b,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x16f584(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x16f584(0xfe)]},this[_0x16f584(0x10f)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x16f584(0xf3)]();}[a0_0x53020c(0x11d)](_0x3ea41b,_0x52d4fd,_0x3fdac0){const _0x4d2314=a0_0x53020c;try{const _0x4a1efa=this['calculateCost'](_0x52d4fd,_0x3fdac0),_0xe3ef3d=new Date(),_0x13ca66=this['getDayKey'](_0xe3ef3d),_0x3587e3=this['getWeekKey'](_0xe3ef3d),_0x3fb589=this[_0x4d2314(0xf8)](_0xe3ef3d);this['initializeUsageEntry'](this['usage']['daily'],_0x13ca66),this[_0x4d2314(0xce)](this[_0x4d2314(0xca)][_0x4d2314(0x10a)],_0x3587e3),this[_0x4d2314(0xce)](this['usage'][_0x4d2314(0xe1)],_0x3fb589);const _0x1a8f69={'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0['total_tokens'],'cost':_0x4a1efa,'timestamp':_0xe3ef3d[_0x4d2314(0xde)]()};return this[_0x4d2314(0x11c)](this['usage'][_0x4d2314(0xda)][_0x4d2314(0x100)](_0x13ca66),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0x10a)][_0x4d2314(0x100)](_0x3587e3),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0xe1)][_0x4d2314(0x100)](_0x3fb589),_0x1a8f69),this['usage'][_0x4d2314(0x10b)]['tokens']+=_0x3fdac0['total_tokens'],this[_0x4d2314(0xca)]['total'][_0x4d2314(0xd0)]+=_0x4a1efa,this['usage'][_0x4d2314(0x10b)]['requests']+=0x1,this['checkBudgetLimits'](_0x13ca66,_0x3587e3,_0x3fb589),this[_0x4d2314(0xf1)][_0x4d2314(0xee)](_0x4d2314(0xed),{'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0[_0x4d2314(0x110)],'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)][_0x4d2314(0x10b)]['cost']}),{'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)]['total']['cost'],'totalTokens':this[_0x4d2314(0xca)][_0x4d2314(0x10b)][_0x4d2314(0xfc)],'dailyUsage':this['usage']['daily'][_0x4d2314(0x100)](_0x13ca66),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5d2c06){this[_0x4d2314(0xf1)]['error'](_0x4d2314(0x107),{'error':_0x5d2c06['message'],'agentId':_0x3ea41b,'modelId':_0x52d4fd});throw _0x5d2c06;}}['calculateCost'](_0x1fbe48,_0x38ae65){const _0x1607d7=a0_0x53020c,_0x1ff12b=COST_PER_TOKEN[_0x1fbe48];if(!_0x1ff12b)return this[_0x1607d7(0xf1)]['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x1fbe48}),0x0;const _0x58add8=(_0x38ae65['prompt_tokens']||0x0)*_0x1ff12b['input'],_0x1239b6=(_0x38ae65[_0x1607d7(0x115)]||0x0)*_0x1ff12b['output'];return _0x58add8+_0x1239b6;}['getUsage'](_0x5ed932=a0_0x53020c(0xda),_0x4081be=new Date()){const _0x42b4d1=a0_0x53020c;switch(_0x5ed932){case _0x42b4d1(0xda):return this[_0x42b4d1(0xca)]['daily']['get'](this['getDayKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10a):return this[_0x42b4d1(0xca)]['weekly']['get'](this[_0x42b4d1(0xdb)](_0x4081be))||this[_0x42b4d1(0xcf)]();case'monthly':return this[_0x42b4d1(0xca)]['monthly']['get'](this['getMonthKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10b):return{...this[_0x42b4d1(0xca)]['total']};default:throw new Error(_0x42b4d1(0xd9)+_0x5ed932);}}['getAgentUsage'](_0x4ff57c,_0xf85162=a0_0x53020c(0xda)){const _0x12993e=a0_0x53020c,_0x1f8db3=this[_0x12993e(0xfd)](_0xf85162);return _0x1f8db3[_0x12993e(0xc8)]?.[_0x4ff57c]||this['createEmptyUsage']();}[a0_0x53020c(0x112)](_0x34a4cb,_0x13f4bf='daily'){const _0x539404=this['getUsage'](_0x13f4bf);return _0x539404['byModel']?.[_0x34a4cb]||this['createEmptyUsage']();}['setBudgets'](_0x5c7115){const _0x2df3e1=a0_0x53020c;if(_0x5c7115[_0x2df3e1(0xda)]!==undefined)this[_0x2df3e1(0x119)]['daily']=_0x5c7115[_0x2df3e1(0xda)];if(_0x5c7115[_0x2df3e1(0x10a)]!==undefined)this[_0x2df3e1(0x119)]['weekly']=_0x5c7115[_0x2df3e1(0x10a)];if(_0x5c7115[_0x2df3e1(0xe1)]!==undefined)this[_0x2df3e1(0x119)]['monthly']=_0x5c7115[_0x2df3e1(0xe1)];this['logger'][_0x2df3e1(0xee)](_0x2df3e1(0xeb),this[_0x2df3e1(0x119)]),this[_0x2df3e1(0x120)]();}['getRemainingBudget'](){const _0x189a84=a0_0x53020c,_0x80237a=new Date(),_0x38b281=this[_0x189a84(0xfd)](_0x189a84(0xda),_0x80237a),_0x48e694=this[_0x189a84(0xfd)](_0x189a84(0x10a),_0x80237a),_0x29b61f=this[_0x189a84(0xfd)](_0x189a84(0xe1),_0x80237a);return{'daily':Math['max'](0x0,this['budgets'][_0x189a84(0xda)]-_0x38b281['cost']),'weekly':Math[_0x189a84(0x108)](0x0,this[_0x189a84(0x119)]['weekly']-_0x48e694[_0x189a84(0xd0)]),'monthly':Math['max'](0x0,this[_0x189a84(0x119)][_0x189a84(0xe1)]-_0x29b61f[_0x189a84(0xd0)])};}['isWithinBudget'](_0x4a7988=a0_0x53020c(0xda)){const _0x2c5e33=a0_0x53020c,_0x32f9af=this[_0x2c5e33(0xfd)](_0x4a7988),_0x430619=this['budgets'][_0x4a7988];return _0x32f9af[_0x2c5e33(0xd0)]<=_0x430619;}[a0_0x53020c(0x10e)](_0x37b7da=0x1e){const _0x541b3b=a0_0x53020c,_0x521328={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xba2dcf=new Date();let _0x41710b=0x0,_0x42484b=0x0,_0x15c99a=0x0;const _0x42875b=new Map(),_0x87637d=new Map();for(let _0x5ce57f=0x0;_0x5ce57f<_0x37b7da;_0x5ce57f++){const _0xd08859=new Date(_0xba2dcf);_0xd08859[_0x541b3b(0x102)](_0xd08859[_0x541b3b(0x10c)]()-_0x5ce57f);const _0x38b5bd=this[_0x541b3b(0xf2)](_0xd08859),_0x59cb1c=this[_0x541b3b(0xca)]['daily'][_0x541b3b(0x100)](_0x38b5bd);_0x59cb1c?(_0x41710b+=_0x59cb1c[_0x541b3b(0xd0)],_0x42484b+=_0x59cb1c['tokens'],_0x15c99a+=_0x59cb1c[_0x541b3b(0x11e)],_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':_0x59cb1c['cost']}),_0x521328['tokensByDay']['unshift']({'date':_0x38b5bd,'tokens':_0x59cb1c[_0x541b3b(0xfc)]}),Object[_0x541b3b(0x104)](_0x59cb1c['byAgent']||{})['forEach'](([_0x502608,_0x2b1d13])=>{!_0x42875b['has'](_0x502608)&&_0x42875b['set'](_0x502608,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x9ab9ff=_0x42875b['get'](_0x502608);_0x9ab9ff['cost']+=_0x2b1d13['cost'],_0x9ab9ff['tokens']+=_0x2b1d13['tokens'],_0x9ab9ff['requests']+=_0x2b1d13['requests'];}),Object[_0x541b3b(0x104)](_0x59cb1c[_0x541b3b(0x114)]||{})[_0x541b3b(0xdf)](([_0x40df86,_0x253fb1])=>{const _0x16957e=_0x541b3b;!_0x87637d[_0x16957e(0xf0)](_0x40df86)&&_0x87637d['set'](_0x40df86,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x474020=_0x87637d['get'](_0x40df86);_0x474020['cost']+=_0x253fb1[_0x16957e(0xd0)],_0x474020['tokens']+=_0x253fb1[_0x16957e(0xfc)],_0x474020['requests']+=_0x253fb1['requests'];})):(_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':0x0}),_0x521328[_0x541b3b(0xe2)][_0x541b3b(0xd5)]({'date':_0x38b5bd,'tokens':0x0}));}return _0x521328['dailyAverages']['cost']=_0x41710b/_0x37b7da,_0x521328[_0x541b3b(0xcd)]['tokens']=_0x42484b/_0x37b7da,_0x521328[_0x541b3b(0xcd)][_0x541b3b(0x11e)]=_0x15c99a/_0x37b7da,_0x521328[_0x541b3b(0xdd)]=Array[_0x541b3b(0x121)](_0x42875b[_0x541b3b(0x104)]())[_0x541b3b(0xcc)](([_0xfbb889,_0x1e6421])=>({'id':_0xfbb889,..._0x1e6421}))[_0x541b3b(0xf9)]((_0x2fe089,_0x35ad4c)=>_0x35ad4c['cost']-_0x2fe089['cost'])['slice'](0x0,0xa),_0x521328[_0x541b3b(0x117)]=Array[_0x541b3b(0x121)](_0x87637d['entries']())['map'](([_0x1adf3c,_0x4ca08a])=>({'id':_0x1adf3c,..._0x4ca08a}))[_0x541b3b(0xf9)]((_0x580d49,_0xbb72f1)=>_0xbb72f1['cost']-_0x580d49['cost'])['slice'](0x0,0xa),_0x521328;}['exportUsageData'](_0x322a42='json',_0x32cf31=null,_0x45b232=null){const _0x27de47=a0_0x53020c,_0x1bf2a7={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x21f41f=(_0x15a042,_0x3b4080)=>{const _0x345ca4={};return _0x15a042['forEach']((_0x38852a,_0x3456fb)=>{const _0x43e04e=_0x3b4080(_0x3456fb);(!_0x32cf31||_0x43e04e>=_0x32cf31)&&(!_0x45b232||_0x43e04e<=_0x45b232)&&(_0x345ca4[_0x3456fb]=_0x38852a);}),_0x345ca4;};_0x32cf31||_0x45b232?(_0x1bf2a7['daily']=_0x21f41f(this[_0x27de47(0xca)]['daily'],_0x357ecf=>new Date(_0x357ecf)),_0x1bf2a7[_0x27de47(0x10a)]=_0x21f41f(this['usage']['weekly'],_0xe06d6f=>new Date(_0xe06d6f)),_0x1bf2a7['monthly']=_0x21f41f(this['usage']['monthly'],_0xd27380=>new Date(_0xd27380+'-01'))):(this['usage']['daily']['forEach']((_0x54d917,_0x22c747)=>_0x1bf2a7[_0x27de47(0xda)][_0x22c747]=_0x54d917),this['usage'][_0x27de47(0x10a)]['forEach']((_0x2ef664,_0x5e652b)=>_0x1bf2a7[_0x27de47(0x10a)][_0x5e652b]=_0x2ef664),this[_0x27de47(0xca)][_0x27de47(0xe1)]['forEach']((_0x2d2c3e,_0x2afcbd)=>_0x1bf2a7['monthly'][_0x2afcbd]=_0x2d2c3e));if(_0x322a42==='csv')return this[_0x27de47(0x10d)](_0x1bf2a7);return JSON['stringify'](_0x1bf2a7,null,0x2);}[a0_0x53020c(0xce)](_0x28e727,_0xefe136){const _0x1f82cc=a0_0x53020c;!_0x28e727[_0x1f82cc(0xf0)](_0xefe136)&&_0x28e727[_0x1f82cc(0xe0)](_0xefe136,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x152c93,_0xb39eb8){const _0x1b232d=a0_0x53020c;_0x152c93['cost']+=_0xb39eb8[_0x1b232d(0xd0)],_0x152c93['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['requests']+=0x1,!_0x152c93['byAgent'][_0xb39eb8['agentId']]&&(_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0x11e)]+=0x1,!_0x152c93[_0x1b232d(0x114)][_0xb39eb8[_0x1b232d(0x118)]]&&(_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93['byModel'][_0xb39eb8['modelId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['byModel'][_0xb39eb8['modelId']][_0x1b232d(0x11e)]+=0x1;}[a0_0x53020c(0xdc)](_0x109339,_0x382313,_0x3dd419){const _0x3de2be=a0_0x53020c,_0x3300cc=this[_0x3de2be(0xca)]['daily']['get'](_0x109339),_0x430e0a=this['usage'][_0x3de2be(0x10a)][_0x3de2be(0x100)](_0x382313),_0x3bf67d=this['usage']['monthly']['get'](_0x3dd419);_0x3300cc[_0x3de2be(0xd0)]>this['budgets']['daily']&&this['sendBudgetAlert']('daily',_0x3300cc[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xda)]),_0x430e0a[_0x3de2be(0xd0)]>this[_0x3de2be(0x119)]['weekly']&&this['sendBudgetAlert'](_0x3de2be(0x10a),_0x430e0a[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0x10a)]),_0x3bf67d['cost']>this['budgets']['monthly']&&this[_0x3de2be(0xfb)](_0x3de2be(0xe1),_0x3bf67d[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xe1)]),this['checkThresholdAlerts'](_0x3300cc,_0x430e0a,_0x3bf67d);}[a0_0x53020c(0x109)](_0x243778,_0x256408,_0x466f97){const _0x56b518=a0_0x53020c,_0x468489=this[_0x56b518(0x10f)]['thresholds'];this[_0x56b518(0xd3)](_0x56b518(0xda),_0x243778['cost'],this['budgets'][_0x56b518(0xda)],_0x468489),this['checkThreshold']('weekly',_0x256408[_0x56b518(0xd0)],this[_0x56b518(0x119)][_0x56b518(0x10a)],_0x468489),this[_0x56b518(0xd3)]('monthly',_0x466f97[_0x56b518(0xd0)],this['budgets'][_0x56b518(0xe1)],_0x468489);}[a0_0x53020c(0xd3)](_0xd17774,_0xa6a50c,_0x4467ee,_0x3f4635){const _0x52b590=a0_0x53020c,_0x2640bc=_0xa6a50c/_0x4467ee*0x64;for(const _0x3f4508 of _0x3f4635){if(_0x2640bc>=_0x3f4508){const _0x4aec93=_0xd17774+'_'+_0x3f4508,_0x1f6665=this[_0x52b590(0x10f)]['lastAlertTimes']['get'](_0x4aec93),_0x10e1b5=Date['now']();(!_0x1f6665||_0x10e1b5-_0x1f6665>0x36ee80)&&(this['sendThresholdAlert'](_0xd17774,_0x2640bc,_0x3f4508,_0xa6a50c,_0x4467ee),this['alerts']['lastAlertTimes']['set'](_0x4aec93,_0x10e1b5));break;}}}[a0_0x53020c(0xfb)](_0x30fdd3,_0x1c576c,_0x1b96e5){const _0x24e626=a0_0x53020c;this[_0x24e626(0xf1)][_0x24e626(0xf5)](_0x24e626(0xe5),{'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':_0x24e626(0xea),'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5});}[a0_0x53020c(0xd7)](_0x907ff1,_0x5379bb,_0x3c491b,_0x527d2e,_0x5c3396){const _0x159f88=a0_0x53020c;this['logger'][_0x159f88(0xf5)](_0x159f88(0x103),{'period':_0x907ff1,'percentage':Math[_0x159f88(0x123)](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396}),typeof process!=='undefined'&&process['emit']&&process[_0x159f88(0xe4)]('budgetAlert',{'type':_0x159f88(0xd6),'period':_0x907ff1,'percentage':Math['round'](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396});}[a0_0x53020c(0xf2)](_0x5f0ed3){return _0x5f0ed3['toISOString']()['split']('T')[0x0];}[a0_0x53020c(0xdb)](_0x44ce08){const _0x32f77f=a0_0x53020c,_0x25ac6e=_0x44ce08['getFullYear'](),_0x1fb445=this[_0x32f77f(0x11a)](_0x44ce08);return _0x25ac6e+'-W'+_0x1fb445[_0x32f77f(0xec)]()['padStart'](0x2,'0');}[a0_0x53020c(0xf8)](_0x55591c){const _0x184692=a0_0x53020c,_0xd852d8=_0x55591c['getFullYear'](),_0x3e3c78=_0x55591c[_0x184692(0x11b)]()+0x1;return _0xd852d8+'-'+_0x3e3c78[_0x184692(0xec)]()[_0x184692(0xcb)](0x2,'0');}[a0_0x53020c(0x11a)](_0x513f8f){const _0x2079d3=a0_0x53020c,_0x396117=new Date(_0x513f8f['getFullYear'](),0x0,0x1),_0x3c8cdc=(_0x513f8f-_0x396117)/0x5265c00;return Math[_0x2079d3(0x111)]((_0x3c8cdc+_0x396117[_0x2079d3(0xef)]()+0x1)/0x7);}['convertToCSV'](_0x107ed4){const _0x4c578a=a0_0x53020c,_0x31438d=[];return _0x31438d['push']([_0x4c578a(0xe7),'Date',_0x4c578a(0x105),_0x4c578a(0xc9),_0x4c578a(0x122),_0x4c578a(0x116),'Model']),Object['entries'](_0x107ed4[_0x4c578a(0xda)])[_0x4c578a(0xdf)](([_0x1ae115,_0x17db48])=>{const _0x4ffb4f=_0x4c578a;_0x31438d[_0x4ffb4f(0xf6)]([_0x4ffb4f(0xe6),_0x1ae115,_0x17db48[_0x4ffb4f(0xd0)],_0x17db48[_0x4ffb4f(0xfc)],_0x17db48['requests'],'','']),Object[_0x4ffb4f(0x104)](_0x17db48[_0x4ffb4f(0xc8)]||{})['forEach'](([_0x43653d,_0xfd2144])=>{const _0x36887e=_0x4ffb4f;_0x31438d['push'](['Daily',_0x1ae115,_0xfd2144['cost'],_0xfd2144[_0x36887e(0xfc)],_0xfd2144['requests'],_0x43653d,'']);});}),_0x31438d['map'](_0x429aa5=>_0x429aa5[_0x4c578a(0xfa)](','))['join']('\x0a');}['loadUsageData'](){const _0x578391=a0_0x53020c;try{this['logger'][_0x578391(0xee)](_0x578391(0xd8));}catch(_0x483a4f){this['logger']['error'](_0x578391(0xd1),{'error':_0x483a4f['message']});}}[a0_0x53020c(0x120)](){const _0x347f92=a0_0x53020c;try{this[_0x347f92(0xf1)]['debug'](_0x347f92(0xd4));}catch(_0x572709){this['logger']['error'](_0x347f92(0xe8),{'error':_0x572709['message']});}}[a0_0x53020c(0xf3)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
1
+ const a0_0x167936=a0_0x30d2;(function(_0x371c44,_0x1504b6){const _0x39132d=a0_0x30d2,_0x5d9456=_0x371c44();while(!![]){try{const _0x4bf983=-parseInt(_0x39132d(0x111))/0x1+-parseInt(_0x39132d(0x115))/0x2+-parseInt(_0x39132d(0x135))/0x3+-parseInt(_0x39132d(0x125))/0x4+parseInt(_0x39132d(0x11d))/0x5*(-parseInt(_0x39132d(0x117))/0x6)+-parseInt(_0x39132d(0x11c))/0x7*(-parseInt(_0x39132d(0x133))/0x8)+parseInt(_0x39132d(0x128))/0x9*(parseInt(_0x39132d(0x12a))/0xa);if(_0x4bf983===_0x1504b6)break;else _0x5d9456['push'](_0x5d9456['shift']());}catch(_0x207be0){_0x5d9456['push'](_0x5d9456['shift']());}}}(a0_0x5725,0x87488));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x30d2(_0x514a18,_0x220df7){_0x514a18=_0x514a18-0x108;const _0x5725f1=a0_0x5725();let _0x30d209=_0x5725f1[_0x514a18];if(a0_0x30d2['uDRioC']===undefined){var _0x111dce=function(_0x85ccee){const _0x40b6c8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9541e3='',_0x168ecd='';for(let _0x272b33=0x0,_0x3ccaa8,_0x5456fb,_0x3db74d=0x0;_0x5456fb=_0x85ccee['charAt'](_0x3db74d++);~_0x5456fb&&(_0x3ccaa8=_0x272b33%0x4?_0x3ccaa8*0x40+_0x5456fb:_0x5456fb,_0x272b33++%0x4)?_0x9541e3+=String['fromCharCode'](0xff&_0x3ccaa8>>(-0x2*_0x272b33&0x6)):0x0){_0x5456fb=_0x40b6c8['indexOf'](_0x5456fb);}for(let _0x37cc00=0x0,_0x1e3068=_0x9541e3['length'];_0x37cc00<_0x1e3068;_0x37cc00++){_0x168ecd+='%'+('00'+_0x9541e3['charCodeAt'](_0x37cc00)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x168ecd);};a0_0x30d2['PNJQpx']=_0x111dce,a0_0x30d2['EqjZnl']={},a0_0x30d2['uDRioC']=!![];}const _0x5c15fc=_0x5725f1[0x0],_0x26afd5=_0x514a18+_0x5c15fc,_0x3806b6=a0_0x30d2['EqjZnl'][_0x26afd5];return!_0x3806b6?(_0x30d209=a0_0x30d2['PNJQpx'](_0x30d209),a0_0x30d2['EqjZnl'][_0x26afd5]=_0x30d209):_0x30d209=_0x3806b6,_0x30d209;}export class BudgetService{constructor(_0x9541e3,_0x168ecd){const _0x17f6e5=a0_0x30d2;this[_0x17f6e5(0x168)]=_0x9541e3||{},this[_0x17f6e5(0x155)]=_0x168ecd,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x17f6e5(0x14f)]={'daily':BUDGET_LIMITS[_0x17f6e5(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x17f6e5(0x131)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x17f6e5(0x149)],'lastAlertTimes':new Map()},this[_0x17f6e5(0x160)](),this['setupPeriodicSave']();}[a0_0x167936(0x122)](_0x272b33,_0x3ccaa8,_0x5456fb){const _0xd85ae1=a0_0x167936;try{const _0x3db74d=this[_0xd85ae1(0x14a)](_0x3ccaa8,_0x5456fb),_0x37cc00=new Date(),_0x1e3068=this[_0xd85ae1(0x110)](_0x37cc00),_0x170626=this[_0xd85ae1(0x163)](_0x37cc00),_0xe04a3f=this[_0xd85ae1(0x11f)](_0x37cc00);this[_0xd85ae1(0x13c)](this[_0xd85ae1(0x145)][_0xd85ae1(0x132)],_0x1e3068),this['initializeUsageEntry'](this['usage'][_0xd85ae1(0x14c)],_0x170626),this[_0xd85ae1(0x13c)](this['usage'][_0xd85ae1(0x112)],_0xe04a3f);const _0x40de57={'agentId':_0x272b33,'modelId':_0x3ccaa8,'tokens':_0x5456fb[_0xd85ae1(0x141)],'cost':_0x3db74d,'timestamp':_0x37cc00['toISOString']()};return this['updateUsageEntry'](this['usage'][_0xd85ae1(0x132)][_0xd85ae1(0x142)](_0x1e3068),_0x40de57),this['updateUsageEntry'](this['usage']['weekly'][_0xd85ae1(0x142)](_0x170626),_0x40de57),this['updateUsageEntry'](this[_0xd85ae1(0x145)]['monthly'][_0xd85ae1(0x142)](_0xe04a3f),_0x40de57),this[_0xd85ae1(0x145)]['total']['tokens']+=_0x5456fb['total_tokens'],this[_0xd85ae1(0x145)]['total']['cost']+=_0x3db74d,this['usage']['total'][_0xd85ae1(0x134)]+=0x1,this['checkBudgetLimits'](_0x1e3068,_0x170626,_0xe04a3f),this['logger']['info'](_0xd85ae1(0x158),{'agentId':_0x272b33,'modelId':_0x3ccaa8,'tokens':_0x5456fb['total_tokens'],'cost':_0x3db74d,'totalCost':this['usage']['total'][_0xd85ae1(0x118)]}),{'cost':_0x3db74d,'totalCost':this['usage']['total']['cost'],'totalTokens':this['usage'][_0xd85ae1(0x108)]['tokens'],'dailyUsage':this['usage'][_0xd85ae1(0x132)]['get'](_0x1e3068),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5a6123){this[_0xd85ae1(0x155)][_0xd85ae1(0x148)](_0xd85ae1(0x126),{'error':_0x5a6123['message'],'agentId':_0x272b33,'modelId':_0x3ccaa8});throw _0x5a6123;}}['calculateCost'](_0x253dfc,_0x2eda47){const _0x163757=a0_0x167936,_0x1f5a86=COST_PER_TOKEN[_0x253dfc];if(!_0x1f5a86)return this[_0x163757(0x155)][_0x163757(0x15b)](_0x163757(0x14d),{'modelId':_0x253dfc}),0x0;const _0x20e338=(_0x2eda47[_0x163757(0x10f)]||0x0)*_0x1f5a86['input'],_0x55d09f=(_0x2eda47['completion_tokens']||0x0)*_0x1f5a86[_0x163757(0x157)];return _0x20e338+_0x55d09f;}['getUsage'](_0x59ff7e='daily',_0x2b1162=new Date()){const _0xe632a8=a0_0x167936;switch(_0x59ff7e){case'daily':return this['usage']['daily']['get'](this[_0xe632a8(0x110)](_0x2b1162))||this['createEmptyUsage']();case'weekly':return this[_0xe632a8(0x145)]['weekly'][_0xe632a8(0x142)](this[_0xe632a8(0x163)](_0x2b1162))||this['createEmptyUsage']();case _0xe632a8(0x112):return this['usage']['monthly'][_0xe632a8(0x142)](this[_0xe632a8(0x11f)](_0x2b1162))||this[_0xe632a8(0x166)]();case'total':return{...this['usage'][_0xe632a8(0x108)]};default:throw new Error(_0xe632a8(0x123)+_0x59ff7e);}}['getAgentUsage'](_0x4eb8ca,_0x138421=a0_0x167936(0x132)){const _0xb531d=this['getUsage'](_0x138421);return _0xb531d['byAgent']?.[_0x4eb8ca]||this['createEmptyUsage']();}[a0_0x167936(0x137)](_0x5bc0d7,_0x165425='daily'){const _0x1d2a95=a0_0x167936,_0x4ba1fb=this[_0x1d2a95(0x11e)](_0x165425);return _0x4ba1fb[_0x1d2a95(0x156)]?.[_0x5bc0d7]||this[_0x1d2a95(0x166)]();}[a0_0x167936(0x120)](_0x32ea5b){const _0xe9882f=a0_0x167936;if(_0x32ea5b['daily']!==undefined)this[_0xe9882f(0x14f)][_0xe9882f(0x132)]=_0x32ea5b['daily'];if(_0x32ea5b[_0xe9882f(0x14c)]!==undefined)this['budgets'][_0xe9882f(0x14c)]=_0x32ea5b[_0xe9882f(0x14c)];if(_0x32ea5b['monthly']!==undefined)this[_0xe9882f(0x14f)]['monthly']=_0x32ea5b[_0xe9882f(0x112)];this['logger']['info']('Budget\x20limits\x20updated',this['budgets']),this[_0xe9882f(0x136)]();}['getRemainingBudget'](){const _0x331b15=a0_0x167936,_0x81f72=new Date(),_0x174f2e=this[_0x331b15(0x11e)](_0x331b15(0x132),_0x81f72),_0x6a5d27=this['getUsage']('weekly',_0x81f72),_0x1bfad6=this['getUsage'](_0x331b15(0x112),_0x81f72);return{'daily':Math[_0x331b15(0x151)](0x0,this[_0x331b15(0x14f)][_0x331b15(0x132)]-_0x174f2e[_0x331b15(0x118)]),'weekly':Math['max'](0x0,this[_0x331b15(0x14f)]['weekly']-_0x6a5d27['cost']),'monthly':Math[_0x331b15(0x151)](0x0,this[_0x331b15(0x14f)]['monthly']-_0x1bfad6[_0x331b15(0x118)])};}[a0_0x167936(0x114)](_0xfca345='daily'){const _0x15bb45=this['getUsage'](_0xfca345),_0x58d7d2=this['budgets'][_0xfca345];return _0x15bb45['cost']<=_0x58d7d2;}['getUsageTrends'](_0x36401f=0x1e){const _0x3ff1ae=a0_0x167936,_0x84684a={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x157940=new Date();let _0x537e1c=0x0,_0x9c848f=0x0,_0x59e8f1=0x0;const _0x889db5=new Map(),_0x204878=new Map();for(let _0x4663eb=0x0;_0x4663eb<_0x36401f;_0x4663eb++){const _0x5d89a0=new Date(_0x157940);_0x5d89a0['setDate'](_0x5d89a0['getDate']()-_0x4663eb);const _0x2d2eca=this[_0x3ff1ae(0x110)](_0x5d89a0),_0x1bd3c5=this[_0x3ff1ae(0x145)][_0x3ff1ae(0x132)][_0x3ff1ae(0x142)](_0x2d2eca);_0x1bd3c5?(_0x537e1c+=_0x1bd3c5['cost'],_0x9c848f+=_0x1bd3c5[_0x3ff1ae(0x130)],_0x59e8f1+=_0x1bd3c5['requests'],_0x84684a['costByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'cost':_0x1bd3c5['cost']}),_0x84684a[_0x3ff1ae(0x11a)]['unshift']({'date':_0x2d2eca,'tokens':_0x1bd3c5[_0x3ff1ae(0x130)]}),Object['entries'](_0x1bd3c5['byAgent']||{})[_0x3ff1ae(0x13a)](([_0xd9946c,_0x591ede])=>{const _0x3b60be=_0x3ff1ae;!_0x889db5[_0x3b60be(0x161)](_0xd9946c)&&_0x889db5['set'](_0xd9946c,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x3d8ee2=_0x889db5['get'](_0xd9946c);_0x3d8ee2['cost']+=_0x591ede[_0x3b60be(0x118)],_0x3d8ee2[_0x3b60be(0x130)]+=_0x591ede[_0x3b60be(0x130)],_0x3d8ee2['requests']+=_0x591ede[_0x3b60be(0x134)];}),Object['entries'](_0x1bd3c5['byModel']||{})['forEach'](([_0x2c67e2,_0x32ce0d])=>{const _0xf00126=_0x3ff1ae;!_0x204878[_0xf00126(0x161)](_0x2c67e2)&&_0x204878['set'](_0x2c67e2,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x4353d8=_0x204878['get'](_0x2c67e2);_0x4353d8['cost']+=_0x32ce0d['cost'],_0x4353d8['tokens']+=_0x32ce0d[_0xf00126(0x130)],_0x4353d8['requests']+=_0x32ce0d['requests'];})):(_0x84684a['costByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'cost':0x0}),_0x84684a['tokensByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'tokens':0x0}));}return _0x84684a[_0x3ff1ae(0x159)]['cost']=_0x537e1c/_0x36401f,_0x84684a['dailyAverages']['tokens']=_0x9c848f/_0x36401f,_0x84684a[_0x3ff1ae(0x159)]['requests']=_0x59e8f1/_0x36401f,_0x84684a[_0x3ff1ae(0x12f)]=Array['from'](_0x889db5[_0x3ff1ae(0x10a)]())[_0x3ff1ae(0x169)](([_0x39a2b5,_0x208b36])=>({'id':_0x39a2b5,..._0x208b36}))[_0x3ff1ae(0x12d)]((_0x4ba363,_0x52c74a)=>_0x52c74a[_0x3ff1ae(0x118)]-_0x4ba363[_0x3ff1ae(0x118)])['slice'](0x0,0xa),_0x84684a[_0x3ff1ae(0x124)]=Array[_0x3ff1ae(0x15f)](_0x204878['entries']())[_0x3ff1ae(0x169)](([_0x23794c,_0x2ee03e])=>({'id':_0x23794c,..._0x2ee03e}))[_0x3ff1ae(0x12d)]((_0x38a683,_0x155f6a)=>_0x155f6a[_0x3ff1ae(0x118)]-_0x38a683['cost'])[_0x3ff1ae(0x15c)](0x0,0xa),_0x84684a;}[a0_0x167936(0x10b)](_0x96331e='json',_0x1eab0b=null,_0x48d655=null){const _0x1abda9=a0_0x167936,_0x1d6f06={'budgets':this[_0x1abda9(0x14f)],'total':this[_0x1abda9(0x145)]['total'],'daily':{},'weekly':{},'monthly':{}},_0xb17006=(_0x35f91e,_0x2667ea)=>{const _0x298c36=_0x1abda9,_0x49837e={};return _0x35f91e[_0x298c36(0x13a)]((_0x525b16,_0x3e9a0f)=>{const _0x495082=_0x2667ea(_0x3e9a0f);(!_0x1eab0b||_0x495082>=_0x1eab0b)&&(!_0x48d655||_0x495082<=_0x48d655)&&(_0x49837e[_0x3e9a0f]=_0x525b16);}),_0x49837e;};_0x1eab0b||_0x48d655?(_0x1d6f06[_0x1abda9(0x132)]=_0xb17006(this[_0x1abda9(0x145)][_0x1abda9(0x132)],_0x2f6805=>new Date(_0x2f6805)),_0x1d6f06['weekly']=_0xb17006(this['usage']['weekly'],_0x596201=>new Date(_0x596201)),_0x1d6f06['monthly']=_0xb17006(this[_0x1abda9(0x145)]['monthly'],_0x420e69=>new Date(_0x420e69+_0x1abda9(0x146)))):(this[_0x1abda9(0x145)]['daily']['forEach']((_0x229476,_0x224562)=>_0x1d6f06['daily'][_0x224562]=_0x229476),this[_0x1abda9(0x145)][_0x1abda9(0x14c)][_0x1abda9(0x13a)]((_0x59819c,_0x23929d)=>_0x1d6f06[_0x1abda9(0x14c)][_0x23929d]=_0x59819c),this['usage']['monthly'][_0x1abda9(0x13a)]((_0x33ae32,_0x5aeb70)=>_0x1d6f06[_0x1abda9(0x112)][_0x5aeb70]=_0x33ae32));if(_0x96331e===_0x1abda9(0x119))return this[_0x1abda9(0x12c)](_0x1d6f06);return JSON['stringify'](_0x1d6f06,null,0x2);}[a0_0x167936(0x13c)](_0x206e3c,_0x3fdf4d){const _0x210ec8=a0_0x167936;!_0x206e3c[_0x210ec8(0x161)](_0x3fdf4d)&&_0x206e3c['set'](_0x3fdf4d,this['createEmptyUsage']());}[a0_0x167936(0x166)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x35b9bd,_0x4b6c78){const _0x94ed95=a0_0x167936;_0x35b9bd['cost']+=_0x4b6c78[_0x94ed95(0x118)],_0x35b9bd['tokens']+=_0x4b6c78[_0x94ed95(0x130)],_0x35b9bd['requests']+=0x1,!_0x35b9bd[_0x94ed95(0x14b)][_0x4b6c78[_0x94ed95(0x165)]]&&(_0x35b9bd['byAgent'][_0x4b6c78['agentId']]=this['createEmptyUsage']()),_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]][_0x94ed95(0x118)]+=_0x4b6c78['cost'],_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]][_0x94ed95(0x130)]+=_0x4b6c78[_0x94ed95(0x130)],_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]]['requests']+=0x1,!_0x35b9bd['byModel'][_0x4b6c78[_0x94ed95(0x138)]]&&(_0x35b9bd[_0x94ed95(0x156)][_0x4b6c78[_0x94ed95(0x138)]]=this[_0x94ed95(0x166)]()),_0x35b9bd[_0x94ed95(0x156)][_0x4b6c78['modelId']]['cost']+=_0x4b6c78[_0x94ed95(0x118)],_0x35b9bd['byModel'][_0x4b6c78['modelId']]['tokens']+=_0x4b6c78['tokens'],_0x35b9bd['byModel'][_0x4b6c78['modelId']]['requests']+=0x1;}['checkBudgetLimits'](_0x32e062,_0x5a2fce,_0x5556e9){const _0x56ec34=a0_0x167936,_0x3a8e1a=this[_0x56ec34(0x145)]['daily']['get'](_0x32e062),_0x2daa24=this[_0x56ec34(0x145)][_0x56ec34(0x14c)][_0x56ec34(0x142)](_0x5a2fce),_0x6785e1=this['usage']['monthly'][_0x56ec34(0x142)](_0x5556e9);_0x3a8e1a[_0x56ec34(0x118)]>this['budgets']['daily']&&this['sendBudgetAlert'](_0x56ec34(0x132),_0x3a8e1a['cost'],this[_0x56ec34(0x14f)][_0x56ec34(0x132)]),_0x2daa24[_0x56ec34(0x118)]>this[_0x56ec34(0x14f)][_0x56ec34(0x14c)]&&this['sendBudgetAlert']('weekly',_0x2daa24[_0x56ec34(0x118)],this[_0x56ec34(0x14f)]['weekly']),_0x6785e1['cost']>this[_0x56ec34(0x14f)]['monthly']&&this[_0x56ec34(0x12e)](_0x56ec34(0x112),_0x6785e1['cost'],this['budgets'][_0x56ec34(0x112)]),this[_0x56ec34(0x13d)](_0x3a8e1a,_0x2daa24,_0x6785e1);}['checkThresholdAlerts'](_0x2eacbb,_0x52ee3b,_0x1b1416){const _0x8c0967=a0_0x167936,_0x13abaa=this['alerts'][_0x8c0967(0x150)];this[_0x8c0967(0x15e)](_0x8c0967(0x132),_0x2eacbb[_0x8c0967(0x118)],this['budgets']['daily'],_0x13abaa),this['checkThreshold'](_0x8c0967(0x14c),_0x52ee3b[_0x8c0967(0x118)],this['budgets'][_0x8c0967(0x14c)],_0x13abaa),this['checkThreshold']('monthly',_0x1b1416['cost'],this['budgets'][_0x8c0967(0x112)],_0x13abaa);}['checkThreshold'](_0x5004a3,_0x57be5,_0x40bdbe,_0x523658){const _0x36cc98=a0_0x167936,_0x48bcf7=_0x57be5/_0x40bdbe*0x64;for(const _0x37dc92 of _0x523658){if(_0x48bcf7>=_0x37dc92){const _0x380abb=_0x5004a3+'_'+_0x37dc92,_0x60d6cd=this[_0x36cc98(0x15a)][_0x36cc98(0x116)]['get'](_0x380abb),_0x188fe9=Date[_0x36cc98(0x152)]();(!_0x60d6cd||_0x188fe9-_0x60d6cd>0x36ee80)&&(this[_0x36cc98(0x121)](_0x5004a3,_0x48bcf7,_0x37dc92,_0x57be5,_0x40bdbe),this['alerts']['lastAlertTimes'][_0x36cc98(0x144)](_0x380abb,_0x188fe9));break;}}}[a0_0x167936(0x12e)](_0x2bf5b4,_0x2c7a0d,_0x4bf88a){const _0x2071d6=a0_0x167936;this['logger']['warn'](_0x2071d6(0x11b),{'period':_0x2bf5b4,'currentUsage':_0x2c7a0d,'budgetLimit':_0x4bf88a,'excess':_0x2c7a0d-_0x4bf88a}),typeof process!=='undefined'&&process[_0x2071d6(0x162)]&&process[_0x2071d6(0x162)](_0x2071d6(0x10c),{'type':'budget_exceeded','period':_0x2bf5b4,'currentUsage':_0x2c7a0d,'budgetLimit':_0x4bf88a,'excess':_0x2c7a0d-_0x4bf88a});}[a0_0x167936(0x121)](_0x4c7685,_0x19b34f,_0x115194,_0x1092ce,_0x20aba8){const _0x526d06=a0_0x167936;this[_0x526d06(0x155)]['warn']('Budget\x20threshold\x20reached',{'period':_0x4c7685,'percentage':Math['round'](_0x19b34f),'threshold':_0x115194,'usage':_0x1092ce,'budget':_0x20aba8}),typeof process!=='undefined'&&process[_0x526d06(0x162)]&&process[_0x526d06(0x162)](_0x526d06(0x10c),{'type':_0x526d06(0x13f),'period':_0x4c7685,'percentage':Math[_0x526d06(0x167)](_0x19b34f),'threshold':_0x115194,'usage':_0x1092ce,'budget':_0x20aba8});}[a0_0x167936(0x110)](_0x5205c3){const _0x410659=a0_0x167936;return _0x5205c3['toISOString']()[_0x410659(0x15d)]('T')[0x0];}['getWeekKey'](_0x446dce){const _0x5cc177=a0_0x167936,_0x33fde0=_0x446dce['getFullYear'](),_0x480403=this['getWeekNumber'](_0x446dce);return _0x33fde0+'-W'+_0x480403[_0x5cc177(0x153)]()['padStart'](0x2,'0');}[a0_0x167936(0x11f)](_0x374008){const _0x1e7878=a0_0x167936,_0x23d453=_0x374008['getFullYear'](),_0x11d734=_0x374008['getMonth']()+0x1;return _0x23d453+'-'+_0x11d734[_0x1e7878(0x153)]()[_0x1e7878(0x154)](0x2,'0');}[a0_0x167936(0x13e)](_0x5cda69){const _0x284e6f=new Date(_0x5cda69['getFullYear'](),0x0,0x1),_0x412845=(_0x5cda69-_0x284e6f)/0x5265c00;return Math['ceil']((_0x412845+_0x284e6f['getDay']()+0x1)/0x7);}[a0_0x167936(0x12c)](_0x4df4f){const _0x1b083a=a0_0x167936,_0x31d96b=[];return _0x31d96b['push']([_0x1b083a(0x16a),_0x1b083a(0x10e),_0x1b083a(0x147),'Tokens',_0x1b083a(0x12b),'Agent',_0x1b083a(0x13b)]),Object['entries'](_0x4df4f['daily'])[_0x1b083a(0x13a)](([_0x50f39c,_0x1ba0ce])=>{const _0x4d2c7a=_0x1b083a;_0x31d96b[_0x4d2c7a(0x139)]([_0x4d2c7a(0x109),_0x50f39c,_0x1ba0ce['cost'],_0x1ba0ce[_0x4d2c7a(0x130)],_0x1ba0ce[_0x4d2c7a(0x134)],'','']),Object[_0x4d2c7a(0x10a)](_0x1ba0ce[_0x4d2c7a(0x14b)]||{})[_0x4d2c7a(0x13a)](([_0xe86e12,_0x3f7bfa])=>{const _0x530c2a=_0x4d2c7a;_0x31d96b['push']([_0x530c2a(0x109),_0x50f39c,_0x3f7bfa[_0x530c2a(0x118)],_0x3f7bfa[_0x530c2a(0x130)],_0x3f7bfa[_0x530c2a(0x134)],_0xe86e12,'']);});}),_0x31d96b[_0x1b083a(0x169)](_0x173610=>_0x173610[_0x1b083a(0x164)](','))['join']('\x0a');}[a0_0x167936(0x160)](){const _0x1f7458=a0_0x167936;try{this[_0x1f7458(0x155)][_0x1f7458(0x127)](_0x1f7458(0x10d));}catch(_0x1a02bc){this[_0x1f7458(0x155)][_0x1f7458(0x148)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x1a02bc['message']});}}[a0_0x167936(0x136)](){const _0x14c917=a0_0x167936;try{this[_0x14c917(0x155)][_0x14c917(0x14e)]('Usage\x20data\x20saved');}catch(_0x4f97c8){this[_0x14c917(0x155)][_0x14c917(0x148)](_0x14c917(0x129),{'error':_0x4f97c8['message']});}}[a0_0x167936(0x143)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}function a0_0x5725(){const _0xfba01=['Bg9Nz2vY','yNLnB2rLBa','B3v0Chv0','vxnHz2uGDhjHy2TLza','zgfPBhLbDMvYywDLCW','ywXLCNrZ','D2fYBG','C2XPy2u','C3bSAxq','y2HLy2TuAhjLC2HVBgq','zNjVBq','Bg9HzfvZywDLrgf0yq','AgfZ','zw1PDa','z2v0v2vLA0TLEq','AM9PBG','ywDLBNrjza','y3jLyxrLrw1WDhLvC2fNzq','CM91BMq','y29UzMLN','BwfW','ugvYAw9K','Dg90ywW','rgfPBhK','zw50CMLLCW','zxHWB3j0vxnHz2veyxrH','yNvKz2v0qwXLCNq','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','rgf0zq','ChjVBxb0x3rVA2vUCW','z2v0rgf5s2v5','ntu4otm2A0DIC1ry','Bw9UDgHSEq','refjtfK','AxnxAxrOAw5cDwrNzxq','mtG5mJG2uePdCwLO','BgfZDefSzxj0vgLTzxm','mJqWnM91zhHeBq','y29ZDa','y3n2','Dg9Rzw5ZqNLeyxK','qNvKz2v0igXPBwL0igv4y2vLzgvK','mZvKuuHMDvG','odiZmhrcEgj2yG','z2v0vxnHz2u','z2v0tw9UDgHlzxK','C2v0qNvKz2v0CW','C2vUzfrOCMvZAg9SzefSzxj0','DhjHy2TvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','Dg9Wtw9KzwXZ','mZK0mtC1mNbRwNjiEa','rMfPBgvKihrVihrYywnRihvZywDL','Aw5MBW','mZq3ntHsB29XALG','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','odCXmhjuqwfhrG','uMvXDwvZDhm','y29UDMvYDfrVq1nw','C29YDa','C2vUzej1zgDLDefSzxj0','Dg9WqwDLBNrZ','Dg9Rzw5Z','tu9oveHmwq','zgfPBhK','ndaZotyWEKXTA2DJ','CMvXDwvZDhm','mJi4oti4mKnnzMT3wq','C2f2zvvZywDLrgf0yq','z2v0tw9KzwXvC2fNzq','Bw9KzwXjza','ChvZAa','zM9YrwfJAa','tw9KzwW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgrbBgvYDhm','z2v0v2vLA051BwjLCG','DgHYzxnOB2XKx3jLywnOzwq','Dw5ZAgLMDa','Dg90ywXFDg9Rzw5Z','z2v0','C2v0DxbqzxjPB2rPy1nHDMu','C2v0','DxnHz2u','ltaX','q29ZDa','zxjYB3i','veHsrvnit0XeuW','y2fSy3vSyxrLq29ZDa','yNLbz2vUDa','D2vLA2X5','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','zgvIDwC','yNvKz2v0CW','DgHYzxnOB2XKCW','Bwf4','BM93','Dg9tDhjPBMC','CgfKu3rHCNq'];a0_0x5725=function(){return _0xfba01;};return a0_0x5725();}export default BudgetService;
@@ -1 +1 @@
1
- const a0_0x14a836=a0_0x3f03;function a0_0x5e9c(){const _0xaba3b0=['cIaGpc9MAwXLpG','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','zM9YBwf0sw1Hz2vgAwXL','s0iIig1Vzgu9iMnVBNrLBNqIpGO','yxr0ywnOBwvUDfnLCNzPy2u','zMLSzuLK','mJy0otKWEe1TuvPm','BwvZC2fNzq','Dg9Rzw5fC3rPBwf0zq','zM9YBwf0qNL0zxm','C2L6zq','zM9YBwf0q29UDgvUDezPBgu','zxn0Aw1HDgvKvg9Rzw5Z','mtqYndKWvLzRrhbc','Dgv4Da','Bg9Nz2vY','mJK1nZjezfHXEgm','z2v0qwn0AxzLqxr0ywnOBwvUDhm','zM9YBwf0vgv4DezPBgu','yNvPBgreEw5HBwLJq29UDgv4Da','BgvUz3rO','mJyWndeYuKvTEfPY','ChvZAa','mcbcExrLCW','zxn0Aw1HDgvuB3rHBfrVA2vUCW','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','zMXVB3i','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','Bg9N','zM9YBwf0uMvMzxjLBMnLrMLSzq','mtmYExLet2v2','ica8zMLSzsbUyw1Lpsi','zMLSzxm','Aw1Hz2u','mJfWBNfsDNa','nZyWnJrzAgzIvxm','iIaVpG','mJC5ode2mhzsChbPta','mtfNDwnnCu0','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIb0ExbLpsi','odHpDu5sAKu','CgrM','y29UDgvUDa','CMvMzxjLBMnL','CMvWBgfJzq','Dg9gAxHLza','z2v0qxr0ywnOBwvUDenVBNrLBNq','Aw5PDgLHBgL6zq','zxnJyxbLwg1S','iIbWyxrOpsi','mtbbwxPor00','iIbZAxPLpsi','Bw9Kzq','nZuZotnWrNPpD04','Cg93'];a0_0x5e9c=function(){return _0xaba3b0;};return a0_0x5e9c();}(function(_0x153b72,_0x2d353b){const _0x255e99=a0_0x3f03,_0x56337e=_0x153b72();while(!![]){try{const _0x19a33b=-parseInt(_0x255e99(0x199))/0x1*(-parseInt(_0x255e99(0x1bb))/0x2)+parseInt(_0x255e99(0x1b1))/0x3+-parseInt(_0x255e99(0x196))/0x4*(-parseInt(_0x255e99(0x1a6))/0x5)+-parseInt(_0x255e99(0x1c0))/0x6*(-parseInt(_0x255e99(0x195))/0x7)+-parseInt(_0x255e99(0x19c))/0x8*(-parseInt(_0x255e99(0x1a9))/0x9)+parseInt(_0x255e99(0x1b8))/0xa*(-parseInt(_0x255e99(0x191))/0xb)+-parseInt(_0x255e99(0x198))/0xc;if(_0x19a33b===_0x2d353b)break;else _0x56337e['push'](_0x56337e['shift']());}catch(_0x46d6ea){_0x56337e['push'](_0x56337e['shift']());}}}(a0_0x5e9c,0x1a2b9));function a0_0x3f03(_0x38c4e0,_0x17818a){_0x38c4e0=_0x38c4e0-0x18b;const _0x5e9cf9=a0_0x5e9c();let _0x3f03df=_0x5e9cf9[_0x38c4e0];if(a0_0x3f03['yeWGEX']===undefined){var _0x37f94e=function(_0x5035a9){const _0x3dc45d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2aa933='',_0x4169f3='';for(let _0x270f50=0x0,_0x3533a9,_0x85cf14,_0x305935=0x0;_0x85cf14=_0x5035a9['charAt'](_0x305935++);~_0x85cf14&&(_0x3533a9=_0x270f50%0x4?_0x3533a9*0x40+_0x85cf14:_0x85cf14,_0x270f50++%0x4)?_0x2aa933+=String['fromCharCode'](0xff&_0x3533a9>>(-0x2*_0x270f50&0x6)):0x0){_0x85cf14=_0x3dc45d['indexOf'](_0x85cf14);}for(let _0x19b4ad=0x0,_0x114147=_0x2aa933['length'];_0x19b4ad<_0x114147;_0x19b4ad++){_0x4169f3+='%'+('00'+_0x2aa933['charCodeAt'](_0x19b4ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4169f3);};a0_0x3f03['OCrAim']=_0x37f94e,a0_0x3f03['ryrAcb']={},a0_0x3f03['yeWGEX']=!![];}const _0x58b941=_0x5e9cf9[0x0],_0x122d19=_0x38c4e0+_0x58b941,_0x23b3c8=a0_0x3f03['ryrAcb'][_0x122d19];return!_0x23b3c8?(_0x3f03df=a0_0x3f03['OCrAim'](_0x3f03df),a0_0x3f03['ryrAcb'][_0x122d19]=_0x3f03df):_0x3f03df=_0x23b3c8,_0x3f03df;}import a0_0x2aa933 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x4169f3={},_0x270f50=null){const _0x347662=a0_0x3f03;this['config']=_0x4169f3,this[_0x347662(0x1ba)]=_0x270f50,this[_0x347662(0x1af)]=new a0_0x2aa933(_0x4169f3,_0x270f50);}async[a0_0x14a836(0x1a3)](){const _0x589c57=a0_0x14a836;await this[_0x589c57(0x1af)][_0x589c57(0x1a3)]();}async[a0_0x14a836(0x1be)](_0x3533a9){const _0xcabe1a=a0_0x14a836;try{const _0x85cf14=await this[_0xcabe1a(0x1af)][_0xcabe1a(0x1bc)](_0x3533a9);if(_0x85cf14[_0xcabe1a(0x1bf)]===0x0)return'';const _0x305935=_0x85cf14['filter'](_0x182aa4=>_0x182aa4['mode']==='content'),_0x19b4ad=_0x85cf14['filter'](_0x1847f1=>_0x1847f1[_0xcabe1a(0x1a8)]==='reference');let _0x114147='';if(_0x305935[_0xcabe1a(0x1bf)]>0x0){_0x114147+='\x0a<attached-files>\x0a';for(const _0x3d14fa of _0x305935){const _0x10ee07=await this['attachmentService'][_0xcabe1a(0x1a2)](_0x3d14fa[_0xcabe1a(0x1b0)]);if(_0x10ee07){const _0x375204=this[_0xcabe1a(0x1b6)](_0x3d14fa,_0x10ee07);_0x114147+=_0x375204+'\x0a';}}_0x114147+='</attached-files>\x0a';}if(_0x19b4ad['length']>0x0){_0x114147+=_0xcabe1a(0x19a);for(const _0x32c768 of _0x19b4ad){const _0x4aab86=this[_0xcabe1a(0x190)](_0x32c768);_0x114147+=_0x4aab86+'\x0a';}_0x114147+='</file-references>\x0a',_0x114147+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x114147;}catch(_0x2abdb1){return this[_0xcabe1a(0x1ba)]?.['error'](_0xcabe1a(0x18c),{'agentId':_0x3533a9,'error':_0x2abdb1['message']}),'';}}['formatContentFile'](_0x4e9efe,_0x47527e){const _0x5ed438=a0_0x14a836,{fileName:_0x48f397,fileType:_0x149217,size:_0xa5dd09,contentType:_0xb66394}=_0x4e9efe,_0x102495=(_0xa5dd09/0x400)['toFixed'](0x2);if(_0xb66394===_0x5ed438(0x1b9))return this[_0x5ed438(0x1bd)](_0x4e9efe,_0x47527e);else{if(_0xb66394===_0x5ed438(0x194))return this['formatImageFile'](_0x4e9efe,_0x47527e);else{if(_0xb66394===_0x5ed438(0x19d))return this['formatPdfFile'](_0x4e9efe,_0x47527e);}}return _0x5ed438(0x192)+this['escapeXml'](_0x48f397)+'\x22\x20type=\x22'+_0x149217+'\x22\x20size=\x22'+_0x102495+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x47527e)+'\x0a\x20\x20</file>';}[a0_0x14a836(0x1bd)](_0x3abc93,_0x4d1106){const _0x5f2449=a0_0x14a836,{fileName:_0x50fa24,fileType:_0xef5404,size:_0x379f72}=_0x3abc93,_0x32e2cd=(_0x379f72/0x400)['toFixed'](0x2);return _0x5f2449(0x192)+this[_0x5f2449(0x1a4)](_0x50fa24)+_0x5f2449(0x19b)+_0xef5404+'\x22\x20size=\x22'+_0x32e2cd+_0x5f2449(0x1ae)+this[_0x5f2449(0x1a4)](_0x4d1106)+_0x5f2449(0x1ab);}[a0_0x14a836(0x1ad)](_0x17890e,_0x5a6fe9){const _0x39f715=a0_0x14a836,{fileName:_0x3bb629,fileType:_0x49fda8,size:_0x342795}=_0x17890e,_0x3fe991=(_0x342795/0x400)[_0x39f715(0x1a1)](0x2);return _0x39f715(0x192)+this[_0x39f715(0x1a4)](_0x3bb629)+'\x22\x20type=\x22'+_0x49fda8+'\x22\x20size=\x22'+_0x3fe991+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x5a6fe9+_0x39f715(0x1ab);}['formatPdfFile'](_0x1397f9,_0x227304){const _0x5c3ed0=a0_0x14a836,{fileName:_0x2c1a29,fileType:_0x1ea997,size:_0x50aef6}=_0x1397f9,_0x396ba2=(_0x50aef6/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x5c3ed0(0x1a4)](_0x2c1a29)+_0x5c3ed0(0x19b)+_0x1ea997+_0x5c3ed0(0x1a7)+_0x396ba2+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x5c3ed0(0x1a4)](_0x227304)+_0x5c3ed0(0x1ab);}['formatReferenceFile'](_0x5c252f){const _0x27f8c2=a0_0x14a836,{fileName:_0x2de4e5,originalPath:_0x33f1a3,size:_0x5caaa7,fileType:_0x5a53c8,lastModified:_0x40a6b9}=_0x5c252f,_0x466005=this[_0x27f8c2(0x1b4)](_0x5caaa7),_0x37ce0f=new Date(_0x40a6b9)['toISOString']()['split']('T')[0x0];return _0x27f8c2(0x192)+this['escapeXml'](_0x2de4e5)+_0x27f8c2(0x1a5)+this['escapeXml'](_0x33f1a3)+_0x27f8c2(0x1a7)+_0x466005+'\x22\x20type=\x22'+_0x5a53c8+'\x22\x20modified=\x22'+_0x37ce0f+_0x27f8c2(0x197);}[a0_0x14a836(0x1a4)](_0x3aada0){const _0x1b9773=a0_0x14a836;if(!_0x3aada0)return'';return _0x3aada0[_0x1b9773(0x1a0)](/&/g,'&amp;')[_0x1b9773(0x1a0)](/</g,'&lt;')[_0x1b9773(0x1a0)](/>/g,'&gt;')['replace'](/"/g,'&quot;')[_0x1b9773(0x1a0)](/'/g,'&apos;');}[a0_0x14a836(0x1b4)](_0x248c9d){const _0x282d8a=a0_0x14a836;if(_0x248c9d===0x0)return _0x282d8a(0x1c2);const _0x26fdf1=0x400,_0x40e9cc=['Bytes','KB','MB','GB'],_0x80372d=Math[_0x282d8a(0x18d)](Math[_0x282d8a(0x18f)](_0x248c9d)/Math['log'](_0x26fdf1));return parseFloat((_0x248c9d/Math[_0x282d8a(0x1aa)](_0x26fdf1,_0x80372d))['toFixed'](0x2))+_0x40e9cc[_0x80372d];}async[a0_0x14a836(0x18b)](_0x1d5c96){const _0x4fffab=a0_0x14a836;try{const _0x59e267=await this['attachmentService'][_0x4fffab(0x1bc)](_0x1d5c96);let _0x4657d5=0x0;for(const _0x484c3b of _0x59e267){_0x484c3b['mode']==='content'?_0x4657d5+=_0x484c3b['tokenEstimate']||0x0:_0x4657d5+=0x14;}return _0x4657d5;}catch(_0x12360d){return this[_0x4fffab(0x1ba)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x1d5c96,'error':_0x12360d[_0x4fffab(0x1b2)]}),0x0;}}async[a0_0x14a836(0x18e)](_0x1f50ba){const _0x1e487d=a0_0x14a836;try{const _0x1dbdb1=await this['attachmentService'][_0x1e487d(0x1bc)](_0x1f50ba),_0x57e45c={'totalActive':_0x1dbdb1['length'],'contentMode':_0x1dbdb1['filter'](_0x5a2271=>_0x5a2271[_0x1e487d(0x1a8)]===_0x1e487d(0x19e))[_0x1e487d(0x1bf)],'referenceMode':_0x1dbdb1['filter'](_0x2b6623=>_0x2b6623['mode']===_0x1e487d(0x19f))[_0x1e487d(0x1bf)],'estimatedTokens':0x0,'files':[]};for(const _0x583ea9 of _0x1dbdb1){_0x57e45c[_0x1e487d(0x1b7)]+=_0x583ea9[_0x1e487d(0x1b3)]||0x0,_0x57e45c[_0x1e487d(0x193)][_0x1e487d(0x1c1)]({'fileName':_0x583ea9['fileName'],'mode':_0x583ea9[_0x1e487d(0x1a8)],'size':this['formatBytes'](_0x583ea9[_0x1e487d(0x1b5)]),'tokens':_0x583ea9[_0x1e487d(0x1b3)]||0x0});}return _0x57e45c;}catch(_0x4987ac){return this[_0x1e487d(0x1ba)]?.['error'](_0x1e487d(0x1ac),{'agentId':_0x1f50ba,'error':_0x4987ac['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
1
+ const a0_0xdc88c5=a0_0x3027;(function(_0x44cdad,_0x2e7e39){const _0x35f7ca=a0_0x3027,_0x43c3bb=_0x44cdad();while(!![]){try{const _0x2397f3=-parseInt(_0x35f7ca(0x1dc))/0x1*(-parseInt(_0x35f7ca(0x207))/0x2)+parseInt(_0x35f7ca(0x203))/0x3*(parseInt(_0x35f7ca(0x1db))/0x4)+-parseInt(_0x35f7ca(0x1fe))/0x5*(-parseInt(_0x35f7ca(0x1e6))/0x6)+parseInt(_0x35f7ca(0x206))/0x7+parseInt(_0x35f7ca(0x1f3))/0x8+parseInt(_0x35f7ca(0x1e1))/0x9*(-parseInt(_0x35f7ca(0x205))/0xa)+-parseInt(_0x35f7ca(0x1dd))/0xb*(parseInt(_0x35f7ca(0x1f1))/0xc);if(_0x2397f3===_0x2e7e39)break;else _0x43c3bb['push'](_0x43c3bb['shift']());}catch(_0x2bf563){_0x43c3bb['push'](_0x43c3bb['shift']());}}}(a0_0x1e13,0xc5253));function a0_0x1e13(){const _0x174ed8=['Aw5PDgLHBgL6zq','jMfTCdS','mteWndu0vg1RBNDV','jNf1B3q7','yNvPBgreEw5HBwLJq29UDgv4Da','zxjYB3i','Dg9gAxHLza','jMX0oW','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIaVpG','z2v0qwn0AxzLqxr0ywnOBwvUDhm','Bg9Nz2vY','BwvZC2fNzq','nJqYmJuYodrbD3HkCNa','ica8zMLSzsbUyw1Lpsi','otmZntmXmMHksMjjza','Dg9Rzw5fC3rPBwf0zq','Bw9Kzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zM9YBwf0qNL0zxm','Cg93','cIaGpc9MAwXLpG','CMvWBgfJzq','zMLSDgvY','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0q29UDgvUDezPBgu','ndm1CwHiq1HT','iIbZAxPLpsi','CMvMzxjLBMnL','Bg9N','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','ow9mrejWvG','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','nJaYmJGWvennBLjq','nZK4nJa1nxrfugvpqW','nteZmdKWuhrNvKL3','Dgv4Da','CgrM','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','BgvUz3rO','zM9YBwf0sw1Hz2vgAwXL','zMLSzu5HBwu','mteWodu4ne9Zr2DPqq','nKHtu0HrsW','mtfyzvDZCMO','Aw1Hz2u','zM9YBwf0vgv4DezPBgu','zxnJyxbLwg1S','mtHKC3LpAw4','iIbWyxrOpsi','iIb0ExbLpsi'];a0_0x1e13=function(){return _0x174ed8;};return a0_0x1e13();}import a0_0xd9c09a from'./fileAttachmentService.js';function a0_0x3027(_0x4f30ac,_0x27f0b0){_0x4f30ac=_0x4f30ac-0x1d7;const _0x1e1329=a0_0x1e13();let _0x3027a1=_0x1e1329[_0x4f30ac];if(a0_0x3027['ZDLHzT']===undefined){var _0x123dda=function(_0x3017aa){const _0x331066='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xd9c09a='',_0x35daf4='';for(let _0x3275fd=0x0,_0x19b8e1,_0xd69f49,_0x208152=0x0;_0xd69f49=_0x3017aa['charAt'](_0x208152++);~_0xd69f49&&(_0x19b8e1=_0x3275fd%0x4?_0x19b8e1*0x40+_0xd69f49:_0xd69f49,_0x3275fd++%0x4)?_0xd9c09a+=String['fromCharCode'](0xff&_0x19b8e1>>(-0x2*_0x3275fd&0x6)):0x0){_0xd69f49=_0x331066['indexOf'](_0xd69f49);}for(let _0x515527=0x0,_0x172dc3=_0xd9c09a['length'];_0x515527<_0x172dc3;_0x515527++){_0x35daf4+='%'+('00'+_0xd9c09a['charCodeAt'](_0x515527)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x35daf4);};a0_0x3027['svjGIg']=_0x123dda,a0_0x3027['QDeoBE']={},a0_0x3027['ZDLHzT']=!![];}const _0x56d3a3=_0x1e1329[0x0],_0x2289d6=_0x4f30ac+_0x56d3a3,_0x2c271c=a0_0x3027['QDeoBE'][_0x2289d6];return!_0x2c271c?(_0x3027a1=a0_0x3027['svjGIg'](_0x3027a1),a0_0x3027['QDeoBE'][_0x2289d6]=_0x3027a1):_0x3027a1=_0x2c271c,_0x3027a1;}class ContextInjectionService{constructor(_0x35daf4={},_0x3275fd=null){const _0x43879c=a0_0x3027;this['config']=_0x35daf4,this['logger']=_0x3275fd,this[_0x43879c(0x1fc)]=new a0_0xd9c09a(_0x35daf4,_0x3275fd);}async['initialize'](){const _0x5a53f6=a0_0x3027;await this[_0x5a53f6(0x1fc)][_0x5a53f6(0x1e4)]();}async[a0_0xdc88c5(0x1e8)](_0x19b8e1){const _0x48d219=a0_0xdc88c5;try{const _0xd69f49=await this['attachmentService']['getActiveAttachments'](_0x19b8e1);if(_0xd69f49[_0x48d219(0x1d8)]===0x0)return'';const _0x208152=_0xd69f49[_0x48d219(0x1fb)](_0x4af04f=>_0x4af04f['mode']==='content'),_0x515527=_0xd69f49[_0x48d219(0x1fb)](_0x566fea=>_0x566fea['mode']===_0x48d219(0x200));let _0x172dc3='';if(_0x208152[_0x48d219(0x1d8)]>0x0){_0x172dc3+='\x0a<attached-files>\x0a';for(const _0xc2a188 of _0x208152){const _0x44a83e=await this[_0x48d219(0x1fc)]['getAttachmentContent'](_0xc2a188['fileId']);if(_0x44a83e){const _0x27466a=this['formatContentFile'](_0xc2a188,_0x44a83e);_0x172dc3+=_0x27466a+'\x0a';}}_0x172dc3+='</attached-files>\x0a';}if(_0x515527['length']>0x0){_0x172dc3+=_0x48d219(0x1ec);for(const _0x2bb297 of _0x515527){const _0x3f13d5=this['formatReferenceFile'](_0x2bb297);_0x172dc3+=_0x3f13d5+'\x0a';}_0x172dc3+=_0x48d219(0x1f6),_0x172dc3+=_0x48d219(0x204);}return _0x172dc3;}catch(_0x291cce){return this['logger']?.[_0x48d219(0x1e9)](_0x48d219(0x202),{'agentId':_0x19b8e1,'error':_0x291cce['message']}),'';}}[a0_0xdc88c5(0x1fd)](_0x36c69c,_0x60d65){const _0x2dc4ac=a0_0xdc88c5,{fileName:_0x185dca,fileType:_0x2fabf3,size:_0x58ea76,contentType:_0x7d87af}=_0x36c69c,_0x47eb9c=(_0x58ea76/0x400)['toFixed'](0x2);if(_0x7d87af===_0x2dc4ac(0x208))return this[_0x2dc4ac(0x1df)](_0x36c69c,_0x60d65);else{if(_0x7d87af===_0x2dc4ac(0x1de))return this[_0x2dc4ac(0x1d9)](_0x36c69c,_0x60d65);else{if(_0x7d87af===_0x2dc4ac(0x209))return this['formatPdfFile'](_0x36c69c,_0x60d65);}}return _0x2dc4ac(0x1f2)+this[_0x2dc4ac(0x1e0)](_0x185dca)+_0x2dc4ac(0x1e3)+_0x2fabf3+_0x2dc4ac(0x1ff)+_0x47eb9c+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x60d65)+'\x0a\x20\x20</file>';}[a0_0xdc88c5(0x1df)](_0x5800a3,_0x594ca8){const _0x45278b=a0_0xdc88c5,{fileName:_0x3c5fb9,fileType:_0x2135c1,size:_0xb69d53}=_0x5800a3,_0x5b45fc=(_0xb69d53/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x45278b(0x1e0)](_0x3c5fb9)+'\x22\x20type=\x22'+_0x2135c1+_0x45278b(0x1ff)+_0x5b45fc+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x45278b(0x1e0)](_0x594ca8)+'\x0a\x20\x20</file>';}[a0_0xdc88c5(0x1d9)](_0x26f8a7,_0x59f0ec){const _0x150dfd=a0_0xdc88c5,{fileName:_0x269857,fileType:_0x19b9eb,size:_0x1af07e}=_0x26f8a7,_0x24accf=(_0x1af07e/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x269857)+_0x150dfd(0x1e3)+_0x19b9eb+_0x150dfd(0x1ff)+_0x24accf+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x59f0ec+_0x150dfd(0x1f9);}['formatPdfFile'](_0xc2111b,_0x791326){const _0x168116=a0_0xdc88c5,{fileName:_0x432d71,fileType:_0x792bde,size:_0x589f69}=_0xc2111b,_0x33fe19=(_0x589f69/0x400)[_0x168116(0x1ea)](0x2);return _0x168116(0x1f2)+this['escapeXml'](_0x432d71)+'\x22\x20type=\x22'+_0x792bde+'\x22\x20size=\x22'+_0x33fe19+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x791326)+'\x0a\x20\x20</file>';}['formatReferenceFile'](_0x4a19dd){const _0x6bacc6=a0_0xdc88c5,{fileName:_0x20f5bd,originalPath:_0x2645e0,size:_0x1b3116,fileType:_0x493aab,lastModified:_0x2bba1b}=_0x4a19dd,_0x3a52fe=this[_0x6bacc6(0x1f7)](_0x1b3116),_0x329c8b=new Date(_0x2bba1b)['toISOString']()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x20f5bd)+_0x6bacc6(0x1e2)+this[_0x6bacc6(0x1e0)](_0x2645e0)+'\x22\x20size=\x22'+_0x3a52fe+_0x6bacc6(0x1e3)+_0x493aab+'\x22\x20modified=\x22'+_0x329c8b+_0x6bacc6(0x1ed);}[a0_0xdc88c5(0x1e0)](_0xb6e7a){const _0x1ad7e7=a0_0xdc88c5;if(!_0xb6e7a)return'';return _0xb6e7a[_0x1ad7e7(0x1fa)](/&/g,_0x1ad7e7(0x1e5))[_0x1ad7e7(0x1fa)](/</g,_0x1ad7e7(0x1eb))[_0x1ad7e7(0x1fa)](/>/g,'&gt;')[_0x1ad7e7(0x1fa)](/"/g,_0x1ad7e7(0x1e7))['replace'](/'/g,'&apos;');}[a0_0xdc88c5(0x1f7)](_0x37cc06){const _0x21aecd=a0_0xdc88c5;if(_0x37cc06===0x0)return'0\x20Bytes';const _0x3d5f77=0x400,_0x1e7002=['Bytes','KB','MB','GB'],_0xb3e122=Math['floor'](Math[_0x21aecd(0x201)](_0x37cc06)/Math['log'](_0x3d5f77));return parseFloat((_0x37cc06/Math[_0x21aecd(0x1f8)](_0x3d5f77,_0xb3e122))['toFixed'](0x2))+_0x1e7002[_0xb3e122];}async['estimateTotalTokens'](_0x2b42ed){const _0x3b031a=a0_0xdc88c5;try{const _0x4cf4a9=await this['attachmentService']['getActiveAttachments'](_0x2b42ed);let _0xc316cf=0x0;for(const _0xe5d6e7 of _0x4cf4a9){_0xe5d6e7['mode']==='content'?_0xc316cf+=_0xe5d6e7[_0x3b031a(0x1f4)]||0x0:_0xc316cf+=0x14;}return _0xc316cf;}catch(_0x1c3da8){return this['logger']?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x2b42ed,'error':_0x1c3da8['message']}),0x0;}}async[a0_0xdc88c5(0x1d7)](_0x4623f0){const _0x8dab11=a0_0xdc88c5;try{const _0x4208f6=await this['attachmentService'][_0x8dab11(0x1ee)](_0x4623f0),_0xa1ac71={'totalActive':_0x4208f6['length'],'contentMode':_0x4208f6[_0x8dab11(0x1fb)](_0x43401c=>_0x43401c[_0x8dab11(0x1f5)]==='content')[_0x8dab11(0x1d8)],'referenceMode':_0x4208f6['filter'](_0x288f9b=>_0x288f9b[_0x8dab11(0x1f5)]==='reference')[_0x8dab11(0x1d8)],'estimatedTokens':0x0,'files':[]};for(const _0x184018 of _0x4208f6){_0xa1ac71['estimatedTokens']+=_0x184018[_0x8dab11(0x1f4)]||0x0,_0xa1ac71['files']['push']({'fileName':_0x184018[_0x8dab11(0x1da)],'mode':_0x184018[_0x8dab11(0x1f5)],'size':this[_0x8dab11(0x1f7)](_0x184018['size']),'tokens':_0x184018['tokenEstimate']||0x0});}return _0xa1ac71;}catch(_0x531129){return this[_0x8dab11(0x1ef)]?.[_0x8dab11(0x1e9)]('Error\x20getting\x20attachment\x20summary',{'agentId':_0x4623f0,'error':_0x531129[_0x8dab11(0x1f0)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;