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

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 (115) hide show
  1. package/bin/cli.js +1 -1
  2. package/bin/loxia-terminal-v2.js +1 -1
  3. package/bin/loxia-terminal.js +1 -1
  4. package/bin/start-with-terminal.js +1 -1
  5. package/package.json +2 -1
  6. package/scripts/install-scanners.js +1 -1
  7. package/src/analyzers/CSSAnalyzer.js +1 -1
  8. package/src/analyzers/ConfigValidator.js +1 -1
  9. package/src/analyzers/ESLintAnalyzer.js +1 -1
  10. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  11. package/src/analyzers/PrettierFormatter.js +1 -1
  12. package/src/analyzers/PythonAnalyzer.js +1 -1
  13. package/src/analyzers/SecurityAnalyzer.js +1 -1
  14. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  15. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  17. package/src/analyzers/codeCloneDetector/index.js +1 -1
  18. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  19. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  20. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  21. package/src/core/agentPool.js +1 -1
  22. package/src/core/agentScheduler.js +1 -1
  23. package/src/core/contextManager.js +1 -1
  24. package/src/core/messageProcessor.js +1 -1
  25. package/src/core/orchestrator.js +1 -1
  26. package/src/core/stateManager.js +1 -1
  27. package/src/index.js +1 -1
  28. package/src/interfaces/cli.js +1 -1
  29. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  38. package/src/interfaces/terminal/api/apiClient.js +1 -1
  39. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  40. package/src/interfaces/terminal/api/session.js +1 -1
  41. package/src/interfaces/terminal/api/websocket.js +1 -1
  42. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  43. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  44. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  45. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  47. package/src/interfaces/terminal/components/Header.js +1 -1
  48. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  49. package/src/interfaces/terminal/components/InputBox.js +1 -1
  50. package/src/interfaces/terminal/components/Layout.js +1 -1
  51. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  52. package/src/interfaces/terminal/components/MessageList.js +1 -1
  53. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  54. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  55. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  56. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  57. package/src/interfaces/terminal/components/TextInput.js +1 -1
  58. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  59. package/src/interfaces/terminal/config/constants.js +1 -1
  60. package/src/interfaces/terminal/index.js +1 -1
  61. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  62. package/src/interfaces/terminal/state/useAgents.js +1 -1
  63. package/src/interfaces/terminal/state/useConnection.js +1 -1
  64. package/src/interfaces/terminal/state/useMessages.js +1 -1
  65. package/src/interfaces/terminal/state/useTools.js +1 -1
  66. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  67. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  68. package/src/interfaces/terminal/utils/theme.js +1 -1
  69. package/src/interfaces/webServer.js +1 -1
  70. package/src/modules/fileExplorer/controller.js +1 -1
  71. package/src/modules/fileExplorer/index.js +1 -1
  72. package/src/modules/fileExplorer/middleware.js +1 -1
  73. package/src/modules/fileExplorer/routes.js +1 -1
  74. package/src/services/aiService.js +1 -1
  75. package/src/services/apiKeyManager.js +1 -1
  76. package/src/services/benchmarkService.js +1 -1
  77. package/src/services/budgetService.js +1 -1
  78. package/src/services/contextInjectionService.js +1 -1
  79. package/src/services/conversationCompactionService.js +1 -1
  80. package/src/services/errorHandler.js +1 -1
  81. package/src/services/fileAttachmentService.js +1 -1
  82. package/src/services/modelRouterService.js +1 -1
  83. package/src/services/modelsService.js +1 -1
  84. package/src/services/qualityInspector.js +1 -1
  85. package/src/services/tokenCountingService.js +1 -1
  86. package/src/tools/agentCommunicationTool.js +1 -1
  87. package/src/tools/agentDelayTool.js +1 -1
  88. package/src/tools/asyncToolManager.js +1 -1
  89. package/src/tools/baseTool.js +1 -1
  90. package/src/tools/browserTool.js +1 -1
  91. package/src/tools/cloneDetectionTool.js +1 -1
  92. package/src/tools/dependencyResolverTool.js +1 -1
  93. package/src/tools/fileContentReplaceTool.js +1 -1
  94. package/src/tools/fileSystemTool.js +1 -1
  95. package/src/tools/fileTreeTool.js +1 -1
  96. package/src/tools/imageTool.js +1 -1
  97. package/src/tools/importAnalyzerTool.js +1 -1
  98. package/src/tools/jobDoneTool.js +1 -1
  99. package/src/tools/seekTool.js +1 -1
  100. package/src/tools/staticAnalysisTool.js +1 -1
  101. package/src/tools/taskManagerTool.js +1 -1
  102. package/src/tools/terminalTool.js +1 -1
  103. package/src/tools/webTool.js +1 -1
  104. package/src/types/agent.js +1 -1
  105. package/src/types/contextReference.js +1 -1
  106. package/src/types/conversation.js +1 -1
  107. package/src/types/toolCommand.js +1 -1
  108. package/src/utilities/attachmentValidator.js +1 -1
  109. package/src/utilities/configManager.js +1 -1
  110. package/src/utilities/constants.js +1 -1
  111. package/src/utilities/directoryAccessManager.js +1 -1
  112. package/src/utilities/fileProcessor.js +1 -1
  113. package/src/utilities/logger.js +1 -1
  114. package/src/utilities/tagParser.js +1 -1
  115. 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_0x383746=a0_0x55a8;(function(_0x5537ef,_0x46bc54){const _0x289cb3=a0_0x55a8,_0x24b280=_0x5537ef();while(!![]){try{const _0x3f08ba=-parseInt(_0x289cb3(0x20c))/0x1*(parseInt(_0x289cb3(0x1d1))/0x2)+-parseInt(_0x289cb3(0x20a))/0x3+parseInt(_0x289cb3(0x214))/0x4+-parseInt(_0x289cb3(0x19a))/0x5+parseInt(_0x289cb3(0x1c9))/0x6*(-parseInt(_0x289cb3(0x1a4))/0x7)+parseInt(_0x289cb3(0x188))/0x8*(parseInt(_0x289cb3(0x189))/0x9)+-parseInt(_0x289cb3(0x19d))/0xa*(-parseInt(_0x289cb3(0x1a3))/0xb);if(_0x3f08ba===_0x46bc54)break;else _0x24b280['push'](_0x24b280['shift']());}catch(_0x1c5ba1){_0x24b280['push'](_0x24b280['shift']());}}}(a0_0x1c1c,0x2ee5c));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x490de4,_0x4af033,_0x154cc0,_0x1dc398){const _0x1e1cc0=a0_0x55a8;this['config']=_0x490de4,this['logger']=_0x4af033,this['budgetService']=_0x154cc0,this[_0x1e1cc0(0x1e9)]=_0x1dc398,this[_0x1e1cc0(0x1cf)]=_0x490de4['backend']?.['baseUrl']||'https://api.loxia.ai',this['timeout']=_0x490de4[_0x1e1cc0(0x1da)]?.[_0x1e1cc0(0x1eb)]||0xea60,this['retryAttempts']=_0x490de4['backend']?.[_0x1e1cc0(0x1d5)]||0x3,this[_0x1e1cc0(0x212)]=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x1e1cc0(0x1cd)]=this['_initializeModelSpecs'](),this['conversationManagers']=new Map(),this[_0x1e1cc0(0x194)]=null,this[_0x1e1cc0(0x196)]=null;}async[a0_0x383746(0x19f)](_0x12be62,_0x220aa1,_0x547269={}){const _0x29350e=a0_0x383746,_0x4cecad=_0x29350e(0x1c4)+Date[_0x29350e(0x1a0)]()+'-'+Math[_0x29350e(0x20f)]()['toString'](0x24)[_0x29350e(0x208)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x29350e(0x1dc)](_0x12be62);const _0x47f5de=this['_formatMessagesForModel'](_0x220aa1,_0x12be62,_0x547269),_0x1f4fa3={'model':_0x12be62,'messages':_0x47f5de,'options':{'max_tokens':this[_0x29350e(0x1cd)][_0x12be62]?.[_0x29350e(0x1f4)]||0xfa0,'temperature':_0x547269['temperature']||0.7,'stream':_0x547269[_0x29350e(0x1ca)]||![]},'metadata':{'requestId':_0x4cecad,'agentId':_0x547269['agentId'],'timestamp':new Date()[_0x29350e(0x1e4)]()}};_0x547269['systemPrompt']&&(_0x1f4fa3[_0x29350e(0x1c3)]=_0x547269['systemPrompt']);this['logger'][_0x29350e(0x19b)]('Sending\x20message\x20to\x20model:\x20'+_0x12be62,{'requestId':_0x4cecad,'agentId':_0x547269[_0x29350e(0x203)],'messageCount':Array['isArray'](_0x220aa1)?_0x220aa1[_0x29350e(0x217)]:0x1,'maxTokens':_0x1f4fa3[_0x29350e(0x1fc)]});const _0x5190c4=await this[_0x29350e(0x186)](_0x29350e(0x204),_0x1f4fa3,_0x4cecad,{..._0x547269,'sessionId':_0x547269['sessionId'],'platformProvided':_0x547269[_0x29350e(0x1a2)]||![]});return _0x5190c4['usage']&&await this['trackUsage'](_0x547269[_0x29350e(0x203)],_0x12be62,{'prompt_tokens':_0x5190c4['usage'][_0x29350e(0x1ce)]||0x0,'completion_tokens':_0x5190c4['usage']['completion_tokens']||0x0,'total_tokens':_0x5190c4[_0x29350e(0x1e1)]['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0x5190c4[_0x29350e(0x1e2)][0x0]?.['message']?.['content']||'','model':_0x5190c4[_0x29350e(0x1cb)],'tokenUsage':_0x5190c4['usage'],'requestId':_0x4cecad,'finishReason':_0x5190c4['choices'][0x0]?.['finish_reason']};}catch(_0x2b8ef4){this['_recordFailure'](),this[_0x29350e(0x1df)][_0x29350e(0x1a8)](_0x29350e(0x1e3)+_0x2b8ef4['message'],{'requestId':_0x4cecad,'model':_0x12be62,'agentId':_0x547269[_0x29350e(0x203)],'error':_0x2b8ef4['stack']}),await this[_0x29350e(0x17e)](_0x2b8ef4,{'requestId':_0x4cecad,'model':_0x12be62,'agentId':_0x547269[_0x29350e(0x203)]});throw _0x2b8ef4;}}async[a0_0x383746(0x1f1)](_0x5a28e6,_0x5ac991={}){const _0x348c18=a0_0x383746;try{const _0x4c0f3b=MODEL_ROUTING[_0x5a28e6['toUpperCase']()]||MODEL_ROUTING['FALLBACK'],_0x44ba03=[];for(const _0x302dd2 of _0x4c0f3b){const _0x220d0c=await this['_checkModelHealth'](_0x302dd2);_0x220d0c&&_0x44ba03['push'](_0x302dd2);}if(_0x44ba03[_0x348c18(0x217)]===0x0)return this['logger'][_0x348c18(0x191)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x5a28e6+',\x20using\x20fallback'),MODEL_ROUTING[_0x348c18(0x1be)][0x0];let _0x3f0de4=_0x44ba03[0x0];if(_0x5ac991[_0x348c18(0x1c8)]&&_0x44ba03[_0x348c18(0x1b1)](_0x5ac991['preferredModel']))_0x3f0de4=_0x5ac991['preferredModel'];else{if(_0x5ac991['complexity']===_0x348c18(0x1c6)&&_0x44ba03[_0x348c18(0x1b1)](MODELS[_0x348c18(0x1b2)]))_0x3f0de4=MODELS['ANTHROPIC_OPUS'];else _0x5ac991['speed']==='fast'&&_0x44ba03['includes'](MODELS['ANTHROPIC_HAIKU'])&&(_0x3f0de4=MODELS[_0x348c18(0x1f5)]);}return this[_0x348c18(0x1df)]['info'](_0x348c18(0x1a6)+_0x5a28e6,{'selectedModel':_0x3f0de4,'availableModels':_0x44ba03['length'],'context':_0x5ac991}),_0x3f0de4;}catch(_0x25ff4c){return this[_0x348c18(0x1df)]['error'](_0x348c18(0x190)+_0x25ff4c['message'],{'task':_0x5a28e6,'context':_0x5ac991}),MODEL_ROUTING[_0x348c18(0x1be)][0x0];}}async['compactizeConversation'](_0x2e680f,_0x2fc88){const _0x5d9630=a0_0x383746,_0x2efc61=this[_0x5d9630(0x1cd)][_0x2fc88];if(!_0x2efc61)throw new Error(_0x5d9630(0x1b8)+_0x2fc88);const _0x10e463=_0x2efc61['contextWindow']*0.8;let _0x137cef=0x0;const _0x5f4192=[],_0x9a5a69=await Promise[_0x5d9630(0x202)](_0x2e680f[_0x5d9630(0x1f0)](async _0x35d5e1=>({..._0x35d5e1,'estimatedTokens':await this[_0x5d9630(0x1d6)](_0x35d5e1[_0x5d9630(0x1b9)],_0x2fc88)}))),_0x55afa5=[..._0x9a5a69]['reverse']();for(const _0x3a31bb of _0x55afa5){if(_0x137cef+_0x3a31bb['estimatedTokens']>_0x10e463){if(_0x5f4192['length']===0x0){const _0x16a13a=await this[_0x5d9630(0x1ff)](_0x3a31bb[_0x5d9630(0x1b9)],_0x10e463);_0x5f4192[_0x5d9630(0x1bc)]({..._0x3a31bb,'content':_0x16a13a,'estimatedTokens':_0x10e463});}break;}_0x5f4192[_0x5d9630(0x1bc)](_0x3a31bb),_0x137cef+=_0x3a31bb[_0x5d9630(0x19c)];}const _0x24b600=_0x9a5a69['slice'](0x0,-_0x5f4192[_0x5d9630(0x217)]);if(_0x24b600['length']>0x0){const _0x43c62e=await this[_0x5d9630(0x1b0)](_0x24b600,_0x2fc88);_0x5f4192['unshift']({'role':_0x5d9630(0x1c3),'content':_0x5d9630(0x1ea)+_0x43c62e,'timestamp':_0x24b600[0x0][_0x5d9630(0x1b6)],'type':_0x5d9630(0x1a9),'estimatedTokens':await this['_estimateTokens'](_0x43c62e,_0x2fc88)});}return this['logger'][_0x5d9630(0x19b)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x2fc88,{'originalMessages':_0x2e680f[_0x5d9630(0x217)],'compactizedMessages':_0x5f4192[_0x5d9630(0x217)],'estimatedTokens':_0x137cef,'maxTokens':_0x10e463}),_0x5f4192;}async[a0_0x383746(0x18e)](_0x42145f,_0x1b0cf2,_0x20f8ff,_0x4ebc16){const _0x48bf3f=a0_0x383746;try{this[_0x48bf3f(0x18b)]&&this[_0x48bf3f(0x18b)]['trackUsage'](_0x42145f,_0x1b0cf2,_0x20f8ff);}catch(_0x52341a){this[_0x48bf3f(0x1df)][_0x48bf3f(0x1a8)]('Usage\x20tracking\x20failed:\x20'+_0x52341a['message']);}}async['handleHttpError'](_0x4a24c9,_0x461546){const _0x3048d4=a0_0x383746,_0x272576=this['errorHandler']?.[_0x3048d4(0x1c0)]?.(_0x4a24c9,_0x461546);switch(_0x4a24c9['status']||_0x4a24c9['code']){case HTTP_STATUS[_0x3048d4(0x21a)]:this[_0x3048d4(0x1df)][_0x3048d4(0x1a8)](_0x3048d4(0x1b4),{'context':_0x461546,'error':_0x4a24c9['message']});throw new Error('Invalid\x20request:\x20'+_0x4a24c9[_0x3048d4(0x1ad)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger']['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x461546});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS[_0x3048d4(0x1bb)]:this['logger']['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x461546});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x3048d4(0x21b)]:this['logger'][_0x3048d4(0x1a8)](_0x3048d4(0x17f),{'context':_0x461546});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x3048d4(0x1df)][_0x3048d4(0x191)](_0x3048d4(0x198),{'context':_0x461546}),await this[_0x3048d4(0x184)](_0x461546);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x3048d4(0x18f)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x3048d4(0x1dd)]:this[_0x3048d4(0x1df)]['error'](_0x3048d4(0x218),{'context':_0x461546,'status':_0x4a24c9[_0x3048d4(0x182)]}),await this['_handleServiceUnavailable'](_0x461546);throw new Error(_0x3048d4(0x1b5));default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x461546,'error':_0x4a24c9[_0x3048d4(0x1ad)]});throw new Error('AI\x20service\x20error:\x20'+_0x4a24c9['message']);}}['setApiKeyManager'](_0x417b3e){const _0x4c1e2b=a0_0x383746;this[_0x4c1e2b(0x194)]=_0x417b3e,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x417b3e});}['setAgentPool'](_0xaaaaf5){const _0x54c8c2=a0_0x383746;this[_0x54c8c2(0x196)]=_0xaaaaf5,this['logger']?.['info'](_0x54c8c2(0x195),{'hasAgentPool':!!_0xaaaaf5});}async[a0_0x383746(0x215)](_0x4eefa4,_0x203def={}){const _0x271943=a0_0x383746,_0x14482c=_0x271943(0x1fe)+Date[_0x271943(0x1a0)]()+'-'+Math[_0x271943(0x20f)]()['toString'](0x24)[_0x271943(0x208)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x271943(0x1bd));if(!_0x4eefa4||typeof _0x4eefa4!==_0x271943(0x211)||_0x4eefa4[_0x271943(0x1ac)]()[_0x271943(0x217)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x570db9=_0x203def['model']||_0x271943(0x1a5),_0x4a0bf=_0x203def['size']||'1024x1024',_0x294f5e=_0x203def[_0x271943(0x207)]||'standard',_0xbf970=_0x203def[_0x271943(0x216)]||'url';this['logger'][_0x271943(0x19b)](_0x271943(0x193)+_0x570db9,{'requestId':_0x14482c,'model':_0x570db9,'size':_0x4a0bf,'quality':_0x294f5e,'promptLength':_0x4eefa4['length']});const _0x3c0be2={'prompt':_0x4eefa4,'model':_0x570db9,'size':_0x4a0bf,'quality':_0x294f5e,'response_format':_0xbf970,'n':0x1,'metadata':{'requestId':_0x14482c,'timestamp':new Date()[_0x271943(0x1e4)]()}},_0xb87ab4=await this['_makeImageAPIRequest'](_0x3c0be2,_0x14482c,{'sessionId':_0x203def['sessionId'],'platformProvided':_0x203def['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0xb87ab4['data']?.[0x0]?.['url']||null,'b64_json':_0xb87ab4[_0x271943(0x1b7)]?.[0x0]?.['b64_json']||null,'model':_0xb87ab4['model']||_0x570db9,'requestId':_0x14482c,'revisedPrompt':_0xb87ab4['data']?.[0x0]?.['revised_prompt']||_0x4eefa4};}catch(_0x4f2abe){this['_recordFailure'](),this[_0x271943(0x1df)]['error']('Image\x20generation\x20failed:\x20'+_0x4f2abe['message'],{'requestId':_0x14482c,'model':_0x203def[_0x271943(0x1cb)],'error':_0x4f2abe[_0x271943(0x20b)]});throw _0x4f2abe;}}async['checkServiceHealth'](){const _0x39c705=a0_0x383746;try{const _0x5a0892=await this['_makeAPIRequest'](_0x39c705(0x1f8),{},_0x39c705(0x187));return _0x5a0892['status']===_0x39c705(0x18d);}catch(_0x2279a9){return![];}}async[a0_0x383746(0x1ab)](_0x2c45b2,_0x367fcc){const _0x38e657=a0_0x383746;try{if(!this['_isValidModel'](_0x367fcc))throw new Error('Invalid\x20model:\x20'+_0x367fcc);let _0x4ee51a=this['conversationManagers'][_0x38e657(0x18a)](_0x2c45b2);!_0x4ee51a&&(_0x4ee51a=new ConversationManager(_0x2c45b2,this[_0x38e657(0x1df)]),this['conversationManagers']['set'](_0x2c45b2,_0x4ee51a));const _0x39ce8c=await _0x4ee51a['switchModel'](_0x367fcc),_0x50ab9a=await this['agentPool']?.['getAgent'](_0x2c45b2);return _0x50ab9a&&(_0x50ab9a[_0x38e657(0x1db)]=_0x367fcc,await this['agentPool']['persistAgentState'](_0x2c45b2)),this['logger'][_0x38e657(0x19b)](_0x38e657(0x1fd)+_0x2c45b2,{'newModel':_0x367fcc,'messageCount':_0x39ce8c['messages'][_0x38e657(0x217)]}),{'success':!![],'agentId':_0x2c45b2,'newModel':_0x367fcc,'conversation':_0x39ce8c};}catch(_0x5a1f3a){this[_0x38e657(0x1df)][_0x38e657(0x1a8)]('Model\x20switch\x20failed:\x20'+_0x5a1f3a['message'],{'agentId':_0x2c45b2,'newModel':_0x367fcc});throw _0x5a1f3a;}}[a0_0x383746(0x1e6)](){const _0x28b2a9=a0_0x383746,_0x503786={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x28b2a9(0x21d)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x28b2a9(0x1b2)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x28b2a9(0x1f5)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ae)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ae)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ae)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x28b2a9(0x21c)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x28b2a9(0x180)]]:{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ec)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x28b2a9(0x1d4),'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':_0x28b2a9(0x1d4),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x503786;}[a0_0x383746(0x210)](_0x3e7a99,_0x4f1960,_0x4a4d1d){const _0x509cca=a0_0x383746,_0x2fb331=this['modelSpecs'][_0x4f1960]||{'provider':_0x509cca(0x1d4)};let _0x65219a;typeof _0x3e7a99==='string'?_0x65219a=[{'role':_0x509cca(0x1bf),'content':_0x3e7a99}]:_0x65219a=_0x3e7a99['map'](_0x5bdd5c=>this['_formatSingleMessage'](_0x5bdd5c,_0x4f1960));switch(_0x2fb331[_0x509cca(0x1c2)]){case MODEL_PROVIDERS[_0x509cca(0x21d)]:return this['_formatForAnthropic'](_0x65219a);case MODEL_PROVIDERS[_0x509cca(0x1ae)]:return this['_formatForOpenAI'](_0x65219a);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x65219a);default:return _0x65219a;}}['_formatSingleMessage'](_0x5b4443,_0x1c9270){const _0x405e45=a0_0x383746;return{'role':_0x5b4443['role']||_0x405e45(0x1bf),'content':_0x5b4443['content'],'timestamp':_0x5b4443[_0x405e45(0x1b6)]};}['_formatForAnthropic'](_0x184607){return _0x184607['map'](_0xf9c9bc=>{const _0x1b5092=a0_0x55a8;if(_0xf9c9bc['role']==='system')return{'role':_0x1b5092(0x1bf),'content':_0x1b5092(0x1af)+_0xf9c9bc['content']};return _0xf9c9bc;});}[a0_0x383746(0x206)](_0xff486d){return _0xff486d;}['_formatForAzure'](_0x4ca4ec){const _0x3a26c9=a0_0x383746;return _0x4ca4ec[_0x3a26c9(0x1f0)](_0x351a8c=>({..._0x351a8c,'content':typeof _0x351a8c['content']==='string'?_0x351a8c['content']:JSON[_0x3a26c9(0x21e)](_0x351a8c['content'])}));}[a0_0x383746(0x200)](_0x400390){const _0x30c93f=a0_0x383746;this[_0x30c93f(0x1df)]['debug']('Validating\x20model',{'model':_0x400390,'modelType':typeof _0x400390});if(this[_0x30c93f(0x1cd)][_0x400390]!==undefined)return!![];return this[_0x30c93f(0x1df)][_0x30c93f(0x191)]('Model\x20validation\x20failed',{'model':_0x400390,'availableModels':Object[_0x30c93f(0x1de)](this['modelSpecs'])}),![];}async['_checkModelHealth'](_0x5a3960){return!![];}async[a0_0x383746(0x1d6)](_0x23f3eb,_0x1b2386){const _0x43d4d7=a0_0x383746;return Math['ceil'](_0x23f3eb[_0x43d4d7(0x217)]/0x4);}async['_truncateMessage'](_0x40abba,_0x43d434){const _0x468793=a0_0x383746,_0x2d8bee=_0x43d434*0x4;if(_0x40abba[_0x468793(0x217)]<=_0x2d8bee)return _0x40abba;return _0x40abba[_0x468793(0x181)](0x0,_0x2d8bee-0x14)+_0x468793(0x201);}async['_summarizeMessages'](_0x342a15,_0x3bb8d8){const _0x2b3a3c=a0_0x383746,_0x78c8c1=_0x342a15[_0x2b3a3c(0x1f0)](_0x2ca35e=>_0x2ca35e['role']+':\x20'+_0x2ca35e['content'])['join']('\x0a'),_0x11e2e5=0x1f4;if(_0x78c8c1[_0x2b3a3c(0x217)]<=_0x11e2e5)return _0x78c8c1;return _0x78c8c1['substring'](0x0,_0x11e2e5)+_0x2b3a3c(0x183);}async[a0_0x383746(0x186)](_0x1f8a6c,_0x35dd5c,_0x12eaf0,_0x1c90e7={}){const _0xe1bf29=a0_0x383746,_0x36c916='https://autopilot-api.azurewebsites.net/llm/chat';let _0x330274,_0x357b67=null,_0x39c2e2=null;this[_0xe1bf29(0x1df)]?.[_0xe1bf29(0x19b)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1c90e7[_0xe1bf29(0x1ba)],'hasSessionId':!!_0x1c90e7[_0xe1bf29(0x1ba)],'optionsKeys':Object[_0xe1bf29(0x1de)](_0x1c90e7),'model':_0x35dd5c[_0xe1bf29(0x1cb)]});if(this[_0xe1bf29(0x194)]&&_0x1c90e7[_0xe1bf29(0x1ba)]){const _0x5c8681=this['apiKeyManager']['getKeysForRequest'](_0x1c90e7[_0xe1bf29(0x1ba)],{'platformProvided':_0x1c90e7[_0xe1bf29(0x1a2)]||![],'vendor':this['_getVendorFromModel'](_0x35dd5c['model'])});_0x357b67=_0x5c8681[_0xe1bf29(0x1d0)],_0x39c2e2=_0x5c8681['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x1c90e7[_0xe1bf29(0x1ba)],'hasLoxiaKey':!!_0x357b67,'hasVendorKey':!!_0x39c2e2,'vendor':this['_getVendorFromModel'](_0x35dd5c[_0xe1bf29(0x1cb)])});}!_0x357b67&&_0x1c90e7['apiKey']&&(_0x357b67=_0x1c90e7[_0xe1bf29(0x1f6)]);!_0x357b67&&this[_0xe1bf29(0x219)][_0xe1bf29(0x1f6)]&&(_0x357b67=this[_0xe1bf29(0x219)]['apiKey']);if(!_0x357b67)throw new Error(_0xe1bf29(0x1c5));const _0x1eb6b1=_0x35dd5c[_0xe1bf29(0x1cb)],_0x4c1e4a={'conversationId':_0x12eaf0,'message':_0x35dd5c['messages'][_0x35dd5c[_0xe1bf29(0x20d)]['length']-0x1]?.['content']||'','messages':_0x35dd5c['messages'],'model':_0x1eb6b1,'requestId':_0x12eaf0,'options':_0x35dd5c[_0xe1bf29(0x192)]||{},'platformProvided':_0x1c90e7[_0xe1bf29(0x1a2)]||![]};_0x35dd5c[_0xe1bf29(0x1c3)]&&(_0x4c1e4a['systemPrompt']=_0x35dd5c['system']);_0x1c90e7['platformProvided']?_0x4c1e4a['apiKey']=_0x357b67:(_0x39c2e2&&(_0x4c1e4a[_0xe1bf29(0x1f9)]=_0x39c2e2),_0x1c90e7['customApiKeys']&&(_0x4c1e4a[_0xe1bf29(0x1d2)]=_0x1c90e7[_0xe1bf29(0x1d2)]),_0x4c1e4a[_0xe1bf29(0x1f6)]=_0x357b67);for(let _0x460676=0x1;_0x460676<=this['retryAttempts'];_0x460676++){try{this[_0xe1bf29(0x1df)][_0xe1bf29(0x19b)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x36c916,'model':_0x35dd5c['model'],'requestId':_0x12eaf0,'attempt':_0x460676,'hasApiKey':!!_0x357b67});const _0x4537c8=await fetch(_0x36c916,{'method':'POST','headers':{'Content-Type':_0xe1bf29(0x1aa),'Authorization':'Bearer\x20'+_0x357b67,'X-Request-ID':_0x12eaf0},'body':JSON[_0xe1bf29(0x21e)](_0x4c1e4a),'timeout':this[_0xe1bf29(0x1eb)]});if(!_0x4537c8['ok']){const _0x5d5037=await _0x4537c8[_0xe1bf29(0x1c7)](),_0x5eb4d2=new Error('HTTP\x20'+_0x4537c8[_0xe1bf29(0x182)]+':\x20'+_0x4537c8[_0xe1bf29(0x1ef)]+(_0x5d5037?_0xe1bf29(0x1e7)+_0x5d5037:''));_0x5eb4d2[_0xe1bf29(0x182)]=_0x4537c8[_0xe1bf29(0x182)];throw _0x5eb4d2;}const _0x36f2c1=await _0x4537c8['json']();return{'choices':[{'message':{'content':_0x36f2c1['content']||'','role':_0xe1bf29(0x213)},'finish_reason':_0x36f2c1['finishReason']||_0xe1bf29(0x1cc)}],'usage':_0x36f2c1['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x36f2c1[_0xe1bf29(0x1cb)]||_0x35dd5c[_0xe1bf29(0x1cb)],'id':_0x36f2c1[_0xe1bf29(0x1d7)]||_0x12eaf0};}catch(_0x1ac535){_0x330274=_0x1ac535,this[_0xe1bf29(0x1df)]['warn'](_0xe1bf29(0x205),{'attempt':_0x460676,'requestId':_0x12eaf0,'error':_0x1ac535[_0xe1bf29(0x1ad)],'status':_0x1ac535[_0xe1bf29(0x182)]});if(_0x460676<this[_0xe1bf29(0x1d5)]){const _0x247f3a=Math[_0xe1bf29(0x1c1)](0x2,_0x460676)*0x3e8;this[_0xe1bf29(0x1df)][_0xe1bf29(0x191)]('Retrying\x20in\x20'+_0x247f3a+'ms',{'attempt':_0x460676,'requestId':_0x12eaf0}),await new Promise(_0x380966=>setTimeout(_0x380966,_0x247f3a));}}}this['logger']['error'](_0xe1bf29(0x199),{'requestId':_0x12eaf0,'error':_0x330274['message']});const _0x34f2de=_0x330274['message']&&_0x330274[_0xe1bf29(0x1ad)]['includes']('No\x20API\x20key\x20configured');if(_0x34f2de)throw new Error(_0xe1bf29(0x20e)+_0x330274['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x330274[_0xe1bf29(0x1ad)],'role':_0xe1bf29(0x213)},'finish_reason':_0xe1bf29(0x1cc)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x35dd5c['model'],'id':'error-'+_0x12eaf0,'error':_0x330274[_0xe1bf29(0x1ad)]};}async[a0_0x383746(0x1fb)](_0x1c2d0c,_0x1ab697,_0x25f09c={}){const _0x41c5ed=a0_0x383746,_0x1cca71=_0x41c5ed(0x197);let _0x30ae73,_0x47885e=null,_0x3c60c2=null;this[_0x41c5ed(0x1df)]?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x41c5ed(0x194)],'sessionId':_0x25f09c[_0x41c5ed(0x1ba)],'hasSessionId':!!_0x25f09c[_0x41c5ed(0x1ba)],'model':_0x1c2d0c['model']});if(this['apiKeyManager']&&_0x25f09c[_0x41c5ed(0x1ba)]){const _0x4d0074=this['apiKeyManager']['getKeysForRequest'](_0x25f09c[_0x41c5ed(0x1ba)],{'platformProvided':_0x25f09c[_0x41c5ed(0x1a2)]||![],'vendor':this[_0x41c5ed(0x1e8)](_0x1c2d0c[_0x41c5ed(0x1cb)])});_0x47885e=_0x4d0074['loxiaApiKey'],_0x3c60c2=_0x4d0074['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x25f09c['sessionId'],'hasLoxiaKey':!!_0x47885e,'hasVendorKey':!!_0x3c60c2});}!_0x47885e&&_0x25f09c['apiKey']&&(_0x47885e=_0x25f09c[_0x41c5ed(0x1f6)]);!_0x47885e&&this[_0x41c5ed(0x219)][_0x41c5ed(0x1f6)]&&(_0x47885e=this[_0x41c5ed(0x219)][_0x41c5ed(0x1f6)]);if(!_0x47885e)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x29336f={'prompt':_0x1c2d0c['prompt'],'model':_0x1c2d0c[_0x41c5ed(0x1cb)]||_0x41c5ed(0x1f2),'size':_0x1c2d0c['size'],'quality':_0x1c2d0c[_0x41c5ed(0x207)],'style':_0x1c2d0c[_0x41c5ed(0x1fa)]||_0x41c5ed(0x1b3),'n':_0x1c2d0c['n']||0x1,'requestId':_0x1ab697};for(let _0x849279=0x1;_0x849279<=this[_0x41c5ed(0x1d5)];_0x849279++){try{this['logger'][_0x41c5ed(0x19b)](_0x41c5ed(0x1d9),{'url':_0x1cca71,'model':_0x1c2d0c['model'],'requestId':_0x1ab697,'attempt':_0x849279,'hasApiKey':!!_0x47885e});const _0x46371a=await fetch(_0x1cca71,{'method':_0x41c5ed(0x1f3),'headers':{'Content-Type':_0x41c5ed(0x1aa),'Authorization':'Bearer\x20'+_0x47885e,'X-Request-ID':_0x1ab697},'body':JSON[_0x41c5ed(0x21e)](_0x29336f),'timeout':this['timeout']*0x2});if(!_0x46371a['ok']){const _0x56e99f=await _0x46371a[_0x41c5ed(0x1c7)](),_0x4ff5c8=new Error(_0x41c5ed(0x19e)+_0x46371a[_0x41c5ed(0x182)]+':\x20'+_0x46371a['statusText']+(_0x56e99f?'\x20-\x20'+_0x56e99f:''));_0x4ff5c8[_0x41c5ed(0x182)]=_0x46371a['status'];throw _0x4ff5c8;}const _0x377de7=await _0x46371a['json']();return{'data':_0x377de7['images']||[],'model':_0x377de7['model']||_0x1c2d0c[_0x41c5ed(0x1cb)],'created':_0x377de7['created']||Date[_0x41c5ed(0x1a0)](),'usage':_0x377de7['usage']};}catch(_0x3dbf24){_0x30ae73=_0x3dbf24,this['logger'][_0x41c5ed(0x191)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x849279,'requestId':_0x1ab697,'error':_0x3dbf24[_0x41c5ed(0x1ad)],'status':_0x3dbf24[_0x41c5ed(0x182)]});if(_0x849279<this[_0x41c5ed(0x1d5)]){const _0x24a2bd=Math['pow'](0x2,_0x849279)*0x3e8;this['logger'][_0x41c5ed(0x191)]('Retrying\x20in\x20'+_0x24a2bd+'ms',{'attempt':_0x849279,'requestId':_0x1ab697}),await new Promise(_0x432335=>setTimeout(_0x432335,_0x24a2bd));}}}this['logger']['error'](_0x41c5ed(0x1ed),{'requestId':_0x1ab697,'error':_0x30ae73[_0x41c5ed(0x1ad)]});throw new Error('Image\x20generation\x20failed:\x20'+_0x30ae73['message']);}async[a0_0x383746(0x1dc)](_0xb3ab97){await new Promise(_0x5dcc54=>setTimeout(_0x5dcc54,0x64));}async[a0_0x383746(0x184)](_0x308992){const _0x5a4fa9=a0_0x383746,_0x5e1c9e=0xea60;this[_0x5a4fa9(0x1df)][_0x5a4fa9(0x19b)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x5e1c9e+'ms',_0x308992),await new Promise(_0x2db8b8=>setTimeout(_0x2db8b8,_0x5e1c9e));}async[a0_0x383746(0x1d8)](_0xd646de){const _0x78d0c9=a0_0x383746;this['_recordFailure']();const _0x266ec8=0x7530;this[_0x78d0c9(0x1df)][_0x78d0c9(0x19b)]('Service\x20unavailable,\x20waiting\x20'+_0x266ec8+'ms',_0xd646de),await new Promise(_0x58d397=>setTimeout(_0x58d397,_0x266ec8));}[a0_0x383746(0x1d3)](){const _0x38aad5=a0_0x383746;if(!this['circuitBreaker']['isOpen'])return![];const _0x338dd8=Date['now']()-this[_0x38aad5(0x1e0)]['lastFailureTime'];if(_0x338dd8>this[_0x38aad5(0x1e0)][_0x38aad5(0x1eb)])return this[_0x38aad5(0x1e0)]['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x513302=a0_0x383746;this[_0x513302(0x1e0)][_0x513302(0x209)]++,this['circuitBreaker'][_0x513302(0x1e5)]=Date[_0x513302(0x1a0)](),this['circuitBreaker']['failures']>=this['circuitBreaker'][_0x513302(0x185)]&&(this['circuitBreaker']['isOpen']=!![],this['logger'][_0x513302(0x191)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}['_resetCircuitBreaker'](){const _0x3c43d5=a0_0x383746;this['circuitBreaker'][_0x3c43d5(0x209)]>0x0&&(this[_0x3c43d5(0x1e0)][_0x3c43d5(0x209)]=0x0,this[_0x3c43d5(0x1e0)][_0x3c43d5(0x1ee)]=![],this['logger']['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x54432c){const _0x2ecae9=a0_0x383746;if(!_0x54432c)return null;const _0x158fe7=_0x54432c[_0x2ecae9(0x1a1)]();if(_0x158fe7['includes'](_0x2ecae9(0x21f))||_0x158fe7[_0x2ecae9(0x1b1)]('claude'))return'anthropic';else{if(_0x158fe7[_0x2ecae9(0x1b1)](_0x2ecae9(0x1f7))||_0x158fe7[_0x2ecae9(0x1b1)](_0x2ecae9(0x18c)))return'openai';else{if(_0x158fe7[_0x2ecae9(0x1b1)]('deepseek'))return'deepseek';else{if(_0x158fe7[_0x2ecae9(0x1b1)]('phi'))return'microsoft';}}}return null;}}function a0_0x55a8(_0x33a8c5,_0x5d4db1){_0x33a8c5=_0x33a8c5-0x17e;const _0x1c1cc1=a0_0x1c1c();let _0x55a8ec=_0x1c1cc1[_0x33a8c5];if(a0_0x55a8['vXSwDt']===undefined){var _0x54fa40=function(_0x1f67fb){const _0x39868e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x490de4='',_0x4af033='';for(let _0x154cc0=0x0,_0x1dc398,_0x12be62,_0x220aa1=0x0;_0x12be62=_0x1f67fb['charAt'](_0x220aa1++);~_0x12be62&&(_0x1dc398=_0x154cc0%0x4?_0x1dc398*0x40+_0x12be62:_0x12be62,_0x154cc0++%0x4)?_0x490de4+=String['fromCharCode'](0xff&_0x1dc398>>(-0x2*_0x154cc0&0x6)):0x0){_0x12be62=_0x39868e['indexOf'](_0x12be62);}for(let _0x547269=0x0,_0x4cecad=_0x490de4['length'];_0x547269<_0x4cecad;_0x547269++){_0x4af033+='%'+('00'+_0x490de4['charCodeAt'](_0x547269)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4af033);};a0_0x55a8['dtWjMz']=_0x54fa40,a0_0x55a8['lAQamz']={},a0_0x55a8['vXSwDt']=!![];}const _0x36d047=_0x1c1cc1[0x0],_0x3061b7=_0x33a8c5+_0x36d047,_0x57a00f=a0_0x55a8['lAQamz'][_0x3061b7];return!_0x57a00f?(_0x55a8ec=a0_0x55a8['dtWjMz'](_0x55a8ec),a0_0x55a8['lAQamz'][_0x3061b7]=_0x55a8ec):_0x55a8ec=_0x57a00f,_0x55a8ec;}function a0_0x1c1c(){const _0xfaeb55=['zxjYB3jiyw5KBgvY','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','DgLTzw91Da','ueHj','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','AxnpCgvU','C3rHDhvZvgv4Da','BwfW','CM91DgvnB2rLBa','yxP1CMuTB3bLBMfPlwrHBgXLmW','ue9tva','Bwf4vg9Rzw5Z','qu5usfjpueLdx0HbsuTv','yxbPs2v5','B3bLBMfP','l2HLywX0Aa','DMvUzg9YqxbPs2v5','C3r5Bgu','x21HA2vjBwfNzufqsvjLCxvLC3q','Bwf4x3rVA2vUCW','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','Aw1Nlq','x3rYDw5JyxrLtwvZC2fNzq','x2LZvMfSAwrnB2rLBa','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','ywXS','ywDLBNrjza','l2nOyxqVy29TCgXLDgLVBNm','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','x2zVCM1HDezVCK9Wzw5bsq','CxvHBgL0Eq','C3vIC3rY','zMfPBhvYzxm','mZm4nde4uuvYrhDt','C3rHy2S','ndGXmZvTtw9VAu0','BwvZC2fNzxm','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','CMfUzg9T','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','C3rYAw5N','CMf0zuXPBwL0zxjZ','yxnZAxn0yw50','mZuWmdy4A0v1z1jN','z2vUzxjHDgvjBwfNzq','CMvZCg9UC2vgB3jTyxq','BgvUz3rO','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','y29UzMLN','qKfex1jfuvvfu1q','tK9ux0zpvu5e','revfufnfruTFuJe','qu5usfjpueLd','C3rYAw5NAwz5','yw50AhjVCgLJ','AgfUzgXLshr0CevYCM9Y','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','ueHjxZq','C3vIC3rYAw5N','C3rHDhvZ','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','x2HHBMrSzvjHDgvmAw1PDa','DgHYzxnOB2XK','x21HA2vbueLszxf1zxn0','AgvHBhrOlwnOzwnR','mti4mdCYsgjOvvPb','mti2tuTJugPy','z2v0','yNvKz2v0u2vYDMLJzq','z3b0','AgvHBhrOEq','DhjHy2TvC2fNzq','qKfex0DbvevxqvK','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','D2fYBG','B3b0Aw9UCW','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','yxbPs2v5twfUywDLCG','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','ywDLBNrqB29S','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','uMf0zsbSAw1PDcbLEgnLzwrLza','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','mte0mtKYnxzLqKvWsq','Aw5MBW','zxn0Aw1HDgvKvg9Rzw5Z','nti0mffjterita','sfruuca','C2vUze1LC3nHz2u','BM93','Dg9mB3DLCKnHC2u','CgXHDgzVCM1qCM92AwrLza','mtuYmdjctxbNt0C','nJC3ntnqBgvJAg4','zMX1Ec0XlJeTChjV','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','C3DPDgnOtw9KzwW','zxjYB3i','C3vTBwfYEq','yxbWBgLJyxrPB24VANnVBG','C3DPDgnOqwDLBNrnB2rLBa','DhjPBq','BwvZC2fNzq','t1bftKfj','u3LZDgvToIa','x3n1Bw1HCML6zu1LC3nHz2vZ','Aw5JBhvKzxm','qu5usfjpueLdx09qvvm','DML2Awq','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','DgLTzxn0yw1W','zgf0yq','vw5RBM93BIbTB2rLBdOG','y29UDgvUDa','C2vZC2LVBKLK','rK9sqKLerevo','Dw5ZAgLMDa','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','rKfmtejbq0S','DxnLCG','y2XHC3nPzNLfCNjVCG','Cg93','ChjVDMLKzxi','C3LZDgvT','CMvXlq','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','AgLNAa','Dgv4Da','ChjLzMvYCMvKtw9KzwW','mJiYBwjKrKD1','C3rYzwfT','Bw9KzwW','C3rVCa','Bw9KzwXtCgvJCW','ChjVBxb0x3rVA2vUCW','yMfZzvvYBa','Bg94AwfbCgLlzxK','nLLfBgncrq','y3vZDg9TqxbPs2v5CW','x2LZq2LYy3vPDejYzwfRzxjpCgvU','qvPvuKu','CMv0CNLbDhrLBxb0CW','x2vZDgLTyxrLvg9Rzw5Z','CMvXDwvZDeLK','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','yMfJA2vUza','y3vYCMvUDe1VzgvS','x2nOzwnRuMf0zuXPBwL0','r0furvDbwv9usu1ft1vu','A2v5CW','Bg9Nz2vY','y2LYy3vPDejYzwfRzxi','DxnHz2u','y2HVAwnLCW','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','Dg9ju09tDhjPBMC','BgfZDezHAwX1CMvuAw1L','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','ic0G','x2DLDfzLBMrVCKzYB21nB2rLBa'];a0_0x1c1c=function(){return _0xfaeb55;};return a0_0x1c1c();}class ConversationManager{constructor(_0x200b53,_0x148058){const _0x2b3a53=a0_0x383746;this[_0x2b3a53(0x203)]=_0x200b53,this['logger']=_0x148058,this['conversations']=new Map();}async[a0_0x383746(0x1a7)](_0x44320a){return{'messages':[],'model':_0x44320a,'lastUpdated':new Date()['toISOString']()};}}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_0xc30d(_0x3064c0,_0x5860a0){_0x3064c0=_0x3064c0-0x11d;const _0x48d27c=a0_0x48d2();let _0xc30da=_0x48d27c[_0x3064c0];if(a0_0xc30d['mCwxzB']===undefined){var _0x533422=function(_0x4f3802){const _0x3af920='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40d8fd='',_0x25ca01='';for(let _0x2bcf34=0x0,_0x310495,_0x237e07,_0x2cc361=0x0;_0x237e07=_0x4f3802['charAt'](_0x2cc361++);~_0x237e07&&(_0x310495=_0x2bcf34%0x4?_0x310495*0x40+_0x237e07:_0x237e07,_0x2bcf34++%0x4)?_0x40d8fd+=String['fromCharCode'](0xff&_0x310495>>(-0x2*_0x2bcf34&0x6)):0x0){_0x237e07=_0x3af920['indexOf'](_0x237e07);}for(let _0x56b7d5=0x0,_0x127e78=_0x40d8fd['length'];_0x56b7d5<_0x127e78;_0x56b7d5++){_0x25ca01+='%'+('00'+_0x40d8fd['charCodeAt'](_0x56b7d5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25ca01);};a0_0xc30d['PbePRf']=_0x533422,a0_0xc30d['bQuZLo']={},a0_0xc30d['mCwxzB']=!![];}const _0x418927=_0x48d27c[0x0],_0x33da7a=_0x3064c0+_0x418927,_0x3a4dc5=a0_0xc30d['bQuZLo'][_0x33da7a];return!_0x3a4dc5?(_0xc30da=a0_0xc30d['PbePRf'](_0xc30da),a0_0xc30d['bQuZLo'][_0x33da7a]=_0xc30da):_0xc30da=_0x3a4dc5,_0xc30da;}const a0_0x5c8590=a0_0xc30d;(function(_0x252a51,_0x17caee){const _0x2c47e0=a0_0xc30d,_0xabd73f=_0x252a51();while(!![]){try{const _0x20b9b4=parseInt(_0x2c47e0(0x120))/0x1+parseInt(_0x2c47e0(0x11d))/0x2*(parseInt(_0x2c47e0(0x12e))/0x3)+-parseInt(_0x2c47e0(0x131))/0x4+-parseInt(_0x2c47e0(0x129))/0x5+parseInt(_0x2c47e0(0x123))/0x6*(parseInt(_0x2c47e0(0x127))/0x7)+-parseInt(_0x2c47e0(0x122))/0x8+parseInt(_0x2c47e0(0x12d))/0x9*(parseInt(_0x2c47e0(0x133))/0xa);if(_0x20b9b4===_0x17caee)break;else _0xabd73f['push'](_0xabd73f['shift']());}catch(_0x17bf23){_0xabd73f['push'](_0xabd73f['shift']());}}}(a0_0x48d2,0x4ad03));class ApiKeyManager{constructor(_0x40d8fd){const _0x11f10c=a0_0xc30d;this[_0x11f10c(0x136)]=_0x40d8fd,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x25ca01,_0x2bcf34){const _0x40fbe7=a0_0xc30d;if(!_0x25ca01)throw new Error('Session\x20ID\x20is\x20required');this['sessionKeys'][_0x40fbe7(0x12b)](_0x25ca01,{'loxiaApiKey':_0x2bcf34['loxiaApiKey']||null,'vendorKeys':_0x2bcf34['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.['info'](_0x40fbe7(0x126),{'sessionId':_0x25ca01,'hasLoxiaKey':!!_0x2bcf34[_0x40fbe7(0x12f)],'vendorKeys':Object[_0x40fbe7(0x121)](_0x2bcf34[_0x40fbe7(0x13a)]||{}),'timestamp':new Date()['toISOString']()});}[a0_0x5c8590(0x125)](_0x310495){const _0x230e5d=a0_0x5c8590;if(!_0x310495)return this[_0x230e5d(0x128)];const _0x237e07=this['sessionKeys'][_0x230e5d(0x137)](_0x310495);if(_0x237e07)return _0x237e07;return this[_0x230e5d(0x128)];}['getKeysForRequest'](_0x2cc361,_0x56b7d5={}){const _0xf13782=a0_0x5c8590,_0x127e78=this[_0xf13782(0x125)](_0x2cc361),_0xaf6d55={'loxiaApiKey':_0x127e78['loxiaApiKey'],'vendorApiKey':null};return!_0x56b7d5[_0xf13782(0x132)]&&_0x56b7d5[_0xf13782(0x11e)]&&_0x127e78['vendorKeys']&&(_0xaf6d55[_0xf13782(0x11f)]=_0x127e78[_0xf13782(0x13a)][_0x56b7d5[_0xf13782(0x11e)]]),_0xaf6d55;}['removeSessionKeys'](_0x8449f1){const _0x294bd0=a0_0x5c8590;if(this[_0x294bd0(0x12a)][_0x294bd0(0x139)](_0x8449f1))return this[_0x294bd0(0x136)]?.[_0x294bd0(0x130)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x8449f1}),!![];return![];}['setGlobalKeys'](_0x234081){const _0x5b3d9c=a0_0x5c8590;this['globalKeys']={'loxiaApiKey':_0x234081[_0x5b3d9c(0x12f)]||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x5b3d9c(0x13a)],..._0x234081[_0x5b3d9c(0x13a)]||{}}},this[_0x5b3d9c(0x136)]?.['info']('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0x5b3d9c(0x128)][_0x5b3d9c(0x12f)],'vendorKeys':Object[_0x5b3d9c(0x121)](this[_0x5b3d9c(0x128)]['vendorKeys'])});}[a0_0x5c8590(0x134)](){const _0x512641=a0_0x5c8590;return Array['from'](this['sessionKeys'][_0x512641(0x135)]())['map'](([_0x40914b,_0x19c252])=>({'sessionId':_0x40914b,'hasLoxiaKey':!!_0x19c252['loxiaApiKey'],'vendorKeys':Object['keys'](_0x19c252[_0x512641(0x13a)]||{}),'updatedAt':_0x19c252['updatedAt']}));}[a0_0x5c8590(0x138)](_0x2325f1=0x18*0x3c*0x3c*0x3e8){const _0x874c0e=a0_0x5c8590,_0x1f4c10=Date['now'](),_0x2024a3=[];for(const [_0x11cdaf,_0x47a319]of this['sessionKeys']['entries']()){const _0x2b325a=_0x1f4c10-new Date(_0x47a319['updatedAt'])['getTime']();_0x2b325a>_0x2325f1&&_0x2024a3['push'](_0x11cdaf);}return _0x2024a3[_0x874c0e(0x124)](_0x4d3db0=>{const _0x439deb=_0x874c0e;this[_0x439deb(0x12a)][_0x439deb(0x139)](_0x4d3db0);}),_0x2024a3['length']>0x0&&this['logger']?.[_0x874c0e(0x130)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x2024a3[_0x874c0e(0x12c)],'remainingSessions':this['sessionKeys']['size']}),_0x2024a3['length'];}}export default ApiKeyManager;function a0_0x48d2(){const _0xf05bf6=['zw50CMLLCW','Bg9Nz2vY','z2v0','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','zgvSzxrL','DMvUzg9Ys2v5CW','ng9Ks2L2sG','DMvUzg9Y','DMvUzg9YqxbPs2v5','mJG5ntm0Agv0ANbA','A2v5CW','nJKZnZiWDKPxsvzK','nteWntrise5rBhG','zM9YrwfJAa','z2v0u2vZC2LVBKTLExm','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mtG5ufzxCvLU','z2XVyMfSs2v5CW','mJi5ndy1nuves3DKBG','C2vZC2LVBKTLExm','C2v0','BgvUz3rO','mtuXmK9fBwDABq','nZuXnJm4wNfYswr0','Bg94AwfbCgLlzxK','Aw5MBW','mtyZmda4mhLnDvzerq','CgXHDgzVCM1qCM92AwrLza','mtqYndbyExrerfa','z2v0qwn0AxzLu2vZC2LVBNm'];a0_0x48d2=function(){return _0xf05bf6;};return a0_0x48d2();}
@@ -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
+ const a0_0x1015cd=a0_0x471c;(function(_0x519a00,_0x269bae){const _0x560bdf=a0_0x471c,_0x2a94fa=_0x519a00();while(!![]){try{const _0x2995b1=parseInt(_0x560bdf(0x1ad))/0x1*(-parseInt(_0x560bdf(0x19e))/0x2)+parseInt(_0x560bdf(0x198))/0x3*(parseInt(_0x560bdf(0x1ae))/0x4)+-parseInt(_0x560bdf(0x184))/0x5*(-parseInt(_0x560bdf(0x191))/0x6)+-parseInt(_0x560bdf(0x1af))/0x7*(parseInt(_0x560bdf(0x1ac))/0x8)+parseInt(_0x560bdf(0x1a7))/0x9*(parseInt(_0x560bdf(0x194))/0xa)+-parseInt(_0x560bdf(0x1b0))/0xb+-parseInt(_0x560bdf(0x19c))/0xc;if(_0x2995b1===_0x269bae)break;else _0x2a94fa['push'](_0x2a94fa['shift']());}catch(_0xcb5616){_0x2a94fa['push'](_0x2a94fa['shift']());}}}(a0_0x16ef,0x6cab4));function a0_0x471c(_0x19843c,_0x5bd363){_0x19843c=_0x19843c-0x17d;const _0x16ef40=a0_0x16ef();let _0x471c6f=_0x16ef40[_0x19843c];if(a0_0x471c['wHbQuk']===undefined){var _0x5e9719=function(_0x2b611d){const _0x3c6694='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xcdf71c='',_0x4c18b2='';for(let _0x540f79=0x0,_0x970edf,_0x214a99,_0x190987=0x0;_0x214a99=_0x2b611d['charAt'](_0x190987++);~_0x214a99&&(_0x970edf=_0x540f79%0x4?_0x970edf*0x40+_0x214a99:_0x214a99,_0x540f79++%0x4)?_0xcdf71c+=String['fromCharCode'](0xff&_0x970edf>>(-0x2*_0x540f79&0x6)):0x0){_0x214a99=_0x3c6694['indexOf'](_0x214a99);}for(let _0x5efe09=0x0,_0x519d2f=_0xcdf71c['length'];_0x5efe09<_0x519d2f;_0x5efe09++){_0x4c18b2+='%'+('00'+_0xcdf71c['charCodeAt'](_0x5efe09)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c18b2);};a0_0x471c['GnIGaX']=_0x5e9719,a0_0x471c['CJAmwa']={},a0_0x471c['wHbQuk']=!![];}const _0x3ffb79=_0x16ef40[0x0],_0x50844c=_0x19843c+_0x3ffb79,_0x20dfbc=a0_0x471c['CJAmwa'][_0x50844c];return!_0x20dfbc?(_0x471c6f=a0_0x471c['GnIGaX'](_0x471c6f),a0_0x471c['CJAmwa'][_0x50844c]=_0x471c6f):_0x471c6f=_0x20dfbc,_0x471c6f;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0xcdf71c,_0x4c18b2){const _0x5edaf5=a0_0x471c;this['config']=_0xcdf71c,this['logger']=_0x4c18b2,this['benchmarks']=null,this['lastUpdated']=null,this[_0x5edaf5(0x19b)]=![],this[_0x5edaf5(0x180)]='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x5edaf5(0x181)];}async['initialize'](){const _0xc7b8e2=a0_0x471c;try{await this[_0xc7b8e2(0x1b3)](),this[_0xc7b8e2(0x1a8)](),this['logger']['info'](_0xc7b8e2(0x1aa));}catch(_0x540f79){this['logger']['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x540f79['message']}),this['benchmarks']=null;}}[a0_0x1015cd(0x1a3)](){const _0x48924a=a0_0x1015cd;if(!this[_0x48924a(0x17e)])return this[_0x48924a(0x19d)][_0x48924a(0x18d)](_0x48924a(0x193),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x48924a(0x17e)];}async[a0_0x1015cd(0x1b3)](){const _0x28d662=a0_0x1015cd;if(this['isLoading']){this['logger']['debug'](_0x28d662(0x1a6));return;}this[_0x28d662(0x19b)]=!![];try{const _0x970edf=await this[_0x28d662(0x1ab)]();if(_0x970edf)this['benchmarks']=_0x970edf,this[_0x28d662(0x18e)]=new Date(),this['logger'][_0x28d662(0x189)]('Benchmarks loaded from Azure backend',{'modelCount':_0x970edf['models']?.[_0x28d662(0x1a5)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x214a99){this[_0x28d662(0x19d)]['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x214a99[_0x28d662(0x1a2)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this['isLoading']=![];}}['getBenchmarkTable'](){const _0x229b0d=a0_0x1015cd,_0x190987=this['getBenchmarks']();return{'lastUpdated':this[_0x229b0d(0x18e)]?.[_0x229b0d(0x195)]()||_0x229b0d(0x183),'models':_0x190987[_0x229b0d(0x1a1)]||[],'tasks':_0x190987[_0x229b0d(0x19f)]||{},'summary':this[_0x229b0d(0x19a)](_0x190987)};}[a0_0x1015cd(0x1b4)](){const _0x26fdb5=a0_0x1015cd;if(!this['lastUpdated'])return!![];const _0x5efe09=Date[_0x26fdb5(0x187)]()-this[_0x26fdb5(0x18e)][_0x26fdb5(0x186)]();return _0x5efe09>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0xb54ae6=a0_0x1015cd,_0x519d2f=this[_0xb54ae6(0x180)]+'/llm/model-benchmarks';let _0x2576fb=null;this['config'][_0xb54ae6(0x18f)]&&(_0x2576fb=this[_0xb54ae6(0x185)]['apiKey']);const _0x1d092b={'method':'GET','headers':{'Content-Type':'application/json',..._0x2576fb&&{'Authorization':'Bearer\x20'+_0x2576fb}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x519d2f});const _0x25acfa=await fetch(_0x519d2f,_0x1d092b);if(!_0x25acfa['ok'])throw new Error('HTTP\x20'+_0x25acfa['status']+':\x20'+_0x25acfa['statusText']);const _0x4e11a7=await _0x25acfa['json']();return _0x4e11a7;}['_generateBenchmarkSummary'](_0x45e1d6){const _0x399acf=a0_0x1015cd,_0x521200=_0x45e1d6['models']||[];return{'totalModels':_0x521200[_0x399acf(0x1a5)],'taskCategories':Object['keys'](_0x45e1d6['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x521200,_0x399acf(0x1b1)),'bestForAnalysis':this[_0x399acf(0x1a0)](_0x521200,'analysis'),'bestForQuickTasks':this['_getBestModelForTask'](_0x521200,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x521200,_0x399acf(0x1a9)),'fastestModel':this[_0x399acf(0x1a4)](_0x521200),'mostCostEfficient':this['_getMostCostEfficient'](_0x521200)};}['_getBestModelForTask'](_0x16d476,_0xef6174){const _0x4b1475=a0_0x1015cd;return _0x16d476[_0x4b1475(0x196)](_0x596a7d=>_0x596a7d['tasks']&&_0x596a7d['tasks'][_0xef6174])[_0x4b1475(0x18c)]((_0x218f14,_0x233162)=>(_0x233162['tasks'][_0xef6174]['score']||0x0)-(_0x218f14['tasks'][_0xef6174]['score']||0x0))[0x0]?.[_0x4b1475(0x197)]||_0x4b1475(0x183);}['_getFastestModel'](_0x20ba8c){const _0xd510a2=a0_0x1015cd,_0x4ccf29={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x20ba8c['sort']((_0x24fa3f,_0xbdfeea)=>{const _0x7b0612=a0_0x471c,_0x116683=Math['max'](...Object[_0x7b0612(0x188)](_0x24fa3f[_0x7b0612(0x19f)]||{})['map'](_0x56fc20=>_0x4ccf29[_0x56fc20[_0x7b0612(0x1b2)]]||0x0)),_0x259b8c=Math['max'](...Object['values'](_0xbdfeea['tasks']||{})['map'](_0xf1031c=>_0x4ccf29[_0xf1031c[_0x7b0612(0x1b2)]]||0x0));return _0x259b8c-_0x116683;})[0x0]?.[_0xd510a2(0x197)]||_0xd510a2(0x183);}[a0_0x1015cd(0x192)](_0x5cbf53){const _0x3c85b7=a0_0x1015cd,_0x235131={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x5cbf53['sort']((_0x219589,_0x343f73)=>{const _0x4a4e0a=a0_0x471c,_0x5a84ab=Math[_0x4a4e0a(0x18a)](...Object['values'](_0x219589['tasks']||{})[_0x4a4e0a(0x190)](_0x15f7c4=>_0x235131[_0x15f7c4['cost']]||0x0)),_0xcfe481=Math['max'](...Object['values'](_0x343f73[_0x4a4e0a(0x19f)]||{})['map'](_0x449170=>_0x235131[_0x449170['cost']]||0x0));return _0xcfe481-_0x5a84ab;})[0x0]?.[_0x3c85b7(0x197)]||_0x3c85b7(0x183);}['_scheduleRefresh'](){const _0x7155a1=a0_0x1015cd;setInterval(async()=>{const _0x5290b7=a0_0x471c;this[_0x5290b7(0x1b4)]()&&(this[_0x5290b7(0x19d)][_0x5290b7(0x17d)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x7155a1(0x18b)]);}async[a0_0x1015cd(0x199)](){const _0x363a0a=a0_0x1015cd;this[_0x363a0a(0x19d)][_0x363a0a(0x189)](_0x363a0a(0x182)),await this['loadBenchmarks']();}['getStatus'](){const _0x503a7b=a0_0x1015cd;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x503a7b(0x195)]()||null,'source':this['benchmarks']?.[_0x503a7b(0x17f)]||'unknown','modelCount':this['benchmarks']?.[_0x503a7b(0x1a1)]?.['length']||0x0,'isLoading':this['isLoading'],'needsRefresh':this[_0x503a7b(0x1b4)]()};}}function a0_0x16ef(){const _0x578dfd=['nJzqAfLjwgi','DgfZA3m','x2DLDejLC3rnB2rLBezVCLrHC2S','Bw9KzwXZ','BwvZC2fNzq','z2v0qMvUy2HTyxjRCW','x2DLDezHC3rLC3rnB2rLBa','BgvUz3rO','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','mJDnAMn6vKG','x3nJAgvKDwXLuMvMCMvZAa','y3jLyxrPDMu','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','mteYDMHMyKHO','otq2n0DTvLbUwq','mZi5mMTbyKz6zG','odi4mZfMB2vPzKi','mtmZntCXoxfMsev2za','y29KAw5N','C3bLzwq','Bg9HzejLBMnOBwfYA3m','BMvLzhnszwzYzxnO','zgvIDwC','yMvUy2HTyxjRCW','C291CMnL','yxP1CMvcywnRzw5KvxjS','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','Dw5RBM93BG','nwv0uhjICG','y29UzMLN','z2v0vgLTzq','BM93','DMfSDwvZ','Aw5MBW','Bwf4','CMvMCMvZAeLUDgvYDMfS','C29YDa','zxjYB3i','BgfZDfvWzgf0zwq','yxbPs2v5','BwfW','ndi0mtK0nMvPy2vSqG','x2DLDe1VC3rdB3n0rwzMAwnPzw50','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','mtK1nJm5mg5bC2rTDW','Dg9ju09tDhjPBMC','zMLSDgvY','BMfTzq','mJa3vuvbs3v3','zM9Yy2vszwzYzxnO','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','AxnmB2fKAw5N','mZy3mZaYmgDJt1DcBa','Bg9Nz2vY'];a0_0x16ef=function(){return _0x578dfd;};return a0_0x16ef();}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
+ function a0_0x15a2(_0x1b4fb0,_0x21d86f){_0x1b4fb0=_0x1b4fb0-0xfe;const _0x43c493=a0_0x43c4();let _0x15a2b6=_0x43c493[_0x1b4fb0];if(a0_0x15a2['dlXCqV']===undefined){var _0x52189e=function(_0xdfb201){const _0x218bc0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f46d5='',_0x1b33f8='';for(let _0x18e8ed=0x0,_0x2b47d4,_0x5f3230,_0x7c71e0=0x0;_0x5f3230=_0xdfb201['charAt'](_0x7c71e0++);~_0x5f3230&&(_0x2b47d4=_0x18e8ed%0x4?_0x2b47d4*0x40+_0x5f3230:_0x5f3230,_0x18e8ed++%0x4)?_0x3f46d5+=String['fromCharCode'](0xff&_0x2b47d4>>(-0x2*_0x18e8ed&0x6)):0x0){_0x5f3230=_0x218bc0['indexOf'](_0x5f3230);}for(let _0x5d657b=0x0,_0x3d617a=_0x3f46d5['length'];_0x5d657b<_0x3d617a;_0x5d657b++){_0x1b33f8+='%'+('00'+_0x3f46d5['charCodeAt'](_0x5d657b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b33f8);};a0_0x15a2['wKrQKW']=_0x52189e,a0_0x15a2['zfJWOC']={},a0_0x15a2['dlXCqV']=!![];}const _0x15ae97=_0x43c493[0x0],_0x25978f=_0x1b4fb0+_0x15ae97,_0x159967=a0_0x15a2['zfJWOC'][_0x25978f];return!_0x159967?(_0x15a2b6=a0_0x15a2['wKrQKW'](_0x15a2b6),a0_0x15a2['zfJWOC'][_0x25978f]=_0x15a2b6):_0x15a2b6=_0x159967,_0x15a2b6;}const a0_0x3e6de1=a0_0x15a2;(function(_0x40ad9b,_0x5691a9){const _0x3c7cb4=a0_0x15a2,_0x42d128=_0x40ad9b();while(!![]){try{const _0x35ed40=-parseInt(_0x3c7cb4(0x12b))/0x1+-parseInt(_0x3c7cb4(0x154))/0x2+parseInt(_0x3c7cb4(0x141))/0x3*(-parseInt(_0x3c7cb4(0x119))/0x4)+-parseInt(_0x3c7cb4(0x105))/0x5+parseInt(_0x3c7cb4(0x11f))/0x6+-parseInt(_0x3c7cb4(0x115))/0x7+parseInt(_0x3c7cb4(0x13a))/0x8;if(_0x35ed40===_0x5691a9)break;else _0x42d128['push'](_0x42d128['shift']());}catch(_0x3092af){_0x42d128['push'](_0x42d128['shift']());}}}(a0_0x43c4,0xa7ea5));function a0_0x43c4(){const _0xabd31c=['C2vUzej1zgDLDefSzxj0','z2v0uMvTywLUAw5NqNvKz2v0','Aw5WDxq','z2v0rNvSBfLLyxi','BM93','v0vfs0Xz','DgHYzxnOB2XKx3jLywnOzwq','Aw5MBW','z2v0tw9UDgHlzxK','Dg9Rzw5Z','vg9Rzw5Z','CM91BMq','C3bSAxq','yNvKz2v0qwXLCNq','mZa4mZmZovfQD2fbua','zw50CMLLCW','z2v0','yNvKz2v0x2v4y2vLzgvK','mJa0nJa0y0jMDfPg','z2v0rgf5s2v5','AxnxAxrOAw5cDwrNzxq','DxbKyxrLvxnHz2vfBNrYEq','z2v0v2vLA051BwjLCG','D2vLA2X5','nJG4ntq4mhn1tfDvAq','y3jLyxrLrw1WDhLvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','Aw5PDgLHBgL6zvvZywDLrw50CNK','zxHWB3j0vxnHz2veyxrH','DxnHz2u','zM9YrwfJAa','y2HLy2TcDwrNzxrmAw1PDhm','y29TCgXLDgLVBL90B2TLBNm','y2HLy2TuAhjLC2HVBgrbBgvYDhm','BwvZC2fNzq','mta0mtuZnvbXD2rVua','rgf0zq','vxnHz2uGDhjHy2TLza','z2v0vxnHz2u','z2v0rgf0zq','Dg9Rzw5ZqNLeyxK','C2vUzfrOCMvZAg9SzefSzxj0','Dg90ywW','CgfKu3rHCNq','Dg9ju09tDhjPBMC','C2f2zvvZywDLrgf0yq','q29ZDa','Dw5ZAgLMDa','Bg9Nz2vY','y29ZDa','mJi0nZC2mdHnANLRAfm','zgfPBhK','DhjHy2TvC2fNzq','qNvKz2v0igXPBwL0igv4y2vLzgvK','C2v0','y2HLy2TuAhjLC2HVBgq','ugvYAw9K','oxztuvH1yG','yNLnB2rLBa','vxnHz2uGzgf0ysbZyxzLza','Dg90ywXFDg9Rzw5Z','tu9oveHmwq','z2v0v2vLA0TLEq','C3rYAw5NAwz5','veHsrvnit0XeuW','Bw9UDgHSEq','C2v0qNvKz2v0CW','C2v0DxbqzxjPB2rPy1nHDMu','zw1PDa','y29UDMvYDfrVq1nw','zgfPBhLbDMvYywDLCW','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','ywXLCNrZ','yNvKz2v0CW','y29ZDej5rgf5','BgfZDefSzxj0vgLTzxm','mJm2nJa3mKzICvrkrG','C2v0rgf0zq','Bw9KzwXjza','Dw5KzwzPBMvK','CMvXDwvZDhm','ywDLBNrjza','zxjYB3i','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','C29YDa','ANnVBG','D2fYBG','mJi1ndK5nvfNA09HDa','yNLbz2vUDa'];a0_0x43c4=function(){return _0xabd31c;};return a0_0x43c4();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x3f46d5,_0x1b33f8){const _0x2b9554=a0_0x15a2;this['config']=_0x3f46d5||{},this[_0x2b9554(0x138)]=_0x1b33f8,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x2b9554(0x151)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x2b9554(0x10c)],'monthly':BUDGET_LIMITS[_0x2b9554(0x145)]},this[_0x2b9554(0x150)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x2b9554(0x148)],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x2b9554(0x14b)]();}[a0_0x3e6de1(0x13c)](_0x18e8ed,_0x2b47d4,_0x5f3230){const _0x150699=a0_0x3e6de1;try{const _0x7c71e0=this['calculateCost'](_0x2b47d4,_0x5f3230),_0x5d657b=new Date(),_0x3d617a=this['getDayKey'](_0x5d657b),_0x37f865=this[_0x150699(0x146)](_0x5d657b),_0x15730e=this['getMonthKey'](_0x5d657b);this[_0x150699(0x123)](this[_0x150699(0x125)]['daily'],_0x3d617a),this[_0x150699(0x123)](this[_0x150699(0x125)]['weekly'],_0x37f865),this[_0x150699(0x123)](this['usage']['monthly'],_0x15730e);const _0x40c2fc={'agentId':_0x18e8ed,'modelId':_0x2b47d4,'tokens':_0x5f3230['total_tokens'],'cost':_0x7c71e0,'timestamp':_0x5d657b[_0x150699(0x134)]()};return this['updateUsageEntry'](this[_0x150699(0x125)]['daily'][_0x150699(0x117)](_0x3d617a),_0x40c2fc),this[_0x150699(0x11c)](this['usage']['weekly']['get'](_0x37f865),_0x40c2fc),this['updateUsageEntry'](this['usage'][_0x150699(0x149)]['get'](_0x15730e),_0x40c2fc),this['usage'][_0x150699(0x132)][_0x150699(0x110)]+=_0x5f3230[_0x150699(0x144)],this[_0x150699(0x125)][_0x150699(0x132)]['cost']+=_0x7c71e0,this[_0x150699(0x125)]['total']['requests']+=0x1,this[_0x150699(0x127)](_0x3d617a,_0x37f865,_0x15730e),this[_0x150699(0x138)]['info'](_0x150699(0x12d),{'agentId':_0x18e8ed,'modelId':_0x2b47d4,'tokens':_0x5f3230[_0x150699(0x144)],'cost':_0x7c71e0,'totalCost':this[_0x150699(0x125)]['total']['cost']}),{'cost':_0x7c71e0,'totalCost':this['usage']['total']['cost'],'totalTokens':this[_0x150699(0x125)][_0x150699(0x132)]['tokens'],'dailyUsage':this['usage'][_0x150699(0x13b)]['get'](_0x3d617a),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x1185fc){this[_0x150699(0x138)][_0x150699(0x100)]('Failed\x20to\x20track\x20usage',{'error':_0x1185fc[_0x150699(0x12a)],'agentId':_0x18e8ed,'modelId':_0x2b47d4});throw _0x1185fc;}}['calculateCost'](_0x173e67,_0x554feb){const _0x46b8a9=a0_0x3e6de1,_0x274a5e=COST_PER_TOKEN[_0x173e67];if(!_0x274a5e)return this[_0x46b8a9(0x138)]['warn'](_0x46b8a9(0x14f),{'modelId':_0x173e67}),0x0;const _0x4e45c5=(_0x554feb['prompt_tokens']||0x0)*_0x274a5e[_0x46b8a9(0x109)],_0x21c94a=(_0x554feb[_0x46b8a9(0x128)]||0x0)*_0x274a5e['output'];return _0x4e45c5+_0x21c94a;}['getUsage'](_0x3e1214='daily',_0x435de1=new Date()){const _0x4beabc=a0_0x3e6de1;switch(_0x3e1214){case _0x4beabc(0x13b):return this['usage']['daily'][_0x4beabc(0x117)](this['getDayKey'](_0x435de1))||this['createEmptyUsage']();case'weekly':return this['usage'][_0x4beabc(0x11e)]['get'](this['getWeekKey'](_0x435de1))||this['createEmptyUsage']();case _0x4beabc(0x149):return this['usage']['monthly']['get'](this['getMonthKey'](_0x435de1))||this['createEmptyUsage']();case'total':return{...this[_0x4beabc(0x125)][_0x4beabc(0x132)]};default:throw new Error(_0x4beabc(0x121)+_0x3e1214);}}['getAgentUsage'](_0x3a4a6c,_0x46cc76='daily'){const _0x38a65a=a0_0x3e6de1,_0x1a0da8=this[_0x38a65a(0x12e)](_0x46cc76);return _0x1a0da8['byAgent']?.[_0x3a4a6c]||this['createEmptyUsage']();}['getModelUsage'](_0x210860,_0x5b42ca='daily'){const _0x417d30=this['getUsage'](_0x5b42ca);return _0x417d30['byModel']?.[_0x210860]||this['createEmptyUsage']();}[a0_0x3e6de1(0x14a)](_0x5b4472){const _0x20a5dc=a0_0x3e6de1;if(_0x5b4472[_0x20a5dc(0x13b)]!==undefined)this[_0x20a5dc(0x151)][_0x20a5dc(0x13b)]=_0x5b4472['daily'];if(_0x5b4472['weekly']!==undefined)this[_0x20a5dc(0x151)]['weekly']=_0x5b4472[_0x20a5dc(0x11e)];if(_0x5b4472['monthly']!==undefined)this[_0x20a5dc(0x151)][_0x20a5dc(0x149)]=_0x5b4472[_0x20a5dc(0x149)];this[_0x20a5dc(0x138)][_0x20a5dc(0x10e)]('Budget\x20limits\x20updated',this['budgets']),this['saveUsageData']();}[a0_0x3e6de1(0x108)](){const _0x62daa9=a0_0x3e6de1,_0x71c8f4=new Date(),_0x57311c=this['getUsage']('daily',_0x71c8f4),_0x93200c=this['getUsage'](_0x62daa9(0x11e),_0x71c8f4),_0x1e8297=this['getUsage'](_0x62daa9(0x149),_0x71c8f4);return{'daily':Math['max'](0x0,this['budgets'][_0x62daa9(0x13b)]-_0x57311c[_0x62daa9(0x139)]),'weekly':Math['max'](0x0,this['budgets']['weekly']-_0x93200c['cost']),'monthly':Math['max'](0x0,this['budgets'][_0x62daa9(0x149)]-_0x1e8297['cost'])};}[a0_0x3e6de1(0x11b)](_0x538150=a0_0x3e6de1(0x13b)){const _0x36f717=a0_0x3e6de1,_0xb6ef2=this[_0x36f717(0x12e)](_0x538150),_0x497d90=this['budgets'][_0x538150];return _0xb6ef2['cost']<=_0x497d90;}['getUsageTrends'](_0x240a38=0x1e){const _0x57bc51=a0_0x3e6de1,_0xf2a934={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x382600=new Date();let _0x68dbb6=0x0,_0x2a3faa=0x0,_0x2a7450=0x0;const _0x524ac7=new Map(),_0x187a15=new Map();for(let _0x361c59=0x0;_0x361c59<_0x240a38;_0x361c59++){const _0x11a4ca=new Date(_0x382600);_0x11a4ca[_0x57bc51(0x155)](_0x11a4ca[_0x57bc51(0x12f)]()-_0x361c59);const _0x329f85=this[_0x57bc51(0x11a)](_0x11a4ca),_0x51ec72=this['usage']['daily'][_0x57bc51(0x117)](_0x329f85);_0x51ec72?(_0x68dbb6+=_0x51ec72['cost'],_0x2a3faa+=_0x51ec72[_0x57bc51(0x110)],_0x2a7450+=_0x51ec72['requests'],_0xf2a934[_0x57bc51(0x152)]['unshift']({'date':_0x329f85,'cost':_0x51ec72['cost']}),_0xf2a934['tokensByDay']['unshift']({'date':_0x329f85,'tokens':_0x51ec72[_0x57bc51(0x110)]}),Object[_0x57bc51(0x116)](_0x51ec72[_0x57bc51(0x106)]||{})[_0x57bc51(0x126)](([_0x38e562,_0x27d5e2])=>{const _0x413034=_0x57bc51;!_0x524ac7['has'](_0x38e562)&&_0x524ac7[_0x413034(0x13e)](_0x38e562,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0xf8e8f1=_0x524ac7['get'](_0x38e562);_0xf8e8f1[_0x413034(0x139)]+=_0x27d5e2['cost'],_0xf8e8f1['tokens']+=_0x27d5e2['tokens'],_0xf8e8f1['requests']+=_0x27d5e2['requests'];}),Object[_0x57bc51(0x116)](_0x51ec72[_0x57bc51(0x142)]||{})['forEach'](([_0x10e729,_0x4902ad])=>{const _0x4d81e5=_0x57bc51;!_0x187a15['has'](_0x10e729)&&_0x187a15['set'](_0x10e729,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x636a07=_0x187a15[_0x4d81e5(0x117)](_0x10e729);_0x636a07['cost']+=_0x4902ad[_0x4d81e5(0x139)],_0x636a07['tokens']+=_0x4902ad[_0x4d81e5(0x110)],_0x636a07['requests']+=_0x4902ad[_0x4d81e5(0xfe)];})):(_0xf2a934['costByDay']['unshift']({'date':_0x329f85,'cost':0x0}),_0xf2a934[_0x57bc51(0x130)][_0x57bc51(0x137)]({'date':_0x329f85,'tokens':0x0}));}return _0xf2a934[_0x57bc51(0x14e)][_0x57bc51(0x139)]=_0x68dbb6/_0x240a38,_0xf2a934[_0x57bc51(0x14e)][_0x57bc51(0x110)]=_0x2a3faa/_0x240a38,_0xf2a934[_0x57bc51(0x14e)]['requests']=_0x2a7450/_0x240a38,_0xf2a934['topAgents']=Array['from'](_0x524ac7[_0x57bc51(0x116)]())['map'](([_0x16aaf9,_0x45fa51])=>({'id':_0x16aaf9,..._0x45fa51}))['sort']((_0x27c196,_0x20b356)=>_0x20b356['cost']-_0x27c196[_0x57bc51(0x139)])['slice'](0x0,0xa),_0xf2a934['topModels']=Array['from'](_0x187a15['entries']())['map'](([_0x4ece05,_0x2a60b0])=>({'id':_0x4ece05,..._0x2a60b0}))[_0x57bc51(0x102)]((_0x6388d0,_0x2c64d1)=>_0x2c64d1[_0x57bc51(0x139)]-_0x6388d0['cost'])['slice'](0x0,0xa),_0xf2a934;}[a0_0x3e6de1(0x124)](_0x3c3faa=a0_0x3e6de1(0x103),_0x41d1f2=null,_0x14da64=null){const _0x8dcc0c=a0_0x3e6de1,_0x161857={'budgets':this[_0x8dcc0c(0x151)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x178974=(_0x482462,_0x18dd98)=>{const _0xf0e2ee=_0x8dcc0c,_0x4760c6={};return _0x482462[_0xf0e2ee(0x126)]((_0x38a08c,_0x4a09f6)=>{const _0x3af333=_0x18dd98(_0x4a09f6);(!_0x41d1f2||_0x3af333>=_0x41d1f2)&&(!_0x14da64||_0x3af333<=_0x14da64)&&(_0x4760c6[_0x4a09f6]=_0x38a08c);}),_0x4760c6;};_0x41d1f2||_0x14da64?(_0x161857[_0x8dcc0c(0x13b)]=_0x178974(this[_0x8dcc0c(0x125)]['daily'],_0x54300e=>new Date(_0x54300e)),_0x161857[_0x8dcc0c(0x11e)]=_0x178974(this['usage'][_0x8dcc0c(0x11e)],_0x57983b=>new Date(_0x57983b)),_0x161857[_0x8dcc0c(0x149)]=_0x178974(this[_0x8dcc0c(0x125)]['monthly'],_0x3d199d=>new Date(_0x3d199d+'-01'))):(this['usage'][_0x8dcc0c(0x13b)][_0x8dcc0c(0x126)]((_0x52fea4,_0x4d3acd)=>_0x161857[_0x8dcc0c(0x13b)][_0x4d3acd]=_0x52fea4),this[_0x8dcc0c(0x125)][_0x8dcc0c(0x11e)][_0x8dcc0c(0x126)]((_0x2dff70,_0x118b87)=>_0x161857[_0x8dcc0c(0x11e)][_0x118b87]=_0x2dff70),this['usage'][_0x8dcc0c(0x149)]['forEach']((_0x20685a,_0x4ded4b)=>_0x161857['monthly'][_0x4ded4b]=_0x20685a));if(_0x3c3faa==='csv')return this[_0x8dcc0c(0x14d)](_0x161857);return JSON[_0x8dcc0c(0x147)](_0x161857,null,0x2);}[a0_0x3e6de1(0x123)](_0x5bd921,_0x15f4db){const _0x22a12b=a0_0x3e6de1;!_0x5bd921['has'](_0x15f4db)&&_0x5bd921[_0x22a12b(0x13e)](_0x15f4db,this['createEmptyUsage']());}[a0_0x3e6de1(0x120)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x2e0dc6,_0x32aad5){const _0x49354d=a0_0x3e6de1;_0x2e0dc6[_0x49354d(0x139)]+=_0x32aad5[_0x49354d(0x139)],_0x2e0dc6[_0x49354d(0x110)]+=_0x32aad5['tokens'],_0x2e0dc6['requests']+=0x1,!_0x2e0dc6['byAgent'][_0x32aad5['agentId']]&&(_0x2e0dc6['byAgent'][_0x32aad5[_0x49354d(0xff)]]=this[_0x49354d(0x120)]()),_0x2e0dc6['byAgent'][_0x32aad5[_0x49354d(0xff)]]['cost']+=_0x32aad5['cost'],_0x2e0dc6[_0x49354d(0x106)][_0x32aad5[_0x49354d(0xff)]][_0x49354d(0x110)]+=_0x32aad5['tokens'],_0x2e0dc6[_0x49354d(0x106)][_0x32aad5['agentId']]['requests']+=0x1,!_0x2e0dc6['byModel'][_0x32aad5[_0x49354d(0x156)]]&&(_0x2e0dc6['byModel'][_0x32aad5['modelId']]=this['createEmptyUsage']()),_0x2e0dc6[_0x49354d(0x142)][_0x32aad5['modelId']]['cost']+=_0x32aad5['cost'],_0x2e0dc6['byModel'][_0x32aad5[_0x49354d(0x156)]]['tokens']+=_0x32aad5['tokens'],_0x2e0dc6['byModel'][_0x32aad5[_0x49354d(0x156)]][_0x49354d(0xfe)]+=0x1;}[a0_0x3e6de1(0x127)](_0x23e5e7,_0x38f0f2,_0x42e20f){const _0x3dcc03=a0_0x3e6de1,_0x356b6e=this[_0x3dcc03(0x125)][_0x3dcc03(0x13b)][_0x3dcc03(0x117)](_0x23e5e7),_0x49375e=this[_0x3dcc03(0x125)][_0x3dcc03(0x11e)]['get'](_0x38f0f2),_0x400a4a=this['usage'][_0x3dcc03(0x149)][_0x3dcc03(0x117)](_0x42e20f);_0x356b6e[_0x3dcc03(0x139)]>this['budgets']['daily']&&this['sendBudgetAlert']('daily',_0x356b6e['cost'],this[_0x3dcc03(0x151)]['daily']),_0x49375e[_0x3dcc03(0x139)]>this[_0x3dcc03(0x151)][_0x3dcc03(0x11e)]&&this[_0x3dcc03(0x107)]('weekly',_0x49375e[_0x3dcc03(0x139)],this['budgets']['weekly']),_0x400a4a[_0x3dcc03(0x139)]>this['budgets'][_0x3dcc03(0x149)]&&this['sendBudgetAlert'](_0x3dcc03(0x149),_0x400a4a['cost'],this['budgets'][_0x3dcc03(0x149)]),this[_0x3dcc03(0x129)](_0x356b6e,_0x49375e,_0x400a4a);}[a0_0x3e6de1(0x129)](_0x186c15,_0x47863c,_0x45c778){const _0x5f082b=a0_0x3e6de1,_0x3b5c0a=this[_0x5f082b(0x150)]['thresholds'];this[_0x5f082b(0x13f)](_0x5f082b(0x13b),_0x186c15[_0x5f082b(0x139)],this[_0x5f082b(0x151)]['daily'],_0x3b5c0a),this[_0x5f082b(0x13f)]('weekly',_0x47863c[_0x5f082b(0x139)],this[_0x5f082b(0x151)]['weekly'],_0x3b5c0a),this[_0x5f082b(0x13f)](_0x5f082b(0x149),_0x45c778[_0x5f082b(0x139)],this[_0x5f082b(0x151)][_0x5f082b(0x149)],_0x3b5c0a);}[a0_0x3e6de1(0x13f)](_0x56b964,_0x572d7d,_0x2842ce,_0x223282){const _0x52baf1=a0_0x3e6de1,_0x12de53=_0x572d7d/_0x2842ce*0x64;for(const _0x26892a of _0x223282){if(_0x12de53>=_0x26892a){const _0x1bb8c9=_0x56b964+'_'+_0x26892a,_0x59c42e=this['alerts'][_0x52baf1(0x153)][_0x52baf1(0x117)](_0x1bb8c9),_0x1db4db=Date[_0x52baf1(0x10b)]();(!_0x59c42e||_0x1db4db-_0x59c42e>0x36ee80)&&(this['sendThresholdAlert'](_0x56b964,_0x12de53,_0x26892a,_0x572d7d,_0x2842ce),this[_0x52baf1(0x150)]['lastAlertTimes'][_0x52baf1(0x13e)](_0x1bb8c9,_0x1db4db));break;}}}[a0_0x3e6de1(0x107)](_0x1c6377,_0x4191d7,_0x200690){const _0x3d39ef=a0_0x3e6de1;this[_0x3d39ef(0x138)][_0x3d39ef(0x104)](_0x3d39ef(0x13d),{'period':_0x1c6377,'currentUsage':_0x4191d7,'budgetLimit':_0x200690,'excess':_0x4191d7-_0x200690}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':_0x3d39ef(0x118),'period':_0x1c6377,'currentUsage':_0x4191d7,'budgetLimit':_0x200690,'excess':_0x4191d7-_0x200690});}[a0_0x3e6de1(0x131)](_0x418bdb,_0x4d272c,_0x44e6ca,_0x1cd759,_0x21ffbd){const _0x902da2=a0_0x3e6de1;this[_0x902da2(0x138)]['warn'](_0x902da2(0x101),{'period':_0x418bdb,'percentage':Math[_0x902da2(0x112)](_0x4d272c),'threshold':_0x44e6ca,'usage':_0x1cd759,'budget':_0x21ffbd}),typeof process!==_0x902da2(0x157)&&process[_0x902da2(0x14c)]&&process['emit'](_0x902da2(0x114),{'type':_0x902da2(0x10d),'period':_0x418bdb,'percentage':Math['round'](_0x4d272c),'threshold':_0x44e6ca,'usage':_0x1cd759,'budget':_0x21ffbd});}[a0_0x3e6de1(0x11a)](_0xe8ef5b){const _0x45bdf5=a0_0x3e6de1;return _0xe8ef5b[_0x45bdf5(0x134)]()[_0x45bdf5(0x113)]('T')[0x0];}['getWeekKey'](_0x244b2b){const _0xd2d858=a0_0x3e6de1,_0x53626b=_0x244b2b['getFullYear'](),_0x356cec=this[_0xd2d858(0x11d)](_0x244b2b);return _0x53626b+'-W'+_0x356cec['toString']()[_0xd2d858(0x133)](0x2,'0');}[a0_0x3e6de1(0x10f)](_0x5612aa){const _0x533f4c=a0_0x3e6de1,_0x5686c4=_0x5612aa[_0x533f4c(0x10a)](),_0x4f59c5=_0x5612aa['getMonth']()+0x1;return _0x5686c4+'-'+_0x4f59c5['toString']()['padStart'](0x2,'0');}[a0_0x3e6de1(0x11d)](_0x1d321a){const _0x70820f=new Date(_0x1d321a['getFullYear'](),0x0,0x1),_0x27436e=(_0x1d321a-_0x70820f)/0x5265c00;return Math['ceil']((_0x27436e+_0x70820f['getDay']()+0x1)/0x7);}[a0_0x3e6de1(0x14d)](_0x86226){const _0x4ad074=a0_0x3e6de1,_0x5531b5=[];return _0x5531b5['push']([_0x4ad074(0x140),_0x4ad074(0x12c),_0x4ad074(0x136),_0x4ad074(0x111),'Requests','Agent','Model']),Object['entries'](_0x86226[_0x4ad074(0x13b)])['forEach'](([_0x56bd30,_0xcb0e25])=>{const _0x3453d6=_0x4ad074;_0x5531b5['push'](['Daily',_0x56bd30,_0xcb0e25['cost'],_0xcb0e25[_0x3453d6(0x110)],_0xcb0e25['requests'],'','']),Object[_0x3453d6(0x116)](_0xcb0e25[_0x3453d6(0x106)]||{})[_0x3453d6(0x126)](([_0x5f315c,_0x125039])=>{_0x5531b5['push'](['Daily',_0x56bd30,_0x125039['cost'],_0x125039['tokens'],_0x125039['requests'],_0x5f315c,'']);});}),_0x5531b5['map'](_0x43eace=>_0x43eace['join'](','))['join']('\x0a');}['loadUsageData'](){const _0x4c01b3=a0_0x3e6de1;try{this['logger'][_0x4c01b3(0x10e)]('Budget\x20service\x20initialized');}catch(_0x526485){this['logger']['error'](_0x4c01b3(0x122),{'error':_0x526485[_0x4c01b3(0x12a)]});}}[a0_0x3e6de1(0x135)](){const _0x2a3e38=a0_0x3e6de1;try{this['logger']['debug'](_0x2a3e38(0x143));}catch(_0x447f7b){this[_0x2a3e38(0x138)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x447f7b[_0x2a3e38(0x12a)]});}}['setupPeriodicSave'](){setInterval(()=>{const _0x398d61=a0_0x15a2;this[_0x398d61(0x135)]();},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_0x2ff622=a0_0x1d57;(function(_0x337c1d,_0x334467){const _0x3f1bd4=a0_0x1d57,_0x54340c=_0x337c1d();while(!![]){try{const _0x4a997b=-parseInt(_0x3f1bd4(0xec))/0x1+parseInt(_0x3f1bd4(0xfe))/0x2+parseInt(_0x3f1bd4(0xde))/0x3*(parseInt(_0x3f1bd4(0xf3))/0x4)+-parseInt(_0x3f1bd4(0xe4))/0x5*(-parseInt(_0x3f1bd4(0xf7))/0x6)+-parseInt(_0x3f1bd4(0x108))/0x7+parseInt(_0x3f1bd4(0x10c))/0x8*(parseInt(_0x3f1bd4(0x102))/0x9)+-parseInt(_0x3f1bd4(0xe0))/0xa;if(_0x4a997b===_0x334467)break;else _0x54340c['push'](_0x54340c['shift']());}catch(_0x1dd549){_0x54340c['push'](_0x54340c['shift']());}}}(a0_0x5416,0x2528a));function a0_0x5416(){const _0x5e217c=['cIaGpc9MAwXLpG','BgvUz3rO','nJGWmJjsu2X1Bhu','zMLSDgvY','CMvMzxjLBMnL','jMfTCdS','Bg9Nz2vY','zMXVB3i','nZm5odm3zwzuq21q','zMLSzxm','Aw5PDgLHBgL6zq','zM9YBwf0qNL0zxm','mtm2q0DxugD6','yNvPBgreEw5HBwLJq29UDgv4Da','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','jMfWB3m7','zM9YBwf0ugrMrMLSzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zM9YBwf0sw1Hz2vgAwXL','zM9YBwf0vgv4DezPBgu','m1fnzffRwG','y29UDgvUDa','mZK1ndK2mfLUsffwta','zM9YBwf0uMvMzxjLBMnLrMLSzq','iIaVpG','CMvWBgfJzq','mte3nJGZnwT6vufsrq','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','zxjYB3i','zxnJyxbLwg1S','BwvZC2fNzq','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','Dg9Rzw5fC3rPBwf0zq','CgrM','mJi1mtG0u3v1zLfd','zMLSzu5HBwu','iIbZAxPLpsi','iIbWyxrOpsi','y29UzMLN','C2L6zq','Bw9Kzq','otyWnZy0zuXxzKrx','C3bSAxq','zxn0Aw1HDgvKvg9Rzw5Z','z2v0qwn0AxzLqxr0ywnOBwvUDhm','nNbtEuHLtq','zM9YBwf0q29UDgvUDezPBgu','ica8zMLSzsbUyw1Lpsi','cJXHDhrHy2HLzc1MAwXLCZ4k','yxr0ywnOBwvUDfnLCNzPy2u','ChvZAa','Cg93','ntq5mdu4txHgzMfz','iIb0ExbLpsi'];a0_0x5416=function(){return _0x5e217c;};return a0_0x5416();}import a0_0xef1d6e from'./fileAttachmentService.js';function a0_0x1d57(_0x182bc6,_0x44268a){_0x182bc6=_0x182bc6-0xd9;const _0x5416ba=a0_0x5416();let _0x1d5762=_0x5416ba[_0x182bc6];if(a0_0x1d57['uyGesK']===undefined){var _0x4000fd=function(_0x41cb5c){const _0x54f090='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xef1d6e='',_0x4c5607='';for(let _0x24d79b=0x0,_0x2b7756,_0x16af80,_0x43b997=0x0;_0x16af80=_0x41cb5c['charAt'](_0x43b997++);~_0x16af80&&(_0x2b7756=_0x24d79b%0x4?_0x2b7756*0x40+_0x16af80:_0x16af80,_0x24d79b++%0x4)?_0xef1d6e+=String['fromCharCode'](0xff&_0x2b7756>>(-0x2*_0x24d79b&0x6)):0x0){_0x16af80=_0x54f090['indexOf'](_0x16af80);}for(let _0x1df026=0x0,_0x1e0318=_0xef1d6e['length'];_0x1df026<_0x1e0318;_0x1df026++){_0x4c5607+='%'+('00'+_0xef1d6e['charCodeAt'](_0x1df026)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c5607);};a0_0x1d57['JivmxF']=_0x4000fd,a0_0x1d57['PPRGvu']={},a0_0x1d57['uyGesK']=!![];}const _0x441a55=_0x5416ba[0x0],_0x4e19b4=_0x182bc6+_0x441a55,_0x233199=a0_0x1d57['PPRGvu'][_0x4e19b4];return!_0x233199?(_0x1d5762=a0_0x1d57['JivmxF'](_0x1d5762),a0_0x1d57['PPRGvu'][_0x4e19b4]=_0x1d5762):_0x1d5762=_0x233199,_0x1d5762;}class ContextInjectionService{constructor(_0x4c5607={},_0x24d79b=null){const _0x3c22e5=a0_0x1d57;this[_0x3c22e5(0xf0)]=_0x4c5607,this['logger']=_0x24d79b,this[_0x3c22e5(0xfb)]=new a0_0xef1d6e(_0x4c5607,_0x24d79b);}async[a0_0x2ff622(0x10a)](){const _0x388cbd=a0_0x2ff622;await this[_0x388cbd(0xfb)]['initialize']();}async[a0_0x2ff622(0x10d)](_0x2b7756){const _0x5b8b93=a0_0x2ff622;try{const _0x16af80=await this[_0x5b8b93(0xfb)]['getActiveAttachments'](_0x2b7756);if(_0x16af80['length']===0x0)return'';const _0x43b997=_0x16af80['filter'](_0x21584c=>_0x21584c[_0x5b8b93(0xf2)]==='content'),_0x1df026=_0x16af80['filter'](_0x56196e=>_0x56196e[_0x5b8b93(0xf2)]==='reference');let _0x1e0318='';if(_0x43b997['length']>0x0){_0x1e0318+=_0x5b8b93(0xfa);for(const _0x1a5a84 of _0x43b997){const _0x1fcf55=await this[_0x5b8b93(0xfb)]['getAttachmentContent'](_0x1a5a84['fileId']);if(_0x1fcf55){const _0x36b591=this[_0x5b8b93(0xf8)](_0x1a5a84,_0x1fcf55);_0x1e0318+=_0x36b591+'\x0a';}}_0x1e0318+='</attached-files>\x0a';}if(_0x1df026['length']>0x0){_0x1e0318+='\x0a<file-references>\x0a';for(const _0x19500b of _0x1df026){const _0x53950e=this['formatReferenceFile'](_0x19500b);_0x1e0318+=_0x53950e+'\x0a';}_0x1e0318+=_0x5b8b93(0xdb),_0x1e0318+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x1e0318;}catch(_0x4e38c0){return this['logger']?.['error'](_0x5b8b93(0x10e),{'agentId':_0x2b7756,'error':_0x4e38c0['message']}),'';}}[a0_0x2ff622(0xf8)](_0x3d0fa3,_0x9f6ba2){const _0x1e7228=a0_0x2ff622,{fileName:_0x17be4c,fileType:_0x539c90,size:_0x1c9820,contentType:_0x2d8878}=_0x3d0fa3,_0x2ffdf7=(_0x1c9820/0x400)['toFixed'](0x2);if(_0x2d8878==='text')return this[_0x1e7228(0xdd)](_0x3d0fa3,_0x9f6ba2);else{if(_0x2d8878==='image')return this['formatImageFile'](_0x3d0fa3,_0x9f6ba2);else{if(_0x2d8878===_0x1e7228(0xeb))return this['formatPdfFile'](_0x3d0fa3,_0x9f6ba2);}}return'\x20\x20<file\x20name=\x22'+this[_0x1e7228(0xe7)](_0x17be4c)+'\x22\x20type=\x22'+_0x539c90+_0x1e7228(0xee)+_0x2ffdf7+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x9f6ba2)+_0x1e7228(0x100);}[a0_0x2ff622(0xdd)](_0x1d7782,_0xb5d6a){const _0x176e75=a0_0x2ff622,{fileName:_0x4acf9e,fileType:_0x195535,size:_0x284f16}=_0x1d7782,_0x25f3d9=(_0x284f16/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x4acf9e)+_0x176e75(0xff)+_0x195535+_0x176e75(0xee)+_0x25f3d9+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x176e75(0xe7)](_0xb5d6a)+'\x0a\x20\x20</file>';}[a0_0x2ff622(0xdc)](_0x3f4da3,_0x4731f4){const _0x1960e8=a0_0x2ff622,{fileName:_0x22bc5e,fileType:_0x2f20aa,size:_0x340053}=_0x3f4da3,_0x5c68db=(_0x340053/0x400)['toFixed'](0x2);return _0x1960e8(0xf9)+this['escapeXml'](_0x22bc5e)+_0x1960e8(0xff)+_0x2f20aa+_0x1960e8(0xee)+_0x5c68db+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x4731f4+'\x0a\x20\x20</file>';}[a0_0x2ff622(0xda)](_0x251b9d,_0x2b33ce){const _0x1d78a9=a0_0x2ff622,{fileName:_0x2e753e,fileType:_0x59faba,size:_0x15b62f}=_0x251b9d,_0x4f2c39=(_0x15b62f/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x2e753e)+_0x1d78a9(0xff)+_0x59faba+_0x1d78a9(0xee)+_0x4f2c39+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x1d78a9(0xe7)](_0x2b33ce)+'\x0a\x20\x20</file>';}[a0_0x2ff622(0xe1)](_0x4645fc){const _0xf1f230=a0_0x2ff622,{fileName:_0xb69ee0,originalPath:_0x1b0a77,size:_0x515f9d,fileType:_0x19e49f,lastModified:_0x4e245d}=_0x4645fc,_0x5c0ebb=this[_0xf1f230(0x10b)](_0x515f9d),_0x3ba5ab=new Date(_0x4e245d)['toISOString']()[_0xf1f230(0xf4)]('T')[0x0];return _0xf1f230(0xf9)+this['escapeXml'](_0xb69ee0)+_0xf1f230(0xef)+this[_0xf1f230(0xe7)](_0x1b0a77)+_0xf1f230(0xee)+_0x5c0ebb+'\x22\x20type=\x22'+_0x19e49f+'\x22\x20modified=\x22'+_0x3ba5ab+_0xf1f230(0xe2);}['escapeXml'](_0x570db2){const _0x5cec6e=a0_0x2ff622;if(!_0x570db2)return'';return _0x570db2[_0x5cec6e(0xe3)](/&/g,_0x5cec6e(0x105))['replace'](/</g,'&lt;')[_0x5cec6e(0xe3)](/>/g,'&gt;')['replace'](/"/g,'&quot;')[_0x5cec6e(0xe3)](/'/g,_0x5cec6e(0xd9));}['formatBytes'](_0x1cf6dd){const _0x5b6479=a0_0x2ff622;if(_0x1cf6dd===0x0)return'0\x20Bytes';const _0xb2c648=0x400,_0x3e592c=['Bytes','KB','MB','GB'],_0x392561=Math[_0x5b6479(0x107)](Math['log'](_0x1cf6dd)/Math['log'](_0xb2c648));return parseFloat((_0x1cf6dd/Math[_0x5b6479(0xfd)](_0xb2c648,_0x392561))['toFixed'](0x2))+_0x3e592c[_0x392561];}async['estimateTotalTokens'](_0x4a0c08){const _0xdd3e39=a0_0x2ff622;try{const _0x4ecc99=await this['attachmentService'][_0xdd3e39(0xf6)](_0x4a0c08);let _0x174b19=0x0;for(const _0x2ed6b6 of _0x4ecc99){_0x2ed6b6[_0xdd3e39(0xf2)]===_0xdd3e39(0xdf)?_0x174b19+=_0x2ed6b6[_0xdd3e39(0xea)]||0x0:_0x174b19+=0x14;}return _0x174b19;}catch(_0x371191){return this['logger']?.['error'](_0xdd3e39(0xe5),{'agentId':_0x4a0c08,'error':_0x371191['message']}),0x0;}}async['getAttachmentSummary'](_0xefba91){const _0x3aec4b=a0_0x2ff622;try{const _0x4519c7=await this[_0x3aec4b(0xfb)]['getActiveAttachments'](_0xefba91),_0x321c96={'totalActive':_0x4519c7[_0x3aec4b(0x101)],'contentMode':_0x4519c7['filter'](_0x5a2d04=>_0x5a2d04['mode']===_0x3aec4b(0xdf))[_0x3aec4b(0x101)],'referenceMode':_0x4519c7[_0x3aec4b(0x103)](_0x11aca7=>_0x11aca7[_0x3aec4b(0xf2)]===_0x3aec4b(0x104))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x4d9b15 of _0x4519c7){_0x321c96[_0x3aec4b(0xf5)]+=_0x4d9b15['tokenEstimate']||0x0,_0x321c96[_0x3aec4b(0x109)][_0x3aec4b(0xfc)]({'fileName':_0x4d9b15[_0x3aec4b(0xed)],'mode':_0x4d9b15['mode'],'size':this[_0x3aec4b(0x10b)](_0x4d9b15[_0x3aec4b(0xf1)]),'tokens':_0x4d9b15['tokenEstimate']||0x0});}return _0x321c96;}catch(_0x303ea6){return this[_0x3aec4b(0x106)]?.[_0x3aec4b(0xe6)](_0x3aec4b(0xe9),{'agentId':_0xefba91,'error':_0x303ea6[_0x3aec4b(0xe8)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;