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

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