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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/index-BVF_10a5.css +1 -0
  119. package/web-ui/build/static/{index-lCBai6dX.js → index-DE5VFS1q.js} +121 -68
  120. package/web-ui/build/static/index-CClD1090.css +0 -1
@@ -1 +1 @@
1
- const a0_0x6bf9c8=a0_0x256d;(function(_0x5d45be,_0x32c17b){const _0x29400f=a0_0x256d,_0x23fbbf=_0x5d45be();while(!![]){try{const _0x2e6e13=-parseInt(_0x29400f(0x19a))/0x1*(-parseInt(_0x29400f(0x15c))/0x2)+-parseInt(_0x29400f(0x1c4))/0x3+parseInt(_0x29400f(0x177))/0x4+parseInt(_0x29400f(0x1b2))/0x5*(-parseInt(_0x29400f(0x1ca))/0x6)+parseInt(_0x29400f(0x165))/0x7+parseInt(_0x29400f(0x1c6))/0x8*(-parseInt(_0x29400f(0x13f))/0x9)+parseInt(_0x29400f(0x162))/0xa;if(_0x2e6e13===_0x32c17b)break;else _0x23fbbf['push'](_0x23fbbf['shift']());}catch(_0x14fad5){_0x23fbbf['push'](_0x23fbbf['shift']());}}}(a0_0x7ad7,0x8e531));function a0_0x7ad7(){const _0x3ac9da=['C3LZDgvT','y2HVAwnLCW','C2vUze1LC3nHz2u','z3b0','y3vZDg9TqxbPs2v5CW','B3bLBMfP','mJKZnJiXmvnkqxnRsG','DxnHz2u','mZK1mJHoDufOruK','y29UDgv4DfDPBMrVDW','y29TCgXLEgL0Eq','zgvIDwC','mJe0ota4nNL5BvnfAa','ve9px01btLLFuKvrvuvtvfm','rKfmtejbq0S','C3vIC3rY','z2v0s2v5C0zVCLjLCxvLC3q','DhjPBq','zxjYB3jiyw5KBgvY','y2XHDwrL','zMfPBhvYzxm','C3r5Bgu','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','Dg9tDhjPBMC','y29UDMvYC2f0Aw9UtwfUywDLCNm','C3DPDgnOqwDLBNrnB2rLBa','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','lcb1C2LUzYbMywXSyMfJAW','ywXS','ueHj','ANnVBG','x2LZvMfSAwrnB2rLBa','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','CgHP','AM9PBG','BwfW','qvPvuKu','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','yxbPs2v5twfUywDLCG','x2zVCM1HDfnPBMDSzu1LC3nHz2u','DgLTzw91Da','Aw1Nlq','CxvHBgL0Eq','odu1CunxBLPv','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','C3vIC3rYAw5N','A2v5CW','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','DMvUzg9YqxbPs2v5','C3bLzwq','DxjS','uMf0zsbSAw1PDcbLEgnLzwrLza','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','DhjHy2TvC2fNzq','C3rYAw5NAwz5','C3rHy2S','ue9tva','Dw5ZAgLMDa','CMv2AxnLzf9WCM9TChq','su5urvjoquXFu0vsvKvsx0vsuK9s','Dg9vChbLCKnHC2u','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','Bw9KzwXtCgvJCW','r0furvDbwv9usu1ft1vu','l2HLywX0Aa','yMfJA2vUza','y2vPBa','DxnLCG','AxnpCgvU','x2vZDgLTyxrLvg9Rzw5Z','x3n1Bw1HCML6zu1LC3nHz2vZ','ndu0qvbcCgXb','yxbPs2v5','yMfZzvvYBa','ChjLzMvYCMvKtw9KzwW','C3LZDgvTuhjVBxb0','z2v0qwDLBNq','mteXodqWntb3wKL2DKy','C3rVCa','C3rYAw5N','ndi5mdmWCg5uBKTn','Dg9ju09tDhjPBMC','yxbWBgLJyxrPB24VANnVBG','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','x2DLDfzLBMrVCKzYB21nB2rLBa','BM93','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','revfufnfruTFuJe','x21HA2vjBwfNzufqsvjLCxvLC3q','y29UDgvUDa','BgvUz3rO','qKfex1jfuvvfu1q','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','Bw9KzwW','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','x2zVCM1HDezVCKfUDgHYB3bPyW','CMv0CNLbDhrLBxb0CW','ndqWodyZmMHNyKTZwG','BwvZC2fNzxm','C3vTBwfYEq','zMLUAxnOx3jLyxnVBG','ChjVBxb0','Bg9Nz2vY','C2v0','Aw5MBW','Dg90ywXFDg9Rzw5Z','CM9Szq','ywDLBNrjza','zgf0yq','y2LYy3vPDejYzwfRzxi','CgvYC2LZDefNzw50u3rHDgu','yxnZAxn0yw50','CMvXDwvZDff1zxvL','C3rHDhvZvgv4Da','qu5usfjpueLdx0HbsuTv','t1bftKfj','CgXHDgzVCM1qCM92AwrLza','CMfUzg9T','x2zVCM1HDezVCK9Wzw5bsq','yNvKz2v0u2vYDMLJzq','CMf0zuXPBwL0zxjZ','zxjYB3i','CM91DgvnB2rLBa','Cg93','C3rHDhvZ','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','BwvZC2fNzq','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','y29UDMvYC2f0Aw9UCW','revfufnfruS','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','D2fYBG','mZyYowTjsw9gqG','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','zxn0Aw1HDgvKvg9Rzw5Z','l2nOyxqVy29TCgXLDgLVBNm','Bwf4vg9Rzw5Z','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','y2HLy2Ttzxj2AwnLsgvHBhrO','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','yw50AhjVCgLJ','x21HA2vbueLszxf1zxn0','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','sfruuca','qu5usfjpueLdx09qvvm','ChvZAa','quKGC2vYDMLJzsbLCNjVCJOG','zMLUAxnOuMvHC29U','AgvHBhrOEq','x2LZq2LYy3vPDejYzwfRzxjpCgvU','qMvHCMvYia','uMv0CNLPBMCGAw4G','qu5usfjpueLdx1nptK5fva','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','qu5usfjpueLd','mtv3C01Vrxm','zMfZDa','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','Dgv4Da','x3jLC2v0q2LYy3vPDejYzwfRzxi','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','Aw5JBhvKzxm','r1buxZq','y29UzMLN','sw52ywXPzcbYzxf1zxn0oIa','C2vZC2LVBKLK','mtaYnhGXmdi0'];a0_0x7ad7=function(){return _0x3ac9da;};return a0_0x7ad7();}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x4fa2ab,_0x124422,_0x58b9e3,_0x35a117){const _0x979344=a0_0x256d;this[_0x979344(0x1ba)]=_0x4fa2ab,this['logger']=_0x124422,this[_0x979344(0x18d)]=_0x58b9e3,this[_0x979344(0x1d0)]=_0x35a117,this[_0x979344(0x15e)]=_0x4fa2ab['backend']?.['baseUrl']||'https://api.loxia.ai',this[_0x979344(0x13c)]=_0x4fa2ab[_0x979344(0x156)]?.['timeout']||0xea60,this['retryAttempts']=_0x4fa2ab['backend']?.['retryAttempts']||0x3,this[_0x979344(0x18e)]=new Map(),this[_0x979344(0x186)]=new Map(),this[_0x979344(0x183)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x979344(0x1d6)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x6bf9c8(0x1c0)](_0x30270f,_0x594438,_0xb0f0f5={}){const _0x58027b=a0_0x6bf9c8,_0x282a73='req-'+Date['now']()+'-'+Math[_0x58027b(0x18b)]()['toString'](0x24)[_0x58027b(0x1cd)](0x2,0x9);try{if(this[_0x58027b(0x1ac)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x30270f);const _0x2ea032=this[_0x58027b(0x19b)](_0x594438,_0x30270f,_0xb0f0f5),_0x603052={'model':_0x30270f,'messages':_0x2ea032,'options':{'max_tokens':this['modelSpecs'][_0x30270f]?.[_0x58027b(0x19f)]||0xfa0,'temperature':_0xb0f0f5['temperature']||0.7,'stream':_0xb0f0f5['stream']||![]},'metadata':{'requestId':_0x282a73,'agentId':_0xb0f0f5[_0x58027b(0x181)],'timestamp':new Date()['toISOString']()}};_0xb0f0f5[_0x58027b(0x160)]&&(_0x603052['system']=_0xb0f0f5[_0x58027b(0x160)]);this[_0x58027b(0x17c)][_0x58027b(0x17e)](_0x58027b(0x171)+_0x30270f,{'requestId':_0x282a73,'agentId':_0xb0f0f5[_0x58027b(0x181)],'messageCount':Array['isArray'](_0x594438)?_0x594438['length']:0x1,'maxTokens':_0x603052['max_tokens']});const _0x28c5c=await this['_makeAPIRequest'](_0x58027b(0x19e),_0x603052,_0x282a73,{..._0xb0f0f5,'sessionId':_0xb0f0f5[_0x58027b(0x1bc)],'platformProvided':_0xb0f0f5[_0x58027b(0x18a)]||![]});return _0x28c5c[_0x58027b(0x1c5)]&&await this['trackUsage'](_0xb0f0f5[_0x58027b(0x181)],_0x30270f,{'prompt_tokens':_0x28c5c['usage']['prompt_tokens']||0x0,'completion_tokens':_0x28c5c[_0x58027b(0x1c5)]['completion_tokens']||0x0,'total_tokens':_0x28c5c['usage'][_0x58027b(0x17f)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x28c5c[_0x58027b(0x1bf)][0x0]?.[_0x58027b(0x194)]?.['content']||'','model':_0x28c5c[_0x58027b(0x173)],'tokenUsage':_0x28c5c[_0x58027b(0x1c5)],'requestId':_0x282a73,'finishReason':_0x28c5c[_0x58027b(0x1bf)][0x0]?.[_0x58027b(0x17a)]};}catch(_0x3ded2e){this['_recordFailure'](),this[_0x58027b(0x17c)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x3ded2e['message'],{'requestId':_0x282a73,'model':_0x30270f,'agentId':_0xb0f0f5[_0x58027b(0x181)],'error':_0x3ded2e[_0x58027b(0x14c)]}),await this['handleHttpError'](_0x3ded2e,{'requestId':_0x282a73,'model':_0x30270f,'agentId':_0xb0f0f5['agentId']});throw _0x3ded2e;}}async[a0_0x6bf9c8(0x190)](_0x1f9d8e,_0xccebc1={}){const _0xec0448=a0_0x6bf9c8;try{const _0x2771dc=MODEL_ROUTING[_0x1f9d8e[_0xec0448(0x151)]()]||MODEL_ROUTING[_0xec0448(0x1cc)],_0x2ea3e9=[];for(const _0xaaf3e3 of _0x2771dc){const _0x35d839=await this['_checkModelHealth'](_0xaaf3e3);_0x35d839&&_0x2ea3e9[_0xec0448(0x1a8)](_0xaaf3e3);}if(_0x2ea3e9[_0xec0448(0x16f)]===0x0)return this['logger'][_0xec0448(0x199)](_0xec0448(0x1a0)+_0x1f9d8e+_0xec0448(0x1d9)),MODEL_ROUTING['FALLBACK'][0x0];let _0x23dc11=_0x2ea3e9[0x0];if(_0xccebc1['preferredModel']&&_0x2ea3e9['includes'](_0xccebc1['preferredModel']))_0x23dc11=_0xccebc1[_0xec0448(0x15f)];else{if(_0xccebc1[_0xec0448(0x1c8)]==='high'&&_0x2ea3e9[_0xec0448(0x1b8)](MODELS['ANTHROPIC_OPUS']))_0x23dc11=MODELS[_0xec0448(0x1a7)];else _0xccebc1[_0xec0448(0x146)]===_0xec0448(0x1b3)&&_0x2ea3e9['includes'](MODELS['ANTHROPIC_HAIKU'])&&(_0x23dc11=MODELS['ANTHROPIC_HAIKU']);}return this[_0xec0448(0x17c)]['info']('Model\x20routed\x20for\x20task:\x20'+_0x1f9d8e,{'selectedModel':_0x23dc11,'availableModels':_0x2ea3e9[_0xec0448(0x16f)],'context':_0xccebc1}),_0x23dc11;}catch(_0x5e0a32){return this[_0xec0448(0x17c)][_0xec0448(0x18f)](_0xec0448(0x1e3)+_0x5e0a32['message'],{'task':_0x1f9d8e,'context':_0xccebc1}),MODEL_ROUTING[_0xec0448(0x1cc)][0x0];}}async['compactizeConversation'](_0x1fff1e,_0x52bef7){const _0x59643b=a0_0x6bf9c8,_0x47aa9e=this[_0x59643b(0x153)][_0x52bef7];if(!_0x47aa9e)throw new Error('Unknown\x20model:\x20'+_0x52bef7);const _0x23ad0b=_0x47aa9e[_0x59643b(0x1c7)]*0.8;let _0x48baa7=0x0;const _0x1b976d=[],_0x252f80=await Promise[_0x59643b(0x1da)](_0x1fff1e[_0x59643b(0x1e1)](async _0x30261e=>({..._0x30261e,'estimatedTokens':await this['_estimateTokens'](_0x30261e[_0x59643b(0x16e)],_0x52bef7)}))),_0x38cbc7=[..._0x252f80]['reverse']();for(const _0x3852c4 of _0x38cbc7){if(_0x48baa7+_0x3852c4[_0x59643b(0x19d)]>_0x23ad0b){if(_0x1b976d['length']===0x0){const _0x309220=await this['_truncateMessage'](_0x3852c4[_0x59643b(0x16e)],_0x23ad0b);_0x1b976d['unshift']({..._0x3852c4,'content':_0x309220,'estimatedTokens':_0x23ad0b});}break;}_0x1b976d[_0x59643b(0x14e)](_0x3852c4),_0x48baa7+=_0x3852c4['estimatedTokens'];}const _0x551c8a=_0x252f80['slice'](0x0,-_0x1b976d['length']);if(_0x551c8a['length']>0x0){const _0x151c7a=await this['_summarizeMessages'](_0x551c8a,_0x52bef7);_0x1b976d[_0x59643b(0x14e)]({'role':_0x59643b(0x1be),'content':'Previous\x20conversation\x20summary:\x20'+_0x151c7a,'timestamp':_0x551c8a[0x0]['timestamp'],'type':_0x59643b(0x179),'estimatedTokens':await this[_0x59643b(0x15a)](_0x151c7a,_0x52bef7)});}return this['logger']['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x52bef7,{'originalMessages':_0x1fff1e[_0x59643b(0x16f)],'compactizedMessages':_0x1b976d['length'],'estimatedTokens':_0x48baa7,'maxTokens':_0x23ad0b}),_0x1b976d;}async['trackUsage'](_0x24f6ef,_0x1c987c,_0x398da9,_0x4104aa){const _0x5b0007=a0_0x6bf9c8;try{this[_0x5b0007(0x18d)]&&this['budgetService'][_0x5b0007(0x14a)](_0x24f6ef,_0x1c987c,_0x398da9);}catch(_0x231892){this['logger'][_0x5b0007(0x18f)]('Usage\x20tracking\x20failed:\x20'+_0x231892['message']);}}async['handleHttpError'](_0x38b500,_0x5f1f4e){const _0x234851=a0_0x6bf9c8,_0x48142d=this['errorHandler']?.['classifyError']?.(_0x38b500,_0x5f1f4e);switch(_0x38b500[_0x234851(0x192)]||_0x38b500['code']){case HTTP_STATUS[_0x234851(0x170)]:this[_0x234851(0x17c)]['error']('Bad\x20request\x20to\x20AI\x20service',{'context':_0x5f1f4e,'error':_0x38b500[_0x234851(0x194)]});throw new Error(_0x234851(0x1bb)+_0x38b500[_0x234851(0x194)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger'][_0x234851(0x18f)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x5f1f4e});throw new Error(_0x234851(0x193));case HTTP_STATUS['FORBIDDEN']:this['logger'][_0x234851(0x18f)]('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x5f1f4e});throw new Error(_0x234851(0x195));case HTTP_STATUS['NOT_FOUND']:this['logger'][_0x234851(0x18f)](_0x234851(0x152),{'context':_0x5f1f4e});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0x234851(0x1cb)]:this[_0x234851(0x17c)][_0x234851(0x199)](_0x234851(0x148),{'context':_0x5f1f4e}),await this['_handleRateLimit'](_0x5f1f4e);throw new Error(_0x234851(0x1a2));case HTTP_STATUS[_0x234851(0x150)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x234851(0x154)]:this[_0x234851(0x17c)][_0x234851(0x18f)](_0x234851(0x149),{'context':_0x5f1f4e,'status':_0x38b500[_0x234851(0x192)]}),await this['_handleServiceUnavailable'](_0x5f1f4e);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x234851(0x17c)]['error'](_0x234851(0x168),{'context':_0x5f1f4e,'error':_0x38b500['message']});throw new Error(_0x234851(0x1a9)+_0x38b500['message']);}}['setApiKeyManager'](_0x4d50a3){const _0x358f84=a0_0x6bf9c8;this[_0x358f84(0x1e4)]=_0x4d50a3,this[_0x358f84(0x17c)]?.[_0x358f84(0x17e)](_0x358f84(0x1b0),{'hasManager':!!_0x4d50a3});}['setAgentPool'](_0x342fb2){this['agentPool']=_0x342fb2,this['logger']?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x342fb2});}async['generateImage'](_0x301a98,_0x42bdb2={}){const _0x4d5132=a0_0x6bf9c8,_0x3f72ed=_0x4d5132(0x13d)+Date[_0x4d5132(0x16a)]()+'-'+Math[_0x4d5132(0x18b)]()[_0x4d5132(0x1d5)](0x24)['substr'](0x2,0x9);try{if(this[_0x4d5132(0x1ac)]())throw new Error(_0x4d5132(0x1de));if(!_0x301a98||typeof _0x301a98!==_0x4d5132(0x164)||_0x301a98[_0x4d5132(0x1cf)]()[_0x4d5132(0x16f)]===0x0)throw new Error(_0x4d5132(0x1b4));const _0x157bd7=_0x42bdb2['model']||'flux-1.1-pro',_0xf8761b=_0x42bdb2['size']||_0x4d5132(0x1bd),_0x5e92ad=_0x42bdb2[_0x4d5132(0x13e)]||'standard',_0x3f6018=_0x42bdb2['responseFormat']||_0x4d5132(0x147);this[_0x4d5132(0x17c)][_0x4d5132(0x17e)](_0x4d5132(0x19c)+_0x157bd7,{'requestId':_0x3f72ed,'model':_0x157bd7,'size':_0xf8761b,'quality':_0x5e92ad,'promptLength':_0x301a98[_0x4d5132(0x16f)]});const _0x1b023e={'prompt':_0x301a98,'model':_0x157bd7,'size':_0xf8761b,'quality':_0x5e92ad,'response_format':_0x3f6018,'n':0x1,'metadata':{'requestId':_0x3f72ed,'timestamp':new Date()['toISOString']()}},_0x5ddf5a=await this[_0x4d5132(0x16d)](_0x1b023e,_0x3f72ed,{'sessionId':_0x42bdb2['sessionId'],'platformProvided':_0x42bdb2['platformProvided']||![]});return this[_0x4d5132(0x1b6)](),{'url':_0x5ddf5a[_0x4d5132(0x182)]?.[0x0]?.['url']||null,'b64_json':_0x5ddf5a['data']?.[0x0]?.['b64_json']||null,'model':_0x5ddf5a[_0x4d5132(0x173)]||_0x157bd7,'requestId':_0x3f72ed,'revisedPrompt':_0x5ddf5a[_0x4d5132(0x182)]?.[0x0]?.[_0x4d5132(0x14f)]||_0x301a98};}catch(_0x4e9c74){this['_recordFailure'](),this['logger']['error'](_0x4d5132(0x1b7)+_0x4e9c74['message'],{'requestId':_0x3f72ed,'model':_0x42bdb2['model'],'error':_0x4e9c74[_0x4d5132(0x14c)]});throw _0x4e9c74;}}async[a0_0x6bf9c8(0x1a1)](){const _0x527a75=a0_0x6bf9c8;try{const _0x3a107f=await this['_makeAPIRequest'](_0x527a75(0x155),{},'health-check');return _0x3a107f[_0x527a75(0x192)]===_0x527a75(0x1ab);}catch(_0x36c13b){return![];}}async[a0_0x6bf9c8(0x1d7)](_0x3593fe,_0x2cf1fe){const _0x3699f5=a0_0x6bf9c8;try{if(!this['_isValidModel'](_0x2cf1fe))throw new Error('Invalid\x20model:\x20'+_0x2cf1fe);let _0x4ead9f=this[_0x3699f5(0x1d6)]['get'](_0x3593fe);!_0x4ead9f&&(_0x4ead9f=new ConversationManager(_0x3593fe,this['logger']),this['conversationManagers'][_0x3699f5(0x17d)](_0x3593fe,_0x4ead9f));const _0x307d18=await _0x4ead9f['switchModel'](_0x2cf1fe),_0x951066=await this['agentPool']?.[_0x3699f5(0x161)](_0x3593fe);return _0x951066&&(_0x951066['currentModel']=_0x2cf1fe,await this['agentPool'][_0x3699f5(0x184)](_0x3593fe)),this[_0x3699f5(0x17c)][_0x3699f5(0x17e)](_0x3699f5(0x144)+_0x3593fe,{'newModel':_0x2cf1fe,'messageCount':_0x307d18['messages']['length']}),{'success':!![],'agentId':_0x3593fe,'newModel':_0x2cf1fe,'conversation':_0x307d18};}catch(_0x597a16){this[_0x3699f5(0x17c)]['error']('Model\x20switch\x20failed:\x20'+_0x597a16['message'],{'agentId':_0x3593fe,'newModel':_0x2cf1fe});throw _0x597a16;}}['_initializeModelSpecs'](){const _0x3566cc=a0_0x6bf9c8,_0x267661={[MODELS[_0x3566cc(0x1af)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x3566cc(0x188)]]:{'provider':MODEL_PROVIDERS[_0x3566cc(0x1b1)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x3566cc(0x1b9)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x3566cc(0x189)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x3566cc(0x189)],'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[_0x3566cc(0x189)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x3566cc(0x16c)]]:{'provider':MODEL_PROVIDERS[_0x3566cc(0x197)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x3566cc(0x1db)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x3566cc(0x1e2),'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':_0x3566cc(0x1e2),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x267661;}['_formatMessagesForModel'](_0x4cd65e,_0x569b96,_0xca76f7){const _0x41ffe5=a0_0x6bf9c8,_0x4b6b82=this[_0x41ffe5(0x153)][_0x569b96]||{'provider':_0x41ffe5(0x1e2)};let _0x1e9d00;typeof _0x4cd65e===_0x41ffe5(0x164)?_0x1e9d00=[{'role':'user','content':_0x4cd65e}]:_0x1e9d00=_0x4cd65e['map'](_0x41af6c=>this['_formatSingleMessage'](_0x41af6c,_0x569b96));switch(_0x4b6b82['provider']){case MODEL_PROVIDERS[_0x41ffe5(0x1b1)]:return this[_0x41ffe5(0x175)](_0x1e9d00);case MODEL_PROVIDERS['OPENAI']:return this[_0x41ffe5(0x18c)](_0x1e9d00);case MODEL_PROVIDERS[_0x41ffe5(0x1e2)]:return this['_formatForAzure'](_0x1e9d00);default:return _0x1e9d00;}}[a0_0x6bf9c8(0x1e5)](_0x4477d5,_0xf4c2d0){const _0x25d7bc=a0_0x6bf9c8;return{'role':_0x4477d5[_0x25d7bc(0x180)]||_0x25d7bc(0x158),'content':_0x4477d5['content'],'timestamp':_0x4477d5['timestamp']};}[a0_0x6bf9c8(0x175)](_0xe8b535){return _0xe8b535['map'](_0x3aa0c5=>{const _0xf821e4=a0_0x256d;if(_0x3aa0c5['role']==='system')return{'role':'user','content':'System:\x20'+_0x3aa0c5[_0xf821e4(0x16e)]};return _0x3aa0c5;});}[a0_0x6bf9c8(0x18c)](_0x150062){return _0x150062;}['_formatForAzure'](_0x5421d4){const _0x518501=a0_0x6bf9c8;return _0x5421d4[_0x518501(0x1e1)](_0x48a1a7=>({..._0x48a1a7,'content':typeof _0x48a1a7['content']===_0x518501(0x164)?_0x48a1a7['content']:JSON[_0x518501(0x14b)](_0x48a1a7['content'])}));}[a0_0x6bf9c8(0x1dd)](_0x29f85c){const _0x37ca67=a0_0x6bf9c8;this[_0x37ca67(0x17c)][_0x37ca67(0x1c9)]('Validating\x20model',{'model':_0x29f85c,'modelType':typeof _0x29f85c});if(this['modelSpecs'][_0x29f85c]!==undefined)return!![];return this[_0x37ca67(0x17c)]['warn'](_0x37ca67(0x1a5),{'model':_0x29f85c,'availableModels':Object['keys'](this[_0x37ca67(0x153)])}),![];}async['_checkModelHealth'](_0x15a2d3){return!![];}async[a0_0x6bf9c8(0x15a)](_0x461121,_0x45d48c){const _0x1b5ec8=a0_0x6bf9c8;return Math[_0x1b5ec8(0x157)](_0x461121['length']/0x4);}async['_truncateMessage'](_0x2aab27,_0x5bcaba){const _0x20d3a8=a0_0x6bf9c8,_0x2248bf=_0x5bcaba*0x4;if(_0x2aab27[_0x20d3a8(0x16f)]<=_0x2248bf)return _0x2aab27;return _0x2aab27['substring'](0x0,_0x2248bf-0x14)+'\x0a...\x20[message\x20truncated]';}async[a0_0x6bf9c8(0x15b)](_0x36ea3c,_0x3fe20a){const _0x307dc5=a0_0x6bf9c8,_0x51c3b6=_0x36ea3c[_0x307dc5(0x1e1)](_0x121200=>_0x121200[_0x307dc5(0x180)]+':\x20'+_0x121200[_0x307dc5(0x16e)])[_0x307dc5(0x1e0)]('\x0a'),_0x4dfb96=0x1f4;if(_0x51c3b6['length']<=_0x4dfb96)return _0x51c3b6;return _0x51c3b6[_0x307dc5(0x142)](0x0,_0x4dfb96)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x6bf9c8(0x1a4)](_0x2feb2b,_0x1b582b,_0x3e93cb,_0x370eb3={}){const _0x14f8b8=a0_0x6bf9c8,_0x246de9='https://autopilot-api.azurewebsites.net/llm/chat';let _0x5f016e,_0xb5d198=null,_0x52950e=null;this['logger']?.['info']('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x370eb3['sessionId'],'hasSessionId':!!_0x370eb3[_0x14f8b8(0x1bc)],'optionsKeys':Object[_0x14f8b8(0x143)](_0x370eb3),'model':_0x1b582b['model']});if(this['apiKeyManager']&&_0x370eb3[_0x14f8b8(0x1bc)]){const _0x17955e=this['apiKeyManager']['getKeysForRequest'](_0x370eb3['sessionId'],{'platformProvided':_0x370eb3[_0x14f8b8(0x18a)]||![],'vendor':this['_getVendorFromModel'](_0x1b582b['model'])});_0xb5d198=_0x17955e['loxiaApiKey'],_0x52950e=_0x17955e[_0x14f8b8(0x145)],this[_0x14f8b8(0x17c)]?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x370eb3[_0x14f8b8(0x1bc)],'hasLoxiaKey':!!_0xb5d198,'hasVendorKey':!!_0x52950e,'vendor':this[_0x14f8b8(0x169)](_0x1b582b[_0x14f8b8(0x173)])});}!_0xb5d198&&_0x370eb3['apiKey']&&(_0xb5d198=_0x370eb3['apiKey']);!_0xb5d198&&this[_0x14f8b8(0x1ba)]['apiKey']&&(_0xb5d198=this[_0x14f8b8(0x1ba)]['apiKey']);if(!_0xb5d198)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x13e426=_0x1b582b[_0x14f8b8(0x173)],_0x5798c3={'conversationId':_0x3e93cb,'message':_0x1b582b[_0x14f8b8(0x178)][_0x1b582b[_0x14f8b8(0x178)][_0x14f8b8(0x16f)]-0x1]?.['content']||'','messages':_0x1b582b[_0x14f8b8(0x178)],'model':_0x13e426,'requestId':_0x3e93cb,'options':_0x1b582b['options']||{},'platformProvided':_0x370eb3['platformProvided']||![]};_0x1b582b[_0x14f8b8(0x1be)]&&(_0x5798c3['systemPrompt']=_0x1b582b[_0x14f8b8(0x1be)]);_0x370eb3['platformProvided']?_0x5798c3['apiKey']=_0xb5d198:(_0x52950e&&(_0x5798c3[_0x14f8b8(0x145)]=_0x52950e),_0x370eb3[_0x14f8b8(0x1c2)]&&(_0x5798c3['customApiKeys']=_0x370eb3['customApiKeys']),_0x5798c3[_0x14f8b8(0x15d)]=_0xb5d198);for(let _0xd7f286=0x1;_0xd7f286<=this['retryAttempts'];_0xd7f286++){try{this[_0x14f8b8(0x17c)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x246de9,'model':_0x1b582b[_0x14f8b8(0x173)],'requestId':_0x3e93cb,'attempt':_0xd7f286,'hasApiKey':!!_0xb5d198});const _0x250e58=await fetch(_0x246de9,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x14f8b8(0x1ad)+_0xb5d198,'X-Request-ID':_0x3e93cb},'body':JSON[_0x14f8b8(0x14b)](_0x5798c3),'timeout':this[_0x14f8b8(0x13c)]});if(!_0x250e58['ok']){const _0x111c64=await _0x250e58['text'](),_0x5cdbec=new Error(_0x14f8b8(0x1a6)+_0x250e58[_0x14f8b8(0x192)]+':\x20'+_0x250e58['statusText']+(_0x111c64?'\x20-\x20'+_0x111c64:''));_0x5cdbec['status']=_0x250e58['status'];throw _0x5cdbec;}const _0x428a86=await _0x250e58['json']();return{'choices':[{'message':{'content':_0x428a86[_0x14f8b8(0x16e)]||'','role':_0x14f8b8(0x185)},'finish_reason':_0x428a86[_0x14f8b8(0x1aa)]||'stop'}],'usage':_0x428a86[_0x14f8b8(0x1c5)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x428a86['model']||_0x1b582b[_0x14f8b8(0x173)],'id':_0x428a86['requestId']||_0x3e93cb};}catch(_0x279746){_0x5f016e=_0x279746,this['logger'][_0x14f8b8(0x199)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0xd7f286,'requestId':_0x3e93cb,'error':_0x279746[_0x14f8b8(0x194)],'status':_0x279746['status']});if(_0xd7f286<this[_0x14f8b8(0x176)]){const _0x23355c=Math[_0x14f8b8(0x191)](0x2,_0xd7f286)*0x3e8;this['logger']['warn'](_0x14f8b8(0x1ae)+_0x23355c+'ms',{'attempt':_0xd7f286,'requestId':_0x3e93cb}),await new Promise(_0xa30c12=>setTimeout(_0xa30c12,_0x23355c));}}}this[_0x14f8b8(0x17c)][_0x14f8b8(0x18f)]('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x3e93cb,'error':_0x5f016e[_0x14f8b8(0x194)]});const _0x8cac41=_0x5f016e['message']&&_0x5f016e['message']['includes']('No\x20API\x20key\x20configured');if(_0x8cac41)throw new Error('API\x20Configuration\x20Error:\x20'+_0x5f016e['message']);return{'choices':[{'message':{'content':_0x14f8b8(0x198)+_0x5f016e['message'],'role':_0x14f8b8(0x185)},'finish_reason':_0x14f8b8(0x163)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x1b582b['model'],'id':'error-'+_0x3e93cb,'error':_0x5f016e[_0x14f8b8(0x194)]};}async['_makeImageAPIRequest'](_0x394e20,_0x823de7,_0x1f9657={}){const _0x50dd83=a0_0x6bf9c8,_0x234241='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x3b2c59,_0x2c253e=null,_0x539d36=null;this['logger']?.['info'](_0x50dd83(0x1d8),{'hasApiKeyManager':!!this[_0x50dd83(0x1e4)],'sessionId':_0x1f9657['sessionId'],'hasSessionId':!!_0x1f9657[_0x50dd83(0x1bc)],'model':_0x394e20[_0x50dd83(0x173)]});if(this['apiKeyManager']&&_0x1f9657[_0x50dd83(0x1bc)]){const _0x5863a9=this['apiKeyManager'][_0x50dd83(0x1ce)](_0x1f9657[_0x50dd83(0x1bc)],{'platformProvided':_0x1f9657['platformProvided']||![],'vendor':this[_0x50dd83(0x169)](_0x394e20[_0x50dd83(0x173)])});_0x2c253e=_0x5863a9['loxiaApiKey'],_0x539d36=_0x5863a9['vendorApiKey'],this[_0x50dd83(0x17c)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1f9657[_0x50dd83(0x1bc)],'hasLoxiaKey':!!_0x2c253e,'hasVendorKey':!!_0x539d36});}!_0x2c253e&&_0x1f9657[_0x50dd83(0x15d)]&&(_0x2c253e=_0x1f9657[_0x50dd83(0x15d)]);!_0x2c253e&&this['config']['apiKey']&&(_0x2c253e=this['config'][_0x50dd83(0x15d)]);if(!_0x2c253e)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3bfa4e={'prompt':_0x394e20[_0x50dd83(0x17b)],'model':_0x394e20[_0x50dd83(0x173)]||'azure-openai-dalle3','size':_0x394e20['size'],'quality':_0x394e20['quality'],'style':_0x394e20[_0x50dd83(0x1d3)]||'vivid','n':_0x394e20['n']||0x1,'requestId':_0x823de7};for(let _0x1ec376=0x1;_0x1ec376<=this[_0x50dd83(0x176)];_0x1ec376++){try{this[_0x50dd83(0x17c)][_0x50dd83(0x17e)](_0x50dd83(0x140),{'url':_0x234241,'model':_0x394e20['model'],'requestId':_0x823de7,'attempt':_0x1ec376,'hasApiKey':!!_0x2c253e});const _0x2d58e0=await fetch(_0x234241,{'method':_0x50dd83(0x14d),'headers':{'Content-Type':_0x50dd83(0x167),'Authorization':_0x50dd83(0x1ad)+_0x2c253e,'X-Request-ID':_0x823de7},'body':JSON['stringify'](_0x3bfa4e),'timeout':this['timeout']*0x2});if(!_0x2d58e0['ok']){const _0x2a6018=await _0x2d58e0[_0x50dd83(0x1b5)](),_0x2ed464=new Error(_0x50dd83(0x1a6)+_0x2d58e0[_0x50dd83(0x192)]+':\x20'+_0x2d58e0[_0x50dd83(0x187)]+(_0x2a6018?'\x20-\x20'+_0x2a6018:''));_0x2ed464[_0x50dd83(0x192)]=_0x2d58e0[_0x50dd83(0x192)];throw _0x2ed464;}const _0x89c66e=await _0x2d58e0[_0x50dd83(0x1dc)]();return{'data':_0x89c66e['images']||[],'model':_0x89c66e['model']||_0x394e20['model'],'created':_0x89c66e['created']||Date[_0x50dd83(0x16a)](),'usage':_0x89c66e[_0x50dd83(0x1c5)]};}catch(_0xf49e25){_0x3b2c59=_0xf49e25,this['logger'][_0x50dd83(0x199)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x1ec376,'requestId':_0x823de7,'error':_0xf49e25['message'],'status':_0xf49e25[_0x50dd83(0x192)]});if(_0x1ec376<this['retryAttempts']){const _0x3017d0=Math['pow'](0x2,_0x1ec376)*0x3e8;this['logger']['warn'](_0x50dd83(0x1ae)+_0x3017d0+'ms',{'attempt':_0x1ec376,'requestId':_0x823de7}),await new Promise(_0x47fcad=>setTimeout(_0x47fcad,_0x3017d0));}}}this['logger']['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x823de7,'error':_0x3b2c59['message']});throw new Error(_0x50dd83(0x1b7)+_0x3b2c59[_0x50dd83(0x194)]);}async['_checkRateLimit'](_0xf93759){await new Promise(_0x3495cc=>setTimeout(_0x3495cc,0x64));}async['_handleRateLimit'](_0x57b4ea){const _0x1c2636=a0_0x6bf9c8,_0x4578ec=0xea60;this[_0x1c2636(0x17c)][_0x1c2636(0x17e)](_0x1c2636(0x1d4)+_0x4578ec+'ms',_0x57b4ea),await new Promise(_0x5b90c6=>setTimeout(_0x5b90c6,_0x4578ec));}async[a0_0x6bf9c8(0x172)](_0x3a1e41){const _0x31ad90=a0_0x6bf9c8;this['_recordFailure']();const _0x5d5a79=0x7530;this[_0x31ad90(0x17c)][_0x31ad90(0x17e)](_0x31ad90(0x16b)+_0x5d5a79+'ms',_0x3a1e41),await new Promise(_0x4b4089=>setTimeout(_0x4b4089,_0x5d5a79));}['_isCircuitBreakerOpen'](){const _0x18d915=a0_0x6bf9c8;if(!this['circuitBreaker']['isOpen'])return![];const _0x212270=Date['now']()-this[_0x18d915(0x183)]['lastFailureTime'];if(_0x212270>this['circuitBreaker']['timeout'])return this['circuitBreaker']['isOpen']=![],this['circuitBreaker'][_0x18d915(0x1d2)]=0x0,![];return!![];}['_recordFailure'](){const _0x445bdf=a0_0x6bf9c8;this[_0x445bdf(0x183)]['failures']++,this['circuitBreaker']['lastFailureTime']=Date[_0x445bdf(0x16a)](),this['circuitBreaker'][_0x445bdf(0x1d2)]>=this[_0x445bdf(0x183)]['threshold']&&(this['circuitBreaker'][_0x445bdf(0x159)]=!![],this['logger']['warn'](_0x445bdf(0x174)));}[a0_0x6bf9c8(0x1b6)](){const _0xf6ce76=a0_0x6bf9c8;this[_0xf6ce76(0x183)]['failures']>0x0&&(this['circuitBreaker'][_0xf6ce76(0x1d2)]=0x0,this[_0xf6ce76(0x183)][_0xf6ce76(0x159)]=![],this['logger']['info'](_0xf6ce76(0x141)));}[a0_0x6bf9c8(0x169)](_0x5cdff1){const _0x26e602=a0_0x6bf9c8;if(!_0x5cdff1)return null;const _0x3a5098=_0x5cdff1['toLowerCase']();if(_0x3a5098[_0x26e602(0x1b8)]('anthropic')||_0x3a5098['includes'](_0x26e602(0x1d1)))return _0x26e602(0x1a3);else{if(_0x3a5098['includes']('openai')||_0x3a5098['includes'](_0x26e602(0x1c1)))return _0x26e602(0x1c3);else{if(_0x3a5098[_0x26e602(0x1b8)]('deepseek'))return'deepseek';else{if(_0x3a5098[_0x26e602(0x1b8)](_0x26e602(0x1df)))return'microsoft';}}}return null;}}function a0_0x256d(_0x48a763,_0x21d537){_0x48a763=_0x48a763-0x13c;const _0x7ad7ca=a0_0x7ad7();let _0x256dfb=_0x7ad7ca[_0x48a763];if(a0_0x256d['KGmIIO']===undefined){var _0x556e3a=function(_0x508945){const _0x1eda01='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4fa2ab='',_0x124422='';for(let _0x58b9e3=0x0,_0x35a117,_0x30270f,_0x594438=0x0;_0x30270f=_0x508945['charAt'](_0x594438++);~_0x30270f&&(_0x35a117=_0x58b9e3%0x4?_0x35a117*0x40+_0x30270f:_0x30270f,_0x58b9e3++%0x4)?_0x4fa2ab+=String['fromCharCode'](0xff&_0x35a117>>(-0x2*_0x58b9e3&0x6)):0x0){_0x30270f=_0x1eda01['indexOf'](_0x30270f);}for(let _0xb0f0f5=0x0,_0x282a73=_0x4fa2ab['length'];_0xb0f0f5<_0x282a73;_0xb0f0f5++){_0x124422+='%'+('00'+_0x4fa2ab['charCodeAt'](_0xb0f0f5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x124422);};a0_0x256d['uLpbpI']=_0x556e3a,a0_0x256d['MlzSql']={},a0_0x256d['KGmIIO']=!![];}const _0x4fe8a2=_0x7ad7ca[0x0],_0x31e060=_0x48a763+_0x4fe8a2,_0x285dea=a0_0x256d['MlzSql'][_0x31e060];return!_0x285dea?(_0x256dfb=a0_0x256d['uLpbpI'](_0x256dfb),a0_0x256d['MlzSql'][_0x31e060]=_0x256dfb):_0x256dfb=_0x285dea,_0x256dfb;}class ConversationManager{constructor(_0x4d7d26,_0x1a6d95){const _0x2f8a53=a0_0x6bf9c8;this['agentId']=_0x4d7d26,this['logger']=_0x1a6d95,this[_0x2f8a53(0x196)]=new Map();}async['switchModel'](_0x2d6568){const _0x57f458=a0_0x6bf9c8;return{'messages':[],'model':_0x2d6568,'lastUpdated':new Date()[_0x57f458(0x166)]()};}}export default AIService;
1
+ const a0_0x4bf198=a0_0xfd66;(function(_0x5a5e8c,_0x1c7aa4){const _0x23d3dc=a0_0xfd66,_0x4204c7=_0x5a5e8c();while(!![]){try{const _0x247c8f=-parseInt(_0x23d3dc(0x25a))/0x1+parseInt(_0x23d3dc(0x23c))/0x2*(parseInt(_0x23d3dc(0x1de))/0x3)+parseInt(_0x23d3dc(0x21f))/0x4*(parseInt(_0x23d3dc(0x1ca))/0x5)+parseInt(_0x23d3dc(0x1f0))/0x6+parseInt(_0x23d3dc(0x21a))/0x7*(-parseInt(_0x23d3dc(0x21c))/0x8)+parseInt(_0x23d3dc(0x207))/0x9+-parseInt(_0x23d3dc(0x1df))/0xa*(parseInt(_0x23d3dc(0x216))/0xb);if(_0x247c8f===_0x1c7aa4)break;else _0x4204c7['push'](_0x4204c7['shift']());}catch(_0xa714f0){_0x4204c7['push'](_0x4204c7['shift']());}}}(a0_0xf1a0,0x18c74));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0xfd66(_0x22862e,_0x2e1830){_0x22862e=_0x22862e-0x1c1;const _0xf1a0d=a0_0xf1a0();let _0xfd66f9=_0xf1a0d[_0x22862e];if(a0_0xfd66['ZrbhbC']===undefined){var _0x26e5fd=function(_0x414b3f){const _0x2b597c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29f3b3='',_0x13f05f='';for(let _0x2eb08f=0x0,_0x5d6e1a,_0x13e5bf,_0x2582fa=0x0;_0x13e5bf=_0x414b3f['charAt'](_0x2582fa++);~_0x13e5bf&&(_0x5d6e1a=_0x2eb08f%0x4?_0x5d6e1a*0x40+_0x13e5bf:_0x13e5bf,_0x2eb08f++%0x4)?_0x29f3b3+=String['fromCharCode'](0xff&_0x5d6e1a>>(-0x2*_0x2eb08f&0x6)):0x0){_0x13e5bf=_0x2b597c['indexOf'](_0x13e5bf);}for(let _0x563471=0x0,_0x5a005d=_0x29f3b3['length'];_0x563471<_0x5a005d;_0x563471++){_0x13f05f+='%'+('00'+_0x29f3b3['charCodeAt'](_0x563471)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13f05f);};a0_0xfd66['OSqATj']=_0x26e5fd,a0_0xfd66['dFBZmf']={},a0_0xfd66['ZrbhbC']=!![];}const _0x281b25=_0xf1a0d[0x0],_0x2ab585=_0x22862e+_0x281b25,_0x482f1a=a0_0xfd66['dFBZmf'][_0x2ab585];return!_0x482f1a?(_0xfd66f9=a0_0xfd66['OSqATj'](_0xfd66f9),a0_0xfd66['dFBZmf'][_0x2ab585]=_0xfd66f9):_0xfd66f9=_0x482f1a,_0xfd66f9;}class AIService{constructor(_0x29f3b3,_0x13f05f,_0x2eb08f,_0x5d6e1a){const _0x2d11b9=a0_0xfd66;this['config']=_0x29f3b3,this['logger']=_0x13f05f,this['budgetService']=_0x2eb08f,this[_0x2d11b9(0x251)]=_0x5d6e1a,this['baseUrl']=_0x29f3b3[_0x2d11b9(0x204)]?.[_0x2d11b9(0x218)]||_0x2d11b9(0x205),this[_0x2d11b9(0x225)]=_0x29f3b3['backend']?.['timeout']||0xea60,this[_0x2d11b9(0x213)]=_0x29f3b3[_0x2d11b9(0x204)]?.['retryAttempts']||0x3,this[_0x2d11b9(0x1eb)]=new Map(),this['requestQueue']=new Map(),this[_0x2d11b9(0x259)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x2d11b9(0x234)]=this['_initializeModelSpecs'](),this['conversationManagers']=new Map(),this['apiKeyManager']=null,this[_0x2d11b9(0x1fd)]=null;}async[a0_0x4bf198(0x217)](_0x13e5bf,_0x2582fa,_0x563471={}){const _0x3677bc=a0_0x4bf198,_0x5a005d=_0x3677bc(0x1fc)+Date[_0x3677bc(0x24d)]()+'-'+Math['random']()['toString'](0x24)[_0x3677bc(0x1f9)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x3677bc(0x222));await this['_checkRateLimit'](_0x13e5bf);const _0x185fe7=this[_0x3677bc(0x1e0)](_0x2582fa,_0x13e5bf,_0x563471),_0x54b279={'model':_0x13e5bf,'messages':_0x185fe7,'options':{'max_tokens':this[_0x3677bc(0x234)][_0x13e5bf]?.[_0x3677bc(0x22f)]||0xfa0,'temperature':_0x563471['temperature']||0.7,'stream':_0x563471[_0x3677bc(0x1ec)]||![]},'metadata':{'requestId':_0x5a005d,'agentId':_0x563471[_0x3677bc(0x1d3)],'timestamp':new Date()[_0x3677bc(0x1d7)]()}};_0x563471['systemPrompt']&&(_0x54b279[_0x3677bc(0x1c2)]=_0x563471['systemPrompt']);this['logger']['info'](_0x3677bc(0x1f7)+_0x13e5bf,{'requestId':_0x5a005d,'agentId':_0x563471['agentId'],'messageCount':Array[_0x3677bc(0x267)](_0x2582fa)?_0x2582fa[_0x3677bc(0x1ce)]:0x1,'maxTokens':_0x54b279['max_tokens']});const _0x559357=await this[_0x3677bc(0x209)](_0x3677bc(0x1e9),_0x54b279,_0x5a005d,{..._0x563471,'sessionId':_0x563471['sessionId'],'platformProvided':_0x563471[_0x3677bc(0x232)]||![]});return _0x559357[_0x3677bc(0x206)]&&await this[_0x3677bc(0x20d)](_0x563471['agentId'],_0x13e5bf,{'prompt_tokens':_0x559357[_0x3677bc(0x206)]['prompt_tokens']||0x0,'completion_tokens':_0x559357[_0x3677bc(0x206)]['completion_tokens']||0x0,'total_tokens':_0x559357['usage']['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0x559357['choices'][0x0]?.['message']?.[_0x3677bc(0x242)]||'','model':_0x559357[_0x3677bc(0x250)],'tokenUsage':_0x559357[_0x3677bc(0x206)],'requestId':_0x5a005d,'finishReason':_0x559357[_0x3677bc(0x25c)][0x0]?.['finish_reason']};}catch(_0x27594d){this[_0x3677bc(0x257)](),this[_0x3677bc(0x1e8)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x27594d[_0x3677bc(0x235)],{'requestId':_0x5a005d,'model':_0x13e5bf,'agentId':_0x563471['agentId'],'error':_0x27594d[_0x3677bc(0x20c)]}),await this[_0x3677bc(0x201)](_0x27594d,{'requestId':_0x5a005d,'model':_0x13e5bf,'agentId':_0x563471['agentId']});throw _0x27594d;}}async['routeModel'](_0xa0ee27,_0x360982={}){const _0x11838b=a0_0x4bf198;try{const _0x35bffe=MODEL_ROUTING[_0xa0ee27[_0x11838b(0x255)]()]||MODEL_ROUTING[_0x11838b(0x224)],_0x48911f=[];for(const _0x2a62ea of _0x35bffe){const _0x7831aa=await this['_checkModelHealth'](_0x2a62ea);_0x7831aa&&_0x48911f[_0x11838b(0x1e2)](_0x2a62ea);}if(_0x48911f[_0x11838b(0x1ce)]===0x0)return this['logger'][_0x11838b(0x22e)](_0x11838b(0x1dc)+_0xa0ee27+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x5caf40=_0x48911f[0x0];if(_0x360982['preferredModel']&&_0x48911f['includes'](_0x360982['preferredModel']))_0x5caf40=_0x360982['preferredModel'];else{if(_0x360982['complexity']===_0x11838b(0x260)&&_0x48911f['includes'](MODELS[_0x11838b(0x1f1)]))_0x5caf40=MODELS['ANTHROPIC_OPUS'];else _0x360982['speed']==='fast'&&_0x48911f['includes'](MODELS[_0x11838b(0x212)])&&(_0x5caf40=MODELS[_0x11838b(0x212)]);}return this['logger']['info'](_0x11838b(0x266)+_0xa0ee27,{'selectedModel':_0x5caf40,'availableModels':_0x48911f['length'],'context':_0x360982}),_0x5caf40;}catch(_0x36a0f8){return this[_0x11838b(0x1e8)][_0x11838b(0x23b)](_0x11838b(0x1ef)+_0x36a0f8[_0x11838b(0x235)],{'task':_0xa0ee27,'context':_0x360982}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x357a65,_0x36f4ac){const _0x25a17e=a0_0x4bf198,_0x401231=this[_0x25a17e(0x234)][_0x36f4ac];if(!_0x401231)throw new Error('Unknown\x20model:\x20'+_0x36f4ac);const _0xc3a315=_0x401231['contextWindow']*0.8;let _0x4f42dd=0x0;const _0xf31c1f=[],_0x5e164e=await Promise['all'](_0x357a65[_0x25a17e(0x1e3)](async _0x23caaf=>({..._0x23caaf,'estimatedTokens':await this[_0x25a17e(0x226)](_0x23caaf['content'],_0x36f4ac)}))),_0x19943d=[..._0x5e164e]['reverse']();for(const _0x22684c of _0x19943d){if(_0x4f42dd+_0x22684c['estimatedTokens']>_0xc3a315){if(_0xf31c1f[_0x25a17e(0x1ce)]===0x0){const _0x53fbb1=await this['_truncateMessage'](_0x22684c['content'],_0xc3a315);_0xf31c1f['unshift']({..._0x22684c,'content':_0x53fbb1,'estimatedTokens':_0xc3a315});}break;}_0xf31c1f[_0x25a17e(0x1d6)](_0x22684c),_0x4f42dd+=_0x22684c[_0x25a17e(0x265)];}const _0x15d767=_0x5e164e[_0x25a17e(0x228)](0x0,-_0xf31c1f['length']);if(_0x15d767['length']>0x0){const _0x5181bc=await this['_summarizeMessages'](_0x15d767,_0x36f4ac);_0xf31c1f[_0x25a17e(0x1d6)]({'role':_0x25a17e(0x1c2),'content':'Previous\x20conversation\x20summary:\x20'+_0x5181bc,'timestamp':_0x15d767[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x25a17e(0x226)](_0x5181bc,_0x36f4ac)});}return this[_0x25a17e(0x1e8)][_0x25a17e(0x238)](_0x25a17e(0x22c)+_0x36f4ac,{'originalMessages':_0x357a65['length'],'compactizedMessages':_0xf31c1f[_0x25a17e(0x1ce)],'estimatedTokens':_0x4f42dd,'maxTokens':_0xc3a315}),_0xf31c1f;}async['trackUsage'](_0x197baf,_0x1ef57b,_0x159771,_0x145a58){const _0x2a7bce=a0_0x4bf198;try{this['budgetService']&&this[_0x2a7bce(0x20b)]['trackUsage'](_0x197baf,_0x1ef57b,_0x159771);}catch(_0x4e8a98){this['logger'][_0x2a7bce(0x23b)](_0x2a7bce(0x1ea)+_0x4e8a98['message']);}}async['handleHttpError'](_0x5a5e3c,_0x4f434b){const _0x443603=a0_0x4bf198,_0x422f4a=this[_0x443603(0x251)]?.['classifyError']?.(_0x5a5e3c,_0x4f434b);switch(_0x5a5e3c[_0x443603(0x20a)]||_0x5a5e3c[_0x443603(0x1fe)]){case HTTP_STATUS[_0x443603(0x25d)]:this['logger'][_0x443603(0x23b)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x4f434b,'error':_0x5a5e3c[_0x443603(0x235)]});throw new Error('Invalid\x20request:\x20'+_0x5a5e3c['message']);case HTTP_STATUS[_0x443603(0x1d4)]:this[_0x443603(0x1e8)][_0x443603(0x23b)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x4f434b});throw new Error(_0x443603(0x1fb));case HTTP_STATUS['FORBIDDEN']:this[_0x443603(0x1e8)][_0x443603(0x23b)]('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x4f434b});throw new Error(_0x443603(0x1e1));case HTTP_STATUS[_0x443603(0x25b)]:this['logger']['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x4f434b});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x443603(0x1e8)][_0x443603(0x22e)](_0x443603(0x208),{'context':_0x4f434b}),await this['_handleRateLimit'](_0x4f434b);throw new Error(_0x443603(0x1f4));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x443603(0x230)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this['logger']['error'](_0x443603(0x247),{'context':_0x4f434b,'status':_0x5a5e3c['status']}),await this[_0x443603(0x20e)](_0x4f434b);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x4f434b,'error':_0x5a5e3c[_0x443603(0x235)]});throw new Error(_0x443603(0x23d)+_0x5a5e3c['message']);}}[a0_0x4bf198(0x1c4)](_0x2cf131){const _0x194ae3=a0_0x4bf198;this[_0x194ae3(0x263)]=_0x2cf131,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x2cf131});}['setAgentPool'](_0x151862){const _0xe3478b=a0_0x4bf198;this['agentPool']=_0x151862,this['logger']?.[_0xe3478b(0x238)](_0xe3478b(0x229),{'hasAgentPool':!!_0x151862});}async[a0_0x4bf198(0x261)](_0x238cba,_0x3c5490={}){const _0x4b9465=a0_0x4bf198,_0x2854d7=_0x4b9465(0x1c3)+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x4b9465(0x222));if(!_0x238cba||typeof _0x238cba!==_0x4b9465(0x1d9)||_0x238cba[_0x4b9465(0x268)]()[_0x4b9465(0x1ce)]===0x0)throw new Error(_0x4b9465(0x1d1));const _0x57dce8=_0x3c5490[_0x4b9465(0x250)]||'flux-1.1-pro',_0x1ab50c=_0x3c5490[_0x4b9465(0x1ed)]||'1024x1024',_0x47b6af=_0x3c5490[_0x4b9465(0x1d5)]||_0x4b9465(0x22b),_0x5e68ae=_0x3c5490['responseFormat']||'url';this[_0x4b9465(0x1e8)]['info'](_0x4b9465(0x252)+_0x57dce8,{'requestId':_0x2854d7,'model':_0x57dce8,'size':_0x1ab50c,'quality':_0x47b6af,'promptLength':_0x238cba['length']});const _0x31c770={'prompt':_0x238cba,'model':_0x57dce8,'size':_0x1ab50c,'quality':_0x47b6af,'response_format':_0x5e68ae,'n':0x1,'metadata':{'requestId':_0x2854d7,'timestamp':new Date()['toISOString']()}},_0x30ec39=await this[_0x4b9465(0x1c8)](_0x31c770,_0x2854d7,{'sessionId':_0x3c5490[_0x4b9465(0x24e)],'platformProvided':_0x3c5490[_0x4b9465(0x232)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x30ec39['data']?.[0x0]?.['url']||null,'b64_json':_0x30ec39[_0x4b9465(0x227)]?.[0x0]?.['b64_json']||null,'model':_0x30ec39[_0x4b9465(0x250)]||_0x57dce8,'requestId':_0x2854d7,'revisedPrompt':_0x30ec39['data']?.[0x0]?.['revised_prompt']||_0x238cba};}catch(_0x42f118){this['_recordFailure'](),this['logger'][_0x4b9465(0x23b)]('Image\x20generation\x20failed:\x20'+_0x42f118[_0x4b9465(0x235)],{'requestId':_0x2854d7,'model':_0x3c5490['model'],'error':_0x42f118[_0x4b9465(0x20c)]});throw _0x42f118;}}async['checkServiceHealth'](){const _0x20aa5a=a0_0x4bf198;try{const _0x49b50c=await this['_makeAPIRequest']('/health',{},_0x20aa5a(0x254));return _0x49b50c['status']==='healthy';}catch(_0x31106e){return![];}}async[a0_0x4bf198(0x1e6)](_0x487ef5,_0x23416e){const _0x2c68a8=a0_0x4bf198;try{if(!this[_0x2c68a8(0x203)](_0x23416e))throw new Error('Invalid\x20model:\x20'+_0x23416e);let _0x2bf93d=this['conversationManagers'][_0x2c68a8(0x24a)](_0x487ef5);!_0x2bf93d&&(_0x2bf93d=new ConversationManager(_0x487ef5,this['logger']),this['conversationManagers']['set'](_0x487ef5,_0x2bf93d));const _0x3161cd=await _0x2bf93d['switchModel'](_0x23416e),_0x134fb8=await this['agentPool']?.['getAgent'](_0x487ef5);return _0x134fb8&&(_0x134fb8['currentModel']=_0x23416e,await this[_0x2c68a8(0x1fd)]['persistAgentState'](_0x487ef5)),this['logger'][_0x2c68a8(0x238)]('Agent\x20model\x20switched:\x20'+_0x487ef5,{'newModel':_0x23416e,'messageCount':_0x3161cd[_0x2c68a8(0x1cd)]['length']}),{'success':!![],'agentId':_0x487ef5,'newModel':_0x23416e,'conversation':_0x3161cd};}catch(_0xf27d0f){this[_0x2c68a8(0x1e8)][_0x2c68a8(0x23b)](_0x2c68a8(0x1f5)+_0xf27d0f[_0x2c68a8(0x235)],{'agentId':_0x487ef5,'newModel':_0x23416e});throw _0xf27d0f;}}[a0_0x4bf198(0x1c6)](){const _0x5dc9d3=a0_0x4bf198,_0x1409e8={[MODELS[_0x5dc9d3(0x253)]]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x25f)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x25f)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x5dc9d3(0x1cc)]]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x1cb)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x1cb)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x1cb)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x1cb)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x5dc9d3(0x210)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x5dc9d3(0x1c1)]]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x223)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x5dc9d3(0x1c5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x5dc9d3(0x1c5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x1409e8;}[a0_0x4bf198(0x1e0)](_0x3e0ae2,_0x130990,_0x562fc){const _0x3f6526=a0_0x4bf198,_0x10bf14=this[_0x3f6526(0x234)][_0x130990]||{'provider':_0x3f6526(0x1c5)};let _0x565f05;typeof _0x3e0ae2===_0x3f6526(0x1d9)?_0x565f05=[{'role':'user','content':_0x3e0ae2}]:_0x565f05=_0x3e0ae2['map'](_0x2f4dd0=>this['_formatSingleMessage'](_0x2f4dd0,_0x130990));switch(_0x10bf14[_0x3f6526(0x215)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x565f05);case MODEL_PROVIDERS[_0x3f6526(0x1cb)]:return this[_0x3f6526(0x21e)](_0x565f05);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x565f05);default:return _0x565f05;}}[a0_0x4bf198(0x240)](_0x28c110,_0x24015d){const _0x3c28bf=a0_0x4bf198;return{'role':_0x28c110[_0x3c28bf(0x1ff)]||_0x3c28bf(0x231),'content':_0x28c110[_0x3c28bf(0x242)],'timestamp':_0x28c110['timestamp']};}['_formatForAnthropic'](_0x5b1257){return _0x5b1257['map'](_0x5a372d=>{const _0x18788e=a0_0xfd66;if(_0x5a372d['role']==='system')return{'role':_0x18788e(0x231),'content':'System:\x20'+_0x5a372d[_0x18788e(0x242)]};return _0x5a372d;});}['_formatForOpenAI'](_0x4c95b0){return _0x4c95b0;}[a0_0x4bf198(0x1dd)](_0x2ddc9a){return _0x2ddc9a['map'](_0x51609e=>({..._0x51609e,'content':typeof _0x51609e['content']==='string'?_0x51609e['content']:JSON['stringify'](_0x51609e['content'])}));}['_isValidModel'](_0xc013b8){const _0x409719=a0_0x4bf198;this[_0x409719(0x1e8)]['debug']('Validating\x20model',{'model':_0xc013b8,'modelType':typeof _0xc013b8});if(this[_0x409719(0x234)][_0xc013b8]!==undefined)return!![];return this['logger'][_0x409719(0x22e)]('Model\x20validation\x20failed',{'model':_0xc013b8,'availableModels':Object['keys'](this[_0x409719(0x234)])}),![];}async['_checkModelHealth'](_0x4397d1){return!![];}async[a0_0x4bf198(0x226)](_0x3667f0,_0x40a269){const _0x1038b4=a0_0x4bf198;return Math[_0x1038b4(0x1db)](_0x3667f0['length']/0x4);}async[a0_0x4bf198(0x1e4)](_0x1a6fea,_0x19e474){const _0x3cc57e=a0_0x4bf198,_0x5227fe=_0x19e474*0x4;if(_0x1a6fea[_0x3cc57e(0x1ce)]<=_0x5227fe)return _0x1a6fea;return _0x1a6fea['substring'](0x0,_0x5227fe-0x14)+_0x3cc57e(0x243);}async[a0_0x4bf198(0x262)](_0x240f48,_0x366a04){const _0x4973bc=a0_0x4bf198,_0x5115ba=_0x240f48[_0x4973bc(0x1e3)](_0x13386f=>_0x13386f['role']+':\x20'+_0x13386f['content'])[_0x4973bc(0x23f)]('\x0a'),_0x2110e4=0x1f4;if(_0x5115ba['length']<=_0x2110e4)return _0x5115ba;return _0x5115ba[_0x4973bc(0x200)](0x0,_0x2110e4)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x4bf198(0x209)](_0x46a56f,_0x44a367,_0x12d31d,_0x2e07f2={}){const _0x33c1b9=a0_0x4bf198,_0x521f88=_0x33c1b9(0x248);let _0x597f47,_0x320ef0=null,_0x3e4ae8=null;this['logger']?.['info']('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x33c1b9(0x263)],'sessionId':_0x2e07f2['sessionId'],'hasSessionId':!!_0x2e07f2['sessionId'],'optionsKeys':Object[_0x33c1b9(0x1d2)](_0x2e07f2),'model':_0x44a367['model']});if(this[_0x33c1b9(0x263)]&&_0x2e07f2['sessionId']){const _0x447255=this['apiKeyManager']['getKeysForRequest'](_0x2e07f2[_0x33c1b9(0x24e)],{'platformProvided':_0x2e07f2[_0x33c1b9(0x232)]||![],'vendor':this[_0x33c1b9(0x1d0)](_0x44a367['model'])});_0x320ef0=_0x447255[_0x33c1b9(0x1f8)],_0x3e4ae8=_0x447255['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x2e07f2[_0x33c1b9(0x24e)],'hasLoxiaKey':!!_0x320ef0,'hasVendorKey':!!_0x3e4ae8,'vendor':this[_0x33c1b9(0x1d0)](_0x44a367[_0x33c1b9(0x250)])});}!_0x320ef0&&_0x2e07f2[_0x33c1b9(0x22a)]&&(_0x320ef0=_0x2e07f2['apiKey']);!_0x320ef0&&this[_0x33c1b9(0x1ee)][_0x33c1b9(0x22a)]&&(_0x320ef0=this['config']['apiKey']);if(!_0x320ef0)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x4de739=_0x44a367['model'],_0x2e4608={'conversationId':_0x12d31d,'message':_0x44a367['messages'][_0x44a367[_0x33c1b9(0x1cd)]['length']-0x1]?.[_0x33c1b9(0x242)]||'','messages':_0x44a367[_0x33c1b9(0x1cd)],'model':_0x4de739,'requestId':_0x12d31d,'options':_0x44a367[_0x33c1b9(0x241)]||{},'platformProvided':_0x2e07f2[_0x33c1b9(0x232)]||![]};_0x44a367['system']&&(_0x2e4608['systemPrompt']=_0x44a367['system']);_0x2e07f2['platformProvided']?_0x2e4608['apiKey']=_0x320ef0:(_0x3e4ae8&&(_0x2e4608[_0x33c1b9(0x245)]=_0x3e4ae8),_0x2e07f2[_0x33c1b9(0x1c9)]&&(_0x2e4608['customApiKeys']=_0x2e07f2['customApiKeys']),_0x2e4608[_0x33c1b9(0x22a)]=_0x320ef0);for(let _0xaef020=0x1;_0xaef020<=this[_0x33c1b9(0x213)];_0xaef020++){try{this['logger'][_0x33c1b9(0x238)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x521f88,'model':_0x44a367[_0x33c1b9(0x250)],'requestId':_0x12d31d,'attempt':_0xaef020,'hasApiKey':!!_0x320ef0});const _0x5163a3=await fetch(_0x521f88,{'method':_0x33c1b9(0x23e),'headers':{'Content-Type':_0x33c1b9(0x220),'Authorization':'Bearer\x20'+_0x320ef0,'X-Request-ID':_0x12d31d},'body':JSON['stringify'](_0x2e4608),'timeout':this[_0x33c1b9(0x225)]});if(!_0x5163a3['ok']){const _0x4e3df9=await _0x5163a3['text'](),_0x2a31fb=new Error('HTTP\x20'+_0x5163a3['status']+':\x20'+_0x5163a3[_0x33c1b9(0x1e7)]+(_0x4e3df9?'\x20-\x20'+_0x4e3df9:''));_0x2a31fb['status']=_0x5163a3[_0x33c1b9(0x20a)];throw _0x2a31fb;}const _0xb0bc8=await _0x5163a3[_0x33c1b9(0x233)]();return{'choices':[{'message':{'content':_0xb0bc8['content']||'','role':'assistant'},'finish_reason':_0xb0bc8['finishReason']||_0x33c1b9(0x1d8)}],'usage':_0xb0bc8[_0x33c1b9(0x206)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0xb0bc8[_0x33c1b9(0x250)]||_0x44a367[_0x33c1b9(0x250)],'id':_0xb0bc8['requestId']||_0x12d31d};}catch(_0x2ade40){_0x597f47=_0x2ade40,this['logger']['warn']('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0xaef020,'requestId':_0x12d31d,'error':_0x2ade40[_0x33c1b9(0x235)],'status':_0x2ade40['status']});if(_0xaef020<this[_0x33c1b9(0x213)]){const _0x5e03b3=Math[_0x33c1b9(0x236)](0x2,_0xaef020)*0x3e8;this[_0x33c1b9(0x1e8)]['warn']('Retrying\x20in\x20'+_0x5e03b3+'ms',{'attempt':_0xaef020,'requestId':_0x12d31d}),await new Promise(_0x1cde56=>setTimeout(_0x1cde56,_0x5e03b3));}}}this['logger'][_0x33c1b9(0x23b)](_0x33c1b9(0x25e),{'requestId':_0x12d31d,'error':_0x597f47[_0x33c1b9(0x235)]});const _0x5a3fe8=_0x597f47[_0x33c1b9(0x235)]&&_0x597f47[_0x33c1b9(0x235)][_0x33c1b9(0x1fa)](_0x33c1b9(0x239));if(_0x5a3fe8)throw new Error(_0x33c1b9(0x246)+_0x597f47[_0x33c1b9(0x235)]);return{'choices':[{'message':{'content':_0x33c1b9(0x256)+_0x597f47['message'],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x44a367['model'],'id':'error-'+_0x12d31d,'error':_0x597f47[_0x33c1b9(0x235)]};}async[a0_0x4bf198(0x1c8)](_0x130ebd,_0x48273b,_0x1df34e={}){const _0x48c4b4=a0_0x4bf198,_0x298af5=_0x48c4b4(0x221);let _0x4be58f,_0x12d655=null,_0x4f31df=null;this[_0x48c4b4(0x1e8)]?.[_0x48c4b4(0x238)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1df34e['sessionId'],'hasSessionId':!!_0x1df34e['sessionId'],'model':_0x130ebd[_0x48c4b4(0x250)]});if(this['apiKeyManager']&&_0x1df34e[_0x48c4b4(0x24e)]){const _0x5919d4=this['apiKeyManager'][_0x48c4b4(0x24c)](_0x1df34e['sessionId'],{'platformProvided':_0x1df34e[_0x48c4b4(0x232)]||![],'vendor':this['_getVendorFromModel'](_0x130ebd['model'])});_0x12d655=_0x5919d4['loxiaApiKey'],_0x4f31df=_0x5919d4[_0x48c4b4(0x245)],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1df34e['sessionId'],'hasLoxiaKey':!!_0x12d655,'hasVendorKey':!!_0x4f31df});}!_0x12d655&&_0x1df34e['apiKey']&&(_0x12d655=_0x1df34e['apiKey']);!_0x12d655&&this['config'][_0x48c4b4(0x22a)]&&(_0x12d655=this['config']['apiKey']);if(!_0x12d655)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0xf78439={'prompt':_0x130ebd['prompt'],'model':_0x130ebd[_0x48c4b4(0x250)]||_0x48c4b4(0x21b),'size':_0x130ebd['size'],'quality':_0x130ebd['quality'],'style':_0x130ebd['style']||_0x48c4b4(0x202),'n':_0x130ebd['n']||0x1,'requestId':_0x48273b};for(let _0x4d260a=0x1;_0x4d260a<=this[_0x48c4b4(0x213)];_0x4d260a++){try{this[_0x48c4b4(0x1e8)][_0x48c4b4(0x238)](_0x48c4b4(0x1f2),{'url':_0x298af5,'model':_0x130ebd['model'],'requestId':_0x48273b,'attempt':_0x4d260a,'hasApiKey':!!_0x12d655});const _0x17508a=await fetch(_0x298af5,{'method':_0x48c4b4(0x23e),'headers':{'Content-Type':_0x48c4b4(0x220),'Authorization':'Bearer\x20'+_0x12d655,'X-Request-ID':_0x48273b},'body':JSON[_0x48c4b4(0x20f)](_0xf78439),'timeout':this['timeout']*0x2});if(!_0x17508a['ok']){const _0x210088=await _0x17508a['text'](),_0x36c785=new Error(_0x48c4b4(0x24b)+_0x17508a['status']+':\x20'+_0x17508a[_0x48c4b4(0x1e7)]+(_0x210088?_0x48c4b4(0x219)+_0x210088:''));_0x36c785[_0x48c4b4(0x20a)]=_0x17508a[_0x48c4b4(0x20a)];throw _0x36c785;}const _0x59951d=await _0x17508a['json']();return{'data':_0x59951d['images']||[],'model':_0x59951d[_0x48c4b4(0x250)]||_0x130ebd['model'],'created':_0x59951d[_0x48c4b4(0x1cf)]||Date[_0x48c4b4(0x24d)](),'usage':_0x59951d[_0x48c4b4(0x206)]};}catch(_0x532000){_0x4be58f=_0x532000,this[_0x48c4b4(0x1e8)][_0x48c4b4(0x22e)](_0x48c4b4(0x244),{'attempt':_0x4d260a,'requestId':_0x48273b,'error':_0x532000[_0x48c4b4(0x235)],'status':_0x532000[_0x48c4b4(0x20a)]});if(_0x4d260a<this['retryAttempts']){const _0x55dc98=Math['pow'](0x2,_0x4d260a)*0x3e8;this['logger'][_0x48c4b4(0x22e)](_0x48c4b4(0x1f6)+_0x55dc98+'ms',{'attempt':_0x4d260a,'requestId':_0x48273b}),await new Promise(_0x56d976=>setTimeout(_0x56d976,_0x55dc98));}}}this['logger']['error'](_0x48c4b4(0x1e5),{'requestId':_0x48273b,'error':_0x4be58f['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x4be58f[_0x48c4b4(0x235)]);}async[a0_0x4bf198(0x21d)](_0x633271){await new Promise(_0x2a606b=>setTimeout(_0x2a606b,0x64));}async['_handleRateLimit'](_0xfae115){const _0x52c21b=a0_0x4bf198,_0x53a45e=0xea60;this[_0x52c21b(0x1e8)][_0x52c21b(0x238)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x53a45e+'ms',_0xfae115),await new Promise(_0x3e7dc9=>setTimeout(_0x3e7dc9,_0x53a45e));}async[a0_0x4bf198(0x20e)](_0x3a7491){this['_recordFailure']();const _0x3da10d=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x3da10d+'ms',_0x3a7491),await new Promise(_0x2fe648=>setTimeout(_0x2fe648,_0x3da10d));}['_isCircuitBreakerOpen'](){const _0x5154d3=a0_0x4bf198;if(!this['circuitBreaker'][_0x5154d3(0x214)])return![];const _0x4d2e0c=Date[_0x5154d3(0x24d)]()-this['circuitBreaker'][_0x5154d3(0x23a)];if(_0x4d2e0c>this[_0x5154d3(0x259)]['timeout'])return this[_0x5154d3(0x259)][_0x5154d3(0x214)]=![],this['circuitBreaker'][_0x5154d3(0x24f)]=0x0,![];return!![];}[a0_0x4bf198(0x257)](){const _0xc132f7=a0_0x4bf198;this[_0xc132f7(0x259)]['failures']++,this['circuitBreaker'][_0xc132f7(0x23a)]=Date['now'](),this['circuitBreaker'][_0xc132f7(0x24f)]>=this['circuitBreaker'][_0xc132f7(0x22d)]&&(this[_0xc132f7(0x259)][_0xc132f7(0x214)]=!![],this['logger'][_0xc132f7(0x22e)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}['_resetCircuitBreaker'](){const _0x37abcc=a0_0x4bf198;this[_0x37abcc(0x259)]['failures']>0x0&&(this[_0x37abcc(0x259)][_0x37abcc(0x24f)]=0x0,this['circuitBreaker'][_0x37abcc(0x214)]=![],this['logger'][_0x37abcc(0x238)](_0x37abcc(0x237)));}[a0_0x4bf198(0x1d0)](_0x314e9d){const _0x15940f=a0_0x4bf198;if(!_0x314e9d)return null;const _0x1c1c6c=_0x314e9d[_0x15940f(0x258)]();if(_0x1c1c6c[_0x15940f(0x1fa)](_0x15940f(0x1c7))||_0x1c1c6c['includes'](_0x15940f(0x1da)))return'anthropic';else{if(_0x1c1c6c['includes'](_0x15940f(0x249))||_0x1c1c6c['includes']('gpt'))return _0x15940f(0x249);else{if(_0x1c1c6c['includes'](_0x15940f(0x211)))return _0x15940f(0x211);else{if(_0x1c1c6c['includes']('phi'))return _0x15940f(0x264);}}}return null;}}function a0_0xf1a0(){const _0x4efa4f=['ANnVBG','Bw9KzwXtCgvJCW','BwvZC2fNzq','Cg93','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','Aw5MBW','tM8GqvbjigTLEsbJB25MAwD1CMvK','BgfZDezHAwX1CMvuAw1L','zxjYB3i','mtb3Ce5bv3q','quKGC2vYDMLJzsbLCNjVCJOG','ue9tva','AM9PBG','x2zVCM1HDfnPBMDSzu1LC3nHz2u','B3b0Aw9UCW','y29UDgvUDa','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','DMvUzg9YqxbPs2v5','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','B3bLBMfP','z2v0','sfruuca','z2v0s2v5C0zVCLjLCxvLC3q','BM93','C2vZC2LVBKLK','zMfPBhvYzxm','Bw9KzwW','zxjYB3jiyw5KBgvY','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','qu5usfjpueLdx1nptK5fva','AgvHBhrOlwnOzwnR','Dg9vChbLCKnHC2u','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','x3jLy29YzezHAwX1CMu','Dg9mB3DLCKnHC2u','y2LYy3vPDejYzwfRzxi','mJeXndfht09Tr3u','tK9ux0zpvu5e','y2HVAwnLCW','qKfex1jfuvvfu1q','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','qu5usfjpueLd','AgLNAa','z2vUzxjHDgvjBwfNzq','x3n1Bw1HCML6zu1LC3nHz2vZ','yxbPs2v5twfUywDLCG','BwLJCM9ZB2z0','zxn0Aw1HDgvKvg9Rzw5Z','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','AxnbCNjHEq','DhjPBq','ueHjxZq','C3LZDgvT','Aw1Nlq','C2v0qxbPs2v5twfUywDLCG','qvPvuKu','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','yw50AhjVCgLJ','x21HA2vjBwfNzufqsvjLCxvLC3q','y3vZDg9TqxbPs2v5CW','nJuYnduWyNfztLnk','t1bftKfj','r1buxZq','BwvZC2fNzxm','BgvUz3rO','y3jLyxrLza','x2DLDfzLBMrVCKzYB21nB2rLBa','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','A2v5CW','ywDLBNrjza','vu5bvvrit1jjwKve','CxvHBgL0Eq','Dw5ZAgLMDa','Dg9ju09tDhjPBMC','C3rVCa','C3rYAw5N','y2XHDwrL','y2vPBa','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','x2zVCM1HDezVCKf6DxjL','mtu0nxfwz3PqrG','mteWntCWr2TlsuHr','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','ChvZAa','BwfW','x3rYDw5JyxrLtwvZC2fNzq','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','C3DPDgnOqwDLBNrnB2rLBa','C3rHDhvZvgv4Da','Bg9Nz2vY','l2nOyxqVy29TCgXLDgLVBNm','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','CMf0zuXPBwL0zxjZ','C3rYzwfT','C2L6zq','y29UzMLN','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','otu2ntHmD0jNBxO','qu5usfjpueLdx09qvvm','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','y29UDMvYC2f0Aw9UCW','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','tw9KzwWGC3DPDgnOigzHAwXLzdOG','uMv0CNLPBMCGAw4G','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','Bg94AwfbCgLlzxK','C3vIC3rY','Aw5JBhvKzxm','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','CMvXlq','ywDLBNrqB29S','y29Kzq','CM9Szq','C3vIC3rYAw5N','AgfUzgXLshr0CevYCM9Y','DML2Awq','x2LZvMfSAwrnB2rLBa','yMfJA2vUza','Ahr0Chm6lY9HCgKUBg94AweUywK','DxnHz2u','ode1mZy0AwHerLHf','uMf0zsbSAw1PDcbLEgnLzwrLza','x21HA2vbueLszxf1zxn0','C3rHDhvZ','yNvKz2v0u2vYDMLJzq','C3rHy2S','DhjHy2TvC2fNzq','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','C3rYAw5NAwz5','revfufnfruTFuJe','zgvLChnLzwS','qu5usfjpueLdx0HbsuTv','CMv0CNLbDhrLBxb0CW','AxnpCgvU','ChjVDMLKzxi','nZDRt3L1Cfy','C2vUze1LC3nHz2u','yMfZzvvYBa','ic0G','n1fkvhPWuW','yxP1CMuTB3bLBMfPlwrHBgXLmW','mZe2ntC2DfPXuff5','x2nOzwnRuMf0zuXPBwL0','x2zVCM1HDezVCK9Wzw5bsq','nhfcrLniqG','yxbWBgLJyxrPB24VANnVBG','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','ueHj','rKfmtejbq0S','DgLTzw91Da','x2vZDgLTyxrLvg9Rzw5Z','zgf0yq','C2XPy2u','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','yxbPs2v5','C3rHBMrHCMq','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','DgHYzxnOB2XK','D2fYBG','Bwf4vg9Rzw5Z','qKfex0DbvevxqvK','DxnLCG','CgXHDgzVCM1qCM92AwrLza'];a0_0xf1a0=function(){return _0x4efa4f;};return a0_0xf1a0();}class ConversationManager{constructor(_0x2595b1,_0x16d169){const _0x1c38a7=a0_0x4bf198;this[_0x1c38a7(0x1d3)]=_0x2595b1,this[_0x1c38a7(0x1e8)]=_0x16d169,this[_0x1c38a7(0x1f3)]=new Map();}async['switchModel'](_0x1c2199){const _0x39d2b8=a0_0x4bf198;return{'messages':[],'model':_0x1c2199,'lastUpdated':new Date()[_0x39d2b8(0x1d7)]()};}}export default AIService;
@@ -1 +1 @@
1
- function a0_0x1a13(_0x411b85,_0x58a64a){_0x411b85=_0x411b85-0xe7;const _0x445d21=a0_0x445d();let _0x1a13bc=_0x445d21[_0x411b85];if(a0_0x1a13['KRojFn']===undefined){var _0x475ff0=function(_0x58425e){const _0x496318='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a62e3='',_0x1896a5='';for(let _0x5a3440=0x0,_0x398852,_0xb546a1,_0x2a32fc=0x0;_0xb546a1=_0x58425e['charAt'](_0x2a32fc++);~_0xb546a1&&(_0x398852=_0x5a3440%0x4?_0x398852*0x40+_0xb546a1:_0xb546a1,_0x5a3440++%0x4)?_0x4a62e3+=String['fromCharCode'](0xff&_0x398852>>(-0x2*_0x5a3440&0x6)):0x0){_0xb546a1=_0x496318['indexOf'](_0xb546a1);}for(let _0x4cc5cd=0x0,_0x41c98c=_0x4a62e3['length'];_0x4cc5cd<_0x41c98c;_0x4cc5cd++){_0x1896a5+='%'+('00'+_0x4a62e3['charCodeAt'](_0x4cc5cd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1896a5);};a0_0x1a13['haJrmu']=_0x475ff0,a0_0x1a13['ABsVla']={},a0_0x1a13['KRojFn']=!![];}const _0x4be08f=_0x445d21[0x0],_0x1da967=_0x411b85+_0x4be08f,_0xf00d5d=a0_0x1a13['ABsVla'][_0x1da967];return!_0xf00d5d?(_0x1a13bc=a0_0x1a13['haJrmu'](_0x1a13bc),a0_0x1a13['ABsVla'][_0x1da967]=_0x1a13bc):_0x1a13bc=_0xf00d5d,_0x1a13bc;}const a0_0x5ae738=a0_0x1a13;(function(_0x56ea70,_0x36f219){const _0x518f10=a0_0x1a13,_0x51d493=_0x56ea70();while(!![]){try{const _0x4cedc6=parseInt(_0x518f10(0x106))/0x1*(-parseInt(_0x518f10(0xe9))/0x2)+parseInt(_0x518f10(0xfa))/0x3*(-parseInt(_0x518f10(0xf9))/0x4)+-parseInt(_0x518f10(0xf2))/0x5+parseInt(_0x518f10(0x109))/0x6*(-parseInt(_0x518f10(0xe7))/0x7)+-parseInt(_0x518f10(0x101))/0x8*(-parseInt(_0x518f10(0xfd))/0x9)+-parseInt(_0x518f10(0x100))/0xa+parseInt(_0x518f10(0xf6))/0xb*(parseInt(_0x518f10(0xf4))/0xc);if(_0x4cedc6===_0x36f219)break;else _0x51d493['push'](_0x51d493['shift']());}catch(_0x1cbb6b){_0x51d493['push'](_0x51d493['shift']());}}}(a0_0x445d,0x2e07a));class ApiKeyManager{constructor(_0x4a62e3){const _0xf2366e=a0_0x1a13;this['logger']=_0x4a62e3,this[_0xf2366e(0xff)]=new Map(),this[_0xf2366e(0xea)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x1896a5,_0x5a3440){const _0xcb982b=a0_0x1a13;if(!_0x1896a5)throw new Error('Session\x20ID\x20is\x20required');this[_0xcb982b(0xff)][_0xcb982b(0x102)](_0x1896a5,{'loxiaApiKey':_0x5a3440[_0xcb982b(0x107)]||null,'vendorKeys':_0x5a3440['vendorKeys']||{},'updatedAt':new Date()[_0xcb982b(0x103)]()}),this[_0xcb982b(0xfe)]?.[_0xcb982b(0xef)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x1896a5,'hasLoxiaKey':!!_0x5a3440['loxiaApiKey'],'vendorKeys':Object[_0xcb982b(0xe8)](_0x5a3440['vendorKeys']||{}),'timestamp':new Date()[_0xcb982b(0x103)]()});}[a0_0x5ae738(0x105)](_0x398852){const _0x5ec1fc=a0_0x5ae738;if(!_0x398852)return this['globalKeys'];const _0xb546a1=this['sessionKeys'][_0x5ec1fc(0xfb)](_0x398852);if(_0xb546a1)return _0xb546a1;return this[_0x5ec1fc(0xea)];}[a0_0x5ae738(0xf1)](_0x2a32fc,_0x4cc5cd={}){const _0x3548c5=a0_0x5ae738,_0x41c98c=this['getSessionKeys'](_0x2a32fc),_0x1af3c5={'loxiaApiKey':_0x41c98c['loxiaApiKey'],'vendorApiKey':null};return!_0x4cc5cd['platformProvided']&&_0x4cc5cd[_0x3548c5(0xf8)]&&_0x41c98c[_0x3548c5(0x104)]&&(_0x1af3c5['vendorApiKey']=_0x41c98c[_0x3548c5(0x104)][_0x4cc5cd[_0x3548c5(0xf8)]]),_0x1af3c5;}[a0_0x5ae738(0xec)](_0x3d80ba){const _0x28eed6=a0_0x5ae738;if(this[_0x28eed6(0xff)]['delete'](_0x3d80ba))return this[_0x28eed6(0xfe)]?.['info'](_0x28eed6(0x10a),{'sessionId':_0x3d80ba}),!![];return![];}[a0_0x5ae738(0xfc)](_0x2e00ce){const _0x1dd7d5=a0_0x5ae738;this[_0x1dd7d5(0xea)]={'loxiaApiKey':_0x2e00ce['loxiaApiKey']||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x1dd7d5(0x104)],..._0x2e00ce[_0x1dd7d5(0x104)]||{}}},this['logger']?.[_0x1dd7d5(0xef)](_0x1dd7d5(0xeb),{'hasLoxiaKey':!!this[_0x1dd7d5(0xea)]['loxiaApiKey'],'vendorKeys':Object['keys'](this['globalKeys']['vendorKeys'])});}[a0_0x5ae738(0xee)](){const _0x3b717d=a0_0x5ae738;return Array['from'](this['sessionKeys'][_0x3b717d(0xf7)]())['map'](([_0x1ed473,_0x3881d2])=>({'sessionId':_0x1ed473,'hasLoxiaKey':!!_0x3881d2[_0x3b717d(0x107)],'vendorKeys':Object['keys'](_0x3881d2['vendorKeys']||{}),'updatedAt':_0x3881d2['updatedAt']}));}['cleanupExpiredSessions'](_0x27c543=0x18*0x3c*0x3c*0x3e8){const _0x33fef=a0_0x5ae738,_0x4af816=Date[_0x33fef(0xf0)](),_0x542421=[];for(const [_0x4fbd04,_0x1ba278]of this['sessionKeys']['entries']()){const _0x427950=_0x4af816-new Date(_0x1ba278['updatedAt'])[_0x33fef(0xed)]();_0x427950>_0x27c543&&_0x542421[_0x33fef(0xf3)](_0x4fbd04);}return _0x542421[_0x33fef(0xf5)](_0x4addfe=>{const _0x5e1487=_0x33fef;this[_0x5e1487(0xff)]['delete'](_0x4addfe);}),_0x542421['length']>0x0&&this['logger']?.['info']('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x542421['length'],'remainingSessions':this['sessionKeys']['size']}),_0x542421[_0x33fef(0x108)];}}export default ApiKeyManager;function a0_0x445d(){const _0x47eb48=['ChvZAa','mZaWugjoCu9z','zM9YrwfJAa','ntq3ntaZtMTNCfPO','zw50CMLLCW','DMvUzg9Y','ndeZmLDzr05pDa','ntyXrMnXs1zK','z2v0','C2v0r2XVyMfSs2v5CW','mJG4odKXq2fSrNHl','Bg9Nz2vY','C2vZC2LVBKTLExm','mti2otKWmgfeAgzrEG','ohDKsvbUrG','C2v0','Dg9ju09tDhjPBMC','DMvUzg9Ys2v5CW','z2v0u2vZC2LVBKTLExm','mZLgzKn1ze0','Bg94AwfbCgLlzxK','BgvUz3rO','mtjisM5jCwy','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','nda4mde2A2DNswrU','A2v5CW','mty3mZrRAuD1t08','z2XVyMfSs2v5CW','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','CMvTB3zLu2vZC2LVBKTLExm','z2v0vgLTzq','z2v0qwn0AxzLu2vZC2LVBNm','Aw5MBW','BM93','z2v0s2v5C0zVCLjLCxvLC3q','mtyYnde4mhDkzunPCW'];a0_0x445d=function(){return _0x47eb48;};return a0_0x445d();}
1
+ const a0_0x5df5da=a0_0x458c;(function(_0x43dbf8,_0x44a32f){const _0x9cf5f6=a0_0x458c,_0x1ec0f2=_0x43dbf8();while(!![]){try{const _0x7ec408=parseInt(_0x9cf5f6(0xb1))/0x1*(parseInt(_0x9cf5f6(0xa8))/0x2)+-parseInt(_0x9cf5f6(0x98))/0x3+parseInt(_0x9cf5f6(0xa1))/0x4+-parseInt(_0x9cf5f6(0xab))/0x5*(-parseInt(_0x9cf5f6(0xa2))/0x6)+-parseInt(_0x9cf5f6(0xb8))/0x7*(-parseInt(_0x9cf5f6(0xb6))/0x8)+-parseInt(_0x9cf5f6(0xa9))/0x9*(parseInt(_0x9cf5f6(0xaf))/0xa)+parseInt(_0x9cf5f6(0xb7))/0xb;if(_0x7ec408===_0x44a32f)break;else _0x1ec0f2['push'](_0x1ec0f2['shift']());}catch(_0x1a8a9b){_0x1ec0f2['push'](_0x1ec0f2['shift']());}}}(a0_0x3a84,0xa6976));function a0_0x3a84(){const _0x1a8237=['mJyXnZHgtgTnB3O','z2v0vgLTzq','z2v0qwn0AxzLu2vZC2LVBNm','Aw5MBW','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','C2vZC2LVBKTLExm','mtq2A0Hhquri','mZaYntq0BwzlB2nT','Bg9Nz2vY','mtaYnxngy3PItq','BwfW','z2v0s2v5C0zVCLjLCxvLC3q','DMvUzg9YqxbPs2v5','mZaWDKjdsLDP','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','mJaXmuDqAgjjEa','A2v5CW','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','mtuWnJa0ogjHCNfbtG','mtK0nJuWnwj4wu1ytW','n0XUwhjIAW','Bg94AwfbCgLlzxK','C2v0u2vZC2LVBKTLExm','mta1ndi2m0HpELLYtG','z2v0','DMvUzg9Ys2v5CW','zgvSzxrL','BM93','z2XVyMfSs2v5CW','zw50CMLLCW','C2v0r2XVyMfSs2v5CW','C2L6zq','mJu0mZmYme9eAwPRBW'];a0_0x3a84=function(){return _0x1a8237;};return a0_0x3a84();}function a0_0x458c(_0x433daa,_0x3085c6){_0x433daa=_0x433daa-0x97;const _0x3a846f=a0_0x3a84();let _0x458c99=_0x3a846f[_0x433daa];if(a0_0x458c['pOcRBd']===undefined){var _0x4a47a5=function(_0x24f2e6){const _0x1e3903='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f5e83='',_0x472fbe='';for(let _0x3c1c59=0x0,_0x5100bb,_0x47476b,_0x36ea1b=0x0;_0x47476b=_0x24f2e6['charAt'](_0x36ea1b++);~_0x47476b&&(_0x5100bb=_0x3c1c59%0x4?_0x5100bb*0x40+_0x47476b:_0x47476b,_0x3c1c59++%0x4)?_0x1f5e83+=String['fromCharCode'](0xff&_0x5100bb>>(-0x2*_0x3c1c59&0x6)):0x0){_0x47476b=_0x1e3903['indexOf'](_0x47476b);}for(let _0x5a56bc=0x0,_0xb07a5f=_0x1f5e83['length'];_0x5a56bc<_0xb07a5f;_0x5a56bc++){_0x472fbe+='%'+('00'+_0x1f5e83['charCodeAt'](_0x5a56bc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x472fbe);};a0_0x458c['ODqSsI']=_0x4a47a5,a0_0x458c['NwAjue']={},a0_0x458c['pOcRBd']=!![];}const _0x330304=_0x3a846f[0x0],_0x49d227=_0x433daa+_0x330304,_0x282bd9=a0_0x458c['NwAjue'][_0x49d227];return!_0x282bd9?(_0x458c99=a0_0x458c['ODqSsI'](_0x458c99),a0_0x458c['NwAjue'][_0x49d227]=_0x458c99):_0x458c99=_0x282bd9,_0x458c99;}class ApiKeyManager{constructor(_0x1f5e83){const _0x1e7f4b=a0_0x458c;this['logger']=_0x1f5e83,this[_0x1e7f4b(0xa7)]=new Map(),this[_0x1e7f4b(0x9d)]={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x5df5da(0x97)](_0x472fbe,_0x3c1c59){const _0x22835d=a0_0x5df5da;if(!_0x472fbe)throw new Error(_0x22835d(0xb0));this[_0x22835d(0xa7)]['set'](_0x472fbe,{'loxiaApiKey':_0x3c1c59['loxiaApiKey']||null,'vendorKeys':_0x3c1c59['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.['info'](_0x22835d(0xb3),{'sessionId':_0x472fbe,'hasLoxiaKey':!!_0x3c1c59[_0x22835d(0xb9)],'vendorKeys':Object['keys'](_0x3c1c59[_0x22835d(0x9a)]||{}),'timestamp':new Date()['toISOString']()});}['getSessionKeys'](_0x5100bb){const _0x392467=a0_0x5df5da;if(!_0x5100bb)return this[_0x392467(0x9d)];const _0x47476b=this['sessionKeys'][_0x392467(0x99)](_0x5100bb);if(_0x47476b)return _0x47476b;return this['globalKeys'];}[a0_0x5df5da(0xad)](_0x36ea1b,_0x5a56bc={}){const _0x4935c4=a0_0x5df5da,_0xb07a5f=this['getSessionKeys'](_0x36ea1b),_0x32a5b1={'loxiaApiKey':_0xb07a5f[_0x4935c4(0xb9)],'vendorApiKey':null};return!_0x5a56bc['platformProvided']&&_0x5a56bc['vendor']&&_0xb07a5f['vendorKeys']&&(_0x32a5b1[_0x4935c4(0xae)]=_0xb07a5f['vendorKeys'][_0x5a56bc['vendor']]),_0x32a5b1;}['removeSessionKeys'](_0x3f0cdb){const _0x2078e6=a0_0x5df5da;if(this['sessionKeys'][_0x2078e6(0x9b)](_0x3f0cdb))return this[_0x2078e6(0xaa)]?.['info'](_0x2078e6(0xb5),{'sessionId':_0x3f0cdb}),!![];return![];}[a0_0x5df5da(0x9f)](_0x3de3a8){const _0x3ae719=a0_0x5df5da;this['globalKeys']={'loxiaApiKey':_0x3de3a8['loxiaApiKey']||this['globalKeys'][_0x3ae719(0xb9)],'vendorKeys':{...this['globalKeys'][_0x3ae719(0x9a)],..._0x3de3a8['vendorKeys']||{}}},this[_0x3ae719(0xaa)]?.[_0x3ae719(0xa5)]('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this['globalKeys'][_0x3ae719(0xb9)],'vendorKeys':Object[_0x3ae719(0xb2)](this['globalKeys']['vendorKeys'])});}[a0_0x5df5da(0xa4)](){const _0x182931=a0_0x5df5da;return Array['from'](this[_0x182931(0xa7)][_0x182931(0x9e)]())[_0x182931(0xac)](([_0x44b756,_0x2f5644])=>({'sessionId':_0x44b756,'hasLoxiaKey':!!_0x2f5644['loxiaApiKey'],'vendorKeys':Object['keys'](_0x2f5644[_0x182931(0x9a)]||{}),'updatedAt':_0x2f5644['updatedAt']}));}[a0_0x5df5da(0xa6)](_0x778f2=0x18*0x3c*0x3c*0x3e8){const _0x2efc69=a0_0x5df5da,_0x298b61=Date[_0x2efc69(0x9c)](),_0x4b2486=[];for(const [_0x1c19a0,_0x2e0675]of this['sessionKeys']['entries']()){const _0x43517e=_0x298b61-new Date(_0x2e0675['updatedAt'])[_0x2efc69(0xa3)]();_0x43517e>_0x778f2&&_0x4b2486['push'](_0x1c19a0);}return _0x4b2486['forEach'](_0x4082b5=>{const _0x5a6fe1=_0x2efc69;this[_0x5a6fe1(0xa7)][_0x5a6fe1(0x9b)](_0x4082b5);}),_0x4b2486['length']>0x0&&this[_0x2efc69(0xaa)]?.[_0x2efc69(0xa5)](_0x2efc69(0xb4),{'expiredSessions':_0x4b2486['length'],'remainingSessions':this[_0x2efc69(0xa7)][_0x2efc69(0xa0)]}),_0x4b2486['length'];}}export default ApiKeyManager;
@@ -1 +1 @@
1
- function a0_0x51bb(){const _0x58dbf9=['CMvMCMvZAeLUDgvYDMfS','x2DLDe1VC3rdB3n0rwzMAwnPzw50','yMvUy2HTyxjRCW','Bg9HzejLBMnOBwfYA3m','x2DLDezHC3rLC3rnB2rLBa','DgfZA3m','Dg9ju09tDhjPBMC','z2v0qMvUy2HTyxjRCW','BwvZC2fNzq','C3rHDhvZ','mtGYntqXC291z0jU','sfruuca','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','y29ZDa','C29YDa','zxjYB3i','Dw5RBM93BG','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','A2v5CW','Bg9Nz2vY','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','BwfW','C3rHDhvZvgv4Da','AxnmB2fKAw5N','mZC1nJrIrePqtfC','CxvPy2STDgfZA3m','DMfSDwvZ','BgfZDfvWzgf0zwq','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','yw5HBhLZAxm','mZu5ndq4s2fizvbx','x2DLDejLC3rnB2rLBezVCLrHC2S','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','y29UzMLN','BgvUz3rO','zgvIDwC','BMfTzq','ntrdDwLrrwK','mJq0nZq4t012te1q','ANnVBG','rMfPBgvKihrVigLUAxrPywXPEMuGyMvUy2HTyxjRihnLCNzPy2uGlsbotYbgquXmqKfdsW','C291CMnL','mtuZmtKZnvr4EfrnCW','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','Bw9KzwXZ','nZC2ndyWBMrzthL4','z2v0vgLTzq','BMvLzhnszwzYzxnO','yxbWBgLJyxrPB24VANnVBG','x3nJAgvKDwXLuMvMCMvZAa','Bwf4','mtK4rLvoD09k','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','C2nVCMu','Aw5MBW','mJm5mJC4u1HozwXj','yxbPs2v5','mtjSDvP5z0u'];a0_0x51bb=function(){return _0x58dbf9;};return a0_0x51bb();}const a0_0x24882f=a0_0x3e02;(function(_0x57f000,_0x3d2e0e){const _0x3063b8=a0_0x3e02,_0x5c2b91=_0x57f000();while(!![]){try{const _0x45ea6b=-parseInt(_0x3063b8(0x1db))/0x1+parseInt(_0x3063b8(0x209))/0x2+parseInt(_0x3063b8(0x205))/0x3*(parseInt(_0x3063b8(0x1ea))/0x4)+parseInt(_0x3063b8(0x1fc))/0x5+-parseInt(_0x3063b8(0x20b))/0x6*(-parseInt(_0x3063b8(0x1f8))/0x7)+-parseInt(_0x3063b8(0x1f0))/0x8+-parseInt(_0x3063b8(0x1f7))/0x9*(parseInt(_0x3063b8(0x1ff))/0xa);if(_0x45ea6b===_0x3d2e0e)break;else _0x5c2b91['push'](_0x5c2b91['shift']());}catch(_0xa76a51){_0x5c2b91['push'](_0x5c2b91['shift']());}}}(a0_0x51bb,0x6720c));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x244528,_0x3cca1f){const _0x48aab4=a0_0x3e02;this['config']=_0x244528,this['logger']=_0x3cca1f,this[_0x48aab4(0x20e)]=null,this[_0x48aab4(0x1ed)]=null,this[_0x48aab4(0x1e9)]=![],this['azureBackendUrl']=_0x48aab4(0x1dd),this[_0x48aab4(0x20c)]=MODEL_ROUTER_CONFIG[_0x48aab4(0x1ee)];}async['initialize'](){const _0x5cc4bb=a0_0x3e02;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger'][_0x5cc4bb(0x208)]('Benchmark\x20service\x20initialized');}catch(_0x1144d0){this['logger'][_0x5cc4bb(0x1e1)](_0x5cc4bb(0x1fa),{'error':_0x1144d0['message']}),this['benchmarks']=null;}}[a0_0x24882f(0x1d8)](){const _0x27f1cb=a0_0x24882f;if(!this[_0x27f1cb(0x20e)])return this['logger']['error'](_0x27f1cb(0x206),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x30f1c4=a0_0x24882f;if(this['isLoading']){this[_0x30f1c4(0x1e5)]['debug'](_0x30f1c4(0x1e3));return;}this['isLoading']=!![];try{const _0x14690d=await this[_0x30f1c4(0x1fd)]();if(_0x14690d)this[_0x30f1c4(0x20e)]=_0x14690d,this[_0x30f1c4(0x1ed)]=new Date(),this['logger'][_0x30f1c4(0x208)]('Benchmarks loaded from Azure backend',{'modelCount':_0x14690d['models']?.[_0x30f1c4(0x1f4)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x43e044){this['logger'][_0x30f1c4(0x1e1)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x43e044[_0x30f1c4(0x1d9)],'endpoint':url}),!this[_0x30f1c4(0x20e)]&&(this['benchmarks']=null);}finally{this[_0x30f1c4(0x1e9)]=![];}}['getBenchmarkTable'](){const _0x5d9387=a0_0x24882f,_0x542dfd=this['getBenchmarks']();return{'lastUpdated':this[_0x5d9387(0x1ed)]?.[_0x5d9387(0x1d7)]()||_0x5d9387(0x1e2),'models':_0x542dfd['models']||[],'tasks':_0x542dfd['tasks']||{},'summary':this[_0x5d9387(0x1e6)](_0x542dfd)};}[a0_0x24882f(0x201)](){const _0xa47039=a0_0x24882f;if(!this[_0xa47039(0x1ed)])return!![];const _0x15babe=Date['now']()-this['lastUpdated'][_0xa47039(0x200)]();return _0x15babe>this[_0xa47039(0x20c)];}async[a0_0x24882f(0x1fd)](){const _0x356831=a0_0x24882f,_0x58e049=this['azureBackendUrl']+_0x356831(0x1f2);let _0x41b180=null;this[_0x356831(0x1f3)]['apiKey']&&(_0x41b180=this['config'][_0x356831(0x20a)]);const _0x1b3e89={'method':'GET','headers':{'Content-Type':_0x356831(0x202),..._0x41b180&&{'Authorization':'Bearer\x20'+_0x41b180}},'timeout':0x2710};this[_0x356831(0x1e5)][_0x356831(0x1f5)]('Fetching benchmarks from Azure backend',{'url':_0x58e049});const _0x598f20=await fetch(_0x58e049,_0x1b3e89);if(!_0x598f20['ok'])throw new Error(_0x356831(0x1dc)+_0x598f20[_0x356831(0x1da)]+':\x20'+_0x598f20[_0x356831(0x1e8)]);const _0x380d91=await _0x598f20[_0x356831(0x1f9)]();return _0x380d91;}[a0_0x24882f(0x1e6)](_0x591033){const _0x494c1c=a0_0x24882f,_0xcf223b=_0x591033[_0x494c1c(0x1fe)]||[];return{'totalModels':_0xcf223b[_0x494c1c(0x1f4)],'taskCategories':Object[_0x494c1c(0x1e4)](_0x591033[_0x494c1c(0x1d6)]||{}),'bestForCoding':this['_getBestModelForTask'](_0xcf223b,'coding'),'bestForAnalysis':this[_0x494c1c(0x1f1)](_0xcf223b,_0x494c1c(0x1ef)),'bestForQuickTasks':this[_0x494c1c(0x1f1)](_0xcf223b,_0x494c1c(0x1eb)),'bestForCreative':this['_getBestModelForTask'](_0xcf223b,'creative'),'fastestModel':this[_0x494c1c(0x210)](_0xcf223b),'mostCostEfficient':this[_0x494c1c(0x20d)](_0xcf223b)};}[a0_0x24882f(0x1f1)](_0x2160d7,_0x169c2a){const _0x264f9e=a0_0x24882f;return _0x2160d7['filter'](_0x70ea11=>_0x70ea11[_0x264f9e(0x1d6)]&&_0x70ea11[_0x264f9e(0x1d6)][_0x169c2a])[_0x264f9e(0x1e0)]((_0x5f51f6,_0x238e49)=>(_0x238e49['tasks'][_0x169c2a][_0x264f9e(0x207)]||0x0)-(_0x5f51f6['tasks'][_0x169c2a]['score']||0x0))[0x0]?.[_0x264f9e(0x1f6)]||_0x264f9e(0x1e2);}['_getFastestModel'](_0x20c111){const _0xcbf221=a0_0x24882f,_0x239180={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x20c111[_0xcbf221(0x1e0)]((_0x4ae2b6,_0x2aff38)=>{const _0x13ba56=_0xcbf221,_0x20bb0d=Math[_0x13ba56(0x204)](...Object['values'](_0x4ae2b6['tasks']||{})['map'](_0x19ed52=>_0x239180[_0x19ed52['speed']]||0x0)),_0x404f60=Math[_0x13ba56(0x204)](...Object[_0x13ba56(0x1ec)](_0x2aff38[_0x13ba56(0x1d6)]||{})['map'](_0x3b0d8d=>_0x239180[_0x3b0d8d['speed']]||0x0));return _0x404f60-_0x20bb0d;})[0x0]?.['name']||_0xcbf221(0x1e2);}['_getMostCostEfficient'](_0x2a17a6){const _0x3b915b=a0_0x24882f,_0x2dc740={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x2a17a6['sort']((_0x1f00d0,_0x5bd443)=>{const _0x2987b4=a0_0x3e02,_0x2c8666=Math['max'](...Object['values'](_0x1f00d0[_0x2987b4(0x1d6)]||{})['map'](_0x14e84f=>_0x2dc740[_0x14e84f['cost']]||0x0)),_0x458098=Math[_0x2987b4(0x204)](...Object['values'](_0x5bd443[_0x2987b4(0x1d6)]||{})[_0x2987b4(0x1e7)](_0x3d200f=>_0x2dc740[_0x3d200f[_0x2987b4(0x1df)]]||0x0));return _0x458098-_0x2c8666;})[0x0]?.[_0x3b915b(0x1f6)]||_0x3b915b(0x1e2);}[a0_0x24882f(0x203)](){const _0x4934d5=a0_0x24882f;setInterval(async()=>{const _0x1be68c=a0_0x3e02;this['needsRefresh']()&&(this[_0x1be68c(0x1e5)]['debug'](_0x1be68c(0x1de)),await this[_0x1be68c(0x20f)]());},this[_0x4934d5(0x20c)]);}async['forceRefresh'](){const _0xa32939=a0_0x24882f;this[_0xa32939(0x1e5)][_0xa32939(0x208)]('Force\x20refreshing\x20benchmark\x20data'),await this[_0xa32939(0x20f)]();}['getStatus'](){const _0x2bf652=a0_0x24882f;return{'initialized':!!this[_0x2bf652(0x20e)],'lastUpdated':this['lastUpdated']?.[_0x2bf652(0x1d7)]()||null,'source':this[_0x2bf652(0x20e)]?.[_0x2bf652(0x1fb)]||_0x2bf652(0x1e2),'modelCount':this[_0x2bf652(0x20e)]?.['models']?.['length']||0x0,'isLoading':this[_0x2bf652(0x1e9)],'needsRefresh':this['needsRefresh']()};}}function a0_0x3e02(_0x4ad516,_0x59678c){_0x4ad516=_0x4ad516-0x1d6;const _0x51bb9b=a0_0x51bb();let _0x3e0290=_0x51bb9b[_0x4ad516];if(a0_0x3e02['fPZYzL']===undefined){var _0x512881=function(_0x4a3d20){const _0x4abf6e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x244528='',_0x3cca1f='';for(let _0x1144d0=0x0,_0x14690d,_0x43e044,_0x542dfd=0x0;_0x43e044=_0x4a3d20['charAt'](_0x542dfd++);~_0x43e044&&(_0x14690d=_0x1144d0%0x4?_0x14690d*0x40+_0x43e044:_0x43e044,_0x1144d0++%0x4)?_0x244528+=String['fromCharCode'](0xff&_0x14690d>>(-0x2*_0x1144d0&0x6)):0x0){_0x43e044=_0x4abf6e['indexOf'](_0x43e044);}for(let _0x15babe=0x0,_0x58e049=_0x244528['length'];_0x15babe<_0x58e049;_0x15babe++){_0x3cca1f+='%'+('00'+_0x244528['charCodeAt'](_0x15babe)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3cca1f);};a0_0x3e02['ShNEUu']=_0x512881,a0_0x3e02['wRxZwk']={},a0_0x3e02['fPZYzL']=!![];}const _0x6e9d35=_0x51bb9b[0x0],_0x9948a8=_0x4ad516+_0x6e9d35,_0x5bad8f=a0_0x3e02['wRxZwk'][_0x9948a8];return!_0x5bad8f?(_0x3e0290=a0_0x3e02['ShNEUu'](_0x3e0290),a0_0x3e02['wRxZwk'][_0x9948a8]=_0x3e0290):_0x3e0290=_0x5bad8f,_0x3e0290;}export default BenchmarkService;
1
+ const a0_0x3b7194=a0_0x66ed;(function(_0x4cee1e,_0x452d4f){const _0x440839=a0_0x66ed,_0x4e7c9f=_0x4cee1e();while(!![]){try{const _0x44820e=parseInt(_0x440839(0x1c6))/0x1+-parseInt(_0x440839(0x1a4))/0x2*(parseInt(_0x440839(0x1bc))/0x3)+parseInt(_0x440839(0x1b1))/0x4*(-parseInt(_0x440839(0x1a0))/0x5)+-parseInt(_0x440839(0x1be))/0x6*(-parseInt(_0x440839(0x1a5))/0x7)+-parseInt(_0x440839(0x1bb))/0x8+-parseInt(_0x440839(0x198))/0x9*(parseInt(_0x440839(0x1b2))/0xa)+parseInt(_0x440839(0x1bf))/0xb;if(_0x44820e===_0x452d4f)break;else _0x4e7c9f['push'](_0x4e7c9f['shift']());}catch(_0x35ceb4){_0x4e7c9f['push'](_0x4e7c9f['shift']());}}}(a0_0x349f,0x6f1ab));function a0_0x349f(){const _0x20eb43=['ntKXv1fJwuzu','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','mtaXotaYofHHBgroBW','mtq2nJi1odjeuejhBvu','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','x2DLDezHC3rLC3rnB2rLBa','zM9Yy2vszwzYzxnO','Aw5MBW','Dg9ju09tDhjPBMC','Bw9KzwXZ','mJyZnZe5Cfjbyw1x','C3bLzwq','sfruuca','BM93','x3nJAgvKDwXLuMvMCMvZAa','BMfTzq','mJDUrNDrshG','DMfSDwvZ','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','yxbPs2v5','x2DLDejLC3rnB2rLBezVCLrHC2S','qMvHCMvYia','A2v5CW','y29UzMLN','nZG1twzWsgDg','y29KAw5N','AxnmB2fKAw5N','DgfZA3m','ntyWnMnQAhbftq','mtrTEvz3CfC','z2v0u3rHDhvZ','yw5HBhLZAxm','Dw5RBM93BG','z2v0qMvUy2HTyxjRvgfIBgu','CMvMCMvZAeLUDgvYDMfS','Bg9Nz2vY','z2v0vgLTzq','C3rHDhvZvgv4Da','yMvUy2HTyxjRCW','Bwf4','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','mtm2sxvICffo','mte3mtC5me5Nq0DQEq','BgfZDfvWzgf0zwq','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','zxjYB3i','Bg9HzejLBMnOBwfYA3m','C29YDa','yxbWBgLJyxrPB24VANnVBG','C2nVCMu','yxP1CMvcywnRzw5KvxjS','ndu3nZy2nhfMEgnwDa'];a0_0x349f=function(){return _0x20eb43;};return a0_0x349f();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x215f90,_0x563508){const _0x2673d1=a0_0x66ed;this[_0x2673d1(0x19f)]=_0x215f90,this['logger']=_0x563508,this[_0x2673d1(0x1ae)]=null,this['lastUpdated']=null,this['isLoading']=![],this[_0x2673d1(0x1ba)]=_0x2673d1(0x19a),this[_0x2673d1(0x1aa)]=MODEL_ROUTER_CONFIG[_0x2673d1(0x1b0)];}async['initialize'](){const _0x2cabc3=a0_0x66ed;try{await this['loadBenchmarks'](),this[_0x2cabc3(0x196)](),this['logger'][_0x2cabc3(0x1c3)]('Benchmark\x20service\x20initialized');}catch(_0x10ba35){this[_0x2cabc3(0x1ab)][_0x2cabc3(0x1b5)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x10ba35['message']}),this[_0x2cabc3(0x1ae)]=null;}}['getBenchmarks'](){const _0x57bc39=a0_0x66ed;if(!this['benchmarks'])return this['logger'][_0x57bc39(0x1b5)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async[a0_0x3b7194(0x1b6)](){const _0x14abf6=a0_0x3b7194;if(this[_0x14abf6(0x1a2)]){this[_0x14abf6(0x1ab)]['debug'](_0x14abf6(0x1c0));return;}this[_0x14abf6(0x1a2)]=!![];try{const _0x5087dd=await this[_0x14abf6(0x1b4)]();if(_0x5087dd)this[_0x14abf6(0x1ae)]=_0x5087dd,this[_0x14abf6(0x1b3)]=new Date(),this[_0x14abf6(0x1ab)][_0x14abf6(0x1c3)]('Benchmarks loaded from Azure backend',{'modelCount':_0x5087dd['models']?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x1f2928){this[_0x14abf6(0x1ab)][_0x14abf6(0x1b5)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x1f2928['message'],'endpoint':url}),!this['benchmarks']&&(this[_0x14abf6(0x1ae)]=null);}finally{this['isLoading']=![];}}[a0_0x3b7194(0x1a9)](){const _0x359752=a0_0x3b7194,_0x19169e=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||_0x359752(0x1a8),'models':_0x19169e['models']||[],'tasks':_0x19169e[_0x359752(0x1a3)]||{},'summary':this['_generateBenchmarkSummary'](_0x19169e)};}['needsRefresh'](){const _0x14d4da=a0_0x3b7194;if(!this['lastUpdated'])return!![];const _0x4934f4=Date[_0x14d4da(0x195)]()-this['lastUpdated'][_0x14d4da(0x1ac)]();return _0x4934f4>this['refreshInterval'];}async[a0_0x3b7194(0x1b4)](){const _0x5d847a=a0_0x3b7194,_0x20b1d3=this['azureBackendUrl']+'/llm/model-benchmarks';let _0x289c7b=null;this['config'][_0x5d847a(0x19b)]&&(_0x289c7b=this['config'][_0x5d847a(0x19b)]);const _0x90b5b6={'method':'GET','headers':{'Content-Type':_0x5d847a(0x1b8),..._0x289c7b&&{'Authorization':_0x5d847a(0x19d)+_0x289c7b}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x20b1d3});const _0x60e506=await fetch(_0x20b1d3,_0x90b5b6);if(!_0x60e506['ok'])throw new Error(_0x5d847a(0x194)+_0x60e506['status']+':\x20'+_0x60e506[_0x5d847a(0x1ad)]);const _0x5ed22e=await _0x60e506['json']();return _0x5ed22e;}['_generateBenchmarkSummary'](_0x11f1f6){const _0x28afcc=a0_0x3b7194,_0x2becb8=_0x11f1f6[_0x28afcc(0x1c5)]||[];return{'totalModels':_0x2becb8['length'],'taskCategories':Object[_0x28afcc(0x19e)](_0x11f1f6['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x2becb8,_0x28afcc(0x1a1)),'bestForAnalysis':this['_getBestModelForTask'](_0x2becb8,_0x28afcc(0x1a7)),'bestForQuickTasks':this['_getBestModelForTask'](_0x2becb8,'quick-tasks'),'bestForCreative':this[_0x28afcc(0x19c)](_0x2becb8,'creative'),'fastestModel':this[_0x28afcc(0x1c1)](_0x2becb8),'mostCostEfficient':this['_getMostCostEfficient'](_0x2becb8)};}['_getBestModelForTask'](_0x447a2a,_0x29a6ba){const _0x32cf21=a0_0x3b7194;return _0x447a2a['filter'](_0x2ad58d=>_0x2ad58d['tasks']&&_0x2ad58d[_0x32cf21(0x1a3)][_0x29a6ba])['sort']((_0x565259,_0x2078bc)=>(_0x2078bc['tasks'][_0x29a6ba][_0x32cf21(0x1b9)]||0x0)-(_0x565259[_0x32cf21(0x1a3)][_0x29a6ba]['score']||0x0))[0x0]?.[_0x32cf21(0x197)]||_0x32cf21(0x1a8);}[a0_0x3b7194(0x1c1)](_0x143a57){const _0x4ff4bb=a0_0x3b7194,_0xc1c94d={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x143a57['sort']((_0x1e0d22,_0xcd93a2)=>{const _0x4ffad5=a0_0x66ed,_0x44dca0=Math[_0x4ffad5(0x1af)](...Object[_0x4ffad5(0x199)](_0x1e0d22['tasks']||{})['map'](_0x46a153=>_0xc1c94d[_0x46a153['speed']]||0x0)),_0x1d9044=Math[_0x4ffad5(0x1af)](...Object['values'](_0xcd93a2[_0x4ffad5(0x1a3)]||{})['map'](_0x113b96=>_0xc1c94d[_0x113b96[_0x4ffad5(0x193)]]||0x0));return _0x1d9044-_0x44dca0;})[0x0]?.[_0x4ff4bb(0x197)]||'unknown';}['_getMostCostEfficient'](_0x1de6d6){const _0x1994bf=a0_0x3b7194,_0x390a07={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x1de6d6[_0x1994bf(0x1b7)]((_0x48c7df,_0x9898fa)=>{const _0x2d75a7=_0x1994bf,_0x25b786=Math['max'](...Object[_0x2d75a7(0x199)](_0x48c7df['tasks']||{})['map'](_0x462200=>_0x390a07[_0x462200['cost']]||0x0)),_0x401559=Math[_0x2d75a7(0x1af)](...Object[_0x2d75a7(0x199)](_0x9898fa[_0x2d75a7(0x1a3)]||{})['map'](_0x305f44=>_0x390a07[_0x305f44['cost']]||0x0));return _0x401559-_0x25b786;})[0x0]?.['name']||_0x1994bf(0x1a8);}['_scheduleRefresh'](){const _0x5568ea=a0_0x3b7194;setInterval(async()=>{const _0x5987c0=a0_0x66ed;this['needsRefresh']()&&(this[_0x5987c0(0x1ab)]['debug']('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x5568ea(0x1aa)]);}async[a0_0x3b7194(0x1c2)](){const _0x52e560=a0_0x3b7194;this[_0x52e560(0x1ab)]['info'](_0x52e560(0x1bd)),await this[_0x52e560(0x1b6)]();}[a0_0x3b7194(0x1a6)](){const _0x2652d6=a0_0x3b7194;return{'initialized':!!this[_0x2652d6(0x1ae)],'lastUpdated':this['lastUpdated']?.[_0x2652d6(0x1c4)]()||null,'source':this[_0x2652d6(0x1ae)]?.['source']||'unknown','modelCount':this['benchmarks']?.[_0x2652d6(0x1c5)]?.['length']||0x0,'isLoading':this[_0x2652d6(0x1a2)],'needsRefresh':this['needsRefresh']()};}}function a0_0x66ed(_0x5902da,_0x62f9be){_0x5902da=_0x5902da-0x193;const _0x349ff3=a0_0x349f();let _0x66eddb=_0x349ff3[_0x5902da];if(a0_0x66ed['qouVyq']===undefined){var _0xbe4636=function(_0x5601a4){const _0x3f9824='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x215f90='',_0x563508='';for(let _0x10ba35=0x0,_0x5087dd,_0x1f2928,_0x19169e=0x0;_0x1f2928=_0x5601a4['charAt'](_0x19169e++);~_0x1f2928&&(_0x5087dd=_0x10ba35%0x4?_0x5087dd*0x40+_0x1f2928:_0x1f2928,_0x10ba35++%0x4)?_0x215f90+=String['fromCharCode'](0xff&_0x5087dd>>(-0x2*_0x10ba35&0x6)):0x0){_0x1f2928=_0x3f9824['indexOf'](_0x1f2928);}for(let _0x4934f4=0x0,_0x20b1d3=_0x215f90['length'];_0x4934f4<_0x20b1d3;_0x4934f4++){_0x563508+='%'+('00'+_0x215f90['charCodeAt'](_0x4934f4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x563508);};a0_0x66ed['CQsCYx']=_0xbe4636,a0_0x66ed['lqtkeY']={},a0_0x66ed['qouVyq']=!![];}const _0xbeb5e4=_0x349ff3[0x0],_0x318fb4=_0x5902da+_0xbeb5e4,_0x1826a2=a0_0x66ed['lqtkeY'][_0x318fb4];return!_0x1826a2?(_0x66eddb=a0_0x66ed['CQsCYx'](_0x66eddb),a0_0x66ed['lqtkeY'][_0x318fb4]=_0x66eddb):_0x66eddb=_0x1826a2,_0x66eddb;}export default BenchmarkService;
@@ -1 +1 @@
1
- const a0_0x5f3f6c=a0_0x1ed1;(function(_0x404b13,_0x3b4d78){const _0x17193e=a0_0x1ed1,_0x2e3076=_0x404b13();while(!![]){try{const _0x111ab2=-parseInt(_0x17193e(0xb8))/0x1+-parseInt(_0x17193e(0xc7))/0x2*(-parseInt(_0x17193e(0xba))/0x3)+parseInt(_0x17193e(0xa7))/0x4+parseInt(_0x17193e(0xae))/0x5*(parseInt(_0x17193e(0x86))/0x6)+parseInt(_0x17193e(0xcb))/0x7+parseInt(_0x17193e(0xbf))/0x8+-parseInt(_0x17193e(0xc0))/0x9*(parseInt(_0x17193e(0xc9))/0xa);if(_0x111ab2===_0x3b4d78)break;else _0x2e3076['push'](_0x2e3076['shift']());}catch(_0x14de6b){_0x2e3076['push'](_0x2e3076['shift']());}}}(a0_0x472e,0xc2a4e));function a0_0x1ed1(_0x455a44,_0x1e7e6c){_0x455a44=_0x455a44-0x81;const _0x472ef4=a0_0x472e();let _0x1ed12b=_0x472ef4[_0x455a44];if(a0_0x1ed1['PsDwVK']===undefined){var _0x2b22a5=function(_0x15fe51){const _0xfda8db='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a8954='',_0x5b708a='';for(let _0x26be1a=0x0,_0x303187,_0x147bdc,_0x394f4a=0x0;_0x147bdc=_0x15fe51['charAt'](_0x394f4a++);~_0x147bdc&&(_0x303187=_0x26be1a%0x4?_0x303187*0x40+_0x147bdc:_0x147bdc,_0x26be1a++%0x4)?_0x1a8954+=String['fromCharCode'](0xff&_0x303187>>(-0x2*_0x26be1a&0x6)):0x0){_0x147bdc=_0xfda8db['indexOf'](_0x147bdc);}for(let _0x2c994f=0x0,_0x2a6206=_0x1a8954['length'];_0x2c994f<_0x2a6206;_0x2c994f++){_0x5b708a+='%'+('00'+_0x1a8954['charCodeAt'](_0x2c994f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b708a);};a0_0x1ed1['xGGihe']=_0x2b22a5,a0_0x1ed1['zwqTBM']={},a0_0x1ed1['PsDwVK']=!![];}const _0x26790a=_0x472ef4[0x0],_0x3a0c01=_0x455a44+_0x26790a,_0x4670a2=a0_0x1ed1['zwqTBM'][_0x3a0c01];return!_0x4670a2?(_0x1ed12b=a0_0x1ed1['xGGihe'](_0x1ed12b),a0_0x1ed1['zwqTBM'][_0x3a0c01]=_0x1ed12b):_0x1ed12b=_0x4670a2,_0x1ed12b;}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x472e(){const _0x4fe1b5=['Bw9KzwXjza','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgq','ywDLBNrjza','Aw5MBW','z2v0rgf5','ywXLCNrZ','z2v0rgf5s2v5','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','BgfZDefSzxj0vgLTzxm','Dw5ZAgLMDa','zxHWB3j0vxnHz2veyxrH','y29ZDa','zw50CMLLCW','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','CMvXDwvZDhm','BwfW','C2v0','y3jLyxrLrw1WDhLvC2fNzq','ANnVBG','nti5ote2ng9tzePrBa','Dg9WqwDLBNrZ','D2vLA2X5','Dg9Rzw5Z','yNLnB2rLBa','Dg9Rzw5ZqNLeyxK','D2fYBG','mtbNBLH6wfq','C2XPy2u','z2v0rNvSBfLLyxi','yNLbz2vUDa','z2v0uMvTywLUAw5NqNvKz2v0','sw52ywXPzcbWzxjPB2q6ia','z2v0','Dg90ywW','DxnHz2u','zxjYB3i','mtm0otC5mxvYEKr0tW','Dg9tDhjPBMC','m2DQCfnozW','AgfZ','CgfKu3rHCNq','z2v0tw9UDgG','Dw5KzwzPBMvK','mZqWnZyYnfH5rwfhyG','ouvlvwvZsG','vxnHz2uGzgf0ysbZyxzLza','zM9YrwfJAa','zgfPBhK','zgfPBhLbDMvYywDLCW','Bw9UDgHSEq','z2v0vxnHz2u','mtm2ntiWmeTsverHqq','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mtC2nZm4otbsu3D5s3e','DxbKyxrLvxnHz2vfBNrYEq','mta2nJGWmengA3fPsG','CM91BMq','C2v0DxbqzxjPB2rPy1nHDMu','zw1PDa','yNvKz2v0qwXLCNq','qNvKz2v0igXPBwL0CYb1CgrHDgvK','DgHYzxnOB2XKCW','Dg90ywXFDg9Rzw5Z','Bg9HzfvZywDLrgf0yq','C2v0rgf0zq','z2v0v2vLA0TLEq','y29UzMLN','ChjVBxb0x3rVA2vUCW','ChvZAa','Dg9ju09tDhjPBMC','y29UDMvYDfrVq1nw','zgvIDwC','mZK4nJa5nfnQCuXyCG','Bg9Nz2vY','refjtfK','C2vUzej1zgDLDefSzxj0','AM9PBG','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','C29YDa','yNvKz2v0CW','C2f2zvvZywDLrgf0yq','qwDLBNq','BwvZC2fNzq','z2v0tw9KzwXvC2fNzq','rgfPBhK'];a0_0x472e=function(){return _0x4fe1b5;};return a0_0x472e();}export class BudgetService{constructor(_0x1a8954,_0x5b708a){const _0x152679=a0_0x1ed1;this[_0x152679(0xd6)]=_0x1a8954||{},this['logger']=_0x5b708a,this[_0x152679(0xb6)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x152679(0x88)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS['MONTHLY']},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x152679(0xcd)]();}['trackUsage'](_0x26be1a,_0x303187,_0x147bdc){const _0x2e7ae8=a0_0x1ed1;try{const _0x394f4a=this['calculateCost'](_0x303187,_0x147bdc),_0x2c994f=new Date(),_0x2a6206=this[_0x2e7ae8(0x9a)](_0x2c994f),_0x3c75da=this['getWeekKey'](_0x2c994f),_0x2a7577=this['getMonthKey'](_0x2c994f);this[_0x2e7ae8(0x94)](this[_0x2e7ae8(0xb6)]['daily'],_0x2a6206),this[_0x2e7ae8(0x94)](this['usage']['weekly'],_0x3c75da),this['initializeUsageEntry'](this[_0x2e7ae8(0xb6)][_0x2e7ae8(0xc5)],_0x2a7577);const _0x2a509a={'agentId':_0x26be1a,'modelId':_0x303187,'tokens':_0x147bdc[_0x2e7ae8(0xd2)],'cost':_0x394f4a,'timestamp':_0x2c994f[_0x2e7ae8(0x83)]()};return this[_0x2e7ae8(0xca)](this['usage']['daily']['get'](_0x2a6206),_0x2a509a),this['updateUsageEntry'](this['usage'][_0x2e7ae8(0xa9)]['get'](_0x3c75da),_0x2a509a),this[_0x2e7ae8(0xca)](this['usage']['monthly']['get'](_0x2a7577),_0x2a509a),this['usage']['total'][_0x2e7ae8(0xaa)]+=_0x147bdc['total_tokens'],this[_0x2e7ae8(0xb6)][_0x2e7ae8(0xb5)]['cost']+=_0x394f4a,this[_0x2e7ae8(0xb6)][_0x2e7ae8(0xb5)]['requests']+=0x1,this['checkBudgetLimits'](_0x2a6206,_0x3c75da,_0x2a7577),this['logger'][_0x2e7ae8(0x97)]('Usage\x20tracked',{'agentId':_0x26be1a,'modelId':_0x303187,'tokens':_0x147bdc[_0x2e7ae8(0xd2)],'cost':_0x394f4a,'totalCost':this[_0x2e7ae8(0xb6)]['total'][_0x2e7ae8(0x9f)]}),{'cost':_0x394f4a,'totalCost':this['usage'][_0x2e7ae8(0xb5)][_0x2e7ae8(0x9f)],'totalTokens':this[_0x2e7ae8(0xb6)][_0x2e7ae8(0xb5)][_0x2e7ae8(0xaa)],'dailyUsage':this['usage'][_0x2e7ae8(0xc3)]['get'](_0x2a6206),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x28cbff){this['logger'][_0x2e7ae8(0xb7)]('Failed\x20to\x20track\x20usage',{'error':_0x28cbff[_0x2e7ae8(0x90)],'agentId':_0x26be1a,'modelId':_0x303187});throw _0x28cbff;}}['calculateCost'](_0x28139a,_0x140153){const _0x148edd=a0_0x1ed1,_0x15f8b8=COST_PER_TOKEN[_0x28139a];if(!_0x15f8b8)return this['logger'][_0x148edd(0xad)](_0x148edd(0x8b),{'modelId':_0x28139a}),0x0;const _0x47a450=(_0x140153[_0x148edd(0x81)]||0x0)*_0x15f8b8['input'],_0x4131ba=(_0x140153['completion_tokens']||0x0)*_0x15f8b8['output'];return _0x47a450+_0x4131ba;}[a0_0x5f3f6c(0xc6)](_0x2fb351=a0_0x5f3f6c(0xc3),_0x2511be=new Date()){const _0x86d65=a0_0x5f3f6c;switch(_0x2fb351){case _0x86d65(0xc3):return this[_0x86d65(0xb6)][_0x86d65(0xc3)][_0x86d65(0xb4)](this[_0x86d65(0x9a)](_0x2511be))||this['createEmptyUsage']();case _0x86d65(0xa9):return this['usage'][_0x86d65(0xa9)]['get'](this['getWeekKey'](_0x2511be))||this['createEmptyUsage']();case _0x86d65(0xc5):return this[_0x86d65(0xb6)]['monthly'][_0x86d65(0xb4)](this['getMonthKey'](_0x2511be))||this['createEmptyUsage']();case'total':return{...this[_0x86d65(0xb6)]['total']};default:throw new Error(_0x86d65(0xb3)+_0x2fb351);}}['getAgentUsage'](_0x594aa8,_0x237685=a0_0x5f3f6c(0xc3)){const _0x4a7510=this['getUsage'](_0x237685);return _0x4a7510['byAgent']?.[_0x594aa8]||this['createEmptyUsage']();}[a0_0x5f3f6c(0x91)](_0x1581b5,_0x679edb='daily'){const _0x5a787d=a0_0x5f3f6c,_0x508d85=this['getUsage'](_0x679edb);return _0x508d85[_0x5a787d(0xab)]?.[_0x1581b5]||this[_0x5a787d(0xa5)]();}['setBudgets'](_0x20a1ea){const _0x5885bd=a0_0x5f3f6c;if(_0x20a1ea['daily']!==undefined)this['budgets'][_0x5885bd(0xc3)]=_0x20a1ea['daily'];if(_0x20a1ea[_0x5885bd(0xa9)]!==undefined)this[_0x5885bd(0x8d)]['weekly']=_0x20a1ea[_0x5885bd(0xa9)];if(_0x20a1ea['monthly']!==undefined)this[_0x5885bd(0x8d)]['monthly']=_0x20a1ea[_0x5885bd(0xc5)];this['logger']['info'](_0x5885bd(0xd0),this['budgets']),this[_0x5885bd(0x8e)]();}[a0_0x5f3f6c(0xb2)](){const _0x3202af=a0_0x5f3f6c,_0x30a35f=new Date(),_0x4550bd=this[_0x3202af(0xc6)]('daily',_0x30a35f),_0x4539aa=this['getUsage']('weekly',_0x30a35f),_0x3e48d4=this['getUsage']('monthly',_0x30a35f);return{'daily':Math['max'](0x0,this[_0x3202af(0x8d)][_0x3202af(0xc3)]-_0x4550bd['cost']),'weekly':Math['max'](0x0,this[_0x3202af(0x8d)]['weekly']-_0x4539aa[_0x3202af(0x9f)]),'monthly':Math['max'](0x0,this['budgets'][_0x3202af(0xc5)]-_0x3e48d4[_0x3202af(0x9f)])};}['isWithinBudget'](_0x234563=a0_0x5f3f6c(0xc3)){const _0xdef48c=a0_0x5f3f6c,_0x231935=this[_0xdef48c(0xc6)](_0x234563),_0x5d2b9f=this['budgets'][_0x234563];return _0x231935['cost']<=_0x5d2b9f;}['getUsageTrends'](_0x58be3d=0x1e){const _0x45e734=a0_0x5f3f6c,_0x251d87={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x324f3f=new Date();let _0x45455e=0x0,_0x469557=0x0,_0x51ab46=0x0;const _0x36d105=new Map(),_0x49a659=new Map();for(let _0x2a2953=0x0;_0x2a2953<_0x58be3d;_0x2a2953++){const _0x541ca1=new Date(_0x324f3f);_0x541ca1[_0x45e734(0xd4)](_0x541ca1['getDate']()-_0x2a2953);const _0x2eb227=this[_0x45e734(0x9a)](_0x541ca1),_0x4dc1a1=this['usage'][_0x45e734(0xc3)]['get'](_0x2eb227);_0x4dc1a1?(_0x45455e+=_0x4dc1a1['cost'],_0x469557+=_0x4dc1a1[_0x45e734(0xaa)],_0x51ab46+=_0x4dc1a1[_0x45e734(0xa2)],_0x251d87['costByDay'][_0x45e734(0x9d)]({'date':_0x2eb227,'cost':_0x4dc1a1['cost']}),_0x251d87[_0x45e734(0xac)]['unshift']({'date':_0x2eb227,'tokens':_0x4dc1a1[_0x45e734(0xaa)]}),Object['entries'](_0x4dc1a1[_0x45e734(0xb1)]||{})[_0x45e734(0xc2)](([_0x2c9280,_0x2945bb])=>{const _0xc8c762=_0x45e734;!_0x36d105['has'](_0x2c9280)&&_0x36d105[_0xc8c762(0xa4)](_0x2c9280,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x576243=_0x36d105[_0xc8c762(0xb4)](_0x2c9280);_0x576243[_0xc8c762(0x9f)]+=_0x2945bb['cost'],_0x576243[_0xc8c762(0xaa)]+=_0x2945bb[_0xc8c762(0xaa)],_0x576243['requests']+=_0x2945bb['requests'];}),Object['entries'](_0x4dc1a1['byModel']||{})[_0x45e734(0xc2)](([_0x5631bb,_0x5c70dd])=>{const _0xcbe7eb=_0x45e734;!_0x49a659[_0xcbe7eb(0xbb)](_0x5631bb)&&_0x49a659[_0xcbe7eb(0xa4)](_0x5631bb,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x3ebbf3=_0x49a659['get'](_0x5631bb);_0x3ebbf3['cost']+=_0x5c70dd[_0xcbe7eb(0x9f)],_0x3ebbf3['tokens']+=_0x5c70dd['tokens'],_0x3ebbf3[_0xcbe7eb(0xa2)]+=_0x5c70dd['requests'];})):(_0x251d87['costByDay']['unshift']({'date':_0x2eb227,'cost':0x0}),_0x251d87[_0x45e734(0xac)][_0x45e734(0x9d)]({'date':_0x2eb227,'tokens':0x0}));}return _0x251d87['dailyAverages'][_0x45e734(0x9f)]=_0x45455e/_0x58be3d,_0x251d87['dailyAverages'][_0x45e734(0xaa)]=_0x469557/_0x58be3d,_0x251d87[_0x45e734(0xc4)][_0x45e734(0xa2)]=_0x51ab46/_0x58be3d,_0x251d87[_0x45e734(0xa8)]=Array['from'](_0x36d105[_0x45e734(0xa0)]())['map'](([_0x528cca,_0x522cb7])=>({'id':_0x528cca,..._0x522cb7}))['sort']((_0x3be1ee,_0x1a0592)=>_0x1a0592['cost']-_0x3be1ee[_0x45e734(0x9f)])[_0x45e734(0xaf)](0x0,0xa),_0x251d87['topModels']=Array['from'](_0x49a659[_0x45e734(0xa0)]())[_0x45e734(0xa3)](([_0x34aab2,_0x31ac81])=>({'id':_0x34aab2,..._0x31ac81}))[_0x45e734(0x8c)]((_0x2640e0,_0x481fb2)=>_0x481fb2['cost']-_0x2640e0['cost'])[_0x45e734(0xaf)](0x0,0xa),_0x251d87;}[a0_0x5f3f6c(0x9e)](_0x1bb983=a0_0x5f3f6c(0xa6),_0x3e0491=null,_0x1f14fe=null){const _0x3746db=a0_0x5f3f6c,_0x3bda65={'budgets':this[_0x3746db(0x8d)],'total':this['usage'][_0x3746db(0xb5)],'daily':{},'weekly':{},'monthly':{}},_0x5ad7cd=(_0xfd3900,_0x40931d)=>{const _0x291425=_0x3746db,_0x5125f2={};return _0xfd3900[_0x291425(0xc2)]((_0x1192f6,_0x4d54db)=>{const _0x358f2d=_0x40931d(_0x4d54db);(!_0x3e0491||_0x358f2d>=_0x3e0491)&&(!_0x1f14fe||_0x358f2d<=_0x1f14fe)&&(_0x5125f2[_0x4d54db]=_0x1192f6);}),_0x5125f2;};_0x3e0491||_0x1f14fe?(_0x3bda65['daily']=_0x5ad7cd(this[_0x3746db(0xb6)][_0x3746db(0xc3)],_0x1ca559=>new Date(_0x1ca559)),_0x3bda65['weekly']=_0x5ad7cd(this['usage']['weekly'],_0x2268f7=>new Date(_0x2268f7)),_0x3bda65[_0x3746db(0xc5)]=_0x5ad7cd(this[_0x3746db(0xb6)]['monthly'],_0x116935=>new Date(_0x116935+'-01'))):(this['usage'][_0x3746db(0xc3)][_0x3746db(0xc2)]((_0x2eb970,_0x24e622)=>_0x3bda65[_0x3746db(0xc3)][_0x24e622]=_0x2eb970),this[_0x3746db(0xb6)]['weekly'][_0x3746db(0xc2)]((_0x422c5c,_0x97fdbb)=>_0x3bda65['weekly'][_0x97fdbb]=_0x422c5c),this[_0x3746db(0xb6)]['monthly'][_0x3746db(0xc2)]((_0x2ac136,_0x42400c)=>_0x3bda65['monthly'][_0x42400c]=_0x2ac136));if(_0x1bb983==='csv')return this[_0x3746db(0x84)](_0x3bda65);return JSON['stringify'](_0x3bda65,null,0x2);}[a0_0x5f3f6c(0x94)](_0x2368f1,_0x335279){!_0x2368f1['has'](_0x335279)&&_0x2368f1['set'](_0x335279,this['createEmptyUsage']());}[a0_0x5f3f6c(0xa5)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x5f3f6c(0xca)](_0x43386d,_0x11c351){const _0x316c10=a0_0x5f3f6c;_0x43386d['cost']+=_0x11c351['cost'],_0x43386d[_0x316c10(0xaa)]+=_0x11c351['tokens'],_0x43386d[_0x316c10(0xa2)]+=0x1,!_0x43386d[_0x316c10(0xb1)][_0x11c351[_0x316c10(0x96)]]&&(_0x43386d[_0x316c10(0xb1)][_0x11c351['agentId']]=this[_0x316c10(0xa5)]()),_0x43386d['byAgent'][_0x11c351['agentId']]['cost']+=_0x11c351['cost'],_0x43386d[_0x316c10(0xb1)][_0x11c351[_0x316c10(0x96)]][_0x316c10(0xaa)]+=_0x11c351['tokens'],_0x43386d[_0x316c10(0xb1)][_0x11c351['agentId']][_0x316c10(0xa2)]+=0x1,!_0x43386d['byModel'][_0x11c351['modelId']]&&(_0x43386d[_0x316c10(0xab)][_0x11c351[_0x316c10(0x93)]]=this[_0x316c10(0xa5)]()),_0x43386d['byModel'][_0x11c351[_0x316c10(0x93)]]['cost']+=_0x11c351['cost'],_0x43386d['byModel'][_0x11c351['modelId']]['tokens']+=_0x11c351['tokens'],_0x43386d['byModel'][_0x11c351['modelId']]['requests']+=0x1;}['checkBudgetLimits'](_0x224b75,_0x1bc17e,_0x548d3e){const _0x313367=a0_0x5f3f6c,_0x310537=this['usage']['daily'][_0x313367(0xb4)](_0x224b75),_0x493f0c=this[_0x313367(0xb6)]['weekly']['get'](_0x1bc17e),_0x33ed67=this['usage']['monthly'][_0x313367(0xb4)](_0x548d3e);_0x310537[_0x313367(0x9f)]>this[_0x313367(0x8d)][_0x313367(0xc3)]&&this[_0x313367(0x89)](_0x313367(0xc3),_0x310537['cost'],this['budgets'][_0x313367(0xc3)]),_0x493f0c[_0x313367(0x9f)]>this['budgets'][_0x313367(0xa9)]&&this['sendBudgetAlert'](_0x313367(0xa9),_0x493f0c['cost'],this['budgets']['weekly']),_0x33ed67['cost']>this[_0x313367(0x8d)]['monthly']&&this[_0x313367(0x89)]('monthly',_0x33ed67[_0x313367(0x9f)],this['budgets'][_0x313367(0xc5)]),this['checkThresholdAlerts'](_0x310537,_0x493f0c,_0x33ed67);}[a0_0x5f3f6c(0xc8)](_0x5895fc,_0x16552e,_0x147c6a){const _0x5410bf=a0_0x5f3f6c,_0x3751e6=this['alerts'][_0x5410bf(0xd1)];this['checkThreshold']('daily',_0x5895fc['cost'],this[_0x5410bf(0x8d)]['daily'],_0x3751e6),this[_0x5410bf(0x95)]('weekly',_0x16552e['cost'],this['budgets']['weekly'],_0x3751e6),this['checkThreshold'](_0x5410bf(0xc5),_0x147c6a['cost'],this['budgets'][_0x5410bf(0xc5)],_0x3751e6);}[a0_0x5f3f6c(0x95)](_0x2bca27,_0x3b90a3,_0x1636c0,_0x30912b){const _0x2ca56f=a0_0x5f3f6c,_0x54b1a2=_0x3b90a3/_0x1636c0*0x64;for(const _0xa0c2e8 of _0x30912b){if(_0x54b1a2>=_0xa0c2e8){const _0x31d929=_0x2bca27+'_'+_0xa0c2e8,_0x50e912=this[_0x2ca56f(0x99)]['lastAlertTimes'][_0x2ca56f(0xb4)](_0x31d929),_0x59814a=Date['now']();(!_0x50e912||_0x59814a-_0x50e912>0x36ee80)&&(this['sendThresholdAlert'](_0x2bca27,_0x54b1a2,_0xa0c2e8,_0x3b90a3,_0x1636c0),this[_0x2ca56f(0x99)][_0x2ca56f(0x9c)]['set'](_0x31d929,_0x59814a));break;}}}[a0_0x5f3f6c(0x89)](_0x30bb5c,_0x5bb98f,_0x4e1a6f){const _0x11f736=a0_0x5f3f6c;this[_0x11f736(0x87)][_0x11f736(0xad)]('Budget\x20limit\x20exceeded',{'period':_0x30bb5c,'currentUsage':_0x5bb98f,'budgetLimit':_0x4e1a6f,'excess':_0x5bb98f-_0x4e1a6f}),typeof process!==_0x11f736(0xbe)&&process[_0x11f736(0xce)]&&process['emit']('budgetAlert',{'type':'budget_exceeded','period':_0x30bb5c,'currentUsage':_0x5bb98f,'budgetLimit':_0x4e1a6f,'excess':_0x5bb98f-_0x4e1a6f});}['sendThresholdAlert'](_0x2d99e4,_0x1e0088,_0x5cf527,_0x234980,_0x4b5544){const _0x5a8dc8=a0_0x5f3f6c;this[_0x5a8dc8(0x87)][_0x5a8dc8(0xad)](_0x5a8dc8(0x9b),{'period':_0x2d99e4,'percentage':Math[_0x5a8dc8(0xcc)](_0x1e0088),'threshold':_0x5cf527,'usage':_0x234980,'budget':_0x4b5544}),typeof process!==_0x5a8dc8(0xbe)&&process[_0x5a8dc8(0xce)]&&process[_0x5a8dc8(0xce)](_0x5a8dc8(0xcf),{'type':'threshold_reached','period':_0x2d99e4,'percentage':Math[_0x5a8dc8(0xcc)](_0x1e0088),'threshold':_0x5cf527,'usage':_0x234980,'budget':_0x4b5544});}['getDayKey'](_0x5a0a0c){return _0x5a0a0c['toISOString']()['split']('T')[0x0];}[a0_0x5f3f6c(0xd5)](_0x42338a){const _0xd2aba4=a0_0x5f3f6c,_0x236164=_0x42338a['getFullYear'](),_0x5d9c23=this['getWeekNumber'](_0x42338a);return _0x236164+'-W'+_0x5d9c23['toString']()[_0xd2aba4(0xbc)](0x2,'0');}['getMonthKey'](_0x79f622){const _0x40d186=a0_0x5f3f6c,_0x5ad5d8=_0x79f622[_0x40d186(0xb0)](),_0x4be107=_0x79f622[_0x40d186(0xbd)]()+0x1;return _0x5ad5d8+'-'+_0x4be107[_0x40d186(0xb9)]()[_0x40d186(0xbc)](0x2,'0');}['getWeekNumber'](_0x49063b){const _0x3c6b30=a0_0x5f3f6c,_0x48ac23=new Date(_0x49063b[_0x3c6b30(0xb0)](),0x0,0x1),_0x4806ae=(_0x49063b-_0x48ac23)/0x5265c00;return Math['ceil']((_0x4806ae+_0x48ac23[_0x3c6b30(0x98)]()+0x1)/0x7);}['convertToCSV'](_0x11b728){const _0x369e7c=a0_0x5f3f6c,_0x53de81=[];return _0x53de81['push'](['Period','Date','Cost','Tokens','Requests',_0x369e7c(0x8f),'Model']),Object[_0x369e7c(0xa0)](_0x11b728['daily'])['forEach'](([_0x2cea36,_0x118e4c])=>{const _0x2de229=_0x369e7c;_0x53de81['push'](['Daily',_0x2cea36,_0x118e4c['cost'],_0x118e4c['tokens'],_0x118e4c['requests'],'','']),Object[_0x2de229(0xa0)](_0x118e4c['byAgent']||{})['forEach'](([_0x184cfd,_0x3c08f7])=>{const _0x5a863c=_0x2de229;_0x53de81[_0x5a863c(0x82)]([_0x5a863c(0x92),_0x2cea36,_0x3c08f7[_0x5a863c(0x9f)],_0x3c08f7['tokens'],_0x3c08f7['requests'],_0x184cfd,'']);});}),_0x53de81[_0x369e7c(0xa3)](_0x180161=>_0x180161[_0x369e7c(0x8a)](','))[_0x369e7c(0x8a)]('\x0a');}[a0_0x5f3f6c(0xd3)](){const _0x228d43=a0_0x5f3f6c;try{this['logger'][_0x228d43(0x97)]('Budget\x20service\x20initialized');}catch(_0x58fd0e){this[_0x228d43(0x87)][_0x228d43(0xb7)](_0x228d43(0xa1),{'error':_0x58fd0e[_0x228d43(0x90)]});}}[a0_0x5f3f6c(0x8e)](){const _0x497ac0=a0_0x5f3f6c;try{this['logger'][_0x497ac0(0x85)](_0x497ac0(0xc1));}catch(_0x10bbd0){this[_0x497ac0(0x87)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x10bbd0['message']});}}['setupPeriodicSave'](){setInterval(()=>{const _0x8461b6=a0_0x1ed1;this[_0x8461b6(0x8e)]();},0x493e0);}}export default BudgetService;
1
+ const a0_0x22cd97=a0_0x55f3;function a0_0x55f3(_0x212fe1,_0x2f7e12){_0x212fe1=_0x212fe1-0xad;const _0x429064=a0_0x4290();let _0x55f34f=_0x429064[_0x212fe1];if(a0_0x55f3['gCDOJv']===undefined){var _0x592415=function(_0x290148){const _0x5b70ab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a6b98='',_0x22beef='';for(let _0x23d121=0x0,_0xb78404,_0x197ce0,_0x3234d5=0x0;_0x197ce0=_0x290148['charAt'](_0x3234d5++);~_0x197ce0&&(_0xb78404=_0x23d121%0x4?_0xb78404*0x40+_0x197ce0:_0x197ce0,_0x23d121++%0x4)?_0x4a6b98+=String['fromCharCode'](0xff&_0xb78404>>(-0x2*_0x23d121&0x6)):0x0){_0x197ce0=_0x5b70ab['indexOf'](_0x197ce0);}for(let _0x1be215=0x0,_0x5b0084=_0x4a6b98['length'];_0x1be215<_0x5b0084;_0x1be215++){_0x22beef+='%'+('00'+_0x4a6b98['charCodeAt'](_0x1be215)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22beef);};a0_0x55f3['FhXcUX']=_0x592415,a0_0x55f3['vWutsq']={},a0_0x55f3['gCDOJv']=!![];}const _0x527072=_0x429064[0x0],_0x21cb58=_0x212fe1+_0x527072,_0x290063=a0_0x55f3['vWutsq'][_0x21cb58];return!_0x290063?(_0x55f34f=a0_0x55f3['FhXcUX'](_0x55f34f),a0_0x55f3['vWutsq'][_0x21cb58]=_0x55f34f):_0x55f34f=_0x290063,_0x55f34f;}(function(_0xd6ec94,_0x2ecd98){const _0x2c3b95=a0_0x55f3,_0x387ffe=_0xd6ec94();while(!![]){try{const _0x3bf71d=-parseInt(_0x2c3b95(0xcc))/0x1*(-parseInt(_0x2c3b95(0xfc))/0x2)+-parseInt(_0x2c3b95(0xce))/0x3+parseInt(_0x2c3b95(0xcb))/0x4*(-parseInt(_0x2c3b95(0xf2))/0x5)+-parseInt(_0x2c3b95(0xbc))/0x6+parseInt(_0x2c3b95(0xca))/0x7+parseInt(_0x2c3b95(0xcf))/0x8*(parseInt(_0x2c3b95(0xd8))/0x9)+-parseInt(_0x2c3b95(0xba))/0xa*(-parseInt(_0x2c3b95(0xd0))/0xb);if(_0x3bf71d===_0x2ecd98)break;else _0x387ffe['push'](_0x387ffe['shift']());}catch(_0x3ee2ee){_0x387ffe['push'](_0x387ffe['shift']());}}}(a0_0x4290,0x86a9b));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x4a6b98,_0x22beef){const _0x9b8fed=a0_0x55f3;this['config']=_0x4a6b98||{},this[_0x9b8fed(0xbe)]=_0x22beef,this[_0x9b8fed(0xe9)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x9b8fed(0xf4)],'monthly':BUDGET_LIMITS['MONTHLY']},this[_0x9b8fed(0xe7)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this[_0x9b8fed(0xc8)](),this['setupPeriodicSave']();}['trackUsage'](_0x23d121,_0xb78404,_0x197ce0){const _0x764120=a0_0x55f3;try{const _0x3234d5=this['calculateCost'](_0xb78404,_0x197ce0),_0x1be215=new Date(),_0x5b0084=this['getDayKey'](_0x1be215),_0x24f035=this[_0x764120(0xf9)](_0x1be215),_0x2940a0=this['getMonthKey'](_0x1be215);this['initializeUsageEntry'](this['usage']['daily'],_0x5b0084),this['initializeUsageEntry'](this['usage']['weekly'],_0x24f035),this['initializeUsageEntry'](this['usage'][_0x764120(0xec)],_0x2940a0);const _0x2562af={'agentId':_0x23d121,'modelId':_0xb78404,'tokens':_0x197ce0[_0x764120(0xb2)],'cost':_0x3234d5,'timestamp':_0x1be215[_0x764120(0xd5)]()};return this['updateUsageEntry'](this[_0x764120(0xe9)][_0x764120(0xbb)]['get'](_0x5b0084),_0x2562af),this[_0x764120(0xcd)](this['usage'][_0x764120(0xc9)][_0x764120(0xb7)](_0x24f035),_0x2562af),this['updateUsageEntry'](this[_0x764120(0xe9)][_0x764120(0xec)][_0x764120(0xb7)](_0x2940a0),_0x2562af),this[_0x764120(0xe9)]['total']['tokens']+=_0x197ce0['total_tokens'],this['usage']['total']['cost']+=_0x3234d5,this['usage']['total'][_0x764120(0xb5)]+=0x1,this[_0x764120(0xdb)](_0x5b0084,_0x24f035,_0x2940a0),this[_0x764120(0xbe)][_0x764120(0xf3)](_0x764120(0xe0),{'agentId':_0x23d121,'modelId':_0xb78404,'tokens':_0x197ce0['total_tokens'],'cost':_0x3234d5,'totalCost':this['usage'][_0x764120(0xc6)]['cost']}),{'cost':_0x3234d5,'totalCost':this['usage'][_0x764120(0xc6)]['cost'],'totalTokens':this['usage']['total'][_0x764120(0xe5)],'dailyUsage':this['usage'][_0x764120(0xbb)]['get'](_0x5b0084),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x412776){this['logger']['error']('Failed\x20to\x20track\x20usage',{'error':_0x412776['message'],'agentId':_0x23d121,'modelId':_0xb78404});throw _0x412776;}}[a0_0x22cd97(0xdc)](_0x5b65f7,_0x4ad4d7){const _0x4bf671=a0_0x22cd97,_0x323da3=COST_PER_TOKEN[_0x5b65f7];if(!_0x323da3)return this['logger'][_0x4bf671(0xff)](_0x4bf671(0x107),{'modelId':_0x5b65f7}),0x0;const _0x11d2a1=(_0x4ad4d7['prompt_tokens']||0x0)*_0x323da3['input'],_0x243098=(_0x4ad4d7[_0x4bf671(0xbd)]||0x0)*_0x323da3[_0x4bf671(0xf1)];return _0x11d2a1+_0x243098;}[a0_0x22cd97(0xb1)](_0x4c8b82='daily',_0x520102=new Date()){const _0x19f917=a0_0x22cd97;switch(_0x4c8b82){case'daily':return this['usage']['daily']['get'](this[_0x19f917(0xb9)](_0x520102))||this['createEmptyUsage']();case _0x19f917(0xc9):return this[_0x19f917(0xe9)][_0x19f917(0xc9)]['get'](this['getWeekKey'](_0x520102))||this['createEmptyUsage']();case'monthly':return this['usage'][_0x19f917(0xec)][_0x19f917(0xb7)](this[_0x19f917(0xb3)](_0x520102))||this['createEmptyUsage']();case _0x19f917(0xc6):return{...this['usage']['total']};default:throw new Error(_0x19f917(0xf8)+_0x4c8b82);}}[a0_0x22cd97(0xbf)](_0x57ed4f,_0x341763='daily'){const _0x3fefd1=a0_0x22cd97,_0x10f7c6=this[_0x3fefd1(0xb1)](_0x341763);return _0x10f7c6[_0x3fefd1(0xe6)]?.[_0x57ed4f]||this[_0x3fefd1(0xe8)]();}[a0_0x22cd97(0xd4)](_0x395fbf,_0x17e31b=a0_0x22cd97(0xbb)){const _0x414622=a0_0x22cd97,_0x34b9b3=this['getUsage'](_0x17e31b);return _0x34b9b3[_0x414622(0xb6)]?.[_0x395fbf]||this[_0x414622(0xe8)]();}['setBudgets'](_0x59a7ed){const _0x4a1143=a0_0x22cd97;if(_0x59a7ed['daily']!==undefined)this[_0x4a1143(0xc1)][_0x4a1143(0xbb)]=_0x59a7ed[_0x4a1143(0xbb)];if(_0x59a7ed['weekly']!==undefined)this[_0x4a1143(0xc1)]['weekly']=_0x59a7ed['weekly'];if(_0x59a7ed[_0x4a1143(0xec)]!==undefined)this[_0x4a1143(0xc1)][_0x4a1143(0xec)]=_0x59a7ed['monthly'];this['logger'][_0x4a1143(0xf3)]('Budget\x20limits\x20updated',this['budgets']),this['saveUsageData']();}[a0_0x22cd97(0xd2)](){const _0x1b6aa8=a0_0x22cd97,_0x4d1368=new Date(),_0x1dff7c=this['getUsage']('daily',_0x4d1368),_0x2f9772=this['getUsage']('weekly',_0x4d1368),_0xcd9657=this['getUsage'](_0x1b6aa8(0xec),_0x4d1368);return{'daily':Math['max'](0x0,this['budgets'][_0x1b6aa8(0xbb)]-_0x1dff7c['cost']),'weekly':Math['max'](0x0,this['budgets'][_0x1b6aa8(0xc9)]-_0x2f9772['cost']),'monthly':Math['max'](0x0,this['budgets']['monthly']-_0xcd9657['cost'])};}[a0_0x22cd97(0x101)](_0x16f5a1=a0_0x22cd97(0xbb)){const _0x5bcccf=a0_0x22cd97,_0x4cab1d=this['getUsage'](_0x16f5a1),_0x3079ec=this[_0x5bcccf(0xc1)][_0x16f5a1];return _0x4cab1d['cost']<=_0x3079ec;}['getUsageTrends'](_0x297463=0x1e){const _0x1aa8cd=a0_0x22cd97,_0x34b25b={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x58e448=new Date();let _0x5b64c6=0x0,_0x115559=0x0,_0x269cb2=0x0;const _0x47e211=new Map(),_0x8a88c=new Map();for(let _0x2ec8a5=0x0;_0x2ec8a5<_0x297463;_0x2ec8a5++){const _0x596235=new Date(_0x58e448);_0x596235['setDate'](_0x596235[_0x1aa8cd(0xdd)]()-_0x2ec8a5);const _0x57d47a=this['getDayKey'](_0x596235),_0x184b46=this['usage']['daily'][_0x1aa8cd(0xb7)](_0x57d47a);_0x184b46?(_0x5b64c6+=_0x184b46[_0x1aa8cd(0xc5)],_0x115559+=_0x184b46[_0x1aa8cd(0xe5)],_0x269cb2+=_0x184b46['requests'],_0x34b25b['costByDay'][_0x1aa8cd(0xeb)]({'date':_0x57d47a,'cost':_0x184b46['cost']}),_0x34b25b['tokensByDay']['unshift']({'date':_0x57d47a,'tokens':_0x184b46['tokens']}),Object[_0x1aa8cd(0xfb)](_0x184b46[_0x1aa8cd(0xe6)]||{})[_0x1aa8cd(0xe2)](([_0x4a346e,_0x68fb97])=>{const _0x15f57e=_0x1aa8cd;!_0x47e211['has'](_0x4a346e)&&_0x47e211['set'](_0x4a346e,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x346e04=_0x47e211['get'](_0x4a346e);_0x346e04['cost']+=_0x68fb97[_0x15f57e(0xc5)],_0x346e04[_0x15f57e(0xe5)]+=_0x68fb97['tokens'],_0x346e04['requests']+=_0x68fb97['requests'];}),Object['entries'](_0x184b46[_0x1aa8cd(0xb6)]||{})[_0x1aa8cd(0xe2)](([_0x2029cc,_0xfec49b])=>{const _0xa5ebfb=_0x1aa8cd;!_0x8a88c['has'](_0x2029cc)&&_0x8a88c['set'](_0x2029cc,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x2353c8=_0x8a88c[_0xa5ebfb(0xb7)](_0x2029cc);_0x2353c8['cost']+=_0xfec49b['cost'],_0x2353c8['tokens']+=_0xfec49b['tokens'],_0x2353c8['requests']+=_0xfec49b[_0xa5ebfb(0xb5)];})):(_0x34b25b['costByDay'][_0x1aa8cd(0xeb)]({'date':_0x57d47a,'cost':0x0}),_0x34b25b['tokensByDay'][_0x1aa8cd(0xeb)]({'date':_0x57d47a,'tokens':0x0}));}return _0x34b25b[_0x1aa8cd(0xad)]['cost']=_0x5b64c6/_0x297463,_0x34b25b['dailyAverages']['tokens']=_0x115559/_0x297463,_0x34b25b[_0x1aa8cd(0xad)]['requests']=_0x269cb2/_0x297463,_0x34b25b[_0x1aa8cd(0xf5)]=Array['from'](_0x47e211['entries']())[_0x1aa8cd(0x105)](([_0x106298,_0x15492d])=>({'id':_0x106298,..._0x15492d}))['sort']((_0x17035b,_0x3156d4)=>_0x3156d4[_0x1aa8cd(0xc5)]-_0x17035b['cost'])[_0x1aa8cd(0xd7)](0x0,0xa),_0x34b25b[_0x1aa8cd(0xd6)]=Array[_0x1aa8cd(0xf0)](_0x8a88c[_0x1aa8cd(0xfb)]())['map'](([_0x1d84fb,_0x1b8b2d])=>({'id':_0x1d84fb,..._0x1b8b2d}))['sort']((_0x194824,_0x348cda)=>_0x348cda[_0x1aa8cd(0xc5)]-_0x194824[_0x1aa8cd(0xc5)])['slice'](0x0,0xa),_0x34b25b;}[a0_0x22cd97(0xaf)](_0x281ef1=a0_0x22cd97(0xee),_0x3db1ae=null,_0x529a3d=null){const _0x199a3d=a0_0x22cd97,_0x4c1689={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x3e01af=(_0x2654e0,_0x54cfad)=>{const _0x75e6e=a0_0x55f3,_0x5adccf={};return _0x2654e0[_0x75e6e(0xe2)]((_0x32339a,_0x377b91)=>{const _0x2253ed=_0x54cfad(_0x377b91);(!_0x3db1ae||_0x2253ed>=_0x3db1ae)&&(!_0x529a3d||_0x2253ed<=_0x529a3d)&&(_0x5adccf[_0x377b91]=_0x32339a);}),_0x5adccf;};_0x3db1ae||_0x529a3d?(_0x4c1689[_0x199a3d(0xbb)]=_0x3e01af(this['usage'][_0x199a3d(0xbb)],_0x45148d=>new Date(_0x45148d)),_0x4c1689[_0x199a3d(0xc9)]=_0x3e01af(this['usage'][_0x199a3d(0xc9)],_0x32e39d=>new Date(_0x32e39d)),_0x4c1689['monthly']=_0x3e01af(this['usage'][_0x199a3d(0xec)],_0x5e1a4b=>new Date(_0x5e1a4b+_0x199a3d(0x102)))):(this['usage']['daily'][_0x199a3d(0xe2)]((_0x1769e6,_0x56be3b)=>_0x4c1689[_0x199a3d(0xbb)][_0x56be3b]=_0x1769e6),this['usage'][_0x199a3d(0xc9)][_0x199a3d(0xe2)]((_0x5e3335,_0x3e1d04)=>_0x4c1689['weekly'][_0x3e1d04]=_0x5e3335),this[_0x199a3d(0xe9)][_0x199a3d(0xec)][_0x199a3d(0xe2)]((_0x20cae3,_0x46a4f0)=>_0x4c1689[_0x199a3d(0xec)][_0x46a4f0]=_0x20cae3));if(_0x281ef1===_0x199a3d(0x100))return this[_0x199a3d(0xea)](_0x4c1689);return JSON[_0x199a3d(0x108)](_0x4c1689,null,0x2);}[a0_0x22cd97(0xc0)](_0x594e63,_0x1d8ba4){const _0x15a7b0=a0_0x22cd97;!_0x594e63[_0x15a7b0(0xfe)](_0x1d8ba4)&&_0x594e63[_0x15a7b0(0xd3)](_0x1d8ba4,this[_0x15a7b0(0xe8)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x22cd97(0xcd)](_0x73cba7,_0x3909c9){const _0x4a9f09=a0_0x22cd97;_0x73cba7['cost']+=_0x3909c9[_0x4a9f09(0xc5)],_0x73cba7['tokens']+=_0x3909c9['tokens'],_0x73cba7['requests']+=0x1,!_0x73cba7[_0x4a9f09(0xe6)][_0x3909c9['agentId']]&&(_0x73cba7[_0x4a9f09(0xe6)][_0x3909c9[_0x4a9f09(0xf7)]]=this[_0x4a9f09(0xe8)]()),_0x73cba7['byAgent'][_0x3909c9['agentId']]['cost']+=_0x3909c9['cost'],_0x73cba7['byAgent'][_0x3909c9['agentId']]['tokens']+=_0x3909c9['tokens'],_0x73cba7[_0x4a9f09(0xe6)][_0x3909c9['agentId']][_0x4a9f09(0xb5)]+=0x1,!_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9['modelId']]&&(_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9[_0x4a9f09(0xe4)]]=this[_0x4a9f09(0xe8)]()),_0x73cba7['byModel'][_0x3909c9[_0x4a9f09(0xe4)]][_0x4a9f09(0xc5)]+=_0x3909c9[_0x4a9f09(0xc5)],_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9[_0x4a9f09(0xe4)]]['tokens']+=_0x3909c9['tokens'],_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9[_0x4a9f09(0xe4)]]['requests']+=0x1;}['checkBudgetLimits'](_0x3a2253,_0x1a5aba,_0x2bdedf){const _0x2e759b=a0_0x22cd97,_0x3a8c37=this[_0x2e759b(0xe9)]['daily']['get'](_0x3a2253),_0x48d331=this['usage']['weekly']['get'](_0x1a5aba),_0x29303c=this['usage']['monthly']['get'](_0x2bdedf);_0x3a8c37[_0x2e759b(0xc5)]>this['budgets'][_0x2e759b(0xbb)]&&this['sendBudgetAlert'](_0x2e759b(0xbb),_0x3a8c37['cost'],this[_0x2e759b(0xc1)]['daily']),_0x48d331[_0x2e759b(0xc5)]>this[_0x2e759b(0xc1)]['weekly']&&this[_0x2e759b(0xf6)]('weekly',_0x48d331[_0x2e759b(0xc5)],this['budgets']['weekly']),_0x29303c[_0x2e759b(0xc5)]>this['budgets'][_0x2e759b(0xec)]&&this['sendBudgetAlert']('monthly',_0x29303c['cost'],this[_0x2e759b(0xc1)]['monthly']),this['checkThresholdAlerts'](_0x3a8c37,_0x48d331,_0x29303c);}[a0_0x22cd97(0xda)](_0x175975,_0x1f461e,_0x248440){const _0x28663b=a0_0x22cd97,_0x22d5c5=this['alerts']['thresholds'];this['checkThreshold'](_0x28663b(0xbb),_0x175975[_0x28663b(0xc5)],this[_0x28663b(0xc1)]['daily'],_0x22d5c5),this['checkThreshold']('weekly',_0x1f461e[_0x28663b(0xc5)],this[_0x28663b(0xc1)][_0x28663b(0xc9)],_0x22d5c5),this[_0x28663b(0xb0)]('monthly',_0x248440['cost'],this['budgets'][_0x28663b(0xec)],_0x22d5c5);}[a0_0x22cd97(0xb0)](_0x2cf638,_0x5aee11,_0x30ae71,_0x23a346){const _0xec4c29=a0_0x22cd97,_0x2586bb=_0x5aee11/_0x30ae71*0x64;for(const _0x2b2bfe of _0x23a346){if(_0x2586bb>=_0x2b2bfe){const _0x599061=_0x2cf638+'_'+_0x2b2bfe,_0x53188b=this[_0xec4c29(0xe7)]['lastAlertTimes']['get'](_0x599061),_0x384eb8=Date['now']();(!_0x53188b||_0x384eb8-_0x53188b>0x36ee80)&&(this['sendThresholdAlert'](_0x2cf638,_0x2586bb,_0x2b2bfe,_0x5aee11,_0x30ae71),this['alerts']['lastAlertTimes']['set'](_0x599061,_0x384eb8));break;}}}[a0_0x22cd97(0xf6)](_0x532b6d,_0x18eb9d,_0x398c92){const _0x25a559=a0_0x22cd97;this['logger'][_0x25a559(0xff)](_0x25a559(0xc7),{'period':_0x532b6d,'currentUsage':_0x18eb9d,'budgetLimit':_0x398c92,'excess':_0x18eb9d-_0x398c92}),typeof process!==_0x25a559(0xdf)&&process[_0x25a559(0x106)]&&process['emit'](_0x25a559(0xef),{'type':_0x25a559(0xc4),'period':_0x532b6d,'currentUsage':_0x18eb9d,'budgetLimit':_0x398c92,'excess':_0x18eb9d-_0x398c92});}['sendThresholdAlert'](_0x58fcf7,_0x49156e,_0x1135c0,_0xfe489b,_0x4c0060){const _0x2bff0c=a0_0x22cd97;this['logger']['warn'](_0x2bff0c(0xc2),{'period':_0x58fcf7,'percentage':Math['round'](_0x49156e),'threshold':_0x1135c0,'usage':_0xfe489b,'budget':_0x4c0060}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':'threshold_reached','period':_0x58fcf7,'percentage':Math[_0x2bff0c(0xed)](_0x49156e),'threshold':_0x1135c0,'usage':_0xfe489b,'budget':_0x4c0060});}['getDayKey'](_0x42c9f2){const _0xfaffca=a0_0x22cd97;return _0x42c9f2[_0xfaffca(0xd5)]()['split']('T')[0x0];}[a0_0x22cd97(0xf9)](_0x5b75e9){const _0x2caeed=a0_0x22cd97,_0x4111e1=_0x5b75e9[_0x2caeed(0xfa)](),_0x599e88=this[_0x2caeed(0xb8)](_0x5b75e9);return _0x4111e1+'-W'+_0x599e88[_0x2caeed(0x104)]()[_0x2caeed(0xd1)](0x2,'0');}['getMonthKey'](_0x2fc2ce){const _0x199adc=a0_0x22cd97,_0x1ca0ae=_0x2fc2ce[_0x199adc(0xfa)](),_0x155d85=_0x2fc2ce[_0x199adc(0x103)]()+0x1;return _0x1ca0ae+'-'+_0x155d85['toString']()['padStart'](0x2,'0');}['getWeekNumber'](_0x3db0b7){const _0x1f9d9e=a0_0x22cd97,_0x156440=new Date(_0x3db0b7[_0x1f9d9e(0xfa)](),0x0,0x1),_0x5385dc=(_0x3db0b7-_0x156440)/0x5265c00;return Math['ceil']((_0x5385dc+_0x156440['getDay']()+0x1)/0x7);}[a0_0x22cd97(0xea)](_0x30ba6b){const _0x1bb06e=a0_0x22cd97,_0x5c33b2=[];return _0x5c33b2['push'](['Period',_0x1bb06e(0xde),_0x1bb06e(0xe1),'Tokens','Requests','Agent','Model']),Object['entries'](_0x30ba6b[_0x1bb06e(0xbb)])['forEach'](([_0x480936,_0x1d5e0c])=>{const _0x40bd16=_0x1bb06e;_0x5c33b2[_0x40bd16(0xae)](['Daily',_0x480936,_0x1d5e0c[_0x40bd16(0xc5)],_0x1d5e0c[_0x40bd16(0xe5)],_0x1d5e0c['requests'],'','']),Object['entries'](_0x1d5e0c['byAgent']||{})[_0x40bd16(0xe2)](([_0x19cf01,_0x16e398])=>{const _0x48e859=_0x40bd16;_0x5c33b2[_0x48e859(0xae)](['Daily',_0x480936,_0x16e398[_0x48e859(0xc5)],_0x16e398[_0x48e859(0xe5)],_0x16e398['requests'],_0x19cf01,'']);});}),_0x5c33b2['map'](_0x50d1fe=>_0x50d1fe['join'](','))['join']('\x0a');}[a0_0x22cd97(0xc8)](){const _0x4da08d=a0_0x22cd97;try{this['logger'][_0x4da08d(0xf3)](_0x4da08d(0xd9));}catch(_0x471421){this[_0x4da08d(0xbe)][_0x4da08d(0xb4)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x471421[_0x4da08d(0xc3)]});}}[a0_0x22cd97(0xe3)](){const _0x5db651=a0_0x22cd97;try{this['logger']['debug']('Usage\x20data\x20saved');}catch(_0xe4e628){this[_0x5db651(0xbe)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0xe4e628[_0x5db651(0xc3)]});}}[a0_0x22cd97(0xfd)](){setInterval(()=>{const _0x16cd21=a0_0x55f3;this[_0x16cd21(0xe3)]();},0x493e0);}}function a0_0x4290(){const _0x1a1166=['BwvZC2fNzq','yNvKz2v0x2v4y2vLzgvK','y29ZDa','Dg90ywW','qNvKz2v0igXPBwL0igv4y2vLzgvK','Bg9HzfvZywDLrgf0yq','D2vLA2X5','ntiYnZe4wg55AeLH','otq5nMT3vgHzzG','mJm0mvPsqK5UCq','DxbKyxrLvxnHz2vfBNrYEq','mJm5mdu1nMffD1vmwq','ogn6u3DMza','oduZmJi3muDjuvfywG','CgfKu3rHCNq','z2v0uMvTywLUAw5NqNvKz2v0','C2v0','z2v0tw9KzwXvC2fNzq','Dg9ju09tDhjPBMC','Dg9Wtw9KzwXZ','C2XPy2u','mZe2odK4mxvOD1PRtW','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','y2HLy2TuAhjLC2HVBgrbBgvYDhm','y2HLy2TcDwrNzxrmAw1PDhm','y2fSy3vSyxrLq29ZDa','z2v0rgf0zq','rgf0zq','Dw5KzwzPBMvK','vxnHz2uGDhjHy2TLza','q29ZDa','zM9YrwfJAa','C2f2zvvZywDLrgf0yq','Bw9KzwXjza','Dg9Rzw5Z','yNLbz2vUDa','ywXLCNrZ','y3jLyxrLrw1WDhLvC2fNzq','DxnHz2u','y29UDMvYDfrVq1nw','Dw5ZAgLMDa','Bw9UDgHSEq','CM91BMq','ANnVBG','yNvKz2v0qwXLCNq','zNjVBq','B3v0Chv0','odyWCLfQrNrn','Aw5MBW','v0vfs0Xz','Dg9WqwDLBNrZ','C2vUzej1zgDLDefSzxj0','ywDLBNrjza','sw52ywXPzcbWzxjPB2q6ia','z2v0v2vLA0TLEq','z2v0rNvSBfLLyxi','zw50CMLLCW','ntiYC3bKD2fk','C2v0DxbqzxjPB2rPy1nHDMu','AgfZ','D2fYBG','y3n2','AxnxAxrOAw5cDwrNzxq','ltaX','z2v0tw9UDgG','Dg9tDhjPBMC','BwfW','zw1PDa','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','C3rYAw5NAwz5','zgfPBhLbDMvYywDLCW','ChvZAa','zxHWB3j0vxnHz2veyxrH','y2HLy2TuAhjLC2HVBgq','z2v0vxnHz2u','Dg90ywXFDg9Rzw5Z','z2v0tw9UDgHlzxK','zxjYB3i','CMvXDwvZDhm','yNLnB2rLBa','z2v0','z2v0v2vLA051BwjLCG','z2v0rgf5s2v5','mJbNtfDiwvu','zgfPBhK','ndK5nda4mLDctgH6wG','y29TCgXLDgLVBL90B2TLBNm','Bg9Nz2vY','z2v0qwDLBNrvC2fNzq','Aw5PDgLHBgL6zvvZywDLrw50CNK','yNvKz2v0CW','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK'];a0_0x4290=function(){return _0x1a1166;};return a0_0x4290();}export default BudgetService;
@@ -1 +1 @@
1
- const a0_0x384cfe=a0_0x2828;function a0_0x3bc8(){const _0x20c043=['Dgv4Da','zM9YBwf0qNL0zxm','Dg9Rzw5fC3rPBwf0zq','Bg9N','z2v0qxr0ywnOBwvUDenVBNrLBNq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','otCWmtG0s3nwExDx','zxjYB3i','C3bSAxq','cJXHDhrHy2HLzc1MAwXLCZ4k','jNf1B3q7','CMvMzxjLBMnL','mZe4nJm5m3HeAvPjEq','CMvWBgfJzq','zM9YBwf0vgv4DezPBgu','BwvZC2fNzq','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','y29UDgvUDa','iIbZAxPLpsi','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','iIbWyxrOpsi','BgvUz3rO','cIaGpc9MAwXLpG','ndvyyvbuuvO','iIb0ExbLpsi','zM9YBwf0sw1Hz2vgAwXL','iIaVpG','mZeXnJiXmMj1Bffgwq','Cg93','yNvPBgreEw5HBwLJq29UDgv4Da','zxnJyxbLwg1S','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','s0iIig1Vzgu9iMnVBNrLBNqIpGO','zxn0Aw1HDgvKvg9Rzw5Z','cJXMAwXLlxjLzMvYzw5Jzxm+cG','nvDWweHbqq','mZm3ntm5ALDSDgPx','mteWCxLgvND4','yxr0ywnOBwvUDfnLCNzPy2u','Bw9Kzq','ndu5mJC1nfzIEfP5sq','mtC2ndi1n3Hzy1fQBq','zM9YBwf0q29UDgvUDezPBgu','Bg9Nz2vY','zM9YBwf0uMvMzxjLBMnLrMLSzq','mJe4ndnfyLviwva','zxn0Aw1HDgvuB3rHBfrVA2vUCW','jMX0oW','iIbTB2rPzMLLzd0I','ica8zMLSzsbUyw1Lpsi','mtmYAM5NswXL'];a0_0x3bc8=function(){return _0x20c043;};return a0_0x3bc8();}(function(_0x1b3a15,_0x594644){const _0x43aabb=a0_0x2828,_0x3cf876=_0x1b3a15();while(!![]){try{const _0xd79c4f=parseInt(_0x43aabb(0x1df))/0x1+-parseInt(_0x43aabb(0x1ed))/0x2*(-parseInt(_0x43aabb(0x1e8))/0x3)+parseInt(_0x43aabb(0x20a))/0x4+-parseInt(_0x43aabb(0x1de))/0x5*(-parseInt(_0x43aabb(0x1e3))/0x6)+-parseInt(_0x43aabb(0x1fa))/0x7+-parseInt(_0x43aabb(0x1f4))/0x8*(-parseInt(_0x43aabb(0x206))/0x9)+parseInt(_0x43aabb(0x1e0))/0xa*(-parseInt(_0x43aabb(0x1e4))/0xb);if(_0xd79c4f===_0x594644)break;else _0x3cf876['push'](_0x3cf876['shift']());}catch(_0xa87241){_0x3cf876['push'](_0x3cf876['shift']());}}}(a0_0x3bc8,0xb6fc2));import a0_0x1935d7 from'./fileAttachmentService.js';function a0_0x2828(_0x39f77a,_0x95927b){_0x39f77a=_0x39f77a-0x1db;const _0x3bc85b=a0_0x3bc8();let _0x28287c=_0x3bc85b[_0x39f77a];if(a0_0x2828['xhOIkL']===undefined){var _0x9172a6=function(_0x367132){const _0x9bdba0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1935d7='',_0x200b9a='';for(let _0x1f2c21=0x0,_0x2ff5c0,_0x849ccf,_0x3f306d=0x0;_0x849ccf=_0x367132['charAt'](_0x3f306d++);~_0x849ccf&&(_0x2ff5c0=_0x1f2c21%0x4?_0x2ff5c0*0x40+_0x849ccf:_0x849ccf,_0x1f2c21++%0x4)?_0x1935d7+=String['fromCharCode'](0xff&_0x2ff5c0>>(-0x2*_0x1f2c21&0x6)):0x0){_0x849ccf=_0x9bdba0['indexOf'](_0x849ccf);}for(let _0x24d210=0x0,_0x3a70be=_0x1935d7['length'];_0x24d210<_0x3a70be;_0x24d210++){_0x200b9a+='%'+('00'+_0x1935d7['charCodeAt'](_0x24d210)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x200b9a);};a0_0x2828['CJMDow']=_0x9172a6,a0_0x2828['WRVswQ']={},a0_0x2828['xhOIkL']=!![];}const _0x15c13f=_0x3bc85b[0x0],_0x57b7cf=_0x39f77a+_0x15c13f,_0x4dcfbb=a0_0x2828['WRVswQ'][_0x57b7cf];return!_0x4dcfbb?(_0x28287c=a0_0x2828['CJMDow'](_0x28287c),a0_0x2828['WRVswQ'][_0x57b7cf]=_0x28287c):_0x28287c=_0x4dcfbb,_0x28287c;}class ContextInjectionService{constructor(_0x200b9a={},_0x1f2c21=null){const _0xfa3921=a0_0x2828;this['config']=_0x200b9a,this['logger']=_0x1f2c21,this[_0xfa3921(0x1e1)]=new a0_0x1935d7(_0x200b9a,_0x1f2c21);}async['initialize'](){await this['attachmentService']['initialize']();}async[a0_0x384cfe(0x20c)](_0x2ff5c0){const _0x76e44d=a0_0x384cfe;try{const _0x849ccf=await this[_0x76e44d(0x1e1)][_0x76e44d(0x1f3)](_0x2ff5c0);if(_0x849ccf[_0x76e44d(0x204)]===0x0)return'';const _0x3f306d=_0x849ccf['filter'](_0x1cd92b=>_0x1cd92b[_0x76e44d(0x1e2)]==='content'),_0x24d210=_0x849ccf['filter'](_0x4edd16=>_0x4edd16[_0x76e44d(0x1e2)]===_0x76e44d(0x1f9));let _0x3a70be='';if(_0x3f306d[_0x76e44d(0x204)]>0x0){_0x3a70be+=_0x76e44d(0x1f7);for(const _0x4a8d91 of _0x3f306d){const _0x197bb0=await this['attachmentService'][_0x76e44d(0x1f2)](_0x4a8d91['fileId']);if(_0x197bb0){const _0x2c01bc=this[_0x76e44d(0x1e5)](_0x4a8d91,_0x197bb0);_0x3a70be+=_0x2c01bc+'\x0a';}}_0x3a70be+='</attached-files>\x0a';}if(_0x24d210[_0x76e44d(0x204)]>0x0){_0x3a70be+=_0x76e44d(0x1dd);for(const _0x2969d9 of _0x24d210){const _0x5c8223=this[_0x76e44d(0x1e7)](_0x2969d9);_0x3a70be+=_0x5c8223+'\x0a';}_0x3a70be+='</file-references>\x0a',_0x3a70be+=_0x76e44d(0x201);}return _0x3a70be;}catch(_0x196ce6){return this[_0x76e44d(0x1e6)]?.[_0x76e44d(0x1f5)](_0x76e44d(0x202),{'agentId':_0x2ff5c0,'error':_0x196ce6[_0x76e44d(0x1fd)]}),'';}}[a0_0x384cfe(0x1e5)](_0x43aab8,_0x4df5b1){const _0x2cff0d=a0_0x384cfe,{fileName:_0x564341,fileType:_0x4f7097,size:_0x1a58be,contentType:_0x575393}=_0x43aab8,_0x7ab254=(_0x1a58be/0x400)['toFixed'](0x2);if(_0x575393===_0x2cff0d(0x1ee))return this['formatTextFile'](_0x43aab8,_0x4df5b1);else{if(_0x575393==='image')return this[_0x2cff0d(0x208)](_0x43aab8,_0x4df5b1);else{if(_0x575393==='pdf')return this['formatPdfFile'](_0x43aab8,_0x4df5b1);}}return'\x20\x20<file\x20name=\x22'+this[_0x2cff0d(0x20d)](_0x564341)+'\x22\x20type=\x22'+_0x4f7097+_0x2cff0d(0x200)+_0x7ab254+_0x2cff0d(0x1db)+this['escapeXml'](_0x4df5b1)+_0x2cff0d(0x205);}[a0_0x384cfe(0x1fc)](_0x434d3f,_0x3217a8){const _0x35f3c3=a0_0x384cfe,{fileName:_0x2687a3,fileType:_0x46744b,size:_0x1a0db1}=_0x434d3f,_0xee9d7a=(_0x1a0db1/0x400)['toFixed'](0x2);return _0x35f3c3(0x1ec)+this['escapeXml'](_0x2687a3)+'\x22\x20type=\x22'+_0x46744b+'\x22\x20size=\x22'+_0xee9d7a+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x3217a8)+_0x35f3c3(0x205);}[a0_0x384cfe(0x208)](_0x35de02,_0x39dcc7){const _0x4383b5=a0_0x384cfe,{fileName:_0x39b986,fileType:_0x3b4f12,size:_0x3c4e7d}=_0x35de02,_0x4edde3=(_0x3c4e7d/0x400)['toFixed'](0x2);return _0x4383b5(0x1ec)+this[_0x4383b5(0x20d)](_0x39b986)+_0x4383b5(0x207)+_0x3b4f12+_0x4383b5(0x200)+_0x4edde3+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x39dcc7+'\x0a\x20\x20</file>';}['formatPdfFile'](_0x494b8e,_0x281f22){const _0x5db228=a0_0x384cfe,{fileName:_0x2a9ae7,fileType:_0x4da34a,size:_0x26dac7}=_0x494b8e,_0x4bfab6=(_0x26dac7/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x2a9ae7)+_0x5db228(0x207)+_0x4da34a+_0x5db228(0x200)+_0x4bfab6+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x281f22)+_0x5db228(0x205);}['formatReferenceFile'](_0x3b67a4){const _0x23502c=a0_0x384cfe,{fileName:_0x1b773e,originalPath:_0x20a7fa,size:_0x210e83,fileType:_0x4bcbe7,lastModified:_0x383b7c}=_0x3b67a4,_0x255df4=this[_0x23502c(0x1ef)](_0x210e83),_0x424455=new Date(_0x383b7c)['toISOString']()[_0x23502c(0x1f6)]('T')[0x0];return'\x20\x20<file\x20name=\x22'+this[_0x23502c(0x20d)](_0x1b773e)+_0x23502c(0x203)+this['escapeXml'](_0x20a7fa)+'\x22\x20size=\x22'+_0x255df4+_0x23502c(0x207)+_0x4bcbe7+_0x23502c(0x1eb)+_0x424455+_0x23502c(0x209);}['escapeXml'](_0x326808){const _0x447b56=a0_0x384cfe;if(!_0x326808)return'';return _0x326808[_0x447b56(0x1fb)](/&/g,'&amp;')['replace'](/</g,_0x447b56(0x1ea))['replace'](/>/g,'&gt;')['replace'](/"/g,_0x447b56(0x1f8))[_0x447b56(0x1fb)](/'/g,'&apos;');}['formatBytes'](_0x5d8f60){const _0x4ad771=a0_0x384cfe;if(_0x5d8f60===0x0)return'0\x20Bytes';const _0x569b43=0x400,_0xbf59e3=['Bytes','KB','MB','GB'],_0x457ed1=Math['floor'](Math[_0x4ad771(0x1f1)](_0x5d8f60)/Math['log'](_0x569b43));return parseFloat((_0x5d8f60/Math[_0x4ad771(0x20b)](_0x569b43,_0x457ed1))['toFixed'](0x2))+_0xbf59e3[_0x457ed1];}async[a0_0x384cfe(0x1e9)](_0x2b7dbc){const _0x171071=a0_0x384cfe;try{const _0x101751=await this[_0x171071(0x1e1)][_0x171071(0x1f3)](_0x2b7dbc);let _0x2ef518=0x0;for(const _0x4466a6 of _0x101751){_0x4466a6[_0x171071(0x1e2)]==='content'?_0x2ef518+=_0x4466a6[_0x171071(0x1f0)]||0x0:_0x2ef518+=0x14;}return _0x2ef518;}catch(_0x6f33bb){return this[_0x171071(0x1e6)]?.['error'](_0x171071(0x20e),{'agentId':_0x2b7dbc,'error':_0x6f33bb[_0x171071(0x1fd)]}),0x0;}}async[a0_0x384cfe(0x1fe)](_0x370d39){const _0x333f4c=a0_0x384cfe;try{const _0x62a9ab=await this[_0x333f4c(0x1e1)]['getActiveAttachments'](_0x370d39),_0x2104db={'totalActive':_0x62a9ab['length'],'contentMode':_0x62a9ab['filter'](_0x5d5eda=>_0x5d5eda['mode']===_0x333f4c(0x1ff))['length'],'referenceMode':_0x62a9ab['filter'](_0x59b481=>_0x59b481[_0x333f4c(0x1e2)]===_0x333f4c(0x1f9))[_0x333f4c(0x204)],'estimatedTokens':0x0,'files':[]};for(const _0x2bea6c of _0x62a9ab){_0x2104db[_0x333f4c(0x1dc)]+=_0x2bea6c['tokenEstimate']||0x0,_0x2104db['files']['push']({'fileName':_0x2bea6c['fileName'],'mode':_0x2bea6c[_0x333f4c(0x1e2)],'size':this[_0x333f4c(0x1ef)](_0x2bea6c['size']),'tokens':_0x2bea6c['tokenEstimate']||0x0});}return _0x2104db;}catch(_0x1ce4bd){return this['logger']?.['error']('Error\x20getting\x20attachment\x20summary',{'agentId':_0x370d39,'error':_0x1ce4bd[_0x333f4c(0x1fd)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
1
+ const a0_0x6e198c=a0_0x486c;(function(_0x6f8150,_0x22d21f){const _0x1281f4=a0_0x486c,_0xfa8539=_0x6f8150();while(!![]){try{const _0x1fd309=-parseInt(_0x1281f4(0xb2))/0x1+-parseInt(_0x1281f4(0xb6))/0x2+parseInt(_0x1281f4(0xca))/0x3+parseInt(_0x1281f4(0xc0))/0x4+parseInt(_0x1281f4(0xc5))/0x5+-parseInt(_0x1281f4(0xc6))/0x6+parseInt(_0x1281f4(0xb8))/0x7;if(_0x1fd309===_0x22d21f)break;else _0xfa8539['push'](_0xfa8539['shift']());}catch(_0x46020c){_0xfa8539['push'](_0xfa8539['shift']());}}}(a0_0x2b9d,0xa1379));import a0_0x146b3a from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0xe4446f={},_0x540c30=null){const _0x48a94c=a0_0x486c;this[_0x48a94c(0xa6)]=_0xe4446f,this['logger']=_0x540c30,this['attachmentService']=new a0_0x146b3a(_0xe4446f,_0x540c30);}async[a0_0x6e198c(0xbf)](){const _0x3e0c45=a0_0x6e198c;await this[_0x3e0c45(0xc2)]['initialize']();}async['buildDynamicContext'](_0x4f76ce){const _0x2b8dea=a0_0x6e198c;try{const _0x434ee1=await this['attachmentService'][_0x2b8dea(0xb5)](_0x4f76ce);if(_0x434ee1[_0x2b8dea(0xcc)]===0x0)return'';const _0x543437=_0x434ee1[_0x2b8dea(0xa4)](_0x14d7d6=>_0x14d7d6['mode']===_0x2b8dea(0xc8)),_0x219563=_0x434ee1['filter'](_0x102cbe=>_0x102cbe['mode']===_0x2b8dea(0xaf));let _0x59f095='';if(_0x543437['length']>0x0){_0x59f095+='\x0a<attached-files>\x0a';for(const _0x32993d of _0x543437){const _0x5b5891=await this[_0x2b8dea(0xc2)]['getAttachmentContent'](_0x32993d['fileId']);if(_0x5b5891){const _0x13d749=this['formatContentFile'](_0x32993d,_0x5b5891);_0x59f095+=_0x13d749+'\x0a';}}_0x59f095+=_0x2b8dea(0x9d);}if(_0x219563['length']>0x0){_0x59f095+=_0x2b8dea(0xb0);for(const _0x278fd4 of _0x219563){const _0x3b0f54=this[_0x2b8dea(0xbd)](_0x278fd4);_0x59f095+=_0x3b0f54+'\x0a';}_0x59f095+=_0x2b8dea(0xb7),_0x59f095+=_0x2b8dea(0xcd);}return _0x59f095;}catch(_0x2b9d6d){return this['logger']?.[_0x2b8dea(0xb1)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x4f76ce,'error':_0x2b9d6d[_0x2b8dea(0x9e)]}),'';}}['formatContentFile'](_0x5decab,_0x17992b){const _0x9803f2=a0_0x6e198c,{fileName:_0x2de0a5,fileType:_0x14c507,size:_0x2b2b28,contentType:_0x477e34}=_0x5decab,_0xe5d0e3=(_0x2b2b28/0x400)['toFixed'](0x2);if(_0x477e34===_0x9803f2(0xaa))return this[_0x9803f2(0xa1)](_0x5decab,_0x17992b);else{if(_0x477e34===_0x9803f2(0xa2))return this['formatImageFile'](_0x5decab,_0x17992b);else{if(_0x477e34==='pdf')return this[_0x9803f2(0xba)](_0x5decab,_0x17992b);}}return'\x20\x20<file\x20name=\x22'+this[_0x9803f2(0xc4)](_0x2de0a5)+'\x22\x20type=\x22'+_0x14c507+'\x22\x20size=\x22'+_0xe5d0e3+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x17992b)+_0x9803f2(0xa3);}['formatTextFile'](_0x2ba00f,_0x238fca){const _0x4b1684=a0_0x6e198c,{fileName:_0xf890d,fileType:_0x445acc,size:_0x595331}=_0x2ba00f,_0x5c25a9=(_0x595331/0x400)[_0x4b1684(0x9f)](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x4b1684(0xc4)](_0xf890d)+'\x22\x20type=\x22'+_0x445acc+'\x22\x20size=\x22'+_0x5c25a9+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x4b1684(0xc4)](_0x238fca)+'\x0a\x20\x20</file>';}[a0_0x6e198c(0xc3)](_0x2428e7,_0x2d62e5){const _0x369924=a0_0x6e198c,{fileName:_0x18c164,fileType:_0x431e58,size:_0x4934a0}=_0x2428e7,_0x14205e=(_0x4934a0/0x400)['toFixed'](0x2);return _0x369924(0xc7)+this['escapeXml'](_0x18c164)+'\x22\x20type=\x22'+_0x431e58+_0x369924(0xae)+_0x14205e+_0x369924(0xb4)+_0x2d62e5+_0x369924(0xa3);}['formatPdfFile'](_0x2a1138,_0x5880fb){const _0x17e52d=a0_0x6e198c,{fileName:_0x480f64,fileType:_0x584ce4,size:_0x1016ac}=_0x2a1138,_0x16e34d=(_0x1016ac/0x400)[_0x17e52d(0x9f)](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x480f64)+'\x22\x20type=\x22'+_0x584ce4+_0x17e52d(0xae)+_0x16e34d+_0x17e52d(0xb4)+this[_0x17e52d(0xc4)](_0x5880fb)+'\x0a\x20\x20</file>';}[a0_0x6e198c(0xbd)](_0x353835){const _0x4ab581=a0_0x6e198c,{fileName:_0x1425bb,originalPath:_0x332419,size:_0x51ce4b,fileType:_0x36abec,lastModified:_0x1a84e6}=_0x353835,_0x109c85=this['formatBytes'](_0x51ce4b),_0x4f365a=new Date(_0x1a84e6)[_0x4ab581(0xac)]()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this[_0x4ab581(0xc4)](_0x1425bb)+'\x22\x20path=\x22'+this[_0x4ab581(0xc4)](_0x332419)+_0x4ab581(0xae)+_0x109c85+_0x4ab581(0xbb)+_0x36abec+'\x22\x20modified=\x22'+_0x4f365a+_0x4ab581(0xa5);}[a0_0x6e198c(0xc4)](_0x2f8933){const _0x507161=a0_0x6e198c;if(!_0x2f8933)return'';return _0x2f8933[_0x507161(0xad)](/&/g,_0x507161(0xa0))[_0x507161(0xad)](/</g,_0x507161(0xcb))['replace'](/>/g,'&gt;')[_0x507161(0xad)](/"/g,'&quot;')['replace'](/'/g,_0x507161(0xbe));}['formatBytes'](_0x147022){const _0x31a859=a0_0x6e198c;if(_0x147022===0x0)return'0\x20Bytes';const _0x5c63aa=0x400,_0x3587ac=['Bytes','KB','MB','GB'],_0x352b2f=Math['floor'](Math['log'](_0x147022)/Math['log'](_0x5c63aa));return parseFloat((_0x147022/Math[_0x31a859(0xbc)](_0x5c63aa,_0x352b2f))[_0x31a859(0x9f)](0x2))+_0x3587ac[_0x352b2f];}async[a0_0x6e198c(0xa7)](_0x28ab94){const _0x2c40e0=a0_0x6e198c;try{const _0x3172bb=await this[_0x2c40e0(0xc2)]['getActiveAttachments'](_0x28ab94);let _0x330a8a=0x0;for(const _0x2bdcc2 of _0x3172bb){_0x2bdcc2[_0x2c40e0(0xab)]==='content'?_0x330a8a+=_0x2bdcc2['tokenEstimate']||0x0:_0x330a8a+=0x14;}return _0x330a8a;}catch(_0x564174){return this['logger']?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x28ab94,'error':_0x564174[_0x2c40e0(0x9e)]}),0x0;}}async[a0_0x6e198c(0xb9)](_0x5cbced){const _0x3fa2a6=a0_0x6e198c;try{const _0x3d24fc=await this[_0x3fa2a6(0xc2)]['getActiveAttachments'](_0x5cbced),_0x52f70b={'totalActive':_0x3d24fc[_0x3fa2a6(0xcc)],'contentMode':_0x3d24fc[_0x3fa2a6(0xa4)](_0x28a3ed=>_0x28a3ed['mode']==='content')['length'],'referenceMode':_0x3d24fc[_0x3fa2a6(0xa4)](_0x539725=>_0x539725['mode']===_0x3fa2a6(0xaf))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x57c485 of _0x3d24fc){_0x52f70b[_0x3fa2a6(0x9c)]+=_0x57c485['tokenEstimate']||0x0,_0x52f70b[_0x3fa2a6(0xa8)]['push']({'fileName':_0x57c485[_0x3fa2a6(0xc9)],'mode':_0x57c485['mode'],'size':this[_0x3fa2a6(0xa9)](_0x57c485['size']),'tokens':_0x57c485['tokenEstimate']||0x0});}return _0x52f70b;}catch(_0x5c8c2a){return this[_0x3fa2a6(0xb3)]?.[_0x3fa2a6(0xb1)](_0x3fa2a6(0xc1),{'agentId':_0x5cbced,'error':_0x5c8c2a['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;function a0_0x486c(_0x2f539e,_0x2a6c97){_0x2f539e=_0x2f539e-0x9c;const _0x2b9de8=a0_0x2b9d();let _0x486c81=_0x2b9de8[_0x2f539e];if(a0_0x486c['svUmlp']===undefined){var _0x3e7f53=function(_0x584751){const _0x48b4f8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x146b3a='',_0xe4446f='';for(let _0x540c30=0x0,_0x4f76ce,_0x434ee1,_0x543437=0x0;_0x434ee1=_0x584751['charAt'](_0x543437++);~_0x434ee1&&(_0x4f76ce=_0x540c30%0x4?_0x4f76ce*0x40+_0x434ee1:_0x434ee1,_0x540c30++%0x4)?_0x146b3a+=String['fromCharCode'](0xff&_0x4f76ce>>(-0x2*_0x540c30&0x6)):0x0){_0x434ee1=_0x48b4f8['indexOf'](_0x434ee1);}for(let _0x219563=0x0,_0x59f095=_0x146b3a['length'];_0x219563<_0x59f095;_0x219563++){_0xe4446f+='%'+('00'+_0x146b3a['charCodeAt'](_0x219563)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe4446f);};a0_0x486c['FpPuKT']=_0x3e7f53,a0_0x486c['gNhsLE']={},a0_0x486c['svUmlp']=!![];}const _0x3dae55=_0x2b9de8[0x0],_0x37b68e=_0x2f539e+_0x3dae55,_0x2d45a1=a0_0x486c['gNhsLE'][_0x37b68e];return!_0x2d45a1?(_0x486c81=a0_0x486c['FpPuKT'](_0x486c81),a0_0x486c['gNhsLE'][_0x37b68e]=_0x486c81):_0x486c81=_0x2d45a1,_0x486c81;}function a0_0x2b9d(){const _0x144040=['mJu1ntG5mgHOr2Hurq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','mta4nty5m25ysNHLuW','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','zM9YBwf0ugrMrMLSzq','iIb0ExbLpsi','Cg93','zM9YBwf0uMvMzxjLBMnLrMLSzq','jMfWB3m7','Aw5PDgLHBgL6zq','ndC3oda1nKHcsuzIBq','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0sw1Hz2vgAwXL','zxnJyxbLwg1S','ntq1odq2mhvUt3DLEG','mZq2otq0mefUD1zYrW','ica8zMLSzsbUyw1Lpsi','y29UDgvUDa','zMLSzu5HBwu','oteXnty1DM53ENvf','jMX0oW','BgvUz3rO','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','zxn0Aw1HDgvKvg9Rzw5Z','pc9HDhrHy2HLzc1MAwXLCZ4k','BwvZC2fNzq','Dg9gAxHLza','jMfTCdS','zM9YBwf0vgv4DezPBgu','Aw1Hz2u','cIaGpc9MAwXLpG','zMLSDgvY','iIaVpG','y29UzMLN','zxn0Aw1HDgvuB3rHBfrVA2vUCW','zMLSzxm','zM9YBwf0qNL0zxm','Dgv4Da','Bw9Kzq','Dg9ju09tDhjPBMC','CMvWBgfJzq','iIbZAxPLpsi','CMvMzxjLBMnL','cJXMAwXLlxjLzMvYzw5Jzxm+cG','zxjYB3i','mJi4nJmWsLzJyKTk','Bg9Nz2vY','s0iIig1Vzgu9iMnVBNrLBNqIpGO','z2v0qwn0AxzLqxr0ywnOBwvUDhm'];a0_0x2b9d=function(){return _0x144040;};return a0_0x2b9d();}