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

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-lCBai6dX.js → index-CX8ZfpGw.js} +113 -60
  119. package/web-ui/build/static/index-Dwg_JrlO.css +1 -0
  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
+ function a0_0x4c95(){const _0x558751=['zgvIDwC','CM9Szq','BwvZC2fNzq','r0furvDbwv9usu1ft1vu','DgHYzxnOB2XK','AxnpCgvU','CM91DgvnB2rLBa','y29UzMLN','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','y29UDMvYC2f0Aw9UtwfUywDLCNm','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','C3LZDgvT','t1bftKfj','CMv0CNLbDhrLBxb0CW','y2LYy3vPDejYzwfRzxi','Aw5MBW','yxbPs2v5twfUywDLCG','quKGC2vYDMLJzsbLCNjVCJOG','BM93','DhjHy2TvC2fNzq','n3nhAwDnyW','qu5usfjpueLdx0HbsuTv','revfufnfruTFuJe','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','qMvHCMvYia','y3vYCMvUDe1VzgvS','DML2Awq','C3rYAw5N','z2v0s2v5C0zVCLjLCxvLC3q','qu5usfjpueLdx09qvvm','AxnbCNjHEq','C3rHDhvZ','ue9tva','nw9Uzg9HsG','vu5bvvrit1jjwKve','ndGYodaYu2Hdu3fw','ywDLBNrqB29S','yJy0x2PZB24','CMv2AxnLzf9WCM9TChq','x2LZq2LYy3vPDejYzwfRzxjpCgvU','mZeWsejqtMXZ','x21HA2vjBwfNzufqsvjLCxvLC3q','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','ueHjxZq','uMf0zsbSAw1PDcbLEgnLzwrLza','C3DPDgnOtw9KzwW','yw50AhjVCgLJ','ueHj','mtm3nZuYmNf2v3n5Cq','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3vIC3rYAw5N','r1buxZrFtuLosq','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','CgXHDgzVCM1qCM92AwrLza','qvPvuKu','vw5RBM93BIbTB2rLBdOG','Bw9KzwW','x21HA2vbueLszxf1zxn0','C3DPDgnOqwDLBNrnB2rLBa','Aw1Nlq','BwLJCM9ZB2z0','rKfmtejbq0S','yxbWBgLJyxrPB24VANnVBG','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','C3LZDgvTuhjVBxb0','CMv2zxjZzq','x3n1Bw1HCML6zu1LC3nHz2vZ','CMfUzg9T','ChjVDMLKzxi','yxnZAxn0yw50','C2v0qxbPs2v5twfUywDLCG','DgvTCgvYyxr1CMu','zMLUAxnOx3jLyxnVBG','C3bLzwq','zxjYB3iT','qKfex1jfuvvfu1q','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','Dg9tDhjPBMC','vMfSAwrHDgLUzYbTB2rLBa','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','AgvHBhrOEq','DxnHz2u','mty4ndflCwT0vg8','x2nOzwnRtw9KzwXizwfSDgG','AgvHBhrOlwnOzwnR','ywDLBNrjza','sw52ywXPzcbTB2rLBdOG','u3LZDgvToIa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','ywXS','mti0mdy5DwrZC2Dc','x2zVCM1HDezVCKf6DxjL','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','x2DLDfzLBMrVCKzYB21nB2rLBa','x2zVCM1HDezVCKfUDgHYB3bPyW','qu5usfjpueLd','CxvHBgL0Eq','CMvXDwvZDff1zxvL','x2vZDgLTyxrLvg9Rzw5Z','u0vsvKLdrv9vtKfwquLmqujmrq','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','BwvZC2fNzxm','uMv0CNLPBMCGAw4G','y2vPBa','y3vZDg9TqxbPs2v5CW','y29UDgvUDa','x3jLC2v0q2LYy3vPDejYzwfRzxi','D2fYBG','mtHiCwneuMK','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','C3vIC3rY','z2vUzxjHDgvjBwfNzq','tK9ux0zpvu5e','AgfUzgXLshr0CevYCM9Y','DxjS','DxnLCG','DgLTzw91Da','mZK0mJG4yNbqtxrP','C2vZC2LVBKLK','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zMfPBhvYzxm','B3bLBMfP','Aw5JBhvKzxm','y2XHC3nPzNLfCNjVCG','C3r5Bgu','y29TCgXLDgLVBL90B2TLBNm','zMfZDa','yNvKz2v0u2vYDMLJzq','BgfZDezHAwX1CMvuAw1L','Bwf4x3rVA2vUCW','Dw5ZAgLMDa','zxjYB3i','A2v5CW','DgLTzxn0yw1W','Ahr0Chm6lY9HCgKUBg94AweUywK','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','Dg9ju09tDhjPBMC','ChvZAa','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','y2HVAwnLCW','C2v0','Bw9KzwXtCgvJCW','zgvLChnLzwS','x2zVCM1HDfnPBMDSzu1LC3nHz2u','C3rVCa','zgf0yq','DMvUzg9YqxbPs2v5','C3rYzwfT','rK9sqKLerevo','mJGZmZHlu1PeDvm','x2zVCM1HDezVCK9Wzw5bsq','z2v0qwDLBNq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','BwfW','y3jLyxrLza','zxjYB3jiyw5KBgvY','yxbPs2v5','Bg9Nz2vY','l2HLywX0Aa','Bg94AwfbCgLlzxK','revfufnfruS','BgvUz3rO','CMf0zuXPBwL0zxjZ','yMfJA2vUza','mtaYnhGXmdi0','mtqXotGWofDHqxviBq','Cg93'];a0_0x4c95=function(){return _0x558751;};return a0_0x4c95();}function a0_0x179e(_0x1eb0bd,_0x2b1caa){_0x1eb0bd=_0x1eb0bd-0x186;const _0x4c9560=a0_0x4c95();let _0x179e1a=_0x4c9560[_0x1eb0bd];if(a0_0x179e['jnPcVo']===undefined){var _0x172e64=function(_0xb42407){const _0x4a62a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26f75f='',_0x3b14a0='';for(let _0x38d2b1=0x0,_0x142940,_0x2bf6f1,_0x1909d9=0x0;_0x2bf6f1=_0xb42407['charAt'](_0x1909d9++);~_0x2bf6f1&&(_0x142940=_0x38d2b1%0x4?_0x142940*0x40+_0x2bf6f1:_0x2bf6f1,_0x38d2b1++%0x4)?_0x26f75f+=String['fromCharCode'](0xff&_0x142940>>(-0x2*_0x38d2b1&0x6)):0x0){_0x2bf6f1=_0x4a62a2['indexOf'](_0x2bf6f1);}for(let _0x229a92=0x0,_0x4dabac=_0x26f75f['length'];_0x229a92<_0x4dabac;_0x229a92++){_0x3b14a0+='%'+('00'+_0x26f75f['charCodeAt'](_0x229a92)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b14a0);};a0_0x179e['EVsFRD']=_0x172e64,a0_0x179e['AVhOeV']={},a0_0x179e['jnPcVo']=!![];}const _0x50e7f9=_0x4c9560[0x0],_0x55edab=_0x1eb0bd+_0x50e7f9,_0x58335e=a0_0x179e['AVhOeV'][_0x55edab];return!_0x58335e?(_0x179e1a=a0_0x179e['EVsFRD'](_0x179e1a),a0_0x179e['AVhOeV'][_0x55edab]=_0x179e1a):_0x179e1a=_0x58335e,_0x179e1a;}const a0_0x150019=a0_0x179e;(function(_0x42ef73,_0x1cffe1){const _0x433730=a0_0x179e,_0x48b968=_0x42ef73();while(!![]){try{const _0x4ca118=parseInt(_0x433730(0x1f9))/0x1+-parseInt(_0x433730(0x192))/0x2*(-parseInt(_0x433730(0x214))/0x3)+parseInt(_0x433730(0x21e))/0x4*(-parseInt(_0x433730(0x1c5))/0x5)+parseInt(_0x433730(0x1c7))/0x6+-parseInt(_0x433730(0x1b8))/0x7*(parseInt(_0x433730(0x1a2))/0x8)+-parseInt(_0x433730(0x1d4))/0x9+parseInt(_0x433730(0x1cc))/0xa*(parseInt(_0x433730(0x201))/0xb);if(_0x4ca118===_0x1cffe1)break;else _0x48b968['push'](_0x48b968['shift']());}catch(_0x54796c){_0x48b968['push'](_0x48b968['shift']());}}}(a0_0x4c95,0x191d1));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x26f75f,_0x3b14a0,_0x38d2b1,_0x142940){const _0x495fec=a0_0x179e;this['config']=_0x26f75f,this[_0x495fec(0x19a)]=_0x3b14a0,this[_0x495fec(0x228)]=_0x38d2b1,this[_0x495fec(0x198)]=_0x142940,this['baseUrl']=_0x26f75f['backend']?.['baseUrl']||_0x495fec(0x22f),this['timeout']=_0x26f75f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x26f75f[_0x495fec(0x1a0)]?.[_0x495fec(0x1b1)]||0x3,this[_0x495fec(0x19f)]=new Map(),this[_0x495fec(0x208)]=new Map(),this[_0x495fec(0x1b2)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x495fec(0x1ad)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async['sendMessage'](_0x2bf6f1,_0x1909d9,_0x229a92={}){const _0x40b28d=a0_0x179e,_0x4dabac='req-'+Date[_0x40b28d(0x1b6)]()+'-'+Math['random']()[_0x40b28d(0x1f4)](0x24)[_0x40b28d(0x217)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x40b28d(0x1bb));await this['_checkRateLimit'](_0x2bf6f1);const _0x30a8fe=this['_formatMessagesForModel'](_0x1909d9,_0x2bf6f1,_0x229a92),_0x2c7db4={'model':_0x2bf6f1,'messages':_0x30a8fe,'options':{'max_tokens':this['modelSpecs'][_0x2bf6f1]?.['maxTokens']||0xfa0,'temperature':_0x229a92[_0x40b28d(0x1ee)]||0.7,'stream':_0x229a92[_0x40b28d(0x190)]||![]},'metadata':{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'timestamp':new Date()['toISOString']()}};_0x229a92['systemPrompt']&&(_0x2c7db4[_0x40b28d(0x1af)]=_0x229a92[_0x40b28d(0x1e7)]);this['logger']['info']('Sending\x20message\x20to\x20model:\x20'+_0x2bf6f1,{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'messageCount':Array[_0x40b28d(0x1c2)](_0x1909d9)?_0x1909d9[_0x40b28d(0x19e)]:0x1,'maxTokens':_0x2c7db4[_0x40b28d(0x22a)]});const _0xeac05e=await this[_0x40b28d(0x1de)]('/chat/completions',_0x2c7db4,_0x4dabac,{..._0x229a92,'sessionId':_0x229a92[_0x40b28d(0x21f)],'platformProvided':_0x229a92['platformProvided']||![]});return _0xeac05e[_0x40b28d(0x1f8)]&&await this[_0x40b28d(0x1b7)](_0x229a92['agentId'],_0x2bf6f1,{'prompt_tokens':_0xeac05e[_0x40b28d(0x1f8)]['prompt_tokens']||0x0,'completion_tokens':_0xeac05e[_0x40b28d(0x1f8)][_0x40b28d(0x226)]||0x0,'total_tokens':_0xeac05e[_0x40b28d(0x1f8)]['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0xeac05e['choices'][0x0]?.[_0x40b28d(0x1a6)]?.[_0x40b28d(0x211)]||'','model':_0xeac05e[_0x40b28d(0x1dd)],'tokenUsage':_0xeac05e[_0x40b28d(0x1f8)],'requestId':_0x4dabac,'finishReason':_0xeac05e[_0x40b28d(0x188)][0x0]?.[_0x40b28d(0x1ef)]};}catch(_0x538637){this['_recordFailure'](),this[_0x40b28d(0x19a)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x538637['message'],{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)],'error':_0x538637['stack']}),await this[_0x40b28d(0x21a)](_0x538637,{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)]});throw _0x538637;}}async[a0_0x150019(0x1aa)](_0x2e77c4,_0x5285ef={}){const _0x4e21c6=a0_0x150019;try{const _0x47f259=MODEL_ROUTING[_0x2e77c4['toUpperCase']()]||MODEL_ROUTING[_0x4e21c6(0x1e2)],_0x331bfe=[];for(const _0xa4ae11 of _0x47f259){const _0x544bbc=await this['_checkModelHealth'](_0xa4ae11);_0x544bbc&&_0x331bfe[_0x4e21c6(0x186)](_0xa4ae11);}if(_0x331bfe[_0x4e21c6(0x19e)]===0x0)return this[_0x4e21c6(0x19a)][_0x4e21c6(0x213)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x2e77c4+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x430023=_0x331bfe[0x0];if(_0x5285ef['preferredModel']&&_0x331bfe['includes'](_0x5285ef['preferredModel']))_0x430023=_0x5285ef['preferredModel'];else{if(_0x5285ef['complexity']==='high'&&_0x331bfe['includes'](MODELS['ANTHROPIC_OPUS']))_0x430023=MODELS[_0x4e21c6(0x1c1)];else _0x5285ef[_0x4e21c6(0x1f0)]===_0x4e21c6(0x227)&&_0x331bfe[_0x4e21c6(0x223)](MODELS['ANTHROPIC_HAIKU'])&&(_0x430023=MODELS[_0x4e21c6(0x1b9)]);}return this[_0x4e21c6(0x19a)]['info'](_0x4e21c6(0x231)+_0x2e77c4,{'selectedModel':_0x430023,'availableModels':_0x331bfe['length'],'context':_0x5285ef}),_0x430023;}catch(_0x308fe4){return this['logger'][_0x4e21c6(0x22c)]('Model\x20routing\x20failed:\x20'+_0x308fe4[_0x4e21c6(0x1a6)],{'task':_0x2e77c4,'context':_0x5285ef}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x150019(0x1e5)](_0x3d2b29,_0x4cb4ab){const _0x268de1=a0_0x150019,_0x5b7171=this[_0x268de1(0x18a)][_0x4cb4ab];if(!_0x5b7171)throw new Error(_0x268de1(0x1dc)+_0x4cb4ab);const _0x3b9073=_0x5b7171['contextWindow']*0.8;let _0x7d6070=0x0;const _0x5e081f=[],_0x5a1100=await Promise[_0x268de1(0x200)](_0x3d2b29['map'](async _0x4af32c=>({..._0x4af32c,'estimatedTokens':await this['_estimateTokens'](_0x4af32c[_0x268de1(0x211)],_0x4cb4ab)}))),_0x5a5f10=[..._0x5a1100][_0x268de1(0x1e8)]();for(const _0x17fbf1 of _0x5a5f10){if(_0x7d6070+_0x17fbf1['estimatedTokens']>_0x3b9073){if(_0x5e081f['length']===0x0){const _0x599f14=await this['_truncateMessage'](_0x17fbf1['content'],_0x3b9073);_0x5e081f['unshift']({..._0x17fbf1,'content':_0x599f14,'estimatedTokens':_0x3b9073});}break;}_0x5e081f['unshift'](_0x17fbf1),_0x7d6070+=_0x17fbf1['estimatedTokens'];}const _0x345e66=_0x5a1100['slice'](0x0,-_0x5e081f[_0x268de1(0x19e)]);if(_0x345e66['length']>0x0){const _0x17ee9b=await this['_summarizeMessages'](_0x345e66,_0x4cb4ab);_0x5e081f[_0x268de1(0x22b)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x17ee9b,'timestamp':_0x345e66[0x0]['timestamp'],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x17ee9b,_0x4cb4ab)});}return this['logger'][_0x268de1(0x1b3)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x4cb4ab,{'originalMessages':_0x3d2b29['length'],'compactizedMessages':_0x5e081f[_0x268de1(0x19e)],'estimatedTokens':_0x7d6070,'maxTokens':_0x3b9073}),_0x5e081f;}async['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d,_0x3af156){const _0x5b54b9=a0_0x150019;try{this[_0x5b54b9(0x228)]&&this[_0x5b54b9(0x228)]['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d);}catch(_0x14b366){this['logger'][_0x5b54b9(0x22c)]('Usage\x20tracking\x20failed:\x20'+_0x14b366['message']);}}async[a0_0x150019(0x21a)](_0x12bdc9,_0x1e1b4f){const _0x130fc8=a0_0x150019,_0x18aa90=this['errorHandler']?.[_0x130fc8(0x224)]?.(_0x12bdc9,_0x1e1b4f);switch(_0x12bdc9['status']||_0x12bdc9['code']){case HTTP_STATUS[_0x130fc8(0x1f2)]:this['logger'][_0x130fc8(0x22c)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x1e1b4f,'error':_0x12bdc9[_0x130fc8(0x1a6)]});throw new Error('Invalid\x20request:\x20'+_0x12bdc9['message']);case HTTP_STATUS[_0x130fc8(0x1c6)]:this['logger'][_0x130fc8(0x22c)](_0x130fc8(0x187),{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x20c));case HTTP_STATUS[_0x130fc8(0x191)]:this[_0x130fc8(0x19a)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x1e1b4f});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x130fc8(0x219)]:this[_0x130fc8(0x19a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x1d6));case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger'][_0x130fc8(0x213)](_0x130fc8(0x1d0),{'context':_0x1e1b4f}),await this['_handleRateLimit'](_0x1e1b4f);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS[_0x130fc8(0x20a)]:case HTTP_STATUS[_0x130fc8(0x1a7)]:this['logger'][_0x130fc8(0x22c)]('AI\x20service\x20unavailable',{'context':_0x1e1b4f,'status':_0x12bdc9['status']}),await this['_handleServiceUnavailable'](_0x1e1b4f);throw new Error(_0x130fc8(0x1e4));default:this[_0x130fc8(0x19a)][_0x130fc8(0x22c)](_0x130fc8(0x1f6),{'context':_0x1e1b4f,'error':_0x12bdc9['message']});throw new Error(_0x130fc8(0x1b5)+_0x12bdc9[_0x130fc8(0x1a6)]);}}[a0_0x150019(0x1ed)](_0x5e141b){const _0x45b357=a0_0x150019;this['apiKeyManager']=_0x5e141b,this['logger']?.[_0x45b357(0x1b3)](_0x45b357(0x215),{'hasManager':!!_0x5e141b});}['setAgentPool'](_0x227846){const _0x5b961e=a0_0x150019;this['agentPool']=_0x227846,this[_0x5b961e(0x19a)]?.['info'](_0x5b961e(0x20b),{'hasAgentPool':!!_0x227846});}async[a0_0x150019(0x218)](_0x5eaf42,_0x65b357={}){const _0x144d9=a0_0x150019,_0x5cb1c9=_0x144d9(0x1e0)+Date['now']()+'-'+Math[_0x144d9(0x1ea)]()[_0x144d9(0x1f4)](0x24)['substr'](0x2,0x9);try{if(this[_0x144d9(0x1cb)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x5eaf42||typeof _0x5eaf42!==_0x144d9(0x1bf)||_0x5eaf42['trim']()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x5bd1af=_0x65b357[_0x144d9(0x1dd)]||'flux-1.1-pro',_0x4b7450=_0x65b357['size']||_0x144d9(0x1a1),_0x4abf7f=_0x65b357[_0x144d9(0x207)]||'standard',_0x28a427=_0x65b357['responseFormat']||'url';this['logger']['info']('Generating\x20image\x20with\x20model:\x20'+_0x5bd1af,{'requestId':_0x5cb1c9,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'promptLength':_0x5eaf42['length']});const _0x541518={'prompt':_0x5eaf42,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'response_format':_0x28a427,'n':0x1,'metadata':{'requestId':_0x5cb1c9,'timestamp':new Date()['toISOString']()}},_0x3d3be6=await this['_makeImageAPIRequest'](_0x541518,_0x5cb1c9,{'sessionId':_0x65b357['sessionId'],'platformProvided':_0x65b357['platformProvided']||![]});return this[_0x144d9(0x212)](),{'url':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x21b)]||null,'b64_json':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x1c9)]||null,'model':_0x3d3be6['model']||_0x5bd1af,'requestId':_0x5cb1c9,'revisedPrompt':_0x3d3be6[_0x144d9(0x18e)]?.[0x0]?.[_0x144d9(0x1ca)]||_0x5eaf42};}catch(_0x3d9197){this['_recordFailure'](),this[_0x144d9(0x19a)]['error'](_0x144d9(0x1f3)+_0x3d9197['message'],{'requestId':_0x5cb1c9,'model':_0x65b357[_0x144d9(0x1dd)],'error':_0x3d9197['stack']});throw _0x3d9197;}}async['checkServiceHealth'](){const _0x22c6b0=a0_0x150019;try{const _0x397469=await this['_makeAPIRequest'](_0x22c6b0(0x19b),{},_0x22c6b0(0x1fb));return _0x397469[_0x22c6b0(0x1c3)]===_0x22c6b0(0x1f7);}catch(_0x1cf89e){return![];}}async[a0_0x150019(0x1df)](_0x1bb148,_0x1cb8ef){const _0x2d9dc0=a0_0x150019;try{if(!this['_isValidModel'](_0x1cb8ef))throw new Error(_0x2d9dc0(0x1fd)+_0x1cb8ef);let _0x3694fc=this['conversationManagers']['get'](_0x1bb148);!_0x3694fc&&(_0x3694fc=new ConversationManager(_0x1bb148,this['logger']),this[_0x2d9dc0(0x1ad)][_0x2d9dc0(0x189)](_0x1bb148,_0x3694fc));const _0x263f63=await _0x3694fc[_0x2d9dc0(0x1d1)](_0x1cb8ef),_0xc941ea=await this[_0x2d9dc0(0x1c8)]?.[_0x2d9dc0(0x194)](_0x1bb148);return _0xc941ea&&(_0xc941ea[_0x2d9dc0(0x1bd)]=_0x1cb8ef,await this[_0x2d9dc0(0x1c8)]['persistAgentState'](_0x1bb148)),this[_0x2d9dc0(0x19a)][_0x2d9dc0(0x1b3)](_0x2d9dc0(0x1d9)+_0x1bb148,{'newModel':_0x1cb8ef,'messageCount':_0x263f63[_0x2d9dc0(0x20d)][_0x2d9dc0(0x19e)]}),{'success':!![],'agentId':_0x1bb148,'newModel':_0x1cb8ef,'conversation':_0x263f63};}catch(_0x48b6ac){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0x48b6ac[_0x2d9dc0(0x1a6)],{'agentId':_0x1bb148,'newModel':_0x1cb8ef});throw _0x48b6ac;}}['_initializeModelSpecs'](){const _0x225d93=a0_0x150019,_0x3a666f={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x206)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x225d93(0x1c1)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x225d93(0x1b9)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x225d93(0x1d8)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x225d93(0x1ba)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x19d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x225d93(0x1cf)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1d3)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x225d93(0x1db),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x3a666f;}[a0_0x150019(0x230)](_0x58f9c7,_0x58d611,_0x2650ae){const _0x26e20e=a0_0x150019,_0x41b825=this[_0x26e20e(0x18a)][_0x58d611]||{'provider':_0x26e20e(0x1db)};let _0x2f2b57;typeof _0x58f9c7===_0x26e20e(0x1bf)?_0x2f2b57=[{'role':_0x26e20e(0x21c),'content':_0x58f9c7}]:_0x2f2b57=_0x58f9c7['map'](_0x48356e=>this['_formatSingleMessage'](_0x48356e,_0x58d611));switch(_0x41b825[_0x26e20e(0x1eb)]){case MODEL_PROVIDERS[_0x26e20e(0x206)]:return this[_0x26e20e(0x205)](_0x2f2b57);case MODEL_PROVIDERS['OPENAI']:return this[_0x26e20e(0x193)](_0x2f2b57);case MODEL_PROVIDERS[_0x26e20e(0x1db)]:return this[_0x26e20e(0x202)](_0x2f2b57);default:return _0x2f2b57;}}[a0_0x150019(0x18c)](_0xc01512,_0x1b5d56){const _0x2d5b47=a0_0x150019;return{'role':_0xc01512[_0x2d5b47(0x1a5)]||_0x2d5b47(0x21c),'content':_0xc01512['content'],'timestamp':_0xc01512[_0x2d5b47(0x22e)]};}[a0_0x150019(0x205)](_0x24e95f){const _0x546fa1=a0_0x150019;return _0x24e95f[_0x546fa1(0x196)](_0x2c2985=>{const _0x39bd85=_0x546fa1;if(_0x2c2985['role']===_0x39bd85(0x1af))return{'role':_0x39bd85(0x21c),'content':_0x39bd85(0x1fe)+_0x2c2985[_0x39bd85(0x211)]};return _0x2c2985;});}['_formatForOpenAI'](_0x31bc10){return _0x31bc10;}['_formatForAzure'](_0x222958){const _0x2a0fa2=a0_0x150019;return _0x222958[_0x2a0fa2(0x196)](_0x2e9df9=>({..._0x2e9df9,'content':typeof _0x2e9df9[_0x2a0fa2(0x211)]==='string'?_0x2e9df9['content']:JSON['stringify'](_0x2e9df9[_0x2a0fa2(0x211)])}));}['_isValidModel'](_0x57c17e){const _0x591de8=a0_0x150019;this[_0x591de8(0x19a)][_0x591de8(0x1a4)](_0x591de8(0x1f5),{'model':_0x57c17e,'modelType':typeof _0x57c17e});if(this[_0x591de8(0x18a)][_0x57c17e]!==undefined)return!![];return this[_0x591de8(0x19a)]['warn'](_0x591de8(0x195),{'model':_0x57c17e,'availableModels':Object[_0x591de8(0x22d)](this[_0x591de8(0x18a)])}),![];}async[a0_0x150019(0x1fa)](_0x3ca937){return!![];}async[a0_0x150019(0x209)](_0xf0064f,_0x2a6133){const _0x103a6c=a0_0x150019;return Math[_0x103a6c(0x20f)](_0xf0064f[_0x103a6c(0x19e)]/0x4);}async['_truncateMessage'](_0x229970,_0x4a5ea0){const _0x515892=a0_0x150019,_0x21937c=_0x4a5ea0*0x4;if(_0x229970[_0x515892(0x19e)]<=_0x21937c)return _0x229970;return _0x229970[_0x515892(0x1d7)](0x0,_0x21937c-0x14)+_0x515892(0x1ae);}async[a0_0x150019(0x1e9)](_0x163629,_0x190bde){const _0xfebd2e=a0_0x150019,_0x1f9e58=_0x163629[_0xfebd2e(0x196)](_0x3794a2=>_0x3794a2[_0xfebd2e(0x1a5)]+':\x20'+_0x3794a2['content'])['join']('\x0a'),_0x22487d=0x1f4;if(_0x1f9e58[_0xfebd2e(0x19e)]<=_0x22487d)return _0x1f9e58;return _0x1f9e58[_0xfebd2e(0x1d7)](0x0,_0x22487d)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x150019(0x1de)](_0x5ea211,_0x15e009,_0xdcb505,_0x45c3d1={}){const _0x1e1381=a0_0x150019,_0x114f92=_0x1e1381(0x1ff);let _0x256d0f,_0x493edf=null,_0x39b429=null;this['logger']?.[_0x1e1381(0x1b3)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x1e1381(0x1b4)],'sessionId':_0x45c3d1['sessionId'],'hasSessionId':!!_0x45c3d1['sessionId'],'optionsKeys':Object['keys'](_0x45c3d1),'model':_0x15e009[_0x1e1381(0x1dd)]});if(this[_0x1e1381(0x1b4)]&&_0x45c3d1[_0x1e1381(0x21f)]){const _0x273adf=this['apiKeyManager']['getKeysForRequest'](_0x45c3d1['sessionId'],{'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![],'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});_0x493edf=_0x273adf[_0x1e1381(0x19c)],_0x39b429=_0x273adf[_0x1e1381(0x18f)],this['logger']?.[_0x1e1381(0x1a4)]('Retrieved API keys from session manager',{'sessionId':_0x45c3d1[_0x1e1381(0x21f)],'hasLoxiaKey':!!_0x493edf,'hasVendorKey':!!_0x39b429,'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});}!_0x493edf&&_0x45c3d1['apiKey']&&(_0x493edf=_0x45c3d1[_0x1e1381(0x199)]);!_0x493edf&&this['config']['apiKey']&&(_0x493edf=this['config']['apiKey']);if(!_0x493edf)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x40ed17=_0x15e009['model'],_0x1d0f3c={'conversationId':_0xdcb505,'message':_0x15e009['messages'][_0x15e009['messages']['length']-0x1]?.['content']||'','messages':_0x15e009['messages'],'model':_0x40ed17,'requestId':_0xdcb505,'options':_0x15e009['options']||{},'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![]};_0x15e009[_0x1e1381(0x1af)]&&(_0x1d0f3c[_0x1e1381(0x1e7)]=_0x15e009[_0x1e1381(0x1af)]);_0x45c3d1['platformProvided']?_0x1d0f3c['apiKey']=_0x493edf:(_0x39b429&&(_0x1d0f3c['vendorApiKey']=_0x39b429),_0x45c3d1[_0x1e1381(0x210)]&&(_0x1d0f3c[_0x1e1381(0x210)]=_0x45c3d1['customApiKeys']),_0x1d0f3c['apiKey']=_0x493edf);for(let _0x158635=0x1;_0x158635<=this[_0x1e1381(0x1b1)];_0x158635++){try{this[_0x1e1381(0x19a)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x114f92,'model':_0x15e009[_0x1e1381(0x1dd)],'requestId':_0xdcb505,'attempt':_0x158635,'hasApiKey':!!_0x493edf});const _0x5a7be9=await fetch(_0x114f92,{'method':'POST','headers':{'Content-Type':_0x1e1381(0x1e3),'Authorization':'Bearer\x20'+_0x493edf,'X-Request-ID':_0xdcb505},'body':JSON['stringify'](_0x1d0f3c),'timeout':this[_0x1e1381(0x21d)]});if(!_0x5a7be9['ok']){const _0x52e386=await _0x5a7be9['text'](),_0x2bd809=new Error('HTTP\x20'+_0x5a7be9[_0x1e1381(0x1c3)]+':\x20'+_0x5a7be9['statusText']+(_0x52e386?'\x20-\x20'+_0x52e386:''));_0x2bd809['status']=_0x5a7be9['status'];throw _0x2bd809;}const _0x4e1642=await _0x5a7be9['json']();return{'choices':[{'message':{'content':_0x4e1642['content']||'','role':'assistant'},'finish_reason':_0x4e1642['finishReason']||'stop'}],'usage':_0x4e1642[_0x1e1381(0x1f8)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4e1642['model']||_0x15e009[_0x1e1381(0x1dd)],'id':_0x4e1642['requestId']||_0xdcb505};}catch(_0x25eb26){_0x256d0f=_0x25eb26,this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x1ac),{'attempt':_0x158635,'requestId':_0xdcb505,'error':_0x25eb26[_0x1e1381(0x1a6)],'status':_0x25eb26[_0x1e1381(0x1c3)]});if(_0x158635<this[_0x1e1381(0x1b1)]){const _0x56f1e1=Math[_0x1e1381(0x1a3)](0x2,_0x158635)*0x3e8;this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x20e)+_0x56f1e1+'ms',{'attempt':_0x158635,'requestId':_0xdcb505}),await new Promise(_0x57c1b2=>setTimeout(_0x57c1b2,_0x56f1e1));}}}this['logger']['error'](_0x1e1381(0x203),{'requestId':_0xdcb505,'error':_0x256d0f[_0x1e1381(0x1a6)]});const _0x40187b=_0x256d0f['message']&&_0x256d0f['message']['includes']('No\x20API\x20key\x20configured');if(_0x40187b)throw new Error('API\x20Configuration\x20Error:\x20'+_0x256d0f[_0x1e1381(0x1a6)]);return{'choices':[{'message':{'content':_0x1e1381(0x1e6)+_0x256d0f[_0x1e1381(0x1a6)],'role':_0x1e1381(0x1ec)},'finish_reason':_0x1e1381(0x18d)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x15e009['model'],'id':_0x1e1381(0x1f1)+_0xdcb505,'error':_0x256d0f['message']};}async[a0_0x150019(0x1cd)](_0x3ce2b9,_0x93e30a,_0x27d485={}){const _0x36df8a=a0_0x150019,_0x38dacb='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0xa44334,_0x4e0c01=null,_0x44e7b0=null;this['logger']?.[_0x36df8a(0x1b3)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x36df8a(0x1b4)],'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasSessionId':!!_0x27d485[_0x36df8a(0x21f)],'model':_0x3ce2b9[_0x36df8a(0x1dd)]});if(this['apiKeyManager']&&_0x27d485['sessionId']){const _0x4c41d2=this['apiKeyManager'][_0x36df8a(0x1c0)](_0x27d485['sessionId'],{'platformProvided':_0x27d485[_0x36df8a(0x1da)]||![],'vendor':this[_0x36df8a(0x204)](_0x3ce2b9[_0x36df8a(0x1dd)])});_0x4e0c01=_0x4c41d2[_0x36df8a(0x19c)],_0x44e7b0=_0x4c41d2['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasLoxiaKey':!!_0x4e0c01,'hasVendorKey':!!_0x44e7b0});}!_0x4e0c01&&_0x27d485['apiKey']&&(_0x4e0c01=_0x27d485[_0x36df8a(0x199)]);!_0x4e0c01&&this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]&&(_0x4e0c01=this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]);if(!_0x4e0c01)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3b149b={'prompt':_0x3ce2b9['prompt'],'model':_0x3ce2b9['model']||'azure-openai-dalle3','size':_0x3ce2b9['size'],'quality':_0x3ce2b9['quality'],'style':_0x3ce2b9[_0x36df8a(0x225)]||_0x36df8a(0x1be),'n':_0x3ce2b9['n']||0x1,'requestId':_0x93e30a};for(let _0x5de402=0x1;_0x5de402<=this['retryAttempts'];_0x5de402++){try{this[_0x36df8a(0x19a)]['info'](_0x36df8a(0x1ce),{'url':_0x38dacb,'model':_0x3ce2b9[_0x36df8a(0x1dd)],'requestId':_0x93e30a,'attempt':_0x5de402,'hasApiKey':!!_0x4e0c01});const _0x2b2bc9=await fetch(_0x38dacb,{'method':_0x36df8a(0x1c4),'headers':{'Content-Type':_0x36df8a(0x1e3),'Authorization':_0x36df8a(0x1bc)+_0x4e0c01,'X-Request-ID':_0x93e30a},'body':JSON['stringify'](_0x3b149b),'timeout':this[_0x36df8a(0x21d)]*0x2});if(!_0x2b2bc9['ok']){const _0x3d25bb=await _0x2b2bc9['text'](),_0x430e39=new Error('HTTP\x20'+_0x2b2bc9[_0x36df8a(0x1c3)]+':\x20'+_0x2b2bc9['statusText']+(_0x3d25bb?'\x20-\x20'+_0x3d25bb:''));_0x430e39['status']=_0x2b2bc9['status'];throw _0x430e39;}const _0x1ab511=await _0x2b2bc9['json']();return{'data':_0x1ab511['images']||[],'model':_0x1ab511['model']||_0x3ce2b9['model'],'created':_0x1ab511[_0x36df8a(0x197)]||Date[_0x36df8a(0x1b6)](),'usage':_0x1ab511['usage']};}catch(_0x3664a2){_0xa44334=_0x3664a2,this['logger'][_0x36df8a(0x213)](_0x36df8a(0x1d5),{'attempt':_0x5de402,'requestId':_0x93e30a,'error':_0x3664a2[_0x36df8a(0x1a6)],'status':_0x3664a2['status']});if(_0x5de402<this[_0x36df8a(0x1b1)]){const _0x2c1777=Math[_0x36df8a(0x1a3)](0x2,_0x5de402)*0x3e8;this[_0x36df8a(0x19a)]['warn'](_0x36df8a(0x20e)+_0x2c1777+'ms',{'attempt':_0x5de402,'requestId':_0x93e30a}),await new Promise(_0x2a44d8=>setTimeout(_0x2a44d8,_0x2c1777));}}}this['logger'][_0x36df8a(0x22c)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x93e30a,'error':_0xa44334[_0x36df8a(0x1a6)]});throw new Error('Image\x20generation\x20failed:\x20'+_0xa44334['message']);}async['_checkRateLimit'](_0xbcdb7f){await new Promise(_0x9671e9=>setTimeout(_0x9671e9,0x64));}async['_handleRateLimit'](_0x726a2f){const _0x1f4d84=a0_0x150019,_0x740181=0xea60;this['logger'][_0x1f4d84(0x1b3)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x740181+'ms',_0x726a2f),await new Promise(_0x171071=>setTimeout(_0x171071,_0x740181));}async[a0_0x150019(0x220)](_0xb796fc){this['_recordFailure']();const _0x4031ab=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x4031ab+'ms',_0xb796fc),await new Promise(_0x3a0db5=>setTimeout(_0x3a0db5,_0x4031ab));}['_isCircuitBreakerOpen'](){const _0x5595c8=a0_0x150019;if(!this[_0x5595c8(0x1b2)][_0x5595c8(0x1a9)])return![];const _0x54c014=Date[_0x5595c8(0x1b6)]()-this['circuitBreaker'][_0x5595c8(0x229)];if(_0x54c014>this[_0x5595c8(0x1b2)]['timeout'])return this['circuitBreaker'][_0x5595c8(0x1a9)]=![],this[_0x5595c8(0x1b2)][_0x5595c8(0x221)]=0x0,![];return!![];}['_recordFailure'](){const _0x34a3fd=a0_0x150019;this['circuitBreaker'][_0x34a3fd(0x221)]++,this[_0x34a3fd(0x1b2)][_0x34a3fd(0x229)]=Date[_0x34a3fd(0x1b6)](),this[_0x34a3fd(0x1b2)]['failures']>=this[_0x34a3fd(0x1b2)][_0x34a3fd(0x1a8)]&&(this['circuitBreaker']['isOpen']=!![],this[_0x34a3fd(0x19a)]['warn'](_0x34a3fd(0x216)));}['_resetCircuitBreaker'](){const _0x26220=a0_0x150019;this[_0x26220(0x1b2)]['failures']>0x0&&(this[_0x26220(0x1b2)]['failures']=0x0,this['circuitBreaker'][_0x26220(0x1a9)]=![],this[_0x26220(0x19a)][_0x26220(0x1b3)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x51521f){const _0xee6e66=a0_0x150019;if(!_0x51521f)return null;const _0x13f499=_0x51521f['toLowerCase']();if(_0x13f499[_0xee6e66(0x223)](_0xee6e66(0x1d2))||_0x13f499['includes']('claude'))return'anthropic';else{if(_0x13f499['includes'](_0xee6e66(0x222))||_0x13f499[_0xee6e66(0x223)]('gpt'))return _0xee6e66(0x222);else{if(_0x13f499[_0xee6e66(0x223)]('deepseek'))return _0xee6e66(0x18b);else{if(_0x13f499[_0xee6e66(0x223)]('phi'))return _0xee6e66(0x1e1);}}}return null;}}class ConversationManager{constructor(_0x54e079,_0x4665ea){const _0x26f1bb=a0_0x150019;this[_0x26f1bb(0x1fc)]=_0x54e079,this['logger']=_0x4665ea,this['conversations']=new Map();}async[a0_0x150019(0x1d1)](_0x337477){const _0x378ce6=a0_0x150019;return{'messages':[],'model':_0x337477,'lastUpdated':new Date()[_0x378ce6(0x232)]()};}}export default AIService;
@@ -1 +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
+ function a0_0x3b83(){const _0x307628=['q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','DMvUzg9Y','mtG1nde1Au1IAwnJ','z2v0','Aw5MBW','C2vZC2LVBKTLExm','mJmZndy0n1HpvwHKEG','z2v0u2vZC2LVBKTLExm','zNjVBq','mMH5qNfyza','z2v0s2v5C0zVCLjLCxvLC3q','zgvSzxrL','mtuXmJe4nhrVtM5PzG','C2L6zq','z2XVyMfSs2v5CW','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','nZq4mZCYAuzuD09S','Bg9Nz2vY','CgXHDgzVCM1qCM92AwrLza','nKjNAuvSyW','Bg94AwfbCgLlzxK','DxbKyxrLzef0','DMvUzg9YqxbPs2v5','ndK1otKZmgrLte1cqq','ndm3nNLds0Thua','Dg9ju09tDhjPBMC','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','C2v0r2XVyMfSs2v5CW','odKXmdy2Eu5cvfjX','oxHUvKH1vG','DMvUzg9Ys2v5CW'];a0_0x3b83=function(){return _0x307628;};return a0_0x3b83();}function a0_0x2834(_0x357e6f,_0x43cea9){_0x357e6f=_0x357e6f-0x13b;const _0x3b8346=a0_0x3b83();let _0x2834d3=_0x3b8346[_0x357e6f];if(a0_0x2834['RpOyaS']===undefined){var _0xf445eb=function(_0x2f01d7){const _0x1361cb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x127852='',_0x5bd500='';for(let _0x401ded=0x0,_0x586bfe,_0x27b6a5,_0x4e19b7=0x0;_0x27b6a5=_0x2f01d7['charAt'](_0x4e19b7++);~_0x27b6a5&&(_0x586bfe=_0x401ded%0x4?_0x586bfe*0x40+_0x27b6a5:_0x27b6a5,_0x401ded++%0x4)?_0x127852+=String['fromCharCode'](0xff&_0x586bfe>>(-0x2*_0x401ded&0x6)):0x0){_0x27b6a5=_0x1361cb['indexOf'](_0x27b6a5);}for(let _0x817c41=0x0,_0x124588=_0x127852['length'];_0x817c41<_0x124588;_0x817c41++){_0x5bd500+='%'+('00'+_0x127852['charCodeAt'](_0x817c41)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bd500);};a0_0x2834['joDVaY']=_0xf445eb,a0_0x2834['nTcoAk']={},a0_0x2834['RpOyaS']=!![];}const _0x2a9617=_0x3b8346[0x0],_0x1efa85=_0x357e6f+_0x2a9617,_0x576e01=a0_0x2834['nTcoAk'][_0x1efa85];return!_0x576e01?(_0x2834d3=a0_0x2834['joDVaY'](_0x2834d3),a0_0x2834['nTcoAk'][_0x1efa85]=_0x2834d3):_0x2834d3=_0x576e01,_0x2834d3;}const a0_0x569524=a0_0x2834;(function(_0x5cec48,_0x5e1f1a){const _0x476532=a0_0x2834,_0xf14ed4=_0x5cec48();while(!![]){try{const _0xcc9a26=-parseInt(_0x476532(0x140))/0x1*(parseInt(_0x476532(0x150))/0x2)+parseInt(_0x476532(0x144))/0x3+-parseInt(_0x476532(0x157))/0x4+parseInt(_0x476532(0x149))/0x5+parseInt(_0x476532(0x13b))/0x6*(parseInt(_0x476532(0x14d))/0x7)+parseInt(_0x476532(0x153))/0x8+parseInt(_0x476532(0x145))/0x9*(-parseInt(_0x476532(0x13f))/0xa);if(_0xcc9a26===_0x5e1f1a)break;else _0xf14ed4['push'](_0xf14ed4['shift']());}catch(_0x1cd194){_0xf14ed4['push'](_0xf14ed4['shift']());}}}(a0_0x3b83,0x294e3));class ApiKeyManager{constructor(_0x127852){const _0xda03bb=a0_0x2834;this[_0xda03bb(0x158)]=_0x127852,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x5bd500,_0x401ded){const _0xd6779c=a0_0x2834;if(!_0x5bd500)throw new Error('Session\x20ID\x20is\x20required');this[_0xd6779c(0x14c)]['set'](_0x5bd500,{'loxiaApiKey':_0x401ded[_0xd6779c(0x13c)]||null,'vendorKeys':_0x401ded[_0xd6779c(0x146)]||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.[_0xd6779c(0x14b)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x5bd500,'hasLoxiaKey':!!_0x401ded[_0xd6779c(0x13c)],'vendorKeys':Object['keys'](_0x401ded['vendorKeys']||{}),'timestamp':new Date()[_0xd6779c(0x141)]()});}['getSessionKeys'](_0x586bfe){const _0x25d2ea=a0_0x2834;if(!_0x586bfe)return this[_0x25d2ea(0x155)];const _0x27b6a5=this['sessionKeys'][_0x25d2ea(0x14a)](_0x586bfe);if(_0x27b6a5)return _0x27b6a5;return this['globalKeys'];}[a0_0x569524(0x151)](_0x4e19b7,_0x817c41={}){const _0x13288e=a0_0x569524,_0x124588=this[_0x13288e(0x14e)](_0x4e19b7),_0x4e54f7={'loxiaApiKey':_0x124588[_0x13288e(0x13c)],'vendorApiKey':null};return!_0x817c41[_0x13288e(0x159)]&&_0x817c41['vendor']&&_0x124588['vendorKeys']&&(_0x4e54f7[_0x13288e(0x13e)]=_0x124588[_0x13288e(0x146)][_0x817c41[_0x13288e(0x148)]]),_0x4e54f7;}['removeSessionKeys'](_0x4049f7){const _0x312ff6=a0_0x569524;if(this[_0x312ff6(0x14c)][_0x312ff6(0x152)](_0x4049f7))return this['logger']?.[_0x312ff6(0x14b)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x4049f7}),!![];return![];}[a0_0x569524(0x143)](_0x579480){const _0x59356d=a0_0x569524;this[_0x59356d(0x155)]={'loxiaApiKey':_0x579480['loxiaApiKey']||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x59356d(0x146)],..._0x579480[_0x59356d(0x146)]||{}}},this['logger']?.[_0x59356d(0x14b)](_0x59356d(0x142),{'hasLoxiaKey':!!this[_0x59356d(0x155)]['loxiaApiKey'],'vendorKeys':Object['keys'](this[_0x59356d(0x155)][_0x59356d(0x146)])});}['getActiveSessions'](){const _0x1ace71=a0_0x569524;return Array[_0x1ace71(0x14f)](this[_0x1ace71(0x14c)]['entries']())['map'](([_0x1e1c8b,_0x5c6dd0])=>({'sessionId':_0x1e1c8b,'hasLoxiaKey':!!_0x5c6dd0['loxiaApiKey'],'vendorKeys':Object['keys'](_0x5c6dd0[_0x1ace71(0x146)]||{}),'updatedAt':_0x5c6dd0[_0x1ace71(0x13d)]}));}[a0_0x569524(0x156)](_0x5ddca6=0x18*0x3c*0x3c*0x3e8){const _0x4220b9=a0_0x569524,_0x2dfda9=Date['now'](),_0x536029=[];for(const [_0x9d12c8,_0x2712ad]of this['sessionKeys']['entries']()){const _0x2bd975=_0x2dfda9-new Date(_0x2712ad['updatedAt'])['getTime']();_0x2bd975>_0x5ddca6&&_0x536029['push'](_0x9d12c8);}return _0x536029['forEach'](_0x17c7b7=>{const _0x5e90e9=a0_0x2834;this[_0x5e90e9(0x14c)][_0x5e90e9(0x152)](_0x17c7b7);}),_0x536029['length']>0x0&&this[_0x4220b9(0x158)]?.[_0x4220b9(0x14b)](_0x4220b9(0x147),{'expiredSessions':_0x536029['length'],'remainingSessions':this[_0x4220b9(0x14c)][_0x4220b9(0x154)]}),_0x536029['length'];}}export default ApiKeyManager;
@@ -1 +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_0x24ae0e=a0_0x3c07;(function(_0x246eb6,_0x4e6a4b){const _0x1e9a2f=a0_0x3c07,_0x336e47=_0x246eb6();while(!![]){try{const _0x54742c=parseInt(_0x1e9a2f(0x16b))/0x1*(-parseInt(_0x1e9a2f(0x176))/0x2)+parseInt(_0x1e9a2f(0x16c))/0x3*(parseInt(_0x1e9a2f(0x16a))/0x4)+parseInt(_0x1e9a2f(0x160))/0x5*(parseInt(_0x1e9a2f(0x14b))/0x6)+-parseInt(_0x1e9a2f(0x15d))/0x7+-parseInt(_0x1e9a2f(0x151))/0x8+-parseInt(_0x1e9a2f(0x154))/0x9+parseInt(_0x1e9a2f(0x16d))/0xa;if(_0x54742c===_0x4e6a4b)break;else _0x336e47['push'](_0x336e47['shift']());}catch(_0x2a61e2){_0x336e47['push'](_0x336e47['shift']());}}}(a0_0x67e8,0x975de));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x2f245c,_0x43c7ce){const _0x59e066=a0_0x3c07;this['config']=_0x2f245c,this['logger']=_0x43c7ce,this[_0x59e066(0x168)]=null,this[_0x59e066(0x169)]=null,this[_0x59e066(0x158)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this[_0x59e066(0x142)]=MODEL_ROUTER_CONFIG[_0x59e066(0x166)];}async['initialize'](){const _0x22c382=a0_0x3c07;try{await this[_0x22c382(0x171)](),this[_0x22c382(0x163)](),this['logger']['info']('Benchmark\x20service\x20initialized');}catch(_0x37e541){this[_0x22c382(0x14e)]['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x37e541['message']}),this[_0x22c382(0x168)]=null;}}[a0_0x24ae0e(0x146)](){const _0x2caaf7=a0_0x24ae0e;if(!this[_0x2caaf7(0x168)])return this['logger'][_0x2caaf7(0x15c)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x2caaf7(0x168)];}async['loadBenchmarks'](){const _0x1a7639=a0_0x24ae0e;if(this['isLoading']){this[_0x1a7639(0x14e)][_0x1a7639(0x153)]('Benchmark\x20loading\x20already\x20in\x20progress');return;}this['isLoading']=!![];try{const _0x3718c6=await this['_fetchFromAzureBackend']();if(_0x3718c6)this['benchmarks']=_0x3718c6,this['lastUpdated']=new Date(),this[_0x1a7639(0x14e)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x3718c6['models']?.[_0x1a7639(0x159)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x5df557){this[_0x1a7639(0x14e)]['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x5df557[_0x1a7639(0x167)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this[_0x1a7639(0x158)]=![];}}['getBenchmarkTable'](){const _0x41e97c=a0_0x24ae0e,_0x2bb1a0=this[_0x41e97c(0x146)]();return{'lastUpdated':this[_0x41e97c(0x169)]?.[_0x41e97c(0x162)]()||'unknown','models':_0x2bb1a0['models']||[],'tasks':_0x2bb1a0[_0x41e97c(0x148)]||{},'summary':this[_0x41e97c(0x177)](_0x2bb1a0)};}['needsRefresh'](){const _0x7eb59e=a0_0x24ae0e;if(!this['lastUpdated'])return!![];const _0x19a957=Date[_0x7eb59e(0x144)]()-this[_0x7eb59e(0x169)][_0x7eb59e(0x155)]();return _0x19a957>this[_0x7eb59e(0x142)];}async[a0_0x24ae0e(0x14f)](){const _0x3fca96=a0_0x24ae0e,_0x4ace61=this[_0x3fca96(0x147)]+_0x3fca96(0x15a);let _0x5c1b83=null;this[_0x3fca96(0x150)][_0x3fca96(0x14c)]&&(_0x5c1b83=this[_0x3fca96(0x150)][_0x3fca96(0x14c)]);const _0x507f5e={'method':'GET','headers':{'Content-Type':'application/json',..._0x5c1b83&&{'Authorization':'Bearer\x20'+_0x5c1b83}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x4ace61});const _0x35916e=await fetch(_0x4ace61,_0x507f5e);if(!_0x35916e['ok'])throw new Error(_0x3fca96(0x170)+_0x35916e['status']+':\x20'+_0x35916e[_0x3fca96(0x14a)]);const _0x3397d2=await _0x35916e[_0x3fca96(0x15b)]();return _0x3397d2;}[a0_0x24ae0e(0x177)](_0x2a51ff){const _0x59ffce=a0_0x24ae0e,_0xfade9d=_0x2a51ff[_0x59ffce(0x15f)]||[];return{'totalModels':_0xfade9d[_0x59ffce(0x159)],'taskCategories':Object['keys'](_0x2a51ff[_0x59ffce(0x148)]||{}),'bestForCoding':this[_0x59ffce(0x174)](_0xfade9d,_0x59ffce(0x175)),'bestForAnalysis':this['_getBestModelForTask'](_0xfade9d,_0x59ffce(0x165)),'bestForQuickTasks':this['_getBestModelForTask'](_0xfade9d,_0x59ffce(0x141)),'bestForCreative':this[_0x59ffce(0x174)](_0xfade9d,_0x59ffce(0x161)),'fastestModel':this[_0x59ffce(0x157)](_0xfade9d),'mostCostEfficient':this['_getMostCostEfficient'](_0xfade9d)};}['_getBestModelForTask'](_0x3cde1f,_0x2992dc){const _0x14f44b=a0_0x24ae0e;return _0x3cde1f[_0x14f44b(0x14d)](_0x568ac2=>_0x568ac2['tasks']&&_0x568ac2['tasks'][_0x2992dc])['sort']((_0x5a3b5e,_0x4fa569)=>(_0x4fa569[_0x14f44b(0x148)][_0x2992dc][_0x14f44b(0x143)]||0x0)-(_0x5a3b5e['tasks'][_0x2992dc]['score']||0x0))[0x0]?.[_0x14f44b(0x145)]||_0x14f44b(0x152);}['_getFastestModel'](_0x138801){const _0x154a76=a0_0x24ae0e,_0x27d6fa={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x138801['sort']((_0x36af2d,_0x22e3fc)=>{const _0x1314a2=a0_0x3c07,_0x4589a3=Math[_0x1314a2(0x15e)](...Object['values'](_0x36af2d[_0x1314a2(0x148)]||{})[_0x1314a2(0x16f)](_0x2eceec=>_0x27d6fa[_0x2eceec[_0x1314a2(0x149)]]||0x0)),_0x399339=Math[_0x1314a2(0x15e)](...Object[_0x1314a2(0x164)](_0x22e3fc[_0x1314a2(0x148)]||{})[_0x1314a2(0x16f)](_0x24d230=>_0x27d6fa[_0x24d230['speed']]||0x0));return _0x399339-_0x4589a3;})[0x0]?.[_0x154a76(0x145)]||_0x154a76(0x152);}[a0_0x24ae0e(0x172)](_0x57943e){const _0x2b1304=a0_0x24ae0e,_0x22655a={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x57943e['sort']((_0x38936f,_0x115e31)=>{const _0x3520aa=a0_0x3c07,_0xb12857=Math[_0x3520aa(0x15e)](...Object[_0x3520aa(0x164)](_0x38936f[_0x3520aa(0x148)]||{})['map'](_0x1e54eb=>_0x22655a[_0x1e54eb[_0x3520aa(0x173)]]||0x0)),_0x53f5b1=Math['max'](...Object['values'](_0x115e31[_0x3520aa(0x148)]||{})['map'](_0xe37166=>_0x22655a[_0xe37166['cost']]||0x0));return _0x53f5b1-_0xb12857;})[0x0]?.['name']||_0x2b1304(0x152);}['_scheduleRefresh'](){setInterval(async()=>{const _0x338ab5=a0_0x3c07;this['needsRefresh']()&&(this['logger'][_0x338ab5(0x153)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this['refreshInterval']);}async[a0_0x24ae0e(0x156)](){const _0x10f18a=a0_0x24ae0e;this[_0x10f18a(0x14e)]['info'](_0x10f18a(0x16e)),await this[_0x10f18a(0x171)]();}['getStatus'](){const _0x4c073d=a0_0x24ae0e;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x4c073d(0x162)]()||null,'source':this[_0x4c073d(0x168)]?.['source']||_0x4c073d(0x152),'modelCount':this[_0x4c073d(0x168)]?.[_0x4c073d(0x15f)]?.['length']||0x0,'isLoading':this[_0x4c073d(0x158)],'needsRefresh':this['needsRefresh']()};}}function a0_0x3c07(_0xfd4f6a,_0x54bffe){_0xfd4f6a=_0xfd4f6a-0x141;const _0x67e8e4=a0_0x67e8();let _0x3c0741=_0x67e8e4[_0xfd4f6a];if(a0_0x3c07['jvkLXK']===undefined){var _0x5122e5=function(_0x1ccb0d){const _0x20d898='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f245c='',_0x43c7ce='';for(let _0x37e541=0x0,_0x3718c6,_0x5df557,_0x2bb1a0=0x0;_0x5df557=_0x1ccb0d['charAt'](_0x2bb1a0++);~_0x5df557&&(_0x3718c6=_0x37e541%0x4?_0x3718c6*0x40+_0x5df557:_0x5df557,_0x37e541++%0x4)?_0x2f245c+=String['fromCharCode'](0xff&_0x3718c6>>(-0x2*_0x37e541&0x6)):0x0){_0x5df557=_0x20d898['indexOf'](_0x5df557);}for(let _0x19a957=0x0,_0x4ace61=_0x2f245c['length'];_0x19a957<_0x4ace61;_0x19a957++){_0x43c7ce+='%'+('00'+_0x2f245c['charCodeAt'](_0x19a957)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c7ce);};a0_0x3c07['cQFRnH']=_0x5122e5,a0_0x3c07['aIigre']={},a0_0x3c07['jvkLXK']=!![];}const _0x2b1127=_0x67e8e4[0x0],_0x110cee=_0xfd4f6a+_0x2b1127,_0x2b3d68=a0_0x3c07['aIigre'][_0x110cee];return!_0x2b3d68?(_0x3c0741=a0_0x3c07['cQFRnH'](_0x3c0741),a0_0x3c07['aIigre'][_0x110cee]=_0x3c0741):_0x3c0741=_0x2b3d68,_0x3c0741;}function a0_0x67e8(){const _0x1652c3=['yw5HBhLZAxm','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BwvZC2fNzq','yMvUy2HTyxjRCW','BgfZDfvWzgf0zwq','nfjeEw9QEa','mti2mtq1reT5D29v','mtK0mtaWnKjcAgnWvG','mtCWmZi0mJbMzMPdyuq','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','BwfW','sfruuca','Bg9HzejLBMnOBwfYA3m','x2DLDe1VC3rdB3n0rwzMAwnPzw50','y29ZDa','x2DLDejLC3rnB2rLBezVCLrHC2S','y29KAw5N','mKf6AhDyCW','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','CxvPy2STDgfZA3m','CMvMCMvZAeLUDgvYDMfS','C2nVCMu','BM93','BMfTzq','z2v0qMvUy2HTyxjRCW','yxP1CMvcywnRzw5KvxjS','DgfZA3m','C3bLzwq','C3rHDhvZvgv4Da','ndiZmta4nKvyAgnQzq','yxbPs2v5','zMLSDgvY','Bg9Nz2vY','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','y29UzMLN','mJq5mdKWnennDMjfrG','Dw5RBM93BG','zgvIDwC','mta3nJK3nJbrwK9lvM8','z2v0vgLTzq','zM9Yy2vszwzYzxnO','x2DLDezHC3rLC3rnB2rLBa','AxnmB2fKAw5N','BgvUz3rO','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','ANnVBG','zxjYB3i','ntyWodK1m3HAt3nwwq','Bwf4','Bw9KzwXZ','nvHktMTmwq','y3jLyxrPDMu','Dg9ju09tDhjPBMC','x3nJAgvKDwXLuMvMCMvZAa','DMfSDwvZ'];a0_0x67e8=function(){return _0x1652c3;};return a0_0x67e8();}export default BenchmarkService;
@@ -1 +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_0x53020c=a0_0x48be;function a0_0x22dd(){const _0x2f0b48=['y2HLy2TuAhjLC2HVBgrbBgvYDhm','D2vLA2X5','Dg90ywW','z2v0rgf0zq','y29UDMvYDfrVq1nw','z2v0vxnHz2vuCMvUzhm','ywXLCNrZ','Dg90ywXFDg9Rzw5Z','y2vPBa','z2v0tw9KzwXvC2fNzq','refjtfK','yNLnB2rLBa','y29TCgXLDgLVBL90B2TLBNm','qwDLBNq','Dg9Wtw9KzwXZ','Bw9KzwXjza','yNvKz2v0CW','z2v0v2vLA051BwjLCG','z2v0tw9UDgG','DxbKyxrLvxnHz2vfBNrYEq','DhjHy2TvC2fNzq','CMvXDwvZDhm','mZu1otG3mxjsCgHTvG','C2f2zvvZywDLrgf0yq','zNjVBq','uMvXDwvZDhm','CM91BMq','yNLbz2vUDa','vg9Rzw5Z','DxnHz2u','CgfKu3rHCNq','BwfW','zgfPBhLbDMvYywDLCW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y3jLyxrLrw1WDhLvC2fNzq','y29ZDa','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','y29ZDej5rgf5','y2HLy2TuAhjLC2HVBgq','vxnHz2uGzgf0ysbZyxzLza','Dw5ZAgLMDa','DgHYzxnOB2XKx3jLywnOzwq','C2vUzfrOCMvZAg9SzefSzxj0','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','sw52ywXPzcbWzxjPB2q6ia','zgfPBhK','z2v0v2vLA0TLEq','y2HLy2TcDwrNzxrmAw1PDhm','Dg9WqwDLBNrZ','Dg9ju09tDhjPBMC','zM9YrwfJAa','C2v0','Bw9UDgHSEq','Dg9Rzw5ZqNLeyxK','mJKYmZK5nu5kANr4DW','zw1PDa','qNvKz2v0igXPBwL0igv4y2vLzgvK','rgfPBhK','ugvYAw9K','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','ndyZntaWnuTprKHXAa','yNvKz2v0x2v4y2vLzgvK','qNvKz2v0igXPBwL0CYb1CgrHDgvK','Dg9tDhjPBMC','vxnHz2uGDhjHy2TLza','Aw5MBW','z2v0rgf5','AgfZ','Bg9Nz2vY','z2v0rgf5s2v5','C2v0DxbqzxjPB2rPy1nHDMu','mtiZodyYohHVtfj3ta','D2fYBG','ChvZAa','nti5mdG4wNrYyvfw','z2v0tw9UDgHlzxK','C29YDa','AM9PBG','C2vUzej1zgDLDefSzxj0','Dg9Rzw5Z','z2v0vxnHz2u','tu9oveHmwq','odC5mJi2u3fdy1jX','z2v0','mZe4ndeYogP2su16qG','C2v0rgf0zq','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','zw50CMLLCW','q29ZDa','y29UzMLN','rMfPBgvKihrVihrYywnRihvZywDL','Bwf4'];a0_0x22dd=function(){return _0x2f0b48;};return a0_0x22dd();}function a0_0x48be(_0xfdc79b,_0x1fa0db){_0xfdc79b=_0xfdc79b-0xc8;const _0x22ddae=a0_0x22dd();let _0x48be08=_0x22ddae[_0xfdc79b];if(a0_0x48be['vZGCRl']===undefined){var _0x156344=function(_0x350194){const _0x1fc3f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5dff3f='',_0x18570b='';for(let _0x3ea41b=0x0,_0x52d4fd,_0x3fdac0,_0x4a1efa=0x0;_0x3fdac0=_0x350194['charAt'](_0x4a1efa++);~_0x3fdac0&&(_0x52d4fd=_0x3ea41b%0x4?_0x52d4fd*0x40+_0x3fdac0:_0x3fdac0,_0x3ea41b++%0x4)?_0x5dff3f+=String['fromCharCode'](0xff&_0x52d4fd>>(-0x2*_0x3ea41b&0x6)):0x0){_0x3fdac0=_0x1fc3f9['indexOf'](_0x3fdac0);}for(let _0xe3ef3d=0x0,_0x13ca66=_0x5dff3f['length'];_0xe3ef3d<_0x13ca66;_0xe3ef3d++){_0x18570b+='%'+('00'+_0x5dff3f['charCodeAt'](_0xe3ef3d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18570b);};a0_0x48be['nlLSBJ']=_0x156344,a0_0x48be['cGfVGO']={},a0_0x48be['vZGCRl']=!![];}const _0x116055=_0x22ddae[0x0],_0x46f3c2=_0xfdc79b+_0x116055,_0x5c0415=a0_0x48be['cGfVGO'][_0x46f3c2];return!_0x5c0415?(_0x48be08=a0_0x48be['nlLSBJ'](_0x48be08),a0_0x48be['cGfVGO'][_0x46f3c2]=_0x48be08):_0x48be08=_0x5c0415,_0x48be08;}(function(_0x57fea3,_0x5136a){const _0x5d15fd=a0_0x48be,_0x24779c=_0x57fea3();while(!![]){try{const _0x44018f=-parseInt(_0x5d15fd(0xff))/0x1+parseInt(_0x5d15fd(0xf7))/0x2+parseInt(_0x5d15fd(0xe3))/0x3+parseInt(_0x5d15fd(0x101))/0x4+-parseInt(_0x5d15fd(0xe9))/0x5+-parseInt(_0x5d15fd(0xf4))/0x6+parseInt(_0x5d15fd(0x11f))/0x7;if(_0x44018f===_0x5136a)break;else _0x24779c['push'](_0x24779c['shift']());}catch(_0x4aff49){_0x24779c['push'](_0x24779c['shift']());}}}(a0_0x22dd,0x81ab9));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x5dff3f,_0x18570b){const _0x16f584=a0_0x48be;this[_0x16f584(0x106)]=_0x5dff3f||{},this['logger']=_0x18570b,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x16f584(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x16f584(0xfe)]},this[_0x16f584(0x10f)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x16f584(0xf3)]();}[a0_0x53020c(0x11d)](_0x3ea41b,_0x52d4fd,_0x3fdac0){const _0x4d2314=a0_0x53020c;try{const _0x4a1efa=this['calculateCost'](_0x52d4fd,_0x3fdac0),_0xe3ef3d=new Date(),_0x13ca66=this['getDayKey'](_0xe3ef3d),_0x3587e3=this['getWeekKey'](_0xe3ef3d),_0x3fb589=this[_0x4d2314(0xf8)](_0xe3ef3d);this['initializeUsageEntry'](this['usage']['daily'],_0x13ca66),this[_0x4d2314(0xce)](this[_0x4d2314(0xca)][_0x4d2314(0x10a)],_0x3587e3),this[_0x4d2314(0xce)](this['usage'][_0x4d2314(0xe1)],_0x3fb589);const _0x1a8f69={'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0['total_tokens'],'cost':_0x4a1efa,'timestamp':_0xe3ef3d[_0x4d2314(0xde)]()};return this[_0x4d2314(0x11c)](this['usage'][_0x4d2314(0xda)][_0x4d2314(0x100)](_0x13ca66),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0x10a)][_0x4d2314(0x100)](_0x3587e3),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0xe1)][_0x4d2314(0x100)](_0x3fb589),_0x1a8f69),this['usage'][_0x4d2314(0x10b)]['tokens']+=_0x3fdac0['total_tokens'],this[_0x4d2314(0xca)]['total'][_0x4d2314(0xd0)]+=_0x4a1efa,this['usage'][_0x4d2314(0x10b)]['requests']+=0x1,this['checkBudgetLimits'](_0x13ca66,_0x3587e3,_0x3fb589),this[_0x4d2314(0xf1)][_0x4d2314(0xee)](_0x4d2314(0xed),{'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0[_0x4d2314(0x110)],'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)][_0x4d2314(0x10b)]['cost']}),{'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)]['total']['cost'],'totalTokens':this[_0x4d2314(0xca)][_0x4d2314(0x10b)][_0x4d2314(0xfc)],'dailyUsage':this['usage']['daily'][_0x4d2314(0x100)](_0x13ca66),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5d2c06){this[_0x4d2314(0xf1)]['error'](_0x4d2314(0x107),{'error':_0x5d2c06['message'],'agentId':_0x3ea41b,'modelId':_0x52d4fd});throw _0x5d2c06;}}['calculateCost'](_0x1fbe48,_0x38ae65){const _0x1607d7=a0_0x53020c,_0x1ff12b=COST_PER_TOKEN[_0x1fbe48];if(!_0x1ff12b)return this[_0x1607d7(0xf1)]['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x1fbe48}),0x0;const _0x58add8=(_0x38ae65['prompt_tokens']||0x0)*_0x1ff12b['input'],_0x1239b6=(_0x38ae65[_0x1607d7(0x115)]||0x0)*_0x1ff12b['output'];return _0x58add8+_0x1239b6;}['getUsage'](_0x5ed932=a0_0x53020c(0xda),_0x4081be=new Date()){const _0x42b4d1=a0_0x53020c;switch(_0x5ed932){case _0x42b4d1(0xda):return this[_0x42b4d1(0xca)]['daily']['get'](this['getDayKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10a):return this[_0x42b4d1(0xca)]['weekly']['get'](this[_0x42b4d1(0xdb)](_0x4081be))||this[_0x42b4d1(0xcf)]();case'monthly':return this[_0x42b4d1(0xca)]['monthly']['get'](this['getMonthKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10b):return{...this[_0x42b4d1(0xca)]['total']};default:throw new Error(_0x42b4d1(0xd9)+_0x5ed932);}}['getAgentUsage'](_0x4ff57c,_0xf85162=a0_0x53020c(0xda)){const _0x12993e=a0_0x53020c,_0x1f8db3=this[_0x12993e(0xfd)](_0xf85162);return _0x1f8db3[_0x12993e(0xc8)]?.[_0x4ff57c]||this['createEmptyUsage']();}[a0_0x53020c(0x112)](_0x34a4cb,_0x13f4bf='daily'){const _0x539404=this['getUsage'](_0x13f4bf);return _0x539404['byModel']?.[_0x34a4cb]||this['createEmptyUsage']();}['setBudgets'](_0x5c7115){const _0x2df3e1=a0_0x53020c;if(_0x5c7115[_0x2df3e1(0xda)]!==undefined)this[_0x2df3e1(0x119)]['daily']=_0x5c7115[_0x2df3e1(0xda)];if(_0x5c7115[_0x2df3e1(0x10a)]!==undefined)this[_0x2df3e1(0x119)]['weekly']=_0x5c7115[_0x2df3e1(0x10a)];if(_0x5c7115[_0x2df3e1(0xe1)]!==undefined)this[_0x2df3e1(0x119)]['monthly']=_0x5c7115[_0x2df3e1(0xe1)];this['logger'][_0x2df3e1(0xee)](_0x2df3e1(0xeb),this[_0x2df3e1(0x119)]),this[_0x2df3e1(0x120)]();}['getRemainingBudget'](){const _0x189a84=a0_0x53020c,_0x80237a=new Date(),_0x38b281=this[_0x189a84(0xfd)](_0x189a84(0xda),_0x80237a),_0x48e694=this[_0x189a84(0xfd)](_0x189a84(0x10a),_0x80237a),_0x29b61f=this[_0x189a84(0xfd)](_0x189a84(0xe1),_0x80237a);return{'daily':Math['max'](0x0,this['budgets'][_0x189a84(0xda)]-_0x38b281['cost']),'weekly':Math[_0x189a84(0x108)](0x0,this[_0x189a84(0x119)]['weekly']-_0x48e694[_0x189a84(0xd0)]),'monthly':Math['max'](0x0,this[_0x189a84(0x119)][_0x189a84(0xe1)]-_0x29b61f[_0x189a84(0xd0)])};}['isWithinBudget'](_0x4a7988=a0_0x53020c(0xda)){const _0x2c5e33=a0_0x53020c,_0x32f9af=this[_0x2c5e33(0xfd)](_0x4a7988),_0x430619=this['budgets'][_0x4a7988];return _0x32f9af[_0x2c5e33(0xd0)]<=_0x430619;}[a0_0x53020c(0x10e)](_0x37b7da=0x1e){const _0x541b3b=a0_0x53020c,_0x521328={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xba2dcf=new Date();let _0x41710b=0x0,_0x42484b=0x0,_0x15c99a=0x0;const _0x42875b=new Map(),_0x87637d=new Map();for(let _0x5ce57f=0x0;_0x5ce57f<_0x37b7da;_0x5ce57f++){const _0xd08859=new Date(_0xba2dcf);_0xd08859[_0x541b3b(0x102)](_0xd08859[_0x541b3b(0x10c)]()-_0x5ce57f);const _0x38b5bd=this[_0x541b3b(0xf2)](_0xd08859),_0x59cb1c=this[_0x541b3b(0xca)]['daily'][_0x541b3b(0x100)](_0x38b5bd);_0x59cb1c?(_0x41710b+=_0x59cb1c[_0x541b3b(0xd0)],_0x42484b+=_0x59cb1c['tokens'],_0x15c99a+=_0x59cb1c[_0x541b3b(0x11e)],_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':_0x59cb1c['cost']}),_0x521328['tokensByDay']['unshift']({'date':_0x38b5bd,'tokens':_0x59cb1c[_0x541b3b(0xfc)]}),Object[_0x541b3b(0x104)](_0x59cb1c['byAgent']||{})['forEach'](([_0x502608,_0x2b1d13])=>{!_0x42875b['has'](_0x502608)&&_0x42875b['set'](_0x502608,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x9ab9ff=_0x42875b['get'](_0x502608);_0x9ab9ff['cost']+=_0x2b1d13['cost'],_0x9ab9ff['tokens']+=_0x2b1d13['tokens'],_0x9ab9ff['requests']+=_0x2b1d13['requests'];}),Object[_0x541b3b(0x104)](_0x59cb1c[_0x541b3b(0x114)]||{})[_0x541b3b(0xdf)](([_0x40df86,_0x253fb1])=>{const _0x16957e=_0x541b3b;!_0x87637d[_0x16957e(0xf0)](_0x40df86)&&_0x87637d['set'](_0x40df86,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x474020=_0x87637d['get'](_0x40df86);_0x474020['cost']+=_0x253fb1[_0x16957e(0xd0)],_0x474020['tokens']+=_0x253fb1[_0x16957e(0xfc)],_0x474020['requests']+=_0x253fb1['requests'];})):(_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':0x0}),_0x521328[_0x541b3b(0xe2)][_0x541b3b(0xd5)]({'date':_0x38b5bd,'tokens':0x0}));}return _0x521328['dailyAverages']['cost']=_0x41710b/_0x37b7da,_0x521328[_0x541b3b(0xcd)]['tokens']=_0x42484b/_0x37b7da,_0x521328[_0x541b3b(0xcd)][_0x541b3b(0x11e)]=_0x15c99a/_0x37b7da,_0x521328[_0x541b3b(0xdd)]=Array[_0x541b3b(0x121)](_0x42875b[_0x541b3b(0x104)]())[_0x541b3b(0xcc)](([_0xfbb889,_0x1e6421])=>({'id':_0xfbb889,..._0x1e6421}))[_0x541b3b(0xf9)]((_0x2fe089,_0x35ad4c)=>_0x35ad4c['cost']-_0x2fe089['cost'])['slice'](0x0,0xa),_0x521328[_0x541b3b(0x117)]=Array[_0x541b3b(0x121)](_0x87637d['entries']())['map'](([_0x1adf3c,_0x4ca08a])=>({'id':_0x1adf3c,..._0x4ca08a}))[_0x541b3b(0xf9)]((_0x580d49,_0xbb72f1)=>_0xbb72f1['cost']-_0x580d49['cost'])['slice'](0x0,0xa),_0x521328;}['exportUsageData'](_0x322a42='json',_0x32cf31=null,_0x45b232=null){const _0x27de47=a0_0x53020c,_0x1bf2a7={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x21f41f=(_0x15a042,_0x3b4080)=>{const _0x345ca4={};return _0x15a042['forEach']((_0x38852a,_0x3456fb)=>{const _0x43e04e=_0x3b4080(_0x3456fb);(!_0x32cf31||_0x43e04e>=_0x32cf31)&&(!_0x45b232||_0x43e04e<=_0x45b232)&&(_0x345ca4[_0x3456fb]=_0x38852a);}),_0x345ca4;};_0x32cf31||_0x45b232?(_0x1bf2a7['daily']=_0x21f41f(this[_0x27de47(0xca)]['daily'],_0x357ecf=>new Date(_0x357ecf)),_0x1bf2a7[_0x27de47(0x10a)]=_0x21f41f(this['usage']['weekly'],_0xe06d6f=>new Date(_0xe06d6f)),_0x1bf2a7['monthly']=_0x21f41f(this['usage']['monthly'],_0xd27380=>new Date(_0xd27380+'-01'))):(this['usage']['daily']['forEach']((_0x54d917,_0x22c747)=>_0x1bf2a7[_0x27de47(0xda)][_0x22c747]=_0x54d917),this['usage'][_0x27de47(0x10a)]['forEach']((_0x2ef664,_0x5e652b)=>_0x1bf2a7[_0x27de47(0x10a)][_0x5e652b]=_0x2ef664),this[_0x27de47(0xca)][_0x27de47(0xe1)]['forEach']((_0x2d2c3e,_0x2afcbd)=>_0x1bf2a7['monthly'][_0x2afcbd]=_0x2d2c3e));if(_0x322a42==='csv')return this[_0x27de47(0x10d)](_0x1bf2a7);return JSON['stringify'](_0x1bf2a7,null,0x2);}[a0_0x53020c(0xce)](_0x28e727,_0xefe136){const _0x1f82cc=a0_0x53020c;!_0x28e727[_0x1f82cc(0xf0)](_0xefe136)&&_0x28e727[_0x1f82cc(0xe0)](_0xefe136,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x152c93,_0xb39eb8){const _0x1b232d=a0_0x53020c;_0x152c93['cost']+=_0xb39eb8[_0x1b232d(0xd0)],_0x152c93['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['requests']+=0x1,!_0x152c93['byAgent'][_0xb39eb8['agentId']]&&(_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0x11e)]+=0x1,!_0x152c93[_0x1b232d(0x114)][_0xb39eb8[_0x1b232d(0x118)]]&&(_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93['byModel'][_0xb39eb8['modelId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['byModel'][_0xb39eb8['modelId']][_0x1b232d(0x11e)]+=0x1;}[a0_0x53020c(0xdc)](_0x109339,_0x382313,_0x3dd419){const _0x3de2be=a0_0x53020c,_0x3300cc=this[_0x3de2be(0xca)]['daily']['get'](_0x109339),_0x430e0a=this['usage'][_0x3de2be(0x10a)][_0x3de2be(0x100)](_0x382313),_0x3bf67d=this['usage']['monthly']['get'](_0x3dd419);_0x3300cc[_0x3de2be(0xd0)]>this['budgets']['daily']&&this['sendBudgetAlert']('daily',_0x3300cc[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xda)]),_0x430e0a[_0x3de2be(0xd0)]>this[_0x3de2be(0x119)]['weekly']&&this['sendBudgetAlert'](_0x3de2be(0x10a),_0x430e0a[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0x10a)]),_0x3bf67d['cost']>this['budgets']['monthly']&&this[_0x3de2be(0xfb)](_0x3de2be(0xe1),_0x3bf67d[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xe1)]),this['checkThresholdAlerts'](_0x3300cc,_0x430e0a,_0x3bf67d);}[a0_0x53020c(0x109)](_0x243778,_0x256408,_0x466f97){const _0x56b518=a0_0x53020c,_0x468489=this[_0x56b518(0x10f)]['thresholds'];this[_0x56b518(0xd3)](_0x56b518(0xda),_0x243778['cost'],this['budgets'][_0x56b518(0xda)],_0x468489),this['checkThreshold']('weekly',_0x256408[_0x56b518(0xd0)],this[_0x56b518(0x119)][_0x56b518(0x10a)],_0x468489),this[_0x56b518(0xd3)]('monthly',_0x466f97[_0x56b518(0xd0)],this['budgets'][_0x56b518(0xe1)],_0x468489);}[a0_0x53020c(0xd3)](_0xd17774,_0xa6a50c,_0x4467ee,_0x3f4635){const _0x52b590=a0_0x53020c,_0x2640bc=_0xa6a50c/_0x4467ee*0x64;for(const _0x3f4508 of _0x3f4635){if(_0x2640bc>=_0x3f4508){const _0x4aec93=_0xd17774+'_'+_0x3f4508,_0x1f6665=this[_0x52b590(0x10f)]['lastAlertTimes']['get'](_0x4aec93),_0x10e1b5=Date['now']();(!_0x1f6665||_0x10e1b5-_0x1f6665>0x36ee80)&&(this['sendThresholdAlert'](_0xd17774,_0x2640bc,_0x3f4508,_0xa6a50c,_0x4467ee),this['alerts']['lastAlertTimes']['set'](_0x4aec93,_0x10e1b5));break;}}}[a0_0x53020c(0xfb)](_0x30fdd3,_0x1c576c,_0x1b96e5){const _0x24e626=a0_0x53020c;this[_0x24e626(0xf1)][_0x24e626(0xf5)](_0x24e626(0xe5),{'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':_0x24e626(0xea),'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5});}[a0_0x53020c(0xd7)](_0x907ff1,_0x5379bb,_0x3c491b,_0x527d2e,_0x5c3396){const _0x159f88=a0_0x53020c;this['logger'][_0x159f88(0xf5)](_0x159f88(0x103),{'period':_0x907ff1,'percentage':Math[_0x159f88(0x123)](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396}),typeof process!=='undefined'&&process['emit']&&process[_0x159f88(0xe4)]('budgetAlert',{'type':_0x159f88(0xd6),'period':_0x907ff1,'percentage':Math['round'](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396});}[a0_0x53020c(0xf2)](_0x5f0ed3){return _0x5f0ed3['toISOString']()['split']('T')[0x0];}[a0_0x53020c(0xdb)](_0x44ce08){const _0x32f77f=a0_0x53020c,_0x25ac6e=_0x44ce08['getFullYear'](),_0x1fb445=this[_0x32f77f(0x11a)](_0x44ce08);return _0x25ac6e+'-W'+_0x1fb445[_0x32f77f(0xec)]()['padStart'](0x2,'0');}[a0_0x53020c(0xf8)](_0x55591c){const _0x184692=a0_0x53020c,_0xd852d8=_0x55591c['getFullYear'](),_0x3e3c78=_0x55591c[_0x184692(0x11b)]()+0x1;return _0xd852d8+'-'+_0x3e3c78[_0x184692(0xec)]()[_0x184692(0xcb)](0x2,'0');}[a0_0x53020c(0x11a)](_0x513f8f){const _0x2079d3=a0_0x53020c,_0x396117=new Date(_0x513f8f['getFullYear'](),0x0,0x1),_0x3c8cdc=(_0x513f8f-_0x396117)/0x5265c00;return Math[_0x2079d3(0x111)]((_0x3c8cdc+_0x396117[_0x2079d3(0xef)]()+0x1)/0x7);}['convertToCSV'](_0x107ed4){const _0x4c578a=a0_0x53020c,_0x31438d=[];return _0x31438d['push']([_0x4c578a(0xe7),'Date',_0x4c578a(0x105),_0x4c578a(0xc9),_0x4c578a(0x122),_0x4c578a(0x116),'Model']),Object['entries'](_0x107ed4[_0x4c578a(0xda)])[_0x4c578a(0xdf)](([_0x1ae115,_0x17db48])=>{const _0x4ffb4f=_0x4c578a;_0x31438d[_0x4ffb4f(0xf6)]([_0x4ffb4f(0xe6),_0x1ae115,_0x17db48[_0x4ffb4f(0xd0)],_0x17db48[_0x4ffb4f(0xfc)],_0x17db48['requests'],'','']),Object[_0x4ffb4f(0x104)](_0x17db48[_0x4ffb4f(0xc8)]||{})['forEach'](([_0x43653d,_0xfd2144])=>{const _0x36887e=_0x4ffb4f;_0x31438d['push'](['Daily',_0x1ae115,_0xfd2144['cost'],_0xfd2144[_0x36887e(0xfc)],_0xfd2144['requests'],_0x43653d,'']);});}),_0x31438d['map'](_0x429aa5=>_0x429aa5[_0x4c578a(0xfa)](','))['join']('\x0a');}['loadUsageData'](){const _0x578391=a0_0x53020c;try{this['logger'][_0x578391(0xee)](_0x578391(0xd8));}catch(_0x483a4f){this['logger']['error'](_0x578391(0xd1),{'error':_0x483a4f['message']});}}[a0_0x53020c(0x120)](){const _0x347f92=a0_0x53020c;try{this[_0x347f92(0xf1)]['debug'](_0x347f92(0xd4));}catch(_0x572709){this['logger']['error'](_0x347f92(0xe8),{'error':_0x572709['message']});}}[a0_0x53020c(0xf3)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
@@ -1 +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_0x14a836=a0_0x3f03;function a0_0x5e9c(){const _0xaba3b0=['cIaGpc9MAwXLpG','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','zM9YBwf0sw1Hz2vgAwXL','s0iIig1Vzgu9iMnVBNrLBNqIpGO','yxr0ywnOBwvUDfnLCNzPy2u','zMLSzuLK','mJy0otKWEe1TuvPm','BwvZC2fNzq','Dg9Rzw5fC3rPBwf0zq','zM9YBwf0qNL0zxm','C2L6zq','zM9YBwf0q29UDgvUDezPBgu','zxn0Aw1HDgvKvg9Rzw5Z','mtqYndKWvLzRrhbc','Dgv4Da','Bg9Nz2vY','mJK1nZjezfHXEgm','z2v0qwn0AxzLqxr0ywnOBwvUDhm','zM9YBwf0vgv4DezPBgu','yNvPBgreEw5HBwLJq29UDgv4Da','BgvUz3rO','mJyWndeYuKvTEfPY','ChvZAa','mcbcExrLCW','zxn0Aw1HDgvuB3rHBfrVA2vUCW','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','zMXVB3i','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','Bg9N','zM9YBwf0uMvMzxjLBMnLrMLSzq','mtmYExLet2v2','ica8zMLSzsbUyw1Lpsi','zMLSzxm','Aw1Hz2u','mJfWBNfsDNa','nZyWnJrzAgzIvxm','iIaVpG','mJC5ode2mhzsChbPta','mtfNDwnnCu0','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIb0ExbLpsi','odHpDu5sAKu','CgrM','y29UDgvUDa','CMvMzxjLBMnL','CMvWBgfJzq','Dg9gAxHLza','z2v0qxr0ywnOBwvUDenVBNrLBNq','Aw5PDgLHBgL6zq','zxnJyxbLwg1S','iIbWyxrOpsi','mtbbwxPor00','iIbZAxPLpsi','Bw9Kzq','nZuZotnWrNPpD04','Cg93'];a0_0x5e9c=function(){return _0xaba3b0;};return a0_0x5e9c();}(function(_0x153b72,_0x2d353b){const _0x255e99=a0_0x3f03,_0x56337e=_0x153b72();while(!![]){try{const _0x19a33b=-parseInt(_0x255e99(0x199))/0x1*(-parseInt(_0x255e99(0x1bb))/0x2)+parseInt(_0x255e99(0x1b1))/0x3+-parseInt(_0x255e99(0x196))/0x4*(-parseInt(_0x255e99(0x1a6))/0x5)+-parseInt(_0x255e99(0x1c0))/0x6*(-parseInt(_0x255e99(0x195))/0x7)+-parseInt(_0x255e99(0x19c))/0x8*(-parseInt(_0x255e99(0x1a9))/0x9)+parseInt(_0x255e99(0x1b8))/0xa*(-parseInt(_0x255e99(0x191))/0xb)+-parseInt(_0x255e99(0x198))/0xc;if(_0x19a33b===_0x2d353b)break;else _0x56337e['push'](_0x56337e['shift']());}catch(_0x46d6ea){_0x56337e['push'](_0x56337e['shift']());}}}(a0_0x5e9c,0x1a2b9));function a0_0x3f03(_0x38c4e0,_0x17818a){_0x38c4e0=_0x38c4e0-0x18b;const _0x5e9cf9=a0_0x5e9c();let _0x3f03df=_0x5e9cf9[_0x38c4e0];if(a0_0x3f03['yeWGEX']===undefined){var _0x37f94e=function(_0x5035a9){const _0x3dc45d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2aa933='',_0x4169f3='';for(let _0x270f50=0x0,_0x3533a9,_0x85cf14,_0x305935=0x0;_0x85cf14=_0x5035a9['charAt'](_0x305935++);~_0x85cf14&&(_0x3533a9=_0x270f50%0x4?_0x3533a9*0x40+_0x85cf14:_0x85cf14,_0x270f50++%0x4)?_0x2aa933+=String['fromCharCode'](0xff&_0x3533a9>>(-0x2*_0x270f50&0x6)):0x0){_0x85cf14=_0x3dc45d['indexOf'](_0x85cf14);}for(let _0x19b4ad=0x0,_0x114147=_0x2aa933['length'];_0x19b4ad<_0x114147;_0x19b4ad++){_0x4169f3+='%'+('00'+_0x2aa933['charCodeAt'](_0x19b4ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4169f3);};a0_0x3f03['OCrAim']=_0x37f94e,a0_0x3f03['ryrAcb']={},a0_0x3f03['yeWGEX']=!![];}const _0x58b941=_0x5e9cf9[0x0],_0x122d19=_0x38c4e0+_0x58b941,_0x23b3c8=a0_0x3f03['ryrAcb'][_0x122d19];return!_0x23b3c8?(_0x3f03df=a0_0x3f03['OCrAim'](_0x3f03df),a0_0x3f03['ryrAcb'][_0x122d19]=_0x3f03df):_0x3f03df=_0x23b3c8,_0x3f03df;}import a0_0x2aa933 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x4169f3={},_0x270f50=null){const _0x347662=a0_0x3f03;this['config']=_0x4169f3,this[_0x347662(0x1ba)]=_0x270f50,this[_0x347662(0x1af)]=new a0_0x2aa933(_0x4169f3,_0x270f50);}async[a0_0x14a836(0x1a3)](){const _0x589c57=a0_0x14a836;await this[_0x589c57(0x1af)][_0x589c57(0x1a3)]();}async[a0_0x14a836(0x1be)](_0x3533a9){const _0xcabe1a=a0_0x14a836;try{const _0x85cf14=await this[_0xcabe1a(0x1af)][_0xcabe1a(0x1bc)](_0x3533a9);if(_0x85cf14[_0xcabe1a(0x1bf)]===0x0)return'';const _0x305935=_0x85cf14['filter'](_0x182aa4=>_0x182aa4['mode']==='content'),_0x19b4ad=_0x85cf14['filter'](_0x1847f1=>_0x1847f1[_0xcabe1a(0x1a8)]==='reference');let _0x114147='';if(_0x305935[_0xcabe1a(0x1bf)]>0x0){_0x114147+='\x0a<attached-files>\x0a';for(const _0x3d14fa of _0x305935){const _0x10ee07=await this['attachmentService'][_0xcabe1a(0x1a2)](_0x3d14fa[_0xcabe1a(0x1b0)]);if(_0x10ee07){const _0x375204=this[_0xcabe1a(0x1b6)](_0x3d14fa,_0x10ee07);_0x114147+=_0x375204+'\x0a';}}_0x114147+='</attached-files>\x0a';}if(_0x19b4ad['length']>0x0){_0x114147+=_0xcabe1a(0x19a);for(const _0x32c768 of _0x19b4ad){const _0x4aab86=this[_0xcabe1a(0x190)](_0x32c768);_0x114147+=_0x4aab86+'\x0a';}_0x114147+='</file-references>\x0a',_0x114147+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x114147;}catch(_0x2abdb1){return this[_0xcabe1a(0x1ba)]?.['error'](_0xcabe1a(0x18c),{'agentId':_0x3533a9,'error':_0x2abdb1['message']}),'';}}['formatContentFile'](_0x4e9efe,_0x47527e){const _0x5ed438=a0_0x14a836,{fileName:_0x48f397,fileType:_0x149217,size:_0xa5dd09,contentType:_0xb66394}=_0x4e9efe,_0x102495=(_0xa5dd09/0x400)['toFixed'](0x2);if(_0xb66394===_0x5ed438(0x1b9))return this[_0x5ed438(0x1bd)](_0x4e9efe,_0x47527e);else{if(_0xb66394===_0x5ed438(0x194))return this['formatImageFile'](_0x4e9efe,_0x47527e);else{if(_0xb66394===_0x5ed438(0x19d))return this['formatPdfFile'](_0x4e9efe,_0x47527e);}}return _0x5ed438(0x192)+this['escapeXml'](_0x48f397)+'\x22\x20type=\x22'+_0x149217+'\x22\x20size=\x22'+_0x102495+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x47527e)+'\x0a\x20\x20</file>';}[a0_0x14a836(0x1bd)](_0x3abc93,_0x4d1106){const _0x5f2449=a0_0x14a836,{fileName:_0x50fa24,fileType:_0xef5404,size:_0x379f72}=_0x3abc93,_0x32e2cd=(_0x379f72/0x400)['toFixed'](0x2);return _0x5f2449(0x192)+this[_0x5f2449(0x1a4)](_0x50fa24)+_0x5f2449(0x19b)+_0xef5404+'\x22\x20size=\x22'+_0x32e2cd+_0x5f2449(0x1ae)+this[_0x5f2449(0x1a4)](_0x4d1106)+_0x5f2449(0x1ab);}[a0_0x14a836(0x1ad)](_0x17890e,_0x5a6fe9){const _0x39f715=a0_0x14a836,{fileName:_0x3bb629,fileType:_0x49fda8,size:_0x342795}=_0x17890e,_0x3fe991=(_0x342795/0x400)[_0x39f715(0x1a1)](0x2);return _0x39f715(0x192)+this[_0x39f715(0x1a4)](_0x3bb629)+'\x22\x20type=\x22'+_0x49fda8+'\x22\x20size=\x22'+_0x3fe991+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x5a6fe9+_0x39f715(0x1ab);}['formatPdfFile'](_0x1397f9,_0x227304){const _0x5c3ed0=a0_0x14a836,{fileName:_0x2c1a29,fileType:_0x1ea997,size:_0x50aef6}=_0x1397f9,_0x396ba2=(_0x50aef6/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x5c3ed0(0x1a4)](_0x2c1a29)+_0x5c3ed0(0x19b)+_0x1ea997+_0x5c3ed0(0x1a7)+_0x396ba2+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x5c3ed0(0x1a4)](_0x227304)+_0x5c3ed0(0x1ab);}['formatReferenceFile'](_0x5c252f){const _0x27f8c2=a0_0x14a836,{fileName:_0x2de4e5,originalPath:_0x33f1a3,size:_0x5caaa7,fileType:_0x5a53c8,lastModified:_0x40a6b9}=_0x5c252f,_0x466005=this[_0x27f8c2(0x1b4)](_0x5caaa7),_0x37ce0f=new Date(_0x40a6b9)['toISOString']()['split']('T')[0x0];return _0x27f8c2(0x192)+this['escapeXml'](_0x2de4e5)+_0x27f8c2(0x1a5)+this['escapeXml'](_0x33f1a3)+_0x27f8c2(0x1a7)+_0x466005+'\x22\x20type=\x22'+_0x5a53c8+'\x22\x20modified=\x22'+_0x37ce0f+_0x27f8c2(0x197);}[a0_0x14a836(0x1a4)](_0x3aada0){const _0x1b9773=a0_0x14a836;if(!_0x3aada0)return'';return _0x3aada0[_0x1b9773(0x1a0)](/&/g,'&amp;')[_0x1b9773(0x1a0)](/</g,'&lt;')[_0x1b9773(0x1a0)](/>/g,'&gt;')['replace'](/"/g,'&quot;')[_0x1b9773(0x1a0)](/'/g,'&apos;');}[a0_0x14a836(0x1b4)](_0x248c9d){const _0x282d8a=a0_0x14a836;if(_0x248c9d===0x0)return _0x282d8a(0x1c2);const _0x26fdf1=0x400,_0x40e9cc=['Bytes','KB','MB','GB'],_0x80372d=Math[_0x282d8a(0x18d)](Math[_0x282d8a(0x18f)](_0x248c9d)/Math['log'](_0x26fdf1));return parseFloat((_0x248c9d/Math[_0x282d8a(0x1aa)](_0x26fdf1,_0x80372d))['toFixed'](0x2))+_0x40e9cc[_0x80372d];}async[a0_0x14a836(0x18b)](_0x1d5c96){const _0x4fffab=a0_0x14a836;try{const _0x59e267=await this['attachmentService'][_0x4fffab(0x1bc)](_0x1d5c96);let _0x4657d5=0x0;for(const _0x484c3b of _0x59e267){_0x484c3b['mode']==='content'?_0x4657d5+=_0x484c3b['tokenEstimate']||0x0:_0x4657d5+=0x14;}return _0x4657d5;}catch(_0x12360d){return this[_0x4fffab(0x1ba)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x1d5c96,'error':_0x12360d[_0x4fffab(0x1b2)]}),0x0;}}async[a0_0x14a836(0x18e)](_0x1f50ba){const _0x1e487d=a0_0x14a836;try{const _0x1dbdb1=await this['attachmentService'][_0x1e487d(0x1bc)](_0x1f50ba),_0x57e45c={'totalActive':_0x1dbdb1['length'],'contentMode':_0x1dbdb1['filter'](_0x5a2271=>_0x5a2271[_0x1e487d(0x1a8)]===_0x1e487d(0x19e))[_0x1e487d(0x1bf)],'referenceMode':_0x1dbdb1['filter'](_0x2b6623=>_0x2b6623['mode']===_0x1e487d(0x19f))[_0x1e487d(0x1bf)],'estimatedTokens':0x0,'files':[]};for(const _0x583ea9 of _0x1dbdb1){_0x57e45c[_0x1e487d(0x1b7)]+=_0x583ea9[_0x1e487d(0x1b3)]||0x0,_0x57e45c[_0x1e487d(0x193)][_0x1e487d(0x1c1)]({'fileName':_0x583ea9['fileName'],'mode':_0x583ea9[_0x1e487d(0x1a8)],'size':this['formatBytes'](_0x583ea9[_0x1e487d(0x1b5)]),'tokens':_0x583ea9[_0x1e487d(0x1b3)]||0x0});}return _0x57e45c;}catch(_0x4987ac){return this[_0x1e487d(0x1ba)]?.['error'](_0x1e487d(0x1ac),{'agentId':_0x1f50ba,'error':_0x4987ac['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;