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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-CoRE46V-.js → index-C5X7qBNF.js} +63 -63
  119. package/web-ui/build/static/index-g2UFuTwG.css +1 -0
  120. package/web-ui/build/static/index-P281Rusr.css +0 -1
@@ -1 +1 @@
1
- const a0_0x21be3e=a0_0x4b19;(function(_0x14be9b,_0x1aad50){const _0x50c473=a0_0x4b19,_0x484771=_0x14be9b();while(!![]){try{const _0x55b071=parseInt(_0x50c473(0x186))/0x1+-parseInt(_0x50c473(0x18a))/0x2*(parseInt(_0x50c473(0x14b))/0x3)+-parseInt(_0x50c473(0x195))/0x4+-parseInt(_0x50c473(0x16a))/0x5+-parseInt(_0x50c473(0x1c1))/0x6*(parseInt(_0x50c473(0x178))/0x7)+-parseInt(_0x50c473(0x15f))/0x8*(parseInt(_0x50c473(0x171))/0x9)+-parseInt(_0x50c473(0x156))/0xa*(-parseInt(_0x50c473(0x16e))/0xb);if(_0x55b071===_0x1aad50)break;else _0x484771['push'](_0x484771['shift']());}catch(_0x107608){_0x484771['push'](_0x484771['shift']());}}}(a0_0x5eaf,0xedbcb));function a0_0x5eaf(){const _0x8c0661=['mJu1ndeXowTdqvP0ra','su5urvjoquXFu0vsvKvsx0vsuK9s','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','A2v5CW','ywDLBNrqB29S','ChjVDMLKzxi','x2zVCM1HDezVCK9Wzw5bsq','mty4CgTfBfrl','C3vIC3rYAw5N','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','z2v0','CMvZCg9UC2vgB3jTyxq','t1bftKfj','DgLTzw91Da','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','revfufnfruTFuJe','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','BwfW','B3bLBMfP','Aw5JBhvKzxm','Bw9KzwXtCgvJCW','mte1mJK1m0vXCeX5wG','y3vZDg9TqxbPs2v5CW','ChvZAa','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','mti2ogjozLneAq','l2HLywX0Aa','lcb1C2LUzYbMywXSyMfJAW','u3LZDgvToIa','qvPvuKu','y2XHDwrL','x2vZDgLTyxrLvg9Rzw5Z','tK9ux0zpvu5e','Dg9vChbLCKnHC2u','y29UDgvUDa','BM93','ntGZodG4ogrSy1jOuq','CMvXDwvZDff1zxvL','C3DPDgnOtw9KzwW','C3vIC3rY','AgvHBhrOlwnOzwnR','DgLTzxn0yw1W','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','CMf0zuXPBwL0zxjZ','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','CM9Szq','C3rVCa','x3jLy29YzezHAwX1CMu','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','r1buxZq','vMfSAwrHDgLUzYbTB2rLBa','C3LZDgvTuhjVBxb0','Dw5ZAgLMDa','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','y2vPBa','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','yxbPs2v5','AgLNAa','Aw1Hz2vZ','DgvTCgvYyxr1CMu','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','qu5usfjpueLdx09qvvm','Bg94AwfbCgLlzxK','tw9KzwWGC3DPDgnOigzHAwXLzdOG','AgvHBhrOEq','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','zxn0Aw1HDgvKvg9Rzw5Z','CMv0CNLbDhrLBxb0CW','D2fYBG','zxjYB3jiyw5KBgvY','zMfZDa','ANnVBG','sw52ywXPzcbYzxf1zxn0oIa','x3rYDw5JyxrLtwvZC2fNzq','C2L6zq','u0vsvKLdrv9vtKfwquLmqujmrq','yNvKz2v0u2vYDMLJzq','C3rYAw5N','C2v0qxbPs2v5twfUywDLCG','mJG0mdGYtxnIvvPn','CMv2AxnLzf9WCM9TChq','y29UDMvYC2f0Aw9UtwfUywDLCNm','y2LYy3vPDejYzwfRzxi','yxP1CMuTB3bLBMfPlwrHBgXLmW','DxnLCG','yxbPs2v5twfUywDLCG','x2zVCM1HDezVCKf6DxjL','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','x2zVCM1HDezVCKfUDgHYB3bPyW','y29UzMLN','y2HVAwnLCW','qu5usfjpueLd','CxvHBgL0Eq','x3jLC2v0q2LYy3vPDejYzwfRzxi','vw5RBM93BIbTB2rLBdOG','DxnHz2u','Cg93','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','yMfZzvvYBa','x2HHBMrSzvjHDgvmAw1PDa','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','x2LZq2LYy3vPDejYzwfRzxjpCgvU','C3rHDhvZ','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','C3LZDgvT','CMfUzg9T','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','ve9px01btLLFuKvrvuvtvfm','CMvXlq','qKfex0DbvevxqvK','zgvLChnLzwS','BwvZC2fNzq','rK9sqKLerevo','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','rKfmtejbq0S','Bg9Nz2vY','CM91DgvnB2rLBa','zgf0yq','zMLUAxnOuMvHC29U','ic0G','DMvUzg9YqxbPs2v5','Dg9tDhjPBMC','Dgv4Da','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','odqWm1jfB0PTvq','ChjVBxb0','ChjLzMvYCMvKtw9KzwW','x2nOzwnRuMf0zuXPBwL0','AgfUzgXLshr0CevYCM9Y','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C2vZC2LVBKLK','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','CgXHDgzVCM1qCM92AwrLza','AxnbCNjHEq','DxjS','ntyZmhLxD0jMrG','y2XHC3nPzNLfCNjVCG','x2nOzwnRtw9KzwXizwfSDgG','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','zMfPBhvYzxm','Dg9ju09tDhjPBMC','Bw9KzwW','yxnZAxn0yw50','DhjHy2TvC2fNzq','ndHQsxP5r2C','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','zxjYB3i','C3rHy2S','x2DLDfzLBMrVCKzYB21nB2rLBa','uMf0zsbSAw1PDcbLEgnLzwrLza','AxnpCgvU','y29UDMvYC2f0Aw9UCW','BgvUz3rO','BwvZC2fNzxm','ndy2mZa4mfHIC3PsEq','sfruuca','ywDLBNrjza','ueHjxZq','mtmZnda4EwruquXW','Aw5MBW','DgHYzxnOB2XK'];a0_0x5eaf=function(){return _0x8c0661;};return a0_0x5eaf();}function a0_0x4b19(_0xe51fb1,_0x35595a){_0xe51fb1=_0xe51fb1-0x11e;const _0x5eaf36=a0_0x5eaf();let _0x4b190a=_0x5eaf36[_0xe51fb1];if(a0_0x4b19['kbSGRC']===undefined){var _0x36d06e=function(_0x4c2958){const _0x1a9f07='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x581188='',_0x53d06d='';for(let _0x41d1b4=0x0,_0x52602a,_0x21dee8,_0x415ecd=0x0;_0x21dee8=_0x4c2958['charAt'](_0x415ecd++);~_0x21dee8&&(_0x52602a=_0x41d1b4%0x4?_0x52602a*0x40+_0x21dee8:_0x21dee8,_0x41d1b4++%0x4)?_0x581188+=String['fromCharCode'](0xff&_0x52602a>>(-0x2*_0x41d1b4&0x6)):0x0){_0x21dee8=_0x1a9f07['indexOf'](_0x21dee8);}for(let _0x2c52ed=0x0,_0x157403=_0x581188['length'];_0x2c52ed<_0x157403;_0x2c52ed++){_0x53d06d+='%'+('00'+_0x581188['charCodeAt'](_0x2c52ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x53d06d);};a0_0x4b19['KEhxvW']=_0x36d06e,a0_0x4b19['hxephV']={},a0_0x4b19['kbSGRC']=!![];}const _0x275905=_0x5eaf36[0x0],_0x17da4e=_0xe51fb1+_0x275905,_0x232745=a0_0x4b19['hxephV'][_0x17da4e];return!_0x232745?(_0x4b190a=a0_0x4b19['KEhxvW'](_0x4b190a),a0_0x4b19['hxephV'][_0x17da4e]=_0x4b190a):_0x4b190a=_0x232745,_0x4b190a;}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x581188,_0x53d06d,_0x41d1b4,_0x52602a){const _0x2e5167=a0_0x4b19;this['config']=_0x581188,this[_0x2e5167(0x142)]=_0x53d06d,this[_0x2e5167(0x1be)]=_0x41d1b4,this[_0x2e5167(0x1b7)]=_0x52602a,this[_0x2e5167(0x130)]=_0x581188['backend']?.[_0x2e5167(0x130)]||'https://api.loxia.ai',this[_0x2e5167(0x17e)]=_0x581188['backend']?.[_0x2e5167(0x17e)]||0xea60,this[_0x2e5167(0x1b5)]=_0x581188['backend']?.[_0x2e5167(0x1b5)]||0x3,this[_0x2e5167(0x19c)]=new Map(),this[_0x2e5167(0x196)]=new Map(),this[_0x2e5167(0x120)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x2e5167(0x185)]=this['_initializeModelSpecs'](),this[_0x2e5167(0x11f)]=new Map(),this['apiKeyManager']=null,this[_0x2e5167(0x175)]=null;}async['sendMessage'](_0x21dee8,_0x415ecd,_0x2c52ed={}){const _0x1889c8=a0_0x4b19,_0x157403=_0x1889c8(0x13b)+Date[_0x1889c8(0x194)]()+'-'+Math['random']()[_0x1889c8(0x148)](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x1889c8(0x14e)](_0x21dee8);const _0x261cb=this[_0x1889c8(0x132)](_0x415ecd,_0x21dee8,_0x2c52ed),_0x4c074b={'model':_0x21dee8,'messages':_0x261cb,'options':{'max_tokens':this[_0x1889c8(0x185)][_0x21dee8]?.['maxTokens']||0xfa0,'temperature':_0x2c52ed[_0x1889c8(0x1ad)]||0.7,'stream':_0x2c52ed['stream']||![]},'metadata':{'requestId':_0x157403,'agentId':_0x2c52ed[_0x1889c8(0x16c)],'timestamp':new Date()[_0x1889c8(0x15b)]()}};_0x2c52ed['systemPrompt']&&(_0x4c074b['system']=_0x2c52ed['systemPrompt']);this[_0x1889c8(0x142)]['info'](_0x1889c8(0x1a6)+_0x21dee8,{'requestId':_0x157403,'agentId':_0x2c52ed[_0x1889c8(0x16c)],'messageCount':Array[_0x1889c8(0x154)](_0x415ecd)?_0x415ecd[_0x1889c8(0x168)]:0x1,'maxTokens':_0x4c074b['max_tokens']});const _0x565482=await this['_makeAPIRequest']('/chat/completions',_0x4c074b,_0x157403,{..._0x2c52ed,'sessionId':_0x2c52ed[_0x1889c8(0x151)],'platformProvided':_0x2c52ed['platformProvided']||![]});return _0x565482['usage']&&await this[_0x1889c8(0x15e)](_0x2c52ed[_0x1889c8(0x16c)],_0x21dee8,{'prompt_tokens':_0x565482[_0x1889c8(0x12d)]['prompt_tokens']||0x0,'completion_tokens':_0x565482['usage']['completion_tokens']||0x0,'total_tokens':_0x565482[_0x1889c8(0x12d)]['total_tokens']||0x0}),this[_0x1889c8(0x12b)](),{'content':_0x565482[_0x1889c8(0x128)][0x0]?.[_0x1889c8(0x13e)]?.['content']||'','model':_0x565482['model'],'tokenUsage':_0x565482[_0x1889c8(0x12d)],'requestId':_0x157403,'finishReason':_0x565482[_0x1889c8(0x128)][0x0]?.['finish_reason']};}catch(_0x2a78e6){this['_recordFailure'](),this['logger'][_0x1889c8(0x162)]('AI\x20service\x20request\x20failed:\x20'+_0x2a78e6[_0x1889c8(0x13e)],{'requestId':_0x157403,'model':_0x21dee8,'agentId':_0x2c52ed[_0x1889c8(0x16c)],'error':_0x2a78e6[_0x1889c8(0x163)]}),await this[_0x1889c8(0x14f)](_0x2a78e6,{'requestId':_0x157403,'model':_0x21dee8,'agentId':_0x2c52ed[_0x1889c8(0x16c)]});throw _0x2a78e6;}}async[a0_0x21be3e(0x143)](_0x4698ed,_0x1e61cf={}){const _0xc4b400=a0_0x21be3e;try{const _0x329db4=MODEL_ROUTING[_0x4698ed[_0xc4b400(0x192)]()]||MODEL_ROUTING[_0xc4b400(0x141)],_0x4634dd=[];for(const _0x2fe50c of _0x329db4){const _0x28b289=await this[_0xc4b400(0x158)](_0x2fe50c);_0x28b289&&_0x4634dd[_0xc4b400(0x188)](_0x2fe50c);}if(_0x4634dd['length']===0x0)return this[_0xc4b400(0x142)][_0xc4b400(0x1b6)](_0xc4b400(0x12f)+_0x4698ed+_0xc4b400(0x18c)),MODEL_ROUTING[_0xc4b400(0x141)][0x0];let _0x39ec34=_0x4634dd[0x0];if(_0x1e61cf[_0xc4b400(0x14d)]&&_0x4634dd['includes'](_0x1e61cf[_0xc4b400(0x14d)]))_0x39ec34=_0x1e61cf[_0xc4b400(0x14d)];else{if(_0x1e61cf['complexity']===_0xc4b400(0x1ab)&&_0x4634dd[_0xc4b400(0x184)](MODELS[_0xc4b400(0x1af)]))_0x39ec34=MODELS[_0xc4b400(0x1af)];else _0x1e61cf['speed']===_0xc4b400(0x1b8)&&_0x4634dd['includes'](MODELS['ANTHROPIC_HAIKU'])&&(_0x39ec34=MODELS['ANTHROPIC_HAIKU']);}return this[_0xc4b400(0x142)]['info'](_0xc4b400(0x140)+_0x4698ed,{'selectedModel':_0x39ec34,'availableModels':_0x4634dd[_0xc4b400(0x168)],'context':_0x1e61cf}),_0x39ec34;}catch(_0x149b8e){return this[_0xc4b400(0x142)]['error']('Model\x20routing\x20failed:\x20'+_0x149b8e['message'],{'task':_0x4698ed,'context':_0x1e61cf}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x2b2013,_0xa243ca){const _0x209d75=a0_0x21be3e,_0xcaa780=this['modelSpecs'][_0xa243ca];if(!_0xcaa780)throw new Error(_0x209d75(0x12c)+_0xa243ca);const _0x2cbff1=_0xcaa780['contextWindow']*0.8;let _0x2a77cf=0x0;const _0x31ebc6=[],_0xa6639c=await Promise['all'](_0x2b2013['map'](async _0x2c4047=>({..._0x2c4047,'estimatedTokens':await this[_0x209d75(0x190)](_0x2c4047['content'],_0xa243ca)}))),_0x1629c6=[..._0xa6639c]['reverse']();for(const _0x5da2a9 of _0x1629c6){if(_0x2a77cf+_0x5da2a9[_0x209d75(0x1b4)]>_0x2cbff1){if(_0x31ebc6[_0x209d75(0x168)]===0x0){const _0x3fd6f5=await this[_0x209d75(0x1bb)](_0x5da2a9[_0x209d75(0x193)],_0x2cbff1);_0x31ebc6['unshift']({..._0x5da2a9,'content':_0x3fd6f5,'estimatedTokens':_0x2cbff1});}break;}_0x31ebc6[_0x209d75(0x1a5)](_0x5da2a9),_0x2a77cf+=_0x5da2a9[_0x209d75(0x1b4)];}const _0x20fa13=_0xa6639c['slice'](0x0,-_0x31ebc6['length']);if(_0x20fa13[_0x209d75(0x168)]>0x0){const _0x350872=await this['_summarizeMessages'](_0x20fa13,_0xa243ca);_0x31ebc6['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x350872,'timestamp':_0x20fa13[0x0]['timestamp'],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x350872,_0xa243ca)});}return this[_0x209d75(0x142)]['info'](_0x209d75(0x19d)+_0xa243ca,{'originalMessages':_0x2b2013[_0x209d75(0x168)],'compactizedMessages':_0x31ebc6['length'],'estimatedTokens':_0x2a77cf,'maxTokens':_0x2cbff1}),_0x31ebc6;}async[a0_0x21be3e(0x15e)](_0x264258,_0x31d272,_0x32e8b9,_0x369175){const _0x342bdf=a0_0x21be3e;try{this[_0x342bdf(0x1be)]&&this['budgetService']['trackUsage'](_0x264258,_0x31d272,_0x32e8b9);}catch(_0x25d4b0){this['logger']['error'](_0x342bdf(0x17f)+_0x25d4b0['message']);}}async['handleHttpError'](_0x1d3df7,_0x423183){const _0x48d4ee=a0_0x21be3e,_0x288358=this[_0x48d4ee(0x1b7)]?.[_0x48d4ee(0x157)]?.(_0x1d3df7,_0x423183);switch(_0x1d3df7['status']||_0x1d3df7['code']){case HTTP_STATUS['BAD_REQUEST']:this[_0x48d4ee(0x142)]['error']('Bad\x20request\x20to\x20AI\x20service',{'context':_0x423183,'error':_0x1d3df7[_0x48d4ee(0x13e)]});throw new Error(_0x48d4ee(0x1ba)+_0x1d3df7['message']);case HTTP_STATUS['UNAUTHORIZED']:this['logger'][_0x48d4ee(0x162)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x423183});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS[_0x48d4ee(0x13f)]:this['logger']['error'](_0x48d4ee(0x14a),{'context':_0x423183});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x48d4ee(0x191)]:this['logger'][_0x48d4ee(0x162)]('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x423183});throw new Error(_0x48d4ee(0x150));case HTTP_STATUS[_0x48d4ee(0x13a)]:this['logger']['warn'](_0x48d4ee(0x165),{'context':_0x423183}),await this[_0x48d4ee(0x131)](_0x423183);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS[_0x48d4ee(0x172)]:case HTTP_STATUS[_0x48d4ee(0x13c)]:case HTTP_STATUS[_0x48d4ee(0x1bd)]:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x48d4ee(0x142)][_0x48d4ee(0x162)]('AI\x20service\x20unavailable',{'context':_0x423183,'status':_0x1d3df7[_0x48d4ee(0x134)]}),await this[_0x48d4ee(0x160)](_0x423183);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x48d4ee(0x142)][_0x48d4ee(0x162)](_0x48d4ee(0x152),{'context':_0x423183,'error':_0x1d3df7['message']});throw new Error('AI\x20service\x20error:\x20'+_0x1d3df7[_0x48d4ee(0x13e)]);}}[a0_0x21be3e(0x1c0)](_0x4147fd){const _0x5cd2ff=a0_0x21be3e;this[_0x5cd2ff(0x123)]=_0x4147fd,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x4147fd});}['setAgentPool'](_0x42c82b){const _0x78be0b=a0_0x21be3e;this[_0x78be0b(0x175)]=_0x42c82b,this['logger']?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x42c82b});}async['generateImage'](_0x255fe8,_0x56385f={}){const _0x5af6ca=a0_0x21be3e,_0x5ca228='img-'+Date['now']()+'-'+Math[_0x5af6ca(0x138)]()[_0x5af6ca(0x148)](0x24)[_0x5af6ca(0x198)](0x2,0x9);try{if(this[_0x5af6ca(0x133)]())throw new Error(_0x5af6ca(0x139));if(!_0x255fe8||typeof _0x255fe8!==_0x5af6ca(0x1bf)||_0x255fe8['trim']()[_0x5af6ca(0x168)]===0x0)throw new Error(_0x5af6ca(0x19b));const _0x5ef501=_0x56385f['model']||'flux-1.1-pro',_0x36e4bb=_0x56385f[_0x5af6ca(0x1bc)]||'1024x1024',_0x23fd50=_0x56385f[_0x5af6ca(0x12a)]||'standard',_0x3b4884=_0x56385f[_0x5af6ca(0x17c)]||_0x5af6ca(0x155);this[_0x5af6ca(0x142)][_0x5af6ca(0x16f)](_0x5af6ca(0x136)+_0x5ef501,{'requestId':_0x5ca228,'model':_0x5ef501,'size':_0x36e4bb,'quality':_0x23fd50,'promptLength':_0x255fe8['length']});const _0x331c88={'prompt':_0x255fe8,'model':_0x5ef501,'size':_0x36e4bb,'quality':_0x23fd50,'response_format':_0x3b4884,'n':0x1,'metadata':{'requestId':_0x5ca228,'timestamp':new Date()[_0x5af6ca(0x15b)]()}},_0x79f551=await this['_makeImageAPIRequest'](_0x331c88,_0x5ca228,{'sessionId':_0x56385f[_0x5af6ca(0x151)],'platformProvided':_0x56385f['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0x79f551[_0x5af6ca(0x144)]?.[0x0]?.[_0x5af6ca(0x155)]||null,'b64_json':_0x79f551['data']?.[0x0]?.['b64_json']||null,'model':_0x79f551['model']||_0x5ef501,'requestId':_0x5ca228,'revisedPrompt':_0x79f551[_0x5af6ca(0x144)]?.[0x0]?.[_0x5af6ca(0x11e)]||_0x255fe8};}catch(_0x56c810){this[_0x5af6ca(0x1a0)](),this[_0x5af6ca(0x142)][_0x5af6ca(0x162)](_0x5af6ca(0x159)+_0x56c810['message'],{'requestId':_0x5ca228,'model':_0x56385f['model'],'error':_0x56c810['stack']});throw _0x56c810;}}async['checkServiceHealth'](){const _0x5b087b=a0_0x21be3e;try{const _0x2677ae=await this['_makeAPIRequest'](_0x5b087b(0x18b),{},_0x5b087b(0x199));return _0x2677ae[_0x5b087b(0x134)]===_0x5b087b(0x1b2);}catch(_0x4ae156){return![];}}async['switchAgentModel'](_0x1c87a2,_0x13e6f3){const _0x22b734=a0_0x21be3e;try{if(!this['_isValidModel'](_0x13e6f3))throw new Error('Invalid\x20model:\x20'+_0x13e6f3);let _0x12c09a=this[_0x22b734(0x11f)][_0x22b734(0x17b)](_0x1c87a2);!_0x12c09a&&(_0x12c09a=new ConversationManager(_0x1c87a2,this['logger']),this['conversationManagers']['set'](_0x1c87a2,_0x12c09a));const _0xf4f851=await _0x12c09a['switchModel'](_0x13e6f3),_0x38d0af=await this['agentPool']?.['getAgent'](_0x1c87a2);return _0x38d0af&&(_0x38d0af['currentModel']=_0x13e6f3,await this['agentPool']['persistAgentState'](_0x1c87a2)),this['logger'][_0x22b734(0x16f)](_0x22b734(0x125)+_0x1c87a2,{'newModel':_0x13e6f3,'messageCount':_0xf4f851[_0x22b734(0x169)][_0x22b734(0x168)]}),{'success':!![],'agentId':_0x1c87a2,'newModel':_0x13e6f3,'conversation':_0xf4f851};}catch(_0x34b454){this['logger']['error'](_0x22b734(0x1b1)+_0x34b454[_0x22b734(0x13e)],{'agentId':_0x1c87a2,'newModel':_0x13e6f3});throw _0x34b454;}}[a0_0x21be3e(0x173)](){const _0xf1cdd=a0_0x21be3e,_0x5f21fb={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0xf1cdd(0x129)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0xf1cdd(0x1af)]]:{'provider':MODEL_PROVIDERS[_0xf1cdd(0x129)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0xf1cdd(0x1a2)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0xf1cdd(0x17d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0xf1cdd(0x17d)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0xf1cdd(0x180)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0xf1cdd(0x16d)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0xf1cdd(0x18e),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x5f21fb;}[a0_0x21be3e(0x132)](_0x166163,_0x11e730,_0x295d82){const _0xef3128=a0_0x21be3e,_0x536358=this['modelSpecs'][_0x11e730]||{'provider':_0xef3128(0x18e)};let _0x34f3e2;typeof _0x166163==='string'?_0x34f3e2=[{'role':'user','content':_0x166163}]:_0x34f3e2=_0x166163['map'](_0xdcf389=>this['_formatSingleMessage'](_0xdcf389,_0x11e730));switch(_0x536358[_0xef3128(0x176)]){case MODEL_PROVIDERS['ANTHROPIC']:return this[_0xef3128(0x126)](_0x34f3e2);case MODEL_PROVIDERS[_0xef3128(0x17d)]:return this[_0xef3128(0x177)](_0x34f3e2);case MODEL_PROVIDERS[_0xef3128(0x18e)]:return this[_0xef3128(0x124)](_0x34f3e2);default:return _0x34f3e2;}}['_formatSingleMessage'](_0x2e91aa,_0x2b388c){const _0x438c80=a0_0x21be3e;return{'role':_0x2e91aa['role']||_0x438c80(0x122),'content':_0x2e91aa[_0x438c80(0x193)],'timestamp':_0x2e91aa[_0x438c80(0x19a)]};}['_formatForAnthropic'](_0x45d070){const _0x2e128e=a0_0x21be3e;return _0x45d070[_0x2e128e(0x182)](_0x395660=>{const _0x16a1b8=_0x2e128e;if(_0x395660['role']==='system')return{'role':'user','content':_0x16a1b8(0x18d)+_0x395660['content']};return _0x395660;});}[a0_0x21be3e(0x177)](_0x51301f){return _0x51301f;}[a0_0x21be3e(0x124)](_0x386793){const _0x3b8522=a0_0x21be3e;return _0x386793['map'](_0x572e98=>({..._0x572e98,'content':typeof _0x572e98[_0x3b8522(0x193)]===_0x3b8522(0x1bf)?_0x572e98[_0x3b8522(0x193)]:JSON['stringify'](_0x572e98['content'])}));}['_isValidModel'](_0x47d190){const _0x18b705=a0_0x21be3e;this['logger']['debug'](_0x18b705(0x1a3),{'model':_0x47d190,'modelType':typeof _0x47d190});if(this[_0x18b705(0x185)][_0x47d190]!==undefined)return!![];return this['logger']['warn']('Model\x20validation\x20failed',{'model':_0x47d190,'availableModels':Object[_0x18b705(0x174)](this[_0x18b705(0x185)])}),![];}async['_checkModelHealth'](_0xe9c8b4){return!![];}async['_estimateTokens'](_0x31de6d,_0x52e6d9){const _0x40184e=a0_0x21be3e;return Math[_0x40184e(0x1a8)](_0x31de6d['length']/0x4);}async['_truncateMessage'](_0x41601a,_0x60e439){const _0x5f03da=a0_0x21be3e,_0x75f789=_0x60e439*0x4;if(_0x41601a[_0x5f03da(0x168)]<=_0x75f789)return _0x41601a;return _0x41601a[_0x5f03da(0x179)](0x0,_0x75f789-0x14)+_0x5f03da(0x161);}async['_summarizeMessages'](_0x2ce26d,_0x5cb085){const _0x3a95ef=a0_0x21be3e,_0x548ec1=_0x2ce26d['map'](_0x54e31a=>_0x54e31a[_0x3a95ef(0x19e)]+':\x20'+_0x54e31a[_0x3a95ef(0x193)])['join']('\x0a'),_0x45ca39=0x1f4;if(_0x548ec1['length']<=_0x45ca39)return _0x548ec1;return _0x548ec1[_0x3a95ef(0x179)](0x0,_0x45ca39)+_0x3a95ef(0x17a);}async['_makeAPIRequest'](_0x17b4e6,_0x37e2c6,_0x5f451d,_0x510a86={}){const _0x1ea3d5=a0_0x21be3e,_0x1b1e30=_0x1ea3d5(0x135);let _0x595b48,_0x149b06=null,_0x286569=null;this[_0x1ea3d5(0x142)]?.['info'](_0x1ea3d5(0x189),{'hasApiKeyManager':!!this[_0x1ea3d5(0x123)],'sessionId':_0x510a86[_0x1ea3d5(0x151)],'hasSessionId':!!_0x510a86[_0x1ea3d5(0x151)],'optionsKeys':Object[_0x1ea3d5(0x174)](_0x510a86),'model':_0x37e2c6['model']});if(this[_0x1ea3d5(0x123)]&&_0x510a86['sessionId']){const _0x4e7613=this['apiKeyManager']['getKeysForRequest'](_0x510a86[_0x1ea3d5(0x151)],{'platformProvided':_0x510a86[_0x1ea3d5(0x153)]||![],'vendor':this[_0x1ea3d5(0x164)](_0x37e2c6['model'])});_0x149b06=_0x4e7613[_0x1ea3d5(0x1b0)],_0x286569=_0x4e7613['vendorApiKey'],this[_0x1ea3d5(0x142)]?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x510a86[_0x1ea3d5(0x151)],'hasLoxiaKey':!!_0x149b06,'hasVendorKey':!!_0x286569,'vendor':this[_0x1ea3d5(0x164)](_0x37e2c6[_0x1ea3d5(0x15c)])});}!_0x149b06&&_0x510a86[_0x1ea3d5(0x1aa)]&&(_0x149b06=_0x510a86[_0x1ea3d5(0x1aa)]);!_0x149b06&&this['config'][_0x1ea3d5(0x1aa)]&&(_0x149b06=this['config'][_0x1ea3d5(0x1aa)]);if(!_0x149b06)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x2debe5=_0x37e2c6[_0x1ea3d5(0x15c)],_0x256930={'conversationId':_0x5f451d,'message':_0x37e2c6[_0x1ea3d5(0x169)][_0x37e2c6['messages']['length']-0x1]?.[_0x1ea3d5(0x193)]||'','messages':_0x37e2c6['messages'],'model':_0x2debe5,'requestId':_0x5f451d,'options':_0x37e2c6['options']||{},'platformProvided':_0x510a86['platformProvided']||![]};_0x37e2c6['system']&&(_0x256930[_0x1ea3d5(0x1a4)]=_0x37e2c6[_0x1ea3d5(0x137)]);_0x510a86[_0x1ea3d5(0x153)]?_0x256930['apiKey']=_0x149b06:(_0x286569&&(_0x256930['vendorApiKey']=_0x286569),_0x510a86['customApiKeys']&&(_0x256930['customApiKeys']=_0x510a86[_0x1ea3d5(0x187)]),_0x256930[_0x1ea3d5(0x1aa)]=_0x149b06);for(let _0x49b89a=0x1;_0x49b89a<=this[_0x1ea3d5(0x1b5)];_0x49b89a++){try{this['logger'][_0x1ea3d5(0x16f)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x1b1e30,'model':_0x37e2c6[_0x1ea3d5(0x15c)],'requestId':_0x5f451d,'attempt':_0x49b89a,'hasApiKey':!!_0x149b06});const _0x4b45a7=await fetch(_0x1b1e30,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x149b06,'X-Request-ID':_0x5f451d},'body':JSON['stringify'](_0x256930),'timeout':this['timeout']});if(!_0x4b45a7['ok']){const _0x5cbb32=await _0x4b45a7['text'](),_0x50f304=new Error(_0x1ea3d5(0x16b)+_0x4b45a7[_0x1ea3d5(0x134)]+':\x20'+_0x4b45a7['statusText']+(_0x5cbb32?_0x1ea3d5(0x146)+_0x5cbb32:''));_0x50f304[_0x1ea3d5(0x134)]=_0x4b45a7[_0x1ea3d5(0x134)];throw _0x50f304;}const _0x410c22=await _0x4b45a7['json']();return{'choices':[{'message':{'content':_0x410c22['content']||'','role':_0x1ea3d5(0x15d)},'finish_reason':_0x410c22[_0x1ea3d5(0x145)]||_0x1ea3d5(0x19f)}],'usage':_0x410c22['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x410c22[_0x1ea3d5(0x15c)]||_0x37e2c6['model'],'id':_0x410c22['requestId']||_0x5f451d};}catch(_0x5d3bf2){_0x595b48=_0x5d3bf2,this['logger'][_0x1ea3d5(0x1b6)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x49b89a,'requestId':_0x5f451d,'error':_0x5d3bf2['message'],'status':_0x5d3bf2['status']});if(_0x49b89a<this['retryAttempts']){const _0xc54ac5=Math['pow'](0x2,_0x49b89a)*0x3e8;this['logger'][_0x1ea3d5(0x1b6)]('Retrying\x20in\x20'+_0xc54ac5+'ms',{'attempt':_0x49b89a,'requestId':_0x5f451d}),await new Promise(_0x269245=>setTimeout(_0x269245,_0xc54ac5));}}}this['logger']['error'](_0x1ea3d5(0x1a1),{'requestId':_0x5f451d,'error':_0x595b48['message']});const _0x3636ef=_0x595b48['message']&&_0x595b48['message'][_0x1ea3d5(0x184)]('No\x20API\x20key\x20configured');if(_0x3636ef)throw new Error('API\x20Configuration\x20Error:\x20'+_0x595b48['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x595b48['message'],'role':_0x1ea3d5(0x15d)},'finish_reason':_0x1ea3d5(0x19f)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x37e2c6['model'],'id':'error-'+_0x5f451d,'error':_0x595b48[_0x1ea3d5(0x13e)]};}async['_makeImageAPIRequest'](_0x506e7d,_0x4ec5ab,_0x953017={}){const _0x59d5cc=a0_0x21be3e,_0x354f42='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x32abcb,_0x525c1a=null,_0x1b0af9=null;this[_0x59d5cc(0x142)]?.['info'](_0x59d5cc(0x181),{'hasApiKeyManager':!!this[_0x59d5cc(0x123)],'sessionId':_0x953017[_0x59d5cc(0x151)],'hasSessionId':!!_0x953017[_0x59d5cc(0x151)],'model':_0x506e7d[_0x59d5cc(0x15c)]});if(this['apiKeyManager']&&_0x953017[_0x59d5cc(0x151)]){const _0x447bd9=this['apiKeyManager']['getKeysForRequest'](_0x953017['sessionId'],{'platformProvided':_0x953017['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x506e7d[_0x59d5cc(0x15c)])});_0x525c1a=_0x447bd9[_0x59d5cc(0x1b0)],_0x1b0af9=_0x447bd9[_0x59d5cc(0x147)],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x953017['sessionId'],'hasLoxiaKey':!!_0x525c1a,'hasVendorKey':!!_0x1b0af9});}!_0x525c1a&&_0x953017[_0x59d5cc(0x1aa)]&&(_0x525c1a=_0x953017[_0x59d5cc(0x1aa)]);!_0x525c1a&&this['config']['apiKey']&&(_0x525c1a=this[_0x59d5cc(0x127)][_0x59d5cc(0x1aa)]);if(!_0x525c1a)throw new Error(_0x59d5cc(0x1ae));const _0x5dd739={'prompt':_0x506e7d[_0x59d5cc(0x14c)],'model':_0x506e7d['model']||_0x59d5cc(0x121),'size':_0x506e7d['size'],'quality':_0x506e7d[_0x59d5cc(0x12a)],'style':_0x506e7d['style']||'vivid','n':_0x506e7d['n']||0x1,'requestId':_0x4ec5ab};for(let _0x4a0cb4=0x1;_0x4a0cb4<=this['retryAttempts'];_0x4a0cb4++){try{this[_0x59d5cc(0x142)]['info'](_0x59d5cc(0x1a7),{'url':_0x354f42,'model':_0x506e7d['model'],'requestId':_0x4ec5ab,'attempt':_0x4a0cb4,'hasApiKey':!!_0x525c1a});const _0x4e2968=await fetch(_0x354f42,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x525c1a,'X-Request-ID':_0x4ec5ab},'body':JSON['stringify'](_0x5dd739),'timeout':this['timeout']*0x2});if(!_0x4e2968['ok']){const _0x467978=await _0x4e2968[_0x59d5cc(0x149)](),_0x21f824=new Error(_0x59d5cc(0x16b)+_0x4e2968[_0x59d5cc(0x134)]+':\x20'+_0x4e2968['statusText']+(_0x467978?_0x59d5cc(0x146)+_0x467978:''));_0x21f824[_0x59d5cc(0x134)]=_0x4e2968['status'];throw _0x21f824;}const _0x26b43a=await _0x4e2968[_0x59d5cc(0x1b9)]();return{'data':_0x26b43a[_0x59d5cc(0x1ac)]||[],'model':_0x26b43a[_0x59d5cc(0x15c)]||_0x506e7d['model'],'created':_0x26b43a['created']||Date[_0x59d5cc(0x194)](),'usage':_0x26b43a[_0x59d5cc(0x12d)]};}catch(_0x190eca){_0x32abcb=_0x190eca,this['logger']['warn']('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x4a0cb4,'requestId':_0x4ec5ab,'error':_0x190eca['message'],'status':_0x190eca['status']});if(_0x4a0cb4<this[_0x59d5cc(0x1b5)]){const _0x39b4da=Math[_0x59d5cc(0x12e)](0x2,_0x4a0cb4)*0x3e8;this['logger'][_0x59d5cc(0x1b6)]('Retrying\x20in\x20'+_0x39b4da+'ms',{'attempt':_0x4a0cb4,'requestId':_0x4ec5ab}),await new Promise(_0xf7333=>setTimeout(_0xf7333,_0x39b4da));}}}this[_0x59d5cc(0x142)]['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x4ec5ab,'error':_0x32abcb['message']});throw new Error(_0x59d5cc(0x159)+_0x32abcb['message']);}async['_checkRateLimit'](_0x1a6b92){await new Promise(_0x2f7e81=>setTimeout(_0x2f7e81,0x64));}async[a0_0x21be3e(0x131)](_0x4a568e){const _0x12ba8e=a0_0x21be3e,_0x128340=0xea60;this['logger'][_0x12ba8e(0x16f)](_0x12ba8e(0x1b3)+_0x128340+'ms',_0x4a568e),await new Promise(_0x567115=>setTimeout(_0x567115,_0x128340));}async['_handleServiceUnavailable'](_0x4a0178){const _0x44f241=a0_0x21be3e;this['_recordFailure']();const _0x50f237=0x7530;this['logger']['info'](_0x44f241(0x1a9)+_0x50f237+'ms',_0x4a0178),await new Promise(_0x5219a9=>setTimeout(_0x5219a9,_0x50f237));}[a0_0x21be3e(0x133)](){const _0xa5f0e2=a0_0x21be3e;if(!this['circuitBreaker'][_0xa5f0e2(0x166)])return![];const _0x3eff99=Date[_0xa5f0e2(0x194)]()-this['circuitBreaker']['lastFailureTime'];if(_0x3eff99>this[_0xa5f0e2(0x120)]['timeout'])return this['circuitBreaker'][_0xa5f0e2(0x166)]=![],this['circuitBreaker'][_0xa5f0e2(0x15a)]=0x0,![];return!![];}['_recordFailure'](){const _0x435daa=a0_0x21be3e;this[_0x435daa(0x120)][_0x435daa(0x15a)]++,this['circuitBreaker']['lastFailureTime']=Date[_0x435daa(0x194)](),this[_0x435daa(0x120)][_0x435daa(0x15a)]>=this[_0x435daa(0x120)][_0x435daa(0x170)]&&(this['circuitBreaker']['isOpen']=!![],this['logger'][_0x435daa(0x1b6)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x21be3e(0x12b)](){const _0x4d4d86=a0_0x21be3e;this[_0x4d4d86(0x120)][_0x4d4d86(0x15a)]>0x0&&(this[_0x4d4d86(0x120)][_0x4d4d86(0x15a)]=0x0,this[_0x4d4d86(0x120)]['isOpen']=![],this['logger']['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x51e6ad){const _0x54f348=a0_0x21be3e;if(!_0x51e6ad)return null;const _0x23ed69=_0x51e6ad['toLowerCase']();if(_0x23ed69['includes']('anthropic')||_0x23ed69['includes'](_0x54f348(0x18f)))return'anthropic';else{if(_0x23ed69[_0x54f348(0x184)]('openai')||_0x23ed69['includes']('gpt'))return _0x54f348(0x183);else{if(_0x23ed69[_0x54f348(0x184)](_0x54f348(0x13d)))return _0x54f348(0x13d);else{if(_0x23ed69[_0x54f348(0x184)]('phi'))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x4b6524,_0x162a55){const _0x293dde=a0_0x21be3e;this[_0x293dde(0x16c)]=_0x4b6524,this['logger']=_0x162a55,this[_0x293dde(0x167)]=new Map();}async[a0_0x21be3e(0x197)](_0x2584d8){const _0x49b06c=a0_0x21be3e;return{'messages':[],'model':_0x2584d8,'lastUpdated':new Date()[_0x49b06c(0x15b)]()};}}export default AIService;
1
+ const a0_0x353b80=a0_0x36f7;(function(_0x3aa805,_0x26dbc){const _0x475af6=a0_0x36f7,_0x25cfc0=_0x3aa805();while(!![]){try{const _0x2128ad=-parseInt(_0x475af6(0x1e6))/0x1*(-parseInt(_0x475af6(0x1d8))/0x2)+parseInt(_0x475af6(0x23b))/0x3+parseInt(_0x475af6(0x206))/0x4+-parseInt(_0x475af6(0x22f))/0x5+parseInt(_0x475af6(0x1ef))/0x6*(-parseInt(_0x475af6(0x252))/0x7)+parseInt(_0x475af6(0x214))/0x8*(parseInt(_0x475af6(0x1d6))/0x9)+-parseInt(_0x475af6(0x26b))/0xa;if(_0x2128ad===_0x26dbc)break;else _0x25cfc0['push'](_0x25cfc0['shift']());}catch(_0x31271e){_0x25cfc0['push'](_0x25cfc0['shift']());}}}(a0_0x35b5,0x9733f));function a0_0x36f7(_0x3ac1dd,_0x49b9fc){_0x3ac1dd=_0x3ac1dd-0x1cf;const _0x35b5ba=a0_0x35b5();let _0x36f773=_0x35b5ba[_0x3ac1dd];if(a0_0x36f7['VUNOQu']===undefined){var _0x2ea2b3=function(_0x4eb66e){const _0x35e721='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x47f60f='',_0x2d8016='';for(let _0x17233d=0x0,_0x5878ed,_0x3f92eb,_0x4c7498=0x0;_0x3f92eb=_0x4eb66e['charAt'](_0x4c7498++);~_0x3f92eb&&(_0x5878ed=_0x17233d%0x4?_0x5878ed*0x40+_0x3f92eb:_0x3f92eb,_0x17233d++%0x4)?_0x47f60f+=String['fromCharCode'](0xff&_0x5878ed>>(-0x2*_0x17233d&0x6)):0x0){_0x3f92eb=_0x35e721['indexOf'](_0x3f92eb);}for(let _0x49d02c=0x0,_0x53dd7e=_0x47f60f['length'];_0x49d02c<_0x53dd7e;_0x49d02c++){_0x2d8016+='%'+('00'+_0x47f60f['charCodeAt'](_0x49d02c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d8016);};a0_0x36f7['YmnZMw']=_0x2ea2b3,a0_0x36f7['WTRLkj']={},a0_0x36f7['VUNOQu']=!![];}const _0x3ab003=_0x35b5ba[0x0],_0x23f407=_0x3ac1dd+_0x3ab003,_0x7b8bb5=a0_0x36f7['WTRLkj'][_0x23f407];return!_0x7b8bb5?(_0x36f773=a0_0x36f7['YmnZMw'](_0x36f773),a0_0x36f7['WTRLkj'][_0x23f407]=_0x36f773):_0x36f773=_0x7b8bb5,_0x36f773;}function a0_0x35b5(){const _0x3a66b0=['y29UDMvYC2f0Aw9UtwfUywDLCNm','x2HHBMrSzvjHDgvmAw1PDa','y29UDMvYC2f0Aw9UCW','yxbPs2v5','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','u3LZDgvToIa','C3rVCa','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','yMfJA2vUza','C3vIC3rY','yJy0x2PZB24','zxn0Aw1HDgvKvg9Rzw5Z','x3jLy29YzezHAwX1CMu','x2DLDfzLBMrVCKzYB21nB2rLBa','zgvIDwC','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','mta3oteYmdbWwLDRq0K','DhjHy2TvC2fNzq','z2v0s2v5C0zVCLjLCxvLC3q','x21HA2vbueLszxf1zxn0','C3rHBMrHCMq','y2XHDwrL','ChjLzMvYCMvKtw9KzwW','zMfZDa','y2XHC3nPzNLfCNjVCG','zMfPBhvYzxm','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','zxjYB3i','qu5usfjpueLdx09qvvm','BwvZC2fNzxm','z3b0','ueHj','Aw5MBW','Bw9KzwXtCgvJCW','CMvXDwvZDff1zxvL','BM93','qKfex1jfuvvfu1q','nta3mtu5AM51BgLq','x2zVCM1HDezVCKfUDgHYB3bPyW','nerervbIvG','BgfZDezHAwX1CMvuAw1L','C2v0qwDLBNrqB29S','ywDLBNrqB29S','qvPvuKu','CMfUzg9T','C3bLzwq','DxjS','Bw9KzwW','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','BwfW','x3rYDw5JyxrLtwvZC2fNzq','qMvHCMvYia','Aw1Hz2vZ','mtiWmtu0AKjOqMzK','B3b0Aw9UCW','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','yxP1CMuTB3bLBMfPlwrHBgXLmW','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','y29UDgv4DfDPBMrVDW','zMLUAxnOx3jLyxnVBG','C2vUze1LC3nHz2u','DMvUzg9YqxbPs2v5','mJmWnZeYsgniBLPf','Cg93','D2fYBG','uMv0CNLPBMCGAw4G','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3DPDgnOtw9KzwW','DxnHz2u','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','y29Kzq','C3r5Bgu','x2nOzwnRtw9KzwXizwfSDgG','x2zVCM1HDezVCK9Wzw5bsq','BwvZC2fNzq','z2vUzxjHDgvjBwfNzq','C2L6zq','Dg9vChbLCKnHC2u','y3vYCMvUDe1VzgvS','AgfUzgXLshr0CevYCM9Y','C3rHy2S','y29UDgvUDa','Aw1Nlq','Bg9Nz2vY','qu5usfjpueLdx1nptK5fva','ndq0mtK5nKTjuwzoBG','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C3LZDgvT','C3vTBwfYEq','yxbPs2v5twfUywDLCG','DgHYzxnOB2XK','uMf0zsbSAw1PDcbLEgnLzwrLza','B3bLBMfP','vw5RBM93BIbTB2rLBdOG','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','CMvZCg9UC2vgB3jTyxq','C3vIC3rYAw5N','z2v0qwDLBNq','C2vZC2LVBKLK','mtuYy09hDNjp','x2vZDgLTyxrLvg9Rzw5Z','CgHP','C3rYzwfT','Dgv4Da','vu5bvvrit1jjwKve','x3jLC2v0q2LYy3vPDejYzwfRzxi','rKfmtejbq0S','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','Bg94AwfbCgLlzxK','ANnVBG','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C3LZDgvTuhjVBxb0','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','tM8GqvbjigTLEsbJB25MAwD1CMvK','ChjVBxb0x3rVA2vUCW','qu5usfjpueLdx0HbsuTv','t1bftKfj','AgvHBhrOEq','CM9Szq','l2nOyxqVy29TCgXLDgLVBNm','CMv2AxnLzf9WCM9TChq','y2HVAwnLCW','DxnLCG','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','CgXHDgzVCM1qCM92AwrLza','mZK0nZCYmezpuLnjvq','DML2Awq','su5urvjoquXFu0vsvKvsx0vsuK9s','Dw5ZAgLMDa','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','ywDLBNrjza','mtaYnhGXmdi0','y29UzMLN','Aw5JBhvKzxm','DhjPBq','zgf0yq','CxvHBgL0Eq','mZqYotuXm2vJtvfPtG','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','CMv0CNLbDhrLBxb0CW','yNvKz2v0u2vYDMLJzq','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','x2LZvMfSAwrnB2rLBa','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','x2nOzwnRuMf0zuXPBwL0','C2v0qxbPs2v5twfUywDLCG','AxnpCgvU','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','Ahr0Chm6lY9HCgKUBg94AweUywK','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','yMfZzvvYBa','C3rHDhvZ','y2LYy3vPDejYzwfRzxi','BgvUz3rO','Bwf4vg9Rzw5Z','DgLTzw91Da','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','mtK2y2zry1vw','DgLTzxn0yw1W','qu5usfjpueLd','ve9px01btLLFuKvrvuvtvfm','tK9ux0zpvu5e','CgvYC2LZDefNzw50u3rHDgu','x2zVCM1HDezVCKf6DxjL','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq'];a0_0x35b5=function(){return _0x3a66b0;};return a0_0x35b5();}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x47f60f,_0x2d8016,_0x17233d,_0x5878ed){const _0x46fb17=a0_0x36f7;this['config']=_0x47f60f,this['logger']=_0x2d8016,this['budgetService']=_0x17233d,this['errorHandler']=_0x5878ed,this[_0x46fb17(0x24b)]=_0x47f60f[_0x46fb17(0x263)]?.['baseUrl']||_0x46fb17(0x248),this[_0x46fb17(0x250)]=_0x47f60f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x47f60f['backend']?.[_0x46fb17(0x23e)]||0x3,this['rateLimiters']=new Map(),this[_0x46fb17(0x1d3)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x46fb17(0x233)](),this[_0x46fb17(0x25a)]=new Map(),this[_0x46fb17(0x20a)]=null,this[_0x46fb17(0x1db)]=null;}async[a0_0x353b80(0x1ed)](_0x3f92eb,_0x4c7498,_0x49d02c={}){const _0x34fe76=a0_0x353b80,_0x53dd7e='req-'+Date['now']()+'-'+Math[_0x34fe76(0x1dd)]()['toString'](0x24)[_0x34fe76(0x264)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x34fe76(0x222));await this['_checkRateLimit'](_0x3f92eb);const _0x5e717a=this[_0x34fe76(0x26a)](_0x4c7498,_0x3f92eb,_0x49d02c),_0x2b8ae1={'model':_0x3f92eb,'messages':_0x5e717a,'options':{'max_tokens':this['modelSpecs'][_0x3f92eb]?.[_0x34fe76(0x24f)]||0xfa0,'temperature':_0x49d02c['temperature']||0.7,'stream':_0x49d02c[_0x34fe76(0x217)]||![]},'metadata':{'requestId':_0x53dd7e,'agentId':_0x49d02c['agentId'],'timestamp':new Date()['toISOString']()}};_0x49d02c['systemPrompt']&&(_0x2b8ae1[_0x34fe76(0x208)]=_0x49d02c['systemPrompt']);this[_0x34fe76(0x204)]['info']('Sending\x20message\x20to\x20model:\x20'+_0x3f92eb,{'requestId':_0x53dd7e,'agentId':_0x49d02c[_0x34fe76(0x234)],'messageCount':Array['isArray'](_0x4c7498)?_0x4c7498[_0x34fe76(0x24e)]:0x1,'maxTokens':_0x2b8ae1['max_tokens']});const _0x524f43=await this['_makeAPIRequest'](_0x34fe76(0x229),_0x2b8ae1,_0x53dd7e,{..._0x49d02c,'sessionId':_0x49d02c[_0x34fe76(0x213)],'platformProvided':_0x49d02c[_0x34fe76(0x22e)]||![]});return _0x524f43[_0x34fe76(0x1f5)]&&await this[_0x34fe76(0x26c)](_0x49d02c[_0x34fe76(0x234)],_0x3f92eb,{'prompt_tokens':_0x524f43[_0x34fe76(0x1f5)][_0x34fe76(0x224)]||0x0,'completion_tokens':_0x524f43[_0x34fe76(0x1f5)]['completion_tokens']||0x0,'total_tokens':_0x524f43['usage']['total_tokens']||0x0}),this[_0x34fe76(0x21a)](),{'content':_0x524f43[_0x34fe76(0x22b)][0x0]?.['message']?.['content']||'','model':_0x524f43['model'],'tokenUsage':_0x524f43['usage'],'requestId':_0x53dd7e,'finishReason':_0x524f43[_0x34fe76(0x22b)][0x0]?.[_0x34fe76(0x1ec)]};}catch(_0x33c570){this[_0x34fe76(0x267)](),this['logger']['error']('AI\x20service\x20request\x20failed:\x20'+_0x33c570['message'],{'requestId':_0x53dd7e,'model':_0x3f92eb,'agentId':_0x49d02c[_0x34fe76(0x234)],'error':_0x33c570['stack']}),await this[_0x34fe76(0x200)](_0x33c570,{'requestId':_0x53dd7e,'model':_0x3f92eb,'agentId':_0x49d02c['agentId']});throw _0x33c570;}}async['routeModel'](_0x31101c,_0x3a76d7={}){const _0x3891fc=a0_0x353b80;try{const _0x105131=MODEL_ROUTING[_0x31101c[_0x3891fc(0x1fe)]()]||MODEL_ROUTING['FALLBACK'],_0x58cc1f=[];for(const _0x49df08 of _0x105131){const _0x1a3dab=await this['_checkModelHealth'](_0x49df08);_0x1a3dab&&_0x58cc1f['push'](_0x49df08);}if(_0x58cc1f[_0x3891fc(0x24e)]===0x0)return this[_0x3891fc(0x204)]['warn'](_0x3891fc(0x21f)+_0x31101c+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x32eec0=_0x58cc1f[0x0];if(_0x3a76d7[_0x3891fc(0x271)]&&_0x58cc1f[_0x3891fc(0x237)](_0x3a76d7['preferredModel']))_0x32eec0=_0x3a76d7[_0x3891fc(0x271)];else{if(_0x3a76d7['complexity']==='high'&&_0x58cc1f['includes'](MODELS['ANTHROPIC_OPUS']))_0x32eec0=MODELS[_0x3891fc(0x277)];else _0x3a76d7[_0x3891fc(0x1de)]===_0x3891fc(0x272)&&_0x58cc1f[_0x3891fc(0x237)](MODELS[_0x3891fc(0x225)])&&(_0x32eec0=MODELS[_0x3891fc(0x225)]);}return this[_0x3891fc(0x204)][_0x3891fc(0x1d1)](_0x3891fc(0x25f)+_0x31101c,{'selectedModel':_0x32eec0,'availableModels':_0x58cc1f[_0x3891fc(0x24e)],'context':_0x3a76d7}),_0x32eec0;}catch(_0x47246a){return this[_0x3891fc(0x204)][_0x3891fc(0x276)](_0x3891fc(0x22d)+_0x47246a[_0x3891fc(0x1fb)],{'task':_0x31101c,'context':_0x3a76d7}),MODEL_ROUTING[_0x3891fc(0x21b)][0x0];}}async['compactizeConversation'](_0x296c34,_0x561fbe){const _0xe4f006=a0_0x353b80,_0x576aa4=this[_0xe4f006(0x1d2)][_0x561fbe];if(!_0x576aa4)throw new Error(_0xe4f006(0x20e)+_0x561fbe);const _0x4809fb=_0x576aa4[_0xe4f006(0x1eb)]*0.8;let _0x48223c=0x0;const _0x574be9=[],_0x100847=await Promise['all'](_0x296c34['map'](async _0x4c741e=>({..._0x4c741e,'estimatedTokens':await this[_0xe4f006(0x215)](_0x4c741e['content'],_0x561fbe)}))),_0xe65e7=[..._0x100847]['reverse']();for(const _0x12beff of _0xe65e7){if(_0x48223c+_0x12beff[_0xe4f006(0x266)]>_0x4809fb){if(_0x574be9['length']===0x0){const _0x1097d5=await this['_truncateMessage'](_0x12beff['content'],_0x4809fb);_0x574be9[_0xe4f006(0x232)]({..._0x12beff,'content':_0x1097d5,'estimatedTokens':_0x4809fb});}break;}_0x574be9[_0xe4f006(0x232)](_0x12beff),_0x48223c+=_0x12beff['estimatedTokens'];}const _0x1aa24d=_0x100847['slice'](0x0,-_0x574be9['length']);if(_0x1aa24d['length']>0x0){const _0x2693ec=await this['_summarizeMessages'](_0x1aa24d,_0x561fbe);_0x574be9[_0xe4f006(0x232)]({'role':_0xe4f006(0x208),'content':_0xe4f006(0x1e1)+_0x2693ec,'timestamp':_0x1aa24d[0x0]['timestamp'],'type':_0xe4f006(0x209),'estimatedTokens':await this['_estimateTokens'](_0x2693ec,_0x561fbe)});}return this[_0xe4f006(0x204)]['info'](_0xe4f006(0x24a)+_0x561fbe,{'originalMessages':_0x296c34[_0xe4f006(0x24e)],'compactizedMessages':_0x574be9[_0xe4f006(0x24e)],'estimatedTokens':_0x48223c,'maxTokens':_0x4809fb}),_0x574be9;}async['trackUsage'](_0x1d1079,_0x1f8c47,_0x2da714,_0x393ae2){const _0x1722c6=a0_0x353b80;try{this[_0x1722c6(0x23f)]&&this['budgetService'][_0x1722c6(0x26c)](_0x1d1079,_0x1f8c47,_0x2da714);}catch(_0x579a4d){this['logger'][_0x1722c6(0x276)](_0x1722c6(0x275)+_0x579a4d[_0x1722c6(0x1fb)]);}}async['handleHttpError'](_0x5e8f91,_0x2c4f5a){const _0x2adfb0=a0_0x353b80,_0x15de26=this['errorHandler']?.[_0x2adfb0(0x273)]?.(_0x5e8f91,_0x2c4f5a);switch(_0x5e8f91['status']||_0x5e8f91[_0x2adfb0(0x1f7)]){case HTTP_STATUS[_0x2adfb0(0x1d5)]:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x242),{'context':_0x2c4f5a,'error':_0x5e8f91[_0x2adfb0(0x1fb)]});throw new Error('Invalid\x20request:\x20'+_0x5e8f91[_0x2adfb0(0x1fb)]);case HTTP_STATUS[_0x2adfb0(0x219)]:this['logger'][_0x2adfb0(0x276)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2c4f5a});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x2adfb0(0x204)][_0x2adfb0(0x276)]('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x2c4f5a});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x2adfb0(0x256)]:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x240),{'context':_0x2c4f5a});throw new Error(_0x2adfb0(0x1f3));case HTTP_STATUS[_0x2adfb0(0x255)]:this[_0x2adfb0(0x204)]['warn'](_0x2adfb0(0x20c),{'context':_0x2c4f5a}),await this[_0x2adfb0(0x25b)](_0x2c4f5a);throw new Error(_0x2adfb0(0x262));case HTTP_STATUS[_0x2adfb0(0x231)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x25e),{'context':_0x2c4f5a,'status':_0x5e8f91['status']}),await this['_handleServiceUnavailable'](_0x2c4f5a);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x2c4f5a,'error':_0x5e8f91[_0x2adfb0(0x1fb)]});throw new Error('AI\x20service\x20error:\x20'+_0x5e8f91[_0x2adfb0(0x1fb)]);}}[a0_0x353b80(0x245)](_0x1752bc){const _0x4f2c8d=a0_0x353b80;this['apiKeyManager']=_0x1752bc,this[_0x4f2c8d(0x204)]?.['info'](_0x4f2c8d(0x259),{'hasManager':!!_0x1752bc});}[a0_0x353b80(0x1da)](_0x3dbfad){const _0x15abd9=a0_0x353b80;this[_0x15abd9(0x1db)]=_0x3dbfad,this[_0x15abd9(0x204)]?.[_0x15abd9(0x1d1)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3dbfad});}async[a0_0x353b80(0x1fc)](_0x30e336,_0x1319e4={}){const _0x3c945f=a0_0x353b80,_0xdba4d2=_0x3c945f(0x203)+Date[_0x3c945f(0x1d4)]()+'-'+Math['random']()['toString'](0x24)[_0x3c945f(0x264)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x30e336||typeof _0x30e336!=='string'||_0x30e336[_0x3c945f(0x238)]()[_0x3c945f(0x24e)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x9d75b9=_0x1319e4[_0x3c945f(0x1e0)]||'flux-1.1-pro',_0x444afe=_0x1319e4[_0x3c945f(0x1fd)]||_0x3c945f(0x235),_0x52927e=_0x1319e4['quality']||_0x3c945f(0x26f),_0x257b07=_0x1319e4[_0x3c945f(0x210)]||_0x3c945f(0x1df);this['logger'][_0x3c945f(0x1d1)](_0x3c945f(0x20f)+_0x9d75b9,{'requestId':_0xdba4d2,'model':_0x9d75b9,'size':_0x444afe,'quality':_0x52927e,'promptLength':_0x30e336[_0x3c945f(0x24e)]});const _0x2911f9={'prompt':_0x30e336,'model':_0x9d75b9,'size':_0x444afe,'quality':_0x52927e,'response_format':_0x257b07,'n':0x1,'metadata':{'requestId':_0xdba4d2,'timestamp':new Date()['toISOString']()}},_0x30c8f9=await this['_makeImageAPIRequest'](_0x2911f9,_0xdba4d2,{'sessionId':_0x1319e4[_0x3c945f(0x213)],'platformProvided':_0x1319e4[_0x3c945f(0x22e)]||![]});return this[_0x3c945f(0x21a)](),{'url':_0x30c8f9[_0x3c945f(0x239)]?.[0x0]?.['url']||null,'b64_json':_0x30c8f9['data']?.[0x0]?.[_0x3c945f(0x265)]||null,'model':_0x30c8f9[_0x3c945f(0x1e0)]||_0x9d75b9,'requestId':_0xdba4d2,'revisedPrompt':_0x30c8f9[_0x3c945f(0x239)]?.[0x0]?.[_0x3c945f(0x22a)]||_0x30e336};}catch(_0x4ab399){this['_recordFailure'](),this[_0x3c945f(0x204)][_0x3c945f(0x276)]('Image\x20generation\x20failed:\x20'+_0x4ab399['message'],{'requestId':_0xdba4d2,'model':_0x1319e4[_0x3c945f(0x1e0)],'error':_0x4ab399[_0x3c945f(0x201)]});throw _0x4ab399;}}async['checkServiceHealth'](){const _0x5ed53d=a0_0x353b80;try{const _0x4c639c=await this['_makeAPIRequest']('/health',{},'health-check');return _0x4c639c['status']===_0x5ed53d(0x227);}catch(_0x1fdee5){return![];}}async['switchAgentModel'](_0x7e5ef3,_0x34b2e5){const _0x557467=a0_0x353b80;try{if(!this[_0x557467(0x241)](_0x34b2e5))throw new Error('Invalid\x20model:\x20'+_0x34b2e5);let _0x284de7=this[_0x557467(0x25a)]['get'](_0x7e5ef3);!_0x284de7&&(_0x284de7=new ConversationManager(_0x7e5ef3,this[_0x557467(0x204)]),this[_0x557467(0x25a)]['set'](_0x7e5ef3,_0x284de7));const _0x566158=await _0x284de7[_0x557467(0x1f4)](_0x34b2e5),_0x23a6aa=await this[_0x557467(0x1db)]?.[_0x557467(0x212)](_0x7e5ef3);return _0x23a6aa&&(_0x23a6aa[_0x557467(0x1ff)]=_0x34b2e5,await this[_0x557467(0x1db)][_0x557467(0x257)](_0x7e5ef3)),this['logger']['info'](_0x557467(0x251)+_0x7e5ef3,{'newModel':_0x34b2e5,'messageCount':_0x566158['messages'][_0x557467(0x24e)]}),{'success':!![],'agentId':_0x7e5ef3,'newModel':_0x34b2e5,'conversation':_0x566158};}catch(_0xc4c4e9){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0xc4c4e9['message'],{'agentId':_0x7e5ef3,'newModel':_0x34b2e5});throw _0xc4c4e9;}}[a0_0x353b80(0x233)](){const _0x251b70=a0_0x353b80,_0x46a84d={[MODELS[_0x251b70(0x205)]]:{'provider':MODEL_PROVIDERS[_0x251b70(0x254)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x251b70(0x277)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x251b70(0x225)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x251b70(0x1d0)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x251b70(0x1dc),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x46a84d;}[a0_0x353b80(0x26a)](_0x5756b7,_0x349122,_0x38de0d){const _0x5dc4bf=a0_0x353b80,_0x507bc0=this['modelSpecs'][_0x349122]||{'provider':'AZURE'};let _0x11a95e;typeof _0x5756b7==='string'?_0x11a95e=[{'role':_0x5dc4bf(0x22c),'content':_0x5756b7}]:_0x11a95e=_0x5756b7[_0x5dc4bf(0x1e2)](_0x2c54ec=>this[_0x5dc4bf(0x243)](_0x2c54ec,_0x349122));switch(_0x507bc0['provider']){case MODEL_PROVIDERS[_0x5dc4bf(0x254)]:return this['_formatForAnthropic'](_0x11a95e);case MODEL_PROVIDERS['OPENAI']:return this['_formatForOpenAI'](_0x11a95e);case MODEL_PROVIDERS[_0x5dc4bf(0x1dc)]:return this[_0x5dc4bf(0x258)](_0x11a95e);default:return _0x11a95e;}}[a0_0x353b80(0x243)](_0x3df56a,_0x170878){const _0x2b6e9f=a0_0x353b80;return{'role':_0x3df56a[_0x2b6e9f(0x228)]||_0x2b6e9f(0x22c),'content':_0x3df56a[_0x2b6e9f(0x202)],'timestamp':_0x3df56a[_0x2b6e9f(0x253)]};}[a0_0x353b80(0x1d7)](_0x5dcde0){return _0x5dcde0['map'](_0x313113=>{const _0x532126=a0_0x36f7;if(_0x313113['role']==='system')return{'role':'user','content':_0x532126(0x260)+_0x313113['content']};return _0x313113;});}[a0_0x353b80(0x1fa)](_0x595239){return _0x595239;}['_formatForAzure'](_0x58306c){const _0x3958b4=a0_0x353b80;return _0x58306c['map'](_0xd38ed0=>({..._0xd38ed0,'content':typeof _0xd38ed0[_0x3958b4(0x202)]==='string'?_0xd38ed0['content']:JSON['stringify'](_0xd38ed0[_0x3958b4(0x202)])}));}[a0_0x353b80(0x241)](_0x1e49b6){const _0x12bbba=a0_0x353b80;this['logger'][_0x12bbba(0x269)]('Validating\x20model',{'model':_0x1e49b6,'modelType':typeof _0x1e49b6});if(this['modelSpecs'][_0x1e49b6]!==undefined)return!![];return this[_0x12bbba(0x204)][_0x12bbba(0x1f1)](_0x12bbba(0x249),{'model':_0x1e49b6,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async[a0_0x353b80(0x1f9)](_0x2fba96){return!![];}async['_estimateTokens'](_0xb6615b,_0x5593ac){const _0x5c5f88=a0_0x353b80;return Math['ceil'](_0xb6615b[_0x5c5f88(0x24e)]/0x4);}async[a0_0x353b80(0x1e3)](_0x1f1905,_0x46605b){const _0x48ae79=a0_0x353b80,_0x53096b=_0x46605b*0x4;if(_0x1f1905[_0x48ae79(0x24e)]<=_0x53096b)return _0x1f1905;return _0x1f1905[_0x48ae79(0x211)](0x0,_0x53096b-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x193dc5,_0x542e6d){const _0x617245=a0_0x353b80,_0x72aa1d=_0x193dc5['map'](_0x4e852e=>_0x4e852e[_0x617245(0x228)]+':\x20'+_0x4e852e['content'])['join']('\x0a'),_0x16ac19=0x1f4;if(_0x72aa1d['length']<=_0x16ac19)return _0x72aa1d;return _0x72aa1d[_0x617245(0x211)](0x0,_0x16ac19)+_0x617245(0x21c);}async[a0_0x353b80(0x26e)](_0x20679c,_0x4ec65a,_0x118463,_0x183bca={}){const _0x2276c2=a0_0x353b80,_0x1b7f7a=_0x2276c2(0x23d);let _0x660736,_0x49772a=null,_0x5bde4e=null;this['logger']?.['info']('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x2276c2(0x20a)],'sessionId':_0x183bca['sessionId'],'hasSessionId':!!_0x183bca['sessionId'],'optionsKeys':Object['keys'](_0x183bca),'model':_0x4ec65a['model']});if(this['apiKeyManager']&&_0x183bca['sessionId']){const _0x49f0ef=this[_0x2276c2(0x20a)][_0x2276c2(0x26d)](_0x183bca[_0x2276c2(0x213)],{'platformProvided':_0x183bca[_0x2276c2(0x22e)]||![],'vendor':this['_getVendorFromModel'](_0x4ec65a['model'])});_0x49772a=_0x49f0ef[_0x2276c2(0x21d)],_0x5bde4e=_0x49f0ef[_0x2276c2(0x1ee)],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x183bca[_0x2276c2(0x213)],'hasLoxiaKey':!!_0x49772a,'hasVendorKey':!!_0x5bde4e,'vendor':this[_0x2276c2(0x268)](_0x4ec65a[_0x2276c2(0x1e0)])});}!_0x49772a&&_0x183bca[_0x2276c2(0x25d)]&&(_0x49772a=_0x183bca[_0x2276c2(0x25d)]);!_0x49772a&&this[_0x2276c2(0x236)]['apiKey']&&(_0x49772a=this['config'][_0x2276c2(0x25d)]);if(!_0x49772a)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x5bb7fd=_0x4ec65a['model'],_0x3920ec={'conversationId':_0x118463,'message':_0x4ec65a['messages'][_0x4ec65a[_0x2276c2(0x278)]['length']-0x1]?.[_0x2276c2(0x202)]||'','messages':_0x4ec65a['messages'],'model':_0x5bb7fd,'requestId':_0x118463,'options':_0x4ec65a[_0x2276c2(0x1e7)]||{},'platformProvided':_0x183bca['platformProvided']||![]};_0x4ec65a['system']&&(_0x3920ec[_0x2276c2(0x221)]=_0x4ec65a[_0x2276c2(0x208)]);_0x183bca['platformProvided']?_0x3920ec['apiKey']=_0x49772a:(_0x5bde4e&&(_0x3920ec['vendorApiKey']=_0x5bde4e),_0x183bca['customApiKeys']&&(_0x3920ec['customApiKeys']=_0x183bca['customApiKeys']),_0x3920ec['apiKey']=_0x49772a);for(let _0x3c04cd=0x1;_0x3c04cd<=this['retryAttempts'];_0x3c04cd++){try{this['logger'][_0x2276c2(0x1d1)](_0x2276c2(0x1e8),{'url':_0x1b7f7a,'model':_0x4ec65a[_0x2276c2(0x1e0)],'requestId':_0x118463,'attempt':_0x3c04cd,'hasApiKey':!!_0x49772a});const _0x5ddc48=await fetch(_0x1b7f7a,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x2276c2(0x1e4)+_0x49772a,'X-Request-ID':_0x118463},'body':JSON['stringify'](_0x3920ec),'timeout':this['timeout']});if(!_0x5ddc48['ok']){const _0xa4a923=await _0x5ddc48[_0x2276c2(0x218)](),_0x455f8c=new Error('HTTP\x20'+_0x5ddc48[_0x2276c2(0x24c)]+':\x20'+_0x5ddc48['statusText']+(_0xa4a923?'\x20-\x20'+_0xa4a923:''));_0x455f8c[_0x2276c2(0x24c)]=_0x5ddc48[_0x2276c2(0x24c)];throw _0x455f8c;}const _0x27327d=await _0x5ddc48[_0x2276c2(0x21e)]();return{'choices':[{'message':{'content':_0x27327d['content']||'','role':'assistant'},'finish_reason':_0x27327d['finishReason']||_0x2276c2(0x261)}],'usage':_0x27327d['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x27327d['model']||_0x4ec65a[_0x2276c2(0x1e0)],'id':_0x27327d['requestId']||_0x118463};}catch(_0xe45d12){_0x660736=_0xe45d12,this['logger']['warn'](_0x2276c2(0x207),{'attempt':_0x3c04cd,'requestId':_0x118463,'error':_0xe45d12['message'],'status':_0xe45d12['status']});if(_0x3c04cd<this['retryAttempts']){const _0x2b8aa2=Math[_0x2276c2(0x1f0)](0x2,_0x3c04cd)*0x3e8;this[_0x2276c2(0x204)]['warn']('Retrying\x20in\x20'+_0x2b8aa2+'ms',{'attempt':_0x3c04cd,'requestId':_0x118463}),await new Promise(_0x71a536=>setTimeout(_0x71a536,_0x2b8aa2));}}}this['logger']['error'](_0x2276c2(0x23c),{'requestId':_0x118463,'error':_0x660736['message']});const _0x3e0f5a=_0x660736[_0x2276c2(0x1fb)]&&_0x660736[_0x2276c2(0x1fb)]['includes'](_0x2276c2(0x223));if(_0x3e0f5a)throw new Error('API\x20Configuration\x20Error:\x20'+_0x660736['message']);return{'choices':[{'message':{'content':_0x2276c2(0x1f6)+_0x660736['message'],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4ec65a[_0x2276c2(0x1e0)],'id':'error-'+_0x118463,'error':_0x660736['message']};}async['_makeImageAPIRequest'](_0x3d6c5a,_0x503792,_0x4795f9={}){const _0x15d057=a0_0x353b80,_0xd5b989='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x3c06a4,_0x4ec8f5=null,_0x1c4430=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x4795f9[_0x15d057(0x213)],'hasSessionId':!!_0x4795f9['sessionId'],'model':_0x3d6c5a[_0x15d057(0x1e0)]});if(this[_0x15d057(0x20a)]&&_0x4795f9['sessionId']){const _0x476f7d=this[_0x15d057(0x20a)][_0x15d057(0x26d)](_0x4795f9[_0x15d057(0x213)],{'platformProvided':_0x4795f9[_0x15d057(0x22e)]||![],'vendor':this['_getVendorFromModel'](_0x3d6c5a[_0x15d057(0x1e0)])});_0x4ec8f5=_0x476f7d[_0x15d057(0x21d)],_0x1c4430=_0x476f7d['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x4795f9['sessionId'],'hasLoxiaKey':!!_0x4ec8f5,'hasVendorKey':!!_0x1c4430});}!_0x4ec8f5&&_0x4795f9['apiKey']&&(_0x4ec8f5=_0x4795f9['apiKey']);!_0x4ec8f5&&this['config'][_0x15d057(0x25d)]&&(_0x4ec8f5=this[_0x15d057(0x236)]['apiKey']);if(!_0x4ec8f5)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x25274a={'prompt':_0x3d6c5a['prompt'],'model':_0x3d6c5a[_0x15d057(0x1e0)]||_0x15d057(0x1e9),'size':_0x3d6c5a['size'],'quality':_0x3d6c5a[_0x15d057(0x23a)],'style':_0x3d6c5a[_0x15d057(0x1f8)]||_0x15d057(0x230),'n':_0x3d6c5a['n']||0x1,'requestId':_0x503792};for(let _0x5c959a=0x1;_0x5c959a<=this[_0x15d057(0x23e)];_0x5c959a++){try{this['logger'][_0x15d057(0x1d1)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0xd5b989,'model':_0x3d6c5a[_0x15d057(0x1e0)],'requestId':_0x503792,'attempt':_0x5c959a,'hasApiKey':!!_0x4ec8f5});const _0x2e12b7=await fetch(_0xd5b989,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x4ec8f5,'X-Request-ID':_0x503792},'body':JSON['stringify'](_0x25274a),'timeout':this[_0x15d057(0x250)]*0x2});if(!_0x2e12b7['ok']){const _0x534115=await _0x2e12b7['text'](),_0x11b129=new Error('HTTP\x20'+_0x2e12b7[_0x15d057(0x24c)]+':\x20'+_0x2e12b7['statusText']+(_0x534115?'\x20-\x20'+_0x534115:''));_0x11b129['status']=_0x2e12b7['status'];throw _0x11b129;}const _0xc31778=await _0x2e12b7['json']();return{'data':_0xc31778[_0x15d057(0x1e5)]||[],'model':_0xc31778['model']||_0x3d6c5a[_0x15d057(0x1e0)],'created':_0xc31778['created']||Date['now'](),'usage':_0xc31778['usage']};}catch(_0x1a3c34){_0x3c06a4=_0x1a3c34,this[_0x15d057(0x204)]['warn'](_0x15d057(0x220),{'attempt':_0x5c959a,'requestId':_0x503792,'error':_0x1a3c34['message'],'status':_0x1a3c34['status']});if(_0x5c959a<this['retryAttempts']){const _0x3342e6=Math['pow'](0x2,_0x5c959a)*0x3e8;this['logger'][_0x15d057(0x1f1)](_0x15d057(0x1f2)+_0x3342e6+'ms',{'attempt':_0x5c959a,'requestId':_0x503792}),await new Promise(_0x130ef6=>setTimeout(_0x130ef6,_0x3342e6));}}}this[_0x15d057(0x204)]['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x503792,'error':_0x3c06a4[_0x15d057(0x1fb)]});throw new Error('Image\x20generation\x20failed:\x20'+_0x3c06a4['message']);}async[a0_0x353b80(0x244)](_0x10306a){await new Promise(_0x2c45fe=>setTimeout(_0x2c45fe,0x64));}async[a0_0x353b80(0x25b)](_0x5415e5){const _0x2a5724=a0_0x353b80,_0x3953a4=0xea60;this[_0x2a5724(0x204)][_0x2a5724(0x1d1)](_0x2a5724(0x247)+_0x3953a4+'ms',_0x5415e5),await new Promise(_0x2bdc81=>setTimeout(_0x2bdc81,_0x3953a4));}async[a0_0x353b80(0x1ea)](_0x4452a4){const _0x4bd661=a0_0x353b80;this[_0x4bd661(0x267)]();const _0x3ede15=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x3ede15+'ms',_0x4452a4),await new Promise(_0x4410e1=>setTimeout(_0x4410e1,_0x3ede15));}['_isCircuitBreakerOpen'](){const _0x10a710=a0_0x353b80;if(!this['circuitBreaker']['isOpen'])return![];const _0x59c264=Date[_0x10a710(0x1d4)]()-this['circuitBreaker'][_0x10a710(0x1d9)];if(_0x59c264>this[_0x10a710(0x24d)][_0x10a710(0x250)])return this['circuitBreaker'][_0x10a710(0x246)]=![],this['circuitBreaker'][_0x10a710(0x274)]=0x0,![];return!![];}['_recordFailure'](){const _0x27f960=a0_0x353b80;this['circuitBreaker']['failures']++,this['circuitBreaker'][_0x27f960(0x1d9)]=Date[_0x27f960(0x1d4)](),this[_0x27f960(0x24d)]['failures']>=this[_0x27f960(0x24d)][_0x27f960(0x20b)]&&(this[_0x27f960(0x24d)]['isOpen']=!![],this[_0x27f960(0x204)]['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x353b80(0x21a)](){const _0x250e9b=a0_0x353b80;this['circuitBreaker'][_0x250e9b(0x274)]>0x0&&(this[_0x250e9b(0x24d)][_0x250e9b(0x274)]=0x0,this[_0x250e9b(0x24d)]['isOpen']=![],this[_0x250e9b(0x204)][_0x250e9b(0x1d1)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x148dd1){const _0x2827e9=a0_0x353b80;if(!_0x148dd1)return null;const _0x30fa39=_0x148dd1['toLowerCase']();if(_0x30fa39['includes']('anthropic')||_0x30fa39['includes'](_0x2827e9(0x270)))return'anthropic';else{if(_0x30fa39[_0x2827e9(0x237)]('openai')||_0x30fa39[_0x2827e9(0x237)](_0x2827e9(0x1cf)))return _0x2827e9(0x20d);else{if(_0x30fa39['includes']('deepseek'))return'deepseek';else{if(_0x30fa39['includes'](_0x2827e9(0x216)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x20c6e3,_0x282907){const _0x54509c=a0_0x353b80;this['agentId']=_0x20c6e3,this['logger']=_0x282907,this[_0x54509c(0x25c)]=new Map();}async['switchModel'](_0x1b9535){return{'messages':[],'model':_0x1b9535,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
@@ -1 +1 @@
1
- function a0_0x3398(){const _0x389a9d=['z2v0u2vZC2LVBKTLExm','A2v5CW','n2DRqMT5Ea','C2L6zq','z2XVyMfSs2v5CW','DMvUzg9Ys2v5CW','C2v0u2vZC2LVBKTLExm','C2vZC2LVBKTLExm','Bg9Nz2vY','CgXHDgzVCM1qCM92AwrLza','ndHICwLRuvC','odKZmefrwMnPqW','mJG2mdC2n09zCMvsrW','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','Bg94AwfbCgLlzxK','C2v0r2XVyMfSs2v5CW','mJyWote5nKDwDhPHyG','mtK1nNv6CfDUwG','otGXmdm1teHtzefW','Aw5MBW','zM9YrwfJAa','mtGXmfLktfv1Ca','ndGYmK5isLH1va','mtm4wuTjt1rI','mJm1mJzVBgHiquq','BgvUz3rO','zgvSzxrL','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','Dg9ju09tDhjPBMC','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','BM93','mtiWnZG4meDZuxPiDG'];a0_0x3398=function(){return _0x389a9d;};return a0_0x3398();}const a0_0x539655=a0_0x1bf0;(function(_0x3b198e,_0x2167fa){const _0x36c069=a0_0x1bf0,_0x358556=_0x3b198e();while(!![]){try{const _0x27033c=parseInt(_0x36c069(0x115))/0x1*(parseInt(_0x36c069(0x114))/0x2)+parseInt(_0x36c069(0x12a))/0x3+-parseInt(_0x36c069(0x130))/0x4*(-parseInt(_0x36c069(0x129))/0x5)+-parseInt(_0x36c069(0x12f))/0x6*(parseInt(_0x36c069(0x120))/0x7)+-parseInt(_0x36c069(0x11d))/0x8+-parseInt(_0x36c069(0x116))/0x9*(parseInt(_0x36c069(0x113))/0xa)+-parseInt(_0x36c069(0x110))/0xb*(parseInt(_0x36c069(0x128))/0xc);if(_0x27033c===_0x2167fa)break;else _0x358556['push'](_0x358556['shift']());}catch(_0x3e9eb4){_0x358556['push'](_0x358556['shift']());}}}(a0_0x3398,0xb5a00));class ApiKeyManager{constructor(_0x37a906){this['logger']=_0x37a906,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x539655(0x124)](_0x5a28b3,_0x28b074){const _0x2a153c=a0_0x539655;if(!_0x5a28b3)throw new Error('Session\x20ID\x20is\x20required');this['sessionKeys']['set'](_0x5a28b3,{'loxiaApiKey':_0x28b074['loxiaApiKey']||null,'vendorKeys':_0x28b074[_0x2a153c(0x123)]||{},'updatedAt':new Date()[_0x2a153c(0x11a)]()}),this['logger']?.['info'](_0x2a153c(0x12c),{'sessionId':_0x5a28b3,'hasLoxiaKey':!!_0x28b074[_0x2a153c(0x12d)],'vendorKeys':Object[_0x2a153c(0x11f)](_0x28b074['vendorKeys']||{}),'timestamp':new Date()[_0x2a153c(0x11a)]()});}['getSessionKeys'](_0x26c6c8){if(!_0x26c6c8)return this['globalKeys'];const _0x26f266=this['sessionKeys']['get'](_0x26c6c8);if(_0x26f266)return _0x26f266;return this['globalKeys'];}['getKeysForRequest'](_0x40126d,_0x3a4f5d={}){const _0xa7eb0b=a0_0x539655,_0x5e5984=this[_0xa7eb0b(0x11e)](_0x40126d),_0x848916={'loxiaApiKey':_0x5e5984['loxiaApiKey'],'vendorApiKey':null};return!_0x3a4f5d[_0xa7eb0b(0x127)]&&_0x3a4f5d['vendor']&&_0x5e5984[_0xa7eb0b(0x123)]&&(_0x848916['vendorApiKey']=_0x5e5984[_0xa7eb0b(0x123)][_0x3a4f5d['vendor']]),_0x848916;}['removeSessionKeys'](_0xaa9994){const _0x60970b=a0_0x539655;if(this['sessionKeys']['delete'](_0xaa9994))return this[_0x60970b(0x126)]?.[_0x60970b(0x111)](_0x60970b(0x12b),{'sessionId':_0xaa9994}),!![];return![];}[a0_0x539655(0x12e)](_0x35ff47){const _0x3da8f2=a0_0x539655;this[_0x3da8f2(0x122)]={'loxiaApiKey':_0x35ff47[_0x3da8f2(0x12d)]||this[_0x3da8f2(0x122)]['loxiaApiKey'],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x35ff47['vendorKeys']||{}}},this['logger']?.['info'](_0x3da8f2(0x11b),{'hasLoxiaKey':!!this['globalKeys'][_0x3da8f2(0x12d)],'vendorKeys':Object[_0x3da8f2(0x11f)](this['globalKeys']['vendorKeys'])});}['getActiveSessions'](){const _0x191c87=a0_0x539655;return Array['from'](this['sessionKeys']['entries']())['map'](([_0x2f1445,_0x368e80])=>({'sessionId':_0x2f1445,'hasLoxiaKey':!!_0x368e80[_0x191c87(0x12d)],'vendorKeys':Object[_0x191c87(0x11f)](_0x368e80['vendorKeys']||{}),'updatedAt':_0x368e80['updatedAt']}));}[a0_0x539655(0x119)](_0x33be28=0x18*0x3c*0x3c*0x3e8){const _0x216708=a0_0x539655,_0x53e271=Date[_0x216708(0x11c)](),_0x52c346=[];for(const [_0x510cf4,_0x21b05b]of this[_0x216708(0x125)]['entries']()){const _0x2bcf6c=_0x53e271-new Date(_0x21b05b['updatedAt'])['getTime']();_0x2bcf6c>_0x33be28&&_0x52c346['push'](_0x510cf4);}return _0x52c346[_0x216708(0x112)](_0xc893a0=>{const _0x44a287=_0x216708;this[_0x44a287(0x125)][_0x44a287(0x118)](_0xc893a0);}),_0x52c346[_0x216708(0x117)]>0x0&&this['logger']?.[_0x216708(0x111)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x52c346['length'],'remainingSessions':this['sessionKeys'][_0x216708(0x121)]}),_0x52c346[_0x216708(0x117)];}}function a0_0x1bf0(_0x2ab5d8,_0x1496f8){_0x2ab5d8=_0x2ab5d8-0x110;const _0x339857=a0_0x3398();let _0x1bf00e=_0x339857[_0x2ab5d8];if(a0_0x1bf0['vqKnNx']===undefined){var _0x32831f=function(_0xc33e8b){const _0x4c41f7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37a906='',_0x5a28b3='';for(let _0x28b074=0x0,_0x26c6c8,_0x26f266,_0x40126d=0x0;_0x26f266=_0xc33e8b['charAt'](_0x40126d++);~_0x26f266&&(_0x26c6c8=_0x28b074%0x4?_0x26c6c8*0x40+_0x26f266:_0x26f266,_0x28b074++%0x4)?_0x37a906+=String['fromCharCode'](0xff&_0x26c6c8>>(-0x2*_0x28b074&0x6)):0x0){_0x26f266=_0x4c41f7['indexOf'](_0x26f266);}for(let _0x3a4f5d=0x0,_0x5e5984=_0x37a906['length'];_0x3a4f5d<_0x5e5984;_0x3a4f5d++){_0x5a28b3+='%'+('00'+_0x37a906['charCodeAt'](_0x3a4f5d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a28b3);};a0_0x1bf0['SsKjrT']=_0x32831f,a0_0x1bf0['fLrjbd']={},a0_0x1bf0['vqKnNx']=!![];}const _0x108b1e=_0x339857[0x0],_0xe8719d=_0x2ab5d8+_0x108b1e,_0x173ea4=a0_0x1bf0['fLrjbd'][_0xe8719d];return!_0x173ea4?(_0x1bf00e=a0_0x1bf0['SsKjrT'](_0x1bf00e),a0_0x1bf0['fLrjbd'][_0xe8719d]=_0x1bf00e):_0x1bf00e=_0x173ea4,_0x1bf00e;}export default ApiKeyManager;
1
+ const a0_0x44eec7=a0_0x5baa;(function(_0xafea70,_0x1c59c0){const _0x5ba0d3=a0_0x5baa,_0xccb200=_0xafea70();while(!![]){try{const _0x4d74fd=-parseInt(_0x5ba0d3(0x69))/0x1*(parseInt(_0x5ba0d3(0x6a))/0x2)+-parseInt(_0x5ba0d3(0x6d))/0x3+parseInt(_0x5ba0d3(0x71))/0x4*(parseInt(_0x5ba0d3(0x7f))/0x5)+-parseInt(_0x5ba0d3(0x74))/0x6+parseInt(_0x5ba0d3(0x73))/0x7+-parseInt(_0x5ba0d3(0x88))/0x8*(parseInt(_0x5ba0d3(0x8a))/0x9)+parseInt(_0x5ba0d3(0x6f))/0xa;if(_0x4d74fd===_0x1c59c0)break;else _0xccb200['push'](_0xccb200['shift']());}catch(_0x4b1a23){_0xccb200['push'](_0xccb200['shift']());}}}(a0_0x20f6,0x7fbbd));class ApiKeyManager{constructor(_0x3bc4c1){this['logger']=_0x3bc4c1,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x44eec7(0x7a)](_0x46d807,_0x2ce6ad){const _0x1c51d6=a0_0x44eec7;if(!_0x46d807)throw new Error(_0x1c51d6(0x6e));this[_0x1c51d6(0x78)][_0x1c51d6(0x84)](_0x46d807,{'loxiaApiKey':_0x2ce6ad['loxiaApiKey']||null,'vendorKeys':_0x2ce6ad[_0x1c51d6(0x85)]||{},'updatedAt':new Date()[_0x1c51d6(0x67)]()}),this['logger']?.[_0x1c51d6(0x76)](_0x1c51d6(0x87),{'sessionId':_0x46d807,'hasLoxiaKey':!!_0x2ce6ad['loxiaApiKey'],'vendorKeys':Object[_0x1c51d6(0x80)](_0x2ce6ad['vendorKeys']||{}),'timestamp':new Date()[_0x1c51d6(0x67)]()});}[a0_0x44eec7(0x79)](_0x291a6f){const _0x4f6b11=a0_0x44eec7;if(!_0x291a6f)return this[_0x4f6b11(0x72)];const _0x179aeb=this[_0x4f6b11(0x78)][_0x4f6b11(0x6b)](_0x291a6f);if(_0x179aeb)return _0x179aeb;return this['globalKeys'];}['getKeysForRequest'](_0x25ef4d,_0x1c682f={}){const _0x537fb9=a0_0x44eec7,_0x1bafdf=this['getSessionKeys'](_0x25ef4d),_0x53951c={'loxiaApiKey':_0x1bafdf['loxiaApiKey'],'vendorApiKey':null};return!_0x1c682f[_0x537fb9(0x81)]&&_0x1c682f[_0x537fb9(0x7e)]&&_0x1bafdf[_0x537fb9(0x85)]&&(_0x53951c['vendorApiKey']=_0x1bafdf['vendorKeys'][_0x1c682f[_0x537fb9(0x7e)]]),_0x53951c;}[a0_0x44eec7(0x75)](_0x39ef5c){const _0x38cfda=a0_0x44eec7;if(this[_0x38cfda(0x78)]['delete'](_0x39ef5c))return this['logger']?.['info']('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x39ef5c}),!![];return![];}[a0_0x44eec7(0x68)](_0x13dc30){const _0x1db569=a0_0x44eec7;this[_0x1db569(0x72)]={'loxiaApiKey':_0x13dc30['loxiaApiKey']||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this[_0x1db569(0x72)]['vendorKeys'],..._0x13dc30['vendorKeys']||{}}},this[_0x1db569(0x70)]?.[_0x1db569(0x76)]('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0x1db569(0x72)]['loxiaApiKey'],'vendorKeys':Object['keys'](this['globalKeys']['vendorKeys'])});}['getActiveSessions'](){const _0x14428a=a0_0x44eec7;return Array['from'](this[_0x14428a(0x78)][_0x14428a(0x7c)]())['map'](([_0x5758b9,_0x8eaf77])=>({'sessionId':_0x5758b9,'hasLoxiaKey':!!_0x8eaf77[_0x14428a(0x86)],'vendorKeys':Object[_0x14428a(0x80)](_0x8eaf77['vendorKeys']||{}),'updatedAt':_0x8eaf77[_0x14428a(0x77)]}));}[a0_0x44eec7(0x83)](_0x3a612e=0x18*0x3c*0x3c*0x3e8){const _0x8920b9=a0_0x44eec7,_0x3ec470=Date['now'](),_0x385592=[];for(const [_0x3f63e1,_0x190033]of this[_0x8920b9(0x78)]['entries']()){const _0xe3357c=_0x3ec470-new Date(_0x190033[_0x8920b9(0x77)])[_0x8920b9(0x7d)]();_0xe3357c>_0x3a612e&&_0x385592[_0x8920b9(0x82)](_0x3f63e1);}return _0x385592['forEach'](_0x3d80e9=>{const _0x967502=_0x8920b9;this[_0x967502(0x78)][_0x967502(0x7b)](_0x3d80e9);}),_0x385592[_0x8920b9(0x6c)]>0x0&&this['logger']?.['info']('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x385592[_0x8920b9(0x6c)],'remainingSessions':this['sessionKeys'][_0x8920b9(0x89)]}),_0x385592[_0x8920b9(0x6c)];}}function a0_0x5baa(_0x13100c,_0x5ba549){_0x13100c=_0x13100c-0x67;const _0x20f62a=a0_0x20f6();let _0x5baa34=_0x20f62a[_0x13100c];if(a0_0x5baa['GEJlvr']===undefined){var _0xc23035=function(_0x4b6a64){const _0x3162e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3bc4c1='',_0x46d807='';for(let _0x2ce6ad=0x0,_0x291a6f,_0x179aeb,_0x25ef4d=0x0;_0x179aeb=_0x4b6a64['charAt'](_0x25ef4d++);~_0x179aeb&&(_0x291a6f=_0x2ce6ad%0x4?_0x291a6f*0x40+_0x179aeb:_0x179aeb,_0x2ce6ad++%0x4)?_0x3bc4c1+=String['fromCharCode'](0xff&_0x291a6f>>(-0x2*_0x2ce6ad&0x6)):0x0){_0x179aeb=_0x3162e5['indexOf'](_0x179aeb);}for(let _0x1c682f=0x0,_0x1bafdf=_0x3bc4c1['length'];_0x1c682f<_0x1bafdf;_0x1c682f++){_0x46d807+='%'+('00'+_0x3bc4c1['charCodeAt'](_0x1c682f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46d807);};a0_0x5baa['aAqmRn']=_0xc23035,a0_0x5baa['sIRcLR']={},a0_0x5baa['GEJlvr']=!![];}const _0x462117=_0x20f62a[0x0],_0x16936e=_0x13100c+_0x462117,_0x361669=a0_0x5baa['sIRcLR'][_0x16936e];return!_0x361669?(_0x5baa34=a0_0x5baa['aAqmRn'](_0x5baa34),a0_0x5baa['sIRcLR'][_0x16936e]=_0x5baa34):_0x5baa34=_0x361669,_0x5baa34;}function a0_0x20f6(){const _0x49a423=['z2v0','BgvUz3rO','mtGWnJq1nNL6yvnQCW','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','mtq4mtiZntbbuffUC0e','Bg9Nz2vY','mJK0nda0DgP1EhLe','z2XVyMfSs2v5CW','mJqWotu2ohLxDMHowq','mZyWotq4mgT3A21RuW','CMvTB3zLu2vZC2LVBKTLExm','Aw5MBW','DxbKyxrLzef0','C2vZC2LVBKTLExm','z2v0u2vZC2LVBKTLExm','C2v0u2vZC2LVBKTLExm','zgvSzxrL','zw50CMLLCW','z2v0vgLTzq','DMvUzg9Y','nJv3CuPOB2K','A2v5CW','CgXHDgzVCM1qCM92AwrLza','ChvZAa','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','C2v0','DMvUzg9Ys2v5CW','Bg94AwfbCgLlzxK','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mZC2CMDcs2jO','C2L6zq','mteXotqYuxz5q09p','Dg9ju09tDhjPBMC','C2v0r2XVyMfSs2v5CW','mtyYmZndtenVqNa','ntHVrLPSrMm'];a0_0x20f6=function(){return _0x49a423;};return a0_0x20f6();}export default ApiKeyManager;
@@ -1 +1 @@
1
- const a0_0x205c22=a0_0xb38c;(function(_0x1a250e,_0x899128){const _0x5b7527=a0_0xb38c,_0x2f7f52=_0x1a250e();while(!![]){try{const _0x8e8e0f=parseInt(_0x5b7527(0x19f))/0x1*(parseInt(_0x5b7527(0x181))/0x2)+parseInt(_0x5b7527(0x17d))/0x3*(parseInt(_0x5b7527(0x19d))/0x4)+parseInt(_0x5b7527(0x18c))/0x5*(parseInt(_0x5b7527(0x192))/0x6)+-parseInt(_0x5b7527(0x16e))/0x7+-parseInt(_0x5b7527(0x188))/0x8+parseInt(_0x5b7527(0x183))/0x9*(parseInt(_0x5b7527(0x185))/0xa)+-parseInt(_0x5b7527(0x189))/0xb*(-parseInt(_0x5b7527(0x178))/0xc);if(_0x8e8e0f===_0x899128)break;else _0x2f7f52['push'](_0x2f7f52['shift']());}catch(_0x33318e){_0x2f7f52['push'](_0x2f7f52['shift']());}}}(a0_0x1988,0x68267));function a0_0xb38c(_0x59a7b4,_0x9d0282){_0x59a7b4=_0x59a7b4-0x16c;const _0x1988a9=a0_0x1988();let _0xb38c9b=_0x1988a9[_0x59a7b4];if(a0_0xb38c['WebQxk']===undefined){var _0x5c74d7=function(_0x481c44){const _0x282a0f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x25baff='',_0x401fee='';for(let _0xf0965b=0x0,_0x14499b,_0x5f2203,_0x2abe82=0x0;_0x5f2203=_0x481c44['charAt'](_0x2abe82++);~_0x5f2203&&(_0x14499b=_0xf0965b%0x4?_0x14499b*0x40+_0x5f2203:_0x5f2203,_0xf0965b++%0x4)?_0x25baff+=String['fromCharCode'](0xff&_0x14499b>>(-0x2*_0xf0965b&0x6)):0x0){_0x5f2203=_0x282a0f['indexOf'](_0x5f2203);}for(let _0x2d7c9c=0x0,_0x31d156=_0x25baff['length'];_0x2d7c9c<_0x31d156;_0x2d7c9c++){_0x401fee+='%'+('00'+_0x25baff['charCodeAt'](_0x2d7c9c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x401fee);};a0_0xb38c['hLlFAc']=_0x5c74d7,a0_0xb38c['XFSGJN']={},a0_0xb38c['WebQxk']=!![];}const _0x1ca831=_0x1988a9[0x0],_0x631b47=_0x59a7b4+_0x1ca831,_0x553707=a0_0xb38c['XFSGJN'][_0x631b47];return!_0x553707?(_0xb38c9b=a0_0xb38c['hLlFAc'](_0xb38c9b),a0_0xb38c['XFSGJN'][_0x631b47]=_0xb38c9b):_0xb38c9b=_0x553707,_0xb38c9b;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x25baff,_0x401fee){const _0x12a576=a0_0xb38c;this[_0x12a576(0x173)]=_0x25baff,this['logger']=_0x401fee,this['benchmarks']=null,this[_0x12a576(0x171)]=null,this['isLoading']=![],this[_0x12a576(0x180)]=_0x12a576(0x186),this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x12a576(0x19c)];}async[a0_0x205c22(0x17f)](){const _0x567b8e=a0_0x205c22;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger']['info']('Benchmark\x20service\x20initialized');}catch(_0xf0965b){this[_0x567b8e(0x197)]['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0xf0965b['message']}),this[_0x567b8e(0x17b)]=null;}}['getBenchmarks'](){const _0xbd079d=a0_0x205c22;if(!this[_0xbd079d(0x17b)])return this['logger']['error']('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0xbd079d(0x17b)];}async['loadBenchmarks'](){const _0x29d9e5=a0_0x205c22;if(this[_0x29d9e5(0x177)]){this['logger']['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x29d9e5(0x177)]=!![];try{const _0x14499b=await this['_fetchFromAzureBackend']();if(_0x14499b)this[_0x29d9e5(0x17b)]=_0x14499b,this['lastUpdated']=new Date(),this['logger']['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x14499b['models']?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x5f2203){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x5f2203[_0x29d9e5(0x19b)],'endpoint':url}),!this['benchmarks']&&(this[_0x29d9e5(0x17b)]=null);}finally{this['isLoading']=![];}}[a0_0x205c22(0x17e)](){const _0x45177f=a0_0x205c22,_0x2abe82=this[_0x45177f(0x18e)]();return{'lastUpdated':this[_0x45177f(0x171)]?.[_0x45177f(0x18f)]()||'unknown','models':_0x2abe82[_0x45177f(0x199)]||[],'tasks':_0x2abe82['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x2abe82)};}[a0_0x205c22(0x16f)](){const _0x5be9b2=a0_0x205c22;if(!this[_0x5be9b2(0x171)])return!![];const _0x2d7c9c=Date['now']()-this['lastUpdated']['getTime']();return _0x2d7c9c>this[_0x5be9b2(0x190)];}async['_fetchFromAzureBackend'](){const _0x56bbaa=a0_0x205c22,_0x31d156=this['azureBackendUrl']+_0x56bbaa(0x198);let _0x2bb022=null;this[_0x56bbaa(0x173)][_0x56bbaa(0x17c)]&&(_0x2bb022=this['config']['apiKey']);const _0xfe777b={'method':_0x56bbaa(0x170),'headers':{'Content-Type':_0x56bbaa(0x18a),..._0x2bb022&&{'Authorization':'Bearer\x20'+_0x2bb022}},'timeout':0x2710};this[_0x56bbaa(0x197)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x31d156});const _0x24f54b=await fetch(_0x31d156,_0xfe777b);if(!_0x24f54b['ok'])throw new Error('HTTP\x20'+_0x24f54b[_0x56bbaa(0x16c)]+':\x20'+_0x24f54b['statusText']);const _0x13e203=await _0x24f54b['json']();return _0x13e203;}['_generateBenchmarkSummary'](_0x396893){const _0x5ae070=a0_0x205c22,_0x562ed1=_0x396893[_0x5ae070(0x199)]||[];return{'totalModels':_0x562ed1[_0x5ae070(0x17a)],'taskCategories':Object['keys'](_0x396893['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x562ed1,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x562ed1,'analysis'),'bestForQuickTasks':this[_0x5ae070(0x174)](_0x562ed1,_0x5ae070(0x175)),'bestForCreative':this[_0x5ae070(0x174)](_0x562ed1,'creative'),'fastestModel':this[_0x5ae070(0x195)](_0x562ed1),'mostCostEfficient':this['_getMostCostEfficient'](_0x562ed1)};}['_getBestModelForTask'](_0x470f4c,_0x2968be){const _0x46eafc=a0_0x205c22;return _0x470f4c[_0x46eafc(0x18b)](_0x543029=>_0x543029[_0x46eafc(0x196)]&&_0x543029['tasks'][_0x2968be])['sort']((_0x128614,_0x19be6f)=>(_0x19be6f['tasks'][_0x2968be]['score']||0x0)-(_0x128614[_0x46eafc(0x196)][_0x2968be]['score']||0x0))[0x0]?.[_0x46eafc(0x194)]||'unknown';}[a0_0x205c22(0x195)](_0x257441){const _0x182c04={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x257441['sort']((_0x189614,_0x38cf2a)=>{const _0x2e15cd=a0_0xb38c,_0x12d7ab=Math['max'](...Object[_0x2e15cd(0x1a0)](_0x189614['tasks']||{})['map'](_0x2567de=>_0x182c04[_0x2567de[_0x2e15cd(0x179)]]||0x0)),_0x3ed347=Math['max'](...Object['values'](_0x38cf2a[_0x2e15cd(0x196)]||{})[_0x2e15cd(0x191)](_0x4e69ab=>_0x182c04[_0x4e69ab[_0x2e15cd(0x179)]]||0x0));return _0x3ed347-_0x12d7ab;})[0x0]?.['name']||'unknown';}[a0_0x205c22(0x193)](_0x525de4){const _0x367528=a0_0x205c22,_0x2ed272={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x525de4[_0x367528(0x187)]((_0x2066a5,_0xa1dead)=>{const _0x544ce6=_0x367528,_0x280908=Math[_0x544ce6(0x176)](...Object[_0x544ce6(0x1a0)](_0x2066a5[_0x544ce6(0x196)]||{})[_0x544ce6(0x191)](_0x41272c=>_0x2ed272[_0x41272c['cost']]||0x0)),_0x299489=Math['max'](...Object[_0x544ce6(0x1a0)](_0xa1dead['tasks']||{})[_0x544ce6(0x191)](_0x40b64f=>_0x2ed272[_0x40b64f['cost']]||0x0));return _0x299489-_0x280908;})[0x0]?.['name']||'unknown';}[a0_0x205c22(0x182)](){setInterval(async()=>{const _0x866995=a0_0xb38c;this['needsRefresh']()&&(this[_0x866995(0x197)][_0x866995(0x19e)]('Refreshing\x20benchmark\x20data'),await this[_0x866995(0x16d)]());},this['refreshInterval']);}async['forceRefresh'](){const _0x1946be=a0_0x205c22;this[_0x1946be(0x197)][_0x1946be(0x18d)](_0x1946be(0x19a)),await this['loadBenchmarks']();}['getStatus'](){const _0xca44f0=a0_0x205c22;return{'initialized':!!this['benchmarks'],'lastUpdated':this[_0xca44f0(0x171)]?.['toISOString']()||null,'source':this[_0xca44f0(0x17b)]?.[_0xca44f0(0x184)]||_0xca44f0(0x172),'modelCount':this[_0xca44f0(0x17b)]?.[_0xca44f0(0x199)]?.['length']||0x0,'isLoading':this['isLoading'],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;function a0_0x1988(){const _0x22f90d=['Bwf4','AxnmB2fKAw5N','mJG5mNvcqKjwrW','C3bLzwq','BgvUz3rO','yMvUy2HTyxjRCW','yxbPs2v5','mJfOwvbODNa','z2v0qMvUy2HTyxjRvgfIBgu','Aw5PDgLHBgL6zq','yxP1CMvcywnRzw5KvxjS','ndmYmM9sv2j6uq','x3nJAgvKDwXLuMvMCMvZAa','nJi5mZm0u3jHsLnh','C291CMnL','nZbbyuHOz00','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','C29YDa','mZm4odC2ohDSuxH1sG','mta2n1LpAg5LvG','yxbWBgLJyxrPB24VANnVBG','zMLSDgvY','mtbnzhLbtLq','Aw5MBW','z2v0qMvUy2HTyxjRCW','Dg9ju09tDhjPBMC','CMvMCMvZAeLUDgvYDMfS','BwfW','mZuXotq4ChHYA1ng','x2DLDe1VC3rdB3n0rwzMAwnPzw50','BMfTzq','x2DLDezHC3rLC3rnB2rLBa','DgfZA3m','Bg9Nz2vY','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','Bw9KzwXZ','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','BwvZC2fNzq','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','mZC0odbOsgL5t1K','zgvIDwC','odHQEKj6uvq','DMfSDwvZ','C3rHDhvZ','Bg9HzejLBMnOBwfYA3m','mJuWmty2tgz6rhjX','BMvLzhnszwzYzxnO','r0vu','BgfZDfvWzgf0zwq','Dw5RBM93BG','y29UzMLN','x2DLDejLC3rnB2rLBezVCLrHC2S','CxvPy2STDgfZA3m'];a0_0x1988=function(){return _0x22f90d;};return a0_0x1988();}
1
+ function a0_0x36b7(_0x5b43cc,_0x2a697b){_0x5b43cc=_0x5b43cc-0x12e;const _0x313d51=a0_0x313d();let _0x36b7ec=_0x313d51[_0x5b43cc];if(a0_0x36b7['tyewPy']===undefined){var _0x1a6a5=function(_0x140d1c){const _0x161b2d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d5997='',_0x2834a2='';for(let _0x3cef39=0x0,_0x2be70e,_0xefe6db,_0x2c6e68=0x0;_0xefe6db=_0x140d1c['charAt'](_0x2c6e68++);~_0xefe6db&&(_0x2be70e=_0x3cef39%0x4?_0x2be70e*0x40+_0xefe6db:_0xefe6db,_0x3cef39++%0x4)?_0x3d5997+=String['fromCharCode'](0xff&_0x2be70e>>(-0x2*_0x3cef39&0x6)):0x0){_0xefe6db=_0x161b2d['indexOf'](_0xefe6db);}for(let _0x3d16ae=0x0,_0x36a753=_0x3d5997['length'];_0x3d16ae<_0x36a753;_0x3d16ae++){_0x2834a2+='%'+('00'+_0x3d5997['charCodeAt'](_0x3d16ae)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2834a2);};a0_0x36b7['RufCHz']=_0x1a6a5,a0_0x36b7['CCumzs']={},a0_0x36b7['tyewPy']=!![];}const _0x3d1314=_0x313d51[0x0],_0x468a7d=_0x5b43cc+_0x3d1314,_0x410705=a0_0x36b7['CCumzs'][_0x468a7d];return!_0x410705?(_0x36b7ec=a0_0x36b7['RufCHz'](_0x36b7ec),a0_0x36b7['CCumzs'][_0x468a7d]=_0x36b7ec):_0x36b7ec=_0x410705,_0x36b7ec;}function a0_0x313d(){const _0x4ed61a=['mZq3mtK4nKLPq3fyDG','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','CMvMCMvZAeLUDgvYDMfS','DMfSDwvZ','yw5HBhLZAxm','rMfPBgvKihrVigLUAxrPywXPEMuGyMvUy2HTyxjRihnLCNzPy2uGlsbotYbgquXmqKfdsW','mtiXotq4mK9bAhrhEa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','x2DLDezHC3rLC3rnB2rLBa','r0vu','Bg9Nz2vY','z2v0qMvUy2HTyxjRCW','DgfZA3m','y3jLyxrPDMu','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BwfW','y29UzMLN','nZjqDwn1v0O','mtqWmJrguu5svg0','m1nZEKvOqq','x2DLDe1VC3rdB3n0rwzMAwnPzw50','zxjYB3i','Bw9KzwXZ','qMvHCMvYia','BgvUz3rO','y29ZDa','Aw5MBW','Dw5RBM93BG','AxnmB2fKAw5N','yxbWBgLJyxrPB24VANnVBG','C291CMnL','ndu1mdmWvgLbtvnS','otKYmde1EgTsAxzn','C3rHDhvZ','x2DLDejLC3rnB2rLBezVCLrHC2S','yMvUy2HTyxjRCW','Bg9HzejLBMnOBwfYA3m','Bwf4','A2v5CW','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','mty2mJa5ouLQqwLxEG','nda0whbyrefw','BgfZDfvWzgf0zwq','C29YDa'];a0_0x313d=function(){return _0x4ed61a;};return a0_0x313d();}const a0_0x278d50=a0_0x36b7;(function(_0x26d1a3,_0x17fc9d){const _0x214f4f=a0_0x36b7,_0x59a112=_0x26d1a3();while(!![]){try{const _0x174ad3=parseInt(_0x214f4f(0x148))/0x1+-parseInt(_0x214f4f(0x13f))/0x2*(parseInt(_0x214f4f(0x133))/0x3)+-parseInt(_0x214f4f(0x149))/0x4+-parseInt(_0x214f4f(0x140))/0x5+parseInt(_0x214f4f(0x152))/0x6+-parseInt(_0x214f4f(0x14c))/0x7+parseInt(_0x214f4f(0x132))/0x8*(parseInt(_0x214f4f(0x131))/0x9);if(_0x174ad3===_0x17fc9d)break;else _0x59a112['push'](_0x59a112['shift']());}catch(_0x58288e){_0x59a112['push'](_0x59a112['shift']());}}}(a0_0x313d,0xe9ba9));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x3d5997,_0x2834a2){const _0x2a0f87=a0_0x36b7;this[_0x2a0f87(0x130)]=_0x3d5997,this['logger']=_0x2834a2,this[_0x2a0f87(0x143)]=null,this[_0x2a0f87(0x14a)]=null,this[_0x2a0f87(0x13c)]=![],this['azureBackendUrl']=_0x2a0f87(0x153),this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x2a0f87(0x12e)];}async['initialize'](){const _0x51bb7b=a0_0x36b7;try{await this[_0x51bb7b(0x144)](),this['_scheduleRefresh'](),this['logger'][_0x51bb7b(0x13a)]('Benchmark\x20service\x20initialized');}catch(_0x3cef39){this[_0x51bb7b(0x156)]['error'](_0x51bb7b(0x151),{'error':_0x3cef39['message']}),this['benchmarks']=null;}}['getBenchmarks'](){const _0x517ec5=a0_0x36b7;if(!this[_0x517ec5(0x143)])return this[_0x517ec5(0x156)][_0x517ec5(0x135)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0xb62ece=a0_0x36b7;if(this['isLoading']){this['logger']['debug'](_0xb62ece(0x147));return;}this['isLoading']=!![];try{const _0x2be70e=await this['_fetchFromAzureBackend']();if(_0x2be70e)this[_0xb62ece(0x143)]=_0x2be70e,this[_0xb62ece(0x14a)]=new Date(),this[_0xb62ece(0x156)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x2be70e[_0xb62ece(0x136)]?.[_0xb62ece(0x138)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0xefe6db){this[_0xb62ece(0x156)][_0xb62ece(0x135)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0xefe6db['message'],'endpoint':url}),!this['benchmarks']&&(this[_0xb62ece(0x143)]=null);}finally{this[_0xb62ece(0x13c)]=![];}}['getBenchmarkTable'](){const _0x3e21d4=a0_0x36b7,_0x2c6e68=this[_0x3e21d4(0x157)]();return{'lastUpdated':this[_0x3e21d4(0x14a)]?.['toISOString']()||'unknown','models':_0x2c6e68[_0x3e21d4(0x136)]||[],'tasks':_0x2c6e68['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x2c6e68)};}['needsRefresh'](){const _0x22f507=a0_0x36b7;if(!this[_0x22f507(0x14a)])return!![];const _0x3d16ae=Date['now']()-this[_0x22f507(0x14a)]['getTime']();return _0x3d16ae>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0x529367=a0_0x36b7,_0x36a753=this['azureBackendUrl']+'/llm/model-benchmarks';let _0xf1dc73=null;this['config']['apiKey']&&(_0xf1dc73=this[_0x529367(0x130)]['apiKey']);const _0x1dc38f={'method':_0x529367(0x155),'headers':{'Content-Type':_0x529367(0x13d),..._0xf1dc73&&{'Authorization':_0x529367(0x137)+_0xf1dc73}},'timeout':0x2710};this[_0x529367(0x156)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x36a753});const _0x449d68=await fetch(_0x36a753,_0x1dc38f);if(!_0x449d68['ok'])throw new Error('HTTP\x20'+_0x449d68[_0x529367(0x141)]+':\x20'+_0x449d68['statusText']);const _0x26f333=await _0x449d68['json']();return _0x26f333;}['_generateBenchmarkSummary'](_0x13637f){const _0x48c3f1=a0_0x36b7,_0x541029=_0x13637f[_0x48c3f1(0x136)]||[];return{'totalModels':_0x541029[_0x48c3f1(0x138)],'taskCategories':Object[_0x48c3f1(0x146)](_0x13637f[_0x48c3f1(0x158)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x541029,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x541029,_0x48c3f1(0x150)),'bestForQuickTasks':this[_0x48c3f1(0x142)](_0x541029,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x541029,_0x48c3f1(0x159)),'fastestModel':this['_getFastestModel'](_0x541029),'mostCostEfficient':this[_0x48c3f1(0x134)](_0x541029)};}[a0_0x278d50(0x142)](_0x6a643a,_0x34d7ac){const _0x25da30=a0_0x278d50;return _0x6a643a['filter'](_0x485306=>_0x485306['tasks']&&_0x485306[_0x25da30(0x158)][_0x34d7ac])['sort']((_0x41af76,_0x407cf5)=>(_0x407cf5[_0x25da30(0x158)][_0x34d7ac]['score']||0x0)-(_0x41af76[_0x25da30(0x158)][_0x34d7ac]['score']||0x0))[0x0]?.['name']||_0x25da30(0x13b);}[a0_0x278d50(0x154)](_0x2b7417){const _0x36cab5=a0_0x278d50,_0x34dc8e={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x2b7417['sort']((_0x4ac3e9,_0x1aac14)=>{const _0x2f954f=a0_0x36b7,_0xa5c086=Math[_0x2f954f(0x145)](...Object[_0x2f954f(0x14f)](_0x4ac3e9['tasks']||{})[_0x2f954f(0x12f)](_0x11a09e=>_0x34dc8e[_0x11a09e['speed']]||0x0)),_0xa91ddf=Math[_0x2f954f(0x145)](...Object['values'](_0x1aac14[_0x2f954f(0x158)]||{})['map'](_0x2e9225=>_0x34dc8e[_0x2e9225['speed']]||0x0));return _0xa91ddf-_0xa5c086;})[0x0]?.['name']||_0x36cab5(0x13b);}[a0_0x278d50(0x134)](_0xc7c19c){const _0x4ea0b=a0_0x278d50,_0x232f8f={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0xc7c19c[_0x4ea0b(0x14b)]((_0x54ebbb,_0x246868)=>{const _0x709e86=_0x4ea0b,_0x249d3c=Math['max'](...Object['values'](_0x54ebbb[_0x709e86(0x158)]||{})[_0x709e86(0x12f)](_0x5ee209=>_0x232f8f[_0x5ee209[_0x709e86(0x139)]]||0x0)),_0x2fe197=Math['max'](...Object['values'](_0x246868[_0x709e86(0x158)]||{})['map'](_0x27992c=>_0x232f8f[_0x27992c['cost']]||0x0));return _0x2fe197-_0x249d3c;})[0x0]?.['name']||_0x4ea0b(0x13b);}['_scheduleRefresh'](){const _0x480df7=a0_0x278d50;setInterval(async()=>{const _0x3f2e0e=a0_0x36b7;this['needsRefresh']()&&(this['logger']['debug'](_0x3f2e0e(0x14d)),await this[_0x3f2e0e(0x144)]());},this[_0x480df7(0x14e)]);}async['forceRefresh'](){const _0x107910=a0_0x278d50;this['logger'][_0x107910(0x13a)]('Force\x20refreshing\x20benchmark\x20data'),await this[_0x107910(0x144)]();}['getStatus'](){const _0x35916b=a0_0x278d50;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.['toISOString']()||null,'source':this['benchmarks']?.[_0x35916b(0x13e)]||_0x35916b(0x13b),'modelCount':this[_0x35916b(0x143)]?.[_0x35916b(0x136)]?.[_0x35916b(0x138)]||0x0,'isLoading':this[_0x35916b(0x13c)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
@@ -1 +1 @@
1
- const a0_0xb7fd51=a0_0x17cc;function a0_0x2171(){const _0x323de0=['y29UDMvYDfrVq1nw','mtaWmZbpq2jOA0G','uMvXDwvZDhm','DhjHy2TvC2fNzq','y29ZDa','y2HLy2TuAhjLC2HVBgq','odHVy0PKDNa','Aw5PDgLHBgL6zvvZywDLrw50CNK','Bg9Nz2vY','ltaX','Bw9UDgHSEq','Dw5ZAgLMDa','refjtfK','v0vfs0Xz','Dg9Rzw5ZqNLeyxK','AgfZ','CM91BMq','C3rYAw5NAwz5','BwvZC2fNzq','Bg9HzfvZywDLrgf0yq','y29ZDej5rgf5','z2v0v2vLA0TLEq','z2v0rgf0zq','BM93','Dg9tDhjPBMC','zw1PDa','mtn1sMn4yKK','tw9KzwW','Dg90ywW','z2v0','AM9PBG','C2vUzej1zgDLDefSzxj0','z2v0rgf5s2v5','z2v0vxnHz2u','zxHWB3j0vxnHz2veyxrH','ywDLBNrjza','C2v0','ChvZAa','z2v0rgf5','y2fSy3vSyxrLq29ZDa','D2fYBG','mJC2wgfgrvvs','BgfZDefSzxj0vgLTzxm','Bw9KzwXjza','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','rMfPBgvKihrVihrYywnRihvZywDL','Dg9Rzw5Z','zNjVBq','Bwf4','ugvYAw9K','zw50CMLLCW','z2v0tw9UDgHlzxK','D2vLA2X5','zM9YrwfJAa','z2v0uMvTywLUAw5NqNvKz2v0','tu9oveHmwq','z2v0rNvSBfLLyxi','zxjYB3i','mZaZotnMvKPcCue','CgfKu3rHCNq','yNvKz2v0CW','yNLbz2vUDa','y3jLyxrLrw1WDhLvC2fNzq','Aw5MBW','mZu5ndCYshnAswDM','yNvKz2v0qwXLCNq','qNvKz2v0igXPBwL0igv4y2vLzgvK','DgHYzxnOB2XKx3jLywnOzwq','nJG0Ae5QyKfo','rgfPBhK','y2HLy2TuAhjLC2HVBgrbBgvYDhm','vxnHz2uGDhjHy2TLza','yNLnB2rLBa','CMvXDwvZDhm','mtCXoxbQt3PQDW','C29YDa','zgfPBhK','q29ZDa','mJq2D0jMzgz6','nJyWmJG2mM5WvMPbqW','ote4uuvTqKPT','DxbKyxrLvxnHz2vfBNrYEq','nZK3n3bvEuH2AW','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','B3v0Chv0','y3n2','C2v0DxbqzxjPB2rPy1nHDMu','Dg9WqwDLBNrZ','C3bSAxq','nZy5mgfnCun5wq','mZv1zhjxzgS','DxnHz2u'];a0_0x2171=function(){return _0x323de0;};return a0_0x2171();}(function(_0xf3ff29,_0x55705b){const _0x289513=a0_0x17cc,_0x1dfc45=_0xf3ff29();while(!![]){try{const _0x1c4b7f=parseInt(_0x289513(0xc1))/0x1*(-parseInt(_0x289513(0xbf))/0x2)+parseInt(_0x289513(0xc3))/0x3*(parseInt(_0x289513(0xd3))/0x4)+parseInt(_0x289513(0xca))/0x5*(parseInt(_0x289513(0xb5))/0x6)+-parseInt(_0x289513(0xcb))/0x7*(parseInt(_0x289513(0xb1))/0x8)+parseInt(_0x289513(0xbb))/0x9*(-parseInt(_0x289513(0xce))/0xa)+parseInt(_0x289513(0xab))/0xb*(-parseInt(_0x289513(0xf6))/0xc)+-parseInt(_0x289513(0xe7))/0xd*(-parseInt(_0x289513(0xc0))/0xe);if(_0x1c4b7f===_0x55705b)break;else _0x1dfc45['push'](_0x1dfc45['shift']());}catch(_0xa48127){_0x1dfc45['push'](_0x1dfc45['shift']());}}}(a0_0x2171,0x1b875));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x17cc(_0x4e93ad,_0x438ba2){_0x4e93ad=_0x4e93ad-0x9e;const _0x21711e=a0_0x2171();let _0x17cc75=_0x21711e[_0x4e93ad];if(a0_0x17cc['ZDzFtr']===undefined){var _0x4b25da=function(_0x487371){const _0x56b808='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f7e60='',_0x565183='';for(let _0x2f1c83=0x0,_0x44e198,_0x3f6654,_0x3b9548=0x0;_0x3f6654=_0x487371['charAt'](_0x3b9548++);~_0x3f6654&&(_0x44e198=_0x2f1c83%0x4?_0x44e198*0x40+_0x3f6654:_0x3f6654,_0x2f1c83++%0x4)?_0x3f7e60+=String['fromCharCode'](0xff&_0x44e198>>(-0x2*_0x2f1c83&0x6)):0x0){_0x3f6654=_0x56b808['indexOf'](_0x3f6654);}for(let _0x34e635=0x0,_0xea2f11=_0x3f7e60['length'];_0x34e635<_0xea2f11;_0x34e635++){_0x565183+='%'+('00'+_0x3f7e60['charCodeAt'](_0x34e635)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x565183);};a0_0x17cc['nHqfMe']=_0x4b25da,a0_0x17cc['ZOTonD']={},a0_0x17cc['ZDzFtr']=!![];}const _0x1f0849=_0x21711e[0x0],_0xa65333=_0x4e93ad+_0x1f0849,_0x94564=a0_0x17cc['ZOTonD'][_0xa65333];return!_0x94564?(_0x17cc75=a0_0x17cc['nHqfMe'](_0x17cc75),a0_0x17cc['ZOTonD'][_0xa65333]=_0x17cc75):_0x17cc75=_0x94564,_0x17cc75;}export class BudgetService{constructor(_0x3f7e60,_0x565183){const _0x20979b=a0_0x17cc;this['config']=_0x3f7e60||{},this[_0x20979b(0xd5)]=_0x565183,this[_0x20979b(0xcc)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x20979b(0xd9)],'weekly':BUDGET_LIMITS[_0x20979b(0xda)],'monthly':BUDGET_LIMITS[_0x20979b(0xa8)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this['setupPeriodicSave']();}[a0_0xb7fd51(0xd0)](_0x2f1c83,_0x44e198,_0x3f6654){const _0x1abf7d=a0_0xb7fd51;try{const _0x3b9548=this[_0x1abf7d(0xf4)](_0x44e198,_0x3f6654),_0x34e635=new Date(),_0xea2f11=this[_0x1abf7d(0xed)](_0x34e635),_0x521a85=this[_0x1abf7d(0xe2)](_0x34e635),_0x1f69e6=this['getMonthKey'](_0x34e635);this['initializeUsageEntry'](this['usage']['daily'],_0xea2f11),this[_0x1abf7d(0xd4)](this['usage']['weekly'],_0x521a85),this[_0x1abf7d(0xd4)](this[_0x1abf7d(0xcc)]['monthly'],_0x1f69e6);const _0x4c8229={'agentId':_0x2f1c83,'modelId':_0x44e198,'tokens':_0x3f6654['total_tokens'],'cost':_0x3b9548,'timestamp':_0x34e635['toISOString']()};return this['updateUsageEntry'](this[_0x1abf7d(0xcc)]['daily'][_0x1abf7d(0xea)](_0xea2f11),_0x4c8229),this['updateUsageEntry'](this['usage']['weekly']['get'](_0x521a85),_0x4c8229),this[_0x1abf7d(0xc2)](this[_0x1abf7d(0xcc)][_0x1abf7d(0xd7)]['get'](_0x1f69e6),_0x4c8229),this['usage'][_0x1abf7d(0xe9)][_0x1abf7d(0x9f)]+=_0x3f6654['total_tokens'],this[_0x1abf7d(0xcc)]['total'][_0x1abf7d(0xd1)]+=_0x3b9548,this[_0x1abf7d(0xcc)][_0x1abf7d(0xe9)]['requests']+=0x1,this['checkBudgetLimits'](_0xea2f11,_0x521a85,_0x1f69e6),this['logger']['info'](_0x1abf7d(0xb8),{'agentId':_0x2f1c83,'modelId':_0x44e198,'tokens':_0x3f6654['total_tokens'],'cost':_0x3b9548,'totalCost':this['usage'][_0x1abf7d(0xe9)]['cost']}),{'cost':_0x3b9548,'totalCost':this[_0x1abf7d(0xcc)]['total'][_0x1abf7d(0xd1)],'totalTokens':this[_0x1abf7d(0xcc)]['total']['tokens'],'dailyUsage':this[_0x1abf7d(0xcc)]['daily']['get'](_0xea2f11),'budgetRemaining':this[_0x1abf7d(0xa7)]()};}catch(_0x21e36d){this['logger'][_0x1abf7d(0xaa)](_0x1abf7d(0x9e),{'error':_0x21e36d['message'],'agentId':_0x2f1c83,'modelId':_0x44e198});throw _0x21e36d;}}['calculateCost'](_0x1c0940,_0x52f518){const _0x31b361=a0_0xb7fd51,_0x2171bc=COST_PER_TOKEN[_0x1c0940];if(!_0x2171bc)return this['logger'][_0x31b361(0xf5)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x1c0940}),0x0;const _0x11b994=(_0x52f518['prompt_tokens']||0x0)*_0x2171bc['input'],_0x461668=(_0x52f518['completion_tokens']||0x0)*_0x2171bc[_0x31b361(0xc5)];return _0x11b994+_0x461668;}[a0_0xb7fd51(0xee)](_0x253ad7='daily',_0x33fe5f=new Date()){const _0x1c3463=a0_0xb7fd51;switch(_0x253ad7){case'daily':return this[_0x1c3463(0xcc)]['daily']['get'](this[_0x1c3463(0xed)](_0x33fe5f))||this[_0x1c3463(0xaf)]();case'weekly':return this['usage']['weekly']['get'](this[_0x1c3463(0xe2)](_0x33fe5f))||this['createEmptyUsage']();case'monthly':return this[_0x1c3463(0xcc)][_0x1c3463(0xd7)]['get'](this[_0x1c3463(0xa4)](_0x33fe5f))||this[_0x1c3463(0xaf)]();case _0x1c3463(0xe9):return{...this['usage'][_0x1c3463(0xe9)]};default:throw new Error('Invalid\x20period:\x20'+_0x253ad7);}}['getAgentUsage'](_0x331fa9,_0x4118e6='daily'){const _0x26d053=a0_0xb7fd51,_0x4b4d76=this[_0x26d053(0xee)](_0x4118e6);return _0x4b4d76[_0x26d053(0xae)]?.[_0x331fa9]||this[_0x26d053(0xaf)]();}['getModelUsage'](_0x55c7c4,_0x4e3896='daily'){const _0x50f505=this['getUsage'](_0x4e3896);return _0x50f505['byModel']?.[_0x55c7c4]||this['createEmptyUsage']();}['setBudgets'](_0x3da2a7){const _0xaf9dbb=a0_0xb7fd51;if(_0x3da2a7['daily']!==undefined)this[_0xaf9dbb(0xad)][_0xaf9dbb(0xbd)]=_0x3da2a7[_0xaf9dbb(0xbd)];if(_0x3da2a7[_0xaf9dbb(0xa5)]!==undefined)this['budgets'][_0xaf9dbb(0xa5)]=_0x3da2a7['weekly'];if(_0x3da2a7[_0xaf9dbb(0xd7)]!==undefined)this['budgets'][_0xaf9dbb(0xd7)]=_0x3da2a7['monthly'];this['logger'][_0xaf9dbb(0xb0)]('Budget\x20limits\x20updated',this[_0xaf9dbb(0xad)]),this['saveUsageData']();}[a0_0xb7fd51(0xa7)](){const _0x5eb65e=a0_0xb7fd51,_0x134eab=new Date(),_0x10e2db=this['getUsage']('daily',_0x134eab),_0xa03ae4=this['getUsage']('weekly',_0x134eab),_0x91b9e8=this['getUsage']('monthly',_0x134eab);return{'daily':Math[_0x5eb65e(0xa1)](0x0,this[_0x5eb65e(0xad)]['daily']-_0x10e2db[_0x5eb65e(0xd1)]),'weekly':Math['max'](0x0,this[_0x5eb65e(0xad)]['weekly']-_0xa03ae4['cost']),'monthly':Math[_0x5eb65e(0xa1)](0x0,this[_0x5eb65e(0xad)][_0x5eb65e(0xd7)]-_0x91b9e8['cost'])};}['isWithinBudget'](_0x37314f=a0_0xb7fd51(0xbd)){const _0x32f0b7=a0_0xb7fd51,_0x374ee3=this['getUsage'](_0x37314f),_0x7b12aa=this['budgets'][_0x37314f];return _0x374ee3[_0x32f0b7(0xd1)]<=_0x7b12aa;}['getUsageTrends'](_0x44f23e=0x1e){const _0x568de5=a0_0xb7fd51,_0x5bc312={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x1119ae=new Date();let _0xb426f=0x0,_0x115c5f=0x0,_0x1868e6=0x0;const _0x1cd0b2=new Map(),_0x594c87=new Map();for(let _0x36b1d6=0x0;_0x36b1d6<_0x44f23e;_0x36b1d6++){const _0x2f1d95=new Date(_0x1119ae);_0x2f1d95['setDate'](_0x2f1d95[_0x568de5(0xe3)]()-_0x36b1d6);const _0x196ee6=this['getDayKey'](_0x2f1d95),_0x4df06a=this['usage'][_0x568de5(0xbd)][_0x568de5(0xea)](_0x196ee6);_0x4df06a?(_0xb426f+=_0x4df06a[_0x568de5(0xd1)],_0x115c5f+=_0x4df06a[_0x568de5(0x9f)],_0x1868e6+=_0x4df06a[_0x568de5(0xba)],_0x5bc312['costByDay'][_0x568de5(0xd8)]({'date':_0x196ee6,'cost':_0x4df06a['cost']}),_0x5bc312['tokensByDay']['unshift']({'date':_0x196ee6,'tokens':_0x4df06a[_0x568de5(0x9f)]}),Object[_0x568de5(0xa3)](_0x4df06a['byAgent']||{})['forEach'](([_0x3ca1db,_0x2562d3])=>{const _0x2faae0=_0x568de5;!_0x1cd0b2[_0x2faae0(0xdc)](_0x3ca1db)&&_0x1cd0b2['set'](_0x3ca1db,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x44c94e=_0x1cd0b2['get'](_0x3ca1db);_0x44c94e['cost']+=_0x2562d3['cost'],_0x44c94e[_0x2faae0(0x9f)]+=_0x2562d3[_0x2faae0(0x9f)],_0x44c94e[_0x2faae0(0xba)]+=_0x2562d3[_0x2faae0(0xba)];}),Object['entries'](_0x4df06a['byModel']||{})[_0x568de5(0xa6)](([_0x1126d0,_0x3f9df2])=>{!_0x594c87['has'](_0x1126d0)&&_0x594c87['set'](_0x1126d0,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5dd8f9=_0x594c87['get'](_0x1126d0);_0x5dd8f9['cost']+=_0x3f9df2['cost'],_0x5dd8f9['tokens']+=_0x3f9df2['tokens'],_0x5dd8f9['requests']+=_0x3f9df2['requests'];})):(_0x5bc312[_0x568de5(0xe1)][_0x568de5(0xd8)]({'date':_0x196ee6,'cost':0x0}),_0x5bc312[_0x568de5(0xdb)][_0x568de5(0xd8)]({'date':_0x196ee6,'tokens':0x0}));}return _0x5bc312['dailyAverages']['cost']=_0xb426f/_0x44f23e,_0x5bc312['dailyAverages']['tokens']=_0x115c5f/_0x44f23e,_0x5bc312['dailyAverages'][_0x568de5(0xba)]=_0x1868e6/_0x44f23e,_0x5bc312[_0x568de5(0xc8)]=Array['from'](_0x1cd0b2[_0x568de5(0xa3)]())['map'](([_0x5ee248,_0x1c2929])=>({'id':_0x5ee248,..._0x1c2929}))[_0x568de5(0xbc)]((_0x349840,_0x5a5cc3)=>_0x5a5cc3['cost']-_0x349840[_0x568de5(0xd1)])['slice'](0x0,0xa),_0x5bc312['topModels']=Array[_0x568de5(0xa0)](_0x594c87[_0x568de5(0xa3)]())['map'](([_0x2c7c93,_0x5d5c19])=>({'id':_0x2c7c93,..._0x5d5c19}))['sort']((_0x67f7b0,_0x2994e)=>_0x2994e[_0x568de5(0xd1)]-_0x67f7b0[_0x568de5(0xd1)])['slice'](0x0,0xa),_0x5bc312;}[a0_0xb7fd51(0xef)](_0x104a70='json',_0x28b90e=null,_0x24f5db=null){const _0x22e245=a0_0xb7fd51,_0x11c5eb={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x1c61b2=(_0x57580c,_0x2a49a0)=>{const _0x5523da={};return _0x57580c['forEach']((_0x42ce42,_0x2a3cf8)=>{const _0x429a14=_0x2a49a0(_0x2a3cf8);(!_0x28b90e||_0x429a14>=_0x28b90e)&&(!_0x24f5db||_0x429a14<=_0x24f5db)&&(_0x5523da[_0x2a3cf8]=_0x42ce42);}),_0x5523da;};_0x28b90e||_0x24f5db?(_0x11c5eb['daily']=_0x1c61b2(this['usage'][_0x22e245(0xbd)],_0x4c166f=>new Date(_0x4c166f)),_0x11c5eb[_0x22e245(0xa5)]=_0x1c61b2(this[_0x22e245(0xcc)][_0x22e245(0xa5)],_0x45c4d5=>new Date(_0x45c4d5)),_0x11c5eb['monthly']=_0x1c61b2(this['usage'][_0x22e245(0xd7)],_0xe2354a=>new Date(_0xe2354a+_0x22e245(0xd6)))):(this['usage'][_0x22e245(0xbd)]['forEach']((_0x267353,_0x2cccb8)=>_0x11c5eb[_0x22e245(0xbd)][_0x2cccb8]=_0x267353),this[_0x22e245(0xcc)][_0x22e245(0xa5)][_0x22e245(0xa6)]((_0x1486db,_0x4a3742)=>_0x11c5eb[_0x22e245(0xa5)][_0x4a3742]=_0x1486db),this['usage']['monthly']['forEach']((_0xf2b21b,_0x2da091)=>_0x11c5eb[_0x22e245(0xd7)][_0x2da091]=_0xf2b21b));if(_0x104a70===_0x22e245(0xc6))return this[_0x22e245(0xcd)](_0x11c5eb);return JSON[_0x22e245(0xde)](_0x11c5eb,null,0x2);}[a0_0xb7fd51(0xd4)](_0x45640c,_0x493d87){!_0x45640c['has'](_0x493d87)&&_0x45640c['set'](_0x493d87,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0xb7fd51(0xc2)](_0x313bab,_0x5dd00d){const _0x5d313b=a0_0xb7fd51;_0x313bab['cost']+=_0x5dd00d[_0x5d313b(0xd1)],_0x313bab['tokens']+=_0x5dd00d[_0x5d313b(0x9f)],_0x313bab['requests']+=0x1,!_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]&&(_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]=this['createEmptyUsage']()),_0x313bab['byAgent'][_0x5dd00d[_0x5d313b(0xf0)]]['cost']+=_0x5dd00d[_0x5d313b(0xd1)],_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]['tokens']+=_0x5dd00d[_0x5d313b(0x9f)],_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]['requests']+=0x1,!_0x313bab[_0x5d313b(0xb9)][_0x5dd00d[_0x5d313b(0xf8)]]&&(_0x313bab[_0x5d313b(0xb9)][_0x5dd00d[_0x5d313b(0xf8)]]=this['createEmptyUsage']()),_0x313bab[_0x5d313b(0xb9)][_0x5dd00d[_0x5d313b(0xf8)]][_0x5d313b(0xd1)]+=_0x5dd00d[_0x5d313b(0xd1)],_0x313bab['byModel'][_0x5dd00d['modelId']][_0x5d313b(0x9f)]+=_0x5dd00d['tokens'],_0x313bab['byModel'][_0x5dd00d[_0x5d313b(0xf8)]][_0x5d313b(0xba)]+=0x1;}['checkBudgetLimits'](_0x5e6a10,_0x361b99,_0x33425b){const _0x2066a0=a0_0xb7fd51,_0x273a35=this['usage'][_0x2066a0(0xbd)]['get'](_0x5e6a10),_0x3a409e=this[_0x2066a0(0xcc)][_0x2066a0(0xa5)]['get'](_0x361b99),_0x318b85=this['usage']['monthly'][_0x2066a0(0xea)](_0x33425b);_0x273a35[_0x2066a0(0xd1)]>this[_0x2066a0(0xad)]['daily']&&this[_0x2066a0(0xec)]('daily',_0x273a35[_0x2066a0(0xd1)],this[_0x2066a0(0xad)]['daily']),_0x3a409e['cost']>this['budgets']['weekly']&&this['sendBudgetAlert']('weekly',_0x3a409e[_0x2066a0(0xd1)],this[_0x2066a0(0xad)][_0x2066a0(0xa5)]),_0x318b85[_0x2066a0(0xd1)]>this['budgets']['monthly']&&this['sendBudgetAlert']('monthly',_0x318b85['cost'],this[_0x2066a0(0xad)]['monthly']),this['checkThresholdAlerts'](_0x273a35,_0x3a409e,_0x318b85);}[a0_0xb7fd51(0xb7)](_0x33e217,_0x7f0f34,_0x14dc31){const _0x4a320f=a0_0xb7fd51,_0x4cc2dc=this['alerts']['thresholds'];this[_0x4a320f(0xd2)]('daily',_0x33e217[_0x4a320f(0xd1)],this['budgets'][_0x4a320f(0xbd)],_0x4cc2dc),this['checkThreshold']('weekly',_0x7f0f34[_0x4a320f(0xd1)],this[_0x4a320f(0xad)][_0x4a320f(0xa5)],_0x4cc2dc),this['checkThreshold']('monthly',_0x14dc31['cost'],this['budgets'][_0x4a320f(0xd7)],_0x4cc2dc);}['checkThreshold'](_0x527efa,_0x4f08ab,_0x5a8f69,_0x5cd046){const _0x45db19=a0_0xb7fd51,_0x1c1556=_0x4f08ab/_0x5a8f69*0x64;for(const _0x44b8ae of _0x5cd046){if(_0x1c1556>=_0x44b8ae){const _0x324d59=_0x527efa+'_'+_0x44b8ae,_0x51ca53=this['alerts']['lastAlertTimes'][_0x45db19(0xea)](_0x324d59),_0x11c76d=Date[_0x45db19(0xe4)]();(!_0x51ca53||_0x11c76d-_0x51ca53>0x36ee80)&&(this['sendThresholdAlert'](_0x527efa,_0x1c1556,_0x44b8ae,_0x4f08ab,_0x5a8f69),this['alerts'][_0x45db19(0xf7)][_0x45db19(0xf1)](_0x324d59,_0x11c76d));break;}}}['sendBudgetAlert'](_0x4e677b,_0x48e9c2,_0x5eeb9e){const _0x1ce701=a0_0xb7fd51;this[_0x1ce701(0xd5)][_0x1ce701(0xf5)](_0x1ce701(0xb3),{'period':_0x4e677b,'currentUsage':_0x48e9c2,'budgetLimit':_0x5eeb9e,'excess':_0x48e9c2-_0x5eeb9e}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':'budget_exceeded','period':_0x4e677b,'currentUsage':_0x48e9c2,'budgetLimit':_0x5eeb9e,'excess':_0x48e9c2-_0x5eeb9e});}['sendThresholdAlert'](_0x41a504,_0x739ab9,_0x4be1ea,_0x2d5cbb,_0x1280ec){const _0x391f18=a0_0xb7fd51;this[_0x391f18(0xd5)]['warn'](_0x391f18(0xc4),{'period':_0x41a504,'percentage':Math['round'](_0x739ab9),'threshold':_0x4be1ea,'usage':_0x2d5cbb,'budget':_0x1280ec}),typeof process!=='undefined'&&process['emit']&&process[_0x391f18(0xe6)](_0x391f18(0xb2),{'type':_0x391f18(0xb4),'period':_0x41a504,'percentage':Math[_0x391f18(0xdd)](_0x739ab9),'threshold':_0x4be1ea,'usage':_0x2d5cbb,'budget':_0x1280ec});}[a0_0xb7fd51(0xed)](_0x2e45e7){const _0x8a0504=a0_0xb7fd51;return _0x2e45e7['toISOString']()[_0x8a0504(0xc9)]('T')[0x0];}[a0_0xb7fd51(0xe2)](_0x115935){const _0x7bc41a=a0_0xb7fd51,_0x4c07ac=_0x115935['getFullYear'](),_0x5ad7ff=this['getWeekNumber'](_0x115935);return _0x4c07ac+'-W'+_0x5ad7ff[_0x7bc41a(0xe5)]()[_0x7bc41a(0xac)](0x2,'0');}['getMonthKey'](_0x3a548f){const _0x59ccb3=a0_0xb7fd51,_0x4caf83=_0x3a548f[_0x59ccb3(0xa9)](),_0x1d0b5d=_0x3a548f['getMonth']()+0x1;return _0x4caf83+'-'+_0x1d0b5d[_0x59ccb3(0xe5)]()[_0x59ccb3(0xac)](0x2,'0');}['getWeekNumber'](_0x21d0af){const _0x53882e=a0_0xb7fd51,_0x46688f=new Date(_0x21d0af[_0x53882e(0xa9)](),0x0,0x1),_0x22520f=(_0x21d0af-_0x46688f)/0x5265c00;return Math['ceil']((_0x22520f+_0x46688f[_0x53882e(0xf3)]()+0x1)/0x7);}['convertToCSV'](_0x291436){const _0x3a1c93=a0_0xb7fd51,_0x332451=[];return _0x332451[_0x3a1c93(0xf2)]([_0x3a1c93(0xa2),'Date',_0x3a1c93(0xbe),'Tokens',_0x3a1c93(0xcf),'Agent',_0x3a1c93(0xe8)]),Object[_0x3a1c93(0xa3)](_0x291436['daily'])[_0x3a1c93(0xa6)](([_0x27dd67,_0x57bfec])=>{const _0x1a4441=_0x3a1c93;_0x332451['push']([_0x1a4441(0xb6),_0x27dd67,_0x57bfec['cost'],_0x57bfec['tokens'],_0x57bfec['requests'],'','']),Object['entries'](_0x57bfec['byAgent']||{})[_0x1a4441(0xa6)](([_0x7c0778,_0x2a3250])=>{const _0x1deb62=_0x1a4441;_0x332451['push']([_0x1deb62(0xb6),_0x27dd67,_0x2a3250['cost'],_0x2a3250['tokens'],_0x2a3250[_0x1deb62(0xba)],_0x7c0778,'']);});}),_0x332451['map'](_0x5340f8=>_0x5340f8['join'](','))[_0x3a1c93(0xeb)]('\x0a');}[a0_0xb7fd51(0xe0)](){const _0x46f2b2=a0_0xb7fd51;try{this[_0x46f2b2(0xd5)][_0x46f2b2(0xb0)](_0x46f2b2(0xf9));}catch(_0x412c00){this['logger']['error']('Failed\x20to\x20load\x20usage\x20data',{'error':_0x412c00[_0x46f2b2(0xdf)]});}}['saveUsageData'](){const _0x5ac466=a0_0xb7fd51;try{this[_0x5ac466(0xd5)]['debug']('Usage\x20data\x20saved');}catch(_0x2878d5){this[_0x5ac466(0xd5)][_0x5ac466(0xaa)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x2878d5[_0x5ac466(0xdf)]});}}[a0_0xb7fd51(0xc7)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
1
+ const a0_0x217561=a0_0x13ec;function a0_0x57bf(){const _0xa518bc=['tw9KzwW','C2v0qNvKz2v0CW','veHsrvnit0XeuW','zgfPBhLbDMvYywDLCW','y2HLy2TcDwrNzxrmAw1PDhm','mZeXotC3nfLRrwTcEa','ywDLBNrjza','Dw5ZAgLMDa','Aw5WDxq','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgq','zM9YrwfJAa','ndyYmJe1Dfjfwuvm','y29ZDa','rgfPBhK','mJCWndy3mwHIDuHgzG','zxjYB3i','z2v0rNvSBfLLyxi','C29YDa','C2f2zvvZywDLrgf0yq','yNvKz2v0qwXLCNq','vxnHz2uGzgf0ysbZyxzLza','CMvXDwvZDhm','nJG5nJq2nfLHqLPQsG','C2v0','mZbUqNLdt3u','y29TCgXLDgLVBL90B2TLBNm','yNLbz2vUDa','nty5otuYnM9XAhfdqq','z2v0','z2v0qwDLBNrvC2fNzq','ChvZAa','CM91BMq','zw1PDa','mtK1otK1B05QvKnz','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','ltaX','Bw9KzwXjza','y2fSy3vSyxrLq29ZDa','qNvKz2v0igXPBwL0CYb1CgrHDgvK','C2v0DxbqzxjPB2rPy1nHDMu','Dg9Rzw5Z','mJe0nJy0nhrsA3Hrsq','BwvZC2fNzq','Aw5MBW','zgvIDwC','z2v0rgf5','y3n2','Bg9Nz2vY','AgfZ','Dg9ju09tDhjPBMC','AM9PBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','z2v0v2vLA0TLEq','zgfPBhK','D2vLA2X5','Bwf4','AxnxAxrOAw5cDwrNzxq','z2v0tw9UDgHlzxK','y3jLyxrLrw1WDhLvC2fNzq','mtb2sNPiyxO','mJHZCKzqA2S','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','z2v0v2vLA051BwjLCG','Dg9Wtw9KzwXZ','Dw5KzwzPBMvK','Bw9UDgHSEq','Dg9tDhjPBMC','ywXLCNrZ','z2v0rgf5s2v5','z2v0uMvTywLUAw5NqNvKz2v0','C2v0rgf0zq','z2v0vxnHz2u','D2fYBG','DxbKyxrLvxnHz2vfBNrYEq','y29UDMvYDfrVq1nw','zw50CMLLCW','Dg90ywW','rMfPBgvKihrVihrYywnRihvZywDL','Bg9HzfvZywDLrgf0yq','C2vUzej1zgDLDefSzxj0','yNLnB2rLBa','C3rYAw5NAwz5','CgfKu3rHCNq','tu9oveHmwq','y29ZDej5rgf5','ugvYAw9K','DxnHz2u','BM93','yNvKz2v0CW'];a0_0x57bf=function(){return _0xa518bc;};return a0_0x57bf();}function a0_0x13ec(_0x300fd9,_0x2d7354){_0x300fd9=_0x300fd9-0xdc;const _0x57bf36=a0_0x57bf();let _0x13ec9e=_0x57bf36[_0x300fd9];if(a0_0x13ec['yskFVh']===undefined){var _0x149fe5=function(_0x2d6bc7){const _0x635e84='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14147f='',_0x4cca03='';for(let _0x2d7d37=0x0,_0x4ebf98,_0x10c343,_0x1a6a7b=0x0;_0x10c343=_0x2d6bc7['charAt'](_0x1a6a7b++);~_0x10c343&&(_0x4ebf98=_0x2d7d37%0x4?_0x4ebf98*0x40+_0x10c343:_0x10c343,_0x2d7d37++%0x4)?_0x14147f+=String['fromCharCode'](0xff&_0x4ebf98>>(-0x2*_0x2d7d37&0x6)):0x0){_0x10c343=_0x635e84['indexOf'](_0x10c343);}for(let _0x3c0724=0x0,_0x510704=_0x14147f['length'];_0x3c0724<_0x510704;_0x3c0724++){_0x4cca03+='%'+('00'+_0x14147f['charCodeAt'](_0x3c0724)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4cca03);};a0_0x13ec['SSLJHd']=_0x149fe5,a0_0x13ec['FPkitN']={},a0_0x13ec['yskFVh']=!![];}const _0x2a80ec=_0x57bf36[0x0],_0x329e4a=_0x300fd9+_0x2a80ec,_0x3326ad=a0_0x13ec['FPkitN'][_0x329e4a];return!_0x3326ad?(_0x13ec9e=a0_0x13ec['SSLJHd'](_0x13ec9e),a0_0x13ec['FPkitN'][_0x329e4a]=_0x13ec9e):_0x13ec9e=_0x3326ad,_0x13ec9e;}(function(_0x33183e,_0x5e4128){const _0x1ccb75=a0_0x13ec,_0x51ef89=_0x33183e();while(!![]){try{const _0x52b11e=parseInt(_0x1ccb75(0x11a))/0x1*(parseInt(_0x1ccb75(0x135))/0x2)+parseInt(_0x1ccb75(0x122))/0x3+-parseInt(_0x1ccb75(0x136))/0x4*(parseInt(_0x1ccb75(0x104))/0x5)+-parseInt(_0x1ccb75(0x114))/0x6+parseInt(_0x1ccb75(0xfd))/0x7+parseInt(_0x1ccb75(0x10f))/0x8+parseInt(_0x1ccb75(0x107))/0x9*(-parseInt(_0x1ccb75(0x111))/0xa);if(_0x52b11e===_0x5e4128)break;else _0x51ef89['push'](_0x51ef89['shift']());}catch(_0xb7ce1e){_0x51ef89['push'](_0x51ef89['shift']());}}}(a0_0x57bf,0x7b36c));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x14147f,_0x4cca03){const _0x216e9a=a0_0x13ec;this['config']=_0x14147f||{},this[_0x216e9a(0x128)]=_0x4cca03,this[_0x216e9a(0xf5)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x216e9a(0xf2)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x216e9a(0xfa)],'lastAlertTimes':new Map()},this[_0x216e9a(0xed)](),this[_0x216e9a(0x120)]();}['trackUsage'](_0x2d7d37,_0x4ebf98,_0x10c343){const _0x17c130=a0_0x13ec;try{const _0x1a6a7b=this[_0x17c130(0x11e)](_0x4ebf98,_0x10c343),_0x3c0724=new Date(),_0x510704=this[_0x17c130(0xe3)](_0x3c0724),_0x729664=this['getWeekKey'](_0x3c0724),_0x23f193=this[_0x17c130(0x133)](_0x3c0724);this['initializeUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0x12f)],_0x510704),this[_0x17c130(0x101)](this['usage'][_0x17c130(0x130)],_0x729664),this['initializeUsageEntry'](this['usage'][_0x17c130(0xe0)],_0x23f193);const _0xf27d99={'agentId':_0x2d7d37,'modelId':_0x4ebf98,'tokens':_0x10c343['total_tokens'],'cost':_0x1a6a7b,'timestamp':_0x3c0724[_0x17c130(0x12a)]()};return this['updateUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0x12f)][_0x17c130(0x115)](_0x510704),_0xf27d99),this[_0x17c130(0xe8)](this['usage'][_0x17c130(0x130)][_0x17c130(0x115)](_0x729664),_0xf27d99),this['updateUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0xe0)]['get'](_0x23f193),_0xf27d99),this['usage']['total']['tokens']+=_0x10c343['total_tokens'],this[_0x17c130(0xf5)][_0x17c130(0xeb)]['cost']+=_0x1a6a7b,this[_0x17c130(0xf5)]['total']['requests']+=0x1,this[_0x17c130(0xfc)](_0x510704,_0x729664,_0x23f193),this[_0x17c130(0x128)][_0x17c130(0x124)]('Usage\x20tracked',{'agentId':_0x2d7d37,'modelId':_0x4ebf98,'tokens':_0x10c343['total_tokens'],'cost':_0x1a6a7b,'totalCost':this[_0x17c130(0xf5)][_0x17c130(0xeb)]['cost']}),{'cost':_0x1a6a7b,'totalCost':this[_0x17c130(0xf5)][_0x17c130(0xeb)][_0x17c130(0x105)],'totalTokens':this[_0x17c130(0xf5)][_0x17c130(0xeb)]['tokens'],'dailyUsage':this['usage']['daily'][_0x17c130(0x115)](_0x510704),'budgetRemaining':this[_0x17c130(0xe4)]()};}catch(_0x77516b){this[_0x17c130(0x128)][_0x17c130(0x108)](_0x17c130(0xec),{'error':_0x77516b['message'],'agentId':_0x2d7d37,'modelId':_0x4ebf98});throw _0x77516b;}}[a0_0x217561(0x11e)](_0x2b5540,_0x519d69){const _0x315ae3=a0_0x217561,_0x41b135=COST_PER_TOKEN[_0x2b5540];if(!_0x41b135)return this[_0x315ae3(0x128)][_0x315ae3(0xe7)](_0x315ae3(0x11b),{'modelId':_0x2b5540}),0x0;const _0x2a84d4=(_0x519d69['prompt_tokens']||0x0)*_0x41b135[_0x315ae3(0x100)],_0x387090=(_0x519d69[_0x315ae3(0x112)]||0x0)*_0x41b135['output'];return _0x2a84d4+_0x387090;}['getUsage'](_0x1aac1b=a0_0x217561(0x12f),_0x42b8ca=new Date()){const _0xf689d8=a0_0x217561;switch(_0x1aac1b){case _0xf689d8(0x12f):return this['usage']['daily'][_0xf689d8(0x115)](this[_0xf689d8(0xe3)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0x130):return this['usage']['weekly'][_0xf689d8(0x115)](this[_0xf689d8(0x12e)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0xe0):return this['usage'][_0xf689d8(0xe0)]['get'](this[_0xf689d8(0x133)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0xeb):return{...this['usage'][_0xf689d8(0xeb)]};default:throw new Error('Invalid\x20period:\x20'+_0x1aac1b);}}[a0_0x217561(0x116)](_0x2ed630,_0x5076de='daily'){const _0xc22988=a0_0x217561,_0x38b790=this[_0xc22988(0xe6)](_0x5076de);return _0x38b790['byAgent']?.[_0x2ed630]||this[_0xc22988(0x134)]();}['getModelUsage'](_0x3d9f24,_0x48143c=a0_0x217561(0x12f)){const _0x1287a0=this['getUsage'](_0x48143c);return _0x1287a0['byModel']?.[_0x3d9f24]||this['createEmptyUsage']();}[a0_0x217561(0xf9)](_0x194c1e){const _0x554f7c=a0_0x217561;if(_0x194c1e[_0x554f7c(0x12f)]!==undefined)this['budgets'][_0x554f7c(0x12f)]=_0x194c1e['daily'];if(_0x194c1e[_0x554f7c(0x130)]!==undefined)this['budgets']['weekly']=_0x194c1e['weekly'];if(_0x194c1e['monthly']!==undefined)this['budgets'][_0x554f7c(0xe0)]=_0x194c1e[_0x554f7c(0xe0)];this[_0x554f7c(0x128)][_0x554f7c(0x124)](_0x554f7c(0x11f),this['budgets']),this[_0x554f7c(0x10b)]();}[a0_0x217561(0xe4)](){const _0x41f3f5=a0_0x217561,_0x48ee8e=new Date(),_0x25c991=this[_0x41f3f5(0xe6)](_0x41f3f5(0x12f),_0x48ee8e),_0x1fc40f=this['getUsage']('weekly',_0x48ee8e),_0x208f61=this[_0x41f3f5(0xe6)](_0x41f3f5(0xe0),_0x48ee8e);return{'daily':Math['max'](0x0,this[_0x41f3f5(0xf7)][_0x41f3f5(0x12f)]-_0x25c991[_0x41f3f5(0x105)]),'weekly':Math[_0x41f3f5(0x131)](0x0,this['budgets']['weekly']-_0x1fc40f[_0x41f3f5(0x105)]),'monthly':Math['max'](0x0,this[_0x41f3f5(0xf7)]['monthly']-_0x208f61[_0x41f3f5(0x105)])};}[a0_0x217561(0x132)](_0x24a527=a0_0x217561(0x12f)){const _0x2a317d=a0_0x217561,_0x411697=this[_0x2a317d(0xe6)](_0x24a527),_0xa427e6=this[_0x2a317d(0xf7)][_0x24a527];return _0x411697['cost']<=_0xa427e6;}['getUsageTrends'](_0x24b92b=0x1e){const _0x25a917=a0_0x217561,_0x4b21f3={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xe23d47=new Date();let _0x2b4738=0x0,_0x166544=0x0,_0x11692d=0x0;const _0x3e2a51=new Map(),_0x462993=new Map();for(let _0x40d972=0x0;_0x40d972<_0x24b92b;_0x40d972++){const _0x4b95fc=new Date(_0xe23d47);_0x4b95fc[_0x25a917(0xe5)](_0x4b95fc['getDate']()-_0x40d972);const _0x4d9d20=this[_0x25a917(0xe3)](_0x4b95fc),_0x287076=this[_0x25a917(0xf5)][_0x25a917(0x12f)][_0x25a917(0x115)](_0x4d9d20);_0x287076?(_0x2b4738+=_0x287076[_0x25a917(0x105)],_0x166544+=_0x287076['tokens'],_0x11692d+=_0x287076[_0x25a917(0x10e)],_0x4b21f3[_0x25a917(0xf3)]['unshift']({'date':_0x4d9d20,'cost':_0x287076[_0x25a917(0x105)]}),_0x4b21f3['tokensByDay']['unshift']({'date':_0x4d9d20,'tokens':_0x287076[_0x25a917(0x121)]}),Object['entries'](_0x287076[_0x25a917(0x113)]||{})['forEach'](([_0x18bfdf,_0x1cc974])=>{const _0x1c2a48=_0x25a917;!_0x3e2a51['has'](_0x18bfdf)&&_0x3e2a51['set'](_0x18bfdf,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x22d6fa=_0x3e2a51['get'](_0x18bfdf);_0x22d6fa[_0x1c2a48(0x105)]+=_0x1cc974[_0x1c2a48(0x105)],_0x22d6fa['tokens']+=_0x1cc974[_0x1c2a48(0x121)],_0x22d6fa[_0x1c2a48(0x10e)]+=_0x1cc974['requests'];}),Object['entries'](_0x287076['byModel']||{})['forEach'](([_0x6fb98,_0x2c98d8])=>{const _0x38818c=_0x25a917;!_0x462993[_0x38818c(0x129)](_0x6fb98)&&_0x462993[_0x38818c(0x110)](_0x6fb98,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5f0ec3=_0x462993[_0x38818c(0x115)](_0x6fb98);_0x5f0ec3[_0x38818c(0x105)]+=_0x2c98d8['cost'],_0x5f0ec3['tokens']+=_0x2c98d8['tokens'],_0x5f0ec3[_0x38818c(0x10e)]+=_0x2c98d8['requests'];})):(_0x4b21f3[_0x25a917(0xf3)]['unshift']({'date':_0x4d9d20,'cost':0x0}),_0x4b21f3['tokensByDay'][_0x25a917(0xff)]({'date':_0x4d9d20,'tokens':0x0}));}return _0x4b21f3[_0x25a917(0xfb)][_0x25a917(0x105)]=_0x2b4738/_0x24b92b,_0x4b21f3['dailyAverages'][_0x25a917(0x121)]=_0x166544/_0x24b92b,_0x4b21f3[_0x25a917(0xfb)]['requests']=_0x11692d/_0x24b92b,_0x4b21f3['topAgents']=Array['from'](_0x3e2a51[_0x25a917(0xea)]())['map'](([_0x23d63b,_0x5c0205])=>({'id':_0x23d63b,..._0x5c0205}))[_0x25a917(0x10a)]((_0x5779af,_0x5ebd0a)=>_0x5ebd0a[_0x25a917(0x105)]-_0x5779af['cost'])['slice'](0x0,0xa),_0x4b21f3[_0x25a917(0xde)]=Array['from'](_0x462993['entries']())['map'](([_0x1a0d8a,_0x3e08cd])=>({'id':_0x1a0d8a,..._0x3e08cd}))['sort']((_0x1fbcfa,_0x424e92)=>_0x424e92[_0x25a917(0x105)]-_0x1fbcfa[_0x25a917(0x105)])['slice'](0x0,0xa),_0x4b21f3;}['exportUsageData'](_0x31ecd2='json',_0x1e2533=null,_0x257007=null){const _0x77f78d=a0_0x217561,_0x3cdd1f={'budgets':this[_0x77f78d(0xf7)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0xaf8f56=(_0x381634,_0x1ed313)=>{const _0x550172=_0x77f78d,_0x55f07b={};return _0x381634[_0x550172(0x103)]((_0xc584d6,_0x1f77ef)=>{const _0x256f6c=_0x1ed313(_0x1f77ef);(!_0x1e2533||_0x256f6c>=_0x1e2533)&&(!_0x257007||_0x256f6c<=_0x257007)&&(_0x55f07b[_0x1f77ef]=_0xc584d6);}),_0x55f07b;};_0x1e2533||_0x257007?(_0x3cdd1f['daily']=_0xaf8f56(this['usage']['daily'],_0x42e02a=>new Date(_0x42e02a)),_0x3cdd1f[_0x77f78d(0x130)]=_0xaf8f56(this[_0x77f78d(0xf5)][_0x77f78d(0x130)],_0x52206=>new Date(_0x52206)),_0x3cdd1f['monthly']=_0xaf8f56(this[_0x77f78d(0xf5)]['monthly'],_0x5bcdb2=>new Date(_0x5bcdb2+_0x77f78d(0x11c)))):(this[_0x77f78d(0xf5)]['daily']['forEach']((_0x1181b5,_0x20ef2d)=>_0x3cdd1f[_0x77f78d(0x12f)][_0x20ef2d]=_0x1181b5),this['usage']['weekly'][_0x77f78d(0x103)]((_0x2995c4,_0x2ec233)=>_0x3cdd1f[_0x77f78d(0x130)][_0x2ec233]=_0x2995c4),this['usage'][_0x77f78d(0xe0)][_0x77f78d(0x103)]((_0x59e4da,_0x5cf716)=>_0x3cdd1f[_0x77f78d(0xe0)][_0x5cf716]=_0x59e4da));if(_0x31ecd2===_0x77f78d(0x127))return this['convertToCSV'](_0x3cdd1f);return JSON[_0x77f78d(0xf0)](_0x3cdd1f,null,0x2);}[a0_0x217561(0x101)](_0x3a3d28,_0x374344){const _0x5e72db=a0_0x217561;!_0x3a3d28[_0x5e72db(0x129)](_0x374344)&&_0x3a3d28['set'](_0x374344,this[_0x5e72db(0x134)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x217561(0xe8)](_0x181626,_0x1d61d5){const _0xa59ae0=a0_0x217561;_0x181626[_0xa59ae0(0x105)]+=_0x1d61d5['cost'],_0x181626['tokens']+=_0x1d61d5['tokens'],_0x181626['requests']+=0x1,!_0x181626[_0xa59ae0(0x113)][_0x1d61d5['agentId']]&&(_0x181626[_0xa59ae0(0x113)][_0x1d61d5[_0xa59ae0(0xfe)]]=this['createEmptyUsage']()),_0x181626['byAgent'][_0x1d61d5['agentId']]['cost']+=_0x1d61d5[_0xa59ae0(0x105)],_0x181626['byAgent'][_0x1d61d5[_0xa59ae0(0xfe)]][_0xa59ae0(0x121)]+=_0x1d61d5['tokens'],_0x181626[_0xa59ae0(0x113)][_0x1d61d5['agentId']][_0xa59ae0(0x10e)]+=0x1,!_0x181626[_0xa59ae0(0xef)][_0x1d61d5[_0xa59ae0(0x11d)]]&&(_0x181626[_0xa59ae0(0xef)][_0x1d61d5['modelId']]=this[_0xa59ae0(0x134)]()),_0x181626['byModel'][_0x1d61d5[_0xa59ae0(0x11d)]]['cost']+=_0x1d61d5['cost'],_0x181626['byModel'][_0x1d61d5['modelId']]['tokens']+=_0x1d61d5['tokens'],_0x181626[_0xa59ae0(0xef)][_0x1d61d5[_0xa59ae0(0x11d)]]['requests']+=0x1;}['checkBudgetLimits'](_0x57e9aa,_0x4b221f,_0x571ced){const _0x3d9da5=a0_0x217561,_0x4f61be=this['usage']['daily']['get'](_0x57e9aa),_0x4e2073=this[_0x3d9da5(0xf5)][_0x3d9da5(0x130)]['get'](_0x4b221f),_0xba7b0d=this['usage'][_0x3d9da5(0xe0)]['get'](_0x571ced);_0x4f61be[_0x3d9da5(0x105)]>this['budgets'][_0x3d9da5(0x12f)]&&this[_0x3d9da5(0xee)](_0x3d9da5(0x12f),_0x4f61be['cost'],this[_0x3d9da5(0xf7)]['daily']),_0x4e2073[_0x3d9da5(0x105)]>this['budgets'][_0x3d9da5(0x130)]&&this[_0x3d9da5(0xee)]('weekly',_0x4e2073['cost'],this['budgets']['weekly']),_0xba7b0d['cost']>this['budgets'][_0x3d9da5(0xe0)]&&this['sendBudgetAlert'](_0x3d9da5(0xe0),_0xba7b0d[_0x3d9da5(0x105)],this[_0x3d9da5(0xf7)][_0x3d9da5(0xe0)]),this[_0x3d9da5(0x12c)](_0x4f61be,_0x4e2073,_0xba7b0d);}['checkThresholdAlerts'](_0x227a4f,_0xf9a288,_0x43050b){const _0x5b8ca9=a0_0x217561,_0x1e248a=this[_0x5b8ca9(0xe2)]['thresholds'];this[_0x5b8ca9(0x102)]('daily',_0x227a4f[_0x5b8ca9(0x105)],this['budgets']['daily'],_0x1e248a),this['checkThreshold']('weekly',_0xf9a288['cost'],this['budgets']['weekly'],_0x1e248a),this[_0x5b8ca9(0x102)](_0x5b8ca9(0xe0),_0x43050b['cost'],this['budgets']['monthly'],_0x1e248a);}['checkThreshold'](_0xea0b8,_0x4bd446,_0x459c05,_0x3a573f){const _0x2b3a03=a0_0x217561,_0x2270c8=_0x4bd446/_0x459c05*0x64;for(const _0x2bef94 of _0x3a573f){if(_0x2270c8>=_0x2bef94){const _0x4c6949=_0xea0b8+'_'+_0x2bef94,_0x2e466f=this['alerts']['lastAlertTimes'][_0x2b3a03(0x115)](_0x4c6949),_0x4bbc0d=Date[_0x2b3a03(0xf6)]();(!_0x2e466f||_0x4bbc0d-_0x2e466f>0x36ee80)&&(this['sendThresholdAlert'](_0xea0b8,_0x2270c8,_0x2bef94,_0x4bd446,_0x459c05),this[_0x2b3a03(0xe2)]['lastAlertTimes']['set'](_0x4c6949,_0x4bbc0d));break;}}}['sendBudgetAlert'](_0xd3279b,_0x3bee18,_0x58fc45){const _0x4502fa=a0_0x217561;this[_0x4502fa(0x128)]['warn']('Budget\x20limit\x20exceeded',{'period':_0xd3279b,'currentUsage':_0x3bee18,'budgetLimit':_0x58fc45,'excess':_0x3bee18-_0x58fc45}),typeof process!==_0x4502fa(0xdf)&&process['emit']&&process['emit'](_0x4502fa(0x10c),{'type':'budget_exceeded','period':_0xd3279b,'currentUsage':_0x3bee18,'budgetLimit':_0x58fc45,'excess':_0x3bee18-_0x58fc45});}['sendThresholdAlert'](_0x10daef,_0xda7a02,_0x4bada0,_0x85c5e4,_0x1ca49d){const _0x3ef901=a0_0x217561;this['logger'][_0x3ef901(0xe7)]('Budget\x20threshold\x20reached',{'period':_0x10daef,'percentage':Math[_0x3ef901(0x118)](_0xda7a02),'threshold':_0x4bada0,'usage':_0x85c5e4,'budget':_0x1ca49d}),typeof process!=='undefined'&&process[_0x3ef901(0x119)]&&process['emit']('budgetAlert',{'type':'threshold_reached','period':_0x10daef,'percentage':Math['round'](_0xda7a02),'threshold':_0x4bada0,'usage':_0x85c5e4,'budget':_0x1ca49d});}['getDayKey'](_0x371b93){const _0x480e50=a0_0x217561;return _0x371b93[_0x480e50(0x12a)]()['split']('T')[0x0];}['getWeekKey'](_0x3abe69){const _0x276238=a0_0x217561,_0xf28f4c=_0x3abe69[_0x276238(0x109)](),_0x228d6c=this['getWeekNumber'](_0x3abe69);return _0xf28f4c+'-W'+_0x228d6c['toString']()['padStart'](0x2,'0');}[a0_0x217561(0x133)](_0x2fdc1c){const _0xca4e02=a0_0x217561,_0x12528d=_0x2fdc1c[_0xca4e02(0x109)](),_0x494e08=_0x2fdc1c['getMonth']()+0x1;return _0x12528d+'-'+_0x494e08[_0xca4e02(0xe1)]()[_0xca4e02(0xf1)](0x2,'0');}[a0_0x217561(0xdd)](_0x1c8d3a){const _0x3ac5e8=a0_0x217561,_0x176bbf=new Date(_0x1c8d3a['getFullYear'](),0x0,0x1),_0x36760=(_0x1c8d3a-_0x176bbf)/0x5265c00;return Math['ceil']((_0x36760+_0x176bbf[_0x3ac5e8(0x126)]()+0x1)/0x7);}[a0_0x217561(0xe9)](_0x34c050){const _0x1f81fa=a0_0x217561,_0x4a8df8=[];return _0x4a8df8[_0x1f81fa(0x117)]([_0x1f81fa(0xf4),'Date','Cost','Tokens','Requests','Agent',_0x1f81fa(0xf8)]),Object['entries'](_0x34c050[_0x1f81fa(0x12f)])['forEach'](([_0x55aae6,_0x298d2e])=>{const _0x17871a=_0x1f81fa;_0x4a8df8[_0x17871a(0x117)](['Daily',_0x55aae6,_0x298d2e[_0x17871a(0x105)],_0x298d2e['tokens'],_0x298d2e['requests'],'','']),Object['entries'](_0x298d2e['byAgent']||{})['forEach'](([_0x1ea794,_0x4161a2])=>{const _0x432cdd=_0x17871a;_0x4a8df8['push']([_0x432cdd(0x106),_0x55aae6,_0x4161a2[_0x432cdd(0x105)],_0x4161a2[_0x432cdd(0x121)],_0x4161a2['requests'],_0x1ea794,'']);});}),_0x4a8df8['map'](_0x121730=>_0x121730[_0x1f81fa(0x12b)](','))['join']('\x0a');}[a0_0x217561(0xed)](){const _0x2f4cd1=a0_0x217561;try{this['logger']['info'](_0x2f4cd1(0x12d));}catch(_0x3ef5dd){this['logger'][_0x2f4cd1(0x108)](_0x2f4cd1(0xdc),{'error':_0x3ef5dd['message']});}}['saveUsageData'](){const _0x7809c9=a0_0x217561;try{this['logger'][_0x7809c9(0x125)](_0x7809c9(0x10d));}catch(_0x2b7282){this[_0x7809c9(0x128)][_0x7809c9(0x108)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x2b7282[_0x7809c9(0x123)]});}}['setupPeriodicSave'](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
@@ -1 +1 @@
1
- function a0_0x3ef7(_0x3c6fbc,_0x3e9a16){_0x3c6fbc=_0x3c6fbc-0x10a;const _0x55b684=a0_0x55b6();let _0x3ef76e=_0x55b684[_0x3c6fbc];if(a0_0x3ef7['yCTzoM']===undefined){var _0x325bc1=function(_0x29dc69){const _0x9394e3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d1460='',_0x2052a3='';for(let _0x1aabf5=0x0,_0x17f797,_0x4e5798,_0x1f829b=0x0;_0x4e5798=_0x29dc69['charAt'](_0x1f829b++);~_0x4e5798&&(_0x17f797=_0x1aabf5%0x4?_0x17f797*0x40+_0x4e5798:_0x4e5798,_0x1aabf5++%0x4)?_0x3d1460+=String['fromCharCode'](0xff&_0x17f797>>(-0x2*_0x1aabf5&0x6)):0x0){_0x4e5798=_0x9394e3['indexOf'](_0x4e5798);}for(let _0x74971a=0x0,_0x51ad1c=_0x3d1460['length'];_0x74971a<_0x51ad1c;_0x74971a++){_0x2052a3+='%'+('00'+_0x3d1460['charCodeAt'](_0x74971a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2052a3);};a0_0x3ef7['sPhIDA']=_0x325bc1,a0_0x3ef7['DqTmLp']={},a0_0x3ef7['yCTzoM']=!![];}const _0x1a9e3a=_0x55b684[0x0],_0x24e703=_0x3c6fbc+_0x1a9e3a,_0x45a547=a0_0x3ef7['DqTmLp'][_0x24e703];return!_0x45a547?(_0x3ef76e=a0_0x3ef7['sPhIDA'](_0x3ef76e),a0_0x3ef7['DqTmLp'][_0x24e703]=_0x3ef76e):_0x3ef76e=_0x45a547,_0x3ef76e;}const a0_0x980bf8=a0_0x3ef7;(function(_0x426762,_0x49f886){const _0x3132d6=a0_0x3ef7,_0xe451d2=_0x426762();while(!![]){try{const _0x5434a8=-parseInt(_0x3132d6(0x11c))/0x1+parseInt(_0x3132d6(0x125))/0x2*(parseInt(_0x3132d6(0x11b))/0x3)+parseInt(_0x3132d6(0x136))/0x4+-parseInt(_0x3132d6(0x132))/0x5+-parseInt(_0x3132d6(0x119))/0x6*(-parseInt(_0x3132d6(0x118))/0x7)+parseInt(_0x3132d6(0x117))/0x8+-parseInt(_0x3132d6(0x137))/0x9;if(_0x5434a8===_0x49f886)break;else _0xe451d2['push'](_0xe451d2['shift']());}catch(_0x164612){_0xe451d2['push'](_0xe451d2['shift']());}}}(a0_0x55b6,0xef7e7));function a0_0x55b6(){const _0xa0d0c=['CMvMzxjLBMnL','mtvSuhP3CK8','mJm3mte4rwnZquPr','zxn0Aw1HDgvKvg9Rzw5Z','zxnJyxbLwg1S','jMX0oW','Dg9Rzw5fC3rPBwf0zq','Dg9gAxHLza','mcbcExrLCW','Bg9Nz2vY','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','mZi1mdmWrgrfDLj5','zMLSzxm','iIb0ExbLpsi','cJXHDhrHy2HLzc1MAwXLCZ4k','ChvZAa','BwvZC2fNzq','ica8zMLSzsbUyw1Lpsi','zMLSzuLK','zMLSDgvY','z2v0qwn0AxzLqxr0ywnOBwvUDhm','zxjYB3i','Bw9Kzq','iIaVpG','mtyZmJi1meXAq2D6zG','s0iIig1Vzgu9iMnVBNrLBNqIpGO','zM9YBwf0vgv4DezPBgu','iIbWyxrOpsi','mte2oti4ngv0uwzbtW','mty2ote2mtzZqvD5DKC','CgrM','y29UDgvUDa','zM9YBwf0q29UDgvUDezPBgu','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','BgvUz3rO','zM9YBwf0qNL0zxm','y29UzMLN','yxr0ywnOBwvUDfnLCNzPy2u','Aw5PDgLHBgL6zq','CMvWBgfJzq','zxn0Aw1HDgvuB3rHBfrVA2vUCW','yNvPBgreEw5HBwLJq29UDgv4Da','cIaGpc9MAwXLpG','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zMLSzu5HBwu','iIbZAxPLpsi','nZi5ntu1mM91y2H5wq','mtG5r0PWvwvq','mZa3mtGYAM92vwju'];a0_0x55b6=function(){return _0xa0d0c;};return a0_0x55b6();}import a0_0x3d1460 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x2052a3={},_0x1aabf5=null){const _0x3ca5d9=a0_0x3ef7;this[_0x3ca5d9(0x10d)]=_0x2052a3,this['logger']=_0x1aabf5,this[_0x3ca5d9(0x10e)]=new a0_0x3d1460(_0x2052a3,_0x1aabf5);}async[a0_0x980bf8(0x10f)](){const _0x1f3238=a0_0x980bf8;await this[_0x1f3238(0x10e)]['initialize']();}async[a0_0x980bf8(0x112)](_0x17f797){const _0x1a80bb=a0_0x980bf8;try{const _0x4e5798=await this['attachmentService']['getActiveAttachments'](_0x17f797);if(_0x4e5798[_0x1a80bb(0x10b)]===0x0)return'';const _0x1f829b=_0x4e5798['filter'](_0x59cb8b=>_0x59cb8b[_0x1a80bb(0x130)]===_0x1a80bb(0x139)),_0x74971a=_0x4e5798[_0x1a80bb(0x12d)](_0x4caec3=>_0x4caec3[_0x1a80bb(0x130)]===_0x1a80bb(0x11a));let _0x51ad1c='';if(_0x1f829b['length']>0x0){_0x51ad1c+=_0x1a80bb(0x128);for(const _0x32d83b of _0x1f829b){const _0x3100d4=await this['attachmentService']['getAttachmentContent'](_0x32d83b[_0x1a80bb(0x12c)]);if(_0x3100d4){const _0x1d12df=this[_0x1a80bb(0x13a)](_0x32d83b,_0x3100d4);_0x51ad1c+=_0x1d12df+'\x0a';}}_0x51ad1c+='</attached-files>\x0a';}if(_0x74971a[_0x1a80bb(0x10b)]>0x0){_0x51ad1c+='\x0a<file-references>\x0a';for(const _0x307a68 of _0x74971a){const _0x3873e6=this['formatReferenceFile'](_0x307a68);_0x51ad1c+=_0x3873e6+'\x0a';}_0x51ad1c+=_0x1a80bb(0x114),_0x51ad1c+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x51ad1c;}catch(_0x54d343){return this['logger']?.[_0x1a80bb(0x12f)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x17f797,'error':_0x54d343['message']}),'';}}['formatContentFile'](_0x58fd42,_0x2198e4){const _0x295b4a=a0_0x980bf8,{fileName:_0x4bbfa0,fileType:_0x2cc09f,size:_0x47c14e,contentType:_0x7df0dd}=_0x58fd42,_0x8d399c=(_0x47c14e/0x400)[_0x295b4a(0x121)](0x2);if(_0x7df0dd==='text')return this[_0x295b4a(0x134)](_0x58fd42,_0x2198e4);else{if(_0x7df0dd==='image')return this['formatImageFile'](_0x58fd42,_0x2198e4);else{if(_0x7df0dd===_0x295b4a(0x138))return this['formatPdfFile'](_0x58fd42,_0x2198e4);}}return _0x295b4a(0x12b)+this[_0x295b4a(0x11e)](_0x4bbfa0)+_0x295b4a(0x127)+_0x2cc09f+_0x295b4a(0x116)+_0x8d399c+_0x295b4a(0x133)+this[_0x295b4a(0x11e)](_0x2198e4)+'\x0a\x20\x20</file>';}[a0_0x980bf8(0x134)](_0x13692e,_0x459a1b){const _0x24d02a=a0_0x980bf8,{fileName:_0x36e8de,fileType:_0x2293c0,size:_0x5a6e67}=_0x13692e,_0xb613e=(_0x5a6e67/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x24d02a(0x11e)](_0x36e8de)+_0x24d02a(0x127)+_0x2293c0+'\x22\x20size=\x22'+_0xb613e+_0x24d02a(0x133)+this[_0x24d02a(0x11e)](_0x459a1b)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x247628,_0x2b9d02){const _0x5b13eb=a0_0x980bf8,{fileName:_0x1fb69f,fileType:_0xf4e52b,size:_0x8f1a4d}=_0x247628,_0x172e78=(_0x8f1a4d/0x400)[_0x5b13eb(0x121)](0x2);return _0x5b13eb(0x12b)+this[_0x5b13eb(0x11e)](_0x1fb69f)+_0x5b13eb(0x127)+_0xf4e52b+'\x22\x20size=\x22'+_0x172e78+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x2b9d02+_0x5b13eb(0x113);}['formatPdfFile'](_0x1a7d92,_0x19d6aa){const _0x5f5574=a0_0x980bf8,{fileName:_0xe920ac,fileType:_0x429d60,size:_0x30e769}=_0x1a7d92,_0x40ebb5=(_0x30e769/0x400)[_0x5f5574(0x121)](0x2);return _0x5f5574(0x12b)+this['escapeXml'](_0xe920ac)+_0x5f5574(0x127)+_0x429d60+'\x22\x20size=\x22'+_0x40ebb5+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x19d6aa)+'\x0a\x20\x20</file>';}['formatReferenceFile'](_0x57f00d){const _0x510fe6=a0_0x980bf8,{fileName:_0x590490,originalPath:_0x3dbf61,size:_0x9a864e,fileType:_0x4a8908,lastModified:_0x96da5f}=_0x57f00d,_0x30965b=this['formatBytes'](_0x9a864e),_0x1d2d44=new Date(_0x96da5f)['toISOString']()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this[_0x510fe6(0x11e)](_0x590490)+_0x510fe6(0x135)+this['escapeXml'](_0x3dbf61)+'\x22\x20size=\x22'+_0x30965b+_0x510fe6(0x127)+_0x4a8908+'\x22\x20modified=\x22'+_0x1d2d44+_0x510fe6(0x131);}[a0_0x980bf8(0x11e)](_0x153012){const _0x3fb983=a0_0x980bf8;if(!_0x153012)return'';return _0x153012[_0x3fb983(0x110)](/&/g,'&amp;')['replace'](/</g,_0x3fb983(0x11f))[_0x3fb983(0x110)](/>/g,'&gt;')[_0x3fb983(0x110)](/"/g,'&quot;')[_0x3fb983(0x110)](/'/g,'&apos;');}[a0_0x980bf8(0x10c)](_0x4ed2ad){const _0x33848d=a0_0x980bf8;if(_0x4ed2ad===0x0)return _0x33848d(0x122);const _0x3bdc93=0x400,_0xea107e=['Bytes','KB','MB','GB'],_0x4cbaf6=Math['floor'](Math['log'](_0x4ed2ad)/Math['log'](_0x3bdc93));return parseFloat((_0x4ed2ad/Math['pow'](_0x3bdc93,_0x4cbaf6))['toFixed'](0x2))+_0xea107e[_0x4cbaf6];}async[a0_0x980bf8(0x111)](_0xf442fd){const _0x1b4d20=a0_0x980bf8;try{const _0x129149=await this[_0x1b4d20(0x10e)]['getActiveAttachments'](_0xf442fd);let _0xde08d3=0x0;for(const _0x20de36 of _0x129149){_0x20de36[_0x1b4d20(0x130)]==='content'?_0xde08d3+=_0x20de36['tokenEstimate']||0x0:_0xde08d3+=0x14;}return _0xde08d3;}catch(_0x1dbe86){return this[_0x1b4d20(0x123)]?.[_0x1b4d20(0x12f)]('Error\x20estimating\x20total\x20tokens',{'agentId':_0xf442fd,'error':_0x1dbe86['message']}),0x0;}}async[a0_0x980bf8(0x124)](_0x2f2fda){const _0x48b299=a0_0x980bf8;try{const _0x2a4c18=await this[_0x48b299(0x10e)][_0x48b299(0x12e)](_0x2f2fda),_0x1042d5={'totalActive':_0x2a4c18['length'],'contentMode':_0x2a4c18['filter'](_0x22f8c4=>_0x22f8c4[_0x48b299(0x130)]===_0x48b299(0x139))['length'],'referenceMode':_0x2a4c18['filter'](_0x2873d3=>_0x2873d3[_0x48b299(0x130)]==='reference')[_0x48b299(0x10b)],'estimatedTokens':0x0,'files':[]};for(const _0x130187 of _0x2a4c18){_0x1042d5[_0x48b299(0x11d)]+=_0x130187['tokenEstimate']||0x0,_0x1042d5[_0x48b299(0x126)][_0x48b299(0x129)]({'fileName':_0x130187[_0x48b299(0x115)],'mode':_0x130187['mode'],'size':this['formatBytes'](_0x130187['size']),'tokens':_0x130187[_0x48b299(0x120)]||0x0});}return _0x1042d5;}catch(_0x5d95ac){return this['logger']?.['error'](_0x48b299(0x10a),{'agentId':_0x2f2fda,'error':_0x5d95ac[_0x48b299(0x12a)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
1
+ function a0_0x4ebb(_0x3b29d1,_0x2f6fde){_0x3b29d1=_0x3b29d1-0xfd;const _0x10f072=a0_0x10f0();let _0x4ebb47=_0x10f072[_0x3b29d1];if(a0_0x4ebb['fBrJmD']===undefined){var _0x4d4050=function(_0x5b6c44){const _0x457403='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x7f49bd='',_0x2226f4='';for(let _0x49302e=0x0,_0x482e2b,_0x5948d6,_0x3502e8=0x0;_0x5948d6=_0x5b6c44['charAt'](_0x3502e8++);~_0x5948d6&&(_0x482e2b=_0x49302e%0x4?_0x482e2b*0x40+_0x5948d6:_0x5948d6,_0x49302e++%0x4)?_0x7f49bd+=String['fromCharCode'](0xff&_0x482e2b>>(-0x2*_0x49302e&0x6)):0x0){_0x5948d6=_0x457403['indexOf'](_0x5948d6);}for(let _0x3de263=0x0,_0x4d8fb7=_0x7f49bd['length'];_0x3de263<_0x4d8fb7;_0x3de263++){_0x2226f4+='%'+('00'+_0x7f49bd['charCodeAt'](_0x3de263)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2226f4);};a0_0x4ebb['LSRrXz']=_0x4d4050,a0_0x4ebb['AwjAWP']={},a0_0x4ebb['fBrJmD']=!![];}const _0x4a78da=_0x10f072[0x0],_0x55a345=_0x3b29d1+_0x4a78da,_0x23aea0=a0_0x4ebb['AwjAWP'][_0x55a345];return!_0x23aea0?(_0x4ebb47=a0_0x4ebb['LSRrXz'](_0x4ebb47),a0_0x4ebb['AwjAWP'][_0x55a345]=_0x4ebb47):_0x4ebb47=_0x23aea0,_0x4ebb47;}const a0_0x4c45f7=a0_0x4ebb;(function(_0xef7cc2,_0x3e02f9){const _0x45b102=a0_0x4ebb,_0x381436=_0xef7cc2();while(!![]){try{const _0x5a0dec=parseInt(_0x45b102(0x10c))/0x1+-parseInt(_0x45b102(0x12e))/0x2*(parseInt(_0x45b102(0x10e))/0x3)+-parseInt(_0x45b102(0x129))/0x4*(-parseInt(_0x45b102(0x12d))/0x5)+-parseInt(_0x45b102(0x12c))/0x6+parseInt(_0x45b102(0x11e))/0x7*(-parseInt(_0x45b102(0x11d))/0x8)+-parseInt(_0x45b102(0x125))/0x9+parseInt(_0x45b102(0x10b))/0xa*(parseInt(_0x45b102(0x11a))/0xb);if(_0x5a0dec===_0x3e02f9)break;else _0x381436['push'](_0x381436['shift']());}catch(_0x26d66f){_0x381436['push'](_0x381436['shift']());}}}(a0_0x10f0,0x3f47c));import a0_0x7f49bd from'./fileAttachmentService.js';function a0_0x10f0(){const _0x1a4289=['CMvMzxjLBMnL','zMLSzu5HBwu','zM9YBwf0q29UDgvUDezPBgu','Dg9Rzw5fC3rPBwf0zq','Dg9ju09tDhjPBMC','zM9YBwf0vgv4DezPBgu','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','nde5mhfev1vzqq','mZK1mJqWCLHTtNr6','zM9YBwf0qNL0zxm','m0jTu3POAG','jNf1B3q7','zxn0Aw1HDgvuB3rHBfrVA2vUCW','pc9HDhrHy2HLzc1MAwXLCZ4k','zxnJyxbLwg1S','zM9YBwf0sw1Hz2vgAwXL','BwvZC2fNzq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','ChvZAa','zMXVB3i','y29UDgvUDa','yNvPBgreEw5HBwLJq29UDgv4Da','nZiZofb0Cg1uva','jMD0oW','Bw9Kzq','mJq4nJqWoeXqBvfsuW','n2L2EhrssW','zMLSDgvY','iIb0ExbLpsi','CgrM','iIbTB2rPzMLLzd0I','Bg9Nz2vY','s0iIig1Vzgu9iMnVBNrLBNqIpGO','mtC0odqYmvDWDNLqBG','Aw5PDgLHBgL6zq','jMX0oW','CMvWBgfJzq','mtu1nLbczgHztq','zM9YBwf0uMvMzxjLBMnLrMLSzq','jMfWB3m7','mJGXmtG0whD1sLDS','nty5mg5tChLeqW','nJa0otG4uvzzswnn','z2v0qxr0ywnOBwvUDenVBNrLBNq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','iIbZAxPLpsi','Bg9N','zM9YBwf0ugrMrMLSzq','Dgv4Da','yxr0ywnOBwvUDfnLCNzPy2u','cJXMAwXLlxjLzMvYzw5Jzxm+cG','zxjYB3i','cIaGpc9MAwXLpG','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','BgvUz3rO','ica8zMLSzsbUyw1Lpsi','Dg9gAxHLza'];a0_0x10f0=function(){return _0x1a4289;};return a0_0x10f0();}class ContextInjectionService{constructor(_0x2226f4={},_0x49302e=null){const _0x1103bf=a0_0x4ebb;this['config']=_0x2226f4,this['logger']=_0x49302e,this[_0x1103bf(0x135)]=new a0_0x7f49bd(_0x2226f4,_0x49302e);}async['initialize'](){const _0x22f244=a0_0x4ebb;await this['attachmentService'][_0x22f244(0x126)]();}async[a0_0x4c45f7(0x119)](_0x482e2b){const _0x22de7b=a0_0x4c45f7;try{const _0x5948d6=await this[_0x22de7b(0x135)][_0x22de7b(0x115)](_0x482e2b);if(_0x5948d6['length']===0x0)return'';const _0x3502e8=_0x5948d6[_0x22de7b(0x11f)](_0x5d5ce1=>_0x5d5ce1['mode']===_0x22de7b(0x118)),_0x3de263=_0x5948d6[_0x22de7b(0x11f)](_0x26690f=>_0x26690f['mode']==='reference');let _0x4d8fb7='';if(_0x3502e8[_0x22de7b(0x101)]>0x0){_0x4d8fb7+='\x0a<attached-files>\x0a';for(const _0x5029e5 of _0x3502e8){const _0x35d888=await this[_0x22de7b(0x135)][_0x22de7b(0x12f)](_0x5029e5['fileId']);if(_0x35d888){const _0x4920d7=this['formatContentFile'](_0x5029e5,_0x35d888);_0x4d8fb7+=_0x4920d7+'\x0a';}}_0x4d8fb7+=_0x22de7b(0x111);}if(_0x3de263[_0x22de7b(0x101)]>0x0){_0x4d8fb7+=_0x22de7b(0xfd);for(const _0x25016e of _0x3de263){const _0x24a3e1=this['formatReferenceFile'](_0x25016e);_0x4d8fb7+=_0x24a3e1+'\x0a';}_0x4d8fb7+=_0x22de7b(0x130),_0x4d8fb7+=_0x22de7b(0x10a);}return _0x4d8fb7;}catch(_0x2a2761){return this['logger']?.[_0x22de7b(0xfe)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x482e2b,'error':_0x2a2761[_0x22de7b(0x114)]}),'';}}[a0_0x4c45f7(0x106)](_0x521d53,_0x404d12){const _0x35c0be=a0_0x4c45f7,{fileName:_0x264b4c,fileType:_0x2bb86a,size:_0x1defb8,contentType:_0x274d08}=_0x521d53,_0x352da1=(_0x1defb8/0x400)['toFixed'](0x2);if(_0x274d08===_0x35c0be(0x134))return this[_0x35c0be(0x109)](_0x521d53,_0x404d12);else{if(_0x274d08==='image')return this[_0x35c0be(0x113)](_0x521d53,_0x404d12);else{if(_0x274d08===_0x35c0be(0x121))return this[_0x35c0be(0x133)](_0x521d53,_0x404d12);}}return'\x20\x20<file\x20name=\x22'+this[_0x35c0be(0x112)](_0x264b4c)+'\x22\x20type=\x22'+_0x2bb86a+_0x35c0be(0x131)+_0x352da1+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x35c0be(0x112)](_0x404d12)+'\x0a\x20\x20</file>';}[a0_0x4c45f7(0x109)](_0x1a0c90,_0xfb3933){const _0x591336=a0_0x4c45f7,{fileName:_0x13c96a,fileType:_0x2753e7,size:_0x2ea6d2}=_0x1a0c90,_0x208fdc=(_0x2ea6d2/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x13c96a)+'\x22\x20type=\x22'+_0x2753e7+'\x22\x20size=\x22'+_0x208fdc+_0x591336(0x124)+this[_0x591336(0x112)](_0xfb3933)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x1c6791,_0x47a393){const _0x1b7616=a0_0x4c45f7,{fileName:_0x2203f4,fileType:_0xd167c0,size:_0x39e644}=_0x1c6791,_0x528ee7=(_0x39e644/0x400)[_0x1b7616(0x103)](0x2);return _0x1b7616(0x102)+this['escapeXml'](_0x2203f4)+_0x1b7616(0x120)+_0xd167c0+'\x22\x20size=\x22'+_0x528ee7+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x47a393+'\x0a\x20\x20</file>';}['formatPdfFile'](_0x3b4a8b,_0x56e522){const _0x16490e=a0_0x4c45f7,{fileName:_0x4331e0,fileType:_0x4dac4d,size:_0x5f0c86}=_0x3b4a8b,_0xd8305e=(_0x5f0c86/0x400)['toFixed'](0x2);return _0x16490e(0x102)+this['escapeXml'](_0x4331e0)+_0x16490e(0x120)+_0x4dac4d+'\x22\x20size=\x22'+_0xd8305e+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x56e522)+_0x16490e(0xff);}[a0_0x4c45f7(0x12a)](_0x4918af){const _0x490bbc=a0_0x4c45f7,{fileName:_0x42d2b6,originalPath:_0x3cdd0c,size:_0x54309e,fileType:_0x21aa08,lastModified:_0x23f94a}=_0x4918af,_0xb4298e=this['formatBytes'](_0x54309e),_0xbbfa52=new Date(_0x23f94a)[_0x490bbc(0x108)]()['split']('T')[0x0];return _0x490bbc(0x102)+this[_0x490bbc(0x112)](_0x42d2b6)+'\x22\x20path=\x22'+this[_0x490bbc(0x112)](_0x3cdd0c)+_0x490bbc(0x131)+_0xb4298e+'\x22\x20type=\x22'+_0x21aa08+_0x490bbc(0x122)+_0xbbfa52+'\x22\x20/>';}[a0_0x4c45f7(0x112)](_0x2e75a1){const _0x4eb381=a0_0x4c45f7;if(!_0x2e75a1)return'';return _0x2e75a1[_0x4eb381(0x128)](/&/g,'&amp;')['replace'](/</g,_0x4eb381(0x127))['replace'](/>/g,_0x4eb381(0x11b))[_0x4eb381(0x128)](/"/g,_0x4eb381(0x10f))['replace'](/'/g,_0x4eb381(0x12b));}['formatBytes'](_0x252202){const _0x1abfc8=a0_0x4c45f7;if(_0x252202===0x0)return'0\x20Bytes';const _0xd91ec8=0x400,_0xee1a6=['Bytes','KB','MB','GB'],_0x323d36=Math[_0x1abfc8(0x117)](Math['log'](_0x252202)/Math[_0x1abfc8(0x132)](_0xd91ec8));return parseFloat((_0x252202/Math['pow'](_0xd91ec8,_0x323d36))[_0x1abfc8(0x103)](0x2))+_0xee1a6[_0x323d36];}async[a0_0x4c45f7(0x110)](_0x29ae16){const _0x4eeb4a=a0_0x4c45f7;try{const _0x5e162b=await this['attachmentService'][_0x4eeb4a(0x115)](_0x29ae16);let _0x2764b5=0x0;for(const _0x406149 of _0x5e162b){_0x406149['mode']===_0x4eeb4a(0x118)?_0x2764b5+=_0x406149['tokenEstimate']||0x0:_0x2764b5+=0x14;}return _0x2764b5;}catch(_0x12156e){return this[_0x4eeb4a(0x123)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x29ae16,'error':_0x12156e[_0x4eeb4a(0x114)]}),0x0;}}async['getAttachmentSummary'](_0x52e229){const _0x1bd759=a0_0x4c45f7;try{const _0x3d7c7c=await this['attachmentService'][_0x1bd759(0x115)](_0x52e229),_0x4df3cf={'totalActive':_0x3d7c7c[_0x1bd759(0x101)],'contentMode':_0x3d7c7c['filter'](_0x323ce3=>_0x323ce3[_0x1bd759(0x11c)]==='content')['length'],'referenceMode':_0x3d7c7c[_0x1bd759(0x11f)](_0x5b8f1e=>_0x5b8f1e['mode']===_0x1bd759(0x104))[_0x1bd759(0x101)],'estimatedTokens':0x0,'files':[]};for(const _0xe32939 of _0x3d7c7c){_0x4df3cf['estimatedTokens']+=_0xe32939[_0x1bd759(0x107)]||0x0,_0x4df3cf['files'][_0x1bd759(0x116)]({'fileName':_0xe32939[_0x1bd759(0x105)],'mode':_0xe32939[_0x1bd759(0x11c)],'size':this[_0x1bd759(0x10d)](_0xe32939['size']),'tokens':_0xe32939['tokenEstimate']||0x0});}return _0x4df3cf;}catch(_0x66f9e1){return this['logger']?.['error'](_0x1bd759(0x100),{'agentId':_0x52e229,'error':_0x66f9e1[_0x1bd759(0x114)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;