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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-BzXbDs8z.js → index-CoRE46V-.js} +28 -28
  119. package/web-ui/build/static/index-P281Rusr.css +1 -0
  120. package/web-ui/build/static/index-BmKxmRe3.css +0 -1
@@ -1 +1 @@
1
- const a0_0x252d00=a0_0x2f8c;(function(_0x37b5c0,_0x3103aa){const _0x505ab9=a0_0x2f8c,_0x4cfb53=_0x37b5c0();while(!![]){try{const _0x50b730=-parseInt(_0x505ab9(0x21b))/0x1*(-parseInt(_0x505ab9(0x1fd))/0x2)+-parseInt(_0x505ab9(0x1b2))/0x3*(-parseInt(_0x505ab9(0x215))/0x4)+parseInt(_0x505ab9(0x21a))/0x5+parseInt(_0x505ab9(0x1a7))/0x6*(-parseInt(_0x505ab9(0x199))/0x7)+parseInt(_0x505ab9(0x1f8))/0x8+parseInt(_0x505ab9(0x1bf))/0x9+-parseInt(_0x505ab9(0x1df))/0xa*(parseInt(_0x505ab9(0x1b8))/0xb);if(_0x50b730===_0x3103aa)break;else _0x4cfb53['push'](_0x4cfb53['shift']());}catch(_0x106617){_0x4cfb53['push'](_0x4cfb53['shift']());}}}(a0_0x5c38,0x3ee4c));function a0_0x2f8c(_0x3fccc2,_0x15a6f8){_0x3fccc2=_0x3fccc2-0x18a;const _0x5c38fa=a0_0x5c38();let _0x2f8c9f=_0x5c38fa[_0x3fccc2];if(a0_0x2f8c['ibqdLZ']===undefined){var _0x2311aa=function(_0x2563c3){const _0x1a0912='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x292262='',_0x172f2b='';for(let _0x4cf816=0x0,_0x48d3bd,_0x1d5747,_0x5200fd=0x0;_0x1d5747=_0x2563c3['charAt'](_0x5200fd++);~_0x1d5747&&(_0x48d3bd=_0x4cf816%0x4?_0x48d3bd*0x40+_0x1d5747:_0x1d5747,_0x4cf816++%0x4)?_0x292262+=String['fromCharCode'](0xff&_0x48d3bd>>(-0x2*_0x4cf816&0x6)):0x0){_0x1d5747=_0x1a0912['indexOf'](_0x1d5747);}for(let _0x27c446=0x0,_0x1b1ef4=_0x292262['length'];_0x27c446<_0x1b1ef4;_0x27c446++){_0x172f2b+='%'+('00'+_0x292262['charCodeAt'](_0x27c446)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x172f2b);};a0_0x2f8c['PYCtIz']=_0x2311aa,a0_0x2f8c['XqERyS']={},a0_0x2f8c['ibqdLZ']=!![];}const _0x1317d2=_0x5c38fa[0x0],_0x4b3c1d=_0x3fccc2+_0x1317d2,_0x2bb1cb=a0_0x2f8c['XqERyS'][_0x4b3c1d];return!_0x2bb1cb?(_0x2f8c9f=a0_0x2f8c['PYCtIz'](_0x2f8c9f),a0_0x2f8c['XqERyS'][_0x4b3c1d]=_0x2f8c9f):_0x2f8c9f=_0x2bb1cb,_0x2f8c9f;}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x292262,_0x172f2b,_0x4cf816,_0x48d3bd){const _0x3e4454=a0_0x2f8c;this[_0x3e4454(0x1a3)]=_0x292262,this['logger']=_0x172f2b,this[_0x3e4454(0x21c)]=_0x4cf816,this['errorHandler']=_0x48d3bd,this[_0x3e4454(0x20c)]=_0x292262[_0x3e4454(0x227)]?.['baseUrl']||'https://api.loxia.ai',this['timeout']=_0x292262[_0x3e4454(0x227)]?.['timeout']||0xea60,this[_0x3e4454(0x1e3)]=_0x292262[_0x3e4454(0x227)]?.[_0x3e4454(0x1e3)]||0x3,this['rateLimiters']=new Map(),this[_0x3e4454(0x221)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x3e4454(0x1d1)]=this[_0x3e4454(0x1ce)](),this['conversationManagers']=new Map(),this['apiKeyManager']=null,this[_0x3e4454(0x1de)]=null;}async[a0_0x252d00(0x19d)](_0x1d5747,_0x5200fd,_0x27c446={}){const _0x2cac8c=a0_0x252d00,_0x1b1ef4='req-'+Date['now']()+'-'+Math['random']()['toString'](0x24)[_0x2cac8c(0x1ed)](0x2,0x9);try{if(this[_0x2cac8c(0x204)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x1d5747);const _0x175c6d=this[_0x2cac8c(0x1dd)](_0x5200fd,_0x1d5747,_0x27c446),_0x9f0548={'model':_0x1d5747,'messages':_0x175c6d,'options':{'max_tokens':this[_0x2cac8c(0x1d1)][_0x1d5747]?.['maxTokens']||0xfa0,'temperature':_0x27c446['temperature']||0.7,'stream':_0x27c446['stream']||![]},'metadata':{'requestId':_0x1b1ef4,'agentId':_0x27c446['agentId'],'timestamp':new Date()['toISOString']()}};_0x27c446[_0x2cac8c(0x1a4)]&&(_0x9f0548['system']=_0x27c446['systemPrompt']);this['logger'][_0x2cac8c(0x1a9)]('Sending\x20message\x20to\x20model:\x20'+_0x1d5747,{'requestId':_0x1b1ef4,'agentId':_0x27c446['agentId'],'messageCount':Array['isArray'](_0x5200fd)?_0x5200fd[_0x2cac8c(0x212)]:0x1,'maxTokens':_0x9f0548['max_tokens']});const _0x5130b5=await this['_makeAPIRequest']('/chat/completions',_0x9f0548,_0x1b1ef4,{..._0x27c446,'sessionId':_0x27c446[_0x2cac8c(0x1ba)],'platformProvided':_0x27c446[_0x2cac8c(0x1b4)]||![]});return _0x5130b5['usage']&&await this[_0x2cac8c(0x1f9)](_0x27c446['agentId'],_0x1d5747,{'prompt_tokens':_0x5130b5[_0x2cac8c(0x1d3)][_0x2cac8c(0x18b)]||0x0,'completion_tokens':_0x5130b5['usage']['completion_tokens']||0x0,'total_tokens':_0x5130b5['usage'][_0x2cac8c(0x205)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x5130b5[_0x2cac8c(0x1ae)][0x0]?.[_0x2cac8c(0x1cf)]?.[_0x2cac8c(0x1d8)]||'','model':_0x5130b5[_0x2cac8c(0x217)],'tokenUsage':_0x5130b5['usage'],'requestId':_0x1b1ef4,'finishReason':_0x5130b5[_0x2cac8c(0x1ae)][0x0]?.['finish_reason']};}catch(_0x55ec0){this['_recordFailure'](),this['logger']['error'](_0x2cac8c(0x1ac)+_0x55ec0[_0x2cac8c(0x1cf)],{'requestId':_0x1b1ef4,'model':_0x1d5747,'agentId':_0x27c446[_0x2cac8c(0x1a0)],'error':_0x55ec0['stack']}),await this[_0x2cac8c(0x20a)](_0x55ec0,{'requestId':_0x1b1ef4,'model':_0x1d5747,'agentId':_0x27c446['agentId']});throw _0x55ec0;}}async[a0_0x252d00(0x1fe)](_0x1e9b2a,_0x6f2daf={}){const _0x488b40=a0_0x252d00;try{const _0x59cc7d=MODEL_ROUTING[_0x1e9b2a[_0x488b40(0x1da)]()]||MODEL_ROUTING['FALLBACK'],_0x263e0e=[];for(const _0x209422 of _0x59cc7d){const _0x4aa60b=await this['_checkModelHealth'](_0x209422);_0x4aa60b&&_0x263e0e[_0x488b40(0x1ec)](_0x209422);}if(_0x263e0e[_0x488b40(0x212)]===0x0)return this['logger']['warn']('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x1e9b2a+',\x20using\x20fallback'),MODEL_ROUTING[_0x488b40(0x1ad)][0x0];let _0xcd40f=_0x263e0e[0x0];if(_0x6f2daf['preferredModel']&&_0x263e0e[_0x488b40(0x1c8)](_0x6f2daf[_0x488b40(0x1f4)]))_0xcd40f=_0x6f2daf['preferredModel'];else{if(_0x6f2daf['complexity']==='high'&&_0x263e0e[_0x488b40(0x1c8)](MODELS[_0x488b40(0x1f2)]))_0xcd40f=MODELS[_0x488b40(0x1f2)];else _0x6f2daf['speed']==='fast'&&_0x263e0e[_0x488b40(0x1c8)](MODELS[_0x488b40(0x1e7)])&&(_0xcd40f=MODELS[_0x488b40(0x1e7)]);}return this[_0x488b40(0x1b1)]['info'](_0x488b40(0x1e6)+_0x1e9b2a,{'selectedModel':_0xcd40f,'availableModels':_0x263e0e[_0x488b40(0x212)],'context':_0x6f2daf}),_0xcd40f;}catch(_0x48478c){return this['logger']['error']('Model\x20routing\x20failed:\x20'+_0x48478c['message'],{'task':_0x1e9b2a,'context':_0x6f2daf}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x252d00(0x1d5)](_0x3bcd2f,_0x1ff468){const _0xbbf51a=a0_0x252d00,_0x198f95=this[_0xbbf51a(0x1d1)][_0x1ff468];if(!_0x198f95)throw new Error(_0xbbf51a(0x207)+_0x1ff468);const _0x132423=_0x198f95['contextWindow']*0.8;let _0x27cc2f=0x0;const _0x39d620=[],_0x5c3ac5=await Promise['all'](_0x3bcd2f['map'](async _0x2b2fc4=>({..._0x2b2fc4,'estimatedTokens':await this['_estimateTokens'](_0x2b2fc4['content'],_0x1ff468)}))),_0x34c9e4=[..._0x5c3ac5][_0xbbf51a(0x1e5)]();for(const _0x58e4c9 of _0x34c9e4){if(_0x27cc2f+_0x58e4c9['estimatedTokens']>_0x132423){if(_0x39d620['length']===0x0){const _0x3a1f1c=await this[_0xbbf51a(0x1fb)](_0x58e4c9['content'],_0x132423);_0x39d620[_0xbbf51a(0x1cb)]({..._0x58e4c9,'content':_0x3a1f1c,'estimatedTokens':_0x132423});}break;}_0x39d620['unshift'](_0x58e4c9),_0x27cc2f+=_0x58e4c9[_0xbbf51a(0x1b0)];}const _0x56d9cb=_0x5c3ac5['slice'](0x0,-_0x39d620[_0xbbf51a(0x212)]);if(_0x56d9cb[_0xbbf51a(0x212)]>0x0){const _0x2560fd=await this[_0xbbf51a(0x1f3)](_0x56d9cb,_0x1ff468);_0x39d620[_0xbbf51a(0x1cb)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x2560fd,'timestamp':_0x56d9cb[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0xbbf51a(0x200)](_0x2560fd,_0x1ff468)});}return this['logger']['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x1ff468,{'originalMessages':_0x3bcd2f[_0xbbf51a(0x212)],'compactizedMessages':_0x39d620[_0xbbf51a(0x212)],'estimatedTokens':_0x27cc2f,'maxTokens':_0x132423}),_0x39d620;}async[a0_0x252d00(0x1f9)](_0x3f4484,_0xe67996,_0x30c9a1,_0x3f4d2f){const _0x5b7a7d=a0_0x252d00;try{this[_0x5b7a7d(0x21c)]&&this[_0x5b7a7d(0x21c)]['trackUsage'](_0x3f4484,_0xe67996,_0x30c9a1);}catch(_0x4d7436){this[_0x5b7a7d(0x1b1)][_0x5b7a7d(0x18a)](_0x5b7a7d(0x1a5)+_0x4d7436['message']);}}async[a0_0x252d00(0x20a)](_0x1e44e2,_0x40c10e){const _0x2335ea=a0_0x252d00,_0x5d2bb4=this['errorHandler']?.[_0x2335ea(0x1c6)]?.(_0x1e44e2,_0x40c10e);switch(_0x1e44e2[_0x2335ea(0x1b6)]||_0x1e44e2['code']){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x2335ea(0x18a)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x40c10e,'error':_0x1e44e2[_0x2335ea(0x1cf)]});throw new Error('Invalid\x20request:\x20'+_0x1e44e2['message']);case HTTP_STATUS['UNAUTHORIZED']:this[_0x2335ea(0x1b1)][_0x2335ea(0x18a)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x40c10e});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this['logger']['error'](_0x2335ea(0x1ff),{'context':_0x40c10e});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS['NOT_FOUND']:this['logger']['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x40c10e});throw new Error(_0x2335ea(0x1bb));case HTTP_STATUS[_0x2335ea(0x1c0)]:this['logger'][_0x2335ea(0x193)](_0x2335ea(0x1ca),{'context':_0x40c10e}),await this[_0x2335ea(0x229)](_0x40c10e);throw new Error(_0x2335ea(0x1cd));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x2335ea(0x1aa)]:this['logger'][_0x2335ea(0x18a)](_0x2335ea(0x18d),{'context':_0x40c10e,'status':_0x1e44e2['status']}),await this[_0x2335ea(0x1ef)](_0x40c10e);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger'][_0x2335ea(0x18a)]('Unknown\x20AI\x20service\x20error',{'context':_0x40c10e,'error':_0x1e44e2['message']});throw new Error(_0x2335ea(0x1f1)+_0x1e44e2['message']);}}[a0_0x252d00(0x195)](_0x5cdc8c){const _0x88df7c=a0_0x252d00;this['apiKeyManager']=_0x5cdc8c,this['logger']?.[_0x88df7c(0x1a9)](_0x88df7c(0x21d),{'hasManager':!!_0x5cdc8c});}['setAgentPool'](_0x470d2f){const _0x325147=a0_0x252d00;this[_0x325147(0x1de)]=_0x470d2f,this['logger']?.['info'](_0x325147(0x208),{'hasAgentPool':!!_0x470d2f});}async['generateImage'](_0x17487a,_0x5471cb={}){const _0x4c98af=a0_0x252d00,_0x2060ea='img-'+Date['now']()+'-'+Math['random']()[_0x4c98af(0x210)](0x24)[_0x4c98af(0x1ed)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x17487a||typeof _0x17487a!=='string'||_0x17487a[_0x4c98af(0x216)]()['length']===0x0)throw new Error(_0x4c98af(0x1e9));const _0x564b9c=_0x5471cb[_0x4c98af(0x217)]||'flux-1.1-pro',_0x4780a4=_0x5471cb[_0x4c98af(0x1d7)]||'1024x1024',_0x26ced0=_0x5471cb['quality']||'standard',_0x53b488=_0x5471cb['responseFormat']||'url';this['logger']['info']('Generating\x20image\x20with\x20model:\x20'+_0x564b9c,{'requestId':_0x2060ea,'model':_0x564b9c,'size':_0x4780a4,'quality':_0x26ced0,'promptLength':_0x17487a['length']});const _0x235540={'prompt':_0x17487a,'model':_0x564b9c,'size':_0x4780a4,'quality':_0x26ced0,'response_format':_0x53b488,'n':0x1,'metadata':{'requestId':_0x2060ea,'timestamp':new Date()[_0x4c98af(0x20f)]()}},_0xdf3e7d=await this[_0x4c98af(0x18f)](_0x235540,_0x2060ea,{'sessionId':_0x5471cb['sessionId'],'platformProvided':_0x5471cb[_0x4c98af(0x1b4)]||![]});return this[_0x4c98af(0x226)](),{'url':_0xdf3e7d[_0x4c98af(0x1c5)]?.[0x0]?.['url']||null,'b64_json':_0xdf3e7d['data']?.[0x0]?.[_0x4c98af(0x196)]||null,'model':_0xdf3e7d[_0x4c98af(0x217)]||_0x564b9c,'requestId':_0x2060ea,'revisedPrompt':_0xdf3e7d[_0x4c98af(0x1c5)]?.[0x0]?.[_0x4c98af(0x1e2)]||_0x17487a};}catch(_0x52c1d9){this['_recordFailure'](),this['logger'][_0x4c98af(0x18a)](_0x4c98af(0x20d)+_0x52c1d9[_0x4c98af(0x1cf)],{'requestId':_0x2060ea,'model':_0x5471cb[_0x4c98af(0x217)],'error':_0x52c1d9[_0x4c98af(0x18c)]});throw _0x52c1d9;}}async['checkServiceHealth'](){const _0x2eb1f1=a0_0x252d00;try{const _0x34760d=await this['_makeAPIRequest'](_0x2eb1f1(0x1af),{},'health-check');return _0x34760d[_0x2eb1f1(0x1b6)]==='healthy';}catch(_0x3a19f0){return![];}}async['switchAgentModel'](_0x1c975a,_0x408c4f){const _0xf94515=a0_0x252d00;try{if(!this['_isValidModel'](_0x408c4f))throw new Error('Invalid\x20model:\x20'+_0x408c4f);let _0x128021=this[_0xf94515(0x198)][_0xf94515(0x1f6)](_0x1c975a);!_0x128021&&(_0x128021=new ConversationManager(_0x1c975a,this['logger']),this[_0xf94515(0x198)]['set'](_0x1c975a,_0x128021));const _0x40e31d=await _0x128021['switchModel'](_0x408c4f),_0x639576=await this['agentPool']?.[_0xf94515(0x220)](_0x1c975a);return _0x639576&&(_0x639576[_0xf94515(0x213)]=_0x408c4f,await this[_0xf94515(0x1de)][_0xf94515(0x1c4)](_0x1c975a)),this['logger']['info'](_0xf94515(0x194)+_0x1c975a,{'newModel':_0x408c4f,'messageCount':_0x40e31d['messages'][_0xf94515(0x212)]}),{'success':!![],'agentId':_0x1c975a,'newModel':_0x408c4f,'conversation':_0x40e31d};}catch(_0x1e41ee){this[_0xf94515(0x1b1)]['error']('Model\x20switch\x20failed:\x20'+_0x1e41ee[_0xf94515(0x1cf)],{'agentId':_0x1c975a,'newModel':_0x408c4f});throw _0x1e41ee;}}['_initializeModelSpecs'](){const _0x4184fe=a0_0x252d00,_0x1ac642={[MODELS[_0x4184fe(0x1f0)]]:{'provider':MODEL_PROVIDERS[_0x4184fe(0x1c2)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS[_0x4184fe(0x1c2)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x4184fe(0x1db)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x4184fe(0x201)]]:{'provider':MODEL_PROVIDERS[_0x4184fe(0x1e0)],'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[_0x4184fe(0x1e0)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x4184fe(0x1e0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x4184fe(0x1e0)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x4184fe(0x228)]]:{'provider':MODEL_PROVIDERS[_0x4184fe(0x218)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x4184fe(0x1b9)]]:{'provider':MODEL_PROVIDERS[_0x4184fe(0x1d9)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x4184fe(0x1ee),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x4184fe(0x1ee),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x1ac642;}[a0_0x252d00(0x1dd)](_0xcd17c3,_0x41d448,_0x26001e){const _0x40b772=a0_0x252d00,_0x836b0c=this[_0x40b772(0x1d1)][_0x41d448]||{'provider':_0x40b772(0x1ee)};let _0x1fdc61;typeof _0xcd17c3===_0x40b772(0x1c3)?_0x1fdc61=[{'role':_0x40b772(0x20e),'content':_0xcd17c3}]:_0x1fdc61=_0xcd17c3['map'](_0x3f6672=>this['_formatSingleMessage'](_0x3f6672,_0x41d448));switch(_0x836b0c[_0x40b772(0x1b3)]){case MODEL_PROVIDERS[_0x40b772(0x1c2)]:return this['_formatForAnthropic'](_0x1fdc61);case MODEL_PROVIDERS[_0x40b772(0x1e0)]:return this['_formatForOpenAI'](_0x1fdc61);case MODEL_PROVIDERS['AZURE']:return this[_0x40b772(0x21e)](_0x1fdc61);default:return _0x1fdc61;}}[a0_0x252d00(0x1ea)](_0x3bdab1,_0x1253b4){const _0x264408=a0_0x252d00;return{'role':_0x3bdab1[_0x264408(0x1a8)]||_0x264408(0x20e),'content':_0x3bdab1['content'],'timestamp':_0x3bdab1['timestamp']};}['_formatForAnthropic'](_0x3b4d17){const _0x21a1f2=a0_0x252d00;return _0x3b4d17[_0x21a1f2(0x1fc)](_0x249cf7=>{const _0x468f34=_0x21a1f2;if(_0x249cf7[_0x468f34(0x1a8)]==='system')return{'role':_0x468f34(0x20e),'content':'System:\x20'+_0x249cf7['content']};return _0x249cf7;});}[a0_0x252d00(0x1bc)](_0x2c7571){return _0x2c7571;}[a0_0x252d00(0x21e)](_0xefc887){const _0x3102c8=a0_0x252d00;return _0xefc887['map'](_0x2ccb97=>({..._0x2ccb97,'content':typeof _0x2ccb97[_0x3102c8(0x1d8)]===_0x3102c8(0x1c3)?_0x2ccb97[_0x3102c8(0x1d8)]:JSON['stringify'](_0x2ccb97[_0x3102c8(0x1d8)])}));}['_isValidModel'](_0x55e3c3){const _0x2a0d7d=a0_0x252d00;this['logger']['debug']('Validating\x20model',{'model':_0x55e3c3,'modelType':typeof _0x55e3c3});if(this[_0x2a0d7d(0x1d1)][_0x55e3c3]!==undefined)return!![];return this['logger'][_0x2a0d7d(0x193)]('Model\x20validation\x20failed',{'model':_0x55e3c3,'availableModels':Object['keys'](this[_0x2a0d7d(0x1d1)])}),![];}async['_checkModelHealth'](_0x47ecad){return!![];}async['_estimateTokens'](_0x3e03b0,_0x23a78d){return Math['ceil'](_0x3e03b0['length']/0x4);}async[a0_0x252d00(0x1fb)](_0x2ee4b3,_0x1af381){const _0x40c2ab=_0x1af381*0x4;if(_0x2ee4b3['length']<=_0x40c2ab)return _0x2ee4b3;return _0x2ee4b3['substring'](0x0,_0x40c2ab-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x495de2,_0x26e009){const _0xc8399f=a0_0x252d00,_0x1dabe3=_0x495de2[_0xc8399f(0x1fc)](_0x9d959=>_0x9d959['role']+':\x20'+_0x9d959['content'])['join']('\x0a'),_0x1e00d6=0x1f4;if(_0x1dabe3[_0xc8399f(0x212)]<=_0x1e00d6)return _0x1dabe3;return _0x1dabe3[_0xc8399f(0x1d0)](0x0,_0x1e00d6)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x48b9a9,_0x49023e,_0x597352,_0x5bf5c9={}){const _0x5794df=a0_0x252d00,_0x3c57db=_0x5794df(0x202);let _0x48feb6,_0x457a22=null,_0x4938b3=null;this[_0x5794df(0x1b1)]?.['info'](_0x5794df(0x1c1),{'hasApiKeyManager':!!this[_0x5794df(0x219)],'sessionId':_0x5bf5c9[_0x5794df(0x1ba)],'hasSessionId':!!_0x5bf5c9['sessionId'],'optionsKeys':Object[_0x5794df(0x191)](_0x5bf5c9),'model':_0x49023e['model']});if(this['apiKeyManager']&&_0x5bf5c9[_0x5794df(0x1ba)]){const _0x3b95f4=this['apiKeyManager'][_0x5794df(0x19f)](_0x5bf5c9[_0x5794df(0x1ba)],{'platformProvided':_0x5bf5c9[_0x5794df(0x1b4)]||![],'vendor':this[_0x5794df(0x1f5)](_0x49023e[_0x5794df(0x217)])});_0x457a22=_0x3b95f4[_0x5794df(0x209)],_0x4938b3=_0x3b95f4[_0x5794df(0x1d4)],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x5bf5c9['sessionId'],'hasLoxiaKey':!!_0x457a22,'hasVendorKey':!!_0x4938b3,'vendor':this[_0x5794df(0x1f5)](_0x49023e['model'])});}!_0x457a22&&_0x5bf5c9['apiKey']&&(_0x457a22=_0x5bf5c9[_0x5794df(0x1fa)]);!_0x457a22&&this[_0x5794df(0x1a3)][_0x5794df(0x1fa)]&&(_0x457a22=this['config']['apiKey']);if(!_0x457a22)throw new Error(_0x5794df(0x211));const _0xf1283c=_0x49023e['model'],_0x7ae8de={'conversationId':_0x597352,'message':_0x49023e[_0x5794df(0x18e)][_0x49023e[_0x5794df(0x18e)]['length']-0x1]?.['content']||'','messages':_0x49023e[_0x5794df(0x18e)],'model':_0xf1283c,'requestId':_0x597352,'options':_0x49023e[_0x5794df(0x1c9)]||{},'platformProvided':_0x5bf5c9[_0x5794df(0x1b4)]||![]};_0x49023e['system']&&(_0x7ae8de['systemPrompt']=_0x49023e[_0x5794df(0x1dc)]);_0x5bf5c9[_0x5794df(0x1b4)]?_0x7ae8de[_0x5794df(0x1fa)]=_0x457a22:(_0x4938b3&&(_0x7ae8de[_0x5794df(0x1d4)]=_0x4938b3),_0x5bf5c9['customApiKeys']&&(_0x7ae8de[_0x5794df(0x197)]=_0x5bf5c9[_0x5794df(0x197)]),_0x7ae8de['apiKey']=_0x457a22);for(let _0x4a4b04=0x1;_0x4a4b04<=this['retryAttempts'];_0x4a4b04++){try{this[_0x5794df(0x1b1)]['info'](_0x5794df(0x1e8),{'url':_0x3c57db,'model':_0x49023e['model'],'requestId':_0x597352,'attempt':_0x4a4b04,'hasApiKey':!!_0x457a22});const _0x28d4ee=await fetch(_0x3c57db,{'method':'POST','headers':{'Content-Type':_0x5794df(0x1e1),'Authorization':_0x5794df(0x1c7)+_0x457a22,'X-Request-ID':_0x597352},'body':JSON[_0x5794df(0x19c)](_0x7ae8de),'timeout':this['timeout']});if(!_0x28d4ee['ok']){const _0x4d0b69=await _0x28d4ee['text'](),_0x581cd6=new Error(_0x5794df(0x19a)+_0x28d4ee[_0x5794df(0x1b6)]+':\x20'+_0x28d4ee[_0x5794df(0x1a2)]+(_0x4d0b69?_0x5794df(0x1a6)+_0x4d0b69:''));_0x581cd6[_0x5794df(0x1b6)]=_0x28d4ee['status'];throw _0x581cd6;}const _0x5ce431=await _0x28d4ee[_0x5794df(0x192)]();return{'choices':[{'message':{'content':_0x5ce431['content']||'','role':'assistant'},'finish_reason':_0x5ce431['finishReason']||'stop'}],'usage':_0x5ce431['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x5ce431['model']||_0x49023e[_0x5794df(0x217)],'id':_0x5ce431['requestId']||_0x597352};}catch(_0xf23a32){_0x48feb6=_0xf23a32,this[_0x5794df(0x1b1)][_0x5794df(0x193)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x4a4b04,'requestId':_0x597352,'error':_0xf23a32['message'],'status':_0xf23a32[_0x5794df(0x1b6)]});if(_0x4a4b04<this['retryAttempts']){const _0x5e9064=Math[_0x5794df(0x225)](0x2,_0x4a4b04)*0x3e8;this['logger'][_0x5794df(0x193)]('Retrying\x20in\x20'+_0x5e9064+'ms',{'attempt':_0x4a4b04,'requestId':_0x597352}),await new Promise(_0x4ff2ef=>setTimeout(_0x4ff2ef,_0x5e9064));}}}this[_0x5794df(0x1b1)][_0x5794df(0x18a)]('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x597352,'error':_0x48feb6[_0x5794df(0x1cf)]});const _0x583231=_0x48feb6[_0x5794df(0x1cf)]&&_0x48feb6['message'][_0x5794df(0x1c8)]('No\x20API\x20key\x20configured');if(_0x583231)throw new Error(_0x5794df(0x223)+_0x48feb6['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x48feb6['message'],'role':_0x5794df(0x20b)},'finish_reason':_0x5794df(0x214)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x49023e[_0x5794df(0x217)],'id':_0x5794df(0x206)+_0x597352,'error':_0x48feb6[_0x5794df(0x1cf)]};}async['_makeImageAPIRequest'](_0x5dd71f,_0x2c696a,_0x1c85a6={}){const _0x4f0a93=a0_0x252d00,_0xbbab4d=_0x4f0a93(0x1ab);let _0x3d5fa6,_0x49b2b4=null,_0x3108df=null;this[_0x4f0a93(0x1b1)]?.[_0x4f0a93(0x1a9)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x4f0a93(0x219)],'sessionId':_0x1c85a6[_0x4f0a93(0x1ba)],'hasSessionId':!!_0x1c85a6[_0x4f0a93(0x1ba)],'model':_0x5dd71f[_0x4f0a93(0x217)]});if(this['apiKeyManager']&&_0x1c85a6[_0x4f0a93(0x1ba)]){const _0x582b65=this['apiKeyManager'][_0x4f0a93(0x19f)](_0x1c85a6['sessionId'],{'platformProvided':_0x1c85a6[_0x4f0a93(0x1b4)]||![],'vendor':this[_0x4f0a93(0x1f5)](_0x5dd71f['model'])});_0x49b2b4=_0x582b65['loxiaApiKey'],_0x3108df=_0x582b65[_0x4f0a93(0x1d4)],this[_0x4f0a93(0x1b1)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1c85a6['sessionId'],'hasLoxiaKey':!!_0x49b2b4,'hasVendorKey':!!_0x3108df});}!_0x49b2b4&&_0x1c85a6['apiKey']&&(_0x49b2b4=_0x1c85a6['apiKey']);!_0x49b2b4&&this[_0x4f0a93(0x1a3)]['apiKey']&&(_0x49b2b4=this['config']['apiKey']);if(!_0x49b2b4)throw new Error(_0x4f0a93(0x211));const _0x23bbcc={'prompt':_0x5dd71f[_0x4f0a93(0x1b5)],'model':_0x5dd71f['model']||'azure-openai-dalle3','size':_0x5dd71f['size'],'quality':_0x5dd71f[_0x4f0a93(0x21f)],'style':_0x5dd71f['style']||'vivid','n':_0x5dd71f['n']||0x1,'requestId':_0x2c696a};for(let _0x336fa1=0x1;_0x336fa1<=this['retryAttempts'];_0x336fa1++){try{this[_0x4f0a93(0x1b1)][_0x4f0a93(0x1a9)](_0x4f0a93(0x19b),{'url':_0xbbab4d,'model':_0x5dd71f[_0x4f0a93(0x217)],'requestId':_0x2c696a,'attempt':_0x336fa1,'hasApiKey':!!_0x49b2b4});const _0x2f1b1c=await fetch(_0xbbab4d,{'method':'POST','headers':{'Content-Type':_0x4f0a93(0x1e1),'Authorization':'Bearer\x20'+_0x49b2b4,'X-Request-ID':_0x2c696a},'body':JSON['stringify'](_0x23bbcc),'timeout':this['timeout']*0x2});if(!_0x2f1b1c['ok']){const _0xf731fc=await _0x2f1b1c['text'](),_0x24106c=new Error(_0x4f0a93(0x19a)+_0x2f1b1c['status']+':\x20'+_0x2f1b1c['statusText']+(_0xf731fc?'\x20-\x20'+_0xf731fc:''));_0x24106c['status']=_0x2f1b1c[_0x4f0a93(0x1b6)];throw _0x24106c;}const _0x5dd1c4=await _0x2f1b1c['json']();return{'data':_0x5dd1c4['images']||[],'model':_0x5dd1c4['model']||_0x5dd71f['model'],'created':_0x5dd1c4[_0x4f0a93(0x1cc)]||Date['now'](),'usage':_0x5dd1c4['usage']};}catch(_0x45a9ea){_0x3d5fa6=_0x45a9ea,this['logger']['warn']('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x336fa1,'requestId':_0x2c696a,'error':_0x45a9ea[_0x4f0a93(0x1cf)],'status':_0x45a9ea['status']});if(_0x336fa1<this['retryAttempts']){const _0x569d5b=Math[_0x4f0a93(0x225)](0x2,_0x336fa1)*0x3e8;this[_0x4f0a93(0x1b1)][_0x4f0a93(0x193)](_0x4f0a93(0x203)+_0x569d5b+'ms',{'attempt':_0x336fa1,'requestId':_0x2c696a}),await new Promise(_0x472ca3=>setTimeout(_0x472ca3,_0x569d5b));}}}this['logger'][_0x4f0a93(0x18a)](_0x4f0a93(0x1f7),{'requestId':_0x2c696a,'error':_0x3d5fa6['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x3d5fa6[_0x4f0a93(0x1cf)]);}async['_checkRateLimit'](_0x3a4397){await new Promise(_0x1a4f3c=>setTimeout(_0x1a4f3c,0x64));}async[a0_0x252d00(0x229)](_0x6da084){const _0x5eecb1=a0_0x252d00,_0x1d8201=0xea60;this[_0x5eecb1(0x1b1)][_0x5eecb1(0x1a9)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x1d8201+'ms',_0x6da084),await new Promise(_0x48a04b=>setTimeout(_0x48a04b,_0x1d8201));}async['_handleServiceUnavailable'](_0x4708c9){const _0xc709d=a0_0x252d00;this[_0xc709d(0x1be)]();const _0x192c37=0x7530;this[_0xc709d(0x1b1)]['info']('Service\x20unavailable,\x20waiting\x20'+_0x192c37+'ms',_0x4708c9),await new Promise(_0x4cd481=>setTimeout(_0x4cd481,_0x192c37));}['_isCircuitBreakerOpen'](){const _0x246bcb=a0_0x252d00;if(!this[_0x246bcb(0x1a1)]['isOpen'])return![];const _0x1ee5fe=Date['now']()-this[_0x246bcb(0x1a1)][_0x246bcb(0x1e4)];if(_0x1ee5fe>this[_0x246bcb(0x1a1)]['timeout'])return this['circuitBreaker']['isOpen']=![],this[_0x246bcb(0x1a1)][_0x246bcb(0x222)]=0x0,![];return!![];}[a0_0x252d00(0x1be)](){const _0x457923=a0_0x252d00;this['circuitBreaker'][_0x457923(0x222)]++,this[_0x457923(0x1a1)]['lastFailureTime']=Date[_0x457923(0x19e)](),this['circuitBreaker']['failures']>=this['circuitBreaker'][_0x457923(0x224)]&&(this[_0x457923(0x1a1)][_0x457923(0x1b7)]=!![],this[_0x457923(0x1b1)]['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}['_resetCircuitBreaker'](){const _0x5491a9=a0_0x252d00;this[_0x5491a9(0x1a1)]['failures']>0x0&&(this[_0x5491a9(0x1a1)]['failures']=0x0,this['circuitBreaker'][_0x5491a9(0x1b7)]=![],this[_0x5491a9(0x1b1)]['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x252d00(0x1f5)](_0x25d10f){const _0xe0c0aa=a0_0x252d00;if(!_0x25d10f)return null;const _0x30f497=_0x25d10f['toLowerCase']();if(_0x30f497[_0xe0c0aa(0x1c8)](_0xe0c0aa(0x1d6))||_0x30f497[_0xe0c0aa(0x1c8)]('claude'))return _0xe0c0aa(0x1d6);else{if(_0x30f497[_0xe0c0aa(0x1c8)](_0xe0c0aa(0x1eb))||_0x30f497[_0xe0c0aa(0x1c8)]('gpt'))return'openai';else{if(_0x30f497[_0xe0c0aa(0x1c8)](_0xe0c0aa(0x190)))return'deepseek';else{if(_0x30f497[_0xe0c0aa(0x1c8)]('phi'))return _0xe0c0aa(0x1bd);}}}return null;}}class ConversationManager{constructor(_0x43fe35,_0x15ff6c){const _0x1e6340=a0_0x252d00;this['agentId']=_0x43fe35,this[_0x1e6340(0x1b1)]=_0x15ff6c,this[_0x1e6340(0x1d2)]=new Map();}async['switchModel'](_0x5d813c){return{'messages':[],'model':_0x5d813c,'lastUpdated':new Date()['toISOString']()};}}function a0_0x5c38(){const _0x580651=['qu5usfjpueLd','C3rYAw5N','CgvYC2LZDefNzw50u3rHDgu','zgf0yq','y2XHC3nPzNLfCNjVCG','qMvHCMvYia','Aw5JBhvKzxm','B3b0Aw9UCW','uMf0zsbSAw1PDcbLEgnLzwrLza','Dw5ZAgLMDa','y3jLyxrLza','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','BwvZC2fNzq','C3vIC3rYAw5N','Bw9KzwXtCgvJCW','y29UDMvYC2f0Aw9UCW','DxnHz2u','DMvUzg9YqxbPs2v5','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','yw50AhjVCgLJ','C2L6zq','y29UDgvUDa','ueHj','Dg9vChbLCKnHC2u','r1buxZq','C3LZDgvT','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','ywDLBNrqB29S','mtm3ntmXmgHNuK5UvW','t1bftKfj','yxbWBgLJyxrPB24VANnVBG','CMv2AxnLzf9WCM9TChq','CMv0CNLbDhrLBxb0CW','BgfZDezHAwX1CMvuAw1L','CMv2zxjZzq','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','qu5usfjpueLdx0HbsuTv','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','x2zVCM1HDfnPBMDSzu1LC3nHz2u','B3bLBMfP','ChvZAa','C3vIC3rY','qvPvuKu','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','qu5usfjpueLdx1nptK5fva','quKGC2vYDMLJzsbLCNjVCJOG','qu5usfjpueLdx09qvvm','x3n1Bw1HCML6zu1LC3nHz2vZ','ChjLzMvYCMvKtw9KzwW','x2DLDfzLBMrVCKzYB21nB2rLBa','z2v0','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','mJyWotG4ohrQz21Azq','DhjHy2TvC2fNzq','yxbPs2v5','x3rYDw5JyxrLtwvZC2fNzq','BwfW','mMjswNLWuG','CM91DgvnB2rLBa','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','x2vZDgLTyxrLvg9Rzw5Z','r1buxZrFtuLosq','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','uMv0CNLPBMCGAw4G','x2LZq2LYy3vPDejYzwfRzxjpCgvU','Dg90ywXFDg9Rzw5Z','zxjYB3iT','vw5RBM93BIbTB2rLBdOG','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','Bg94AwfbCgLlzxK','AgfUzgXLshr0CevYCM9Y','yxnZAxn0yw50','yMfZzvvYBa','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','DxnLCG','Dg9ju09tDhjPBMC','Dg9tDhjPBMC','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','BgvUz3rO','y3vYCMvUDe1VzgvS','C3rVCa','nJq4ndrpqNjjvNi','DhjPBq','Bw9KzwW','revfufnfruS','yxbPs2v5twfUywDLCG','oduXotCWq2DjC0jt','mtq2nZiXsfDZvgHf','yNvKz2v0u2vYDMLJzq','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','x2zVCM1HDezVCKf6DxjL','CxvHBgL0Eq','z2v0qwDLBNq','CMvXDwvZDff1zxvL','zMfPBhvYzxm','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','DgHYzxnOB2XK','Cg93','x3jLC2v0q2LYy3vPDejYzwfRzxi','yMfJA2vUza','revfufnfruTFuJe','x2HHBMrSzvjHDgvmAw1PDa','zxjYB3i','ChjVBxb0x3rVA2vUCW','C3rHy2S','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','BwvZC2fNzxm','x21HA2vjBwfNzufqsvjLCxvLC3q','zgvLChnLzwS','A2v5CW','ANnVBG','D2fYBG','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','C2v0qxbPs2v5twfUywDLCG','yJy0x2PZB24','y3vZDg9TqxbPs2v5CW','y29UDMvYC2f0Aw9UtwfUywDLCNm','ndLrBeHnvhi','sfruuca','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','C3rYAw5NAwz5','C2vUze1LC3nHz2u','BM93','z2v0s2v5C0zVCLjLCxvLC3q','ywDLBNrjza','y2LYy3vPDejYzwfRzxi','C3rHDhvZvgv4Da','y29UzMLN','C3LZDgvTuhjVBxb0','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','ic0G','nJy0mtroEhbgvfy','CM9Szq','Aw5MBW','r0furvDbwv9usu1ft1vu','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','rKfmtejbq0S','y2HVAwnLCW','l2HLywX0Aa','zxn0Aw1HDgvKvg9Rzw5Z','Bg9Nz2vY','mtHVweT0tNe','ChjVDMLKzxi','CgXHDgzVCM1qCM92AwrLza','ChjVBxb0','C3rHDhvZ','AxnpCgvU','mZn5tgXWsxe','ueHjxZq','C2vZC2LVBKLK','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','x2zVCM1HDezVCK9Wzw5bsq','BwLJCM9ZB2z0','x3jLy29YzezHAwX1CMu','nJm2mZLjyxrhwxG','ve9px01btLLFuKvrvuvtvfm','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq'];a0_0x5c38=function(){return _0x580651;};return a0_0x5c38();}export default AIService;
1
+ const a0_0x21be3e=a0_0x4b19;(function(_0x14be9b,_0x1aad50){const _0x50c473=a0_0x4b19,_0x484771=_0x14be9b();while(!![]){try{const _0x55b071=parseInt(_0x50c473(0x186))/0x1+-parseInt(_0x50c473(0x18a))/0x2*(parseInt(_0x50c473(0x14b))/0x3)+-parseInt(_0x50c473(0x195))/0x4+-parseInt(_0x50c473(0x16a))/0x5+-parseInt(_0x50c473(0x1c1))/0x6*(parseInt(_0x50c473(0x178))/0x7)+-parseInt(_0x50c473(0x15f))/0x8*(parseInt(_0x50c473(0x171))/0x9)+-parseInt(_0x50c473(0x156))/0xa*(-parseInt(_0x50c473(0x16e))/0xb);if(_0x55b071===_0x1aad50)break;else _0x484771['push'](_0x484771['shift']());}catch(_0x107608){_0x484771['push'](_0x484771['shift']());}}}(a0_0x5eaf,0xedbcb));function a0_0x5eaf(){const _0x8c0661=['mJu1ndeXowTdqvP0ra','su5urvjoquXFu0vsvKvsx0vsuK9s','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','A2v5CW','ywDLBNrqB29S','ChjVDMLKzxi','x2zVCM1HDezVCK9Wzw5bsq','mty4CgTfBfrl','C3vIC3rYAw5N','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','z2v0','CMvZCg9UC2vgB3jTyxq','t1bftKfj','DgLTzw91Da','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','revfufnfruTFuJe','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','BwfW','B3bLBMfP','Aw5JBhvKzxm','Bw9KzwXtCgvJCW','mte1mJK1m0vXCeX5wG','y3vZDg9TqxbPs2v5CW','ChvZAa','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','mti2ogjozLneAq','l2HLywX0Aa','lcb1C2LUzYbMywXSyMfJAW','u3LZDgvToIa','qvPvuKu','y2XHDwrL','x2vZDgLTyxrLvg9Rzw5Z','tK9ux0zpvu5e','Dg9vChbLCKnHC2u','y29UDgvUDa','BM93','ntGZodG4ogrSy1jOuq','CMvXDwvZDff1zxvL','C3DPDgnOtw9KzwW','C3vIC3rY','AgvHBhrOlwnOzwnR','DgLTzxn0yw1W','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','CMf0zuXPBwL0zxjZ','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','CM9Szq','C3rVCa','x3jLy29YzezHAwX1CMu','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','r1buxZq','vMfSAwrHDgLUzYbTB2rLBa','C3LZDgvTuhjVBxb0','Dw5ZAgLMDa','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','y2vPBa','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','yxbPs2v5','AgLNAa','Aw1Hz2vZ','DgvTCgvYyxr1CMu','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','qu5usfjpueLdx09qvvm','Bg94AwfbCgLlzxK','tw9KzwWGC3DPDgnOigzHAwXLzdOG','AgvHBhrOEq','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','zxn0Aw1HDgvKvg9Rzw5Z','CMv0CNLbDhrLBxb0CW','D2fYBG','zxjYB3jiyw5KBgvY','zMfZDa','ANnVBG','sw52ywXPzcbYzxf1zxn0oIa','x3rYDw5JyxrLtwvZC2fNzq','C2L6zq','u0vsvKLdrv9vtKfwquLmqujmrq','yNvKz2v0u2vYDMLJzq','C3rYAw5N','C2v0qxbPs2v5twfUywDLCG','mJG0mdGYtxnIvvPn','CMv2AxnLzf9WCM9TChq','y29UDMvYC2f0Aw9UtwfUywDLCNm','y2LYy3vPDejYzwfRzxi','yxP1CMuTB3bLBMfPlwrHBgXLmW','DxnLCG','yxbPs2v5twfUywDLCG','x2zVCM1HDezVCKf6DxjL','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','x2zVCM1HDezVCKfUDgHYB3bPyW','y29UzMLN','y2HVAwnLCW','qu5usfjpueLd','CxvHBgL0Eq','x3jLC2v0q2LYy3vPDejYzwfRzxi','vw5RBM93BIbTB2rLBdOG','DxnHz2u','Cg93','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','yMfZzvvYBa','x2HHBMrSzvjHDgvmAw1PDa','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','x2LZq2LYy3vPDejYzwfRzxjpCgvU','C3rHDhvZ','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','C3LZDgvT','CMfUzg9T','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','ve9px01btLLFuKvrvuvtvfm','CMvXlq','qKfex0DbvevxqvK','zgvLChnLzwS','BwvZC2fNzq','rK9sqKLerevo','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','rKfmtejbq0S','Bg9Nz2vY','CM91DgvnB2rLBa','zgf0yq','zMLUAxnOuMvHC29U','ic0G','DMvUzg9YqxbPs2v5','Dg9tDhjPBMC','Dgv4Da','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','odqWm1jfB0PTvq','ChjVBxb0','ChjLzMvYCMvKtw9KzwW','x2nOzwnRuMf0zuXPBwL0','AgfUzgXLshr0CevYCM9Y','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C2vZC2LVBKLK','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','CgXHDgzVCM1qCM92AwrLza','AxnbCNjHEq','DxjS','ntyZmhLxD0jMrG','y2XHC3nPzNLfCNjVCG','x2nOzwnRtw9KzwXizwfSDgG','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','zMfPBhvYzxm','Dg9ju09tDhjPBMC','Bw9KzwW','yxnZAxn0yw50','DhjHy2TvC2fNzq','ndHQsxP5r2C','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','zxjYB3i','C3rHy2S','x2DLDfzLBMrVCKzYB21nB2rLBa','uMf0zsbSAw1PDcbLEgnLzwrLza','AxnpCgvU','y29UDMvYC2f0Aw9UCW','BgvUz3rO','BwvZC2fNzxm','ndy2mZa4mfHIC3PsEq','sfruuca','ywDLBNrjza','ueHjxZq','mtmZnda4EwruquXW','Aw5MBW','DgHYzxnOB2XK'];a0_0x5eaf=function(){return _0x8c0661;};return a0_0x5eaf();}function a0_0x4b19(_0xe51fb1,_0x35595a){_0xe51fb1=_0xe51fb1-0x11e;const _0x5eaf36=a0_0x5eaf();let _0x4b190a=_0x5eaf36[_0xe51fb1];if(a0_0x4b19['kbSGRC']===undefined){var _0x36d06e=function(_0x4c2958){const _0x1a9f07='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x581188='',_0x53d06d='';for(let _0x41d1b4=0x0,_0x52602a,_0x21dee8,_0x415ecd=0x0;_0x21dee8=_0x4c2958['charAt'](_0x415ecd++);~_0x21dee8&&(_0x52602a=_0x41d1b4%0x4?_0x52602a*0x40+_0x21dee8:_0x21dee8,_0x41d1b4++%0x4)?_0x581188+=String['fromCharCode'](0xff&_0x52602a>>(-0x2*_0x41d1b4&0x6)):0x0){_0x21dee8=_0x1a9f07['indexOf'](_0x21dee8);}for(let _0x2c52ed=0x0,_0x157403=_0x581188['length'];_0x2c52ed<_0x157403;_0x2c52ed++){_0x53d06d+='%'+('00'+_0x581188['charCodeAt'](_0x2c52ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x53d06d);};a0_0x4b19['KEhxvW']=_0x36d06e,a0_0x4b19['hxephV']={},a0_0x4b19['kbSGRC']=!![];}const _0x275905=_0x5eaf36[0x0],_0x17da4e=_0xe51fb1+_0x275905,_0x232745=a0_0x4b19['hxephV'][_0x17da4e];return!_0x232745?(_0x4b190a=a0_0x4b19['KEhxvW'](_0x4b190a),a0_0x4b19['hxephV'][_0x17da4e]=_0x4b190a):_0x4b190a=_0x232745,_0x4b190a;}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x581188,_0x53d06d,_0x41d1b4,_0x52602a){const _0x2e5167=a0_0x4b19;this['config']=_0x581188,this[_0x2e5167(0x142)]=_0x53d06d,this[_0x2e5167(0x1be)]=_0x41d1b4,this[_0x2e5167(0x1b7)]=_0x52602a,this[_0x2e5167(0x130)]=_0x581188['backend']?.[_0x2e5167(0x130)]||'https://api.loxia.ai',this[_0x2e5167(0x17e)]=_0x581188['backend']?.[_0x2e5167(0x17e)]||0xea60,this[_0x2e5167(0x1b5)]=_0x581188['backend']?.[_0x2e5167(0x1b5)]||0x3,this[_0x2e5167(0x19c)]=new Map(),this[_0x2e5167(0x196)]=new Map(),this[_0x2e5167(0x120)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x2e5167(0x185)]=this['_initializeModelSpecs'](),this[_0x2e5167(0x11f)]=new Map(),this['apiKeyManager']=null,this[_0x2e5167(0x175)]=null;}async['sendMessage'](_0x21dee8,_0x415ecd,_0x2c52ed={}){const _0x1889c8=a0_0x4b19,_0x157403=_0x1889c8(0x13b)+Date[_0x1889c8(0x194)]()+'-'+Math['random']()[_0x1889c8(0x148)](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x1889c8(0x14e)](_0x21dee8);const _0x261cb=this[_0x1889c8(0x132)](_0x415ecd,_0x21dee8,_0x2c52ed),_0x4c074b={'model':_0x21dee8,'messages':_0x261cb,'options':{'max_tokens':this[_0x1889c8(0x185)][_0x21dee8]?.['maxTokens']||0xfa0,'temperature':_0x2c52ed[_0x1889c8(0x1ad)]||0.7,'stream':_0x2c52ed['stream']||![]},'metadata':{'requestId':_0x157403,'agentId':_0x2c52ed[_0x1889c8(0x16c)],'timestamp':new Date()[_0x1889c8(0x15b)]()}};_0x2c52ed['systemPrompt']&&(_0x4c074b['system']=_0x2c52ed['systemPrompt']);this[_0x1889c8(0x142)]['info'](_0x1889c8(0x1a6)+_0x21dee8,{'requestId':_0x157403,'agentId':_0x2c52ed[_0x1889c8(0x16c)],'messageCount':Array[_0x1889c8(0x154)](_0x415ecd)?_0x415ecd[_0x1889c8(0x168)]:0x1,'maxTokens':_0x4c074b['max_tokens']});const _0x565482=await this['_makeAPIRequest']('/chat/completions',_0x4c074b,_0x157403,{..._0x2c52ed,'sessionId':_0x2c52ed[_0x1889c8(0x151)],'platformProvided':_0x2c52ed['platformProvided']||![]});return _0x565482['usage']&&await this[_0x1889c8(0x15e)](_0x2c52ed[_0x1889c8(0x16c)],_0x21dee8,{'prompt_tokens':_0x565482[_0x1889c8(0x12d)]['prompt_tokens']||0x0,'completion_tokens':_0x565482['usage']['completion_tokens']||0x0,'total_tokens':_0x565482[_0x1889c8(0x12d)]['total_tokens']||0x0}),this[_0x1889c8(0x12b)](),{'content':_0x565482[_0x1889c8(0x128)][0x0]?.[_0x1889c8(0x13e)]?.['content']||'','model':_0x565482['model'],'tokenUsage':_0x565482[_0x1889c8(0x12d)],'requestId':_0x157403,'finishReason':_0x565482[_0x1889c8(0x128)][0x0]?.['finish_reason']};}catch(_0x2a78e6){this['_recordFailure'](),this['logger'][_0x1889c8(0x162)]('AI\x20service\x20request\x20failed:\x20'+_0x2a78e6[_0x1889c8(0x13e)],{'requestId':_0x157403,'model':_0x21dee8,'agentId':_0x2c52ed[_0x1889c8(0x16c)],'error':_0x2a78e6[_0x1889c8(0x163)]}),await this[_0x1889c8(0x14f)](_0x2a78e6,{'requestId':_0x157403,'model':_0x21dee8,'agentId':_0x2c52ed[_0x1889c8(0x16c)]});throw _0x2a78e6;}}async[a0_0x21be3e(0x143)](_0x4698ed,_0x1e61cf={}){const _0xc4b400=a0_0x21be3e;try{const _0x329db4=MODEL_ROUTING[_0x4698ed[_0xc4b400(0x192)]()]||MODEL_ROUTING[_0xc4b400(0x141)],_0x4634dd=[];for(const _0x2fe50c of _0x329db4){const _0x28b289=await this[_0xc4b400(0x158)](_0x2fe50c);_0x28b289&&_0x4634dd[_0xc4b400(0x188)](_0x2fe50c);}if(_0x4634dd['length']===0x0)return this[_0xc4b400(0x142)][_0xc4b400(0x1b6)](_0xc4b400(0x12f)+_0x4698ed+_0xc4b400(0x18c)),MODEL_ROUTING[_0xc4b400(0x141)][0x0];let _0x39ec34=_0x4634dd[0x0];if(_0x1e61cf[_0xc4b400(0x14d)]&&_0x4634dd['includes'](_0x1e61cf[_0xc4b400(0x14d)]))_0x39ec34=_0x1e61cf[_0xc4b400(0x14d)];else{if(_0x1e61cf['complexity']===_0xc4b400(0x1ab)&&_0x4634dd[_0xc4b400(0x184)](MODELS[_0xc4b400(0x1af)]))_0x39ec34=MODELS[_0xc4b400(0x1af)];else _0x1e61cf['speed']===_0xc4b400(0x1b8)&&_0x4634dd['includes'](MODELS['ANTHROPIC_HAIKU'])&&(_0x39ec34=MODELS['ANTHROPIC_HAIKU']);}return this[_0xc4b400(0x142)]['info'](_0xc4b400(0x140)+_0x4698ed,{'selectedModel':_0x39ec34,'availableModels':_0x4634dd[_0xc4b400(0x168)],'context':_0x1e61cf}),_0x39ec34;}catch(_0x149b8e){return this[_0xc4b400(0x142)]['error']('Model\x20routing\x20failed:\x20'+_0x149b8e['message'],{'task':_0x4698ed,'context':_0x1e61cf}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x2b2013,_0xa243ca){const _0x209d75=a0_0x21be3e,_0xcaa780=this['modelSpecs'][_0xa243ca];if(!_0xcaa780)throw new Error(_0x209d75(0x12c)+_0xa243ca);const _0x2cbff1=_0xcaa780['contextWindow']*0.8;let _0x2a77cf=0x0;const _0x31ebc6=[],_0xa6639c=await Promise['all'](_0x2b2013['map'](async _0x2c4047=>({..._0x2c4047,'estimatedTokens':await this[_0x209d75(0x190)](_0x2c4047['content'],_0xa243ca)}))),_0x1629c6=[..._0xa6639c]['reverse']();for(const _0x5da2a9 of _0x1629c6){if(_0x2a77cf+_0x5da2a9[_0x209d75(0x1b4)]>_0x2cbff1){if(_0x31ebc6[_0x209d75(0x168)]===0x0){const _0x3fd6f5=await this[_0x209d75(0x1bb)](_0x5da2a9[_0x209d75(0x193)],_0x2cbff1);_0x31ebc6['unshift']({..._0x5da2a9,'content':_0x3fd6f5,'estimatedTokens':_0x2cbff1});}break;}_0x31ebc6[_0x209d75(0x1a5)](_0x5da2a9),_0x2a77cf+=_0x5da2a9[_0x209d75(0x1b4)];}const _0x20fa13=_0xa6639c['slice'](0x0,-_0x31ebc6['length']);if(_0x20fa13[_0x209d75(0x168)]>0x0){const _0x350872=await this['_summarizeMessages'](_0x20fa13,_0xa243ca);_0x31ebc6['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x350872,'timestamp':_0x20fa13[0x0]['timestamp'],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x350872,_0xa243ca)});}return this[_0x209d75(0x142)]['info'](_0x209d75(0x19d)+_0xa243ca,{'originalMessages':_0x2b2013[_0x209d75(0x168)],'compactizedMessages':_0x31ebc6['length'],'estimatedTokens':_0x2a77cf,'maxTokens':_0x2cbff1}),_0x31ebc6;}async[a0_0x21be3e(0x15e)](_0x264258,_0x31d272,_0x32e8b9,_0x369175){const _0x342bdf=a0_0x21be3e;try{this[_0x342bdf(0x1be)]&&this['budgetService']['trackUsage'](_0x264258,_0x31d272,_0x32e8b9);}catch(_0x25d4b0){this['logger']['error'](_0x342bdf(0x17f)+_0x25d4b0['message']);}}async['handleHttpError'](_0x1d3df7,_0x423183){const _0x48d4ee=a0_0x21be3e,_0x288358=this[_0x48d4ee(0x1b7)]?.[_0x48d4ee(0x157)]?.(_0x1d3df7,_0x423183);switch(_0x1d3df7['status']||_0x1d3df7['code']){case HTTP_STATUS['BAD_REQUEST']:this[_0x48d4ee(0x142)]['error']('Bad\x20request\x20to\x20AI\x20service',{'context':_0x423183,'error':_0x1d3df7[_0x48d4ee(0x13e)]});throw new Error(_0x48d4ee(0x1ba)+_0x1d3df7['message']);case HTTP_STATUS['UNAUTHORIZED']:this['logger'][_0x48d4ee(0x162)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x423183});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS[_0x48d4ee(0x13f)]:this['logger']['error'](_0x48d4ee(0x14a),{'context':_0x423183});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x48d4ee(0x191)]:this['logger'][_0x48d4ee(0x162)]('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x423183});throw new Error(_0x48d4ee(0x150));case HTTP_STATUS[_0x48d4ee(0x13a)]:this['logger']['warn'](_0x48d4ee(0x165),{'context':_0x423183}),await this[_0x48d4ee(0x131)](_0x423183);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS[_0x48d4ee(0x172)]:case HTTP_STATUS[_0x48d4ee(0x13c)]:case HTTP_STATUS[_0x48d4ee(0x1bd)]:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x48d4ee(0x142)][_0x48d4ee(0x162)]('AI\x20service\x20unavailable',{'context':_0x423183,'status':_0x1d3df7[_0x48d4ee(0x134)]}),await this[_0x48d4ee(0x160)](_0x423183);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x48d4ee(0x142)][_0x48d4ee(0x162)](_0x48d4ee(0x152),{'context':_0x423183,'error':_0x1d3df7['message']});throw new Error('AI\x20service\x20error:\x20'+_0x1d3df7[_0x48d4ee(0x13e)]);}}[a0_0x21be3e(0x1c0)](_0x4147fd){const _0x5cd2ff=a0_0x21be3e;this[_0x5cd2ff(0x123)]=_0x4147fd,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x4147fd});}['setAgentPool'](_0x42c82b){const _0x78be0b=a0_0x21be3e;this[_0x78be0b(0x175)]=_0x42c82b,this['logger']?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x42c82b});}async['generateImage'](_0x255fe8,_0x56385f={}){const _0x5af6ca=a0_0x21be3e,_0x5ca228='img-'+Date['now']()+'-'+Math[_0x5af6ca(0x138)]()[_0x5af6ca(0x148)](0x24)[_0x5af6ca(0x198)](0x2,0x9);try{if(this[_0x5af6ca(0x133)]())throw new Error(_0x5af6ca(0x139));if(!_0x255fe8||typeof _0x255fe8!==_0x5af6ca(0x1bf)||_0x255fe8['trim']()[_0x5af6ca(0x168)]===0x0)throw new Error(_0x5af6ca(0x19b));const _0x5ef501=_0x56385f['model']||'flux-1.1-pro',_0x36e4bb=_0x56385f[_0x5af6ca(0x1bc)]||'1024x1024',_0x23fd50=_0x56385f[_0x5af6ca(0x12a)]||'standard',_0x3b4884=_0x56385f[_0x5af6ca(0x17c)]||_0x5af6ca(0x155);this[_0x5af6ca(0x142)][_0x5af6ca(0x16f)](_0x5af6ca(0x136)+_0x5ef501,{'requestId':_0x5ca228,'model':_0x5ef501,'size':_0x36e4bb,'quality':_0x23fd50,'promptLength':_0x255fe8['length']});const _0x331c88={'prompt':_0x255fe8,'model':_0x5ef501,'size':_0x36e4bb,'quality':_0x23fd50,'response_format':_0x3b4884,'n':0x1,'metadata':{'requestId':_0x5ca228,'timestamp':new Date()[_0x5af6ca(0x15b)]()}},_0x79f551=await this['_makeImageAPIRequest'](_0x331c88,_0x5ca228,{'sessionId':_0x56385f[_0x5af6ca(0x151)],'platformProvided':_0x56385f['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0x79f551[_0x5af6ca(0x144)]?.[0x0]?.[_0x5af6ca(0x155)]||null,'b64_json':_0x79f551['data']?.[0x0]?.['b64_json']||null,'model':_0x79f551['model']||_0x5ef501,'requestId':_0x5ca228,'revisedPrompt':_0x79f551[_0x5af6ca(0x144)]?.[0x0]?.[_0x5af6ca(0x11e)]||_0x255fe8};}catch(_0x56c810){this[_0x5af6ca(0x1a0)](),this[_0x5af6ca(0x142)][_0x5af6ca(0x162)](_0x5af6ca(0x159)+_0x56c810['message'],{'requestId':_0x5ca228,'model':_0x56385f['model'],'error':_0x56c810['stack']});throw _0x56c810;}}async['checkServiceHealth'](){const _0x5b087b=a0_0x21be3e;try{const _0x2677ae=await this['_makeAPIRequest'](_0x5b087b(0x18b),{},_0x5b087b(0x199));return _0x2677ae[_0x5b087b(0x134)]===_0x5b087b(0x1b2);}catch(_0x4ae156){return![];}}async['switchAgentModel'](_0x1c87a2,_0x13e6f3){const _0x22b734=a0_0x21be3e;try{if(!this['_isValidModel'](_0x13e6f3))throw new Error('Invalid\x20model:\x20'+_0x13e6f3);let _0x12c09a=this[_0x22b734(0x11f)][_0x22b734(0x17b)](_0x1c87a2);!_0x12c09a&&(_0x12c09a=new ConversationManager(_0x1c87a2,this['logger']),this['conversationManagers']['set'](_0x1c87a2,_0x12c09a));const _0xf4f851=await _0x12c09a['switchModel'](_0x13e6f3),_0x38d0af=await this['agentPool']?.['getAgent'](_0x1c87a2);return _0x38d0af&&(_0x38d0af['currentModel']=_0x13e6f3,await this['agentPool']['persistAgentState'](_0x1c87a2)),this['logger'][_0x22b734(0x16f)](_0x22b734(0x125)+_0x1c87a2,{'newModel':_0x13e6f3,'messageCount':_0xf4f851[_0x22b734(0x169)][_0x22b734(0x168)]}),{'success':!![],'agentId':_0x1c87a2,'newModel':_0x13e6f3,'conversation':_0xf4f851};}catch(_0x34b454){this['logger']['error'](_0x22b734(0x1b1)+_0x34b454[_0x22b734(0x13e)],{'agentId':_0x1c87a2,'newModel':_0x13e6f3});throw _0x34b454;}}[a0_0x21be3e(0x173)](){const _0xf1cdd=a0_0x21be3e,_0x5f21fb={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0xf1cdd(0x129)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0xf1cdd(0x1af)]]:{'provider':MODEL_PROVIDERS[_0xf1cdd(0x129)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0xf1cdd(0x1a2)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0xf1cdd(0x17d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0xf1cdd(0x17d)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0xf1cdd(0x180)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0xf1cdd(0x16d)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0xf1cdd(0x18e),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x5f21fb;}[a0_0x21be3e(0x132)](_0x166163,_0x11e730,_0x295d82){const _0xef3128=a0_0x21be3e,_0x536358=this['modelSpecs'][_0x11e730]||{'provider':_0xef3128(0x18e)};let _0x34f3e2;typeof _0x166163==='string'?_0x34f3e2=[{'role':'user','content':_0x166163}]:_0x34f3e2=_0x166163['map'](_0xdcf389=>this['_formatSingleMessage'](_0xdcf389,_0x11e730));switch(_0x536358[_0xef3128(0x176)]){case MODEL_PROVIDERS['ANTHROPIC']:return this[_0xef3128(0x126)](_0x34f3e2);case MODEL_PROVIDERS[_0xef3128(0x17d)]:return this[_0xef3128(0x177)](_0x34f3e2);case MODEL_PROVIDERS[_0xef3128(0x18e)]:return this[_0xef3128(0x124)](_0x34f3e2);default:return _0x34f3e2;}}['_formatSingleMessage'](_0x2e91aa,_0x2b388c){const _0x438c80=a0_0x21be3e;return{'role':_0x2e91aa['role']||_0x438c80(0x122),'content':_0x2e91aa[_0x438c80(0x193)],'timestamp':_0x2e91aa[_0x438c80(0x19a)]};}['_formatForAnthropic'](_0x45d070){const _0x2e128e=a0_0x21be3e;return _0x45d070[_0x2e128e(0x182)](_0x395660=>{const _0x16a1b8=_0x2e128e;if(_0x395660['role']==='system')return{'role':'user','content':_0x16a1b8(0x18d)+_0x395660['content']};return _0x395660;});}[a0_0x21be3e(0x177)](_0x51301f){return _0x51301f;}[a0_0x21be3e(0x124)](_0x386793){const _0x3b8522=a0_0x21be3e;return _0x386793['map'](_0x572e98=>({..._0x572e98,'content':typeof _0x572e98[_0x3b8522(0x193)]===_0x3b8522(0x1bf)?_0x572e98[_0x3b8522(0x193)]:JSON['stringify'](_0x572e98['content'])}));}['_isValidModel'](_0x47d190){const _0x18b705=a0_0x21be3e;this['logger']['debug'](_0x18b705(0x1a3),{'model':_0x47d190,'modelType':typeof _0x47d190});if(this[_0x18b705(0x185)][_0x47d190]!==undefined)return!![];return this['logger']['warn']('Model\x20validation\x20failed',{'model':_0x47d190,'availableModels':Object[_0x18b705(0x174)](this[_0x18b705(0x185)])}),![];}async['_checkModelHealth'](_0xe9c8b4){return!![];}async['_estimateTokens'](_0x31de6d,_0x52e6d9){const _0x40184e=a0_0x21be3e;return Math[_0x40184e(0x1a8)](_0x31de6d['length']/0x4);}async['_truncateMessage'](_0x41601a,_0x60e439){const _0x5f03da=a0_0x21be3e,_0x75f789=_0x60e439*0x4;if(_0x41601a[_0x5f03da(0x168)]<=_0x75f789)return _0x41601a;return _0x41601a[_0x5f03da(0x179)](0x0,_0x75f789-0x14)+_0x5f03da(0x161);}async['_summarizeMessages'](_0x2ce26d,_0x5cb085){const _0x3a95ef=a0_0x21be3e,_0x548ec1=_0x2ce26d['map'](_0x54e31a=>_0x54e31a[_0x3a95ef(0x19e)]+':\x20'+_0x54e31a[_0x3a95ef(0x193)])['join']('\x0a'),_0x45ca39=0x1f4;if(_0x548ec1['length']<=_0x45ca39)return _0x548ec1;return _0x548ec1[_0x3a95ef(0x179)](0x0,_0x45ca39)+_0x3a95ef(0x17a);}async['_makeAPIRequest'](_0x17b4e6,_0x37e2c6,_0x5f451d,_0x510a86={}){const _0x1ea3d5=a0_0x21be3e,_0x1b1e30=_0x1ea3d5(0x135);let _0x595b48,_0x149b06=null,_0x286569=null;this[_0x1ea3d5(0x142)]?.['info'](_0x1ea3d5(0x189),{'hasApiKeyManager':!!this[_0x1ea3d5(0x123)],'sessionId':_0x510a86[_0x1ea3d5(0x151)],'hasSessionId':!!_0x510a86[_0x1ea3d5(0x151)],'optionsKeys':Object[_0x1ea3d5(0x174)](_0x510a86),'model':_0x37e2c6['model']});if(this[_0x1ea3d5(0x123)]&&_0x510a86['sessionId']){const _0x4e7613=this['apiKeyManager']['getKeysForRequest'](_0x510a86[_0x1ea3d5(0x151)],{'platformProvided':_0x510a86[_0x1ea3d5(0x153)]||![],'vendor':this[_0x1ea3d5(0x164)](_0x37e2c6['model'])});_0x149b06=_0x4e7613[_0x1ea3d5(0x1b0)],_0x286569=_0x4e7613['vendorApiKey'],this[_0x1ea3d5(0x142)]?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x510a86[_0x1ea3d5(0x151)],'hasLoxiaKey':!!_0x149b06,'hasVendorKey':!!_0x286569,'vendor':this[_0x1ea3d5(0x164)](_0x37e2c6[_0x1ea3d5(0x15c)])});}!_0x149b06&&_0x510a86[_0x1ea3d5(0x1aa)]&&(_0x149b06=_0x510a86[_0x1ea3d5(0x1aa)]);!_0x149b06&&this['config'][_0x1ea3d5(0x1aa)]&&(_0x149b06=this['config'][_0x1ea3d5(0x1aa)]);if(!_0x149b06)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x2debe5=_0x37e2c6[_0x1ea3d5(0x15c)],_0x256930={'conversationId':_0x5f451d,'message':_0x37e2c6[_0x1ea3d5(0x169)][_0x37e2c6['messages']['length']-0x1]?.[_0x1ea3d5(0x193)]||'','messages':_0x37e2c6['messages'],'model':_0x2debe5,'requestId':_0x5f451d,'options':_0x37e2c6['options']||{},'platformProvided':_0x510a86['platformProvided']||![]};_0x37e2c6['system']&&(_0x256930[_0x1ea3d5(0x1a4)]=_0x37e2c6[_0x1ea3d5(0x137)]);_0x510a86[_0x1ea3d5(0x153)]?_0x256930['apiKey']=_0x149b06:(_0x286569&&(_0x256930['vendorApiKey']=_0x286569),_0x510a86['customApiKeys']&&(_0x256930['customApiKeys']=_0x510a86[_0x1ea3d5(0x187)]),_0x256930[_0x1ea3d5(0x1aa)]=_0x149b06);for(let _0x49b89a=0x1;_0x49b89a<=this[_0x1ea3d5(0x1b5)];_0x49b89a++){try{this['logger'][_0x1ea3d5(0x16f)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x1b1e30,'model':_0x37e2c6[_0x1ea3d5(0x15c)],'requestId':_0x5f451d,'attempt':_0x49b89a,'hasApiKey':!!_0x149b06});const _0x4b45a7=await fetch(_0x1b1e30,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x149b06,'X-Request-ID':_0x5f451d},'body':JSON['stringify'](_0x256930),'timeout':this['timeout']});if(!_0x4b45a7['ok']){const _0x5cbb32=await _0x4b45a7['text'](),_0x50f304=new Error(_0x1ea3d5(0x16b)+_0x4b45a7[_0x1ea3d5(0x134)]+':\x20'+_0x4b45a7['statusText']+(_0x5cbb32?_0x1ea3d5(0x146)+_0x5cbb32:''));_0x50f304[_0x1ea3d5(0x134)]=_0x4b45a7[_0x1ea3d5(0x134)];throw _0x50f304;}const _0x410c22=await _0x4b45a7['json']();return{'choices':[{'message':{'content':_0x410c22['content']||'','role':_0x1ea3d5(0x15d)},'finish_reason':_0x410c22[_0x1ea3d5(0x145)]||_0x1ea3d5(0x19f)}],'usage':_0x410c22['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x410c22[_0x1ea3d5(0x15c)]||_0x37e2c6['model'],'id':_0x410c22['requestId']||_0x5f451d};}catch(_0x5d3bf2){_0x595b48=_0x5d3bf2,this['logger'][_0x1ea3d5(0x1b6)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x49b89a,'requestId':_0x5f451d,'error':_0x5d3bf2['message'],'status':_0x5d3bf2['status']});if(_0x49b89a<this['retryAttempts']){const _0xc54ac5=Math['pow'](0x2,_0x49b89a)*0x3e8;this['logger'][_0x1ea3d5(0x1b6)]('Retrying\x20in\x20'+_0xc54ac5+'ms',{'attempt':_0x49b89a,'requestId':_0x5f451d}),await new Promise(_0x269245=>setTimeout(_0x269245,_0xc54ac5));}}}this['logger']['error'](_0x1ea3d5(0x1a1),{'requestId':_0x5f451d,'error':_0x595b48['message']});const _0x3636ef=_0x595b48['message']&&_0x595b48['message'][_0x1ea3d5(0x184)]('No\x20API\x20key\x20configured');if(_0x3636ef)throw new Error('API\x20Configuration\x20Error:\x20'+_0x595b48['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x595b48['message'],'role':_0x1ea3d5(0x15d)},'finish_reason':_0x1ea3d5(0x19f)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x37e2c6['model'],'id':'error-'+_0x5f451d,'error':_0x595b48[_0x1ea3d5(0x13e)]};}async['_makeImageAPIRequest'](_0x506e7d,_0x4ec5ab,_0x953017={}){const _0x59d5cc=a0_0x21be3e,_0x354f42='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x32abcb,_0x525c1a=null,_0x1b0af9=null;this[_0x59d5cc(0x142)]?.['info'](_0x59d5cc(0x181),{'hasApiKeyManager':!!this[_0x59d5cc(0x123)],'sessionId':_0x953017[_0x59d5cc(0x151)],'hasSessionId':!!_0x953017[_0x59d5cc(0x151)],'model':_0x506e7d[_0x59d5cc(0x15c)]});if(this['apiKeyManager']&&_0x953017[_0x59d5cc(0x151)]){const _0x447bd9=this['apiKeyManager']['getKeysForRequest'](_0x953017['sessionId'],{'platformProvided':_0x953017['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x506e7d[_0x59d5cc(0x15c)])});_0x525c1a=_0x447bd9[_0x59d5cc(0x1b0)],_0x1b0af9=_0x447bd9[_0x59d5cc(0x147)],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x953017['sessionId'],'hasLoxiaKey':!!_0x525c1a,'hasVendorKey':!!_0x1b0af9});}!_0x525c1a&&_0x953017[_0x59d5cc(0x1aa)]&&(_0x525c1a=_0x953017[_0x59d5cc(0x1aa)]);!_0x525c1a&&this['config']['apiKey']&&(_0x525c1a=this[_0x59d5cc(0x127)][_0x59d5cc(0x1aa)]);if(!_0x525c1a)throw new Error(_0x59d5cc(0x1ae));const _0x5dd739={'prompt':_0x506e7d[_0x59d5cc(0x14c)],'model':_0x506e7d['model']||_0x59d5cc(0x121),'size':_0x506e7d['size'],'quality':_0x506e7d[_0x59d5cc(0x12a)],'style':_0x506e7d['style']||'vivid','n':_0x506e7d['n']||0x1,'requestId':_0x4ec5ab};for(let _0x4a0cb4=0x1;_0x4a0cb4<=this['retryAttempts'];_0x4a0cb4++){try{this[_0x59d5cc(0x142)]['info'](_0x59d5cc(0x1a7),{'url':_0x354f42,'model':_0x506e7d['model'],'requestId':_0x4ec5ab,'attempt':_0x4a0cb4,'hasApiKey':!!_0x525c1a});const _0x4e2968=await fetch(_0x354f42,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x525c1a,'X-Request-ID':_0x4ec5ab},'body':JSON['stringify'](_0x5dd739),'timeout':this['timeout']*0x2});if(!_0x4e2968['ok']){const _0x467978=await _0x4e2968[_0x59d5cc(0x149)](),_0x21f824=new Error(_0x59d5cc(0x16b)+_0x4e2968[_0x59d5cc(0x134)]+':\x20'+_0x4e2968['statusText']+(_0x467978?_0x59d5cc(0x146)+_0x467978:''));_0x21f824[_0x59d5cc(0x134)]=_0x4e2968['status'];throw _0x21f824;}const _0x26b43a=await _0x4e2968[_0x59d5cc(0x1b9)]();return{'data':_0x26b43a[_0x59d5cc(0x1ac)]||[],'model':_0x26b43a[_0x59d5cc(0x15c)]||_0x506e7d['model'],'created':_0x26b43a['created']||Date[_0x59d5cc(0x194)](),'usage':_0x26b43a[_0x59d5cc(0x12d)]};}catch(_0x190eca){_0x32abcb=_0x190eca,this['logger']['warn']('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x4a0cb4,'requestId':_0x4ec5ab,'error':_0x190eca['message'],'status':_0x190eca['status']});if(_0x4a0cb4<this[_0x59d5cc(0x1b5)]){const _0x39b4da=Math[_0x59d5cc(0x12e)](0x2,_0x4a0cb4)*0x3e8;this['logger'][_0x59d5cc(0x1b6)]('Retrying\x20in\x20'+_0x39b4da+'ms',{'attempt':_0x4a0cb4,'requestId':_0x4ec5ab}),await new Promise(_0xf7333=>setTimeout(_0xf7333,_0x39b4da));}}}this[_0x59d5cc(0x142)]['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x4ec5ab,'error':_0x32abcb['message']});throw new Error(_0x59d5cc(0x159)+_0x32abcb['message']);}async['_checkRateLimit'](_0x1a6b92){await new Promise(_0x2f7e81=>setTimeout(_0x2f7e81,0x64));}async[a0_0x21be3e(0x131)](_0x4a568e){const _0x12ba8e=a0_0x21be3e,_0x128340=0xea60;this['logger'][_0x12ba8e(0x16f)](_0x12ba8e(0x1b3)+_0x128340+'ms',_0x4a568e),await new Promise(_0x567115=>setTimeout(_0x567115,_0x128340));}async['_handleServiceUnavailable'](_0x4a0178){const _0x44f241=a0_0x21be3e;this['_recordFailure']();const _0x50f237=0x7530;this['logger']['info'](_0x44f241(0x1a9)+_0x50f237+'ms',_0x4a0178),await new Promise(_0x5219a9=>setTimeout(_0x5219a9,_0x50f237));}[a0_0x21be3e(0x133)](){const _0xa5f0e2=a0_0x21be3e;if(!this['circuitBreaker'][_0xa5f0e2(0x166)])return![];const _0x3eff99=Date[_0xa5f0e2(0x194)]()-this['circuitBreaker']['lastFailureTime'];if(_0x3eff99>this[_0xa5f0e2(0x120)]['timeout'])return this['circuitBreaker'][_0xa5f0e2(0x166)]=![],this['circuitBreaker'][_0xa5f0e2(0x15a)]=0x0,![];return!![];}['_recordFailure'](){const _0x435daa=a0_0x21be3e;this[_0x435daa(0x120)][_0x435daa(0x15a)]++,this['circuitBreaker']['lastFailureTime']=Date[_0x435daa(0x194)](),this[_0x435daa(0x120)][_0x435daa(0x15a)]>=this[_0x435daa(0x120)][_0x435daa(0x170)]&&(this['circuitBreaker']['isOpen']=!![],this['logger'][_0x435daa(0x1b6)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x21be3e(0x12b)](){const _0x4d4d86=a0_0x21be3e;this[_0x4d4d86(0x120)][_0x4d4d86(0x15a)]>0x0&&(this[_0x4d4d86(0x120)][_0x4d4d86(0x15a)]=0x0,this[_0x4d4d86(0x120)]['isOpen']=![],this['logger']['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x51e6ad){const _0x54f348=a0_0x21be3e;if(!_0x51e6ad)return null;const _0x23ed69=_0x51e6ad['toLowerCase']();if(_0x23ed69['includes']('anthropic')||_0x23ed69['includes'](_0x54f348(0x18f)))return'anthropic';else{if(_0x23ed69[_0x54f348(0x184)]('openai')||_0x23ed69['includes']('gpt'))return _0x54f348(0x183);else{if(_0x23ed69[_0x54f348(0x184)](_0x54f348(0x13d)))return _0x54f348(0x13d);else{if(_0x23ed69[_0x54f348(0x184)]('phi'))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x4b6524,_0x162a55){const _0x293dde=a0_0x21be3e;this[_0x293dde(0x16c)]=_0x4b6524,this['logger']=_0x162a55,this[_0x293dde(0x167)]=new Map();}async[a0_0x21be3e(0x197)](_0x2584d8){const _0x49b06c=a0_0x21be3e;return{'messages':[],'model':_0x2584d8,'lastUpdated':new Date()[_0x49b06c(0x15b)]()};}}export default AIService;
@@ -1 +1 @@
1
- const a0_0x370ab2=a0_0x24f9;(function(_0xbf610e,_0x364a21){const _0x46193e=a0_0x24f9,_0x25bb3f=_0xbf610e();while(!![]){try{const _0x4199cc=parseInt(_0x46193e(0x1c9))/0x1+parseInt(_0x46193e(0x1cd))/0x2+-parseInt(_0x46193e(0x1c7))/0x3*(parseInt(_0x46193e(0x1d3))/0x4)+-parseInt(_0x46193e(0x1cb))/0x5*(parseInt(_0x46193e(0x1d7))/0x6)+parseInt(_0x46193e(0x1c8))/0x7*(-parseInt(_0x46193e(0x1d5))/0x8)+-parseInt(_0x46193e(0x1d4))/0x9+parseInt(_0x46193e(0x1d6))/0xa;if(_0x4199cc===_0x364a21)break;else _0x25bb3f['push'](_0x25bb3f['shift']());}catch(_0x3f5aaa){_0x25bb3f['push'](_0x25bb3f['shift']());}}}(a0_0xa6e2,0xc96bd));class ApiKeyManager{constructor(_0x298352){const _0x202f26=a0_0x24f9;this[_0x202f26(0x1df)]=_0x298352,this[_0x202f26(0x1bd)]=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x370ab2(0x1bc)](_0x2a1547,_0x41aa9e){const _0x27ecf5=a0_0x370ab2;if(!_0x2a1547)throw new Error(_0x27ecf5(0x1d9));this['sessionKeys']['set'](_0x2a1547,{'loxiaApiKey':_0x41aa9e[_0x27ecf5(0x1c5)]||null,'vendorKeys':_0x41aa9e[_0x27ecf5(0x1ca)]||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.[_0x27ecf5(0x1db)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x2a1547,'hasLoxiaKey':!!_0x41aa9e['loxiaApiKey'],'vendorKeys':Object[_0x27ecf5(0x1c4)](_0x41aa9e[_0x27ecf5(0x1ca)]||{}),'timestamp':new Date()[_0x27ecf5(0x1c2)]()});}['getSessionKeys'](_0x1c3fb8){if(!_0x1c3fb8)return this['globalKeys'];const _0x450571=this['sessionKeys']['get'](_0x1c3fb8);if(_0x450571)return _0x450571;return this['globalKeys'];}[a0_0x370ab2(0x1cc)](_0x343aa0,_0x3f29cf={}){const _0x103af1=a0_0x370ab2,_0x5d68ee=this[_0x103af1(0x1dc)](_0x343aa0),_0x571c27={'loxiaApiKey':_0x5d68ee[_0x103af1(0x1c5)],'vendorApiKey':null};return!_0x3f29cf['platformProvided']&&_0x3f29cf[_0x103af1(0x1be)]&&_0x5d68ee['vendorKeys']&&(_0x571c27[_0x103af1(0x1d2)]=_0x5d68ee[_0x103af1(0x1ca)][_0x3f29cf['vendor']]),_0x571c27;}['removeSessionKeys'](_0x7127f){const _0x1bff44=a0_0x370ab2;if(this['sessionKeys'][_0x1bff44(0x1c3)](_0x7127f))return this['logger']?.['info'](_0x1bff44(0x1c1),{'sessionId':_0x7127f}),!![];return![];}['setGlobalKeys'](_0x419862){const _0x30d41c=a0_0x370ab2;this[_0x30d41c(0x1d1)]={'loxiaApiKey':_0x419862[_0x30d41c(0x1c5)]||this[_0x30d41c(0x1d1)]['loxiaApiKey'],'vendorKeys':{...this[_0x30d41c(0x1d1)]['vendorKeys'],..._0x419862[_0x30d41c(0x1ca)]||{}}},this[_0x30d41c(0x1df)]?.['info'](_0x30d41c(0x1de),{'hasLoxiaKey':!!this[_0x30d41c(0x1d1)]['loxiaApiKey'],'vendorKeys':Object['keys'](this['globalKeys'][_0x30d41c(0x1ca)])});}[a0_0x370ab2(0x1c0)](){const _0x588fb8=a0_0x370ab2;return Array['from'](this['sessionKeys'][_0x588fb8(0x1c6)]())[_0x588fb8(0x1bf)](([_0x54d0ac,_0x23956e])=>({'sessionId':_0x54d0ac,'hasLoxiaKey':!!_0x23956e['loxiaApiKey'],'vendorKeys':Object[_0x588fb8(0x1c4)](_0x23956e['vendorKeys']||{}),'updatedAt':_0x23956e[_0x588fb8(0x1dd)]}));}['cleanupExpiredSessions'](_0x2ad23f=0x18*0x3c*0x3c*0x3e8){const _0xc66e35=a0_0x370ab2,_0x240c1d=Date[_0xc66e35(0x1d8)](),_0x1c0d8f=[];for(const [_0x15809e,_0x145c54]of this[_0xc66e35(0x1bd)][_0xc66e35(0x1c6)]()){const _0x1a76cf=_0x240c1d-new Date(_0x145c54[_0xc66e35(0x1dd)])[_0xc66e35(0x1ce)]();_0x1a76cf>_0x2ad23f&&_0x1c0d8f[_0xc66e35(0x1da)](_0x15809e);}return _0x1c0d8f[_0xc66e35(0x1d0)](_0x3cd244=>{const _0x3bee5c=_0xc66e35;this[_0x3bee5c(0x1bd)][_0x3bee5c(0x1c3)](_0x3cd244);}),_0x1c0d8f['length']>0x0&&this[_0xc66e35(0x1df)]?.[_0xc66e35(0x1db)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x1c0d8f['length'],'remainingSessions':this['sessionKeys'][_0xc66e35(0x1cf)]}),_0x1c0d8f['length'];}}function a0_0xa6e2(){const _0x279e45=['nZy4mJi1uKLeu3DQ','DMvUzg9Ys2v5CW','nJvTA05ptuW','z2v0s2v5C0zVCLjLCxvLC3q','mJC4odm1ng5TquPWBW','z2v0vgLTzq','C2L6zq','zM9YrwfJAa','z2XVyMfSs2v5CW','DMvUzg9YqxbPs2v5','mtq5mML2AuTTAq','ndK3nJC5m2XmDujoDG','mtzStKTWrwK','mtC3mdyWnZbmtuHMuw4','nJiYmZi2CKzvr3zP','BM93','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','ChvZAa','Aw5MBW','z2v0u2vZC2LVBKTLExm','DxbKyxrLzef0','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','Bg9Nz2vY','C2v0u2vZC2LVBKTLExm','C2vZC2LVBKTLExm','DMvUzg9Y','BwfW','z2v0qwn0AxzLu2vZC2LVBNm','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','Dg9ju09tDhjPBMC','zgvSzxrL','A2v5CW','Bg94AwfbCgLlzxK','zw50CMLLCW','otuXnMfsy2PmCG','odiXodD5v2v0t3e'];a0_0xa6e2=function(){return _0x279e45;};return a0_0xa6e2();}function a0_0x24f9(_0x53e4f3,_0x1f53a5){_0x53e4f3=_0x53e4f3-0x1bc;const _0xa6e2e=a0_0xa6e2();let _0x24f9bf=_0xa6e2e[_0x53e4f3];if(a0_0x24f9['gQlqmo']===undefined){var _0x2fbcab=function(_0xf15492){const _0x4392e3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x298352='',_0x2a1547='';for(let _0x41aa9e=0x0,_0x1c3fb8,_0x450571,_0x343aa0=0x0;_0x450571=_0xf15492['charAt'](_0x343aa0++);~_0x450571&&(_0x1c3fb8=_0x41aa9e%0x4?_0x1c3fb8*0x40+_0x450571:_0x450571,_0x41aa9e++%0x4)?_0x298352+=String['fromCharCode'](0xff&_0x1c3fb8>>(-0x2*_0x41aa9e&0x6)):0x0){_0x450571=_0x4392e3['indexOf'](_0x450571);}for(let _0x3f29cf=0x0,_0x5d68ee=_0x298352['length'];_0x3f29cf<_0x5d68ee;_0x3f29cf++){_0x2a1547+='%'+('00'+_0x298352['charCodeAt'](_0x3f29cf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2a1547);};a0_0x24f9['GZZAlc']=_0x2fbcab,a0_0x24f9['kaiysj']={},a0_0x24f9['gQlqmo']=!![];}const _0x2c6315=_0xa6e2e[0x0],_0x43e99c=_0x53e4f3+_0x2c6315,_0x417b3d=a0_0x24f9['kaiysj'][_0x43e99c];return!_0x417b3d?(_0x24f9bf=a0_0x24f9['GZZAlc'](_0x24f9bf),a0_0x24f9['kaiysj'][_0x43e99c]=_0x24f9bf):_0x24f9bf=_0x417b3d,_0x24f9bf;}export default ApiKeyManager;
1
+ function a0_0x3398(){const _0x389a9d=['z2v0u2vZC2LVBKTLExm','A2v5CW','n2DRqMT5Ea','C2L6zq','z2XVyMfSs2v5CW','DMvUzg9Ys2v5CW','C2v0u2vZC2LVBKTLExm','C2vZC2LVBKTLExm','Bg9Nz2vY','CgXHDgzVCM1qCM92AwrLza','ndHICwLRuvC','odKZmefrwMnPqW','mJG2mdC2n09zCMvsrW','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','Bg94AwfbCgLlzxK','C2v0r2XVyMfSs2v5CW','mJyWote5nKDwDhPHyG','mtK1nNv6CfDUwG','otGXmdm1teHtzefW','Aw5MBW','zM9YrwfJAa','mtGXmfLktfv1Ca','ndGYmK5isLH1va','mtm4wuTjt1rI','mJm1mJzVBgHiquq','BgvUz3rO','zgvSzxrL','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','Dg9ju09tDhjPBMC','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','BM93','mtiWnZG4meDZuxPiDG'];a0_0x3398=function(){return _0x389a9d;};return a0_0x3398();}const a0_0x539655=a0_0x1bf0;(function(_0x3b198e,_0x2167fa){const _0x36c069=a0_0x1bf0,_0x358556=_0x3b198e();while(!![]){try{const _0x27033c=parseInt(_0x36c069(0x115))/0x1*(parseInt(_0x36c069(0x114))/0x2)+parseInt(_0x36c069(0x12a))/0x3+-parseInt(_0x36c069(0x130))/0x4*(-parseInt(_0x36c069(0x129))/0x5)+-parseInt(_0x36c069(0x12f))/0x6*(parseInt(_0x36c069(0x120))/0x7)+-parseInt(_0x36c069(0x11d))/0x8+-parseInt(_0x36c069(0x116))/0x9*(parseInt(_0x36c069(0x113))/0xa)+-parseInt(_0x36c069(0x110))/0xb*(parseInt(_0x36c069(0x128))/0xc);if(_0x27033c===_0x2167fa)break;else _0x358556['push'](_0x358556['shift']());}catch(_0x3e9eb4){_0x358556['push'](_0x358556['shift']());}}}(a0_0x3398,0xb5a00));class ApiKeyManager{constructor(_0x37a906){this['logger']=_0x37a906,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x539655(0x124)](_0x5a28b3,_0x28b074){const _0x2a153c=a0_0x539655;if(!_0x5a28b3)throw new Error('Session\x20ID\x20is\x20required');this['sessionKeys']['set'](_0x5a28b3,{'loxiaApiKey':_0x28b074['loxiaApiKey']||null,'vendorKeys':_0x28b074[_0x2a153c(0x123)]||{},'updatedAt':new Date()[_0x2a153c(0x11a)]()}),this['logger']?.['info'](_0x2a153c(0x12c),{'sessionId':_0x5a28b3,'hasLoxiaKey':!!_0x28b074[_0x2a153c(0x12d)],'vendorKeys':Object[_0x2a153c(0x11f)](_0x28b074['vendorKeys']||{}),'timestamp':new Date()[_0x2a153c(0x11a)]()});}['getSessionKeys'](_0x26c6c8){if(!_0x26c6c8)return this['globalKeys'];const _0x26f266=this['sessionKeys']['get'](_0x26c6c8);if(_0x26f266)return _0x26f266;return this['globalKeys'];}['getKeysForRequest'](_0x40126d,_0x3a4f5d={}){const _0xa7eb0b=a0_0x539655,_0x5e5984=this[_0xa7eb0b(0x11e)](_0x40126d),_0x848916={'loxiaApiKey':_0x5e5984['loxiaApiKey'],'vendorApiKey':null};return!_0x3a4f5d[_0xa7eb0b(0x127)]&&_0x3a4f5d['vendor']&&_0x5e5984[_0xa7eb0b(0x123)]&&(_0x848916['vendorApiKey']=_0x5e5984[_0xa7eb0b(0x123)][_0x3a4f5d['vendor']]),_0x848916;}['removeSessionKeys'](_0xaa9994){const _0x60970b=a0_0x539655;if(this['sessionKeys']['delete'](_0xaa9994))return this[_0x60970b(0x126)]?.[_0x60970b(0x111)](_0x60970b(0x12b),{'sessionId':_0xaa9994}),!![];return![];}[a0_0x539655(0x12e)](_0x35ff47){const _0x3da8f2=a0_0x539655;this[_0x3da8f2(0x122)]={'loxiaApiKey':_0x35ff47[_0x3da8f2(0x12d)]||this[_0x3da8f2(0x122)]['loxiaApiKey'],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x35ff47['vendorKeys']||{}}},this['logger']?.['info'](_0x3da8f2(0x11b),{'hasLoxiaKey':!!this['globalKeys'][_0x3da8f2(0x12d)],'vendorKeys':Object[_0x3da8f2(0x11f)](this['globalKeys']['vendorKeys'])});}['getActiveSessions'](){const _0x191c87=a0_0x539655;return Array['from'](this['sessionKeys']['entries']())['map'](([_0x2f1445,_0x368e80])=>({'sessionId':_0x2f1445,'hasLoxiaKey':!!_0x368e80[_0x191c87(0x12d)],'vendorKeys':Object[_0x191c87(0x11f)](_0x368e80['vendorKeys']||{}),'updatedAt':_0x368e80['updatedAt']}));}[a0_0x539655(0x119)](_0x33be28=0x18*0x3c*0x3c*0x3e8){const _0x216708=a0_0x539655,_0x53e271=Date[_0x216708(0x11c)](),_0x52c346=[];for(const [_0x510cf4,_0x21b05b]of this[_0x216708(0x125)]['entries']()){const _0x2bcf6c=_0x53e271-new Date(_0x21b05b['updatedAt'])['getTime']();_0x2bcf6c>_0x33be28&&_0x52c346['push'](_0x510cf4);}return _0x52c346[_0x216708(0x112)](_0xc893a0=>{const _0x44a287=_0x216708;this[_0x44a287(0x125)][_0x44a287(0x118)](_0xc893a0);}),_0x52c346[_0x216708(0x117)]>0x0&&this['logger']?.[_0x216708(0x111)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x52c346['length'],'remainingSessions':this['sessionKeys'][_0x216708(0x121)]}),_0x52c346[_0x216708(0x117)];}}function a0_0x1bf0(_0x2ab5d8,_0x1496f8){_0x2ab5d8=_0x2ab5d8-0x110;const _0x339857=a0_0x3398();let _0x1bf00e=_0x339857[_0x2ab5d8];if(a0_0x1bf0['vqKnNx']===undefined){var _0x32831f=function(_0xc33e8b){const _0x4c41f7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37a906='',_0x5a28b3='';for(let _0x28b074=0x0,_0x26c6c8,_0x26f266,_0x40126d=0x0;_0x26f266=_0xc33e8b['charAt'](_0x40126d++);~_0x26f266&&(_0x26c6c8=_0x28b074%0x4?_0x26c6c8*0x40+_0x26f266:_0x26f266,_0x28b074++%0x4)?_0x37a906+=String['fromCharCode'](0xff&_0x26c6c8>>(-0x2*_0x28b074&0x6)):0x0){_0x26f266=_0x4c41f7['indexOf'](_0x26f266);}for(let _0x3a4f5d=0x0,_0x5e5984=_0x37a906['length'];_0x3a4f5d<_0x5e5984;_0x3a4f5d++){_0x5a28b3+='%'+('00'+_0x37a906['charCodeAt'](_0x3a4f5d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a28b3);};a0_0x1bf0['SsKjrT']=_0x32831f,a0_0x1bf0['fLrjbd']={},a0_0x1bf0['vqKnNx']=!![];}const _0x108b1e=_0x339857[0x0],_0xe8719d=_0x2ab5d8+_0x108b1e,_0x173ea4=a0_0x1bf0['fLrjbd'][_0xe8719d];return!_0x173ea4?(_0x1bf00e=a0_0x1bf0['SsKjrT'](_0x1bf00e),a0_0x1bf0['fLrjbd'][_0xe8719d]=_0x1bf00e):_0x1bf00e=_0x173ea4,_0x1bf00e;}export default ApiKeyManager;
@@ -1 +1 @@
1
- const a0_0x2d2047=a0_0x57ee;function a0_0x3f90(){const _0x309693=['mtbPthjZBNe','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','DMfSDwvZ','nZmWn2fLCgf0Eq','nJu3ota2CxDzBMPO','yxbWBgLJyxrPB24VANnVBG','Aw5MBW','C3bLzwq','zMLSDgvY','Bg9HzejLBMnOBwfYA3m','zgvIDwC','BMfTzq','mZros0LHEvu','BMvLzhnszwzYzxnO','ntzJEhv0zxy','AxnmB2fKAw5N','Bw9KzwXZ','y29KAw5N','ndi3mZC3nxfAB091CW','BgvUz3rO','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','nde1ndy3sKj1uMPw','CMvMCMvZAeLUDgvYDMfS','yxP1CMvcywnRzw5KvxjS','BwfW','Dw5RBM93BG','yxbPs2v5','mJe3mdK2mKTQvhnfuG','zM9Yy2vszwzYzxnO','ndG4uu5VyNj2','nJm1nJverKHetvq','mZqZn0r1CwLqwa','Bg9Nz2vY','BgfZDfvWzgf0zwq','sfruuca','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','x2DLDejLC3rnB2rLBezVCLrHC2S','y29ZDa','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','CxvPy2STDgfZA3m','DgfZA3m','yMvUy2HTyxjRCW','z2v0qMvUy2HTyxjRCW','y29UzMLN','Aw5PDgLHBgL6zq','Bwf4','BwvZC2fNzq','C2nVCMu','C29YDa','C291CMnL','z2v0qMvUy2HTyxjRvgfIBgu'];a0_0x3f90=function(){return _0x309693;};return a0_0x3f90();}(function(_0x34bcbf,_0x4e81ea){const _0xcccd24=a0_0x57ee,_0x2e9b9e=_0x34bcbf();while(!![]){try{const _0x4a03e5=-parseInt(_0xcccd24(0xfd))/0x1*(-parseInt(_0xcccd24(0x106))/0x2)+-parseInt(_0xcccd24(0xdc))/0x3+parseInt(_0xcccd24(0x108))/0x4*(parseInt(_0xcccd24(0xe5))/0x5)+-parseInt(_0xcccd24(0xfe))/0x6+-parseInt(_0xcccd24(0xe6))/0x7*(-parseInt(_0xcccd24(0xe4))/0x8)+-parseInt(_0xcccd24(0xe2))/0x9+parseInt(_0xcccd24(0xfa))/0xa*(parseInt(_0xcccd24(0x10c))/0xb);if(_0x4a03e5===_0x4e81ea)break;else _0x2e9b9e['push'](_0x2e9b9e['shift']());}catch(_0xf7d4d9){_0x2e9b9e['push'](_0x2e9b9e['shift']());}}}(a0_0x3f90,0x38797));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0x57ee(_0x449c59,_0x5c9ccf){_0x449c59=_0x449c59-0xdc;const _0x3f90df=a0_0x3f90();let _0x57ee25=_0x3f90df[_0x449c59];if(a0_0x57ee['FhcBYQ']===undefined){var _0x59224a=function(_0x528e6c){const _0x2fa286='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xddb1b2='',_0x2462e5='';for(let _0x4903fe=0x0,_0x545731,_0x4fc8aa,_0x567f73=0x0;_0x4fc8aa=_0x528e6c['charAt'](_0x567f73++);~_0x4fc8aa&&(_0x545731=_0x4903fe%0x4?_0x545731*0x40+_0x4fc8aa:_0x4fc8aa,_0x4903fe++%0x4)?_0xddb1b2+=String['fromCharCode'](0xff&_0x545731>>(-0x2*_0x4903fe&0x6)):0x0){_0x4fc8aa=_0x2fa286['indexOf'](_0x4fc8aa);}for(let _0x13fc85=0x0,_0x2d37df=_0xddb1b2['length'];_0x13fc85<_0x2d37df;_0x13fc85++){_0x2462e5+='%'+('00'+_0xddb1b2['charCodeAt'](_0x13fc85)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2462e5);};a0_0x57ee['TIKFIL']=_0x59224a,a0_0x57ee['IbNYMr']={},a0_0x57ee['FhcBYQ']=!![];}const _0x187f80=_0x3f90df[0x0],_0x51900c=_0x449c59+_0x187f80,_0x257367=a0_0x57ee['IbNYMr'][_0x51900c];return!_0x257367?(_0x57ee25=a0_0x57ee['TIKFIL'](_0x57ee25),a0_0x57ee['IbNYMr'][_0x51900c]=_0x57ee25):_0x57ee25=_0x257367,_0x57ee25;}class BenchmarkService{constructor(_0xddb1b2,_0x2462e5){const _0x5bc36a=a0_0x57ee;this[_0x5bc36a(0xf2)]=_0xddb1b2,this['logger']=_0x2462e5,this['benchmarks']=null,this['lastUpdated']=null,this[_0x5bc36a(0x109)]=![],this[_0x5bc36a(0xde)]='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x5bc36a(0xfb)];}async[a0_0x2d2047(0xf3)](){const _0x29a291=a0_0x2d2047;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger'][_0x29a291(0x100)]('Benchmark\x20service\x20initialized');}catch(_0x4903fe){this['logger']['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x4903fe[_0x29a291(0xf5)]}),this[_0x29a291(0xf0)]=null;}}[a0_0x2d2047(0xf1)](){const _0x2b41d7=a0_0x2d2047;if(!this['benchmarks'])return this[_0x2b41d7(0xe7)]['error']('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x14e537=a0_0x2d2047;if(this['isLoading']){this['logger']['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x14e537(0x109)]=!![];try{const _0x545731=await this[_0x14e537(0x10e)]();if(_0x545731)this['benchmarks']=_0x545731,this['lastUpdated']=new Date(),this[_0x14e537(0xe7)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x545731['models']?.[_0x14e537(0x10d)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x4fc8aa){this[_0x14e537(0xe7)]['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x4fc8aa[_0x14e537(0xf5)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this[_0x14e537(0x109)]=![];}}[a0_0x2d2047(0xf9)](){const _0x5e890d=a0_0x2d2047,_0x567f73=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||'unknown','models':_0x567f73[_0x5e890d(0x10a)]||[],'tasks':_0x567f73['tasks']||{},'summary':this[_0x5e890d(0xed)](_0x567f73)};}[a0_0x2d2047(0x107)](){const _0x417e52=a0_0x2d2047;if(!this[_0x417e52(0xe8)])return!![];const _0x13fc85=Date['now']()-this[_0x417e52(0xe8)]['getTime']();return _0x13fc85>this[_0x417e52(0xdd)];}async[a0_0x2d2047(0x10e)](){const _0x1e5beb=a0_0x2d2047,_0x2d37df=this['azureBackendUrl']+_0x1e5beb(0xea);let _0x44f070=null;this[_0x1e5beb(0xf2)][_0x1e5beb(0xe1)]&&(_0x44f070=this[_0x1e5beb(0xf2)]['apiKey']);const _0x24c850={'method':'GET','headers':{'Content-Type':_0x1e5beb(0xff),..._0x44f070&&{'Authorization':'Bearer\x20'+_0x44f070}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x2d37df});const _0x1af1dd=await fetch(_0x2d37df,_0x24c850);if(!_0x1af1dd['ok'])throw new Error(_0x1e5beb(0xe9)+_0x1af1dd['status']+':\x20'+_0x1af1dd['statusText']);const _0x542a26=await _0x1af1dd['json']();return _0x542a26;}['_generateBenchmarkSummary'](_0x825c3f){const _0x5cf75e=a0_0x2d2047,_0x5859e4=_0x825c3f[_0x5cf75e(0x10a)]||[];return{'totalModels':_0x5859e4['length'],'taskCategories':Object['keys'](_0x825c3f[_0x5cf75e(0xef)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x5859e4,_0x5cf75e(0x10b)),'bestForAnalysis':this['_getBestModelForTask'](_0x5859e4,'analysis'),'bestForQuickTasks':this['_getBestModelForTask'](_0x5859e4,_0x5cf75e(0xee)),'bestForCreative':this['_getBestModelForTask'](_0x5859e4,'creative'),'fastestModel':this['_getFastestModel'](_0x5859e4),'mostCostEfficient':this['_getMostCostEfficient'](_0x5859e4)};}[a0_0x2d2047(0xeb)](_0x4dc6a8,_0x402f9){const _0x4f2659=a0_0x2d2047;return _0x4dc6a8[_0x4f2659(0x102)](_0x2a16e6=>_0x2a16e6['tasks']&&_0x2a16e6[_0x4f2659(0xef)][_0x402f9])['sort']((_0x2007c6,_0x10c0c6)=>(_0x10c0c6[_0x4f2659(0xef)][_0x402f9][_0x4f2659(0xf6)]||0x0)-(_0x2007c6['tasks'][_0x402f9]['score']||0x0))[0x0]?.[_0x4f2659(0x105)]||'unknown';}['_getFastestModel'](_0x27631b){const _0x27eef2=a0_0x2d2047,_0x2fcf0a={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x27631b[_0x27eef2(0xf7)]((_0x2e28e7,_0x27ff8a)=>{const _0x55f22d=_0x27eef2,_0x326588=Math['max'](...Object['values'](_0x2e28e7['tasks']||{})[_0x55f22d(0xdf)](_0x3ee301=>_0x2fcf0a[_0x3ee301[_0x55f22d(0x101)]]||0x0)),_0x15a98f=Math['max'](...Object['values'](_0x27ff8a[_0x55f22d(0xef)]||{})[_0x55f22d(0xdf)](_0x785402=>_0x2fcf0a[_0x785402['speed']]||0x0));return _0x15a98f-_0x326588;})[0x0]?.['name']||'unknown';}['_getMostCostEfficient'](_0x1e01d4){const _0x54b10e=a0_0x2d2047,_0x541939={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x1e01d4['sort']((_0xf6979b,_0x2b1156)=>{const _0x4d5b85=a0_0x57ee,_0x237b60=Math['max'](...Object['values'](_0xf6979b['tasks']||{})[_0x4d5b85(0xdf)](_0x3a1561=>_0x541939[_0x3a1561['cost']]||0x0)),_0xf66a6=Math[_0x4d5b85(0xf4)](...Object[_0x4d5b85(0xfc)](_0x2b1156['tasks']||{})[_0x4d5b85(0xdf)](_0x5116d8=>_0x541939[_0x5116d8[_0x4d5b85(0xec)]]||0x0));return _0xf66a6-_0x237b60;})[0x0]?.[_0x54b10e(0x105)]||_0x54b10e(0xe0);}['_scheduleRefresh'](){const _0x554074=a0_0x2d2047;setInterval(async()=>{const _0x16ae44=a0_0x57ee;this['needsRefresh']()&&(this['logger'][_0x16ae44(0x104)]('Refreshing\x20benchmark\x20data'),await this[_0x16ae44(0x103)]());},this[_0x554074(0xdd)]);}async[a0_0x2d2047(0xe3)](){const _0x11117b=a0_0x2d2047;this['logger'][_0x11117b(0x100)]('Force\x20refreshing\x20benchmark\x20data'),await this['loadBenchmarks']();}['getStatus'](){const _0x563caf=a0_0x2d2047;return{'initialized':!!this['benchmarks'],'lastUpdated':this[_0x563caf(0xe8)]?.['toISOString']()||null,'source':this['benchmarks']?.[_0x563caf(0xf8)]||'unknown','modelCount':this[_0x563caf(0xf0)]?.[_0x563caf(0x10a)]?.[_0x563caf(0x10d)]||0x0,'isLoading':this[_0x563caf(0x109)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
1
+ const a0_0x205c22=a0_0xb38c;(function(_0x1a250e,_0x899128){const _0x5b7527=a0_0xb38c,_0x2f7f52=_0x1a250e();while(!![]){try{const _0x8e8e0f=parseInt(_0x5b7527(0x19f))/0x1*(parseInt(_0x5b7527(0x181))/0x2)+parseInt(_0x5b7527(0x17d))/0x3*(parseInt(_0x5b7527(0x19d))/0x4)+parseInt(_0x5b7527(0x18c))/0x5*(parseInt(_0x5b7527(0x192))/0x6)+-parseInt(_0x5b7527(0x16e))/0x7+-parseInt(_0x5b7527(0x188))/0x8+parseInt(_0x5b7527(0x183))/0x9*(parseInt(_0x5b7527(0x185))/0xa)+-parseInt(_0x5b7527(0x189))/0xb*(-parseInt(_0x5b7527(0x178))/0xc);if(_0x8e8e0f===_0x899128)break;else _0x2f7f52['push'](_0x2f7f52['shift']());}catch(_0x33318e){_0x2f7f52['push'](_0x2f7f52['shift']());}}}(a0_0x1988,0x68267));function a0_0xb38c(_0x59a7b4,_0x9d0282){_0x59a7b4=_0x59a7b4-0x16c;const _0x1988a9=a0_0x1988();let _0xb38c9b=_0x1988a9[_0x59a7b4];if(a0_0xb38c['WebQxk']===undefined){var _0x5c74d7=function(_0x481c44){const _0x282a0f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x25baff='',_0x401fee='';for(let _0xf0965b=0x0,_0x14499b,_0x5f2203,_0x2abe82=0x0;_0x5f2203=_0x481c44['charAt'](_0x2abe82++);~_0x5f2203&&(_0x14499b=_0xf0965b%0x4?_0x14499b*0x40+_0x5f2203:_0x5f2203,_0xf0965b++%0x4)?_0x25baff+=String['fromCharCode'](0xff&_0x14499b>>(-0x2*_0xf0965b&0x6)):0x0){_0x5f2203=_0x282a0f['indexOf'](_0x5f2203);}for(let _0x2d7c9c=0x0,_0x31d156=_0x25baff['length'];_0x2d7c9c<_0x31d156;_0x2d7c9c++){_0x401fee+='%'+('00'+_0x25baff['charCodeAt'](_0x2d7c9c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x401fee);};a0_0xb38c['hLlFAc']=_0x5c74d7,a0_0xb38c['XFSGJN']={},a0_0xb38c['WebQxk']=!![];}const _0x1ca831=_0x1988a9[0x0],_0x631b47=_0x59a7b4+_0x1ca831,_0x553707=a0_0xb38c['XFSGJN'][_0x631b47];return!_0x553707?(_0xb38c9b=a0_0xb38c['hLlFAc'](_0xb38c9b),a0_0xb38c['XFSGJN'][_0x631b47]=_0xb38c9b):_0xb38c9b=_0x553707,_0xb38c9b;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x25baff,_0x401fee){const _0x12a576=a0_0xb38c;this[_0x12a576(0x173)]=_0x25baff,this['logger']=_0x401fee,this['benchmarks']=null,this[_0x12a576(0x171)]=null,this['isLoading']=![],this[_0x12a576(0x180)]=_0x12a576(0x186),this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x12a576(0x19c)];}async[a0_0x205c22(0x17f)](){const _0x567b8e=a0_0x205c22;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger']['info']('Benchmark\x20service\x20initialized');}catch(_0xf0965b){this[_0x567b8e(0x197)]['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0xf0965b['message']}),this[_0x567b8e(0x17b)]=null;}}['getBenchmarks'](){const _0xbd079d=a0_0x205c22;if(!this[_0xbd079d(0x17b)])return this['logger']['error']('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0xbd079d(0x17b)];}async['loadBenchmarks'](){const _0x29d9e5=a0_0x205c22;if(this[_0x29d9e5(0x177)]){this['logger']['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x29d9e5(0x177)]=!![];try{const _0x14499b=await this['_fetchFromAzureBackend']();if(_0x14499b)this[_0x29d9e5(0x17b)]=_0x14499b,this['lastUpdated']=new Date(),this['logger']['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x14499b['models']?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x5f2203){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x5f2203[_0x29d9e5(0x19b)],'endpoint':url}),!this['benchmarks']&&(this[_0x29d9e5(0x17b)]=null);}finally{this['isLoading']=![];}}[a0_0x205c22(0x17e)](){const _0x45177f=a0_0x205c22,_0x2abe82=this[_0x45177f(0x18e)]();return{'lastUpdated':this[_0x45177f(0x171)]?.[_0x45177f(0x18f)]()||'unknown','models':_0x2abe82[_0x45177f(0x199)]||[],'tasks':_0x2abe82['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x2abe82)};}[a0_0x205c22(0x16f)](){const _0x5be9b2=a0_0x205c22;if(!this[_0x5be9b2(0x171)])return!![];const _0x2d7c9c=Date['now']()-this['lastUpdated']['getTime']();return _0x2d7c9c>this[_0x5be9b2(0x190)];}async['_fetchFromAzureBackend'](){const _0x56bbaa=a0_0x205c22,_0x31d156=this['azureBackendUrl']+_0x56bbaa(0x198);let _0x2bb022=null;this[_0x56bbaa(0x173)][_0x56bbaa(0x17c)]&&(_0x2bb022=this['config']['apiKey']);const _0xfe777b={'method':_0x56bbaa(0x170),'headers':{'Content-Type':_0x56bbaa(0x18a),..._0x2bb022&&{'Authorization':'Bearer\x20'+_0x2bb022}},'timeout':0x2710};this[_0x56bbaa(0x197)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x31d156});const _0x24f54b=await fetch(_0x31d156,_0xfe777b);if(!_0x24f54b['ok'])throw new Error('HTTP\x20'+_0x24f54b[_0x56bbaa(0x16c)]+':\x20'+_0x24f54b['statusText']);const _0x13e203=await _0x24f54b['json']();return _0x13e203;}['_generateBenchmarkSummary'](_0x396893){const _0x5ae070=a0_0x205c22,_0x562ed1=_0x396893[_0x5ae070(0x199)]||[];return{'totalModels':_0x562ed1[_0x5ae070(0x17a)],'taskCategories':Object['keys'](_0x396893['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x562ed1,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x562ed1,'analysis'),'bestForQuickTasks':this[_0x5ae070(0x174)](_0x562ed1,_0x5ae070(0x175)),'bestForCreative':this[_0x5ae070(0x174)](_0x562ed1,'creative'),'fastestModel':this[_0x5ae070(0x195)](_0x562ed1),'mostCostEfficient':this['_getMostCostEfficient'](_0x562ed1)};}['_getBestModelForTask'](_0x470f4c,_0x2968be){const _0x46eafc=a0_0x205c22;return _0x470f4c[_0x46eafc(0x18b)](_0x543029=>_0x543029[_0x46eafc(0x196)]&&_0x543029['tasks'][_0x2968be])['sort']((_0x128614,_0x19be6f)=>(_0x19be6f['tasks'][_0x2968be]['score']||0x0)-(_0x128614[_0x46eafc(0x196)][_0x2968be]['score']||0x0))[0x0]?.[_0x46eafc(0x194)]||'unknown';}[a0_0x205c22(0x195)](_0x257441){const _0x182c04={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x257441['sort']((_0x189614,_0x38cf2a)=>{const _0x2e15cd=a0_0xb38c,_0x12d7ab=Math['max'](...Object[_0x2e15cd(0x1a0)](_0x189614['tasks']||{})['map'](_0x2567de=>_0x182c04[_0x2567de[_0x2e15cd(0x179)]]||0x0)),_0x3ed347=Math['max'](...Object['values'](_0x38cf2a[_0x2e15cd(0x196)]||{})[_0x2e15cd(0x191)](_0x4e69ab=>_0x182c04[_0x4e69ab[_0x2e15cd(0x179)]]||0x0));return _0x3ed347-_0x12d7ab;})[0x0]?.['name']||'unknown';}[a0_0x205c22(0x193)](_0x525de4){const _0x367528=a0_0x205c22,_0x2ed272={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x525de4[_0x367528(0x187)]((_0x2066a5,_0xa1dead)=>{const _0x544ce6=_0x367528,_0x280908=Math[_0x544ce6(0x176)](...Object[_0x544ce6(0x1a0)](_0x2066a5[_0x544ce6(0x196)]||{})[_0x544ce6(0x191)](_0x41272c=>_0x2ed272[_0x41272c['cost']]||0x0)),_0x299489=Math['max'](...Object[_0x544ce6(0x1a0)](_0xa1dead['tasks']||{})[_0x544ce6(0x191)](_0x40b64f=>_0x2ed272[_0x40b64f['cost']]||0x0));return _0x299489-_0x280908;})[0x0]?.['name']||'unknown';}[a0_0x205c22(0x182)](){setInterval(async()=>{const _0x866995=a0_0xb38c;this['needsRefresh']()&&(this[_0x866995(0x197)][_0x866995(0x19e)]('Refreshing\x20benchmark\x20data'),await this[_0x866995(0x16d)]());},this['refreshInterval']);}async['forceRefresh'](){const _0x1946be=a0_0x205c22;this[_0x1946be(0x197)][_0x1946be(0x18d)](_0x1946be(0x19a)),await this['loadBenchmarks']();}['getStatus'](){const _0xca44f0=a0_0x205c22;return{'initialized':!!this['benchmarks'],'lastUpdated':this[_0xca44f0(0x171)]?.['toISOString']()||null,'source':this[_0xca44f0(0x17b)]?.[_0xca44f0(0x184)]||_0xca44f0(0x172),'modelCount':this[_0xca44f0(0x17b)]?.[_0xca44f0(0x199)]?.['length']||0x0,'isLoading':this['isLoading'],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;function a0_0x1988(){const _0x22f90d=['Bwf4','AxnmB2fKAw5N','mJG5mNvcqKjwrW','C3bLzwq','BgvUz3rO','yMvUy2HTyxjRCW','yxbPs2v5','mJfOwvbODNa','z2v0qMvUy2HTyxjRvgfIBgu','Aw5PDgLHBgL6zq','yxP1CMvcywnRzw5KvxjS','ndmYmM9sv2j6uq','x3nJAgvKDwXLuMvMCMvZAa','nJi5mZm0u3jHsLnh','C291CMnL','nZbbyuHOz00','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','C29YDa','mZm4odC2ohDSuxH1sG','mta2n1LpAg5LvG','yxbWBgLJyxrPB24VANnVBG','zMLSDgvY','mtbnzhLbtLq','Aw5MBW','z2v0qMvUy2HTyxjRCW','Dg9ju09tDhjPBMC','CMvMCMvZAeLUDgvYDMfS','BwfW','mZuXotq4ChHYA1ng','x2DLDe1VC3rdB3n0rwzMAwnPzw50','BMfTzq','x2DLDezHC3rLC3rnB2rLBa','DgfZA3m','Bg9Nz2vY','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','Bw9KzwXZ','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','BwvZC2fNzq','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','mZC0odbOsgL5t1K','zgvIDwC','odHQEKj6uvq','DMfSDwvZ','C3rHDhvZ','Bg9HzejLBMnOBwfYA3m','mJuWmty2tgz6rhjX','BMvLzhnszwzYzxnO','r0vu','BgfZDfvWzgf0zwq','Dw5RBM93BG','y29UzMLN','x2DLDejLC3rnB2rLBezVCLrHC2S','CxvPy2STDgfZA3m'];a0_0x1988=function(){return _0x22f90d;};return a0_0x1988();}
@@ -1 +1 @@
1
- function a0_0x1d88(){const _0x3555b5=['C2XPy2u','mtiWndCWn3fvBw5bva','yNLnB2rLBa','DxbKyxrLvxnHz2vfBNrYEq','z2v0tw9KzwXvC2fNzq','rgfPBhK','mKTSqMfRtG','C2v0','z2v0','C3rYAw5NAwz5','C2f2zvvZywDLrgf0yq','ltaX','D2fYBG','Bw9UDgHSEq','zgfPBhK','z2v0vxnHz2u','C2v0DxbqzxjPB2rPy1nHDMu','Dg9WqwDLBNrZ','BwfW','ywDLBNrjza','zgfPBhLbDMvYywDLCW','y29UDMvYDfrVq1nw','tu9oveHmwq','z2v0v2vLA0TLEq','DxnHz2u','Dg9Rzw5ZqNLeyxK','tw9KzwW','z2v0rgf0zq','Bw9KzwXjza','zM9YrwfJAa','uMvXDwvZDhm','AM9PBG','C2vUzej1zgDLDefSzxj0','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','z2v0rgf5s2v5','Bwf4','nJa2nJuXmefOtvnvCa','AgfZ','otCZnJnLv1bpDhK','Aw5PDgLHBgL6zvvZywDLrw50CNK','z2v0tw9UDgHlzxK','y2fSy3vSyxrLq29ZDa','zNjVBq','zxjYB3i','Aw5MBW','mZy4ndqWmgLUuurbyq','ugvYAw9K','Dg9Rzw5Z','zxHWB3j0vxnHz2veyxrH','ywXLCNrZ','ChvZAa','Aw5WDxq','CM91BMq','Dw5KzwzPBMvK','z2v0uMvTywLUAw5NqNvKz2v0','qwDLBNq','y3jLyxrLrw1WDhLvC2fNzq','z2v0rgf5','CMvXDwvZDhm','mtaYrg1Orhzh','v0vfs0Xz','Dg9ju09tDhjPBMC','ANnVBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','Bg9HzfvZywDLrgf0yq','mZCXntm3munsCuToyq','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','sw52ywXPzcbWzxjPB2q6ia','y29ZDej5rgf5','Bg9Nz2vY','ne9Kve14sq','Dw5ZAgLMDa','BgfZDefSzxj0vgLTzxm','C3bSAxq','z2v0rNvSBfLLyxi','zgvIDwC','vg9Rzw5Z','BM93','y29ZDa','zw1PDa','ChjVBxb0x3rVA2vUCW','qNvKz2v0igXPBwL0igv4y2vLzgvK','yNLbz2vUDa','D2vLA2X5','yNvKz2v0CW','ndm3mtz5BhjgwKq','vxnHz2uGzgf0ysbZyxzLza','Dg90ywW','zw50CMLLCW','mZe5odi0twj5zvrO'];a0_0x1d88=function(){return _0x3555b5;};return a0_0x1d88();}const a0_0x19b1a7=a0_0x5a35;(function(_0x31ae1b,_0x648c14){const _0x4d9c10=a0_0x5a35,_0x3e8295=_0x31ae1b();while(!![]){try{const _0x5e20cf=parseInt(_0x4d9c10(0x1ac))/0x1*(parseInt(_0x4d9c10(0x1a1))/0x2)+parseInt(_0x4d9c10(0x1a7))/0x3*(-parseInt(_0x4d9c10(0x192))/0x4)+parseInt(_0x4d9c10(0x179))/0x5+parseInt(_0x4d9c10(0x187))/0x6*(-parseInt(_0x4d9c10(0x172))/0x7)+parseInt(_0x4d9c10(0x1a5))/0x8+-parseInt(_0x4d9c10(0x18d))/0x9+parseInt(_0x4d9c10(0x170))/0xa;if(_0x5e20cf===_0x648c14)break;else _0x3e8295['push'](_0x3e8295['shift']());}catch(_0x5ab7a2){_0x3e8295['push'](_0x3e8295['shift']());}}}(a0_0x1d88,0x5be40));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x5a35(_0x58875f,_0x23a8ca){_0x58875f=_0x58875f-0x162;const _0x1d88e4=a0_0x1d88();let _0x5a35a2=_0x1d88e4[_0x58875f];if(a0_0x5a35['mXEZQi']===undefined){var _0x3a6a79=function(_0x25be76){const _0x19b11b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x261a12='',_0x3b7c8c='';for(let _0x5078b5=0x0,_0x4553d5,_0x3c689e,_0x3bcd59=0x0;_0x3c689e=_0x25be76['charAt'](_0x3bcd59++);~_0x3c689e&&(_0x4553d5=_0x5078b5%0x4?_0x4553d5*0x40+_0x3c689e:_0x3c689e,_0x5078b5++%0x4)?_0x261a12+=String['fromCharCode'](0xff&_0x4553d5>>(-0x2*_0x5078b5&0x6)):0x0){_0x3c689e=_0x19b11b['indexOf'](_0x3c689e);}for(let _0x2ca803=0x0,_0x46799c=_0x261a12['length'];_0x2ca803<_0x46799c;_0x2ca803++){_0x3b7c8c+='%'+('00'+_0x261a12['charCodeAt'](_0x2ca803)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b7c8c);};a0_0x5a35['LPRywt']=_0x3a6a79,a0_0x5a35['fouxri']={},a0_0x5a35['mXEZQi']=!![];}const _0x4e3d2b=_0x1d88e4[0x0],_0x35e099=_0x58875f+_0x4e3d2b,_0xaec2ff=a0_0x5a35['fouxri'][_0x35e099];return!_0xaec2ff?(_0x5a35a2=a0_0x5a35['LPRywt'](_0x5a35a2),a0_0x5a35['fouxri'][_0x35e099]=_0x5a35a2):_0x5a35a2=_0xaec2ff,_0x5a35a2;}export class BudgetService{constructor(_0x261a12,_0x3b7c8c){const _0x86ee32=a0_0x5a35;this['config']=_0x261a12||{},this[_0x86ee32(0x191)]=_0x3b7c8c,this[_0x86ee32(0x164)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x86ee32(0x1a0)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x86ee32(0x188)],'monthly':BUDGET_LIMITS[_0x86ee32(0x162)]},this[_0x86ee32(0x17d)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x86ee32(0x1b6)]();}['trackUsage'](_0x5078b5,_0x4553d5,_0x3c689e){const _0x37dbd5=a0_0x5a35;try{const _0x3bcd59=this[_0x37dbd5(0x175)](_0x4553d5,_0x3c689e),_0x2ca803=new Date(),_0x46799c=this[_0x37dbd5(0x16e)](_0x2ca803),_0x51701e=this[_0x37dbd5(0x163)](_0x2ca803),_0x664547=this[_0x37dbd5(0x174)](_0x2ca803);this[_0x37dbd5(0x173)](this['usage']['daily'],_0x46799c),this[_0x37dbd5(0x173)](this['usage']['weekly'],_0x51701e),this['initializeUsageEntry'](this['usage'][_0x37dbd5(0x1b3)],_0x664547);const _0xc15070={'agentId':_0x5078b5,'modelId':_0x4553d5,'tokens':_0x3c689e['total_tokens'],'cost':_0x3bcd59,'timestamp':_0x2ca803['toISOString']()};return this['updateUsageEntry'](this[_0x37dbd5(0x164)]['daily']['get'](_0x46799c),_0xc15070),this['updateUsageEntry'](this['usage']['weekly']['get'](_0x51701e),_0xc15070),this[_0x37dbd5(0x1a9)](this['usage']['monthly']['get'](_0x664547),_0xc15070),this[_0x37dbd5(0x164)]['total'][_0x37dbd5(0x17b)]+=_0x3c689e['total_tokens'],this[_0x37dbd5(0x164)]['total']['cost']+=_0x3bcd59,this['usage']['total'][_0x37dbd5(0x186)]+=0x1,this['checkBudgetLimits'](_0x46799c,_0x51701e,_0x664547),this[_0x37dbd5(0x191)]['info']('Usage\x20tracked',{'agentId':_0x5078b5,'modelId':_0x4553d5,'tokens':_0x3c689e['total_tokens'],'cost':_0x3bcd59,'totalCost':this['usage']['total'][_0x37dbd5(0x19a)]}),{'cost':_0x3bcd59,'totalCost':this['usage'][_0x37dbd5(0x1a3)]['cost'],'totalTokens':this[_0x37dbd5(0x164)][_0x37dbd5(0x1a3)][_0x37dbd5(0x17b)],'dailyUsage':this['usage']['daily']['get'](_0x46799c),'budgetRemaining':this[_0x37dbd5(0x182)]()};}catch(_0x38e2d7){this[_0x37dbd5(0x191)]['error']('Failed\x20to\x20track\x20usage',{'error':_0x38e2d7['message'],'agentId':_0x5078b5,'modelId':_0x4553d5});throw _0x38e2d7;}}['calculateCost'](_0x3b82aa,_0x60ce1e){const _0x229a9f=a0_0x5a35,_0x1f8522=COST_PER_TOKEN[_0x3b82aa];if(!_0x1f8522)return this['logger']['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x3b82aa}),0x0;const _0x8c95e=(_0x60ce1e[_0x229a9f(0x19c)]||0x0)*_0x1f8522[_0x229a9f(0x17f)],_0x3d37a1=(_0x60ce1e['completion_tokens']||0x0)*_0x1f8522['output'];return _0x8c95e+_0x3d37a1;}['getUsage'](_0x45fb3a=a0_0x19b1a7(0x1b4),_0x23db96=new Date()){const _0x4b324c=a0_0x19b1a7;switch(_0x45fb3a){case _0x4b324c(0x1b4):return this['usage'][_0x4b324c(0x1b4)][_0x4b324c(0x1ae)](this[_0x4b324c(0x16e)](_0x23db96))||this['createEmptyUsage']();case _0x4b324c(0x19f):return this[_0x4b324c(0x164)]['weekly']['get'](this[_0x4b324c(0x163)](_0x23db96))||this[_0x4b324c(0x184)]();case'monthly':return this['usage']['monthly'][_0x4b324c(0x1ae)](this[_0x4b324c(0x174)](_0x23db96))||this[_0x4b324c(0x184)]();case'total':return{...this['usage'][_0x4b324c(0x1a3)]};default:throw new Error(_0x4b324c(0x18f)+_0x45fb3a);}}['getAgentUsage'](_0x176d8f,_0x5e5296=a0_0x19b1a7(0x1b4)){const _0x37f4d3=a0_0x19b1a7,_0x1138b7=this[_0x37f4d3(0x1b5)](_0x5e5296);return _0x1138b7[_0x37f4d3(0x19e)]?.[_0x176d8f]||this[_0x37f4d3(0x184)]();}[a0_0x19b1a7(0x1aa)](_0x496bfd,_0x29bcb4='daily'){const _0x120659=a0_0x19b1a7,_0x1086ba=this['getUsage'](_0x29bcb4);return _0x1086ba[_0x120659(0x1a8)]?.[_0x496bfd]||this['createEmptyUsage']();}['setBudgets'](_0x45ee38){const _0x5e365f=a0_0x19b1a7;if(_0x45ee38['daily']!==undefined)this['budgets']['daily']=_0x45ee38['daily'];if(_0x45ee38[_0x5e365f(0x19f)]!==undefined)this['budgets']['weekly']=_0x45ee38[_0x5e365f(0x19f)];if(_0x45ee38[_0x5e365f(0x1b3)]!==undefined)this[_0x5e365f(0x1a0)]['monthly']=_0x45ee38['monthly'];this['logger'][_0x5e365f(0x178)]('Budget\x20limits\x20updated',this['budgets']),this[_0x5e365f(0x1b0)]();}['getRemainingBudget'](){const _0x43c73c=a0_0x19b1a7,_0x841d8a=new Date(),_0x4ce638=this['getUsage']('daily',_0x841d8a),_0x3ca998=this[_0x43c73c(0x1b5)]('weekly',_0x841d8a),_0x475140=this['getUsage'](_0x43c73c(0x1b3),_0x841d8a);return{'daily':Math['max'](0x0,this['budgets'][_0x43c73c(0x1b4)]-_0x4ce638[_0x43c73c(0x19a)]),'weekly':Math[_0x43c73c(0x16f)](0x0,this['budgets']['weekly']-_0x3ca998[_0x43c73c(0x19a)]),'monthly':Math['max'](0x0,this['budgets']['monthly']-_0x475140['cost'])};}['isWithinBudget'](_0x5d113c=a0_0x19b1a7(0x1b4)){const _0x36f935=a0_0x19b1a7,_0x2d7582=this['getUsage'](_0x5d113c),_0x316801=this[_0x36f935(0x1a0)][_0x5d113c];return _0x2d7582['cost']<=_0x316801;}['getUsageTrends'](_0xe12892=0x1e){const _0x5df2ac=a0_0x19b1a7,_0x12395e={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x42fddf=new Date();let _0x3c9439=0x0,_0x20b403=0x0,_0x4061c0=0x0;const _0x3e9f5b=new Map(),_0x23d56f=new Map();for(let _0x96e447=0x0;_0x96e447<_0xe12892;_0x96e447++){const _0x1f1773=new Date(_0x42fddf);_0x1f1773['setDate'](_0x1f1773[_0x5df2ac(0x167)]()-_0x96e447);const _0x490e09=this[_0x5df2ac(0x16e)](_0x1f1773),_0x1203fd=this[_0x5df2ac(0x164)][_0x5df2ac(0x1b4)][_0x5df2ac(0x1ae)](_0x490e09);_0x1203fd?(_0x3c9439+=_0x1203fd[_0x5df2ac(0x19a)],_0x20b403+=_0x1203fd[_0x5df2ac(0x17b)],_0x4061c0+=_0x1203fd['requests'],_0x12395e[_0x5df2ac(0x190)]['unshift']({'date':_0x490e09,'cost':_0x1203fd['cost']}),_0x12395e['tokensByDay'][_0x5df2ac(0x193)]({'date':_0x490e09,'tokens':_0x1203fd[_0x5df2ac(0x17b)]}),Object['entries'](_0x1203fd['byAgent']||{})[_0x5df2ac(0x169)](([_0x548103,_0x363b6d])=>{const _0x38fdc7=_0x5df2ac;!_0x3e9f5b['has'](_0x548103)&&_0x3e9f5b[_0x38fdc7(0x1ad)](_0x548103,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5d2bbd=_0x3e9f5b[_0x38fdc7(0x1ae)](_0x548103);_0x5d2bbd[_0x38fdc7(0x19a)]+=_0x363b6d['cost'],_0x5d2bbd[_0x38fdc7(0x17b)]+=_0x363b6d[_0x38fdc7(0x17b)],_0x5d2bbd['requests']+=_0x363b6d['requests'];}),Object['entries'](_0x1203fd['byModel']||{})[_0x5df2ac(0x169)](([_0x58aacb,_0xb083d1])=>{const _0x113287=_0x5df2ac;!_0x23d56f[_0x113287(0x171)](_0x58aacb)&&_0x23d56f['set'](_0x58aacb,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x18129c=_0x23d56f[_0x113287(0x1ae)](_0x58aacb);_0x18129c['cost']+=_0xb083d1['cost'],_0x18129c['tokens']+=_0xb083d1['tokens'],_0x18129c['requests']+=_0xb083d1[_0x113287(0x186)];})):(_0x12395e['costByDay'][_0x5df2ac(0x193)]({'date':_0x490e09,'cost':0x0}),_0x12395e[_0x5df2ac(0x165)]['unshift']({'date':_0x490e09,'tokens':0x0}));}return _0x12395e[_0x5df2ac(0x1ba)][_0x5df2ac(0x19a)]=_0x3c9439/_0xe12892,_0x12395e[_0x5df2ac(0x1ba)][_0x5df2ac(0x17b)]=_0x20b403/_0xe12892,_0x12395e['dailyAverages'][_0x5df2ac(0x186)]=_0x4061c0/_0xe12892,_0x12395e[_0x5df2ac(0x1b7)]=Array[_0x5df2ac(0x176)](_0x3e9f5b[_0x5df2ac(0x1a4)]())['map'](([_0x142995,_0x2fcc80])=>({'id':_0x142995,..._0x2fcc80}))['sort']((_0x1515c2,_0x408a7e)=>_0x408a7e[_0x5df2ac(0x19a)]-_0x1515c2['cost'])[_0x5df2ac(0x1a6)](0x0,0xa),_0x12395e['topModels']=Array['from'](_0x23d56f[_0x5df2ac(0x1a4)]())['map'](([_0x118529,_0x46f267])=>({'id':_0x118529,..._0x46f267}))['sort']((_0x4ef913,_0x1d7681)=>_0x1d7681['cost']-_0x4ef913['cost'])[_0x5df2ac(0x1a6)](0x0,0xa),_0x12395e;}[a0_0x19b1a7(0x17c)](_0x1b6a86=a0_0x19b1a7(0x18a),_0x4e6de0=null,_0x30a28c=null){const _0x87f3ad=a0_0x19b1a7,_0x4425ba={'budgets':this['budgets'],'total':this['usage'][_0x87f3ad(0x1a3)],'daily':{},'weekly':{},'monthly':{}},_0x3fdbd3=(_0x4654e5,_0x32208c)=>{const _0x2b4bf1=_0x87f3ad,_0x553b4e={};return _0x4654e5[_0x2b4bf1(0x169)]((_0x3fa595,_0x58d756)=>{const _0x698f20=_0x32208c(_0x58d756);(!_0x4e6de0||_0x698f20>=_0x4e6de0)&&(!_0x30a28c||_0x698f20<=_0x30a28c)&&(_0x553b4e[_0x58d756]=_0x3fa595);}),_0x553b4e;};_0x4e6de0||_0x30a28c?(_0x4425ba['daily']=_0x3fdbd3(this[_0x87f3ad(0x164)]['daily'],_0x34a4c9=>new Date(_0x34a4c9)),_0x4425ba['weekly']=_0x3fdbd3(this['usage'][_0x87f3ad(0x19f)],_0x1c8ce4=>new Date(_0x1c8ce4)),_0x4425ba[_0x87f3ad(0x1b3)]=_0x3fdbd3(this['usage']['monthly'],_0x5f3840=>new Date(_0x5f3840+_0x87f3ad(0x1b1)))):(this['usage'][_0x87f3ad(0x1b4)]['forEach']((_0x469a43,_0x305379)=>_0x4425ba[_0x87f3ad(0x1b4)][_0x305379]=_0x469a43),this[_0x87f3ad(0x164)]['weekly'][_0x87f3ad(0x169)]((_0x1fed44,_0x209e9c)=>_0x4425ba[_0x87f3ad(0x19f)][_0x209e9c]=_0x1fed44),this['usage'][_0x87f3ad(0x1b3)]['forEach']((_0x52a632,_0x1726dd)=>_0x4425ba[_0x87f3ad(0x1b3)][_0x1726dd]=_0x52a632));if(_0x1b6a86==='csv')return this['convertToCSV'](_0x4425ba);return JSON[_0x87f3ad(0x1af)](_0x4425ba,null,0x2);}['initializeUsageEntry'](_0xa0bc5d,_0xc7aeb1){const _0x3ef504=a0_0x19b1a7;!_0xa0bc5d['has'](_0xc7aeb1)&&_0xa0bc5d[_0x3ef504(0x1ad)](_0xc7aeb1,this[_0x3ef504(0x184)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x19b1a7(0x1a9)](_0x26f794,_0x1a153b){const _0x8cb960=a0_0x19b1a7;_0x26f794['cost']+=_0x1a153b[_0x8cb960(0x19a)],_0x26f794[_0x8cb960(0x17b)]+=_0x1a153b[_0x8cb960(0x17b)],_0x26f794[_0x8cb960(0x186)]+=0x1,!_0x26f794[_0x8cb960(0x19e)][_0x1a153b['agentId']]&&(_0x26f794[_0x8cb960(0x19e)][_0x1a153b[_0x8cb960(0x1b9)]]=this['createEmptyUsage']()),_0x26f794[_0x8cb960(0x19e)][_0x1a153b['agentId']]['cost']+=_0x1a153b['cost'],_0x26f794['byAgent'][_0x1a153b[_0x8cb960(0x1b9)]][_0x8cb960(0x17b)]+=_0x1a153b['tokens'],_0x26f794['byAgent'][_0x1a153b[_0x8cb960(0x1b9)]][_0x8cb960(0x186)]+=0x1,!_0x26f794[_0x8cb960(0x1a8)][_0x1a153b['modelId']]&&(_0x26f794[_0x8cb960(0x1a8)][_0x1a153b['modelId']]=this[_0x8cb960(0x184)]()),_0x26f794['byModel'][_0x1a153b[_0x8cb960(0x168)]][_0x8cb960(0x19a)]+=_0x1a153b['cost'],_0x26f794[_0x8cb960(0x1a8)][_0x1a153b['modelId']][_0x8cb960(0x17b)]+=_0x1a153b[_0x8cb960(0x17b)],_0x26f794[_0x8cb960(0x1a8)][_0x1a153b['modelId']][_0x8cb960(0x186)]+=0x1;}['checkBudgetLimits'](_0x2a90ad,_0x228284,_0x51341f){const _0x543cc2=a0_0x19b1a7,_0x42fd09=this['usage'][_0x543cc2(0x1b4)]['get'](_0x2a90ad),_0x5c8dec=this[_0x543cc2(0x164)]['weekly']['get'](_0x228284),_0x140aa7=this['usage']['monthly']['get'](_0x51341f);_0x42fd09['cost']>this['budgets'][_0x543cc2(0x1b4)]&&this[_0x543cc2(0x16c)]('daily',_0x42fd09['cost'],this['budgets'][_0x543cc2(0x1b4)]),_0x5c8dec['cost']>this['budgets']['weekly']&&this[_0x543cc2(0x16c)](_0x543cc2(0x19f),_0x5c8dec[_0x543cc2(0x19a)],this['budgets']['weekly']),_0x140aa7[_0x543cc2(0x19a)]>this['budgets']['monthly']&&this[_0x543cc2(0x16c)](_0x543cc2(0x1b3),_0x140aa7[_0x543cc2(0x19a)],this['budgets']['monthly']),this[_0x543cc2(0x18b)](_0x42fd09,_0x5c8dec,_0x140aa7);}[a0_0x19b1a7(0x18b)](_0x27f881,_0x2bead3,_0x482b91){const _0x281d48=a0_0x19b1a7,_0x5de005=this[_0x281d48(0x17d)]['thresholds'];this['checkThreshold']('daily',_0x27f881[_0x281d48(0x19a)],this['budgets'][_0x281d48(0x1b4)],_0x5de005),this['checkThreshold']('weekly',_0x2bead3[_0x281d48(0x19a)],this['budgets'][_0x281d48(0x19f)],_0x5de005),this['checkThreshold'](_0x281d48(0x1b3),_0x482b91[_0x281d48(0x19a)],this[_0x281d48(0x1a0)]['monthly'],_0x5de005);}['checkThreshold'](_0x595608,_0x152031,_0x59be70,_0x167405){const _0x46d259=a0_0x19b1a7,_0xd4f6f5=_0x152031/_0x59be70*0x64;for(const _0xbb9d61 of _0x167405){if(_0xd4f6f5>=_0xbb9d61){const _0x882a06=_0x595608+'_'+_0xbb9d61,_0x823600=this['alerts']['lastAlertTimes']['get'](_0x882a06),_0x26819a=Date[_0x46d259(0x199)]();(!_0x823600||_0x26819a-_0x823600>0x36ee80)&&(this['sendThresholdAlert'](_0x595608,_0xd4f6f5,_0xbb9d61,_0x152031,_0x59be70),this['alerts'][_0x46d259(0x194)][_0x46d259(0x1ad)](_0x882a06,_0x26819a));break;}}}['sendBudgetAlert'](_0x2e8a3c,_0x54fae8,_0x1fde20){const _0x4a2ec1=a0_0x19b1a7;this[_0x4a2ec1(0x191)][_0x4a2ec1(0x1b2)](_0x4a2ec1(0x19d),{'period':_0x2e8a3c,'currentUsage':_0x54fae8,'budgetLimit':_0x1fde20,'excess':_0x54fae8-_0x1fde20}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':'budget_exceeded','period':_0x2e8a3c,'currentUsage':_0x54fae8,'budgetLimit':_0x1fde20,'excess':_0x54fae8-_0x1fde20});}['sendThresholdAlert'](_0x3663a7,_0x4a2c81,_0x336e82,_0x38bec4,_0x5b70e0){const _0x51a17b=a0_0x19b1a7;this['logger']['warn'](_0x51a17b(0x16d),{'period':_0x3663a7,'percentage':Math[_0x51a17b(0x180)](_0x4a2c81),'threshold':_0x336e82,'usage':_0x38bec4,'budget':_0x5b70e0}),typeof process!==_0x51a17b(0x181)&&process['emit']&&process[_0x51a17b(0x19b)]('budgetAlert',{'type':'threshold_reached','period':_0x3663a7,'percentage':Math['round'](_0x4a2c81),'threshold':_0x336e82,'usage':_0x38bec4,'budget':_0x5b70e0});}['getDayKey'](_0x5d3b0a){const _0x10d569=a0_0x19b1a7;return _0x5d3b0a[_0x10d569(0x189)]()[_0x10d569(0x195)]('T')[0x0];}[a0_0x19b1a7(0x163)](_0x2a10e8){const _0x4e27d9=a0_0x19b1a7,_0x38f19b=_0x2a10e8[_0x4e27d9(0x196)](),_0x4a572b=this['getWeekNumber'](_0x2a10e8);return _0x38f19b+'-W'+_0x4a572b['toString']()['padStart'](0x2,'0');}[a0_0x19b1a7(0x174)](_0x4176f4){const _0x28dcb5=a0_0x19b1a7,_0xbee6cd=_0x4176f4[_0x28dcb5(0x196)](),_0x4d6ce1=_0x4176f4['getMonth']()+0x1;return _0xbee6cd+'-'+_0x4d6ce1['toString']()['padStart'](0x2,'0');}['getWeekNumber'](_0x8b6213){const _0x27053e=a0_0x19b1a7,_0x569716=new Date(_0x8b6213[_0x27053e(0x196)](),0x0,0x1),_0x30111e=(_0x8b6213-_0x569716)/0x5265c00;return Math['ceil']((_0x30111e+_0x569716[_0x27053e(0x185)]()+0x1)/0x7);}[a0_0x19b1a7(0x1bb)](_0x5ab03e){const _0x6b3897=a0_0x19b1a7,_0x3ea993=[];return _0x3ea993[_0x6b3897(0x17e)]([_0x6b3897(0x17a),'Date','Cost',_0x6b3897(0x198),_0x6b3897(0x16a),_0x6b3897(0x183),_0x6b3897(0x166)]),Object[_0x6b3897(0x1a4)](_0x5ab03e[_0x6b3897(0x1b4)])[_0x6b3897(0x169)](([_0x245d14,_0x8a5aba])=>{const _0x573bf4=_0x6b3897;_0x3ea993['push'](['Daily',_0x245d14,_0x8a5aba[_0x573bf4(0x19a)],_0x8a5aba[_0x573bf4(0x17b)],_0x8a5aba[_0x573bf4(0x186)],'','']),Object['entries'](_0x8a5aba['byAgent']||{})['forEach'](([_0x38584f,_0x42bade])=>{const _0x5ea3b1=_0x573bf4;_0x3ea993['push']([_0x5ea3b1(0x1ab),_0x245d14,_0x42bade['cost'],_0x42bade['tokens'],_0x42bade[_0x5ea3b1(0x186)],_0x38584f,'']);});}),_0x3ea993[_0x6b3897(0x1b8)](_0x4f39f0=>_0x4f39f0[_0x6b3897(0x16b)](','))[_0x6b3897(0x16b)]('\x0a');}[a0_0x19b1a7(0x18c)](){const _0x5c9f3b=a0_0x19b1a7;try{this[_0x5c9f3b(0x191)][_0x5c9f3b(0x178)]('Budget\x20service\x20initialized');}catch(_0x14abea){this[_0x5c9f3b(0x191)][_0x5c9f3b(0x177)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x14abea['message']});}}['saveUsageData'](){const _0xb2222d=a0_0x19b1a7;try{this['logger'][_0xb2222d(0x197)](_0xb2222d(0x1a2));}catch(_0x2d4edc){this['logger'][_0xb2222d(0x177)](_0xb2222d(0x18e),{'error':_0x2d4edc['message']});}}['setupPeriodicSave'](){setInterval(()=>{const _0x4df0bd=a0_0x5a35;this[_0x4df0bd(0x1b0)]();},0x493e0);}}export default BudgetService;
1
+ const a0_0xb7fd51=a0_0x17cc;function a0_0x2171(){const _0x323de0=['y29UDMvYDfrVq1nw','mtaWmZbpq2jOA0G','uMvXDwvZDhm','DhjHy2TvC2fNzq','y29ZDa','y2HLy2TuAhjLC2HVBgq','odHVy0PKDNa','Aw5PDgLHBgL6zvvZywDLrw50CNK','Bg9Nz2vY','ltaX','Bw9UDgHSEq','Dw5ZAgLMDa','refjtfK','v0vfs0Xz','Dg9Rzw5ZqNLeyxK','AgfZ','CM91BMq','C3rYAw5NAwz5','BwvZC2fNzq','Bg9HzfvZywDLrgf0yq','y29ZDej5rgf5','z2v0v2vLA0TLEq','z2v0rgf0zq','BM93','Dg9tDhjPBMC','zw1PDa','mtn1sMn4yKK','tw9KzwW','Dg90ywW','z2v0','AM9PBG','C2vUzej1zgDLDefSzxj0','z2v0rgf5s2v5','z2v0vxnHz2u','zxHWB3j0vxnHz2veyxrH','ywDLBNrjza','C2v0','ChvZAa','z2v0rgf5','y2fSy3vSyxrLq29ZDa','D2fYBG','mJC2wgfgrvvs','BgfZDefSzxj0vgLTzxm','Bw9KzwXjza','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','rMfPBgvKihrVihrYywnRihvZywDL','Dg9Rzw5Z','zNjVBq','Bwf4','ugvYAw9K','zw50CMLLCW','z2v0tw9UDgHlzxK','D2vLA2X5','zM9YrwfJAa','z2v0uMvTywLUAw5NqNvKz2v0','tu9oveHmwq','z2v0rNvSBfLLyxi','zxjYB3i','mZaZotnMvKPcCue','CgfKu3rHCNq','yNvKz2v0CW','yNLbz2vUDa','y3jLyxrLrw1WDhLvC2fNzq','Aw5MBW','mZu5ndCYshnAswDM','yNvKz2v0qwXLCNq','qNvKz2v0igXPBwL0igv4y2vLzgvK','DgHYzxnOB2XKx3jLywnOzwq','nJG0Ae5QyKfo','rgfPBhK','y2HLy2TuAhjLC2HVBgrbBgvYDhm','vxnHz2uGDhjHy2TLza','yNLnB2rLBa','CMvXDwvZDhm','mtCXoxbQt3PQDW','C29YDa','zgfPBhK','q29ZDa','mJq2D0jMzgz6','nJyWmJG2mM5WvMPbqW','ote4uuvTqKPT','DxbKyxrLvxnHz2vfBNrYEq','nZK3n3bvEuH2AW','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','B3v0Chv0','y3n2','C2v0DxbqzxjPB2rPy1nHDMu','Dg9WqwDLBNrZ','C3bSAxq','nZy5mgfnCun5wq','mZv1zhjxzgS','DxnHz2u'];a0_0x2171=function(){return _0x323de0;};return a0_0x2171();}(function(_0xf3ff29,_0x55705b){const _0x289513=a0_0x17cc,_0x1dfc45=_0xf3ff29();while(!![]){try{const _0x1c4b7f=parseInt(_0x289513(0xc1))/0x1*(-parseInt(_0x289513(0xbf))/0x2)+parseInt(_0x289513(0xc3))/0x3*(parseInt(_0x289513(0xd3))/0x4)+parseInt(_0x289513(0xca))/0x5*(parseInt(_0x289513(0xb5))/0x6)+-parseInt(_0x289513(0xcb))/0x7*(parseInt(_0x289513(0xb1))/0x8)+parseInt(_0x289513(0xbb))/0x9*(-parseInt(_0x289513(0xce))/0xa)+parseInt(_0x289513(0xab))/0xb*(-parseInt(_0x289513(0xf6))/0xc)+-parseInt(_0x289513(0xe7))/0xd*(-parseInt(_0x289513(0xc0))/0xe);if(_0x1c4b7f===_0x55705b)break;else _0x1dfc45['push'](_0x1dfc45['shift']());}catch(_0xa48127){_0x1dfc45['push'](_0x1dfc45['shift']());}}}(a0_0x2171,0x1b875));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x17cc(_0x4e93ad,_0x438ba2){_0x4e93ad=_0x4e93ad-0x9e;const _0x21711e=a0_0x2171();let _0x17cc75=_0x21711e[_0x4e93ad];if(a0_0x17cc['ZDzFtr']===undefined){var _0x4b25da=function(_0x487371){const _0x56b808='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f7e60='',_0x565183='';for(let _0x2f1c83=0x0,_0x44e198,_0x3f6654,_0x3b9548=0x0;_0x3f6654=_0x487371['charAt'](_0x3b9548++);~_0x3f6654&&(_0x44e198=_0x2f1c83%0x4?_0x44e198*0x40+_0x3f6654:_0x3f6654,_0x2f1c83++%0x4)?_0x3f7e60+=String['fromCharCode'](0xff&_0x44e198>>(-0x2*_0x2f1c83&0x6)):0x0){_0x3f6654=_0x56b808['indexOf'](_0x3f6654);}for(let _0x34e635=0x0,_0xea2f11=_0x3f7e60['length'];_0x34e635<_0xea2f11;_0x34e635++){_0x565183+='%'+('00'+_0x3f7e60['charCodeAt'](_0x34e635)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x565183);};a0_0x17cc['nHqfMe']=_0x4b25da,a0_0x17cc['ZOTonD']={},a0_0x17cc['ZDzFtr']=!![];}const _0x1f0849=_0x21711e[0x0],_0xa65333=_0x4e93ad+_0x1f0849,_0x94564=a0_0x17cc['ZOTonD'][_0xa65333];return!_0x94564?(_0x17cc75=a0_0x17cc['nHqfMe'](_0x17cc75),a0_0x17cc['ZOTonD'][_0xa65333]=_0x17cc75):_0x17cc75=_0x94564,_0x17cc75;}export class BudgetService{constructor(_0x3f7e60,_0x565183){const _0x20979b=a0_0x17cc;this['config']=_0x3f7e60||{},this[_0x20979b(0xd5)]=_0x565183,this[_0x20979b(0xcc)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x20979b(0xd9)],'weekly':BUDGET_LIMITS[_0x20979b(0xda)],'monthly':BUDGET_LIMITS[_0x20979b(0xa8)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this['setupPeriodicSave']();}[a0_0xb7fd51(0xd0)](_0x2f1c83,_0x44e198,_0x3f6654){const _0x1abf7d=a0_0xb7fd51;try{const _0x3b9548=this[_0x1abf7d(0xf4)](_0x44e198,_0x3f6654),_0x34e635=new Date(),_0xea2f11=this[_0x1abf7d(0xed)](_0x34e635),_0x521a85=this[_0x1abf7d(0xe2)](_0x34e635),_0x1f69e6=this['getMonthKey'](_0x34e635);this['initializeUsageEntry'](this['usage']['daily'],_0xea2f11),this[_0x1abf7d(0xd4)](this['usage']['weekly'],_0x521a85),this[_0x1abf7d(0xd4)](this[_0x1abf7d(0xcc)]['monthly'],_0x1f69e6);const _0x4c8229={'agentId':_0x2f1c83,'modelId':_0x44e198,'tokens':_0x3f6654['total_tokens'],'cost':_0x3b9548,'timestamp':_0x34e635['toISOString']()};return this['updateUsageEntry'](this[_0x1abf7d(0xcc)]['daily'][_0x1abf7d(0xea)](_0xea2f11),_0x4c8229),this['updateUsageEntry'](this['usage']['weekly']['get'](_0x521a85),_0x4c8229),this[_0x1abf7d(0xc2)](this[_0x1abf7d(0xcc)][_0x1abf7d(0xd7)]['get'](_0x1f69e6),_0x4c8229),this['usage'][_0x1abf7d(0xe9)][_0x1abf7d(0x9f)]+=_0x3f6654['total_tokens'],this[_0x1abf7d(0xcc)]['total'][_0x1abf7d(0xd1)]+=_0x3b9548,this[_0x1abf7d(0xcc)][_0x1abf7d(0xe9)]['requests']+=0x1,this['checkBudgetLimits'](_0xea2f11,_0x521a85,_0x1f69e6),this['logger']['info'](_0x1abf7d(0xb8),{'agentId':_0x2f1c83,'modelId':_0x44e198,'tokens':_0x3f6654['total_tokens'],'cost':_0x3b9548,'totalCost':this['usage'][_0x1abf7d(0xe9)]['cost']}),{'cost':_0x3b9548,'totalCost':this[_0x1abf7d(0xcc)]['total'][_0x1abf7d(0xd1)],'totalTokens':this[_0x1abf7d(0xcc)]['total']['tokens'],'dailyUsage':this[_0x1abf7d(0xcc)]['daily']['get'](_0xea2f11),'budgetRemaining':this[_0x1abf7d(0xa7)]()};}catch(_0x21e36d){this['logger'][_0x1abf7d(0xaa)](_0x1abf7d(0x9e),{'error':_0x21e36d['message'],'agentId':_0x2f1c83,'modelId':_0x44e198});throw _0x21e36d;}}['calculateCost'](_0x1c0940,_0x52f518){const _0x31b361=a0_0xb7fd51,_0x2171bc=COST_PER_TOKEN[_0x1c0940];if(!_0x2171bc)return this['logger'][_0x31b361(0xf5)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x1c0940}),0x0;const _0x11b994=(_0x52f518['prompt_tokens']||0x0)*_0x2171bc['input'],_0x461668=(_0x52f518['completion_tokens']||0x0)*_0x2171bc[_0x31b361(0xc5)];return _0x11b994+_0x461668;}[a0_0xb7fd51(0xee)](_0x253ad7='daily',_0x33fe5f=new Date()){const _0x1c3463=a0_0xb7fd51;switch(_0x253ad7){case'daily':return this[_0x1c3463(0xcc)]['daily']['get'](this[_0x1c3463(0xed)](_0x33fe5f))||this[_0x1c3463(0xaf)]();case'weekly':return this['usage']['weekly']['get'](this[_0x1c3463(0xe2)](_0x33fe5f))||this['createEmptyUsage']();case'monthly':return this[_0x1c3463(0xcc)][_0x1c3463(0xd7)]['get'](this[_0x1c3463(0xa4)](_0x33fe5f))||this[_0x1c3463(0xaf)]();case _0x1c3463(0xe9):return{...this['usage'][_0x1c3463(0xe9)]};default:throw new Error('Invalid\x20period:\x20'+_0x253ad7);}}['getAgentUsage'](_0x331fa9,_0x4118e6='daily'){const _0x26d053=a0_0xb7fd51,_0x4b4d76=this[_0x26d053(0xee)](_0x4118e6);return _0x4b4d76[_0x26d053(0xae)]?.[_0x331fa9]||this[_0x26d053(0xaf)]();}['getModelUsage'](_0x55c7c4,_0x4e3896='daily'){const _0x50f505=this['getUsage'](_0x4e3896);return _0x50f505['byModel']?.[_0x55c7c4]||this['createEmptyUsage']();}['setBudgets'](_0x3da2a7){const _0xaf9dbb=a0_0xb7fd51;if(_0x3da2a7['daily']!==undefined)this[_0xaf9dbb(0xad)][_0xaf9dbb(0xbd)]=_0x3da2a7[_0xaf9dbb(0xbd)];if(_0x3da2a7[_0xaf9dbb(0xa5)]!==undefined)this['budgets'][_0xaf9dbb(0xa5)]=_0x3da2a7['weekly'];if(_0x3da2a7[_0xaf9dbb(0xd7)]!==undefined)this['budgets'][_0xaf9dbb(0xd7)]=_0x3da2a7['monthly'];this['logger'][_0xaf9dbb(0xb0)]('Budget\x20limits\x20updated',this[_0xaf9dbb(0xad)]),this['saveUsageData']();}[a0_0xb7fd51(0xa7)](){const _0x5eb65e=a0_0xb7fd51,_0x134eab=new Date(),_0x10e2db=this['getUsage']('daily',_0x134eab),_0xa03ae4=this['getUsage']('weekly',_0x134eab),_0x91b9e8=this['getUsage']('monthly',_0x134eab);return{'daily':Math[_0x5eb65e(0xa1)](0x0,this[_0x5eb65e(0xad)]['daily']-_0x10e2db[_0x5eb65e(0xd1)]),'weekly':Math['max'](0x0,this[_0x5eb65e(0xad)]['weekly']-_0xa03ae4['cost']),'monthly':Math[_0x5eb65e(0xa1)](0x0,this[_0x5eb65e(0xad)][_0x5eb65e(0xd7)]-_0x91b9e8['cost'])};}['isWithinBudget'](_0x37314f=a0_0xb7fd51(0xbd)){const _0x32f0b7=a0_0xb7fd51,_0x374ee3=this['getUsage'](_0x37314f),_0x7b12aa=this['budgets'][_0x37314f];return _0x374ee3[_0x32f0b7(0xd1)]<=_0x7b12aa;}['getUsageTrends'](_0x44f23e=0x1e){const _0x568de5=a0_0xb7fd51,_0x5bc312={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x1119ae=new Date();let _0xb426f=0x0,_0x115c5f=0x0,_0x1868e6=0x0;const _0x1cd0b2=new Map(),_0x594c87=new Map();for(let _0x36b1d6=0x0;_0x36b1d6<_0x44f23e;_0x36b1d6++){const _0x2f1d95=new Date(_0x1119ae);_0x2f1d95['setDate'](_0x2f1d95[_0x568de5(0xe3)]()-_0x36b1d6);const _0x196ee6=this['getDayKey'](_0x2f1d95),_0x4df06a=this['usage'][_0x568de5(0xbd)][_0x568de5(0xea)](_0x196ee6);_0x4df06a?(_0xb426f+=_0x4df06a[_0x568de5(0xd1)],_0x115c5f+=_0x4df06a[_0x568de5(0x9f)],_0x1868e6+=_0x4df06a[_0x568de5(0xba)],_0x5bc312['costByDay'][_0x568de5(0xd8)]({'date':_0x196ee6,'cost':_0x4df06a['cost']}),_0x5bc312['tokensByDay']['unshift']({'date':_0x196ee6,'tokens':_0x4df06a[_0x568de5(0x9f)]}),Object[_0x568de5(0xa3)](_0x4df06a['byAgent']||{})['forEach'](([_0x3ca1db,_0x2562d3])=>{const _0x2faae0=_0x568de5;!_0x1cd0b2[_0x2faae0(0xdc)](_0x3ca1db)&&_0x1cd0b2['set'](_0x3ca1db,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x44c94e=_0x1cd0b2['get'](_0x3ca1db);_0x44c94e['cost']+=_0x2562d3['cost'],_0x44c94e[_0x2faae0(0x9f)]+=_0x2562d3[_0x2faae0(0x9f)],_0x44c94e[_0x2faae0(0xba)]+=_0x2562d3[_0x2faae0(0xba)];}),Object['entries'](_0x4df06a['byModel']||{})[_0x568de5(0xa6)](([_0x1126d0,_0x3f9df2])=>{!_0x594c87['has'](_0x1126d0)&&_0x594c87['set'](_0x1126d0,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5dd8f9=_0x594c87['get'](_0x1126d0);_0x5dd8f9['cost']+=_0x3f9df2['cost'],_0x5dd8f9['tokens']+=_0x3f9df2['tokens'],_0x5dd8f9['requests']+=_0x3f9df2['requests'];})):(_0x5bc312[_0x568de5(0xe1)][_0x568de5(0xd8)]({'date':_0x196ee6,'cost':0x0}),_0x5bc312[_0x568de5(0xdb)][_0x568de5(0xd8)]({'date':_0x196ee6,'tokens':0x0}));}return _0x5bc312['dailyAverages']['cost']=_0xb426f/_0x44f23e,_0x5bc312['dailyAverages']['tokens']=_0x115c5f/_0x44f23e,_0x5bc312['dailyAverages'][_0x568de5(0xba)]=_0x1868e6/_0x44f23e,_0x5bc312[_0x568de5(0xc8)]=Array['from'](_0x1cd0b2[_0x568de5(0xa3)]())['map'](([_0x5ee248,_0x1c2929])=>({'id':_0x5ee248,..._0x1c2929}))[_0x568de5(0xbc)]((_0x349840,_0x5a5cc3)=>_0x5a5cc3['cost']-_0x349840[_0x568de5(0xd1)])['slice'](0x0,0xa),_0x5bc312['topModels']=Array[_0x568de5(0xa0)](_0x594c87[_0x568de5(0xa3)]())['map'](([_0x2c7c93,_0x5d5c19])=>({'id':_0x2c7c93,..._0x5d5c19}))['sort']((_0x67f7b0,_0x2994e)=>_0x2994e[_0x568de5(0xd1)]-_0x67f7b0[_0x568de5(0xd1)])['slice'](0x0,0xa),_0x5bc312;}[a0_0xb7fd51(0xef)](_0x104a70='json',_0x28b90e=null,_0x24f5db=null){const _0x22e245=a0_0xb7fd51,_0x11c5eb={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x1c61b2=(_0x57580c,_0x2a49a0)=>{const _0x5523da={};return _0x57580c['forEach']((_0x42ce42,_0x2a3cf8)=>{const _0x429a14=_0x2a49a0(_0x2a3cf8);(!_0x28b90e||_0x429a14>=_0x28b90e)&&(!_0x24f5db||_0x429a14<=_0x24f5db)&&(_0x5523da[_0x2a3cf8]=_0x42ce42);}),_0x5523da;};_0x28b90e||_0x24f5db?(_0x11c5eb['daily']=_0x1c61b2(this['usage'][_0x22e245(0xbd)],_0x4c166f=>new Date(_0x4c166f)),_0x11c5eb[_0x22e245(0xa5)]=_0x1c61b2(this[_0x22e245(0xcc)][_0x22e245(0xa5)],_0x45c4d5=>new Date(_0x45c4d5)),_0x11c5eb['monthly']=_0x1c61b2(this['usage'][_0x22e245(0xd7)],_0xe2354a=>new Date(_0xe2354a+_0x22e245(0xd6)))):(this['usage'][_0x22e245(0xbd)]['forEach']((_0x267353,_0x2cccb8)=>_0x11c5eb[_0x22e245(0xbd)][_0x2cccb8]=_0x267353),this[_0x22e245(0xcc)][_0x22e245(0xa5)][_0x22e245(0xa6)]((_0x1486db,_0x4a3742)=>_0x11c5eb[_0x22e245(0xa5)][_0x4a3742]=_0x1486db),this['usage']['monthly']['forEach']((_0xf2b21b,_0x2da091)=>_0x11c5eb[_0x22e245(0xd7)][_0x2da091]=_0xf2b21b));if(_0x104a70===_0x22e245(0xc6))return this[_0x22e245(0xcd)](_0x11c5eb);return JSON[_0x22e245(0xde)](_0x11c5eb,null,0x2);}[a0_0xb7fd51(0xd4)](_0x45640c,_0x493d87){!_0x45640c['has'](_0x493d87)&&_0x45640c['set'](_0x493d87,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0xb7fd51(0xc2)](_0x313bab,_0x5dd00d){const _0x5d313b=a0_0xb7fd51;_0x313bab['cost']+=_0x5dd00d[_0x5d313b(0xd1)],_0x313bab['tokens']+=_0x5dd00d[_0x5d313b(0x9f)],_0x313bab['requests']+=0x1,!_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]&&(_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]=this['createEmptyUsage']()),_0x313bab['byAgent'][_0x5dd00d[_0x5d313b(0xf0)]]['cost']+=_0x5dd00d[_0x5d313b(0xd1)],_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]['tokens']+=_0x5dd00d[_0x5d313b(0x9f)],_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]['requests']+=0x1,!_0x313bab[_0x5d313b(0xb9)][_0x5dd00d[_0x5d313b(0xf8)]]&&(_0x313bab[_0x5d313b(0xb9)][_0x5dd00d[_0x5d313b(0xf8)]]=this['createEmptyUsage']()),_0x313bab[_0x5d313b(0xb9)][_0x5dd00d[_0x5d313b(0xf8)]][_0x5d313b(0xd1)]+=_0x5dd00d[_0x5d313b(0xd1)],_0x313bab['byModel'][_0x5dd00d['modelId']][_0x5d313b(0x9f)]+=_0x5dd00d['tokens'],_0x313bab['byModel'][_0x5dd00d[_0x5d313b(0xf8)]][_0x5d313b(0xba)]+=0x1;}['checkBudgetLimits'](_0x5e6a10,_0x361b99,_0x33425b){const _0x2066a0=a0_0xb7fd51,_0x273a35=this['usage'][_0x2066a0(0xbd)]['get'](_0x5e6a10),_0x3a409e=this[_0x2066a0(0xcc)][_0x2066a0(0xa5)]['get'](_0x361b99),_0x318b85=this['usage']['monthly'][_0x2066a0(0xea)](_0x33425b);_0x273a35[_0x2066a0(0xd1)]>this[_0x2066a0(0xad)]['daily']&&this[_0x2066a0(0xec)]('daily',_0x273a35[_0x2066a0(0xd1)],this[_0x2066a0(0xad)]['daily']),_0x3a409e['cost']>this['budgets']['weekly']&&this['sendBudgetAlert']('weekly',_0x3a409e[_0x2066a0(0xd1)],this[_0x2066a0(0xad)][_0x2066a0(0xa5)]),_0x318b85[_0x2066a0(0xd1)]>this['budgets']['monthly']&&this['sendBudgetAlert']('monthly',_0x318b85['cost'],this[_0x2066a0(0xad)]['monthly']),this['checkThresholdAlerts'](_0x273a35,_0x3a409e,_0x318b85);}[a0_0xb7fd51(0xb7)](_0x33e217,_0x7f0f34,_0x14dc31){const _0x4a320f=a0_0xb7fd51,_0x4cc2dc=this['alerts']['thresholds'];this[_0x4a320f(0xd2)]('daily',_0x33e217[_0x4a320f(0xd1)],this['budgets'][_0x4a320f(0xbd)],_0x4cc2dc),this['checkThreshold']('weekly',_0x7f0f34[_0x4a320f(0xd1)],this[_0x4a320f(0xad)][_0x4a320f(0xa5)],_0x4cc2dc),this['checkThreshold']('monthly',_0x14dc31['cost'],this['budgets'][_0x4a320f(0xd7)],_0x4cc2dc);}['checkThreshold'](_0x527efa,_0x4f08ab,_0x5a8f69,_0x5cd046){const _0x45db19=a0_0xb7fd51,_0x1c1556=_0x4f08ab/_0x5a8f69*0x64;for(const _0x44b8ae of _0x5cd046){if(_0x1c1556>=_0x44b8ae){const _0x324d59=_0x527efa+'_'+_0x44b8ae,_0x51ca53=this['alerts']['lastAlertTimes'][_0x45db19(0xea)](_0x324d59),_0x11c76d=Date[_0x45db19(0xe4)]();(!_0x51ca53||_0x11c76d-_0x51ca53>0x36ee80)&&(this['sendThresholdAlert'](_0x527efa,_0x1c1556,_0x44b8ae,_0x4f08ab,_0x5a8f69),this['alerts'][_0x45db19(0xf7)][_0x45db19(0xf1)](_0x324d59,_0x11c76d));break;}}}['sendBudgetAlert'](_0x4e677b,_0x48e9c2,_0x5eeb9e){const _0x1ce701=a0_0xb7fd51;this[_0x1ce701(0xd5)][_0x1ce701(0xf5)](_0x1ce701(0xb3),{'period':_0x4e677b,'currentUsage':_0x48e9c2,'budgetLimit':_0x5eeb9e,'excess':_0x48e9c2-_0x5eeb9e}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':'budget_exceeded','period':_0x4e677b,'currentUsage':_0x48e9c2,'budgetLimit':_0x5eeb9e,'excess':_0x48e9c2-_0x5eeb9e});}['sendThresholdAlert'](_0x41a504,_0x739ab9,_0x4be1ea,_0x2d5cbb,_0x1280ec){const _0x391f18=a0_0xb7fd51;this[_0x391f18(0xd5)]['warn'](_0x391f18(0xc4),{'period':_0x41a504,'percentage':Math['round'](_0x739ab9),'threshold':_0x4be1ea,'usage':_0x2d5cbb,'budget':_0x1280ec}),typeof process!=='undefined'&&process['emit']&&process[_0x391f18(0xe6)](_0x391f18(0xb2),{'type':_0x391f18(0xb4),'period':_0x41a504,'percentage':Math[_0x391f18(0xdd)](_0x739ab9),'threshold':_0x4be1ea,'usage':_0x2d5cbb,'budget':_0x1280ec});}[a0_0xb7fd51(0xed)](_0x2e45e7){const _0x8a0504=a0_0xb7fd51;return _0x2e45e7['toISOString']()[_0x8a0504(0xc9)]('T')[0x0];}[a0_0xb7fd51(0xe2)](_0x115935){const _0x7bc41a=a0_0xb7fd51,_0x4c07ac=_0x115935['getFullYear'](),_0x5ad7ff=this['getWeekNumber'](_0x115935);return _0x4c07ac+'-W'+_0x5ad7ff[_0x7bc41a(0xe5)]()[_0x7bc41a(0xac)](0x2,'0');}['getMonthKey'](_0x3a548f){const _0x59ccb3=a0_0xb7fd51,_0x4caf83=_0x3a548f[_0x59ccb3(0xa9)](),_0x1d0b5d=_0x3a548f['getMonth']()+0x1;return _0x4caf83+'-'+_0x1d0b5d[_0x59ccb3(0xe5)]()[_0x59ccb3(0xac)](0x2,'0');}['getWeekNumber'](_0x21d0af){const _0x53882e=a0_0xb7fd51,_0x46688f=new Date(_0x21d0af[_0x53882e(0xa9)](),0x0,0x1),_0x22520f=(_0x21d0af-_0x46688f)/0x5265c00;return Math['ceil']((_0x22520f+_0x46688f[_0x53882e(0xf3)]()+0x1)/0x7);}['convertToCSV'](_0x291436){const _0x3a1c93=a0_0xb7fd51,_0x332451=[];return _0x332451[_0x3a1c93(0xf2)]([_0x3a1c93(0xa2),'Date',_0x3a1c93(0xbe),'Tokens',_0x3a1c93(0xcf),'Agent',_0x3a1c93(0xe8)]),Object[_0x3a1c93(0xa3)](_0x291436['daily'])[_0x3a1c93(0xa6)](([_0x27dd67,_0x57bfec])=>{const _0x1a4441=_0x3a1c93;_0x332451['push']([_0x1a4441(0xb6),_0x27dd67,_0x57bfec['cost'],_0x57bfec['tokens'],_0x57bfec['requests'],'','']),Object['entries'](_0x57bfec['byAgent']||{})[_0x1a4441(0xa6)](([_0x7c0778,_0x2a3250])=>{const _0x1deb62=_0x1a4441;_0x332451['push']([_0x1deb62(0xb6),_0x27dd67,_0x2a3250['cost'],_0x2a3250['tokens'],_0x2a3250[_0x1deb62(0xba)],_0x7c0778,'']);});}),_0x332451['map'](_0x5340f8=>_0x5340f8['join'](','))[_0x3a1c93(0xeb)]('\x0a');}[a0_0xb7fd51(0xe0)](){const _0x46f2b2=a0_0xb7fd51;try{this[_0x46f2b2(0xd5)][_0x46f2b2(0xb0)](_0x46f2b2(0xf9));}catch(_0x412c00){this['logger']['error']('Failed\x20to\x20load\x20usage\x20data',{'error':_0x412c00[_0x46f2b2(0xdf)]});}}['saveUsageData'](){const _0x5ac466=a0_0xb7fd51;try{this[_0x5ac466(0xd5)]['debug']('Usage\x20data\x20saved');}catch(_0x2878d5){this[_0x5ac466(0xd5)][_0x5ac466(0xaa)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x2878d5[_0x5ac466(0xdf)]});}}[a0_0xb7fd51(0xc7)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
@@ -1 +1 @@
1
- const a0_0x5cc333=a0_0x2f60;function a0_0x2f60(_0x283aae,_0x2efd23){_0x283aae=_0x283aae-0x66;const _0x42b6aa=a0_0x42b6();let _0x2f604c=_0x42b6aa[_0x283aae];if(a0_0x2f60['ZhXZtW']===undefined){var _0x191bd1=function(_0x39c7ca){const _0x4e30d1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x425593='',_0x4828f3='';for(let _0x261339=0x0,_0x465f36,_0x481552,_0x50622b=0x0;_0x481552=_0x39c7ca['charAt'](_0x50622b++);~_0x481552&&(_0x465f36=_0x261339%0x4?_0x465f36*0x40+_0x481552:_0x481552,_0x261339++%0x4)?_0x425593+=String['fromCharCode'](0xff&_0x465f36>>(-0x2*_0x261339&0x6)):0x0){_0x481552=_0x4e30d1['indexOf'](_0x481552);}for(let _0x3252b3=0x0,_0xe1f7ab=_0x425593['length'];_0x3252b3<_0xe1f7ab;_0x3252b3++){_0x4828f3+='%'+('00'+_0x425593['charCodeAt'](_0x3252b3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4828f3);};a0_0x2f60['LqBnDT']=_0x191bd1,a0_0x2f60['cgVPvN']={},a0_0x2f60['ZhXZtW']=!![];}const _0x42750b=_0x42b6aa[0x0],_0x1bf86c=_0x283aae+_0x42750b,_0x3919b7=a0_0x2f60['cgVPvN'][_0x1bf86c];return!_0x3919b7?(_0x2f604c=a0_0x2f60['LqBnDT'](_0x2f604c),a0_0x2f60['cgVPvN'][_0x1bf86c]=_0x2f604c):_0x2f604c=_0x3919b7,_0x2f604c;}(function(_0x32f014,_0xbf99f7){const _0x540e3a=a0_0x2f60,_0xe61f34=_0x32f014();while(!![]){try{const _0x516c6f=-parseInt(_0x540e3a(0x7b))/0x1*(-parseInt(_0x540e3a(0x97))/0x2)+parseInt(_0x540e3a(0x88))/0x3+-parseInt(_0x540e3a(0x92))/0x4+parseInt(_0x540e3a(0x87))/0x5+parseInt(_0x540e3a(0x6e))/0x6*(-parseInt(_0x540e3a(0x82))/0x7)+-parseInt(_0x540e3a(0x78))/0x8*(-parseInt(_0x540e3a(0x83))/0x9)+-parseInt(_0x540e3a(0x81))/0xa;if(_0x516c6f===_0xbf99f7)break;else _0xe61f34['push'](_0xe61f34['shift']());}catch(_0x3710ac){_0xe61f34['push'](_0xe61f34['shift']());}}}(a0_0x42b6,0xe9170));import a0_0x425593 from'./fileAttachmentService.js';function a0_0x42b6(){const _0x290e10=['nJq0mZmZouvPyxLlCG','nJnqD2XOC3u','qNL0zxm','cJXMAwXLlxjLzMvYzw5Jzxm+cG','zM9YBwf0qNL0zxm','ota4ntKZnxbLD0T6vG','mte2ntyZoeHovgjLBW','zMLSzu5HBwu','yxr0ywnOBwvUDfnLCNzPy2u','ica8zMLSzsbUyw1Lpsi','Dg9ju09tDhjPBMC','Bw9Kzq','zxn0Aw1HDgvuB3rHBfrVA2vUCW','iIbTB2rPzMLLzd0I','pc9HDhrHy2HLzc1MAwXLCZ4k','Dg9Rzw5fC3rPBwf0zq','mJi5odq4DKzJthbf','zM9YBwf0sw1Hz2vgAwXL','zM9YBwf0vgv4DezPBgu','yNvPBgreEw5HBwLJq29UDgv4Da','zM9YBwf0ugrMrMLSzq','mZmWmti3neTmCK51vq','CMvWBgfJzq','Bg9Nz2vY','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','jMfTCdS','jNf1B3q7','BwvZC2fNzq','s0iIig1Vzgu9iMnVBNrLBNqIpGO','zMXVB3i','zM9YBwf0uMvMzxjLBMnLrMLSzq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','mtjKCeXssfq','Aw5PDgLHBgL6zq','iIb0ExbLpsi','mcbcExrLCW','zM9YBwf0q29UDgvUDezPBgu','y29UDgvUDa','CMvMzxjLBMnL','zMLSDgvY','BgvUz3rO','cIaGpc9MAwXLpG','mtCWmdCYEuPsAfPs','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','CgrM','mwDZDurdDq','Dg9gAxHLza','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','zxjYB3i','zxnJyxbLwg1S','iIbZAxPLpsi','mte1mJaZmtbiv2Tvr0m'];a0_0x42b6=function(){return _0x290e10;};return a0_0x42b6();}class ContextInjectionService{constructor(_0x4828f3={},_0x261339=null){const _0x5257fa=a0_0x2f60;this['config']=_0x4828f3,this['logger']=_0x261339,this[_0x5257fa(0x8a)]=new a0_0x425593(_0x4828f3,_0x261339);}async[a0_0x5cc333(0x6f)](){const _0x22d3c9=a0_0x5cc333;await this[_0x22d3c9(0x8a)][_0x22d3c9(0x6f)]();}async[a0_0x5cc333(0x95)](_0x465f36){const _0x276151=a0_0x5cc333;try{const _0x481552=await this['attachmentService'][_0x276151(0x6d)](_0x465f36);if(_0x481552[_0x276151(0x76)]===0x0)return'';const _0x50622b=_0x481552[_0x276151(0x75)](_0x7cb6ee=>_0x7cb6ee[_0x276151(0x8d)]===_0x276151(0x73)),_0x3252b3=_0x481552[_0x276151(0x75)](_0x1b3ade=>_0x1b3ade[_0x276151(0x8d)]===_0x276151(0x74));let _0xe1f7ab='';if(_0x50622b[_0x276151(0x76)]>0x0){_0xe1f7ab+='\x0a<attached-files>\x0a';for(const _0x4b8f8d of _0x50622b){const _0x21622d=await this[_0x276151(0x8a)]['getAttachmentContent'](_0x4b8f8d['fileId']);if(_0x21622d){const _0x171546=this['formatContentFile'](_0x4b8f8d,_0x21622d);_0xe1f7ab+=_0x171546+'\x0a';}}_0xe1f7ab+=_0x276151(0x90);}if(_0x3252b3[_0x276151(0x76)]>0x0){_0xe1f7ab+=_0x276151(0x85);for(const _0x2e9b6b of _0x3252b3){const _0x21039d=this[_0x276151(0x6c)](_0x2e9b6b);_0xe1f7ab+=_0x21039d+'\x0a';}_0xe1f7ab+='</file-references>\x0a',_0xe1f7ab+=_0x276151(0x66);}return _0xe1f7ab;}catch(_0x18759c){return this['logger']?.[_0x276151(0x7e)](_0x276151(0x79),{'agentId':_0x465f36,'error':_0x18759c['message']}),'';}}[a0_0x5cc333(0x72)](_0xc9ab29,_0x5d654a){const _0x5982e2=a0_0x5cc333,{fileName:_0x218522,fileType:_0x4036ab,size:_0x15c973,contentType:_0x28f727}=_0xc9ab29,_0x5c87dc=(_0x15c973/0x400)['toFixed'](0x2);if(_0x28f727==='text')return this['formatTextFile'](_0xc9ab29,_0x5d654a);else{if(_0x28f727==='image')return this[_0x5982e2(0x93)](_0xc9ab29,_0x5d654a);else{if(_0x28f727===_0x5982e2(0x7a))return this[_0x5982e2(0x96)](_0xc9ab29,_0x5d654a);}}return _0x5982e2(0x8b)+this['escapeXml'](_0x218522)+'\x22\x20type=\x22'+_0x4036ab+_0x5982e2(0x80)+_0x5c87dc+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x5d654a)+'\x0a\x20\x20</file>';}[a0_0x5cc333(0x94)](_0x215c0e,_0x68eac2){const _0x5676dc=a0_0x5cc333,{fileName:_0x13a25b,fileType:_0x184a13,size:_0x49abb5}=_0x215c0e,_0x3c5827=(_0x49abb5/0x400)[_0x5676dc(0x7c)](0x2);return _0x5676dc(0x8b)+this[_0x5676dc(0x7f)](_0x13a25b)+'\x22\x20type=\x22'+_0x184a13+'\x22\x20size=\x22'+_0x3c5827+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x68eac2)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x21c4c2,_0x5181ec){const _0x2e831a=a0_0x5cc333,{fileName:_0x46e084,fileType:_0x33f741,size:_0x93a98f}=_0x21c4c2,_0x2122ca=(_0x93a98f/0x400)[_0x2e831a(0x7c)](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x46e084)+'\x22\x20type=\x22'+_0x33f741+'\x22\x20size=\x22'+_0x2122ca+_0x2e831a(0x6a)+_0x5181ec+_0x2e831a(0x77);}[a0_0x5cc333(0x96)](_0x4ac32d,_0x88e1c5){const _0x4213d5=a0_0x5cc333,{fileName:_0x3b8903,fileType:_0x2b3e8b,size:_0x16c067}=_0x4ac32d,_0x4d9497=(_0x16c067/0x400)[_0x4213d5(0x7c)](0x2);return _0x4213d5(0x8b)+this[_0x4213d5(0x7f)](_0x3b8903)+_0x4213d5(0x70)+_0x2b3e8b+_0x4213d5(0x80)+_0x4d9497+_0x4213d5(0x6a)+this['escapeXml'](_0x88e1c5)+'\x0a\x20\x20</file>';}[a0_0x5cc333(0x6c)](_0x5e4837){const _0x1291c4=a0_0x5cc333,{fileName:_0xa357be,originalPath:_0x1625f8,size:_0x4b74d3,fileType:_0x15cd1c,lastModified:_0x5c5d1e}=_0x5e4837,_0x1c46f6=this['formatBytes'](_0x4b74d3),_0x564719=new Date(_0x5c5d1e)[_0x1291c4(0x8c)]()['split']('T')[0x0];return _0x1291c4(0x8b)+this[_0x1291c4(0x7f)](_0xa357be)+'\x22\x20path=\x22'+this[_0x1291c4(0x7f)](_0x1625f8)+_0x1291c4(0x80)+_0x1c46f6+_0x1291c4(0x70)+_0x15cd1c+_0x1291c4(0x8f)+_0x564719+'\x22\x20/>';}[a0_0x5cc333(0x7f)](_0x35f82c){const _0x1e0a8d=a0_0x5cc333;if(!_0x35f82c)return'';return _0x35f82c['replace'](/&/g,_0x1e0a8d(0x67))['replace'](/</g,'&lt;')[_0x1e0a8d(0x98)](/>/g,'&gt;')[_0x1e0a8d(0x98)](/"/g,_0x1e0a8d(0x68))[_0x1e0a8d(0x98)](/'/g,'&apos;');}[a0_0x5cc333(0x86)](_0x11a7b8){const _0x2849ae=a0_0x5cc333;if(_0x11a7b8===0x0)return _0x2849ae(0x71);const _0x45946c=0x400,_0x5aa0b8=[_0x2849ae(0x84),'KB','MB','GB'],_0x338040=Math[_0x2849ae(0x6b)](Math['log'](_0x11a7b8)/Math['log'](_0x45946c));return parseFloat((_0x11a7b8/Math['pow'](_0x45946c,_0x338040))['toFixed'](0x2))+_0x5aa0b8[_0x338040];}async[a0_0x5cc333(0x8e)](_0x3dcaf3){const _0x194a3e=a0_0x5cc333;try{const _0x33265f=await this['attachmentService'][_0x194a3e(0x6d)](_0x3dcaf3);let _0x53a3e0=0x0;for(const _0x57fc5e of _0x33265f){_0x57fc5e['mode']==='content'?_0x53a3e0+=_0x57fc5e[_0x194a3e(0x91)]||0x0:_0x53a3e0+=0x14;}return _0x53a3e0;}catch(_0x4a1439){return this[_0x194a3e(0x99)]?.[_0x194a3e(0x7e)](_0x194a3e(0x7d),{'agentId':_0x3dcaf3,'error':_0x4a1439['message']}),0x0;}}async['getAttachmentSummary'](_0x21e2ef){const _0x115efc=a0_0x5cc333;try{const _0x304f65=await this['attachmentService'][_0x115efc(0x6d)](_0x21e2ef),_0x3f96c2={'totalActive':_0x304f65['length'],'contentMode':_0x304f65[_0x115efc(0x75)](_0xa28c7b=>_0xa28c7b['mode']===_0x115efc(0x73))[_0x115efc(0x76)],'referenceMode':_0x304f65['filter'](_0x40b225=>_0x40b225[_0x115efc(0x8d)]==='reference')[_0x115efc(0x76)],'estimatedTokens':0x0,'files':[]};for(const _0x171e36 of _0x304f65){_0x3f96c2['estimatedTokens']+=_0x171e36[_0x115efc(0x91)]||0x0,_0x3f96c2['files']['push']({'fileName':_0x171e36[_0x115efc(0x89)],'mode':_0x171e36[_0x115efc(0x8d)],'size':this['formatBytes'](_0x171e36['size']),'tokens':_0x171e36[_0x115efc(0x91)]||0x0});}return _0x3f96c2;}catch(_0x150b0a){return this[_0x115efc(0x99)]?.[_0x115efc(0x7e)]('Error\x20getting\x20attachment\x20summary',{'agentId':_0x21e2ef,'error':_0x150b0a[_0x115efc(0x69)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
1
+ function a0_0x3ef7(_0x3c6fbc,_0x3e9a16){_0x3c6fbc=_0x3c6fbc-0x10a;const _0x55b684=a0_0x55b6();let _0x3ef76e=_0x55b684[_0x3c6fbc];if(a0_0x3ef7['yCTzoM']===undefined){var _0x325bc1=function(_0x29dc69){const _0x9394e3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d1460='',_0x2052a3='';for(let _0x1aabf5=0x0,_0x17f797,_0x4e5798,_0x1f829b=0x0;_0x4e5798=_0x29dc69['charAt'](_0x1f829b++);~_0x4e5798&&(_0x17f797=_0x1aabf5%0x4?_0x17f797*0x40+_0x4e5798:_0x4e5798,_0x1aabf5++%0x4)?_0x3d1460+=String['fromCharCode'](0xff&_0x17f797>>(-0x2*_0x1aabf5&0x6)):0x0){_0x4e5798=_0x9394e3['indexOf'](_0x4e5798);}for(let _0x74971a=0x0,_0x51ad1c=_0x3d1460['length'];_0x74971a<_0x51ad1c;_0x74971a++){_0x2052a3+='%'+('00'+_0x3d1460['charCodeAt'](_0x74971a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2052a3);};a0_0x3ef7['sPhIDA']=_0x325bc1,a0_0x3ef7['DqTmLp']={},a0_0x3ef7['yCTzoM']=!![];}const _0x1a9e3a=_0x55b684[0x0],_0x24e703=_0x3c6fbc+_0x1a9e3a,_0x45a547=a0_0x3ef7['DqTmLp'][_0x24e703];return!_0x45a547?(_0x3ef76e=a0_0x3ef7['sPhIDA'](_0x3ef76e),a0_0x3ef7['DqTmLp'][_0x24e703]=_0x3ef76e):_0x3ef76e=_0x45a547,_0x3ef76e;}const a0_0x980bf8=a0_0x3ef7;(function(_0x426762,_0x49f886){const _0x3132d6=a0_0x3ef7,_0xe451d2=_0x426762();while(!![]){try{const _0x5434a8=-parseInt(_0x3132d6(0x11c))/0x1+parseInt(_0x3132d6(0x125))/0x2*(parseInt(_0x3132d6(0x11b))/0x3)+parseInt(_0x3132d6(0x136))/0x4+-parseInt(_0x3132d6(0x132))/0x5+-parseInt(_0x3132d6(0x119))/0x6*(-parseInt(_0x3132d6(0x118))/0x7)+parseInt(_0x3132d6(0x117))/0x8+-parseInt(_0x3132d6(0x137))/0x9;if(_0x5434a8===_0x49f886)break;else _0xe451d2['push'](_0xe451d2['shift']());}catch(_0x164612){_0xe451d2['push'](_0xe451d2['shift']());}}}(a0_0x55b6,0xef7e7));function a0_0x55b6(){const _0xa0d0c=['CMvMzxjLBMnL','mtvSuhP3CK8','mJm3mte4rwnZquPr','zxn0Aw1HDgvKvg9Rzw5Z','zxnJyxbLwg1S','jMX0oW','Dg9Rzw5fC3rPBwf0zq','Dg9gAxHLza','mcbcExrLCW','Bg9Nz2vY','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','mZi1mdmWrgrfDLj5','zMLSzxm','iIb0ExbLpsi','cJXHDhrHy2HLzc1MAwXLCZ4k','ChvZAa','BwvZC2fNzq','ica8zMLSzsbUyw1Lpsi','zMLSzuLK','zMLSDgvY','z2v0qwn0AxzLqxr0ywnOBwvUDhm','zxjYB3i','Bw9Kzq','iIaVpG','mtyZmJi1meXAq2D6zG','s0iIig1Vzgu9iMnVBNrLBNqIpGO','zM9YBwf0vgv4DezPBgu','iIbWyxrOpsi','mte2oti4ngv0uwzbtW','mty2ote2mtzZqvD5DKC','CgrM','y29UDgvUDa','zM9YBwf0q29UDgvUDezPBgu','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','BgvUz3rO','zM9YBwf0qNL0zxm','y29UzMLN','yxr0ywnOBwvUDfnLCNzPy2u','Aw5PDgLHBgL6zq','CMvWBgfJzq','zxn0Aw1HDgvuB3rHBfrVA2vUCW','yNvPBgreEw5HBwLJq29UDgv4Da','cIaGpc9MAwXLpG','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zMLSzu5HBwu','iIbZAxPLpsi','nZi5ntu1mM91y2H5wq','mtG5r0PWvwvq','mZa3mtGYAM92vwju'];a0_0x55b6=function(){return _0xa0d0c;};return a0_0x55b6();}import a0_0x3d1460 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x2052a3={},_0x1aabf5=null){const _0x3ca5d9=a0_0x3ef7;this[_0x3ca5d9(0x10d)]=_0x2052a3,this['logger']=_0x1aabf5,this[_0x3ca5d9(0x10e)]=new a0_0x3d1460(_0x2052a3,_0x1aabf5);}async[a0_0x980bf8(0x10f)](){const _0x1f3238=a0_0x980bf8;await this[_0x1f3238(0x10e)]['initialize']();}async[a0_0x980bf8(0x112)](_0x17f797){const _0x1a80bb=a0_0x980bf8;try{const _0x4e5798=await this['attachmentService']['getActiveAttachments'](_0x17f797);if(_0x4e5798[_0x1a80bb(0x10b)]===0x0)return'';const _0x1f829b=_0x4e5798['filter'](_0x59cb8b=>_0x59cb8b[_0x1a80bb(0x130)]===_0x1a80bb(0x139)),_0x74971a=_0x4e5798[_0x1a80bb(0x12d)](_0x4caec3=>_0x4caec3[_0x1a80bb(0x130)]===_0x1a80bb(0x11a));let _0x51ad1c='';if(_0x1f829b['length']>0x0){_0x51ad1c+=_0x1a80bb(0x128);for(const _0x32d83b of _0x1f829b){const _0x3100d4=await this['attachmentService']['getAttachmentContent'](_0x32d83b[_0x1a80bb(0x12c)]);if(_0x3100d4){const _0x1d12df=this[_0x1a80bb(0x13a)](_0x32d83b,_0x3100d4);_0x51ad1c+=_0x1d12df+'\x0a';}}_0x51ad1c+='</attached-files>\x0a';}if(_0x74971a[_0x1a80bb(0x10b)]>0x0){_0x51ad1c+='\x0a<file-references>\x0a';for(const _0x307a68 of _0x74971a){const _0x3873e6=this['formatReferenceFile'](_0x307a68);_0x51ad1c+=_0x3873e6+'\x0a';}_0x51ad1c+=_0x1a80bb(0x114),_0x51ad1c+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x51ad1c;}catch(_0x54d343){return this['logger']?.[_0x1a80bb(0x12f)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x17f797,'error':_0x54d343['message']}),'';}}['formatContentFile'](_0x58fd42,_0x2198e4){const _0x295b4a=a0_0x980bf8,{fileName:_0x4bbfa0,fileType:_0x2cc09f,size:_0x47c14e,contentType:_0x7df0dd}=_0x58fd42,_0x8d399c=(_0x47c14e/0x400)[_0x295b4a(0x121)](0x2);if(_0x7df0dd==='text')return this[_0x295b4a(0x134)](_0x58fd42,_0x2198e4);else{if(_0x7df0dd==='image')return this['formatImageFile'](_0x58fd42,_0x2198e4);else{if(_0x7df0dd===_0x295b4a(0x138))return this['formatPdfFile'](_0x58fd42,_0x2198e4);}}return _0x295b4a(0x12b)+this[_0x295b4a(0x11e)](_0x4bbfa0)+_0x295b4a(0x127)+_0x2cc09f+_0x295b4a(0x116)+_0x8d399c+_0x295b4a(0x133)+this[_0x295b4a(0x11e)](_0x2198e4)+'\x0a\x20\x20</file>';}[a0_0x980bf8(0x134)](_0x13692e,_0x459a1b){const _0x24d02a=a0_0x980bf8,{fileName:_0x36e8de,fileType:_0x2293c0,size:_0x5a6e67}=_0x13692e,_0xb613e=(_0x5a6e67/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x24d02a(0x11e)](_0x36e8de)+_0x24d02a(0x127)+_0x2293c0+'\x22\x20size=\x22'+_0xb613e+_0x24d02a(0x133)+this[_0x24d02a(0x11e)](_0x459a1b)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x247628,_0x2b9d02){const _0x5b13eb=a0_0x980bf8,{fileName:_0x1fb69f,fileType:_0xf4e52b,size:_0x8f1a4d}=_0x247628,_0x172e78=(_0x8f1a4d/0x400)[_0x5b13eb(0x121)](0x2);return _0x5b13eb(0x12b)+this[_0x5b13eb(0x11e)](_0x1fb69f)+_0x5b13eb(0x127)+_0xf4e52b+'\x22\x20size=\x22'+_0x172e78+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x2b9d02+_0x5b13eb(0x113);}['formatPdfFile'](_0x1a7d92,_0x19d6aa){const _0x5f5574=a0_0x980bf8,{fileName:_0xe920ac,fileType:_0x429d60,size:_0x30e769}=_0x1a7d92,_0x40ebb5=(_0x30e769/0x400)[_0x5f5574(0x121)](0x2);return _0x5f5574(0x12b)+this['escapeXml'](_0xe920ac)+_0x5f5574(0x127)+_0x429d60+'\x22\x20size=\x22'+_0x40ebb5+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x19d6aa)+'\x0a\x20\x20</file>';}['formatReferenceFile'](_0x57f00d){const _0x510fe6=a0_0x980bf8,{fileName:_0x590490,originalPath:_0x3dbf61,size:_0x9a864e,fileType:_0x4a8908,lastModified:_0x96da5f}=_0x57f00d,_0x30965b=this['formatBytes'](_0x9a864e),_0x1d2d44=new Date(_0x96da5f)['toISOString']()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this[_0x510fe6(0x11e)](_0x590490)+_0x510fe6(0x135)+this['escapeXml'](_0x3dbf61)+'\x22\x20size=\x22'+_0x30965b+_0x510fe6(0x127)+_0x4a8908+'\x22\x20modified=\x22'+_0x1d2d44+_0x510fe6(0x131);}[a0_0x980bf8(0x11e)](_0x153012){const _0x3fb983=a0_0x980bf8;if(!_0x153012)return'';return _0x153012[_0x3fb983(0x110)](/&/g,'&amp;')['replace'](/</g,_0x3fb983(0x11f))[_0x3fb983(0x110)](/>/g,'&gt;')[_0x3fb983(0x110)](/"/g,'&quot;')[_0x3fb983(0x110)](/'/g,'&apos;');}[a0_0x980bf8(0x10c)](_0x4ed2ad){const _0x33848d=a0_0x980bf8;if(_0x4ed2ad===0x0)return _0x33848d(0x122);const _0x3bdc93=0x400,_0xea107e=['Bytes','KB','MB','GB'],_0x4cbaf6=Math['floor'](Math['log'](_0x4ed2ad)/Math['log'](_0x3bdc93));return parseFloat((_0x4ed2ad/Math['pow'](_0x3bdc93,_0x4cbaf6))['toFixed'](0x2))+_0xea107e[_0x4cbaf6];}async[a0_0x980bf8(0x111)](_0xf442fd){const _0x1b4d20=a0_0x980bf8;try{const _0x129149=await this[_0x1b4d20(0x10e)]['getActiveAttachments'](_0xf442fd);let _0xde08d3=0x0;for(const _0x20de36 of _0x129149){_0x20de36[_0x1b4d20(0x130)]==='content'?_0xde08d3+=_0x20de36['tokenEstimate']||0x0:_0xde08d3+=0x14;}return _0xde08d3;}catch(_0x1dbe86){return this[_0x1b4d20(0x123)]?.[_0x1b4d20(0x12f)]('Error\x20estimating\x20total\x20tokens',{'agentId':_0xf442fd,'error':_0x1dbe86['message']}),0x0;}}async[a0_0x980bf8(0x124)](_0x2f2fda){const _0x48b299=a0_0x980bf8;try{const _0x2a4c18=await this[_0x48b299(0x10e)][_0x48b299(0x12e)](_0x2f2fda),_0x1042d5={'totalActive':_0x2a4c18['length'],'contentMode':_0x2a4c18['filter'](_0x22f8c4=>_0x22f8c4[_0x48b299(0x130)]===_0x48b299(0x139))['length'],'referenceMode':_0x2a4c18['filter'](_0x2873d3=>_0x2873d3[_0x48b299(0x130)]==='reference')[_0x48b299(0x10b)],'estimatedTokens':0x0,'files':[]};for(const _0x130187 of _0x2a4c18){_0x1042d5[_0x48b299(0x11d)]+=_0x130187['tokenEstimate']||0x0,_0x1042d5[_0x48b299(0x126)][_0x48b299(0x129)]({'fileName':_0x130187[_0x48b299(0x115)],'mode':_0x130187['mode'],'size':this['formatBytes'](_0x130187['size']),'tokens':_0x130187[_0x48b299(0x120)]||0x0});}return _0x1042d5;}catch(_0x5d95ac){return this['logger']?.['error'](_0x48b299(0x10a),{'agentId':_0x2f2fda,'error':_0x5d95ac[_0x48b299(0x12a)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;