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

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 (116) 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 +2 -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
@@ -1 +1 @@
1
- const a0_0x1ee68b=a0_0x61d5;function a0_0x61d5(_0x4882a2,_0x573fad){_0x4882a2=_0x4882a2-0x155;const _0x220079=a0_0x2200();let _0x61d5a9=_0x220079[_0x4882a2];if(a0_0x61d5['scDwBa']===undefined){var _0x3ecd92=function(_0xd899fe){const _0x41632a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x531ed3='',_0xe7e58a='';for(let _0x3272c9=0x0,_0x407c1c,_0x50d9f1,_0x4f551c=0x0;_0x50d9f1=_0xd899fe['charAt'](_0x4f551c++);~_0x50d9f1&&(_0x407c1c=_0x3272c9%0x4?_0x407c1c*0x40+_0x50d9f1:_0x50d9f1,_0x3272c9++%0x4)?_0x531ed3+=String['fromCharCode'](0xff&_0x407c1c>>(-0x2*_0x3272c9&0x6)):0x0){_0x50d9f1=_0x41632a['indexOf'](_0x50d9f1);}for(let _0x4df59f=0x0,_0x444377=_0x531ed3['length'];_0x4df59f<_0x444377;_0x4df59f++){_0xe7e58a+='%'+('00'+_0x531ed3['charCodeAt'](_0x4df59f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe7e58a);};a0_0x61d5['mKhoZX']=_0x3ecd92,a0_0x61d5['bCbyJz']={},a0_0x61d5['scDwBa']=!![];}const _0x45f9a0=_0x220079[0x0],_0x5c5c6d=_0x4882a2+_0x45f9a0,_0x42bc2d=a0_0x61d5['bCbyJz'][_0x5c5c6d];return!_0x42bc2d?(_0x61d5a9=a0_0x61d5['mKhoZX'](_0x61d5a9),a0_0x61d5['bCbyJz'][_0x5c5c6d]=_0x61d5a9):_0x61d5a9=_0x42bc2d,_0x61d5a9;}(function(_0x3249f4,_0x4dcd8f){const _0xb0e11=a0_0x61d5,_0x2cb7ca=_0x3249f4();while(!![]){try{const _0x1ea631=-parseInt(_0xb0e11(0x16a))/0x1*(parseInt(_0xb0e11(0x1aa))/0x2)+-parseInt(_0xb0e11(0x1b5))/0x3+parseInt(_0xb0e11(0x1e4))/0x4+-parseInt(_0xb0e11(0x199))/0x5+parseInt(_0xb0e11(0x191))/0x6+-parseInt(_0xb0e11(0x16b))/0x7+-parseInt(_0xb0e11(0x160))/0x8*(-parseInt(_0xb0e11(0x1e2))/0x9);if(_0x1ea631===_0x4dcd8f)break;else _0x2cb7ca['push'](_0x2cb7ca['shift']());}catch(_0x3394eb){_0x2cb7ca['push'](_0x2cb7ca['shift']());}}}(a0_0x2200,0x4cad3));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x531ed3,_0xe7e58a,_0x3272c9,_0x407c1c){const _0x333a73=a0_0x61d5;this[_0x333a73(0x19b)]=_0x531ed3,this[_0x333a73(0x193)]=_0xe7e58a,this[_0x333a73(0x1c7)]=_0x3272c9,this['errorHandler']=_0x407c1c,this['baseUrl']=_0x531ed3[_0x333a73(0x190)]?.[_0x333a73(0x1a0)]||'https://api.loxia.ai',this[_0x333a73(0x1ce)]=_0x531ed3['backend']?.['timeout']||0xea60,this[_0x333a73(0x1cb)]=_0x531ed3['backend']?.[_0x333a73(0x1cb)]||0x3,this['rateLimiters']=new Map(),this['requestQueue']=new Map(),this[_0x333a73(0x162)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x333a73(0x17f)]=this['_initializeModelSpecs'](),this[_0x333a73(0x18a)]=new Map(),this['apiKeyManager']=null,this[_0x333a73(0x1eb)]=null;}async[a0_0x1ee68b(0x1f2)](_0x50d9f1,_0x4f551c,_0x4df59f={}){const _0x4f9ecc=a0_0x1ee68b,_0x444377='req-'+Date[_0x4f9ecc(0x1cc)]()+'-'+Math['random']()[_0x4f9ecc(0x1d1)](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x4f9ecc(0x192));await this['_checkRateLimit'](_0x50d9f1);const _0x3d7017=this['_formatMessagesForModel'](_0x4f551c,_0x50d9f1,_0x4df59f),_0x3412d9={'model':_0x50d9f1,'messages':_0x3d7017,'options':{'max_tokens':this[_0x4f9ecc(0x17f)][_0x50d9f1]?.['maxTokens']||0xfa0,'temperature':_0x4df59f[_0x4f9ecc(0x1a6)]||0.7,'stream':_0x4df59f[_0x4f9ecc(0x179)]||![]},'metadata':{'requestId':_0x444377,'agentId':_0x4df59f[_0x4f9ecc(0x1bd)],'timestamp':new Date()['toISOString']()}};_0x4df59f['systemPrompt']&&(_0x3412d9[_0x4f9ecc(0x19f)]=_0x4df59f['systemPrompt']);this['logger'][_0x4f9ecc(0x1ba)]('Sending\x20message\x20to\x20model:\x20'+_0x50d9f1,{'requestId':_0x444377,'agentId':_0x4df59f[_0x4f9ecc(0x1bd)],'messageCount':Array[_0x4f9ecc(0x1b9)](_0x4f551c)?_0x4f551c[_0x4f9ecc(0x1c6)]:0x1,'maxTokens':_0x3412d9['max_tokens']});const _0x2883eb=await this['_makeAPIRequest'](_0x4f9ecc(0x172),_0x3412d9,_0x444377,{..._0x4df59f,'sessionId':_0x4df59f[_0x4f9ecc(0x164)],'platformProvided':_0x4df59f['platformProvided']||![]});return _0x2883eb['usage']&&await this[_0x4f9ecc(0x1e9)](_0x4df59f[_0x4f9ecc(0x1bd)],_0x50d9f1,{'prompt_tokens':_0x2883eb[_0x4f9ecc(0x186)][_0x4f9ecc(0x1e0)]||0x0,'completion_tokens':_0x2883eb[_0x4f9ecc(0x186)]['completion_tokens']||0x0,'total_tokens':_0x2883eb['usage'][_0x4f9ecc(0x184)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x2883eb['choices'][0x0]?.['message']?.[_0x4f9ecc(0x1df)]||'','model':_0x2883eb[_0x4f9ecc(0x1b1)],'tokenUsage':_0x2883eb['usage'],'requestId':_0x444377,'finishReason':_0x2883eb['choices'][0x0]?.['finish_reason']};}catch(_0x3b5a2b){this[_0x4f9ecc(0x1b0)](),this[_0x4f9ecc(0x193)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x3b5a2b['message'],{'requestId':_0x444377,'model':_0x50d9f1,'agentId':_0x4df59f[_0x4f9ecc(0x1bd)],'error':_0x3b5a2b[_0x4f9ecc(0x180)]}),await this['handleHttpError'](_0x3b5a2b,{'requestId':_0x444377,'model':_0x50d9f1,'agentId':_0x4df59f[_0x4f9ecc(0x1bd)]});throw _0x3b5a2b;}}async[a0_0x1ee68b(0x1a3)](_0x3b42cb,_0x34a913={}){const _0x40517c=a0_0x1ee68b;try{const _0x15ec8f=MODEL_ROUTING[_0x3b42cb[_0x40517c(0x177)]()]||MODEL_ROUTING[_0x40517c(0x197)],_0x4334c0=[];for(const _0xb56c42 of _0x15ec8f){const _0x479560=await this[_0x40517c(0x1b2)](_0xb56c42);_0x479560&&_0x4334c0[_0x40517c(0x168)](_0xb56c42);}if(_0x4334c0[_0x40517c(0x1c6)]===0x0)return this['logger'][_0x40517c(0x1ef)](_0x40517c(0x1a5)+_0x3b42cb+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0xaec4f9=_0x4334c0[0x0];if(_0x34a913[_0x40517c(0x1ae)]&&_0x4334c0[_0x40517c(0x1de)](_0x34a913[_0x40517c(0x1ae)]))_0xaec4f9=_0x34a913[_0x40517c(0x1ae)];else{if(_0x34a913['complexity']==='high'&&_0x4334c0[_0x40517c(0x1de)](MODELS[_0x40517c(0x17e)]))_0xaec4f9=MODELS[_0x40517c(0x17e)];else _0x34a913[_0x40517c(0x1a7)]===_0x40517c(0x1ac)&&_0x4334c0['includes'](MODELS[_0x40517c(0x16e)])&&(_0xaec4f9=MODELS[_0x40517c(0x16e)]);}return this[_0x40517c(0x193)]['info'](_0x40517c(0x196)+_0x3b42cb,{'selectedModel':_0xaec4f9,'availableModels':_0x4334c0['length'],'context':_0x34a913}),_0xaec4f9;}catch(_0x10bfd4){return this[_0x40517c(0x193)]['error'](_0x40517c(0x189)+_0x10bfd4[_0x40517c(0x1ab)],{'task':_0x3b42cb,'context':_0x34a913}),MODEL_ROUTING[_0x40517c(0x197)][0x0];}}async[a0_0x1ee68b(0x155)](_0x52040f,_0x1183b0){const _0x50bd29=a0_0x1ee68b,_0x58869b=this[_0x50bd29(0x17f)][_0x1183b0];if(!_0x58869b)throw new Error(_0x50bd29(0x1d4)+_0x1183b0);const _0x5e76c7=_0x58869b['contextWindow']*0.8;let _0x4f2f74=0x0;const _0x3af523=[],_0x5138d4=await Promise['all'](_0x52040f[_0x50bd29(0x1cd)](async _0x1eda0b=>({..._0x1eda0b,'estimatedTokens':await this['_estimateTokens'](_0x1eda0b[_0x50bd29(0x1df)],_0x1183b0)}))),_0x3d8831=[..._0x5138d4][_0x50bd29(0x1bb)]();for(const _0x22f69d of _0x3d8831){if(_0x4f2f74+_0x22f69d[_0x50bd29(0x1dd)]>_0x5e76c7){if(_0x3af523['length']===0x0){const _0x146d65=await this[_0x50bd29(0x1e5)](_0x22f69d['content'],_0x5e76c7);_0x3af523['unshift']({..._0x22f69d,'content':_0x146d65,'estimatedTokens':_0x5e76c7});}break;}_0x3af523['unshift'](_0x22f69d),_0x4f2f74+=_0x22f69d[_0x50bd29(0x1dd)];}const _0x4d0a8e=_0x5138d4['slice'](0x0,-_0x3af523[_0x50bd29(0x1c6)]);if(_0x4d0a8e['length']>0x0){const _0x1182f9=await this['_summarizeMessages'](_0x4d0a8e,_0x1183b0);_0x3af523[_0x50bd29(0x18f)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x1182f9,'timestamp':_0x4d0a8e[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x50bd29(0x1c9)](_0x1182f9,_0x1183b0)});}return this[_0x50bd29(0x193)][_0x50bd29(0x1ba)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x1183b0,{'originalMessages':_0x52040f[_0x50bd29(0x1c6)],'compactizedMessages':_0x3af523['length'],'estimatedTokens':_0x4f2f74,'maxTokens':_0x5e76c7}),_0x3af523;}async[a0_0x1ee68b(0x1e9)](_0x53fdb2,_0x469296,_0xd749e3,_0x4f6a06){const _0x5b0743=a0_0x1ee68b;try{this[_0x5b0743(0x1c7)]&&this[_0x5b0743(0x1c7)][_0x5b0743(0x1e9)](_0x53fdb2,_0x469296,_0xd749e3);}catch(_0x5501b7){this['logger']['error'](_0x5b0743(0x17a)+_0x5501b7[_0x5b0743(0x1ab)]);}}async[a0_0x1ee68b(0x1ea)](_0x599cb9,_0x2c8aeb){const _0xa9f84a=a0_0x1ee68b,_0x122488=this[_0xa9f84a(0x17c)]?.[_0xa9f84a(0x15f)]?.(_0x599cb9,_0x2c8aeb);switch(_0x599cb9[_0xa9f84a(0x1d0)]||_0x599cb9[_0xa9f84a(0x157)]){case HTTP_STATUS[_0xa9f84a(0x1c0)]:this['logger']['error'](_0xa9f84a(0x166),{'context':_0x2c8aeb,'error':_0x599cb9[_0xa9f84a(0x1ab)]});throw new Error(_0xa9f84a(0x1e1)+_0x599cb9[_0xa9f84a(0x1ab)]);case HTTP_STATUS['UNAUTHORIZED']:this[_0xa9f84a(0x193)][_0xa9f84a(0x1be)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2c8aeb});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0xa9f84a(0x193)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x2c8aeb});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS['NOT_FOUND']:this['logger']['error'](_0xa9f84a(0x167),{'context':_0x2c8aeb});throw new Error(_0xa9f84a(0x1ad));case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0xa9f84a(0x193)][_0xa9f84a(0x1ef)]('Rate\x20limit\x20exceeded',{'context':_0x2c8aeb}),await this[_0xa9f84a(0x1af)](_0x2c8aeb);throw new Error(_0xa9f84a(0x1d7));case HTTP_STATUS[_0xa9f84a(0x1b4)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0xa9f84a(0x1f0)]:this['logger']['error']('AI\x20service\x20unavailable',{'context':_0x2c8aeb,'status':_0x599cb9[_0xa9f84a(0x1d0)]}),await this['_handleServiceUnavailable'](_0x2c8aeb);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger'][_0xa9f84a(0x1be)](_0xa9f84a(0x18e),{'context':_0x2c8aeb,'error':_0x599cb9['message']});throw new Error('AI\x20service\x20error:\x20'+_0x599cb9['message']);}}['setApiKeyManager'](_0x23807c){const _0xd2e33=a0_0x1ee68b;this['apiKeyManager']=_0x23807c,this[_0xd2e33(0x193)]?.['info'](_0xd2e33(0x1d3),{'hasManager':!!_0x23807c});}['setAgentPool'](_0x10d559){const _0x494664=a0_0x1ee68b;this['agentPool']=_0x10d559,this[_0x494664(0x193)]?.[_0x494664(0x1ba)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x10d559});}async[a0_0x1ee68b(0x159)](_0x2e205b,_0x4a9895={}){const _0x1bf961=a0_0x1ee68b,_0x4943d0='img-'+Date[_0x1bf961(0x1cc)]()+'-'+Math['random']()[_0x1bf961(0x1d1)](0x24)['substr'](0x2,0x9);try{if(this[_0x1bf961(0x16c)]())throw new Error(_0x1bf961(0x192));if(!_0x2e205b||typeof _0x2e205b!=='string'||_0x2e205b[_0x1bf961(0x156)]()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x3c5749=_0x4a9895[_0x1bf961(0x1b1)]||'flux-1.1-pro',_0x497d69=_0x4a9895['size']||'1024x1024',_0x55456b=_0x4a9895[_0x1bf961(0x15a)]||_0x1bf961(0x1c2),_0x1958a9=_0x4a9895['responseFormat']||_0x1bf961(0x194);this['logger']['info'](_0x1bf961(0x16f)+_0x3c5749,{'requestId':_0x4943d0,'model':_0x3c5749,'size':_0x497d69,'quality':_0x55456b,'promptLength':_0x2e205b[_0x1bf961(0x1c6)]});const _0xad2bc3={'prompt':_0x2e205b,'model':_0x3c5749,'size':_0x497d69,'quality':_0x55456b,'response_format':_0x1958a9,'n':0x1,'metadata':{'requestId':_0x4943d0,'timestamp':new Date()[_0x1bf961(0x195)]()}},_0x39a37a=await this[_0x1bf961(0x181)](_0xad2bc3,_0x4943d0,{'sessionId':_0x4a9895[_0x1bf961(0x164)],'platformProvided':_0x4a9895['platformProvided']||![]});return this[_0x1bf961(0x1d2)](),{'url':_0x39a37a['data']?.[0x0]?.['url']||null,'b64_json':_0x39a37a['data']?.[0x0]?.[_0x1bf961(0x18c)]||null,'model':_0x39a37a['model']||_0x3c5749,'requestId':_0x4943d0,'revisedPrompt':_0x39a37a[_0x1bf961(0x1a4)]?.[0x0]?.['revised_prompt']||_0x2e205b};}catch(_0x2459d0){this['_recordFailure'](),this[_0x1bf961(0x193)]['error']('Image\x20generation\x20failed:\x20'+_0x2459d0['message'],{'requestId':_0x4943d0,'model':_0x4a9895['model'],'error':_0x2459d0[_0x1bf961(0x180)]});throw _0x2459d0;}}async[a0_0x1ee68b(0x185)](){const _0x1eb631=a0_0x1ee68b;try{const _0x4b91e9=await this[_0x1eb631(0x1bc)]('/health',{},'health-check');return _0x4b91e9[_0x1eb631(0x1d0)]===_0x1eb631(0x183);}catch(_0x2339a4){return![];}}async['switchAgentModel'](_0x3c3840,_0xe358f5){const _0x18c45d=a0_0x1ee68b;try{if(!this['_isValidModel'](_0xe358f5))throw new Error('Invalid\x20model:\x20'+_0xe358f5);let _0xb3a02e=this[_0x18c45d(0x18a)]['get'](_0x3c3840);!_0xb3a02e&&(_0xb3a02e=new ConversationManager(_0x3c3840,this['logger']),this['conversationManagers'][_0x18c45d(0x1e6)](_0x3c3840,_0xb3a02e));const _0x5e79f1=await _0xb3a02e['switchModel'](_0xe358f5),_0x148b0d=await this['agentPool']?.[_0x18c45d(0x174)](_0x3c3840);return _0x148b0d&&(_0x148b0d[_0x18c45d(0x19d)]=_0xe358f5,await this['agentPool'][_0x18c45d(0x1a2)](_0x3c3840)),this[_0x18c45d(0x193)][_0x18c45d(0x1ba)](_0x18c45d(0x16d)+_0x3c3840,{'newModel':_0xe358f5,'messageCount':_0x5e79f1[_0x18c45d(0x1c8)]['length']}),{'success':!![],'agentId':_0x3c3840,'newModel':_0xe358f5,'conversation':_0x5e79f1};}catch(_0x338f03){this['logger'][_0x18c45d(0x1be)](_0x18c45d(0x1c3)+_0x338f03[_0x18c45d(0x1ab)],{'agentId':_0x3c3840,'newModel':_0xe358f5});throw _0x338f03;}}[a0_0x1ee68b(0x15b)](){const _0x2618eb=a0_0x1ee68b,_0x3592db={[MODELS['ANTHROPIC_SONNET']]:{'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[_0x2618eb(0x16e)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x2618eb(0x1c1)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x2618eb(0x1c4)],'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[_0x2618eb(0x1c4)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x2618eb(0x1c4)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS[_0x2618eb(0x163)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x2618eb(0x1ca)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x2618eb(0x182),'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':_0x2618eb(0x182),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x3592db;}['_formatMessagesForModel'](_0x348d52,_0x3d3dac,_0x2ac02e){const _0x3bd41a=a0_0x1ee68b,_0x4941e0=this['modelSpecs'][_0x3d3dac]||{'provider':_0x3bd41a(0x182)};let _0x517c73;typeof _0x348d52==='string'?_0x517c73=[{'role':'user','content':_0x348d52}]:_0x517c73=_0x348d52[_0x3bd41a(0x1cd)](_0x33a4d8=>this['_formatSingleMessage'](_0x33a4d8,_0x3d3dac));switch(_0x4941e0['provider']){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x517c73);case MODEL_PROVIDERS[_0x3bd41a(0x1c4)]:return this[_0x3bd41a(0x1d5)](_0x517c73);case MODEL_PROVIDERS[_0x3bd41a(0x182)]:return this['_formatForAzure'](_0x517c73);default:return _0x517c73;}}['_formatSingleMessage'](_0x27e0ef,_0x534499){const _0x3adf89=a0_0x1ee68b;return{'role':_0x27e0ef[_0x3adf89(0x161)]||'user','content':_0x27e0ef['content'],'timestamp':_0x27e0ef[_0x3adf89(0x1d6)]};}[a0_0x1ee68b(0x1b6)](_0x49c3a4){const _0x5a5ffb=a0_0x1ee68b;return _0x49c3a4[_0x5a5ffb(0x1cd)](_0x22b8e8=>{const _0x47daee=_0x5a5ffb;if(_0x22b8e8[_0x47daee(0x161)]===_0x47daee(0x19f))return{'role':'user','content':'System:\x20'+_0x22b8e8[_0x47daee(0x1df)]};return _0x22b8e8;});}[a0_0x1ee68b(0x1d5)](_0x28ebb7){return _0x28ebb7;}['_formatForAzure'](_0x4d3eb8){const _0x298095=a0_0x1ee68b;return _0x4d3eb8['map'](_0x4623a0=>({..._0x4623a0,'content':typeof _0x4623a0['content']==='string'?_0x4623a0['content']:JSON[_0x298095(0x15d)](_0x4623a0[_0x298095(0x1df)])}));}['_isValidModel'](_0x13c179){const _0x4d292a=a0_0x1ee68b;this['logger'][_0x4d292a(0x171)]('Validating\x20model',{'model':_0x13c179,'modelType':typeof _0x13c179});if(this['modelSpecs'][_0x13c179]!==undefined)return!![];return this[_0x4d292a(0x193)]['warn'](_0x4d292a(0x15c),{'model':_0x13c179,'availableModels':Object['keys'](this[_0x4d292a(0x17f)])}),![];}async[a0_0x1ee68b(0x1b2)](_0x3f9ec0){return!![];}async['_estimateTokens'](_0x321e1b,_0x1f9ba3){const _0x461ab3=a0_0x1ee68b;return Math['ceil'](_0x321e1b[_0x461ab3(0x1c6)]/0x4);}async['_truncateMessage'](_0x3e5256,_0x5d1e1d){const _0xdba118=a0_0x1ee68b,_0x41d0cc=_0x5d1e1d*0x4;if(_0x3e5256['length']<=_0x41d0cc)return _0x3e5256;return _0x3e5256[_0xdba118(0x19c)](0x0,_0x41d0cc-0x14)+'\x0a...\x20[message\x20truncated]';}async[a0_0x1ee68b(0x19e)](_0x5b9570,_0x4abe4b){const _0x3e6f01=a0_0x1ee68b,_0x4be709=_0x5b9570[_0x3e6f01(0x1cd)](_0x4966a8=>_0x4966a8[_0x3e6f01(0x161)]+':\x20'+_0x4966a8['content'])['join']('\x0a'),_0x1d28ec=0x1f4;if(_0x4be709['length']<=_0x1d28ec)return _0x4be709;return _0x4be709['substring'](0x0,_0x1d28ec)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x3ca7c0,_0x41fc97,_0x303bba,_0x44df24={}){const _0x9324ec=a0_0x1ee68b,_0x4514f7=_0x9324ec(0x198);let _0x4d258a,_0x2751e9=null,_0x3cd9bf=null;this['logger']?.[_0x9324ec(0x1ba)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x44df24['sessionId'],'hasSessionId':!!_0x44df24['sessionId'],'optionsKeys':Object['keys'](_0x44df24),'model':_0x41fc97[_0x9324ec(0x1b1)]});if(this[_0x9324ec(0x1dc)]&&_0x44df24['sessionId']){const _0x34445d=this['apiKeyManager']['getKeysForRequest'](_0x44df24[_0x9324ec(0x164)],{'platformProvided':_0x44df24['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x41fc97[_0x9324ec(0x1b1)])});_0x2751e9=_0x34445d[_0x9324ec(0x1cf)],_0x3cd9bf=_0x34445d[_0x9324ec(0x1a9)],this[_0x9324ec(0x193)]?.[_0x9324ec(0x171)]('Retrieved API keys from session manager',{'sessionId':_0x44df24[_0x9324ec(0x164)],'hasLoxiaKey':!!_0x2751e9,'hasVendorKey':!!_0x3cd9bf,'vendor':this[_0x9324ec(0x1d9)](_0x41fc97[_0x9324ec(0x1b1)])});}!_0x2751e9&&_0x44df24['apiKey']&&(_0x2751e9=_0x44df24['apiKey']);!_0x2751e9&&this[_0x9324ec(0x19b)]['apiKey']&&(_0x2751e9=this[_0x9324ec(0x19b)]['apiKey']);if(!_0x2751e9)throw new Error(_0x9324ec(0x1e7));const _0x551b46=_0x41fc97[_0x9324ec(0x1b1)],_0x1b2ad1={'conversationId':_0x303bba,'message':_0x41fc97['messages'][_0x41fc97['messages'][_0x9324ec(0x1c6)]-0x1]?.['content']||'','messages':_0x41fc97[_0x9324ec(0x1c8)],'model':_0x551b46,'requestId':_0x303bba,'options':_0x41fc97[_0x9324ec(0x176)]||{},'platformProvided':_0x44df24['platformProvided']||![]};_0x41fc97[_0x9324ec(0x19f)]&&(_0x1b2ad1['systemPrompt']=_0x41fc97[_0x9324ec(0x19f)]);_0x44df24['platformProvided']?_0x1b2ad1['apiKey']=_0x2751e9:(_0x3cd9bf&&(_0x1b2ad1[_0x9324ec(0x1a9)]=_0x3cd9bf),_0x44df24[_0x9324ec(0x1a1)]&&(_0x1b2ad1['customApiKeys']=_0x44df24['customApiKeys']),_0x1b2ad1[_0x9324ec(0x17b)]=_0x2751e9);for(let _0x4ab6f2=0x1;_0x4ab6f2<=this['retryAttempts'];_0x4ab6f2++){try{this['logger'][_0x9324ec(0x1ba)](_0x9324ec(0x169),{'url':_0x4514f7,'model':_0x41fc97['model'],'requestId':_0x303bba,'attempt':_0x4ab6f2,'hasApiKey':!!_0x2751e9});const _0xdd1d09=await fetch(_0x4514f7,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x2751e9,'X-Request-ID':_0x303bba},'body':JSON['stringify'](_0x1b2ad1),'timeout':this[_0x9324ec(0x1ce)]});if(!_0xdd1d09['ok']){const _0x1fb4b0=await _0xdd1d09[_0x9324ec(0x18d)](),_0x3b2672=new Error('HTTP\x20'+_0xdd1d09[_0x9324ec(0x1d0)]+':\x20'+_0xdd1d09[_0x9324ec(0x1b7)]+(_0x1fb4b0?'\x20-\x20'+_0x1fb4b0:''));_0x3b2672[_0x9324ec(0x1d0)]=_0xdd1d09['status'];throw _0x3b2672;}const _0x4845e0=await _0xdd1d09[_0x9324ec(0x1da)]();return{'choices':[{'message':{'content':_0x4845e0[_0x9324ec(0x1df)]||'','role':'assistant'},'finish_reason':_0x4845e0['finishReason']||_0x9324ec(0x1ee)}],'usage':_0x4845e0[_0x9324ec(0x186)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4845e0[_0x9324ec(0x1b1)]||_0x41fc97[_0x9324ec(0x1b1)],'id':_0x4845e0[_0x9324ec(0x1f3)]||_0x303bba};}catch(_0x404cd8){_0x4d258a=_0x404cd8,this['logger'][_0x9324ec(0x1ef)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x4ab6f2,'requestId':_0x303bba,'error':_0x404cd8['message'],'status':_0x404cd8[_0x9324ec(0x1d0)]});if(_0x4ab6f2<this[_0x9324ec(0x1cb)]){const _0x2647e2=Math['pow'](0x2,_0x4ab6f2)*0x3e8;this[_0x9324ec(0x193)][_0x9324ec(0x1ef)](_0x9324ec(0x175)+_0x2647e2+'ms',{'attempt':_0x4ab6f2,'requestId':_0x303bba}),await new Promise(_0x4d646e=>setTimeout(_0x4d646e,_0x2647e2));}}}this[_0x9324ec(0x193)]['error'](_0x9324ec(0x170),{'requestId':_0x303bba,'error':_0x4d258a[_0x9324ec(0x1ab)]});const _0x2394d7=_0x4d258a['message']&&_0x4d258a['message'][_0x9324ec(0x1de)]('No\x20API\x20key\x20configured');if(_0x2394d7)throw new Error(_0x9324ec(0x1b8)+_0x4d258a[_0x9324ec(0x1ab)]);return{'choices':[{'message':{'content':_0x9324ec(0x173)+_0x4d258a['message'],'role':'assistant'},'finish_reason':_0x9324ec(0x1ee)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x41fc97['model'],'id':'error-'+_0x303bba,'error':_0x4d258a['message']};}async['_makeImageAPIRequest'](_0x1d3244,_0x131ede,_0x55671d={}){const _0x3b75ef=a0_0x1ee68b,_0x3192a2=_0x3b75ef(0x1bf);let _0x77dc89,_0x3341eb=null,_0x411ec5=null;this['logger']?.['info'](_0x3b75ef(0x1ec),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x55671d[_0x3b75ef(0x164)],'hasSessionId':!!_0x55671d[_0x3b75ef(0x164)],'model':_0x1d3244['model']});if(this['apiKeyManager']&&_0x55671d['sessionId']){const _0x4b5546=this[_0x3b75ef(0x1dc)]['getKeysForRequest'](_0x55671d[_0x3b75ef(0x164)],{'platformProvided':_0x55671d[_0x3b75ef(0x1c5)]||![],'vendor':this['_getVendorFromModel'](_0x1d3244[_0x3b75ef(0x1b1)])});_0x3341eb=_0x4b5546['loxiaApiKey'],_0x411ec5=_0x4b5546[_0x3b75ef(0x1a9)],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x55671d['sessionId'],'hasLoxiaKey':!!_0x3341eb,'hasVendorKey':!!_0x411ec5});}!_0x3341eb&&_0x55671d['apiKey']&&(_0x3341eb=_0x55671d['apiKey']);!_0x3341eb&&this['config']['apiKey']&&(_0x3341eb=this['config']['apiKey']);if(!_0x3341eb)throw new Error(_0x3b75ef(0x1e7));const _0x1f2668={'prompt':_0x1d3244[_0x3b75ef(0x1f1)],'model':_0x1d3244[_0x3b75ef(0x1b1)]||_0x3b75ef(0x1ed),'size':_0x1d3244[_0x3b75ef(0x15e)],'quality':_0x1d3244[_0x3b75ef(0x15a)],'style':_0x1d3244['style']||'vivid','n':_0x1d3244['n']||0x1,'requestId':_0x131ede};for(let _0x1919d4=0x1;_0x1919d4<=this['retryAttempts'];_0x1919d4++){try{this['logger']['info']('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x3192a2,'model':_0x1d3244[_0x3b75ef(0x1b1)],'requestId':_0x131ede,'attempt':_0x1919d4,'hasApiKey':!!_0x3341eb});const _0x348175=await fetch(_0x3192a2,{'method':_0x3b75ef(0x1e3),'headers':{'Content-Type':_0x3b75ef(0x165),'Authorization':'Bearer\x20'+_0x3341eb,'X-Request-ID':_0x131ede},'body':JSON['stringify'](_0x1f2668),'timeout':this['timeout']*0x2});if(!_0x348175['ok']){const _0x32053d=await _0x348175['text'](),_0x361563=new Error('HTTP\x20'+_0x348175['status']+':\x20'+_0x348175['statusText']+(_0x32053d?_0x3b75ef(0x188)+_0x32053d:''));_0x361563['status']=_0x348175[_0x3b75ef(0x1d0)];throw _0x361563;}const _0x18bf12=await _0x348175[_0x3b75ef(0x1da)]();return{'data':_0x18bf12['images']||[],'model':_0x18bf12[_0x3b75ef(0x1b1)]||_0x1d3244[_0x3b75ef(0x1b1)],'created':_0x18bf12['created']||Date['now'](),'usage':_0x18bf12['usage']};}catch(_0x32e5b3){_0x77dc89=_0x32e5b3,this['logger'][_0x3b75ef(0x1ef)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x1919d4,'requestId':_0x131ede,'error':_0x32e5b3['message'],'status':_0x32e5b3['status']});if(_0x1919d4<this[_0x3b75ef(0x1cb)]){const _0x22fd24=Math['pow'](0x2,_0x1919d4)*0x3e8;this[_0x3b75ef(0x193)]['warn']('Retrying\x20in\x20'+_0x22fd24+'ms',{'attempt':_0x1919d4,'requestId':_0x131ede}),await new Promise(_0x3a2f40=>setTimeout(_0x3a2f40,_0x22fd24));}}}this[_0x3b75ef(0x193)]['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x131ede,'error':_0x77dc89['message']});throw new Error(_0x3b75ef(0x158)+_0x77dc89['message']);}async[a0_0x1ee68b(0x1b3)](_0x4cc783){await new Promise(_0x504983=>setTimeout(_0x504983,0x64));}async[a0_0x1ee68b(0x1af)](_0x48cac2){const _0x1d47f6=a0_0x1ee68b,_0x21c82a=0xea60;this['logger']['info'](_0x1d47f6(0x19a)+_0x21c82a+'ms',_0x48cac2),await new Promise(_0x4ccca7=>setTimeout(_0x4ccca7,_0x21c82a));}async[a0_0x1ee68b(0x17d)](_0x5437b4){const _0x30934a=a0_0x1ee68b;this['_recordFailure']();const _0x54b436=0x7530;this[_0x30934a(0x193)]['info']('Service\x20unavailable,\x20waiting\x20'+_0x54b436+'ms',_0x5437b4),await new Promise(_0x2f2c84=>setTimeout(_0x2f2c84,_0x54b436));}['_isCircuitBreakerOpen'](){const _0x19dc36=a0_0x1ee68b;if(!this['circuitBreaker']['isOpen'])return![];const _0x273339=Date[_0x19dc36(0x1cc)]()-this[_0x19dc36(0x162)]['lastFailureTime'];if(_0x273339>this['circuitBreaker']['timeout'])return this['circuitBreaker'][_0x19dc36(0x187)]=![],this[_0x19dc36(0x162)]['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x1260e8=a0_0x1ee68b;this[_0x1260e8(0x162)][_0x1260e8(0x178)]++,this[_0x1260e8(0x162)]['lastFailureTime']=Date['now'](),this['circuitBreaker'][_0x1260e8(0x178)]>=this['circuitBreaker'][_0x1260e8(0x18b)]&&(this[_0x1260e8(0x162)]['isOpen']=!![],this[_0x1260e8(0x193)]['warn'](_0x1260e8(0x1e8)));}[a0_0x1ee68b(0x1d2)](){const _0x196b67=a0_0x1ee68b;this['circuitBreaker'][_0x196b67(0x178)]>0x0&&(this['circuitBreaker'][_0x196b67(0x178)]=0x0,this[_0x196b67(0x162)][_0x196b67(0x187)]=![],this[_0x196b67(0x193)]['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x1ee68b(0x1d9)](_0x3ffc08){const _0x2ab2c3=a0_0x1ee68b;if(!_0x3ffc08)return null;const _0x3dc776=_0x3ffc08['toLowerCase']();if(_0x3dc776[_0x2ab2c3(0x1de)]('anthropic')||_0x3dc776[_0x2ab2c3(0x1de)]('claude'))return'anthropic';else{if(_0x3dc776['includes']('openai')||_0x3dc776[_0x2ab2c3(0x1de)](_0x2ab2c3(0x1d8)))return'openai';else{if(_0x3dc776['includes']('deepseek'))return'deepseek';else{if(_0x3dc776['includes'](_0x2ab2c3(0x1a8)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x5adffc,_0x3bde02){const _0x409c5f=a0_0x1ee68b;this[_0x409c5f(0x1bd)]=_0x5adffc,this['logger']=_0x3bde02,this[_0x409c5f(0x1db)]=new Map();}async['switchModel'](_0x55d12b){return{'messages':[],'model':_0x55d12b,'lastUpdated':new Date()['toISOString']()};}}function a0_0x2200(){const _0xa585=['tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','DhjHy2TvC2fNzq','AgfUzgXLshr0CevYCM9Y','ywDLBNrqB29S','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','yxP1CMuTB3bLBMfPlwrHBgXLmW','C3rVCa','D2fYBG','r0furvDbwv9usu1ft1vu','ChjVBxb0','C2vUze1LC3nHz2u','CMvXDwvZDeLK','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','DhjPBq','y29Kzq','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','z2vUzxjHDgvjBwfNzq','CxvHBgL0Eq','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','C3rYAw5NAwz5','C2L6zq','y2XHC3nPzNLfCNjVCG','mtK5mKLhzNPLza','CM9Szq','y2LYy3vPDejYzwfRzxi','revfufnfruS','C2vZC2LVBKLK','yxbWBgLJyxrPB24VANnVBG','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','ChvZAa','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','mJC3ntC0zvLfzhvi','nde0mdaZogfAtg9QuW','x2LZq2LYy3vPDejYzwfRzxjpCgvU','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','qu5usfjpueLdx0HbsuTv','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','zgvIDwC','l2nOyxqVy29TCgXLDgLVBNm','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','z2v0qwDLBNq','uMv0CNLPBMCGAw4G','B3b0Aw9UCW','Dg9vChbLCKnHC2u','zMfPBhvYzxm','C3rYzwfT','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','yxbPs2v5','zxjYB3jiyw5KBgvY','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','qu5usfjpueLdx09qvvm','Bw9KzwXtCgvJCW','C3rHy2S','x21HA2vjBwfNzufqsvjLCxvLC3q','qvPvuKu','AgvHBhrOEq','Dg90ywXFDg9Rzw5Z','y2HLy2Ttzxj2AwnLsgvHBhrO','DxnHz2u','AxnpCgvU','ic0G','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','y29UDMvYC2f0Aw9UtwfUywDLCNm','DgHYzxnOB2XK','yJy0x2PZB24','Dgv4Da','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','Dw5ZAgLMDa','yMfJA2vUza','mtK0mdK0nNrzAeDjDq','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','Bg9Nz2vY','DxjS','Dg9ju09tDhjPBMC','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','rKfmtejbq0S','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','mJu3nJCYmgXezMnIrW','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','y29UzMLN','C3vIC3rYAw5N','y3vYCMvUDe1VzgvS','x3n1Bw1HCML6zu1LC3nHz2vZ','C3LZDgvT','yMfZzvvYBa','y3vZDg9TqxbPs2v5CW','CgvYC2LZDefNzw50u3rHDgu','CM91DgvnB2rLBa','zgf0yq','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','DgvTCgvYyxr1CMu','C3bLzwq','CgHP','DMvUzg9YqxbPs2v5','mKPVDKrHAG','BwvZC2fNzq','zMfZDa','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','ChjLzMvYCMvKtw9KzwW','x2HHBMrSzvjHDgvmAw1PDa','x3jLy29YzezHAwX1CMu','Bw9KzwW','x2nOzwnRtw9KzwXizwfSDgG','x2nOzwnRuMf0zuXPBwL0','su5urvjoquXFu0vsvKvsx0vsuK9s','nte4odCXuwrUB3jJ','x2zVCM1HDezVCKfUDgHYB3bPyW','C3rHDhvZvgv4Da','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','AxnbCNjHEq','Aw5MBW','CMv2zxjZzq','x21HA2vbueLszxf1zxn0','ywDLBNrjza','zxjYB3i','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','qKfex1jfuvvfu1q','r1buxZq','C3rHBMrHCMq','tw9KzwWGC3DPDgnOigzHAwXLzdOG','t1bftKfj','CgXHDgzVCM1qCM92AwrLza','BgvUz3rO','yNvKz2v0u2vYDMLJzq','BwvZC2fNzxm','x2vZDgLTyxrLvg9Rzw5Z','ueHj','CMv0CNLbDhrLBxb0CW','BM93','BwfW','DgLTzw91Da','Bg94AwfbCgLlzxK','C3rHDhvZ','Dg9tDhjPBMC','x3jLC2v0q2LYy3vPDejYzwfRzxi','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','vw5RBM93BIbTB2rLBdOG','x2zVCM1HDezVCK9Wzw5bsq','DgLTzxn0yw1W','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','z3b0','x2DLDfzLBMrVCKzYB21nB2rLBa','ANnVBG','y29UDMvYC2f0Aw9UCW','yxbPs2v5twfUywDLCG','zxn0Aw1HDgvKvg9Rzw5Z','Aw5JBhvKzxm','y29UDgvUDa','ChjVBxb0x3rVA2vUCW','sw52ywXPzcbYzxf1zxn0oIa','mZyYmdDhBvLSuey','ue9tva','mJe4ndyZmK1qANnjtG','x3rYDw5JyxrLtwvZC2fNzq','C2v0'];a0_0x2200=function(){return _0xa585;};return a0_0x2200();}export default AIService;
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 +1 @@
1
- const a0_0x318adb=a0_0x419c;function a0_0xefe6(){const _0x532f10=['A2v5CW','zw50CMLLCW','C2v0','mJK5mtaWs0XHrfzA','DMvUzg9YqxbPs2v5','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','z2v0u2vZC2LVBKTLExm','mJqXntCZmKPXwfvnCW','Dg9ju09tDhjPBMC','Aw5MBW','DMvUzg9Ys2v5CW','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','z2v0vgLTzq','mtK2mte0meLHuxbqBa','mtq3nJi0D0vNA3vo','CgXHDgzVCM1qCM92AwrLza','Bg9Nz2vY','z2XVyMfSs2v5CW','nti5oti5r0HUCfjv','n09MENvHBG','BgvUz3rO','mtm3mZm2mdbyugf6DuW','CMvTB3zLu2vZC2LVBKTLExm','Bg94AwfbCgLlzxK','DxbKyxrLzef0','mta1nde3s0LPqM9w','zgvSzxrL','z2v0qwn0AxzLu2vZC2LVBNm','C2vZC2LVBKTLExm','DMvUzg9Y'];a0_0xefe6=function(){return _0x532f10;};return a0_0xefe6();}function a0_0x419c(_0x1d3a05,_0x221d2f){_0x1d3a05=_0x1d3a05-0x144;const _0xefe64=a0_0xefe6();let _0x419c51=_0xefe64[_0x1d3a05];if(a0_0x419c['wbmZIM']===undefined){var _0x5a47c4=function(_0x517c88){const _0x52028a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x41f77b='',_0x1051e3='';for(let _0x5c62dc=0x0,_0x34fd63,_0x5429bd,_0x412c18=0x0;_0x5429bd=_0x517c88['charAt'](_0x412c18++);~_0x5429bd&&(_0x34fd63=_0x5c62dc%0x4?_0x34fd63*0x40+_0x5429bd:_0x5429bd,_0x5c62dc++%0x4)?_0x41f77b+=String['fromCharCode'](0xff&_0x34fd63>>(-0x2*_0x5c62dc&0x6)):0x0){_0x5429bd=_0x52028a['indexOf'](_0x5429bd);}for(let _0x527979=0x0,_0x21b044=_0x41f77b['length'];_0x527979<_0x21b044;_0x527979++){_0x1051e3+='%'+('00'+_0x41f77b['charCodeAt'](_0x527979)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1051e3);};a0_0x419c['RSYmGm']=_0x5a47c4,a0_0x419c['jPxGIT']={},a0_0x419c['wbmZIM']=!![];}const _0x5e9705=_0xefe64[0x0],_0x1d3c31=_0x1d3a05+_0x5e9705,_0x3a9ac8=a0_0x419c['jPxGIT'][_0x1d3c31];return!_0x3a9ac8?(_0x419c51=a0_0x419c['RSYmGm'](_0x419c51),a0_0x419c['jPxGIT'][_0x1d3c31]=_0x419c51):_0x419c51=_0x3a9ac8,_0x419c51;}(function(_0x47e829,_0x5a504c){const _0x5f1d91=a0_0x419c,_0x451387=_0x47e829();while(!![]){try{const _0x4eb1dc=-parseInt(_0x5f1d91(0x144))/0x1+parseInt(_0x5f1d91(0x153))/0x2+-parseInt(_0x5f1d91(0x14b))/0x3+-parseInt(_0x5f1d91(0x157))/0x4+-parseInt(_0x5f1d91(0x15d))/0x5+parseInt(_0x5f1d91(0x15e))/0x6*(parseInt(_0x5f1d91(0x145))/0x7)+parseInt(_0x5f1d91(0x147))/0x8;if(_0x4eb1dc===_0x5a504c)break;else _0x451387['push'](_0x451387['shift']());}catch(_0x23850a){_0x451387['push'](_0x451387['shift']());}}}(a0_0xefe6,0x50799));class ApiKeyManager{constructor(_0x41f77b){this['logger']=_0x41f77b,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x1051e3,_0x5c62dc){const _0x4c2027=a0_0x419c;if(!_0x1051e3)throw new Error('Session\x20ID\x20is\x20required');this['sessionKeys'][_0x4c2027(0x152)](_0x1051e3,{'loxiaApiKey':_0x5c62dc[_0x4c2027(0x149)]||null,'vendorKeys':_0x5c62dc[_0x4c2027(0x15a)]||{},'updatedAt':new Date()[_0x4c2027(0x158)]()}),this['logger']?.[_0x4c2027(0x159)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x1051e3,'hasLoxiaKey':!!_0x5c62dc[_0x4c2027(0x149)],'vendorKeys':Object['keys'](_0x5c62dc[_0x4c2027(0x15a)]||{}),'timestamp':new Date()[_0x4c2027(0x158)]()});}[a0_0x318adb(0x156)](_0x34fd63){const _0x5f1cff=a0_0x318adb;if(!_0x34fd63)return this[_0x5f1cff(0x161)];const _0x5429bd=this[_0x5f1cff(0x14e)]['get'](_0x34fd63);if(_0x5429bd)return _0x5429bd;return this['globalKeys'];}['getKeysForRequest'](_0x412c18,_0x527979={}){const _0x30c3b8=a0_0x318adb,_0x21b044=this[_0x30c3b8(0x156)](_0x412c18),_0x2c0d8f={'loxiaApiKey':_0x21b044['loxiaApiKey'],'vendorApiKey':null};return!_0x527979[_0x30c3b8(0x15f)]&&_0x527979[_0x30c3b8(0x14f)]&&_0x21b044[_0x30c3b8(0x15a)]&&(_0x2c0d8f[_0x30c3b8(0x154)]=_0x21b044[_0x30c3b8(0x15a)][_0x527979[_0x30c3b8(0x14f)]]),_0x2c0d8f;}[a0_0x318adb(0x148)](_0x52c4d7){const _0x5c4d6a=a0_0x318adb;if(this[_0x5c4d6a(0x14e)][_0x5c4d6a(0x14c)](_0x52c4d7))return this['logger']?.[_0x5c4d6a(0x159)](_0x5c4d6a(0x155),{'sessionId':_0x52c4d7}),!![];return![];}['setGlobalKeys'](_0x2113b9){const _0x34bfcb=a0_0x318adb;this[_0x34bfcb(0x161)]={'loxiaApiKey':_0x2113b9['loxiaApiKey']||this[_0x34bfcb(0x161)][_0x34bfcb(0x149)],'vendorKeys':{...this[_0x34bfcb(0x161)]['vendorKeys'],..._0x2113b9[_0x34bfcb(0x15a)]||{}}},this[_0x34bfcb(0x160)]?.[_0x34bfcb(0x159)]('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this['globalKeys']['loxiaApiKey'],'vendorKeys':Object[_0x34bfcb(0x150)](this['globalKeys'][_0x34bfcb(0x15a)])});}[a0_0x318adb(0x14d)](){const _0x52cb52=a0_0x318adb;return Array['from'](this['sessionKeys'][_0x52cb52(0x151)]())['map'](([_0x1d7e97,_0x287144])=>({'sessionId':_0x1d7e97,'hasLoxiaKey':!!_0x287144[_0x52cb52(0x149)],'vendorKeys':Object[_0x52cb52(0x150)](_0x287144['vendorKeys']||{}),'updatedAt':_0x287144[_0x52cb52(0x14a)]}));}['cleanupExpiredSessions'](_0x22b938=0x18*0x3c*0x3c*0x3e8){const _0x3baefd=a0_0x318adb,_0x50fd8d=Date['now'](),_0x5117f6=[];for(const [_0x185c92,_0x12b409]of this[_0x3baefd(0x14e)]['entries']()){const _0x5f1a32=_0x50fd8d-new Date(_0x12b409[_0x3baefd(0x14a)])[_0x3baefd(0x15c)]();_0x5f1a32>_0x22b938&&_0x5117f6['push'](_0x185c92);}return _0x5117f6['forEach'](_0x1ba635=>{this['sessionKeys']['delete'](_0x1ba635);}),_0x5117f6[_0x3baefd(0x146)]>0x0&&this['logger']?.['info'](_0x3baefd(0x15b),{'expiredSessions':_0x5117f6['length'],'remainingSessions':this[_0x3baefd(0x14e)]['size']}),_0x5117f6[_0x3baefd(0x146)];}}export default ApiKeyManager;
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 +1 @@
1
- function a0_0xb4ed(){const _0x1611b0=['x2DLDejLC3rnB2rLBezVCLrHC2S','yxbPs2v5','mJC0odqWmeLpB1rbsW','mtqWmdm0oxrHs2vIrW','rMfPBgvKihrVigLUAxrPywXPEMuGyMvUy2HTyxjRihnLCNzPy2uGlsbotYbgquXmqKfdsW','Bg9Nz2vY','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','sfruuca','z2v0vgLTzq','DgfZA3m','yMvUy2HTyxjRCW','yw5HBhLZAxm','Dw5RBM93BG','z2v0qMvUy2HTyxjRCW','mtG4mdiWmKLLswf5sq','BwfW','BMvLzhnszwzYzxnO','z2v0u3rHDhvZ','CMvMCMvZAeLUDgvYDMfS','A2v5CW','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','z2v0qMvUy2HTyxjRvgfIBgu','Bg9HzejLBMnOBwfYA3m','y29ZDa','mtm4nZq3qMr5EeLt','nevXruX1BG','DMfSDwvZ','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','x2DLDezHC3rLC3rnB2rLBa','ANnVBG','qMvHCMvYia','Aw5MBW','C3bLzwq','x2DLDe1VC3rdB3n0rwzMAwnPzw50','C3rHDhvZvgv4Da','mZe0nJq5ovPWAeTOzW','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','C3rHDhvZ','BgvUz3rO','zgvIDwC','zxjYB3i','C2nVCMu','BgfZDfvWzgf0zwq','Bw9KzwXZ','ode3mZy1nwjwEuHvtG','ndi0q0fcCKTL','Bwf4','odG4mZqXs21rwvLI'];a0_0xb4ed=function(){return _0x1611b0;};return a0_0xb4ed();}const a0_0x1da0d4=a0_0x4498;(function(_0x7a72b7,_0x490e78){const _0x515f2d=a0_0x4498,_0x25d4b3=_0x7a72b7();while(!![]){try{const _0x1cc297=-parseInt(_0x515f2d(0xb1))/0x1+-parseInt(_0x515f2d(0xb4))/0x2+parseInt(_0x515f2d(0xb5))/0x3*(parseInt(_0x515f2d(0x9b))/0x4)+parseInt(_0x515f2d(0xae))/0x5+parseInt(_0x515f2d(0x90))/0x6+parseInt(_0x515f2d(0x9a))/0x7*(parseInt(_0x515f2d(0xaf))/0x8)+-parseInt(_0x515f2d(0xa5))/0x9;if(_0x1cc297===_0x490e78)break;else _0x25d4b3['push'](_0x25d4b3['shift']());}catch(_0x4114b6){_0x25d4b3['push'](_0x25d4b3['shift']());}}}(a0_0xb4ed,0xd04fa));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x5c7edb,_0x208189){const _0x2087ff=a0_0x4498;this['config']=_0x5c7edb,this['logger']=_0x208189,this[_0x2087ff(0xbc)]=null,this[_0x2087ff(0xac)]=null,this['isLoading']=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x2087ff(0xa6)];}async['initialize'](){const _0xe95e9f=a0_0x4498;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this[_0xe95e9f(0xb7)][_0xe95e9f(0xa1)](_0xe95e9f(0x9d));}catch(_0x43e9f9){this[_0xe95e9f(0xb7)]['error'](_0xe95e9f(0xb6),{'error':_0x43e9f9['message']}),this['benchmarks']=null;}}[a0_0x1da0d4(0xbf)](){if(!this['benchmarks'])return this['logger']['error']('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async[a0_0x1da0d4(0x98)](){const _0x56c4e8=a0_0x1da0d4;if(this['isLoading']){this['logger']['debug'](_0x56c4e8(0x96));return;}this['isLoading']=!![];try{const _0x4a7220=await this['_fetchFromAzureBackend']();if(_0x4a7220)this[_0x56c4e8(0xbc)]=_0x4a7220,this['lastUpdated']=new Date(),this[_0x56c4e8(0xb7)][_0x56c4e8(0xa1)]('Benchmarks loaded from Azure backend',{'modelCount':_0x4a7220[_0x56c4e8(0xad)]?.[_0x56c4e8(0xa8)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x3d3912){this[_0x56c4e8(0xb7)][_0x56c4e8(0xaa)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x3d3912['message'],'endpoint':url}),!this['benchmarks']&&(this[_0x56c4e8(0xbc)]=null);}finally{this['isLoading']=![];}}[a0_0x1da0d4(0x97)](){const _0x35e4aa=a0_0x1da0d4,_0x10a088=this[_0x35e4aa(0xbf)]();return{'lastUpdated':this[_0x35e4aa(0xac)]?.['toISOString']()||_0x35e4aa(0xbe),'models':_0x10a088['models']||[],'tasks':_0x10a088[_0x35e4aa(0xbb)]||{},'summary':this[_0x35e4aa(0xb8)](_0x10a088)};}[a0_0x1da0d4(0x92)](){const _0x5bd2bf=a0_0x1da0d4;if(!this['lastUpdated'])return!![];const _0x205cc1=Date['now']()-this[_0x5bd2bf(0xac)][_0x5bd2bf(0xba)]();return _0x205cc1>this[_0x5bd2bf(0x94)];}async['_fetchFromAzureBackend'](){const _0x3cba4b=a0_0x1da0d4,_0x656b53=this['azureBackendUrl']+'/llm/model-benchmarks';let _0x364916=null;this['config'][_0x3cba4b(0xb3)]&&(_0x364916=this['config']['apiKey']);const _0x36868a={'method':'GET','headers':{'Content-Type':'application/json',..._0x364916&&{'Authorization':_0x3cba4b(0xa0)+_0x364916}},'timeout':0x2710};this['logger'][_0x3cba4b(0xa9)]('Fetching benchmarks from Azure backend',{'url':_0x656b53});const _0x1f7168=await fetch(_0x656b53,_0x36868a);if(!_0x1f7168['ok'])throw new Error(_0x3cba4b(0xb9)+_0x1f7168[_0x3cba4b(0xa7)]+':\x20'+_0x1f7168[_0x3cba4b(0xa4)]);const _0x23a216=await _0x1f7168[_0x3cba4b(0x9f)]();return _0x23a216;}['_generateBenchmarkSummary'](_0x254d85){const _0x5484bb=a0_0x1da0d4,_0x422e75=_0x254d85['models']||[];return{'totalModels':_0x422e75['length'],'taskCategories':Object[_0x5484bb(0x95)](_0x254d85[_0x5484bb(0xbb)]||{}),'bestForCoding':this[_0x5484bb(0xb2)](_0x422e75,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x422e75,_0x5484bb(0xbd)),'bestForQuickTasks':this[_0x5484bb(0xb2)](_0x422e75,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x422e75,'creative'),'fastestModel':this[_0x5484bb(0x9e)](_0x422e75),'mostCostEfficient':this[_0x5484bb(0xa3)](_0x422e75)};}['_getBestModelForTask'](_0x1d9e8a,_0x82cd78){const _0x28af87=a0_0x1da0d4;return _0x1d9e8a['filter'](_0x2acf5e=>_0x2acf5e[_0x28af87(0xbb)]&&_0x2acf5e[_0x28af87(0xbb)][_0x82cd78])['sort']((_0x2b5342,_0x599307)=>(_0x599307[_0x28af87(0xbb)][_0x82cd78]['score']||0x0)-(_0x2b5342[_0x28af87(0xbb)][_0x82cd78][_0x28af87(0xab)]||0x0))[0x0]?.['name']||'unknown';}[a0_0x1da0d4(0x9e)](_0x483887){const _0x247a03={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x483887['sort']((_0x57e0bf,_0x2db19c)=>{const _0x64f8c7=a0_0x4498,_0x4d21c0=Math['max'](...Object[_0x64f8c7(0x9c)](_0x57e0bf[_0x64f8c7(0xbb)]||{})['map'](_0x44ca8d=>_0x247a03[_0x44ca8d[_0x64f8c7(0xa2)]]||0x0)),_0x150370=Math[_0x64f8c7(0xb0)](...Object['values'](_0x2db19c['tasks']||{})[_0x64f8c7(0x91)](_0x1298be=>_0x247a03[_0x1298be[_0x64f8c7(0xa2)]]||0x0));return _0x150370-_0x4d21c0;})[0x0]?.['name']||'unknown';}[a0_0x1da0d4(0xa3)](_0x2ff3f3){const _0x1298e7=a0_0x1da0d4,_0x314592={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x2ff3f3['sort']((_0xde4823,_0x521d89)=>{const _0xfae019=a0_0x4498,_0x25428e=Math['max'](...Object['values'](_0xde4823[_0xfae019(0xbb)]||{})[_0xfae019(0x91)](_0x6b49a2=>_0x314592[_0x6b49a2[_0xfae019(0x99)]]||0x0)),_0x28a208=Math[_0xfae019(0xb0)](...Object[_0xfae019(0x9c)](_0x521d89[_0xfae019(0xbb)]||{})['map'](_0x151527=>_0x314592[_0x151527[_0xfae019(0x99)]]||0x0));return _0x28a208-_0x25428e;})[0x0]?.['name']||_0x1298e7(0xbe);}['_scheduleRefresh'](){const _0x56591a=a0_0x1da0d4;setInterval(async()=>{const _0x3286de=a0_0x4498;this[_0x3286de(0x92)]()&&(this['logger'][_0x3286de(0xa9)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x56591a(0x94)]);}async['forceRefresh'](){const _0x299576=a0_0x1da0d4;this['logger'][_0x299576(0xa1)]('Force\x20refreshing\x20benchmark\x20data'),await this['loadBenchmarks']();}[a0_0x1da0d4(0x93)](){const _0x317f9=a0_0x1da0d4;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.['toISOString']()||null,'source':this[_0x317f9(0xbc)]?.['source']||'unknown','modelCount':this[_0x317f9(0xbc)]?.[_0x317f9(0xad)]?.[_0x317f9(0xa8)]||0x0,'isLoading':this['isLoading'],'needsRefresh':this['needsRefresh']()};}}function a0_0x4498(_0x3f4d6b,_0x922b86){_0x3f4d6b=_0x3f4d6b-0x90;const _0xb4ed2e=a0_0xb4ed();let _0x449852=_0xb4ed2e[_0x3f4d6b];if(a0_0x4498['elFYsY']===undefined){var _0x3b950b=function(_0x3ff57e){const _0x4ab107='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5c7edb='',_0x208189='';for(let _0x43e9f9=0x0,_0x4a7220,_0x3d3912,_0x10a088=0x0;_0x3d3912=_0x3ff57e['charAt'](_0x10a088++);~_0x3d3912&&(_0x4a7220=_0x43e9f9%0x4?_0x4a7220*0x40+_0x3d3912:_0x3d3912,_0x43e9f9++%0x4)?_0x5c7edb+=String['fromCharCode'](0xff&_0x4a7220>>(-0x2*_0x43e9f9&0x6)):0x0){_0x3d3912=_0x4ab107['indexOf'](_0x3d3912);}for(let _0x205cc1=0x0,_0x656b53=_0x5c7edb['length'];_0x205cc1<_0x656b53;_0x205cc1++){_0x208189+='%'+('00'+_0x5c7edb['charCodeAt'](_0x205cc1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x208189);};a0_0x4498['mrpKJu']=_0x3b950b,a0_0x4498['cPzojX']={},a0_0x4498['elFYsY']=!![];}const _0x321aab=_0xb4ed2e[0x0],_0x253b34=_0x3f4d6b+_0x321aab,_0x2376d2=a0_0x4498['cPzojX'][_0x253b34];return!_0x2376d2?(_0x449852=a0_0x4498['mrpKJu'](_0x449852),a0_0x4498['cPzojX'][_0x253b34]=_0x449852):_0x449852=_0x2376d2,_0x449852;}export default BenchmarkService;
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 +1 @@
1
- const a0_0x16c752=a0_0x390e;function a0_0x390e(_0x4f6201,_0x25f7a1){_0x4f6201=_0x4f6201-0x1ef;const _0x3a69d2=a0_0x3a69();let _0x390e05=_0x3a69d2[_0x4f6201];if(a0_0x390e['bIiSjs']===undefined){var _0x1b39c9=function(_0x4f79ca){const _0x134808='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb28a82='',_0x891055='';for(let _0x5ea8e7=0x0,_0x413429,_0x5242e6,_0x2ce437=0x0;_0x5242e6=_0x4f79ca['charAt'](_0x2ce437++);~_0x5242e6&&(_0x413429=_0x5ea8e7%0x4?_0x413429*0x40+_0x5242e6:_0x5242e6,_0x5ea8e7++%0x4)?_0xb28a82+=String['fromCharCode'](0xff&_0x413429>>(-0x2*_0x5ea8e7&0x6)):0x0){_0x5242e6=_0x134808['indexOf'](_0x5242e6);}for(let _0x37b542=0x0,_0x2ed13a=_0xb28a82['length'];_0x37b542<_0x2ed13a;_0x37b542++){_0x891055+='%'+('00'+_0xb28a82['charCodeAt'](_0x37b542)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x891055);};a0_0x390e['WHJpZg']=_0x1b39c9,a0_0x390e['mOEYDe']={},a0_0x390e['bIiSjs']=!![];}const _0x45ad71=_0x3a69d2[0x0],_0x5b2c0e=_0x4f6201+_0x45ad71,_0x3be9b5=a0_0x390e['mOEYDe'][_0x5b2c0e];return!_0x3be9b5?(_0x390e05=a0_0x390e['WHJpZg'](_0x390e05),a0_0x390e['mOEYDe'][_0x5b2c0e]=_0x390e05):_0x390e05=_0x3be9b5,_0x390e05;}(function(_0x43683d,_0x260c97){const _0x3fc20a=a0_0x390e,_0x319079=_0x43683d();while(!![]){try{const _0x318615=parseInt(_0x3fc20a(0x24a))/0x1+-parseInt(_0x3fc20a(0x219))/0x2+-parseInt(_0x3fc20a(0x237))/0x3+-parseInt(_0x3fc20a(0x250))/0x4+-parseInt(_0x3fc20a(0x1f3))/0x5*(-parseInt(_0x3fc20a(0x218))/0x6)+-parseInt(_0x3fc20a(0x248))/0x7+parseInt(_0x3fc20a(0x202))/0x8;if(_0x318615===_0x260c97)break;else _0x319079['push'](_0x319079['shift']());}catch(_0x14a3ee){_0x319079['push'](_0x319079['shift']());}}}(a0_0x3a69,0x7a26a));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0xb28a82,_0x891055){const _0x20b009=a0_0x390e;this[_0x20b009(0x21e)]=_0xb28a82||{},this['logger']=_0x891055,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x20b009(0x1f6)],'monthly':BUDGET_LIMITS[_0x20b009(0x1fc)]},this[_0x20b009(0x227)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x20b009(0x206)],'lastAlertTimes':new Map()},this['loadUsageData'](),this['setupPeriodicSave']();}[a0_0x16c752(0x214)](_0x5ea8e7,_0x413429,_0x5242e6){const _0x181969=a0_0x16c752;try{const _0x2ce437=this[_0x181969(0x205)](_0x413429,_0x5242e6),_0x37b542=new Date(),_0x2ed13a=this[_0x181969(0x246)](_0x37b542),_0x1a64b1=this[_0x181969(0x228)](_0x37b542),_0x112695=this[_0x181969(0x1f1)](_0x37b542);this['initializeUsageEntry'](this['usage']['daily'],_0x2ed13a),this[_0x181969(0x23b)](this['usage']['weekly'],_0x1a64b1),this['initializeUsageEntry'](this[_0x181969(0x229)][_0x181969(0x1f0)],_0x112695);const _0x5dea44={'agentId':_0x5ea8e7,'modelId':_0x413429,'tokens':_0x5242e6[_0x181969(0x247)],'cost':_0x2ce437,'timestamp':_0x37b542['toISOString']()};return this[_0x181969(0x211)](this[_0x181969(0x229)][_0x181969(0x23e)]['get'](_0x2ed13a),_0x5dea44),this[_0x181969(0x211)](this['usage']['weekly']['get'](_0x1a64b1),_0x5dea44),this['updateUsageEntry'](this['usage'][_0x181969(0x1f0)][_0x181969(0x1fa)](_0x112695),_0x5dea44),this['usage'][_0x181969(0x215)][_0x181969(0x203)]+=_0x5242e6['total_tokens'],this[_0x181969(0x229)]['total'][_0x181969(0x225)]+=_0x2ce437,this['usage'][_0x181969(0x215)]['requests']+=0x1,this['checkBudgetLimits'](_0x2ed13a,_0x1a64b1,_0x112695),this['logger'][_0x181969(0x1f9)](_0x181969(0x21d),{'agentId':_0x5ea8e7,'modelId':_0x413429,'tokens':_0x5242e6['total_tokens'],'cost':_0x2ce437,'totalCost':this['usage'][_0x181969(0x215)]['cost']}),{'cost':_0x2ce437,'totalCost':this[_0x181969(0x229)]['total'][_0x181969(0x225)],'totalTokens':this['usage'][_0x181969(0x215)][_0x181969(0x203)],'dailyUsage':this[_0x181969(0x229)]['daily'][_0x181969(0x1fa)](_0x2ed13a),'budgetRemaining':this[_0x181969(0x216)]()};}catch(_0xc9fddb){this['logger']['error'](_0x181969(0x24d),{'error':_0xc9fddb[_0x181969(0x22c)],'agentId':_0x5ea8e7,'modelId':_0x413429});throw _0xc9fddb;}}['calculateCost'](_0x27645c,_0x309d8e){const _0x4b70ff=a0_0x16c752,_0x742b34=COST_PER_TOKEN[_0x27645c];if(!_0x742b34)return this[_0x4b70ff(0x209)][_0x4b70ff(0x21b)](_0x4b70ff(0x1fd),{'modelId':_0x27645c}),0x0;const _0x36bc01=(_0x309d8e[_0x4b70ff(0x241)]||0x0)*_0x742b34['input'],_0x4c88f6=(_0x309d8e['completion_tokens']||0x0)*_0x742b34[_0x4b70ff(0x1fe)];return _0x36bc01+_0x4c88f6;}['getUsage'](_0xd82055=a0_0x16c752(0x23e),_0x9e1020=new Date()){const _0x15c0ae=a0_0x16c752;switch(_0xd82055){case'daily':return this['usage']['daily'][_0x15c0ae(0x1fa)](this[_0x15c0ae(0x246)](_0x9e1020))||this[_0x15c0ae(0x22b)]();case'weekly':return this['usage'][_0x15c0ae(0x22e)]['get'](this[_0x15c0ae(0x228)](_0x9e1020))||this['createEmptyUsage']();case'monthly':return this[_0x15c0ae(0x229)][_0x15c0ae(0x1f0)][_0x15c0ae(0x1fa)](this[_0x15c0ae(0x1f1)](_0x9e1020))||this['createEmptyUsage']();case _0x15c0ae(0x215):return{...this['usage']['total']};default:throw new Error(_0x15c0ae(0x226)+_0xd82055);}}[a0_0x16c752(0x1f2)](_0x38cbfd,_0x909784='daily'){const _0x5d314b=a0_0x16c752,_0x13249a=this['getUsage'](_0x909784);return _0x13249a[_0x5d314b(0x212)]?.[_0x38cbfd]||this[_0x5d314b(0x22b)]();}[a0_0x16c752(0x245)](_0x1d5d71,_0x28b572=a0_0x16c752(0x23e)){const _0x18a6d6=a0_0x16c752,_0x384c76=this[_0x18a6d6(0x208)](_0x28b572);return _0x384c76['byModel']?.[_0x1d5d71]||this['createEmptyUsage']();}['setBudgets'](_0x22bf27){const _0x57e0f0=a0_0x16c752;if(_0x22bf27[_0x57e0f0(0x23e)]!==undefined)this['budgets']['daily']=_0x22bf27['daily'];if(_0x22bf27['weekly']!==undefined)this['budgets']['weekly']=_0x22bf27['weekly'];if(_0x22bf27[_0x57e0f0(0x1f0)]!==undefined)this['budgets'][_0x57e0f0(0x1f0)]=_0x22bf27[_0x57e0f0(0x1f0)];this[_0x57e0f0(0x209)][_0x57e0f0(0x1f9)]('Budget\x20limits\x20updated',this[_0x57e0f0(0x23a)]),this['saveUsageData']();}[a0_0x16c752(0x216)](){const _0x59ff9c=a0_0x16c752,_0x1dcb9f=new Date(),_0x3cb77f=this['getUsage'](_0x59ff9c(0x23e),_0x1dcb9f),_0x531532=this['getUsage'](_0x59ff9c(0x22e),_0x1dcb9f),_0x35f499=this[_0x59ff9c(0x208)]('monthly',_0x1dcb9f);return{'daily':Math['max'](0x0,this['budgets'][_0x59ff9c(0x23e)]-_0x3cb77f['cost']),'weekly':Math[_0x59ff9c(0x1f4)](0x0,this['budgets'][_0x59ff9c(0x22e)]-_0x531532['cost']),'monthly':Math['max'](0x0,this['budgets'][_0x59ff9c(0x1f0)]-_0x35f499[_0x59ff9c(0x225)])};}['isWithinBudget'](_0xaffcd='daily'){const _0x4a9086=this['getUsage'](_0xaffcd),_0x574bbb=this['budgets'][_0xaffcd];return _0x4a9086['cost']<=_0x574bbb;}[a0_0x16c752(0x1ff)](_0x1ff05c=0x1e){const _0x44d813=a0_0x16c752,_0x18f15a={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x2ac997=new Date();let _0x5ad5a8=0x0,_0x3a6821=0x0,_0x4231e1=0x0;const _0x4caf45=new Map(),_0x41e91b=new Map();for(let _0x12dd2d=0x0;_0x12dd2d<_0x1ff05c;_0x12dd2d++){const _0x5b018d=new Date(_0x2ac997);_0x5b018d[_0x44d813(0x24f)](_0x5b018d['getDate']()-_0x12dd2d);const _0x4b8fa6=this['getDayKey'](_0x5b018d),_0x325a96=this['usage'][_0x44d813(0x23e)][_0x44d813(0x1fa)](_0x4b8fa6);_0x325a96?(_0x5ad5a8+=_0x325a96[_0x44d813(0x225)],_0x3a6821+=_0x325a96[_0x44d813(0x203)],_0x4231e1+=_0x325a96[_0x44d813(0x20f)],_0x18f15a[_0x44d813(0x20d)]['unshift']({'date':_0x4b8fa6,'cost':_0x325a96['cost']}),_0x18f15a[_0x44d813(0x21c)][_0x44d813(0x21f)]({'date':_0x4b8fa6,'tokens':_0x325a96[_0x44d813(0x203)]}),Object['entries'](_0x325a96['byAgent']||{})[_0x44d813(0x21a)](([_0x5674c8,_0x3c3415])=>{const _0x2414a3=_0x44d813;!_0x4caf45[_0x2414a3(0x22d)](_0x5674c8)&&_0x4caf45['set'](_0x5674c8,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x233e94=_0x4caf45['get'](_0x5674c8);_0x233e94[_0x2414a3(0x225)]+=_0x3c3415[_0x2414a3(0x225)],_0x233e94['tokens']+=_0x3c3415['tokens'],_0x233e94[_0x2414a3(0x20f)]+=_0x3c3415[_0x2414a3(0x20f)];}),Object['entries'](_0x325a96['byModel']||{})['forEach'](([_0x33d2c2,_0x45c487])=>{const _0x504985=_0x44d813;!_0x41e91b[_0x504985(0x22d)](_0x33d2c2)&&_0x41e91b[_0x504985(0x236)](_0x33d2c2,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x262f03=_0x41e91b['get'](_0x33d2c2);_0x262f03['cost']+=_0x45c487['cost'],_0x262f03['tokens']+=_0x45c487['tokens'],_0x262f03['requests']+=_0x45c487[_0x504985(0x20f)];})):(_0x18f15a[_0x44d813(0x20d)][_0x44d813(0x21f)]({'date':_0x4b8fa6,'cost':0x0}),_0x18f15a['tokensByDay']['unshift']({'date':_0x4b8fa6,'tokens':0x0}));}return _0x18f15a['dailyAverages']['cost']=_0x5ad5a8/_0x1ff05c,_0x18f15a[_0x44d813(0x243)]['tokens']=_0x3a6821/_0x1ff05c,_0x18f15a['dailyAverages'][_0x44d813(0x20f)]=_0x4231e1/_0x1ff05c,_0x18f15a[_0x44d813(0x213)]=Array[_0x44d813(0x231)](_0x4caf45['entries']())[_0x44d813(0x24b)](([_0x300226,_0x4b72af])=>({'id':_0x300226,..._0x4b72af}))[_0x44d813(0x20a)]((_0x1c2a8c,_0x30ea0e)=>_0x30ea0e['cost']-_0x1c2a8c[_0x44d813(0x225)])[_0x44d813(0x233)](0x0,0xa),_0x18f15a['topModels']=Array[_0x44d813(0x231)](_0x41e91b[_0x44d813(0x238)]())['map'](([_0x4eb478,_0x3091bb])=>({'id':_0x4eb478,..._0x3091bb}))['sort']((_0x18dd49,_0xf6a556)=>_0xf6a556[_0x44d813(0x225)]-_0x18dd49['cost'])[_0x44d813(0x233)](0x0,0xa),_0x18f15a;}[a0_0x16c752(0x23d)](_0x45b10f=a0_0x16c752(0x235),_0x5f584c=null,_0x5b7b22=null){const _0x5d410d=a0_0x16c752,_0x23c270={'budgets':this['budgets'],'total':this['usage'][_0x5d410d(0x215)],'daily':{},'weekly':{},'monthly':{}},_0x505378=(_0x24bc4d,_0x3a5fde)=>{const _0x5250c8={};return _0x24bc4d['forEach']((_0x566b36,_0x1900c2)=>{const _0xa1cd43=_0x3a5fde(_0x1900c2);(!_0x5f584c||_0xa1cd43>=_0x5f584c)&&(!_0x5b7b22||_0xa1cd43<=_0x5b7b22)&&(_0x5250c8[_0x1900c2]=_0x566b36);}),_0x5250c8;};_0x5f584c||_0x5b7b22?(_0x23c270['daily']=_0x505378(this['usage'][_0x5d410d(0x23e)],_0x58e290=>new Date(_0x58e290)),_0x23c270[_0x5d410d(0x22e)]=_0x505378(this['usage']['weekly'],_0x13c6d6=>new Date(_0x13c6d6)),_0x23c270['monthly']=_0x505378(this[_0x5d410d(0x229)][_0x5d410d(0x1f0)],_0x516477=>new Date(_0x516477+_0x5d410d(0x20b)))):(this[_0x5d410d(0x229)]['daily']['forEach']((_0x277d2e,_0x4b4931)=>_0x23c270[_0x5d410d(0x23e)][_0x4b4931]=_0x277d2e),this['usage']['weekly']['forEach']((_0x543572,_0x514095)=>_0x23c270['weekly'][_0x514095]=_0x543572),this[_0x5d410d(0x229)][_0x5d410d(0x1f0)]['forEach']((_0x322b80,_0x397b15)=>_0x23c270['monthly'][_0x397b15]=_0x322b80));if(_0x45b10f===_0x5d410d(0x244))return this['convertToCSV'](_0x23c270);return JSON['stringify'](_0x23c270,null,0x2);}['initializeUsageEntry'](_0x45fc9a,_0x465191){const _0x113abf=a0_0x16c752;!_0x45fc9a['has'](_0x465191)&&_0x45fc9a['set'](_0x465191,this[_0x113abf(0x22b)]());}[a0_0x16c752(0x22b)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x16c752(0x211)](_0x423079,_0x22fa18){const _0x580714=a0_0x16c752;_0x423079[_0x580714(0x225)]+=_0x22fa18[_0x580714(0x225)],_0x423079[_0x580714(0x203)]+=_0x22fa18['tokens'],_0x423079[_0x580714(0x20f)]+=0x1,!_0x423079['byAgent'][_0x22fa18[_0x580714(0x230)]]&&(_0x423079['byAgent'][_0x22fa18[_0x580714(0x230)]]=this['createEmptyUsage']()),_0x423079['byAgent'][_0x22fa18[_0x580714(0x230)]][_0x580714(0x225)]+=_0x22fa18['cost'],_0x423079['byAgent'][_0x22fa18['agentId']][_0x580714(0x203)]+=_0x22fa18[_0x580714(0x203)],_0x423079['byAgent'][_0x22fa18[_0x580714(0x230)]][_0x580714(0x20f)]+=0x1,!_0x423079[_0x580714(0x217)][_0x22fa18[_0x580714(0x242)]]&&(_0x423079['byModel'][_0x22fa18[_0x580714(0x242)]]=this['createEmptyUsage']()),_0x423079[_0x580714(0x217)][_0x22fa18['modelId']]['cost']+=_0x22fa18['cost'],_0x423079[_0x580714(0x217)][_0x22fa18['modelId']][_0x580714(0x203)]+=_0x22fa18['tokens'],_0x423079['byModel'][_0x22fa18['modelId']][_0x580714(0x20f)]+=0x1;}['checkBudgetLimits'](_0x4312b9,_0x235d7a,_0x2479d1){const _0xa5f2eb=a0_0x16c752,_0x85e80f=this[_0xa5f2eb(0x229)]['daily']['get'](_0x4312b9),_0x10468c=this[_0xa5f2eb(0x229)]['weekly'][_0xa5f2eb(0x1fa)](_0x235d7a),_0x143b15=this['usage']['monthly'][_0xa5f2eb(0x1fa)](_0x2479d1);_0x85e80f[_0xa5f2eb(0x225)]>this['budgets']['daily']&&this['sendBudgetAlert'](_0xa5f2eb(0x23e),_0x85e80f['cost'],this['budgets']['daily']),_0x10468c['cost']>this[_0xa5f2eb(0x23a)]['weekly']&&this['sendBudgetAlert'](_0xa5f2eb(0x22e),_0x10468c['cost'],this[_0xa5f2eb(0x23a)]['weekly']),_0x143b15[_0xa5f2eb(0x225)]>this['budgets']['monthly']&&this['sendBudgetAlert']('monthly',_0x143b15['cost'],this[_0xa5f2eb(0x23a)]['monthly']),this['checkThresholdAlerts'](_0x85e80f,_0x10468c,_0x143b15);}[a0_0x16c752(0x20e)](_0xccacaa,_0xdfe6b8,_0x54923a){const _0x233748=a0_0x16c752,_0x4f9b23=this['alerts'][_0x233748(0x222)];this['checkThreshold'](_0x233748(0x23e),_0xccacaa['cost'],this[_0x233748(0x23a)]['daily'],_0x4f9b23),this[_0x233748(0x224)](_0x233748(0x22e),_0xdfe6b8[_0x233748(0x225)],this[_0x233748(0x23a)]['weekly'],_0x4f9b23),this[_0x233748(0x224)](_0x233748(0x1f0),_0x54923a[_0x233748(0x225)],this[_0x233748(0x23a)][_0x233748(0x1f0)],_0x4f9b23);}[a0_0x16c752(0x224)](_0x1cf39d,_0x49866c,_0x450909,_0x3fe17d){const _0x2ee4af=a0_0x16c752,_0x5022fb=_0x49866c/_0x450909*0x64;for(const _0xdc5f6f of _0x3fe17d){if(_0x5022fb>=_0xdc5f6f){const _0x3e8869=_0x1cf39d+'_'+_0xdc5f6f,_0x4316b9=this[_0x2ee4af(0x227)]['lastAlertTimes']['get'](_0x3e8869),_0x42a7b7=Date[_0x2ee4af(0x23f)]();(!_0x4316b9||_0x42a7b7-_0x4316b9>0x36ee80)&&(this[_0x2ee4af(0x251)](_0x1cf39d,_0x5022fb,_0xdc5f6f,_0x49866c,_0x450909),this['alerts'][_0x2ee4af(0x239)][_0x2ee4af(0x236)](_0x3e8869,_0x42a7b7));break;}}}['sendBudgetAlert'](_0x3a1357,_0x4d2154,_0x598fba){const _0x4b24ab=a0_0x16c752;this[_0x4b24ab(0x209)]['warn'](_0x4b24ab(0x24c),{'period':_0x3a1357,'currentUsage':_0x4d2154,'budgetLimit':_0x598fba,'excess':_0x4d2154-_0x598fba}),typeof process!=='undefined'&&process['emit']&&process['emit'](_0x4b24ab(0x240),{'type':_0x4b24ab(0x210),'period':_0x3a1357,'currentUsage':_0x4d2154,'budgetLimit':_0x598fba,'excess':_0x4d2154-_0x598fba});}['sendThresholdAlert'](_0x5c1b3b,_0x55d7b9,_0x587673,_0x25e076,_0x3648dc){const _0x2ba884=a0_0x16c752;this['logger'][_0x2ba884(0x21b)]('Budget\x20threshold\x20reached',{'period':_0x5c1b3b,'percentage':Math['round'](_0x55d7b9),'threshold':_0x587673,'usage':_0x25e076,'budget':_0x3648dc}),typeof process!=='undefined'&&process[_0x2ba884(0x22a)]&&process['emit']('budgetAlert',{'type':_0x2ba884(0x232),'period':_0x5c1b3b,'percentage':Math[_0x2ba884(0x223)](_0x55d7b9),'threshold':_0x587673,'usage':_0x25e076,'budget':_0x3648dc});}[a0_0x16c752(0x246)](_0x521589){const _0x154667=a0_0x16c752;return _0x521589[_0x154667(0x220)]()[_0x154667(0x200)]('T')[0x0];}['getWeekKey'](_0xdd24f8){const _0x4ed6b5=a0_0x16c752,_0x49c35a=_0xdd24f8['getFullYear'](),_0x3985cb=this['getWeekNumber'](_0xdd24f8);return _0x49c35a+'-W'+_0x3985cb[_0x4ed6b5(0x1f5)]()['padStart'](0x2,'0');}['getMonthKey'](_0x2ef0c1){const _0x5d4897=a0_0x16c752,_0x1eb889=_0x2ef0c1[_0x5d4897(0x22f)](),_0x347c7f=_0x2ef0c1['getMonth']()+0x1;return _0x1eb889+'-'+_0x347c7f[_0x5d4897(0x1f5)]()[_0x5d4897(0x207)](0x2,'0');}[a0_0x16c752(0x1f7)](_0x1986cc){const _0x337753=a0_0x16c752,_0x377b82=new Date(_0x1986cc['getFullYear'](),0x0,0x1),_0x1142e1=(_0x1986cc-_0x377b82)/0x5265c00;return Math[_0x337753(0x201)]((_0x1142e1+_0x377b82['getDay']()+0x1)/0x7);}['convertToCSV'](_0x269fdc){const _0x407b73=a0_0x16c752,_0x42f6f3=[];return _0x42f6f3['push']([_0x407b73(0x24e),'Date','Cost','Tokens',_0x407b73(0x23c),_0x407b73(0x221),_0x407b73(0x249)]),Object[_0x407b73(0x238)](_0x269fdc['daily'])[_0x407b73(0x21a)](([_0x5d5ba1,_0x2627de])=>{const _0x1e5527=_0x407b73;_0x42f6f3['push']([_0x1e5527(0x20c),_0x5d5ba1,_0x2627de[_0x1e5527(0x225)],_0x2627de['tokens'],_0x2627de[_0x1e5527(0x20f)],'','']),Object['entries'](_0x2627de['byAgent']||{})[_0x1e5527(0x21a)](([_0x1adfc3,_0xaef986])=>{const _0x1c693f=_0x1e5527;_0x42f6f3['push']([_0x1c693f(0x20c),_0x5d5ba1,_0xaef986[_0x1c693f(0x225)],_0xaef986['tokens'],_0xaef986[_0x1c693f(0x20f)],_0x1adfc3,'']);});}),_0x42f6f3[_0x407b73(0x24b)](_0x59abf9=>_0x59abf9['join'](','))['join']('\x0a');}['loadUsageData'](){const _0x11648c=a0_0x16c752;try{this['logger']['info'](_0x11648c(0x204));}catch(_0x23dc44){this['logger']['error'](_0x11648c(0x1ef),{'error':_0x23dc44['message']});}}[a0_0x16c752(0x1f8)](){const _0x1e552d=a0_0x16c752;try{this['logger']['debug'](_0x1e552d(0x234));}catch(_0x5c3534){this[_0x1e552d(0x209)]['error'](_0x1e552d(0x1fb),{'error':_0x5c3534[_0x1e552d(0x22c)]});}}['setupPeriodicSave'](){setInterval(()=>{const _0x5d8b1f=a0_0x390e;this[_0x5d8b1f(0x1f8)]();},0x493e0);}}function a0_0x3a69(){const _0x4cc5b1=['Dg9Rzw5Z','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','y2fSy3vSyxrLq29ZDa','veHsrvnit0XeuW','CgfKu3rHCNq','z2v0vxnHz2u','Bg9Nz2vY','C29YDa','ltaX','rgfPBhK','y29ZDej5rgf5','y2HLy2TuAhjLC2HVBgrbBgvYDhm','CMvXDwvZDhm','yNvKz2v0x2v4y2vLzgvK','DxbKyxrLvxnHz2vfBNrYEq','yNLbz2vUDa','Dg9WqwDLBNrZ','DhjHy2TvC2fNzq','Dg90ywW','z2v0uMvTywLUAw5NqNvKz2v0','yNLnB2rLBa','nKrns01gzW','mta3ntCZog1IC2ztsq','zM9YrwfJAa','D2fYBG','Dg9Rzw5ZqNLeyxK','vxnHz2uGDhjHy2TLza','y29UzMLN','Dw5ZAgLMDa','Dg9ju09tDhjPBMC','qwDLBNq','DgHYzxnOB2XKCW','CM91BMq','y2HLy2TuAhjLC2HVBgq','y29ZDa','sw52ywXPzcbWzxjPB2q6ia','ywXLCNrZ','z2v0v2vLA0TLEq','DxnHz2u','zw1PDa','y3jLyxrLrw1WDhLvC2fNzq','BwvZC2fNzq','AgfZ','D2vLA2X5','z2v0rNvSBfLLyxi','ywDLBNrjza','zNjVBq','DgHYzxnOB2XKx3jLywnOzwq','C2XPy2u','vxnHz2uGzgf0ysbZyxzLza','ANnVBG','C2v0','mJaZmZu0mujUwKnnBq','zw50CMLLCW','BgfZDefSzxj0vgLTzxm','yNvKz2v0CW','Aw5PDgLHBgL6zvvZywDLrw50CNK','uMvXDwvZDhm','zxHWB3j0vxnHz2veyxrH','zgfPBhK','BM93','yNvKz2v0qwXLCNq','ChjVBxb0x3rVA2vUCW','Bw9KzwXjza','zgfPBhLbDMvYywDLCW','y3n2','z2v0tw9KzwXvC2fNzq','z2v0rgf5s2v5','Dg90ywXFDg9Rzw5Z','ntuZmtKXogfwugXIBq','tw9KzwW','ndmYntr3q1zkCfm','BwfW','qNvKz2v0igXPBwL0igv4y2vLzgvK','rMfPBgvKihrVihrYywnRihvZywDL','ugvYAw9K','C2v0rgf0zq','nZC2otqWs0Puuw1I','C2vUzfrOCMvZAg9SzefSzxj0','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','Bw9UDgHSEq','z2v0tw9UDgHlzxK','z2v0qwDLBNrvC2fNzq','mtK4mdy3meftB09cAG','Bwf4','Dg9tDhjPBMC','v0vfs0Xz','z2v0v2vLA051BwjLCG','C2f2zvvZywDLrgf0yq','Aw5MBW','z2v0','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','tu9oveHmwq','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','B3v0Chv0','z2v0vxnHz2vuCMvUzhm','C3bSAxq','y2vPBa','mtGWodKZmZzoq0vvBNq'];a0_0x3a69=function(){return _0x4cc5b1;};return a0_0x3a69();}export default BudgetService;
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 +1 @@
1
- function a0_0x1ee2(_0x681f59,_0xd92735){_0x681f59=_0x681f59-0xde;const _0x2836d5=a0_0x2836();let _0x1ee2ea=_0x2836d5[_0x681f59];if(a0_0x1ee2['UqPcMq']===undefined){var _0x1dc8f8=function(_0x5bd17f){const _0x2d8509='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x107faf='',_0x2b68cb='';for(let _0x5cab88=0x0,_0x550ad6,_0x3068fb,_0x3585b7=0x0;_0x3068fb=_0x5bd17f['charAt'](_0x3585b7++);~_0x3068fb&&(_0x550ad6=_0x5cab88%0x4?_0x550ad6*0x40+_0x3068fb:_0x3068fb,_0x5cab88++%0x4)?_0x107faf+=String['fromCharCode'](0xff&_0x550ad6>>(-0x2*_0x5cab88&0x6)):0x0){_0x3068fb=_0x2d8509['indexOf'](_0x3068fb);}for(let _0x3d469a=0x0,_0x3be1a8=_0x107faf['length'];_0x3d469a<_0x3be1a8;_0x3d469a++){_0x2b68cb+='%'+('00'+_0x107faf['charCodeAt'](_0x3d469a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b68cb);};a0_0x1ee2['ErkEiO']=_0x1dc8f8,a0_0x1ee2['nhEhcx']={},a0_0x1ee2['UqPcMq']=!![];}const _0xf3944e=_0x2836d5[0x0],_0x336ecf=_0x681f59+_0xf3944e,_0x24f813=a0_0x1ee2['nhEhcx'][_0x336ecf];return!_0x24f813?(_0x1ee2ea=a0_0x1ee2['ErkEiO'](_0x1ee2ea),a0_0x1ee2['nhEhcx'][_0x336ecf]=_0x1ee2ea):_0x1ee2ea=_0x24f813,_0x1ee2ea;}const a0_0x119fb1=a0_0x1ee2;(function(_0x2e4d36,_0x2ca494){const _0x349c70=a0_0x1ee2,_0xadea37=_0x2e4d36();while(!![]){try{const _0x38bf67=parseInt(_0x349c70(0xe3))/0x1*(parseInt(_0x349c70(0x10e))/0x2)+-parseInt(_0x349c70(0x103))/0x3+-parseInt(_0x349c70(0xe1))/0x4*(parseInt(_0x349c70(0xef))/0x5)+parseInt(_0x349c70(0x10f))/0x6+-parseInt(_0x349c70(0xf4))/0x7*(parseInt(_0x349c70(0xfa))/0x8)+parseInt(_0x349c70(0xff))/0x9*(-parseInt(_0x349c70(0xe2))/0xa)+-parseInt(_0x349c70(0xf3))/0xb*(-parseInt(_0x349c70(0xe9))/0xc);if(_0x38bf67===_0x2ca494)break;else _0xadea37['push'](_0xadea37['shift']());}catch(_0x310b14){_0xadea37['push'](_0xadea37['shift']());}}}(a0_0x2836,0xef04b));import a0_0x107faf from'./fileAttachmentService.js';function a0_0x2836(){const _0x19be58=['Dg9gAxHLza','zM9YBwf0ugrMrMLSzq','jMX0oW','zM9YBwf0uMvMzxjLBMnLrMLSzq','Aw5PDgLHBgL6zq','jMfWB3m7','CMvMzxjLBMnL','iIbTB2rPzMLLzd0I','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','mLDbA1zrCq','nJeXntiWnLzgEKTctG','Dg9ju09tDhjPBMC','C3bSAxq','ica8zMLSzsbUyw1Lpsi','Bw9Kzq','jMD0oW','cJXMAwXLlxjLzMvYzw5Jzxm+cG','cIaGpc9MAwXLpG','Bg9Nz2vY','zxnJyxbLwg1S','ntG1mMjPu2vkEq','mJyZmdeWBMPkBvPi','mJC1nJeXvMjfB0DU','Dgv4Da','cJXHDhrHy2HLzc1MAwXLCZ4k','C2L6zq','iIbZAxPLpsi','Cg93','nZiXnJq4ntz4EMLbyNu','zMLSzuLK','CMvWBgfJzq','yxr0ywnOBwvUDfnLCNzPy2u','BwvZC2fNzq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','ntK2nxzYCuvJza','iIaVpG','zMLSzu5HBwu','CgrM','mtfQueTYtwK','nZKZotC1qxr5rLP3','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zM9YBwf0vgv4DezPBgu','BgvUz3rO','zMLSDgvY','Dg9Rzw5fC3rPBwf0zq','mteYuM9MDe1S','qNL0zxm','zM9YBwf0sw1Hz2vgAwXL','zMXVB3i','iIbWyxrOpsi','ndiZDKrnBLnq','s0iIig1Vzgu9iMnVBNrLBNqIpGO','zM9YBwf0qNL0zxm','iIb0ExbLpsi','nti4mdiYnuLSzhjeAG','zxjYB3i'];a0_0x2836=function(){return _0x19be58;};return a0_0x2836();}class ContextInjectionService{constructor(_0x2b68cb={},_0x5cab88=null){const _0x49b542=a0_0x1ee2;this['config']=_0x2b68cb,this['logger']=_0x5cab88,this[_0x49b542(0xec)]=new a0_0x107faf(_0x2b68cb,_0x5cab88);}async[a0_0x119fb1(0x109)](){await this['attachmentService']['initialize']();}async['buildDynamicContext'](_0x550ad6){const _0x117fce=a0_0x119fb1;try{const _0x3068fb=await this['attachmentService']['getActiveAttachments'](_0x550ad6);if(_0x3068fb[_0x117fce(0xf7)]===0x0)return'';const _0x3585b7=_0x3068fb['filter'](_0x366543=>_0x366543[_0x117fce(0x113)]==='content'),_0x3d469a=_0x3068fb['filter'](_0x5d6b16=>_0x5d6b16['mode']===_0x117fce(0x10b));let _0x3be1a8='';if(_0x3585b7['length']>0x0){_0x3be1a8+=_0x117fce(0xe5);for(const _0x512c0d of _0x3585b7){const _0x1e5a5d=await this[_0x117fce(0xec)]['getAttachmentContent'](_0x512c0d[_0x117fce(0xea)]);if(_0x1e5a5d){const _0x38bcfc=this['formatContentFile'](_0x512c0d,_0x1e5a5d);_0x3be1a8+=_0x38bcfc+'\x0a';}}_0x3be1a8+='</attached-files>\x0a';}if(_0x3d469a['length']>0x0){_0x3be1a8+=_0x117fce(0x115);for(const _0x13a160 of _0x3d469a){const _0x21fc58=this[_0x117fce(0x108)](_0x13a160);_0x3be1a8+=_0x21fc58+'\x0a';}_0x3be1a8+=_0x117fce(0xf5),_0x3be1a8+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x3be1a8;}catch(_0x1245b6){return this[_0x117fce(0xdf)]?.['error']('Error\x20building\x20dynamic\x20context',{'agentId':_0x550ad6,'error':_0x1245b6['message']}),'';}}['formatContentFile'](_0x5b34e9,_0xe01fc4){const _0x537daf=a0_0x119fb1,{fileName:_0x1ab11b,fileType:_0x2a1a0f,size:_0x91fe2d,contentType:_0x3d6c32}=_0x5b34e9,_0xddedfc=(_0x91fe2d/0x400)[_0x537daf(0x105)](0x2);if(_0x3d6c32===_0x537daf(0xe4))return this[_0x537daf(0xf6)](_0x5b34e9,_0xe01fc4);else{if(_0x3d6c32==='image')return this[_0x537daf(0xfc)](_0x5b34e9,_0xe01fc4);else{if(_0x3d6c32===_0x537daf(0xf2))return this[_0x537daf(0x106)](_0x5b34e9,_0xe01fc4);}}return _0x537daf(0x112)+this[_0x537daf(0xe0)](_0x1ab11b)+_0x537daf(0x102)+_0x2a1a0f+'\x22\x20size=\x22'+_0xddedfc+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0xe01fc4)+_0x537daf(0xde);}['formatTextFile'](_0x5e2207,_0x31ef9b){const _0x41364a=a0_0x119fb1,{fileName:_0x30373f,fileType:_0x506293,size:_0x1b87f3}=_0x5e2207,_0x5f594b=(_0x1b87f3/0x400)[_0x41364a(0x105)](0x2);return _0x41364a(0x112)+this[_0x41364a(0xe0)](_0x30373f)+_0x41364a(0x102)+_0x506293+_0x41364a(0xe7)+_0x5f594b+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x31ef9b)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x2e2a77,_0x1b7baa){const _0x2c78ab=a0_0x119fb1,{fileName:_0x5c9b8f,fileType:_0x4839b0,size:_0x32bc61}=_0x2e2a77,_0x2f0889=(_0x32bc61/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x5c9b8f)+'\x22\x20type=\x22'+_0x4839b0+'\x22\x20size=\x22'+_0x2f0889+_0x2c78ab(0x100)+_0x1b7baa+'\x0a\x20\x20</file>';}['formatPdfFile'](_0xef0200,_0x997abc){const _0x5093ee=a0_0x119fb1,{fileName:_0x2cbbe7,fileType:_0x2dfa24,size:_0x27aece}=_0xef0200,_0x512204=(_0x27aece/0x400)[_0x5093ee(0x105)](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x5093ee(0xe0)](_0x2cbbe7)+_0x5093ee(0x102)+_0x2dfa24+'\x22\x20size=\x22'+_0x512204+_0x5093ee(0x100)+this[_0x5093ee(0xe0)](_0x997abc)+_0x5093ee(0xde);}['formatReferenceFile'](_0x5b9372){const _0x13be4b=a0_0x119fb1,{fileName:_0x46637a,originalPath:_0x423dc6,size:_0x318b74,fileType:_0xc89e92,lastModified:_0x8f3904}=_0x5b9372,_0x178b40=this[_0x13be4b(0x101)](_0x318b74),_0x173642=new Date(_0x8f3904)[_0x13be4b(0x110)]()[_0x13be4b(0x111)]('T')[0x0];return'\x20\x20<file\x20name=\x22'+this[_0x13be4b(0xe0)](_0x46637a)+_0x13be4b(0xfe)+this['escapeXml'](_0x423dc6)+_0x13be4b(0xe7)+_0x178b40+'\x22\x20type=\x22'+_0xc89e92+_0x13be4b(0x10c)+_0x173642+_0x13be4b(0xf0);}['escapeXml'](_0x1dc8c4){const _0x3e33a6=a0_0x119fb1;if(!_0x1dc8c4)return'';return _0x1dc8c4[_0x3e33a6(0xeb)](/&/g,'&amp;')['replace'](/</g,_0x3e33a6(0x107))['replace'](/>/g,_0x3e33a6(0x114))[_0x3e33a6(0xeb)](/"/g,'&quot;')['replace'](/'/g,_0x3e33a6(0x10a));}['formatBytes'](_0x4f3df2){const _0x1c5360=a0_0x119fb1;if(_0x4f3df2===0x0)return'0\x20Bytes';const _0x1997d5=0x400,_0x38e4d1=[_0x1c5360(0xfb),'KB','MB','GB'],_0x474f48=Math[_0x1c5360(0xfd)](Math['log'](_0x4f3df2)/Math['log'](_0x1997d5));return parseFloat((_0x4f3df2/Math[_0x1c5360(0xe8)](_0x1997d5,_0x474f48))['toFixed'](0x2))+_0x38e4d1[_0x474f48];}async['estimateTotalTokens'](_0x10219c){const _0x1045e5=a0_0x119fb1;try{const _0xca9787=await this[_0x1045e5(0xec)][_0x1045e5(0xee)](_0x10219c);let _0x16f02a=0x0;for(const _0x1d0f15 of _0xca9787){_0x1d0f15['mode']==='content'?_0x16f02a+=_0x1d0f15[_0x1045e5(0xf9)]||0x0:_0x16f02a+=0x14;}return _0x16f02a;}catch(_0x2a4004){return this['logger']?.[_0x1045e5(0x104)]('Error\x20estimating\x20total\x20tokens',{'agentId':_0x10219c,'error':_0x2a4004[_0x1045e5(0xed)]}),0x0;}}async['getAttachmentSummary'](_0x5b849e){const _0x4130b7=a0_0x119fb1;try{const _0x15fb36=await this['attachmentService']['getActiveAttachments'](_0x5b849e),_0x349c8e={'totalActive':_0x15fb36['length'],'contentMode':_0x15fb36[_0x4130b7(0xf8)](_0x20ce99=>_0x20ce99[_0x4130b7(0x113)]==='content')[_0x4130b7(0xf7)],'referenceMode':_0x15fb36['filter'](_0x128a70=>_0x128a70[_0x4130b7(0x113)]===_0x4130b7(0x10b))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x184fb2 of _0x15fb36){_0x349c8e['estimatedTokens']+=_0x184fb2[_0x4130b7(0xf9)]||0x0,_0x349c8e['files']['push']({'fileName':_0x184fb2[_0x4130b7(0xf1)],'mode':_0x184fb2['mode'],'size':this['formatBytes'](_0x184fb2[_0x4130b7(0xe6)]),'tokens':_0x184fb2[_0x4130b7(0xf9)]||0x0});}return _0x349c8e;}catch(_0x4eb1ac){return this['logger']?.['error'](_0x4130b7(0x10d),{'agentId':_0x5b849e,'error':_0x4eb1ac['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
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;