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

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 +1 -1
  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-BVF_10a5.css +1 -0
  119. package/web-ui/build/static/{index-CX8ZfpGw.js → index-DE5VFS1q.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_0x4bf198=a0_0xfd66;(function(_0x5a5e8c,_0x1c7aa4){const _0x23d3dc=a0_0xfd66,_0x4204c7=_0x5a5e8c();while(!![]){try{const _0x247c8f=-parseInt(_0x23d3dc(0x25a))/0x1+parseInt(_0x23d3dc(0x23c))/0x2*(parseInt(_0x23d3dc(0x1de))/0x3)+parseInt(_0x23d3dc(0x21f))/0x4*(parseInt(_0x23d3dc(0x1ca))/0x5)+parseInt(_0x23d3dc(0x1f0))/0x6+parseInt(_0x23d3dc(0x21a))/0x7*(-parseInt(_0x23d3dc(0x21c))/0x8)+parseInt(_0x23d3dc(0x207))/0x9+-parseInt(_0x23d3dc(0x1df))/0xa*(parseInt(_0x23d3dc(0x216))/0xb);if(_0x247c8f===_0x1c7aa4)break;else _0x4204c7['push'](_0x4204c7['shift']());}catch(_0xa714f0){_0x4204c7['push'](_0x4204c7['shift']());}}}(a0_0xf1a0,0x18c74));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0xfd66(_0x22862e,_0x2e1830){_0x22862e=_0x22862e-0x1c1;const _0xf1a0d=a0_0xf1a0();let _0xfd66f9=_0xf1a0d[_0x22862e];if(a0_0xfd66['ZrbhbC']===undefined){var _0x26e5fd=function(_0x414b3f){const _0x2b597c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29f3b3='',_0x13f05f='';for(let _0x2eb08f=0x0,_0x5d6e1a,_0x13e5bf,_0x2582fa=0x0;_0x13e5bf=_0x414b3f['charAt'](_0x2582fa++);~_0x13e5bf&&(_0x5d6e1a=_0x2eb08f%0x4?_0x5d6e1a*0x40+_0x13e5bf:_0x13e5bf,_0x2eb08f++%0x4)?_0x29f3b3+=String['fromCharCode'](0xff&_0x5d6e1a>>(-0x2*_0x2eb08f&0x6)):0x0){_0x13e5bf=_0x2b597c['indexOf'](_0x13e5bf);}for(let _0x563471=0x0,_0x5a005d=_0x29f3b3['length'];_0x563471<_0x5a005d;_0x563471++){_0x13f05f+='%'+('00'+_0x29f3b3['charCodeAt'](_0x563471)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13f05f);};a0_0xfd66['OSqATj']=_0x26e5fd,a0_0xfd66['dFBZmf']={},a0_0xfd66['ZrbhbC']=!![];}const _0x281b25=_0xf1a0d[0x0],_0x2ab585=_0x22862e+_0x281b25,_0x482f1a=a0_0xfd66['dFBZmf'][_0x2ab585];return!_0x482f1a?(_0xfd66f9=a0_0xfd66['OSqATj'](_0xfd66f9),a0_0xfd66['dFBZmf'][_0x2ab585]=_0xfd66f9):_0xfd66f9=_0x482f1a,_0xfd66f9;}class AIService{constructor(_0x29f3b3,_0x13f05f,_0x2eb08f,_0x5d6e1a){const _0x2d11b9=a0_0xfd66;this['config']=_0x29f3b3,this['logger']=_0x13f05f,this['budgetService']=_0x2eb08f,this[_0x2d11b9(0x251)]=_0x5d6e1a,this['baseUrl']=_0x29f3b3[_0x2d11b9(0x204)]?.[_0x2d11b9(0x218)]||_0x2d11b9(0x205),this[_0x2d11b9(0x225)]=_0x29f3b3['backend']?.['timeout']||0xea60,this[_0x2d11b9(0x213)]=_0x29f3b3[_0x2d11b9(0x204)]?.['retryAttempts']||0x3,this[_0x2d11b9(0x1eb)]=new Map(),this['requestQueue']=new Map(),this[_0x2d11b9(0x259)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x2d11b9(0x234)]=this['_initializeModelSpecs'](),this['conversationManagers']=new Map(),this['apiKeyManager']=null,this[_0x2d11b9(0x1fd)]=null;}async[a0_0x4bf198(0x217)](_0x13e5bf,_0x2582fa,_0x563471={}){const _0x3677bc=a0_0x4bf198,_0x5a005d=_0x3677bc(0x1fc)+Date[_0x3677bc(0x24d)]()+'-'+Math['random']()['toString'](0x24)[_0x3677bc(0x1f9)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x3677bc(0x222));await this['_checkRateLimit'](_0x13e5bf);const _0x185fe7=this[_0x3677bc(0x1e0)](_0x2582fa,_0x13e5bf,_0x563471),_0x54b279={'model':_0x13e5bf,'messages':_0x185fe7,'options':{'max_tokens':this[_0x3677bc(0x234)][_0x13e5bf]?.[_0x3677bc(0x22f)]||0xfa0,'temperature':_0x563471['temperature']||0.7,'stream':_0x563471[_0x3677bc(0x1ec)]||![]},'metadata':{'requestId':_0x5a005d,'agentId':_0x563471[_0x3677bc(0x1d3)],'timestamp':new Date()[_0x3677bc(0x1d7)]()}};_0x563471['systemPrompt']&&(_0x54b279[_0x3677bc(0x1c2)]=_0x563471['systemPrompt']);this['logger']['info'](_0x3677bc(0x1f7)+_0x13e5bf,{'requestId':_0x5a005d,'agentId':_0x563471['agentId'],'messageCount':Array[_0x3677bc(0x267)](_0x2582fa)?_0x2582fa[_0x3677bc(0x1ce)]:0x1,'maxTokens':_0x54b279['max_tokens']});const _0x559357=await this[_0x3677bc(0x209)](_0x3677bc(0x1e9),_0x54b279,_0x5a005d,{..._0x563471,'sessionId':_0x563471['sessionId'],'platformProvided':_0x563471[_0x3677bc(0x232)]||![]});return _0x559357[_0x3677bc(0x206)]&&await this[_0x3677bc(0x20d)](_0x563471['agentId'],_0x13e5bf,{'prompt_tokens':_0x559357[_0x3677bc(0x206)]['prompt_tokens']||0x0,'completion_tokens':_0x559357[_0x3677bc(0x206)]['completion_tokens']||0x0,'total_tokens':_0x559357['usage']['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0x559357['choices'][0x0]?.['message']?.[_0x3677bc(0x242)]||'','model':_0x559357[_0x3677bc(0x250)],'tokenUsage':_0x559357[_0x3677bc(0x206)],'requestId':_0x5a005d,'finishReason':_0x559357[_0x3677bc(0x25c)][0x0]?.['finish_reason']};}catch(_0x27594d){this[_0x3677bc(0x257)](),this[_0x3677bc(0x1e8)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x27594d[_0x3677bc(0x235)],{'requestId':_0x5a005d,'model':_0x13e5bf,'agentId':_0x563471['agentId'],'error':_0x27594d[_0x3677bc(0x20c)]}),await this[_0x3677bc(0x201)](_0x27594d,{'requestId':_0x5a005d,'model':_0x13e5bf,'agentId':_0x563471['agentId']});throw _0x27594d;}}async['routeModel'](_0xa0ee27,_0x360982={}){const _0x11838b=a0_0x4bf198;try{const _0x35bffe=MODEL_ROUTING[_0xa0ee27[_0x11838b(0x255)]()]||MODEL_ROUTING[_0x11838b(0x224)],_0x48911f=[];for(const _0x2a62ea of _0x35bffe){const _0x7831aa=await this['_checkModelHealth'](_0x2a62ea);_0x7831aa&&_0x48911f[_0x11838b(0x1e2)](_0x2a62ea);}if(_0x48911f[_0x11838b(0x1ce)]===0x0)return this['logger'][_0x11838b(0x22e)](_0x11838b(0x1dc)+_0xa0ee27+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x5caf40=_0x48911f[0x0];if(_0x360982['preferredModel']&&_0x48911f['includes'](_0x360982['preferredModel']))_0x5caf40=_0x360982['preferredModel'];else{if(_0x360982['complexity']===_0x11838b(0x260)&&_0x48911f['includes'](MODELS[_0x11838b(0x1f1)]))_0x5caf40=MODELS['ANTHROPIC_OPUS'];else _0x360982['speed']==='fast'&&_0x48911f['includes'](MODELS[_0x11838b(0x212)])&&(_0x5caf40=MODELS[_0x11838b(0x212)]);}return this['logger']['info'](_0x11838b(0x266)+_0xa0ee27,{'selectedModel':_0x5caf40,'availableModels':_0x48911f['length'],'context':_0x360982}),_0x5caf40;}catch(_0x36a0f8){return this[_0x11838b(0x1e8)][_0x11838b(0x23b)](_0x11838b(0x1ef)+_0x36a0f8[_0x11838b(0x235)],{'task':_0xa0ee27,'context':_0x360982}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x357a65,_0x36f4ac){const _0x25a17e=a0_0x4bf198,_0x401231=this[_0x25a17e(0x234)][_0x36f4ac];if(!_0x401231)throw new Error('Unknown\x20model:\x20'+_0x36f4ac);const _0xc3a315=_0x401231['contextWindow']*0.8;let _0x4f42dd=0x0;const _0xf31c1f=[],_0x5e164e=await Promise['all'](_0x357a65[_0x25a17e(0x1e3)](async _0x23caaf=>({..._0x23caaf,'estimatedTokens':await this[_0x25a17e(0x226)](_0x23caaf['content'],_0x36f4ac)}))),_0x19943d=[..._0x5e164e]['reverse']();for(const _0x22684c of _0x19943d){if(_0x4f42dd+_0x22684c['estimatedTokens']>_0xc3a315){if(_0xf31c1f[_0x25a17e(0x1ce)]===0x0){const _0x53fbb1=await this['_truncateMessage'](_0x22684c['content'],_0xc3a315);_0xf31c1f['unshift']({..._0x22684c,'content':_0x53fbb1,'estimatedTokens':_0xc3a315});}break;}_0xf31c1f[_0x25a17e(0x1d6)](_0x22684c),_0x4f42dd+=_0x22684c[_0x25a17e(0x265)];}const _0x15d767=_0x5e164e[_0x25a17e(0x228)](0x0,-_0xf31c1f['length']);if(_0x15d767['length']>0x0){const _0x5181bc=await this['_summarizeMessages'](_0x15d767,_0x36f4ac);_0xf31c1f[_0x25a17e(0x1d6)]({'role':_0x25a17e(0x1c2),'content':'Previous\x20conversation\x20summary:\x20'+_0x5181bc,'timestamp':_0x15d767[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x25a17e(0x226)](_0x5181bc,_0x36f4ac)});}return this[_0x25a17e(0x1e8)][_0x25a17e(0x238)](_0x25a17e(0x22c)+_0x36f4ac,{'originalMessages':_0x357a65['length'],'compactizedMessages':_0xf31c1f[_0x25a17e(0x1ce)],'estimatedTokens':_0x4f42dd,'maxTokens':_0xc3a315}),_0xf31c1f;}async['trackUsage'](_0x197baf,_0x1ef57b,_0x159771,_0x145a58){const _0x2a7bce=a0_0x4bf198;try{this['budgetService']&&this[_0x2a7bce(0x20b)]['trackUsage'](_0x197baf,_0x1ef57b,_0x159771);}catch(_0x4e8a98){this['logger'][_0x2a7bce(0x23b)](_0x2a7bce(0x1ea)+_0x4e8a98['message']);}}async['handleHttpError'](_0x5a5e3c,_0x4f434b){const _0x443603=a0_0x4bf198,_0x422f4a=this[_0x443603(0x251)]?.['classifyError']?.(_0x5a5e3c,_0x4f434b);switch(_0x5a5e3c[_0x443603(0x20a)]||_0x5a5e3c[_0x443603(0x1fe)]){case HTTP_STATUS[_0x443603(0x25d)]:this['logger'][_0x443603(0x23b)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x4f434b,'error':_0x5a5e3c[_0x443603(0x235)]});throw new Error('Invalid\x20request:\x20'+_0x5a5e3c['message']);case HTTP_STATUS[_0x443603(0x1d4)]:this[_0x443603(0x1e8)][_0x443603(0x23b)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x4f434b});throw new Error(_0x443603(0x1fb));case HTTP_STATUS['FORBIDDEN']:this[_0x443603(0x1e8)][_0x443603(0x23b)]('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x4f434b});throw new Error(_0x443603(0x1e1));case HTTP_STATUS[_0x443603(0x25b)]:this['logger']['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x4f434b});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x443603(0x1e8)][_0x443603(0x22e)](_0x443603(0x208),{'context':_0x4f434b}),await this['_handleRateLimit'](_0x4f434b);throw new Error(_0x443603(0x1f4));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x443603(0x230)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this['logger']['error'](_0x443603(0x247),{'context':_0x4f434b,'status':_0x5a5e3c['status']}),await this[_0x443603(0x20e)](_0x4f434b);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x4f434b,'error':_0x5a5e3c[_0x443603(0x235)]});throw new Error(_0x443603(0x23d)+_0x5a5e3c['message']);}}[a0_0x4bf198(0x1c4)](_0x2cf131){const _0x194ae3=a0_0x4bf198;this[_0x194ae3(0x263)]=_0x2cf131,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x2cf131});}['setAgentPool'](_0x151862){const _0xe3478b=a0_0x4bf198;this['agentPool']=_0x151862,this['logger']?.[_0xe3478b(0x238)](_0xe3478b(0x229),{'hasAgentPool':!!_0x151862});}async[a0_0x4bf198(0x261)](_0x238cba,_0x3c5490={}){const _0x4b9465=a0_0x4bf198,_0x2854d7=_0x4b9465(0x1c3)+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x4b9465(0x222));if(!_0x238cba||typeof _0x238cba!==_0x4b9465(0x1d9)||_0x238cba[_0x4b9465(0x268)]()[_0x4b9465(0x1ce)]===0x0)throw new Error(_0x4b9465(0x1d1));const _0x57dce8=_0x3c5490[_0x4b9465(0x250)]||'flux-1.1-pro',_0x1ab50c=_0x3c5490[_0x4b9465(0x1ed)]||'1024x1024',_0x47b6af=_0x3c5490[_0x4b9465(0x1d5)]||_0x4b9465(0x22b),_0x5e68ae=_0x3c5490['responseFormat']||'url';this[_0x4b9465(0x1e8)]['info'](_0x4b9465(0x252)+_0x57dce8,{'requestId':_0x2854d7,'model':_0x57dce8,'size':_0x1ab50c,'quality':_0x47b6af,'promptLength':_0x238cba['length']});const _0x31c770={'prompt':_0x238cba,'model':_0x57dce8,'size':_0x1ab50c,'quality':_0x47b6af,'response_format':_0x5e68ae,'n':0x1,'metadata':{'requestId':_0x2854d7,'timestamp':new Date()['toISOString']()}},_0x30ec39=await this[_0x4b9465(0x1c8)](_0x31c770,_0x2854d7,{'sessionId':_0x3c5490[_0x4b9465(0x24e)],'platformProvided':_0x3c5490[_0x4b9465(0x232)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x30ec39['data']?.[0x0]?.['url']||null,'b64_json':_0x30ec39[_0x4b9465(0x227)]?.[0x0]?.['b64_json']||null,'model':_0x30ec39[_0x4b9465(0x250)]||_0x57dce8,'requestId':_0x2854d7,'revisedPrompt':_0x30ec39['data']?.[0x0]?.['revised_prompt']||_0x238cba};}catch(_0x42f118){this['_recordFailure'](),this['logger'][_0x4b9465(0x23b)]('Image\x20generation\x20failed:\x20'+_0x42f118[_0x4b9465(0x235)],{'requestId':_0x2854d7,'model':_0x3c5490['model'],'error':_0x42f118[_0x4b9465(0x20c)]});throw _0x42f118;}}async['checkServiceHealth'](){const _0x20aa5a=a0_0x4bf198;try{const _0x49b50c=await this['_makeAPIRequest']('/health',{},_0x20aa5a(0x254));return _0x49b50c['status']==='healthy';}catch(_0x31106e){return![];}}async[a0_0x4bf198(0x1e6)](_0x487ef5,_0x23416e){const _0x2c68a8=a0_0x4bf198;try{if(!this[_0x2c68a8(0x203)](_0x23416e))throw new Error('Invalid\x20model:\x20'+_0x23416e);let _0x2bf93d=this['conversationManagers'][_0x2c68a8(0x24a)](_0x487ef5);!_0x2bf93d&&(_0x2bf93d=new ConversationManager(_0x487ef5,this['logger']),this['conversationManagers']['set'](_0x487ef5,_0x2bf93d));const _0x3161cd=await _0x2bf93d['switchModel'](_0x23416e),_0x134fb8=await this['agentPool']?.['getAgent'](_0x487ef5);return _0x134fb8&&(_0x134fb8['currentModel']=_0x23416e,await this[_0x2c68a8(0x1fd)]['persistAgentState'](_0x487ef5)),this['logger'][_0x2c68a8(0x238)]('Agent\x20model\x20switched:\x20'+_0x487ef5,{'newModel':_0x23416e,'messageCount':_0x3161cd[_0x2c68a8(0x1cd)]['length']}),{'success':!![],'agentId':_0x487ef5,'newModel':_0x23416e,'conversation':_0x3161cd};}catch(_0xf27d0f){this[_0x2c68a8(0x1e8)][_0x2c68a8(0x23b)](_0x2c68a8(0x1f5)+_0xf27d0f[_0x2c68a8(0x235)],{'agentId':_0x487ef5,'newModel':_0x23416e});throw _0xf27d0f;}}[a0_0x4bf198(0x1c6)](){const _0x5dc9d3=a0_0x4bf198,_0x1409e8={[MODELS[_0x5dc9d3(0x253)]]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x25f)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x25f)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x5dc9d3(0x1cc)]]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x1cb)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x1cb)],'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[_0x5dc9d3(0x1cb)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x1cb)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x5dc9d3(0x210)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x5dc9d3(0x1c1)]]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x223)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x5dc9d3(0x1c5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x5dc9d3(0x1c5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x1409e8;}[a0_0x4bf198(0x1e0)](_0x3e0ae2,_0x130990,_0x562fc){const _0x3f6526=a0_0x4bf198,_0x10bf14=this[_0x3f6526(0x234)][_0x130990]||{'provider':_0x3f6526(0x1c5)};let _0x565f05;typeof _0x3e0ae2===_0x3f6526(0x1d9)?_0x565f05=[{'role':'user','content':_0x3e0ae2}]:_0x565f05=_0x3e0ae2['map'](_0x2f4dd0=>this['_formatSingleMessage'](_0x2f4dd0,_0x130990));switch(_0x10bf14[_0x3f6526(0x215)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x565f05);case MODEL_PROVIDERS[_0x3f6526(0x1cb)]:return this[_0x3f6526(0x21e)](_0x565f05);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x565f05);default:return _0x565f05;}}[a0_0x4bf198(0x240)](_0x28c110,_0x24015d){const _0x3c28bf=a0_0x4bf198;return{'role':_0x28c110[_0x3c28bf(0x1ff)]||_0x3c28bf(0x231),'content':_0x28c110[_0x3c28bf(0x242)],'timestamp':_0x28c110['timestamp']};}['_formatForAnthropic'](_0x5b1257){return _0x5b1257['map'](_0x5a372d=>{const _0x18788e=a0_0xfd66;if(_0x5a372d['role']==='system')return{'role':_0x18788e(0x231),'content':'System:\x20'+_0x5a372d[_0x18788e(0x242)]};return _0x5a372d;});}['_formatForOpenAI'](_0x4c95b0){return _0x4c95b0;}[a0_0x4bf198(0x1dd)](_0x2ddc9a){return _0x2ddc9a['map'](_0x51609e=>({..._0x51609e,'content':typeof _0x51609e['content']==='string'?_0x51609e['content']:JSON['stringify'](_0x51609e['content'])}));}['_isValidModel'](_0xc013b8){const _0x409719=a0_0x4bf198;this[_0x409719(0x1e8)]['debug']('Validating\x20model',{'model':_0xc013b8,'modelType':typeof _0xc013b8});if(this[_0x409719(0x234)][_0xc013b8]!==undefined)return!![];return this['logger'][_0x409719(0x22e)]('Model\x20validation\x20failed',{'model':_0xc013b8,'availableModels':Object['keys'](this[_0x409719(0x234)])}),![];}async['_checkModelHealth'](_0x4397d1){return!![];}async[a0_0x4bf198(0x226)](_0x3667f0,_0x40a269){const _0x1038b4=a0_0x4bf198;return Math[_0x1038b4(0x1db)](_0x3667f0['length']/0x4);}async[a0_0x4bf198(0x1e4)](_0x1a6fea,_0x19e474){const _0x3cc57e=a0_0x4bf198,_0x5227fe=_0x19e474*0x4;if(_0x1a6fea[_0x3cc57e(0x1ce)]<=_0x5227fe)return _0x1a6fea;return _0x1a6fea['substring'](0x0,_0x5227fe-0x14)+_0x3cc57e(0x243);}async[a0_0x4bf198(0x262)](_0x240f48,_0x366a04){const _0x4973bc=a0_0x4bf198,_0x5115ba=_0x240f48[_0x4973bc(0x1e3)](_0x13386f=>_0x13386f['role']+':\x20'+_0x13386f['content'])[_0x4973bc(0x23f)]('\x0a'),_0x2110e4=0x1f4;if(_0x5115ba['length']<=_0x2110e4)return _0x5115ba;return _0x5115ba[_0x4973bc(0x200)](0x0,_0x2110e4)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x4bf198(0x209)](_0x46a56f,_0x44a367,_0x12d31d,_0x2e07f2={}){const _0x33c1b9=a0_0x4bf198,_0x521f88=_0x33c1b9(0x248);let _0x597f47,_0x320ef0=null,_0x3e4ae8=null;this['logger']?.['info']('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x33c1b9(0x263)],'sessionId':_0x2e07f2['sessionId'],'hasSessionId':!!_0x2e07f2['sessionId'],'optionsKeys':Object[_0x33c1b9(0x1d2)](_0x2e07f2),'model':_0x44a367['model']});if(this[_0x33c1b9(0x263)]&&_0x2e07f2['sessionId']){const _0x447255=this['apiKeyManager']['getKeysForRequest'](_0x2e07f2[_0x33c1b9(0x24e)],{'platformProvided':_0x2e07f2[_0x33c1b9(0x232)]||![],'vendor':this[_0x33c1b9(0x1d0)](_0x44a367['model'])});_0x320ef0=_0x447255[_0x33c1b9(0x1f8)],_0x3e4ae8=_0x447255['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x2e07f2[_0x33c1b9(0x24e)],'hasLoxiaKey':!!_0x320ef0,'hasVendorKey':!!_0x3e4ae8,'vendor':this[_0x33c1b9(0x1d0)](_0x44a367[_0x33c1b9(0x250)])});}!_0x320ef0&&_0x2e07f2[_0x33c1b9(0x22a)]&&(_0x320ef0=_0x2e07f2['apiKey']);!_0x320ef0&&this[_0x33c1b9(0x1ee)][_0x33c1b9(0x22a)]&&(_0x320ef0=this['config']['apiKey']);if(!_0x320ef0)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x4de739=_0x44a367['model'],_0x2e4608={'conversationId':_0x12d31d,'message':_0x44a367['messages'][_0x44a367[_0x33c1b9(0x1cd)]['length']-0x1]?.[_0x33c1b9(0x242)]||'','messages':_0x44a367[_0x33c1b9(0x1cd)],'model':_0x4de739,'requestId':_0x12d31d,'options':_0x44a367[_0x33c1b9(0x241)]||{},'platformProvided':_0x2e07f2[_0x33c1b9(0x232)]||![]};_0x44a367['system']&&(_0x2e4608['systemPrompt']=_0x44a367['system']);_0x2e07f2['platformProvided']?_0x2e4608['apiKey']=_0x320ef0:(_0x3e4ae8&&(_0x2e4608[_0x33c1b9(0x245)]=_0x3e4ae8),_0x2e07f2[_0x33c1b9(0x1c9)]&&(_0x2e4608['customApiKeys']=_0x2e07f2['customApiKeys']),_0x2e4608[_0x33c1b9(0x22a)]=_0x320ef0);for(let _0xaef020=0x1;_0xaef020<=this[_0x33c1b9(0x213)];_0xaef020++){try{this['logger'][_0x33c1b9(0x238)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x521f88,'model':_0x44a367[_0x33c1b9(0x250)],'requestId':_0x12d31d,'attempt':_0xaef020,'hasApiKey':!!_0x320ef0});const _0x5163a3=await fetch(_0x521f88,{'method':_0x33c1b9(0x23e),'headers':{'Content-Type':_0x33c1b9(0x220),'Authorization':'Bearer\x20'+_0x320ef0,'X-Request-ID':_0x12d31d},'body':JSON['stringify'](_0x2e4608),'timeout':this[_0x33c1b9(0x225)]});if(!_0x5163a3['ok']){const _0x4e3df9=await _0x5163a3['text'](),_0x2a31fb=new Error('HTTP\x20'+_0x5163a3['status']+':\x20'+_0x5163a3[_0x33c1b9(0x1e7)]+(_0x4e3df9?'\x20-\x20'+_0x4e3df9:''));_0x2a31fb['status']=_0x5163a3[_0x33c1b9(0x20a)];throw _0x2a31fb;}const _0xb0bc8=await _0x5163a3[_0x33c1b9(0x233)]();return{'choices':[{'message':{'content':_0xb0bc8['content']||'','role':'assistant'},'finish_reason':_0xb0bc8['finishReason']||_0x33c1b9(0x1d8)}],'usage':_0xb0bc8[_0x33c1b9(0x206)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0xb0bc8[_0x33c1b9(0x250)]||_0x44a367[_0x33c1b9(0x250)],'id':_0xb0bc8['requestId']||_0x12d31d};}catch(_0x2ade40){_0x597f47=_0x2ade40,this['logger']['warn']('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0xaef020,'requestId':_0x12d31d,'error':_0x2ade40[_0x33c1b9(0x235)],'status':_0x2ade40['status']});if(_0xaef020<this[_0x33c1b9(0x213)]){const _0x5e03b3=Math[_0x33c1b9(0x236)](0x2,_0xaef020)*0x3e8;this[_0x33c1b9(0x1e8)]['warn']('Retrying\x20in\x20'+_0x5e03b3+'ms',{'attempt':_0xaef020,'requestId':_0x12d31d}),await new Promise(_0x1cde56=>setTimeout(_0x1cde56,_0x5e03b3));}}}this['logger'][_0x33c1b9(0x23b)](_0x33c1b9(0x25e),{'requestId':_0x12d31d,'error':_0x597f47[_0x33c1b9(0x235)]});const _0x5a3fe8=_0x597f47[_0x33c1b9(0x235)]&&_0x597f47[_0x33c1b9(0x235)][_0x33c1b9(0x1fa)](_0x33c1b9(0x239));if(_0x5a3fe8)throw new Error(_0x33c1b9(0x246)+_0x597f47[_0x33c1b9(0x235)]);return{'choices':[{'message':{'content':_0x33c1b9(0x256)+_0x597f47['message'],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x44a367['model'],'id':'error-'+_0x12d31d,'error':_0x597f47[_0x33c1b9(0x235)]};}async[a0_0x4bf198(0x1c8)](_0x130ebd,_0x48273b,_0x1df34e={}){const _0x48c4b4=a0_0x4bf198,_0x298af5=_0x48c4b4(0x221);let _0x4be58f,_0x12d655=null,_0x4f31df=null;this[_0x48c4b4(0x1e8)]?.[_0x48c4b4(0x238)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1df34e['sessionId'],'hasSessionId':!!_0x1df34e['sessionId'],'model':_0x130ebd[_0x48c4b4(0x250)]});if(this['apiKeyManager']&&_0x1df34e[_0x48c4b4(0x24e)]){const _0x5919d4=this['apiKeyManager'][_0x48c4b4(0x24c)](_0x1df34e['sessionId'],{'platformProvided':_0x1df34e[_0x48c4b4(0x232)]||![],'vendor':this['_getVendorFromModel'](_0x130ebd['model'])});_0x12d655=_0x5919d4['loxiaApiKey'],_0x4f31df=_0x5919d4[_0x48c4b4(0x245)],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1df34e['sessionId'],'hasLoxiaKey':!!_0x12d655,'hasVendorKey':!!_0x4f31df});}!_0x12d655&&_0x1df34e['apiKey']&&(_0x12d655=_0x1df34e['apiKey']);!_0x12d655&&this['config'][_0x48c4b4(0x22a)]&&(_0x12d655=this['config']['apiKey']);if(!_0x12d655)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0xf78439={'prompt':_0x130ebd['prompt'],'model':_0x130ebd[_0x48c4b4(0x250)]||_0x48c4b4(0x21b),'size':_0x130ebd['size'],'quality':_0x130ebd['quality'],'style':_0x130ebd['style']||_0x48c4b4(0x202),'n':_0x130ebd['n']||0x1,'requestId':_0x48273b};for(let _0x4d260a=0x1;_0x4d260a<=this[_0x48c4b4(0x213)];_0x4d260a++){try{this[_0x48c4b4(0x1e8)][_0x48c4b4(0x238)](_0x48c4b4(0x1f2),{'url':_0x298af5,'model':_0x130ebd['model'],'requestId':_0x48273b,'attempt':_0x4d260a,'hasApiKey':!!_0x12d655});const _0x17508a=await fetch(_0x298af5,{'method':_0x48c4b4(0x23e),'headers':{'Content-Type':_0x48c4b4(0x220),'Authorization':'Bearer\x20'+_0x12d655,'X-Request-ID':_0x48273b},'body':JSON[_0x48c4b4(0x20f)](_0xf78439),'timeout':this['timeout']*0x2});if(!_0x17508a['ok']){const _0x210088=await _0x17508a['text'](),_0x36c785=new Error(_0x48c4b4(0x24b)+_0x17508a['status']+':\x20'+_0x17508a[_0x48c4b4(0x1e7)]+(_0x210088?_0x48c4b4(0x219)+_0x210088:''));_0x36c785[_0x48c4b4(0x20a)]=_0x17508a[_0x48c4b4(0x20a)];throw _0x36c785;}const _0x59951d=await _0x17508a['json']();return{'data':_0x59951d['images']||[],'model':_0x59951d[_0x48c4b4(0x250)]||_0x130ebd['model'],'created':_0x59951d[_0x48c4b4(0x1cf)]||Date[_0x48c4b4(0x24d)](),'usage':_0x59951d[_0x48c4b4(0x206)]};}catch(_0x532000){_0x4be58f=_0x532000,this[_0x48c4b4(0x1e8)][_0x48c4b4(0x22e)](_0x48c4b4(0x244),{'attempt':_0x4d260a,'requestId':_0x48273b,'error':_0x532000[_0x48c4b4(0x235)],'status':_0x532000[_0x48c4b4(0x20a)]});if(_0x4d260a<this['retryAttempts']){const _0x55dc98=Math['pow'](0x2,_0x4d260a)*0x3e8;this['logger'][_0x48c4b4(0x22e)](_0x48c4b4(0x1f6)+_0x55dc98+'ms',{'attempt':_0x4d260a,'requestId':_0x48273b}),await new Promise(_0x56d976=>setTimeout(_0x56d976,_0x55dc98));}}}this['logger']['error'](_0x48c4b4(0x1e5),{'requestId':_0x48273b,'error':_0x4be58f['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x4be58f[_0x48c4b4(0x235)]);}async[a0_0x4bf198(0x21d)](_0x633271){await new Promise(_0x2a606b=>setTimeout(_0x2a606b,0x64));}async['_handleRateLimit'](_0xfae115){const _0x52c21b=a0_0x4bf198,_0x53a45e=0xea60;this[_0x52c21b(0x1e8)][_0x52c21b(0x238)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x53a45e+'ms',_0xfae115),await new Promise(_0x3e7dc9=>setTimeout(_0x3e7dc9,_0x53a45e));}async[a0_0x4bf198(0x20e)](_0x3a7491){this['_recordFailure']();const _0x3da10d=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x3da10d+'ms',_0x3a7491),await new Promise(_0x2fe648=>setTimeout(_0x2fe648,_0x3da10d));}['_isCircuitBreakerOpen'](){const _0x5154d3=a0_0x4bf198;if(!this['circuitBreaker'][_0x5154d3(0x214)])return![];const _0x4d2e0c=Date[_0x5154d3(0x24d)]()-this['circuitBreaker'][_0x5154d3(0x23a)];if(_0x4d2e0c>this[_0x5154d3(0x259)]['timeout'])return this[_0x5154d3(0x259)][_0x5154d3(0x214)]=![],this['circuitBreaker'][_0x5154d3(0x24f)]=0x0,![];return!![];}[a0_0x4bf198(0x257)](){const _0xc132f7=a0_0x4bf198;this[_0xc132f7(0x259)]['failures']++,this['circuitBreaker'][_0xc132f7(0x23a)]=Date['now'](),this['circuitBreaker'][_0xc132f7(0x24f)]>=this['circuitBreaker'][_0xc132f7(0x22d)]&&(this[_0xc132f7(0x259)][_0xc132f7(0x214)]=!![],this['logger'][_0xc132f7(0x22e)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}['_resetCircuitBreaker'](){const _0x37abcc=a0_0x4bf198;this[_0x37abcc(0x259)]['failures']>0x0&&(this[_0x37abcc(0x259)][_0x37abcc(0x24f)]=0x0,this['circuitBreaker'][_0x37abcc(0x214)]=![],this['logger'][_0x37abcc(0x238)](_0x37abcc(0x237)));}[a0_0x4bf198(0x1d0)](_0x314e9d){const _0x15940f=a0_0x4bf198;if(!_0x314e9d)return null;const _0x1c1c6c=_0x314e9d[_0x15940f(0x258)]();if(_0x1c1c6c[_0x15940f(0x1fa)](_0x15940f(0x1c7))||_0x1c1c6c['includes'](_0x15940f(0x1da)))return'anthropic';else{if(_0x1c1c6c['includes'](_0x15940f(0x249))||_0x1c1c6c['includes']('gpt'))return _0x15940f(0x249);else{if(_0x1c1c6c['includes'](_0x15940f(0x211)))return _0x15940f(0x211);else{if(_0x1c1c6c['includes']('phi'))return _0x15940f(0x264);}}}return null;}}function a0_0xf1a0(){const _0x4efa4f=['ANnVBG','Bw9KzwXtCgvJCW','BwvZC2fNzq','Cg93','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','Aw5MBW','tM8GqvbjigTLEsbJB25MAwD1CMvK','BgfZDezHAwX1CMvuAw1L','zxjYB3i','mtb3Ce5bv3q','quKGC2vYDMLJzsbLCNjVCJOG','ue9tva','AM9PBG','x2zVCM1HDfnPBMDSzu1LC3nHz2u','B3b0Aw9UCW','y29UDgvUDa','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','DMvUzg9YqxbPs2v5','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','B3bLBMfP','z2v0','sfruuca','z2v0s2v5C0zVCLjLCxvLC3q','BM93','C2vZC2LVBKLK','zMfPBhvYzxm','Bw9KzwW','zxjYB3jiyw5KBgvY','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','qu5usfjpueLdx1nptK5fva','AgvHBhrOlwnOzwnR','Dg9vChbLCKnHC2u','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','x3jLy29YzezHAwX1CMu','Dg9mB3DLCKnHC2u','y2LYy3vPDejYzwfRzxi','mJeXndfht09Tr3u','tK9ux0zpvu5e','y2HVAwnLCW','qKfex1jfuvvfu1q','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','qu5usfjpueLd','AgLNAa','z2vUzxjHDgvjBwfNzq','x3n1Bw1HCML6zu1LC3nHz2vZ','yxbPs2v5twfUywDLCG','BwLJCM9ZB2z0','zxn0Aw1HDgvKvg9Rzw5Z','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','AxnbCNjHEq','DhjPBq','ueHjxZq','C3LZDgvT','Aw1Nlq','C2v0qxbPs2v5twfUywDLCG','qvPvuKu','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','yw50AhjVCgLJ','x21HA2vjBwfNzufqsvjLCxvLC3q','y3vZDg9TqxbPs2v5CW','nJuYnduWyNfztLnk','t1bftKfj','r1buxZq','BwvZC2fNzxm','BgvUz3rO','y3jLyxrLza','x2DLDfzLBMrVCKzYB21nB2rLBa','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','A2v5CW','ywDLBNrjza','vu5bvvrit1jjwKve','CxvHBgL0Eq','Dw5ZAgLMDa','Dg9ju09tDhjPBMC','C3rVCa','C3rYAw5N','y2XHDwrL','y2vPBa','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','x2zVCM1HDezVCKf6DxjL','mtu0nxfwz3PqrG','mteWntCWr2TlsuHr','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','ChvZAa','BwfW','x3rYDw5JyxrLtwvZC2fNzq','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','C3DPDgnOqwDLBNrnB2rLBa','C3rHDhvZvgv4Da','Bg9Nz2vY','l2nOyxqVy29TCgXLDgLVBNm','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','CMf0zuXPBwL0zxjZ','C3rYzwfT','C2L6zq','y29UzMLN','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','otu2ntHmD0jNBxO','qu5usfjpueLdx09qvvm','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','y29UDMvYC2f0Aw9UCW','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','tw9KzwWGC3DPDgnOigzHAwXLzdOG','uMv0CNLPBMCGAw4G','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','Bg94AwfbCgLlzxK','C3vIC3rY','Aw5JBhvKzxm','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','CMvXlq','ywDLBNrqB29S','y29Kzq','CM9Szq','C3vIC3rYAw5N','AgfUzgXLshr0CevYCM9Y','DML2Awq','x2LZvMfSAwrnB2rLBa','yMfJA2vUza','Ahr0Chm6lY9HCgKUBg94AweUywK','DxnHz2u','ode1mZy0AwHerLHf','uMf0zsbSAw1PDcbLEgnLzwrLza','x21HA2vbueLszxf1zxn0','C3rHDhvZ','yNvKz2v0u2vYDMLJzq','C3rHy2S','DhjHy2TvC2fNzq','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','C3rYAw5NAwz5','revfufnfruTFuJe','zgvLChnLzwS','qu5usfjpueLdx0HbsuTv','CMv0CNLbDhrLBxb0CW','AxnpCgvU','ChjVDMLKzxi','nZDRt3L1Cfy','C2vUze1LC3nHz2u','yMfZzvvYBa','ic0G','n1fkvhPWuW','yxP1CMuTB3bLBMfPlwrHBgXLmW','mZe2ntC2DfPXuff5','x2nOzwnRuMf0zuXPBwL0','x2zVCM1HDezVCK9Wzw5bsq','nhfcrLniqG','yxbWBgLJyxrPB24VANnVBG','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','ueHj','rKfmtejbq0S','DgLTzw91Da','x2vZDgLTyxrLvg9Rzw5Z','zgf0yq','C2XPy2u','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','yxbPs2v5','C3rHBMrHCMq','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','DgHYzxnOB2XK','D2fYBG','Bwf4vg9Rzw5Z','qKfex0DbvevxqvK','DxnLCG','CgXHDgzVCM1qCM92AwrLza'];a0_0xf1a0=function(){return _0x4efa4f;};return a0_0xf1a0();}class ConversationManager{constructor(_0x2595b1,_0x16d169){const _0x1c38a7=a0_0x4bf198;this[_0x1c38a7(0x1d3)]=_0x2595b1,this[_0x1c38a7(0x1e8)]=_0x16d169,this[_0x1c38a7(0x1f3)]=new Map();}async['switchModel'](_0x1c2199){const _0x39d2b8=a0_0x4bf198;return{'messages':[],'model':_0x1c2199,'lastUpdated':new Date()[_0x39d2b8(0x1d7)]()};}}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_0x5df5da=a0_0x458c;(function(_0x43dbf8,_0x44a32f){const _0x9cf5f6=a0_0x458c,_0x1ec0f2=_0x43dbf8();while(!![]){try{const _0x7ec408=parseInt(_0x9cf5f6(0xb1))/0x1*(parseInt(_0x9cf5f6(0xa8))/0x2)+-parseInt(_0x9cf5f6(0x98))/0x3+parseInt(_0x9cf5f6(0xa1))/0x4+-parseInt(_0x9cf5f6(0xab))/0x5*(-parseInt(_0x9cf5f6(0xa2))/0x6)+-parseInt(_0x9cf5f6(0xb8))/0x7*(-parseInt(_0x9cf5f6(0xb6))/0x8)+-parseInt(_0x9cf5f6(0xa9))/0x9*(parseInt(_0x9cf5f6(0xaf))/0xa)+parseInt(_0x9cf5f6(0xb7))/0xb;if(_0x7ec408===_0x44a32f)break;else _0x1ec0f2['push'](_0x1ec0f2['shift']());}catch(_0x1a8a9b){_0x1ec0f2['push'](_0x1ec0f2['shift']());}}}(a0_0x3a84,0xa6976));function a0_0x3a84(){const _0x1a8237=['mJyXnZHgtgTnB3O','z2v0vgLTzq','z2v0qwn0AxzLu2vZC2LVBNm','Aw5MBW','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','C2vZC2LVBKTLExm','mtq2A0Hhquri','mZaYntq0BwzlB2nT','Bg9Nz2vY','mtaYnxngy3PItq','BwfW','z2v0s2v5C0zVCLjLCxvLC3q','DMvUzg9YqxbPs2v5','mZaWDKjdsLDP','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','mJaXmuDqAgjjEa','A2v5CW','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','mtuWnJa0ogjHCNfbtG','mtK0nJuWnwj4wu1ytW','n0XUwhjIAW','Bg94AwfbCgLlzxK','C2v0u2vZC2LVBKTLExm','mta1ndi2m0HpELLYtG','z2v0','DMvUzg9Ys2v5CW','zgvSzxrL','BM93','z2XVyMfSs2v5CW','zw50CMLLCW','C2v0r2XVyMfSs2v5CW','C2L6zq','mJu0mZmYme9eAwPRBW'];a0_0x3a84=function(){return _0x1a8237;};return a0_0x3a84();}function a0_0x458c(_0x433daa,_0x3085c6){_0x433daa=_0x433daa-0x97;const _0x3a846f=a0_0x3a84();let _0x458c99=_0x3a846f[_0x433daa];if(a0_0x458c['pOcRBd']===undefined){var _0x4a47a5=function(_0x24f2e6){const _0x1e3903='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f5e83='',_0x472fbe='';for(let _0x3c1c59=0x0,_0x5100bb,_0x47476b,_0x36ea1b=0x0;_0x47476b=_0x24f2e6['charAt'](_0x36ea1b++);~_0x47476b&&(_0x5100bb=_0x3c1c59%0x4?_0x5100bb*0x40+_0x47476b:_0x47476b,_0x3c1c59++%0x4)?_0x1f5e83+=String['fromCharCode'](0xff&_0x5100bb>>(-0x2*_0x3c1c59&0x6)):0x0){_0x47476b=_0x1e3903['indexOf'](_0x47476b);}for(let _0x5a56bc=0x0,_0xb07a5f=_0x1f5e83['length'];_0x5a56bc<_0xb07a5f;_0x5a56bc++){_0x472fbe+='%'+('00'+_0x1f5e83['charCodeAt'](_0x5a56bc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x472fbe);};a0_0x458c['ODqSsI']=_0x4a47a5,a0_0x458c['NwAjue']={},a0_0x458c['pOcRBd']=!![];}const _0x330304=_0x3a846f[0x0],_0x49d227=_0x433daa+_0x330304,_0x282bd9=a0_0x458c['NwAjue'][_0x49d227];return!_0x282bd9?(_0x458c99=a0_0x458c['ODqSsI'](_0x458c99),a0_0x458c['NwAjue'][_0x49d227]=_0x458c99):_0x458c99=_0x282bd9,_0x458c99;}class ApiKeyManager{constructor(_0x1f5e83){const _0x1e7f4b=a0_0x458c;this['logger']=_0x1f5e83,this[_0x1e7f4b(0xa7)]=new Map(),this[_0x1e7f4b(0x9d)]={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x5df5da(0x97)](_0x472fbe,_0x3c1c59){const _0x22835d=a0_0x5df5da;if(!_0x472fbe)throw new Error(_0x22835d(0xb0));this[_0x22835d(0xa7)]['set'](_0x472fbe,{'loxiaApiKey':_0x3c1c59['loxiaApiKey']||null,'vendorKeys':_0x3c1c59['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.['info'](_0x22835d(0xb3),{'sessionId':_0x472fbe,'hasLoxiaKey':!!_0x3c1c59[_0x22835d(0xb9)],'vendorKeys':Object['keys'](_0x3c1c59[_0x22835d(0x9a)]||{}),'timestamp':new Date()['toISOString']()});}['getSessionKeys'](_0x5100bb){const _0x392467=a0_0x5df5da;if(!_0x5100bb)return this[_0x392467(0x9d)];const _0x47476b=this['sessionKeys'][_0x392467(0x99)](_0x5100bb);if(_0x47476b)return _0x47476b;return this['globalKeys'];}[a0_0x5df5da(0xad)](_0x36ea1b,_0x5a56bc={}){const _0x4935c4=a0_0x5df5da,_0xb07a5f=this['getSessionKeys'](_0x36ea1b),_0x32a5b1={'loxiaApiKey':_0xb07a5f[_0x4935c4(0xb9)],'vendorApiKey':null};return!_0x5a56bc['platformProvided']&&_0x5a56bc['vendor']&&_0xb07a5f['vendorKeys']&&(_0x32a5b1[_0x4935c4(0xae)]=_0xb07a5f['vendorKeys'][_0x5a56bc['vendor']]),_0x32a5b1;}['removeSessionKeys'](_0x3f0cdb){const _0x2078e6=a0_0x5df5da;if(this['sessionKeys'][_0x2078e6(0x9b)](_0x3f0cdb))return this[_0x2078e6(0xaa)]?.['info'](_0x2078e6(0xb5),{'sessionId':_0x3f0cdb}),!![];return![];}[a0_0x5df5da(0x9f)](_0x3de3a8){const _0x3ae719=a0_0x5df5da;this['globalKeys']={'loxiaApiKey':_0x3de3a8['loxiaApiKey']||this['globalKeys'][_0x3ae719(0xb9)],'vendorKeys':{...this['globalKeys'][_0x3ae719(0x9a)],..._0x3de3a8['vendorKeys']||{}}},this[_0x3ae719(0xaa)]?.[_0x3ae719(0xa5)]('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this['globalKeys'][_0x3ae719(0xb9)],'vendorKeys':Object[_0x3ae719(0xb2)](this['globalKeys']['vendorKeys'])});}[a0_0x5df5da(0xa4)](){const _0x182931=a0_0x5df5da;return Array['from'](this[_0x182931(0xa7)][_0x182931(0x9e)]())[_0x182931(0xac)](([_0x44b756,_0x2f5644])=>({'sessionId':_0x44b756,'hasLoxiaKey':!!_0x2f5644['loxiaApiKey'],'vendorKeys':Object['keys'](_0x2f5644[_0x182931(0x9a)]||{}),'updatedAt':_0x2f5644['updatedAt']}));}[a0_0x5df5da(0xa6)](_0x778f2=0x18*0x3c*0x3c*0x3e8){const _0x2efc69=a0_0x5df5da,_0x298b61=Date[_0x2efc69(0x9c)](),_0x4b2486=[];for(const [_0x1c19a0,_0x2e0675]of this['sessionKeys']['entries']()){const _0x43517e=_0x298b61-new Date(_0x2e0675['updatedAt'])[_0x2efc69(0xa3)]();_0x43517e>_0x778f2&&_0x4b2486['push'](_0x1c19a0);}return _0x4b2486['forEach'](_0x4082b5=>{const _0x5a6fe1=_0x2efc69;this[_0x5a6fe1(0xa7)][_0x5a6fe1(0x9b)](_0x4082b5);}),_0x4b2486['length']>0x0&&this[_0x2efc69(0xaa)]?.[_0x2efc69(0xa5)](_0x2efc69(0xb4),{'expiredSessions':_0x4b2486['length'],'remainingSessions':this[_0x2efc69(0xa7)][_0x2efc69(0xa0)]}),_0x4b2486['length'];}}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_0x3b7194=a0_0x66ed;(function(_0x4cee1e,_0x452d4f){const _0x440839=a0_0x66ed,_0x4e7c9f=_0x4cee1e();while(!![]){try{const _0x44820e=parseInt(_0x440839(0x1c6))/0x1+-parseInt(_0x440839(0x1a4))/0x2*(parseInt(_0x440839(0x1bc))/0x3)+parseInt(_0x440839(0x1b1))/0x4*(-parseInt(_0x440839(0x1a0))/0x5)+-parseInt(_0x440839(0x1be))/0x6*(-parseInt(_0x440839(0x1a5))/0x7)+-parseInt(_0x440839(0x1bb))/0x8+-parseInt(_0x440839(0x198))/0x9*(parseInt(_0x440839(0x1b2))/0xa)+parseInt(_0x440839(0x1bf))/0xb;if(_0x44820e===_0x452d4f)break;else _0x4e7c9f['push'](_0x4e7c9f['shift']());}catch(_0x35ceb4){_0x4e7c9f['push'](_0x4e7c9f['shift']());}}}(a0_0x349f,0x6f1ab));function a0_0x349f(){const _0x20eb43=['ntKXv1fJwuzu','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','mtaXotaYofHHBgroBW','mtq2nJi1odjeuejhBvu','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','x2DLDezHC3rLC3rnB2rLBa','zM9Yy2vszwzYzxnO','Aw5MBW','Dg9ju09tDhjPBMC','Bw9KzwXZ','mJyZnZe5Cfjbyw1x','C3bLzwq','sfruuca','BM93','x3nJAgvKDwXLuMvMCMvZAa','BMfTzq','mJDUrNDrshG','DMfSDwvZ','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','yxbPs2v5','x2DLDejLC3rnB2rLBezVCLrHC2S','qMvHCMvYia','A2v5CW','y29UzMLN','nZG1twzWsgDg','y29KAw5N','AxnmB2fKAw5N','DgfZA3m','ntyWnMnQAhbftq','mtrTEvz3CfC','z2v0u3rHDhvZ','yw5HBhLZAxm','Dw5RBM93BG','z2v0qMvUy2HTyxjRvgfIBgu','CMvMCMvZAeLUDgvYDMfS','Bg9Nz2vY','z2v0vgLTzq','C3rHDhvZvgv4Da','yMvUy2HTyxjRCW','Bwf4','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','mtm2sxvICffo','mte3mtC5me5Nq0DQEq','BgfZDfvWzgf0zwq','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','zxjYB3i','Bg9HzejLBMnOBwfYA3m','C29YDa','yxbWBgLJyxrPB24VANnVBG','C2nVCMu','yxP1CMvcywnRzw5KvxjS','ndu3nZy2nhfMEgnwDa'];a0_0x349f=function(){return _0x20eb43;};return a0_0x349f();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x215f90,_0x563508){const _0x2673d1=a0_0x66ed;this[_0x2673d1(0x19f)]=_0x215f90,this['logger']=_0x563508,this[_0x2673d1(0x1ae)]=null,this['lastUpdated']=null,this['isLoading']=![],this[_0x2673d1(0x1ba)]=_0x2673d1(0x19a),this[_0x2673d1(0x1aa)]=MODEL_ROUTER_CONFIG[_0x2673d1(0x1b0)];}async['initialize'](){const _0x2cabc3=a0_0x66ed;try{await this['loadBenchmarks'](),this[_0x2cabc3(0x196)](),this['logger'][_0x2cabc3(0x1c3)]('Benchmark\x20service\x20initialized');}catch(_0x10ba35){this[_0x2cabc3(0x1ab)][_0x2cabc3(0x1b5)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x10ba35['message']}),this[_0x2cabc3(0x1ae)]=null;}}['getBenchmarks'](){const _0x57bc39=a0_0x66ed;if(!this['benchmarks'])return this['logger'][_0x57bc39(0x1b5)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async[a0_0x3b7194(0x1b6)](){const _0x14abf6=a0_0x3b7194;if(this[_0x14abf6(0x1a2)]){this[_0x14abf6(0x1ab)]['debug'](_0x14abf6(0x1c0));return;}this[_0x14abf6(0x1a2)]=!![];try{const _0x5087dd=await this[_0x14abf6(0x1b4)]();if(_0x5087dd)this[_0x14abf6(0x1ae)]=_0x5087dd,this[_0x14abf6(0x1b3)]=new Date(),this[_0x14abf6(0x1ab)][_0x14abf6(0x1c3)]('Benchmarks loaded from Azure backend',{'modelCount':_0x5087dd['models']?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x1f2928){this[_0x14abf6(0x1ab)][_0x14abf6(0x1b5)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x1f2928['message'],'endpoint':url}),!this['benchmarks']&&(this[_0x14abf6(0x1ae)]=null);}finally{this['isLoading']=![];}}[a0_0x3b7194(0x1a9)](){const _0x359752=a0_0x3b7194,_0x19169e=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||_0x359752(0x1a8),'models':_0x19169e['models']||[],'tasks':_0x19169e[_0x359752(0x1a3)]||{},'summary':this['_generateBenchmarkSummary'](_0x19169e)};}['needsRefresh'](){const _0x14d4da=a0_0x3b7194;if(!this['lastUpdated'])return!![];const _0x4934f4=Date[_0x14d4da(0x195)]()-this['lastUpdated'][_0x14d4da(0x1ac)]();return _0x4934f4>this['refreshInterval'];}async[a0_0x3b7194(0x1b4)](){const _0x5d847a=a0_0x3b7194,_0x20b1d3=this['azureBackendUrl']+'/llm/model-benchmarks';let _0x289c7b=null;this['config'][_0x5d847a(0x19b)]&&(_0x289c7b=this['config'][_0x5d847a(0x19b)]);const _0x90b5b6={'method':'GET','headers':{'Content-Type':_0x5d847a(0x1b8),..._0x289c7b&&{'Authorization':_0x5d847a(0x19d)+_0x289c7b}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x20b1d3});const _0x60e506=await fetch(_0x20b1d3,_0x90b5b6);if(!_0x60e506['ok'])throw new Error(_0x5d847a(0x194)+_0x60e506['status']+':\x20'+_0x60e506[_0x5d847a(0x1ad)]);const _0x5ed22e=await _0x60e506['json']();return _0x5ed22e;}['_generateBenchmarkSummary'](_0x11f1f6){const _0x28afcc=a0_0x3b7194,_0x2becb8=_0x11f1f6[_0x28afcc(0x1c5)]||[];return{'totalModels':_0x2becb8['length'],'taskCategories':Object[_0x28afcc(0x19e)](_0x11f1f6['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x2becb8,_0x28afcc(0x1a1)),'bestForAnalysis':this['_getBestModelForTask'](_0x2becb8,_0x28afcc(0x1a7)),'bestForQuickTasks':this['_getBestModelForTask'](_0x2becb8,'quick-tasks'),'bestForCreative':this[_0x28afcc(0x19c)](_0x2becb8,'creative'),'fastestModel':this[_0x28afcc(0x1c1)](_0x2becb8),'mostCostEfficient':this['_getMostCostEfficient'](_0x2becb8)};}['_getBestModelForTask'](_0x447a2a,_0x29a6ba){const _0x32cf21=a0_0x3b7194;return _0x447a2a['filter'](_0x2ad58d=>_0x2ad58d['tasks']&&_0x2ad58d[_0x32cf21(0x1a3)][_0x29a6ba])['sort']((_0x565259,_0x2078bc)=>(_0x2078bc['tasks'][_0x29a6ba][_0x32cf21(0x1b9)]||0x0)-(_0x565259[_0x32cf21(0x1a3)][_0x29a6ba]['score']||0x0))[0x0]?.[_0x32cf21(0x197)]||_0x32cf21(0x1a8);}[a0_0x3b7194(0x1c1)](_0x143a57){const _0x4ff4bb=a0_0x3b7194,_0xc1c94d={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x143a57['sort']((_0x1e0d22,_0xcd93a2)=>{const _0x4ffad5=a0_0x66ed,_0x44dca0=Math[_0x4ffad5(0x1af)](...Object[_0x4ffad5(0x199)](_0x1e0d22['tasks']||{})['map'](_0x46a153=>_0xc1c94d[_0x46a153['speed']]||0x0)),_0x1d9044=Math[_0x4ffad5(0x1af)](...Object['values'](_0xcd93a2[_0x4ffad5(0x1a3)]||{})['map'](_0x113b96=>_0xc1c94d[_0x113b96[_0x4ffad5(0x193)]]||0x0));return _0x1d9044-_0x44dca0;})[0x0]?.[_0x4ff4bb(0x197)]||'unknown';}['_getMostCostEfficient'](_0x1de6d6){const _0x1994bf=a0_0x3b7194,_0x390a07={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x1de6d6[_0x1994bf(0x1b7)]((_0x48c7df,_0x9898fa)=>{const _0x2d75a7=_0x1994bf,_0x25b786=Math['max'](...Object[_0x2d75a7(0x199)](_0x48c7df['tasks']||{})['map'](_0x462200=>_0x390a07[_0x462200['cost']]||0x0)),_0x401559=Math[_0x2d75a7(0x1af)](...Object[_0x2d75a7(0x199)](_0x9898fa[_0x2d75a7(0x1a3)]||{})['map'](_0x305f44=>_0x390a07[_0x305f44['cost']]||0x0));return _0x401559-_0x25b786;})[0x0]?.['name']||_0x1994bf(0x1a8);}['_scheduleRefresh'](){const _0x5568ea=a0_0x3b7194;setInterval(async()=>{const _0x5987c0=a0_0x66ed;this['needsRefresh']()&&(this[_0x5987c0(0x1ab)]['debug']('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x5568ea(0x1aa)]);}async[a0_0x3b7194(0x1c2)](){const _0x52e560=a0_0x3b7194;this[_0x52e560(0x1ab)]['info'](_0x52e560(0x1bd)),await this[_0x52e560(0x1b6)]();}[a0_0x3b7194(0x1a6)](){const _0x2652d6=a0_0x3b7194;return{'initialized':!!this[_0x2652d6(0x1ae)],'lastUpdated':this['lastUpdated']?.[_0x2652d6(0x1c4)]()||null,'source':this[_0x2652d6(0x1ae)]?.['source']||'unknown','modelCount':this['benchmarks']?.[_0x2652d6(0x1c5)]?.['length']||0x0,'isLoading':this[_0x2652d6(0x1a2)],'needsRefresh':this['needsRefresh']()};}}function a0_0x66ed(_0x5902da,_0x62f9be){_0x5902da=_0x5902da-0x193;const _0x349ff3=a0_0x349f();let _0x66eddb=_0x349ff3[_0x5902da];if(a0_0x66ed['qouVyq']===undefined){var _0xbe4636=function(_0x5601a4){const _0x3f9824='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x215f90='',_0x563508='';for(let _0x10ba35=0x0,_0x5087dd,_0x1f2928,_0x19169e=0x0;_0x1f2928=_0x5601a4['charAt'](_0x19169e++);~_0x1f2928&&(_0x5087dd=_0x10ba35%0x4?_0x5087dd*0x40+_0x1f2928:_0x1f2928,_0x10ba35++%0x4)?_0x215f90+=String['fromCharCode'](0xff&_0x5087dd>>(-0x2*_0x10ba35&0x6)):0x0){_0x1f2928=_0x3f9824['indexOf'](_0x1f2928);}for(let _0x4934f4=0x0,_0x20b1d3=_0x215f90['length'];_0x4934f4<_0x20b1d3;_0x4934f4++){_0x563508+='%'+('00'+_0x215f90['charCodeAt'](_0x4934f4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x563508);};a0_0x66ed['CQsCYx']=_0xbe4636,a0_0x66ed['lqtkeY']={},a0_0x66ed['qouVyq']=!![];}const _0xbeb5e4=_0x349ff3[0x0],_0x318fb4=_0x5902da+_0xbeb5e4,_0x1826a2=a0_0x66ed['lqtkeY'][_0x318fb4];return!_0x1826a2?(_0x66eddb=a0_0x66ed['CQsCYx'](_0x66eddb),a0_0x66ed['lqtkeY'][_0x318fb4]=_0x66eddb):_0x66eddb=_0x1826a2,_0x66eddb;}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_0x22cd97=a0_0x55f3;function a0_0x55f3(_0x212fe1,_0x2f7e12){_0x212fe1=_0x212fe1-0xad;const _0x429064=a0_0x4290();let _0x55f34f=_0x429064[_0x212fe1];if(a0_0x55f3['gCDOJv']===undefined){var _0x592415=function(_0x290148){const _0x5b70ab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a6b98='',_0x22beef='';for(let _0x23d121=0x0,_0xb78404,_0x197ce0,_0x3234d5=0x0;_0x197ce0=_0x290148['charAt'](_0x3234d5++);~_0x197ce0&&(_0xb78404=_0x23d121%0x4?_0xb78404*0x40+_0x197ce0:_0x197ce0,_0x23d121++%0x4)?_0x4a6b98+=String['fromCharCode'](0xff&_0xb78404>>(-0x2*_0x23d121&0x6)):0x0){_0x197ce0=_0x5b70ab['indexOf'](_0x197ce0);}for(let _0x1be215=0x0,_0x5b0084=_0x4a6b98['length'];_0x1be215<_0x5b0084;_0x1be215++){_0x22beef+='%'+('00'+_0x4a6b98['charCodeAt'](_0x1be215)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22beef);};a0_0x55f3['FhXcUX']=_0x592415,a0_0x55f3['vWutsq']={},a0_0x55f3['gCDOJv']=!![];}const _0x527072=_0x429064[0x0],_0x21cb58=_0x212fe1+_0x527072,_0x290063=a0_0x55f3['vWutsq'][_0x21cb58];return!_0x290063?(_0x55f34f=a0_0x55f3['FhXcUX'](_0x55f34f),a0_0x55f3['vWutsq'][_0x21cb58]=_0x55f34f):_0x55f34f=_0x290063,_0x55f34f;}(function(_0xd6ec94,_0x2ecd98){const _0x2c3b95=a0_0x55f3,_0x387ffe=_0xd6ec94();while(!![]){try{const _0x3bf71d=-parseInt(_0x2c3b95(0xcc))/0x1*(-parseInt(_0x2c3b95(0xfc))/0x2)+-parseInt(_0x2c3b95(0xce))/0x3+parseInt(_0x2c3b95(0xcb))/0x4*(-parseInt(_0x2c3b95(0xf2))/0x5)+-parseInt(_0x2c3b95(0xbc))/0x6+parseInt(_0x2c3b95(0xca))/0x7+parseInt(_0x2c3b95(0xcf))/0x8*(parseInt(_0x2c3b95(0xd8))/0x9)+-parseInt(_0x2c3b95(0xba))/0xa*(-parseInt(_0x2c3b95(0xd0))/0xb);if(_0x3bf71d===_0x2ecd98)break;else _0x387ffe['push'](_0x387ffe['shift']());}catch(_0x3ee2ee){_0x387ffe['push'](_0x387ffe['shift']());}}}(a0_0x4290,0x86a9b));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x4a6b98,_0x22beef){const _0x9b8fed=a0_0x55f3;this['config']=_0x4a6b98||{},this[_0x9b8fed(0xbe)]=_0x22beef,this[_0x9b8fed(0xe9)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x9b8fed(0xf4)],'monthly':BUDGET_LIMITS['MONTHLY']},this[_0x9b8fed(0xe7)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this[_0x9b8fed(0xc8)](),this['setupPeriodicSave']();}['trackUsage'](_0x23d121,_0xb78404,_0x197ce0){const _0x764120=a0_0x55f3;try{const _0x3234d5=this['calculateCost'](_0xb78404,_0x197ce0),_0x1be215=new Date(),_0x5b0084=this['getDayKey'](_0x1be215),_0x24f035=this[_0x764120(0xf9)](_0x1be215),_0x2940a0=this['getMonthKey'](_0x1be215);this['initializeUsageEntry'](this['usage']['daily'],_0x5b0084),this['initializeUsageEntry'](this['usage']['weekly'],_0x24f035),this['initializeUsageEntry'](this['usage'][_0x764120(0xec)],_0x2940a0);const _0x2562af={'agentId':_0x23d121,'modelId':_0xb78404,'tokens':_0x197ce0[_0x764120(0xb2)],'cost':_0x3234d5,'timestamp':_0x1be215[_0x764120(0xd5)]()};return this['updateUsageEntry'](this[_0x764120(0xe9)][_0x764120(0xbb)]['get'](_0x5b0084),_0x2562af),this[_0x764120(0xcd)](this['usage'][_0x764120(0xc9)][_0x764120(0xb7)](_0x24f035),_0x2562af),this['updateUsageEntry'](this[_0x764120(0xe9)][_0x764120(0xec)][_0x764120(0xb7)](_0x2940a0),_0x2562af),this[_0x764120(0xe9)]['total']['tokens']+=_0x197ce0['total_tokens'],this['usage']['total']['cost']+=_0x3234d5,this['usage']['total'][_0x764120(0xb5)]+=0x1,this[_0x764120(0xdb)](_0x5b0084,_0x24f035,_0x2940a0),this[_0x764120(0xbe)][_0x764120(0xf3)](_0x764120(0xe0),{'agentId':_0x23d121,'modelId':_0xb78404,'tokens':_0x197ce0['total_tokens'],'cost':_0x3234d5,'totalCost':this['usage'][_0x764120(0xc6)]['cost']}),{'cost':_0x3234d5,'totalCost':this['usage'][_0x764120(0xc6)]['cost'],'totalTokens':this['usage']['total'][_0x764120(0xe5)],'dailyUsage':this['usage'][_0x764120(0xbb)]['get'](_0x5b0084),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x412776){this['logger']['error']('Failed\x20to\x20track\x20usage',{'error':_0x412776['message'],'agentId':_0x23d121,'modelId':_0xb78404});throw _0x412776;}}[a0_0x22cd97(0xdc)](_0x5b65f7,_0x4ad4d7){const _0x4bf671=a0_0x22cd97,_0x323da3=COST_PER_TOKEN[_0x5b65f7];if(!_0x323da3)return this['logger'][_0x4bf671(0xff)](_0x4bf671(0x107),{'modelId':_0x5b65f7}),0x0;const _0x11d2a1=(_0x4ad4d7['prompt_tokens']||0x0)*_0x323da3['input'],_0x243098=(_0x4ad4d7[_0x4bf671(0xbd)]||0x0)*_0x323da3[_0x4bf671(0xf1)];return _0x11d2a1+_0x243098;}[a0_0x22cd97(0xb1)](_0x4c8b82='daily',_0x520102=new Date()){const _0x19f917=a0_0x22cd97;switch(_0x4c8b82){case'daily':return this['usage']['daily']['get'](this[_0x19f917(0xb9)](_0x520102))||this['createEmptyUsage']();case _0x19f917(0xc9):return this[_0x19f917(0xe9)][_0x19f917(0xc9)]['get'](this['getWeekKey'](_0x520102))||this['createEmptyUsage']();case'monthly':return this['usage'][_0x19f917(0xec)][_0x19f917(0xb7)](this[_0x19f917(0xb3)](_0x520102))||this['createEmptyUsage']();case _0x19f917(0xc6):return{...this['usage']['total']};default:throw new Error(_0x19f917(0xf8)+_0x4c8b82);}}[a0_0x22cd97(0xbf)](_0x57ed4f,_0x341763='daily'){const _0x3fefd1=a0_0x22cd97,_0x10f7c6=this[_0x3fefd1(0xb1)](_0x341763);return _0x10f7c6[_0x3fefd1(0xe6)]?.[_0x57ed4f]||this[_0x3fefd1(0xe8)]();}[a0_0x22cd97(0xd4)](_0x395fbf,_0x17e31b=a0_0x22cd97(0xbb)){const _0x414622=a0_0x22cd97,_0x34b9b3=this['getUsage'](_0x17e31b);return _0x34b9b3[_0x414622(0xb6)]?.[_0x395fbf]||this[_0x414622(0xe8)]();}['setBudgets'](_0x59a7ed){const _0x4a1143=a0_0x22cd97;if(_0x59a7ed['daily']!==undefined)this[_0x4a1143(0xc1)][_0x4a1143(0xbb)]=_0x59a7ed[_0x4a1143(0xbb)];if(_0x59a7ed['weekly']!==undefined)this[_0x4a1143(0xc1)]['weekly']=_0x59a7ed['weekly'];if(_0x59a7ed[_0x4a1143(0xec)]!==undefined)this[_0x4a1143(0xc1)][_0x4a1143(0xec)]=_0x59a7ed['monthly'];this['logger'][_0x4a1143(0xf3)]('Budget\x20limits\x20updated',this['budgets']),this['saveUsageData']();}[a0_0x22cd97(0xd2)](){const _0x1b6aa8=a0_0x22cd97,_0x4d1368=new Date(),_0x1dff7c=this['getUsage']('daily',_0x4d1368),_0x2f9772=this['getUsage']('weekly',_0x4d1368),_0xcd9657=this['getUsage'](_0x1b6aa8(0xec),_0x4d1368);return{'daily':Math['max'](0x0,this['budgets'][_0x1b6aa8(0xbb)]-_0x1dff7c['cost']),'weekly':Math['max'](0x0,this['budgets'][_0x1b6aa8(0xc9)]-_0x2f9772['cost']),'monthly':Math['max'](0x0,this['budgets']['monthly']-_0xcd9657['cost'])};}[a0_0x22cd97(0x101)](_0x16f5a1=a0_0x22cd97(0xbb)){const _0x5bcccf=a0_0x22cd97,_0x4cab1d=this['getUsage'](_0x16f5a1),_0x3079ec=this[_0x5bcccf(0xc1)][_0x16f5a1];return _0x4cab1d['cost']<=_0x3079ec;}['getUsageTrends'](_0x297463=0x1e){const _0x1aa8cd=a0_0x22cd97,_0x34b25b={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x58e448=new Date();let _0x5b64c6=0x0,_0x115559=0x0,_0x269cb2=0x0;const _0x47e211=new Map(),_0x8a88c=new Map();for(let _0x2ec8a5=0x0;_0x2ec8a5<_0x297463;_0x2ec8a5++){const _0x596235=new Date(_0x58e448);_0x596235['setDate'](_0x596235[_0x1aa8cd(0xdd)]()-_0x2ec8a5);const _0x57d47a=this['getDayKey'](_0x596235),_0x184b46=this['usage']['daily'][_0x1aa8cd(0xb7)](_0x57d47a);_0x184b46?(_0x5b64c6+=_0x184b46[_0x1aa8cd(0xc5)],_0x115559+=_0x184b46[_0x1aa8cd(0xe5)],_0x269cb2+=_0x184b46['requests'],_0x34b25b['costByDay'][_0x1aa8cd(0xeb)]({'date':_0x57d47a,'cost':_0x184b46['cost']}),_0x34b25b['tokensByDay']['unshift']({'date':_0x57d47a,'tokens':_0x184b46['tokens']}),Object[_0x1aa8cd(0xfb)](_0x184b46[_0x1aa8cd(0xe6)]||{})[_0x1aa8cd(0xe2)](([_0x4a346e,_0x68fb97])=>{const _0x15f57e=_0x1aa8cd;!_0x47e211['has'](_0x4a346e)&&_0x47e211['set'](_0x4a346e,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x346e04=_0x47e211['get'](_0x4a346e);_0x346e04['cost']+=_0x68fb97[_0x15f57e(0xc5)],_0x346e04[_0x15f57e(0xe5)]+=_0x68fb97['tokens'],_0x346e04['requests']+=_0x68fb97['requests'];}),Object['entries'](_0x184b46[_0x1aa8cd(0xb6)]||{})[_0x1aa8cd(0xe2)](([_0x2029cc,_0xfec49b])=>{const _0xa5ebfb=_0x1aa8cd;!_0x8a88c['has'](_0x2029cc)&&_0x8a88c['set'](_0x2029cc,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x2353c8=_0x8a88c[_0xa5ebfb(0xb7)](_0x2029cc);_0x2353c8['cost']+=_0xfec49b['cost'],_0x2353c8['tokens']+=_0xfec49b['tokens'],_0x2353c8['requests']+=_0xfec49b[_0xa5ebfb(0xb5)];})):(_0x34b25b['costByDay'][_0x1aa8cd(0xeb)]({'date':_0x57d47a,'cost':0x0}),_0x34b25b['tokensByDay'][_0x1aa8cd(0xeb)]({'date':_0x57d47a,'tokens':0x0}));}return _0x34b25b[_0x1aa8cd(0xad)]['cost']=_0x5b64c6/_0x297463,_0x34b25b['dailyAverages']['tokens']=_0x115559/_0x297463,_0x34b25b[_0x1aa8cd(0xad)]['requests']=_0x269cb2/_0x297463,_0x34b25b[_0x1aa8cd(0xf5)]=Array['from'](_0x47e211['entries']())[_0x1aa8cd(0x105)](([_0x106298,_0x15492d])=>({'id':_0x106298,..._0x15492d}))['sort']((_0x17035b,_0x3156d4)=>_0x3156d4[_0x1aa8cd(0xc5)]-_0x17035b['cost'])[_0x1aa8cd(0xd7)](0x0,0xa),_0x34b25b[_0x1aa8cd(0xd6)]=Array[_0x1aa8cd(0xf0)](_0x8a88c[_0x1aa8cd(0xfb)]())['map'](([_0x1d84fb,_0x1b8b2d])=>({'id':_0x1d84fb,..._0x1b8b2d}))['sort']((_0x194824,_0x348cda)=>_0x348cda[_0x1aa8cd(0xc5)]-_0x194824[_0x1aa8cd(0xc5)])['slice'](0x0,0xa),_0x34b25b;}[a0_0x22cd97(0xaf)](_0x281ef1=a0_0x22cd97(0xee),_0x3db1ae=null,_0x529a3d=null){const _0x199a3d=a0_0x22cd97,_0x4c1689={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x3e01af=(_0x2654e0,_0x54cfad)=>{const _0x75e6e=a0_0x55f3,_0x5adccf={};return _0x2654e0[_0x75e6e(0xe2)]((_0x32339a,_0x377b91)=>{const _0x2253ed=_0x54cfad(_0x377b91);(!_0x3db1ae||_0x2253ed>=_0x3db1ae)&&(!_0x529a3d||_0x2253ed<=_0x529a3d)&&(_0x5adccf[_0x377b91]=_0x32339a);}),_0x5adccf;};_0x3db1ae||_0x529a3d?(_0x4c1689[_0x199a3d(0xbb)]=_0x3e01af(this['usage'][_0x199a3d(0xbb)],_0x45148d=>new Date(_0x45148d)),_0x4c1689[_0x199a3d(0xc9)]=_0x3e01af(this['usage'][_0x199a3d(0xc9)],_0x32e39d=>new Date(_0x32e39d)),_0x4c1689['monthly']=_0x3e01af(this['usage'][_0x199a3d(0xec)],_0x5e1a4b=>new Date(_0x5e1a4b+_0x199a3d(0x102)))):(this['usage']['daily'][_0x199a3d(0xe2)]((_0x1769e6,_0x56be3b)=>_0x4c1689[_0x199a3d(0xbb)][_0x56be3b]=_0x1769e6),this['usage'][_0x199a3d(0xc9)][_0x199a3d(0xe2)]((_0x5e3335,_0x3e1d04)=>_0x4c1689['weekly'][_0x3e1d04]=_0x5e3335),this[_0x199a3d(0xe9)][_0x199a3d(0xec)][_0x199a3d(0xe2)]((_0x20cae3,_0x46a4f0)=>_0x4c1689[_0x199a3d(0xec)][_0x46a4f0]=_0x20cae3));if(_0x281ef1===_0x199a3d(0x100))return this[_0x199a3d(0xea)](_0x4c1689);return JSON[_0x199a3d(0x108)](_0x4c1689,null,0x2);}[a0_0x22cd97(0xc0)](_0x594e63,_0x1d8ba4){const _0x15a7b0=a0_0x22cd97;!_0x594e63[_0x15a7b0(0xfe)](_0x1d8ba4)&&_0x594e63[_0x15a7b0(0xd3)](_0x1d8ba4,this[_0x15a7b0(0xe8)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x22cd97(0xcd)](_0x73cba7,_0x3909c9){const _0x4a9f09=a0_0x22cd97;_0x73cba7['cost']+=_0x3909c9[_0x4a9f09(0xc5)],_0x73cba7['tokens']+=_0x3909c9['tokens'],_0x73cba7['requests']+=0x1,!_0x73cba7[_0x4a9f09(0xe6)][_0x3909c9['agentId']]&&(_0x73cba7[_0x4a9f09(0xe6)][_0x3909c9[_0x4a9f09(0xf7)]]=this[_0x4a9f09(0xe8)]()),_0x73cba7['byAgent'][_0x3909c9['agentId']]['cost']+=_0x3909c9['cost'],_0x73cba7['byAgent'][_0x3909c9['agentId']]['tokens']+=_0x3909c9['tokens'],_0x73cba7[_0x4a9f09(0xe6)][_0x3909c9['agentId']][_0x4a9f09(0xb5)]+=0x1,!_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9['modelId']]&&(_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9[_0x4a9f09(0xe4)]]=this[_0x4a9f09(0xe8)]()),_0x73cba7['byModel'][_0x3909c9[_0x4a9f09(0xe4)]][_0x4a9f09(0xc5)]+=_0x3909c9[_0x4a9f09(0xc5)],_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9[_0x4a9f09(0xe4)]]['tokens']+=_0x3909c9['tokens'],_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9[_0x4a9f09(0xe4)]]['requests']+=0x1;}['checkBudgetLimits'](_0x3a2253,_0x1a5aba,_0x2bdedf){const _0x2e759b=a0_0x22cd97,_0x3a8c37=this[_0x2e759b(0xe9)]['daily']['get'](_0x3a2253),_0x48d331=this['usage']['weekly']['get'](_0x1a5aba),_0x29303c=this['usage']['monthly']['get'](_0x2bdedf);_0x3a8c37[_0x2e759b(0xc5)]>this['budgets'][_0x2e759b(0xbb)]&&this['sendBudgetAlert'](_0x2e759b(0xbb),_0x3a8c37['cost'],this[_0x2e759b(0xc1)]['daily']),_0x48d331[_0x2e759b(0xc5)]>this[_0x2e759b(0xc1)]['weekly']&&this[_0x2e759b(0xf6)]('weekly',_0x48d331[_0x2e759b(0xc5)],this['budgets']['weekly']),_0x29303c[_0x2e759b(0xc5)]>this['budgets'][_0x2e759b(0xec)]&&this['sendBudgetAlert']('monthly',_0x29303c['cost'],this[_0x2e759b(0xc1)]['monthly']),this['checkThresholdAlerts'](_0x3a8c37,_0x48d331,_0x29303c);}[a0_0x22cd97(0xda)](_0x175975,_0x1f461e,_0x248440){const _0x28663b=a0_0x22cd97,_0x22d5c5=this['alerts']['thresholds'];this['checkThreshold'](_0x28663b(0xbb),_0x175975[_0x28663b(0xc5)],this[_0x28663b(0xc1)]['daily'],_0x22d5c5),this['checkThreshold']('weekly',_0x1f461e[_0x28663b(0xc5)],this[_0x28663b(0xc1)][_0x28663b(0xc9)],_0x22d5c5),this[_0x28663b(0xb0)]('monthly',_0x248440['cost'],this['budgets'][_0x28663b(0xec)],_0x22d5c5);}[a0_0x22cd97(0xb0)](_0x2cf638,_0x5aee11,_0x30ae71,_0x23a346){const _0xec4c29=a0_0x22cd97,_0x2586bb=_0x5aee11/_0x30ae71*0x64;for(const _0x2b2bfe of _0x23a346){if(_0x2586bb>=_0x2b2bfe){const _0x599061=_0x2cf638+'_'+_0x2b2bfe,_0x53188b=this[_0xec4c29(0xe7)]['lastAlertTimes']['get'](_0x599061),_0x384eb8=Date['now']();(!_0x53188b||_0x384eb8-_0x53188b>0x36ee80)&&(this['sendThresholdAlert'](_0x2cf638,_0x2586bb,_0x2b2bfe,_0x5aee11,_0x30ae71),this['alerts']['lastAlertTimes']['set'](_0x599061,_0x384eb8));break;}}}[a0_0x22cd97(0xf6)](_0x532b6d,_0x18eb9d,_0x398c92){const _0x25a559=a0_0x22cd97;this['logger'][_0x25a559(0xff)](_0x25a559(0xc7),{'period':_0x532b6d,'currentUsage':_0x18eb9d,'budgetLimit':_0x398c92,'excess':_0x18eb9d-_0x398c92}),typeof process!==_0x25a559(0xdf)&&process[_0x25a559(0x106)]&&process['emit'](_0x25a559(0xef),{'type':_0x25a559(0xc4),'period':_0x532b6d,'currentUsage':_0x18eb9d,'budgetLimit':_0x398c92,'excess':_0x18eb9d-_0x398c92});}['sendThresholdAlert'](_0x58fcf7,_0x49156e,_0x1135c0,_0xfe489b,_0x4c0060){const _0x2bff0c=a0_0x22cd97;this['logger']['warn'](_0x2bff0c(0xc2),{'period':_0x58fcf7,'percentage':Math['round'](_0x49156e),'threshold':_0x1135c0,'usage':_0xfe489b,'budget':_0x4c0060}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':'threshold_reached','period':_0x58fcf7,'percentage':Math[_0x2bff0c(0xed)](_0x49156e),'threshold':_0x1135c0,'usage':_0xfe489b,'budget':_0x4c0060});}['getDayKey'](_0x42c9f2){const _0xfaffca=a0_0x22cd97;return _0x42c9f2[_0xfaffca(0xd5)]()['split']('T')[0x0];}[a0_0x22cd97(0xf9)](_0x5b75e9){const _0x2caeed=a0_0x22cd97,_0x4111e1=_0x5b75e9[_0x2caeed(0xfa)](),_0x599e88=this[_0x2caeed(0xb8)](_0x5b75e9);return _0x4111e1+'-W'+_0x599e88[_0x2caeed(0x104)]()[_0x2caeed(0xd1)](0x2,'0');}['getMonthKey'](_0x2fc2ce){const _0x199adc=a0_0x22cd97,_0x1ca0ae=_0x2fc2ce[_0x199adc(0xfa)](),_0x155d85=_0x2fc2ce[_0x199adc(0x103)]()+0x1;return _0x1ca0ae+'-'+_0x155d85['toString']()['padStart'](0x2,'0');}['getWeekNumber'](_0x3db0b7){const _0x1f9d9e=a0_0x22cd97,_0x156440=new Date(_0x3db0b7[_0x1f9d9e(0xfa)](),0x0,0x1),_0x5385dc=(_0x3db0b7-_0x156440)/0x5265c00;return Math['ceil']((_0x5385dc+_0x156440['getDay']()+0x1)/0x7);}[a0_0x22cd97(0xea)](_0x30ba6b){const _0x1bb06e=a0_0x22cd97,_0x5c33b2=[];return _0x5c33b2['push'](['Period',_0x1bb06e(0xde),_0x1bb06e(0xe1),'Tokens','Requests','Agent','Model']),Object['entries'](_0x30ba6b[_0x1bb06e(0xbb)])['forEach'](([_0x480936,_0x1d5e0c])=>{const _0x40bd16=_0x1bb06e;_0x5c33b2[_0x40bd16(0xae)](['Daily',_0x480936,_0x1d5e0c[_0x40bd16(0xc5)],_0x1d5e0c[_0x40bd16(0xe5)],_0x1d5e0c['requests'],'','']),Object['entries'](_0x1d5e0c['byAgent']||{})[_0x40bd16(0xe2)](([_0x19cf01,_0x16e398])=>{const _0x48e859=_0x40bd16;_0x5c33b2[_0x48e859(0xae)](['Daily',_0x480936,_0x16e398[_0x48e859(0xc5)],_0x16e398[_0x48e859(0xe5)],_0x16e398['requests'],_0x19cf01,'']);});}),_0x5c33b2['map'](_0x50d1fe=>_0x50d1fe['join'](','))['join']('\x0a');}[a0_0x22cd97(0xc8)](){const _0x4da08d=a0_0x22cd97;try{this['logger'][_0x4da08d(0xf3)](_0x4da08d(0xd9));}catch(_0x471421){this[_0x4da08d(0xbe)][_0x4da08d(0xb4)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x471421[_0x4da08d(0xc3)]});}}[a0_0x22cd97(0xe3)](){const _0x5db651=a0_0x22cd97;try{this['logger']['debug']('Usage\x20data\x20saved');}catch(_0xe4e628){this[_0x5db651(0xbe)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0xe4e628[_0x5db651(0xc3)]});}}[a0_0x22cd97(0xfd)](){setInterval(()=>{const _0x16cd21=a0_0x55f3;this[_0x16cd21(0xe3)]();},0x493e0);}}function a0_0x4290(){const _0x1a1166=['BwvZC2fNzq','yNvKz2v0x2v4y2vLzgvK','y29ZDa','Dg90ywW','qNvKz2v0igXPBwL0igv4y2vLzgvK','Bg9HzfvZywDLrgf0yq','D2vLA2X5','ntiYnZe4wg55AeLH','otq5nMT3vgHzzG','mJm0mvPsqK5UCq','DxbKyxrLvxnHz2vfBNrYEq','mJm5mdu1nMffD1vmwq','ogn6u3DMza','oduZmJi3muDjuvfywG','CgfKu3rHCNq','z2v0uMvTywLUAw5NqNvKz2v0','C2v0','z2v0tw9KzwXvC2fNzq','Dg9ju09tDhjPBMC','Dg9Wtw9KzwXZ','C2XPy2u','mZe2odK4mxvOD1PRtW','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','y2HLy2TuAhjLC2HVBgrbBgvYDhm','y2HLy2TcDwrNzxrmAw1PDhm','y2fSy3vSyxrLq29ZDa','z2v0rgf0zq','rgf0zq','Dw5KzwzPBMvK','vxnHz2uGDhjHy2TLza','q29ZDa','zM9YrwfJAa','C2f2zvvZywDLrgf0yq','Bw9KzwXjza','Dg9Rzw5Z','yNLbz2vUDa','ywXLCNrZ','y3jLyxrLrw1WDhLvC2fNzq','DxnHz2u','y29UDMvYDfrVq1nw','Dw5ZAgLMDa','Bw9UDgHSEq','CM91BMq','ANnVBG','yNvKz2v0qwXLCNq','zNjVBq','B3v0Chv0','odyWCLfQrNrn','Aw5MBW','v0vfs0Xz','Dg9WqwDLBNrZ','C2vUzej1zgDLDefSzxj0','ywDLBNrjza','sw52ywXPzcbWzxjPB2q6ia','z2v0v2vLA0TLEq','z2v0rNvSBfLLyxi','zw50CMLLCW','ntiYC3bKD2fk','C2v0DxbqzxjPB2rPy1nHDMu','AgfZ','D2fYBG','y3n2','AxnxAxrOAw5cDwrNzxq','ltaX','z2v0tw9UDgG','Dg9tDhjPBMC','BwfW','zw1PDa','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','C3rYAw5NAwz5','zgfPBhLbDMvYywDLCW','ChvZAa','zxHWB3j0vxnHz2veyxrH','y2HLy2TuAhjLC2HVBgq','z2v0vxnHz2u','Dg90ywXFDg9Rzw5Z','z2v0tw9UDgHlzxK','zxjYB3i','CMvXDwvZDhm','yNLnB2rLBa','z2v0','z2v0v2vLA051BwjLCG','z2v0rgf5s2v5','mJbNtfDiwvu','zgfPBhK','ndK5nda4mLDctgH6wG','y29TCgXLDgLVBL90B2TLBNm','Bg9Nz2vY','z2v0qwDLBNrvC2fNzq','Aw5PDgLHBgL6zvvZywDLrw50CNK','yNvKz2v0CW','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK'];a0_0x4290=function(){return _0x1a1166;};return a0_0x4290();}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_0x6e198c=a0_0x486c;(function(_0x6f8150,_0x22d21f){const _0x1281f4=a0_0x486c,_0xfa8539=_0x6f8150();while(!![]){try{const _0x1fd309=-parseInt(_0x1281f4(0xb2))/0x1+-parseInt(_0x1281f4(0xb6))/0x2+parseInt(_0x1281f4(0xca))/0x3+parseInt(_0x1281f4(0xc0))/0x4+parseInt(_0x1281f4(0xc5))/0x5+-parseInt(_0x1281f4(0xc6))/0x6+parseInt(_0x1281f4(0xb8))/0x7;if(_0x1fd309===_0x22d21f)break;else _0xfa8539['push'](_0xfa8539['shift']());}catch(_0x46020c){_0xfa8539['push'](_0xfa8539['shift']());}}}(a0_0x2b9d,0xa1379));import a0_0x146b3a from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0xe4446f={},_0x540c30=null){const _0x48a94c=a0_0x486c;this[_0x48a94c(0xa6)]=_0xe4446f,this['logger']=_0x540c30,this['attachmentService']=new a0_0x146b3a(_0xe4446f,_0x540c30);}async[a0_0x6e198c(0xbf)](){const _0x3e0c45=a0_0x6e198c;await this[_0x3e0c45(0xc2)]['initialize']();}async['buildDynamicContext'](_0x4f76ce){const _0x2b8dea=a0_0x6e198c;try{const _0x434ee1=await this['attachmentService'][_0x2b8dea(0xb5)](_0x4f76ce);if(_0x434ee1[_0x2b8dea(0xcc)]===0x0)return'';const _0x543437=_0x434ee1[_0x2b8dea(0xa4)](_0x14d7d6=>_0x14d7d6['mode']===_0x2b8dea(0xc8)),_0x219563=_0x434ee1['filter'](_0x102cbe=>_0x102cbe['mode']===_0x2b8dea(0xaf));let _0x59f095='';if(_0x543437['length']>0x0){_0x59f095+='\x0a<attached-files>\x0a';for(const _0x32993d of _0x543437){const _0x5b5891=await this[_0x2b8dea(0xc2)]['getAttachmentContent'](_0x32993d['fileId']);if(_0x5b5891){const _0x13d749=this['formatContentFile'](_0x32993d,_0x5b5891);_0x59f095+=_0x13d749+'\x0a';}}_0x59f095+=_0x2b8dea(0x9d);}if(_0x219563['length']>0x0){_0x59f095+=_0x2b8dea(0xb0);for(const _0x278fd4 of _0x219563){const _0x3b0f54=this[_0x2b8dea(0xbd)](_0x278fd4);_0x59f095+=_0x3b0f54+'\x0a';}_0x59f095+=_0x2b8dea(0xb7),_0x59f095+=_0x2b8dea(0xcd);}return _0x59f095;}catch(_0x2b9d6d){return this['logger']?.[_0x2b8dea(0xb1)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x4f76ce,'error':_0x2b9d6d[_0x2b8dea(0x9e)]}),'';}}['formatContentFile'](_0x5decab,_0x17992b){const _0x9803f2=a0_0x6e198c,{fileName:_0x2de0a5,fileType:_0x14c507,size:_0x2b2b28,contentType:_0x477e34}=_0x5decab,_0xe5d0e3=(_0x2b2b28/0x400)['toFixed'](0x2);if(_0x477e34===_0x9803f2(0xaa))return this[_0x9803f2(0xa1)](_0x5decab,_0x17992b);else{if(_0x477e34===_0x9803f2(0xa2))return this['formatImageFile'](_0x5decab,_0x17992b);else{if(_0x477e34==='pdf')return this[_0x9803f2(0xba)](_0x5decab,_0x17992b);}}return'\x20\x20<file\x20name=\x22'+this[_0x9803f2(0xc4)](_0x2de0a5)+'\x22\x20type=\x22'+_0x14c507+'\x22\x20size=\x22'+_0xe5d0e3+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x17992b)+_0x9803f2(0xa3);}['formatTextFile'](_0x2ba00f,_0x238fca){const _0x4b1684=a0_0x6e198c,{fileName:_0xf890d,fileType:_0x445acc,size:_0x595331}=_0x2ba00f,_0x5c25a9=(_0x595331/0x400)[_0x4b1684(0x9f)](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x4b1684(0xc4)](_0xf890d)+'\x22\x20type=\x22'+_0x445acc+'\x22\x20size=\x22'+_0x5c25a9+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x4b1684(0xc4)](_0x238fca)+'\x0a\x20\x20</file>';}[a0_0x6e198c(0xc3)](_0x2428e7,_0x2d62e5){const _0x369924=a0_0x6e198c,{fileName:_0x18c164,fileType:_0x431e58,size:_0x4934a0}=_0x2428e7,_0x14205e=(_0x4934a0/0x400)['toFixed'](0x2);return _0x369924(0xc7)+this['escapeXml'](_0x18c164)+'\x22\x20type=\x22'+_0x431e58+_0x369924(0xae)+_0x14205e+_0x369924(0xb4)+_0x2d62e5+_0x369924(0xa3);}['formatPdfFile'](_0x2a1138,_0x5880fb){const _0x17e52d=a0_0x6e198c,{fileName:_0x480f64,fileType:_0x584ce4,size:_0x1016ac}=_0x2a1138,_0x16e34d=(_0x1016ac/0x400)[_0x17e52d(0x9f)](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x480f64)+'\x22\x20type=\x22'+_0x584ce4+_0x17e52d(0xae)+_0x16e34d+_0x17e52d(0xb4)+this[_0x17e52d(0xc4)](_0x5880fb)+'\x0a\x20\x20</file>';}[a0_0x6e198c(0xbd)](_0x353835){const _0x4ab581=a0_0x6e198c,{fileName:_0x1425bb,originalPath:_0x332419,size:_0x51ce4b,fileType:_0x36abec,lastModified:_0x1a84e6}=_0x353835,_0x109c85=this['formatBytes'](_0x51ce4b),_0x4f365a=new Date(_0x1a84e6)[_0x4ab581(0xac)]()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this[_0x4ab581(0xc4)](_0x1425bb)+'\x22\x20path=\x22'+this[_0x4ab581(0xc4)](_0x332419)+_0x4ab581(0xae)+_0x109c85+_0x4ab581(0xbb)+_0x36abec+'\x22\x20modified=\x22'+_0x4f365a+_0x4ab581(0xa5);}[a0_0x6e198c(0xc4)](_0x2f8933){const _0x507161=a0_0x6e198c;if(!_0x2f8933)return'';return _0x2f8933[_0x507161(0xad)](/&/g,_0x507161(0xa0))[_0x507161(0xad)](/</g,_0x507161(0xcb))['replace'](/>/g,'&gt;')[_0x507161(0xad)](/"/g,'&quot;')['replace'](/'/g,_0x507161(0xbe));}['formatBytes'](_0x147022){const _0x31a859=a0_0x6e198c;if(_0x147022===0x0)return'0\x20Bytes';const _0x5c63aa=0x400,_0x3587ac=['Bytes','KB','MB','GB'],_0x352b2f=Math['floor'](Math['log'](_0x147022)/Math['log'](_0x5c63aa));return parseFloat((_0x147022/Math[_0x31a859(0xbc)](_0x5c63aa,_0x352b2f))[_0x31a859(0x9f)](0x2))+_0x3587ac[_0x352b2f];}async[a0_0x6e198c(0xa7)](_0x28ab94){const _0x2c40e0=a0_0x6e198c;try{const _0x3172bb=await this[_0x2c40e0(0xc2)]['getActiveAttachments'](_0x28ab94);let _0x330a8a=0x0;for(const _0x2bdcc2 of _0x3172bb){_0x2bdcc2[_0x2c40e0(0xab)]==='content'?_0x330a8a+=_0x2bdcc2['tokenEstimate']||0x0:_0x330a8a+=0x14;}return _0x330a8a;}catch(_0x564174){return this['logger']?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x28ab94,'error':_0x564174[_0x2c40e0(0x9e)]}),0x0;}}async[a0_0x6e198c(0xb9)](_0x5cbced){const _0x3fa2a6=a0_0x6e198c;try{const _0x3d24fc=await this[_0x3fa2a6(0xc2)]['getActiveAttachments'](_0x5cbced),_0x52f70b={'totalActive':_0x3d24fc[_0x3fa2a6(0xcc)],'contentMode':_0x3d24fc[_0x3fa2a6(0xa4)](_0x28a3ed=>_0x28a3ed['mode']==='content')['length'],'referenceMode':_0x3d24fc[_0x3fa2a6(0xa4)](_0x539725=>_0x539725['mode']===_0x3fa2a6(0xaf))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x57c485 of _0x3d24fc){_0x52f70b[_0x3fa2a6(0x9c)]+=_0x57c485['tokenEstimate']||0x0,_0x52f70b[_0x3fa2a6(0xa8)]['push']({'fileName':_0x57c485[_0x3fa2a6(0xc9)],'mode':_0x57c485['mode'],'size':this[_0x3fa2a6(0xa9)](_0x57c485['size']),'tokens':_0x57c485['tokenEstimate']||0x0});}return _0x52f70b;}catch(_0x5c8c2a){return this[_0x3fa2a6(0xb3)]?.[_0x3fa2a6(0xb1)](_0x3fa2a6(0xc1),{'agentId':_0x5cbced,'error':_0x5c8c2a['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;function a0_0x486c(_0x2f539e,_0x2a6c97){_0x2f539e=_0x2f539e-0x9c;const _0x2b9de8=a0_0x2b9d();let _0x486c81=_0x2b9de8[_0x2f539e];if(a0_0x486c['svUmlp']===undefined){var _0x3e7f53=function(_0x584751){const _0x48b4f8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x146b3a='',_0xe4446f='';for(let _0x540c30=0x0,_0x4f76ce,_0x434ee1,_0x543437=0x0;_0x434ee1=_0x584751['charAt'](_0x543437++);~_0x434ee1&&(_0x4f76ce=_0x540c30%0x4?_0x4f76ce*0x40+_0x434ee1:_0x434ee1,_0x540c30++%0x4)?_0x146b3a+=String['fromCharCode'](0xff&_0x4f76ce>>(-0x2*_0x540c30&0x6)):0x0){_0x434ee1=_0x48b4f8['indexOf'](_0x434ee1);}for(let _0x219563=0x0,_0x59f095=_0x146b3a['length'];_0x219563<_0x59f095;_0x219563++){_0xe4446f+='%'+('00'+_0x146b3a['charCodeAt'](_0x219563)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe4446f);};a0_0x486c['FpPuKT']=_0x3e7f53,a0_0x486c['gNhsLE']={},a0_0x486c['svUmlp']=!![];}const _0x3dae55=_0x2b9de8[0x0],_0x37b68e=_0x2f539e+_0x3dae55,_0x2d45a1=a0_0x486c['gNhsLE'][_0x37b68e];return!_0x2d45a1?(_0x486c81=a0_0x486c['FpPuKT'](_0x486c81),a0_0x486c['gNhsLE'][_0x37b68e]=_0x486c81):_0x486c81=_0x2d45a1,_0x486c81;}function a0_0x2b9d(){const _0x144040=['mJu1ntG5mgHOr2Hurq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','mta4nty5m25ysNHLuW','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','zM9YBwf0ugrMrMLSzq','iIb0ExbLpsi','Cg93','zM9YBwf0uMvMzxjLBMnLrMLSzq','jMfWB3m7','Aw5PDgLHBgL6zq','ndC3oda1nKHcsuzIBq','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0sw1Hz2vgAwXL','zxnJyxbLwg1S','ntq1odq2mhvUt3DLEG','mZq2otq0mefUD1zYrW','ica8zMLSzsbUyw1Lpsi','y29UDgvUDa','zMLSzu5HBwu','oteXnty1DM53ENvf','jMX0oW','BgvUz3rO','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','zxn0Aw1HDgvKvg9Rzw5Z','pc9HDhrHy2HLzc1MAwXLCZ4k','BwvZC2fNzq','Dg9gAxHLza','jMfTCdS','zM9YBwf0vgv4DezPBgu','Aw1Hz2u','cIaGpc9MAwXLpG','zMLSDgvY','iIaVpG','y29UzMLN','zxn0Aw1HDgvuB3rHBfrVA2vUCW','zMLSzxm','zM9YBwf0qNL0zxm','Dgv4Da','Bw9Kzq','Dg9ju09tDhjPBMC','CMvWBgfJzq','iIbZAxPLpsi','CMvMzxjLBMnL','cJXMAwXLlxjLzMvYzw5Jzxm+cG','zxjYB3i','mJi4nJmWsLzJyKTk','Bg9Nz2vY','s0iIig1Vzgu9iMnVBNrLBNqIpGO','z2v0qwn0AxzLqxr0ywnOBwvUDhm'];a0_0x2b9d=function(){return _0x144040;};return a0_0x2b9d();}