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

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-C5X7qBNF.js} +63 -63
  119. package/web-ui/build/static/index-g2UFuTwG.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_0x353b80=a0_0x36f7;(function(_0x3aa805,_0x26dbc){const _0x475af6=a0_0x36f7,_0x25cfc0=_0x3aa805();while(!![]){try{const _0x2128ad=-parseInt(_0x475af6(0x1e6))/0x1*(-parseInt(_0x475af6(0x1d8))/0x2)+parseInt(_0x475af6(0x23b))/0x3+parseInt(_0x475af6(0x206))/0x4+-parseInt(_0x475af6(0x22f))/0x5+parseInt(_0x475af6(0x1ef))/0x6*(-parseInt(_0x475af6(0x252))/0x7)+parseInt(_0x475af6(0x214))/0x8*(parseInt(_0x475af6(0x1d6))/0x9)+-parseInt(_0x475af6(0x26b))/0xa;if(_0x2128ad===_0x26dbc)break;else _0x25cfc0['push'](_0x25cfc0['shift']());}catch(_0x31271e){_0x25cfc0['push'](_0x25cfc0['shift']());}}}(a0_0x35b5,0x9733f));function a0_0x36f7(_0x3ac1dd,_0x49b9fc){_0x3ac1dd=_0x3ac1dd-0x1cf;const _0x35b5ba=a0_0x35b5();let _0x36f773=_0x35b5ba[_0x3ac1dd];if(a0_0x36f7['VUNOQu']===undefined){var _0x2ea2b3=function(_0x4eb66e){const _0x35e721='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x47f60f='',_0x2d8016='';for(let _0x17233d=0x0,_0x5878ed,_0x3f92eb,_0x4c7498=0x0;_0x3f92eb=_0x4eb66e['charAt'](_0x4c7498++);~_0x3f92eb&&(_0x5878ed=_0x17233d%0x4?_0x5878ed*0x40+_0x3f92eb:_0x3f92eb,_0x17233d++%0x4)?_0x47f60f+=String['fromCharCode'](0xff&_0x5878ed>>(-0x2*_0x17233d&0x6)):0x0){_0x3f92eb=_0x35e721['indexOf'](_0x3f92eb);}for(let _0x49d02c=0x0,_0x53dd7e=_0x47f60f['length'];_0x49d02c<_0x53dd7e;_0x49d02c++){_0x2d8016+='%'+('00'+_0x47f60f['charCodeAt'](_0x49d02c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d8016);};a0_0x36f7['YmnZMw']=_0x2ea2b3,a0_0x36f7['WTRLkj']={},a0_0x36f7['VUNOQu']=!![];}const _0x3ab003=_0x35b5ba[0x0],_0x23f407=_0x3ac1dd+_0x3ab003,_0x7b8bb5=a0_0x36f7['WTRLkj'][_0x23f407];return!_0x7b8bb5?(_0x36f773=a0_0x36f7['YmnZMw'](_0x36f773),a0_0x36f7['WTRLkj'][_0x23f407]=_0x36f773):_0x36f773=_0x7b8bb5,_0x36f773;}function a0_0x35b5(){const _0x3a66b0=['y29UDMvYC2f0Aw9UtwfUywDLCNm','x2HHBMrSzvjHDgvmAw1PDa','y29UDMvYC2f0Aw9UCW','yxbPs2v5','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','u3LZDgvToIa','C3rVCa','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','yMfJA2vUza','C3vIC3rY','yJy0x2PZB24','zxn0Aw1HDgvKvg9Rzw5Z','x3jLy29YzezHAwX1CMu','x2DLDfzLBMrVCKzYB21nB2rLBa','zgvIDwC','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','mta3oteYmdbWwLDRq0K','DhjHy2TvC2fNzq','z2v0s2v5C0zVCLjLCxvLC3q','x21HA2vbueLszxf1zxn0','C3rHBMrHCMq','y2XHDwrL','ChjLzMvYCMvKtw9KzwW','zMfZDa','y2XHC3nPzNLfCNjVCG','zMfPBhvYzxm','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','zxjYB3i','qu5usfjpueLdx09qvvm','BwvZC2fNzxm','z3b0','ueHj','Aw5MBW','Bw9KzwXtCgvJCW','CMvXDwvZDff1zxvL','BM93','qKfex1jfuvvfu1q','nta3mtu5AM51BgLq','x2zVCM1HDezVCKfUDgHYB3bPyW','nerervbIvG','BgfZDezHAwX1CMvuAw1L','C2v0qwDLBNrqB29S','ywDLBNrqB29S','qvPvuKu','CMfUzg9T','C3bLzwq','DxjS','Bw9KzwW','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','BwfW','x3rYDw5JyxrLtwvZC2fNzq','qMvHCMvYia','Aw1Hz2vZ','mtiWmtu0AKjOqMzK','B3b0Aw9UCW','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','yxP1CMuTB3bLBMfPlwrHBgXLmW','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','y29UDgv4DfDPBMrVDW','zMLUAxnOx3jLyxnVBG','C2vUze1LC3nHz2u','DMvUzg9YqxbPs2v5','mJmWnZeYsgniBLPf','Cg93','D2fYBG','uMv0CNLPBMCGAw4G','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3DPDgnOtw9KzwW','DxnHz2u','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','y29Kzq','C3r5Bgu','x2nOzwnRtw9KzwXizwfSDgG','x2zVCM1HDezVCK9Wzw5bsq','BwvZC2fNzq','z2vUzxjHDgvjBwfNzq','C2L6zq','Dg9vChbLCKnHC2u','y3vYCMvUDe1VzgvS','AgfUzgXLshr0CevYCM9Y','C3rHy2S','y29UDgvUDa','Aw1Nlq','Bg9Nz2vY','qu5usfjpueLdx1nptK5fva','ndq0mtK5nKTjuwzoBG','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C3LZDgvT','C3vTBwfYEq','yxbPs2v5twfUywDLCG','DgHYzxnOB2XK','uMf0zsbSAw1PDcbLEgnLzwrLza','B3bLBMfP','vw5RBM93BIbTB2rLBdOG','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','CMvZCg9UC2vgB3jTyxq','C3vIC3rYAw5N','z2v0qwDLBNq','C2vZC2LVBKLK','mtuYy09hDNjp','x2vZDgLTyxrLvg9Rzw5Z','CgHP','C3rYzwfT','Dgv4Da','vu5bvvrit1jjwKve','x3jLC2v0q2LYy3vPDejYzwfRzxi','rKfmtejbq0S','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','Bg94AwfbCgLlzxK','ANnVBG','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C3LZDgvTuhjVBxb0','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','tM8GqvbjigTLEsbJB25MAwD1CMvK','ChjVBxb0x3rVA2vUCW','qu5usfjpueLdx0HbsuTv','t1bftKfj','AgvHBhrOEq','CM9Szq','l2nOyxqVy29TCgXLDgLVBNm','CMv2AxnLzf9WCM9TChq','y2HVAwnLCW','DxnLCG','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','CgXHDgzVCM1qCM92AwrLza','mZK0nZCYmezpuLnjvq','DML2Awq','su5urvjoquXFu0vsvKvsx0vsuK9s','Dw5ZAgLMDa','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','ywDLBNrjza','mtaYnhGXmdi0','y29UzMLN','Aw5JBhvKzxm','DhjPBq','zgf0yq','CxvHBgL0Eq','mZqYotuXm2vJtvfPtG','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','CMv0CNLbDhrLBxb0CW','yNvKz2v0u2vYDMLJzq','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','x2LZvMfSAwrnB2rLBa','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','x2nOzwnRuMf0zuXPBwL0','C2v0qxbPs2v5twfUywDLCG','AxnpCgvU','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','Ahr0Chm6lY9HCgKUBg94AweUywK','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','yMfZzvvYBa','C3rHDhvZ','y2LYy3vPDejYzwfRzxi','BgvUz3rO','Bwf4vg9Rzw5Z','DgLTzw91Da','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','mtK2y2zry1vw','DgLTzxn0yw1W','qu5usfjpueLd','ve9px01btLLFuKvrvuvtvfm','tK9ux0zpvu5e','CgvYC2LZDefNzw50u3rHDgu','x2zVCM1HDezVCKf6DxjL','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq'];a0_0x35b5=function(){return _0x3a66b0;};return a0_0x35b5();}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x47f60f,_0x2d8016,_0x17233d,_0x5878ed){const _0x46fb17=a0_0x36f7;this['config']=_0x47f60f,this['logger']=_0x2d8016,this['budgetService']=_0x17233d,this['errorHandler']=_0x5878ed,this[_0x46fb17(0x24b)]=_0x47f60f[_0x46fb17(0x263)]?.['baseUrl']||_0x46fb17(0x248),this[_0x46fb17(0x250)]=_0x47f60f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x47f60f['backend']?.[_0x46fb17(0x23e)]||0x3,this['rateLimiters']=new Map(),this[_0x46fb17(0x1d3)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x46fb17(0x233)](),this[_0x46fb17(0x25a)]=new Map(),this[_0x46fb17(0x20a)]=null,this[_0x46fb17(0x1db)]=null;}async[a0_0x353b80(0x1ed)](_0x3f92eb,_0x4c7498,_0x49d02c={}){const _0x34fe76=a0_0x353b80,_0x53dd7e='req-'+Date['now']()+'-'+Math[_0x34fe76(0x1dd)]()['toString'](0x24)[_0x34fe76(0x264)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x34fe76(0x222));await this['_checkRateLimit'](_0x3f92eb);const _0x5e717a=this[_0x34fe76(0x26a)](_0x4c7498,_0x3f92eb,_0x49d02c),_0x2b8ae1={'model':_0x3f92eb,'messages':_0x5e717a,'options':{'max_tokens':this['modelSpecs'][_0x3f92eb]?.[_0x34fe76(0x24f)]||0xfa0,'temperature':_0x49d02c['temperature']||0.7,'stream':_0x49d02c[_0x34fe76(0x217)]||![]},'metadata':{'requestId':_0x53dd7e,'agentId':_0x49d02c['agentId'],'timestamp':new Date()['toISOString']()}};_0x49d02c['systemPrompt']&&(_0x2b8ae1[_0x34fe76(0x208)]=_0x49d02c['systemPrompt']);this[_0x34fe76(0x204)]['info']('Sending\x20message\x20to\x20model:\x20'+_0x3f92eb,{'requestId':_0x53dd7e,'agentId':_0x49d02c[_0x34fe76(0x234)],'messageCount':Array['isArray'](_0x4c7498)?_0x4c7498[_0x34fe76(0x24e)]:0x1,'maxTokens':_0x2b8ae1['max_tokens']});const _0x524f43=await this['_makeAPIRequest'](_0x34fe76(0x229),_0x2b8ae1,_0x53dd7e,{..._0x49d02c,'sessionId':_0x49d02c[_0x34fe76(0x213)],'platformProvided':_0x49d02c[_0x34fe76(0x22e)]||![]});return _0x524f43[_0x34fe76(0x1f5)]&&await this[_0x34fe76(0x26c)](_0x49d02c[_0x34fe76(0x234)],_0x3f92eb,{'prompt_tokens':_0x524f43[_0x34fe76(0x1f5)][_0x34fe76(0x224)]||0x0,'completion_tokens':_0x524f43[_0x34fe76(0x1f5)]['completion_tokens']||0x0,'total_tokens':_0x524f43['usage']['total_tokens']||0x0}),this[_0x34fe76(0x21a)](),{'content':_0x524f43[_0x34fe76(0x22b)][0x0]?.['message']?.['content']||'','model':_0x524f43['model'],'tokenUsage':_0x524f43['usage'],'requestId':_0x53dd7e,'finishReason':_0x524f43[_0x34fe76(0x22b)][0x0]?.[_0x34fe76(0x1ec)]};}catch(_0x33c570){this[_0x34fe76(0x267)](),this['logger']['error']('AI\x20service\x20request\x20failed:\x20'+_0x33c570['message'],{'requestId':_0x53dd7e,'model':_0x3f92eb,'agentId':_0x49d02c[_0x34fe76(0x234)],'error':_0x33c570['stack']}),await this[_0x34fe76(0x200)](_0x33c570,{'requestId':_0x53dd7e,'model':_0x3f92eb,'agentId':_0x49d02c['agentId']});throw _0x33c570;}}async['routeModel'](_0x31101c,_0x3a76d7={}){const _0x3891fc=a0_0x353b80;try{const _0x105131=MODEL_ROUTING[_0x31101c[_0x3891fc(0x1fe)]()]||MODEL_ROUTING['FALLBACK'],_0x58cc1f=[];for(const _0x49df08 of _0x105131){const _0x1a3dab=await this['_checkModelHealth'](_0x49df08);_0x1a3dab&&_0x58cc1f['push'](_0x49df08);}if(_0x58cc1f[_0x3891fc(0x24e)]===0x0)return this[_0x3891fc(0x204)]['warn'](_0x3891fc(0x21f)+_0x31101c+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x32eec0=_0x58cc1f[0x0];if(_0x3a76d7[_0x3891fc(0x271)]&&_0x58cc1f[_0x3891fc(0x237)](_0x3a76d7['preferredModel']))_0x32eec0=_0x3a76d7[_0x3891fc(0x271)];else{if(_0x3a76d7['complexity']==='high'&&_0x58cc1f['includes'](MODELS['ANTHROPIC_OPUS']))_0x32eec0=MODELS[_0x3891fc(0x277)];else _0x3a76d7[_0x3891fc(0x1de)]===_0x3891fc(0x272)&&_0x58cc1f[_0x3891fc(0x237)](MODELS[_0x3891fc(0x225)])&&(_0x32eec0=MODELS[_0x3891fc(0x225)]);}return this[_0x3891fc(0x204)][_0x3891fc(0x1d1)](_0x3891fc(0x25f)+_0x31101c,{'selectedModel':_0x32eec0,'availableModels':_0x58cc1f[_0x3891fc(0x24e)],'context':_0x3a76d7}),_0x32eec0;}catch(_0x47246a){return this[_0x3891fc(0x204)][_0x3891fc(0x276)](_0x3891fc(0x22d)+_0x47246a[_0x3891fc(0x1fb)],{'task':_0x31101c,'context':_0x3a76d7}),MODEL_ROUTING[_0x3891fc(0x21b)][0x0];}}async['compactizeConversation'](_0x296c34,_0x561fbe){const _0xe4f006=a0_0x353b80,_0x576aa4=this[_0xe4f006(0x1d2)][_0x561fbe];if(!_0x576aa4)throw new Error(_0xe4f006(0x20e)+_0x561fbe);const _0x4809fb=_0x576aa4[_0xe4f006(0x1eb)]*0.8;let _0x48223c=0x0;const _0x574be9=[],_0x100847=await Promise['all'](_0x296c34['map'](async _0x4c741e=>({..._0x4c741e,'estimatedTokens':await this[_0xe4f006(0x215)](_0x4c741e['content'],_0x561fbe)}))),_0xe65e7=[..._0x100847]['reverse']();for(const _0x12beff of _0xe65e7){if(_0x48223c+_0x12beff[_0xe4f006(0x266)]>_0x4809fb){if(_0x574be9['length']===0x0){const _0x1097d5=await this['_truncateMessage'](_0x12beff['content'],_0x4809fb);_0x574be9[_0xe4f006(0x232)]({..._0x12beff,'content':_0x1097d5,'estimatedTokens':_0x4809fb});}break;}_0x574be9[_0xe4f006(0x232)](_0x12beff),_0x48223c+=_0x12beff['estimatedTokens'];}const _0x1aa24d=_0x100847['slice'](0x0,-_0x574be9['length']);if(_0x1aa24d['length']>0x0){const _0x2693ec=await this['_summarizeMessages'](_0x1aa24d,_0x561fbe);_0x574be9[_0xe4f006(0x232)]({'role':_0xe4f006(0x208),'content':_0xe4f006(0x1e1)+_0x2693ec,'timestamp':_0x1aa24d[0x0]['timestamp'],'type':_0xe4f006(0x209),'estimatedTokens':await this['_estimateTokens'](_0x2693ec,_0x561fbe)});}return this[_0xe4f006(0x204)]['info'](_0xe4f006(0x24a)+_0x561fbe,{'originalMessages':_0x296c34[_0xe4f006(0x24e)],'compactizedMessages':_0x574be9[_0xe4f006(0x24e)],'estimatedTokens':_0x48223c,'maxTokens':_0x4809fb}),_0x574be9;}async['trackUsage'](_0x1d1079,_0x1f8c47,_0x2da714,_0x393ae2){const _0x1722c6=a0_0x353b80;try{this[_0x1722c6(0x23f)]&&this['budgetService'][_0x1722c6(0x26c)](_0x1d1079,_0x1f8c47,_0x2da714);}catch(_0x579a4d){this['logger'][_0x1722c6(0x276)](_0x1722c6(0x275)+_0x579a4d[_0x1722c6(0x1fb)]);}}async['handleHttpError'](_0x5e8f91,_0x2c4f5a){const _0x2adfb0=a0_0x353b80,_0x15de26=this['errorHandler']?.[_0x2adfb0(0x273)]?.(_0x5e8f91,_0x2c4f5a);switch(_0x5e8f91['status']||_0x5e8f91[_0x2adfb0(0x1f7)]){case HTTP_STATUS[_0x2adfb0(0x1d5)]:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x242),{'context':_0x2c4f5a,'error':_0x5e8f91[_0x2adfb0(0x1fb)]});throw new Error('Invalid\x20request:\x20'+_0x5e8f91[_0x2adfb0(0x1fb)]);case HTTP_STATUS[_0x2adfb0(0x219)]:this['logger'][_0x2adfb0(0x276)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2c4f5a});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x2adfb0(0x204)][_0x2adfb0(0x276)]('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x2c4f5a});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x2adfb0(0x256)]:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x240),{'context':_0x2c4f5a});throw new Error(_0x2adfb0(0x1f3));case HTTP_STATUS[_0x2adfb0(0x255)]:this[_0x2adfb0(0x204)]['warn'](_0x2adfb0(0x20c),{'context':_0x2c4f5a}),await this[_0x2adfb0(0x25b)](_0x2c4f5a);throw new Error(_0x2adfb0(0x262));case HTTP_STATUS[_0x2adfb0(0x231)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x25e),{'context':_0x2c4f5a,'status':_0x5e8f91['status']}),await this['_handleServiceUnavailable'](_0x2c4f5a);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x2c4f5a,'error':_0x5e8f91[_0x2adfb0(0x1fb)]});throw new Error('AI\x20service\x20error:\x20'+_0x5e8f91[_0x2adfb0(0x1fb)]);}}[a0_0x353b80(0x245)](_0x1752bc){const _0x4f2c8d=a0_0x353b80;this['apiKeyManager']=_0x1752bc,this[_0x4f2c8d(0x204)]?.['info'](_0x4f2c8d(0x259),{'hasManager':!!_0x1752bc});}[a0_0x353b80(0x1da)](_0x3dbfad){const _0x15abd9=a0_0x353b80;this[_0x15abd9(0x1db)]=_0x3dbfad,this[_0x15abd9(0x204)]?.[_0x15abd9(0x1d1)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3dbfad});}async[a0_0x353b80(0x1fc)](_0x30e336,_0x1319e4={}){const _0x3c945f=a0_0x353b80,_0xdba4d2=_0x3c945f(0x203)+Date[_0x3c945f(0x1d4)]()+'-'+Math['random']()['toString'](0x24)[_0x3c945f(0x264)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x30e336||typeof _0x30e336!=='string'||_0x30e336[_0x3c945f(0x238)]()[_0x3c945f(0x24e)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x9d75b9=_0x1319e4[_0x3c945f(0x1e0)]||'flux-1.1-pro',_0x444afe=_0x1319e4[_0x3c945f(0x1fd)]||_0x3c945f(0x235),_0x52927e=_0x1319e4['quality']||_0x3c945f(0x26f),_0x257b07=_0x1319e4[_0x3c945f(0x210)]||_0x3c945f(0x1df);this['logger'][_0x3c945f(0x1d1)](_0x3c945f(0x20f)+_0x9d75b9,{'requestId':_0xdba4d2,'model':_0x9d75b9,'size':_0x444afe,'quality':_0x52927e,'promptLength':_0x30e336[_0x3c945f(0x24e)]});const _0x2911f9={'prompt':_0x30e336,'model':_0x9d75b9,'size':_0x444afe,'quality':_0x52927e,'response_format':_0x257b07,'n':0x1,'metadata':{'requestId':_0xdba4d2,'timestamp':new Date()['toISOString']()}},_0x30c8f9=await this['_makeImageAPIRequest'](_0x2911f9,_0xdba4d2,{'sessionId':_0x1319e4[_0x3c945f(0x213)],'platformProvided':_0x1319e4[_0x3c945f(0x22e)]||![]});return this[_0x3c945f(0x21a)](),{'url':_0x30c8f9[_0x3c945f(0x239)]?.[0x0]?.['url']||null,'b64_json':_0x30c8f9['data']?.[0x0]?.[_0x3c945f(0x265)]||null,'model':_0x30c8f9[_0x3c945f(0x1e0)]||_0x9d75b9,'requestId':_0xdba4d2,'revisedPrompt':_0x30c8f9[_0x3c945f(0x239)]?.[0x0]?.[_0x3c945f(0x22a)]||_0x30e336};}catch(_0x4ab399){this['_recordFailure'](),this[_0x3c945f(0x204)][_0x3c945f(0x276)]('Image\x20generation\x20failed:\x20'+_0x4ab399['message'],{'requestId':_0xdba4d2,'model':_0x1319e4[_0x3c945f(0x1e0)],'error':_0x4ab399[_0x3c945f(0x201)]});throw _0x4ab399;}}async['checkServiceHealth'](){const _0x5ed53d=a0_0x353b80;try{const _0x4c639c=await this['_makeAPIRequest']('/health',{},'health-check');return _0x4c639c['status']===_0x5ed53d(0x227);}catch(_0x1fdee5){return![];}}async['switchAgentModel'](_0x7e5ef3,_0x34b2e5){const _0x557467=a0_0x353b80;try{if(!this[_0x557467(0x241)](_0x34b2e5))throw new Error('Invalid\x20model:\x20'+_0x34b2e5);let _0x284de7=this[_0x557467(0x25a)]['get'](_0x7e5ef3);!_0x284de7&&(_0x284de7=new ConversationManager(_0x7e5ef3,this[_0x557467(0x204)]),this[_0x557467(0x25a)]['set'](_0x7e5ef3,_0x284de7));const _0x566158=await _0x284de7[_0x557467(0x1f4)](_0x34b2e5),_0x23a6aa=await this[_0x557467(0x1db)]?.[_0x557467(0x212)](_0x7e5ef3);return _0x23a6aa&&(_0x23a6aa[_0x557467(0x1ff)]=_0x34b2e5,await this[_0x557467(0x1db)][_0x557467(0x257)](_0x7e5ef3)),this['logger']['info'](_0x557467(0x251)+_0x7e5ef3,{'newModel':_0x34b2e5,'messageCount':_0x566158['messages'][_0x557467(0x24e)]}),{'success':!![],'agentId':_0x7e5ef3,'newModel':_0x34b2e5,'conversation':_0x566158};}catch(_0xc4c4e9){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0xc4c4e9['message'],{'agentId':_0x7e5ef3,'newModel':_0x34b2e5});throw _0xc4c4e9;}}[a0_0x353b80(0x233)](){const _0x251b70=a0_0x353b80,_0x46a84d={[MODELS[_0x251b70(0x205)]]:{'provider':MODEL_PROVIDERS[_0x251b70(0x254)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x251b70(0x277)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x251b70(0x225)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x251b70(0x1d0)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x251b70(0x1dc),'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':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x251b70(0x1dc),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x46a84d;}[a0_0x353b80(0x26a)](_0x5756b7,_0x349122,_0x38de0d){const _0x5dc4bf=a0_0x353b80,_0x507bc0=this['modelSpecs'][_0x349122]||{'provider':'AZURE'};let _0x11a95e;typeof _0x5756b7==='string'?_0x11a95e=[{'role':_0x5dc4bf(0x22c),'content':_0x5756b7}]:_0x11a95e=_0x5756b7[_0x5dc4bf(0x1e2)](_0x2c54ec=>this[_0x5dc4bf(0x243)](_0x2c54ec,_0x349122));switch(_0x507bc0['provider']){case MODEL_PROVIDERS[_0x5dc4bf(0x254)]:return this['_formatForAnthropic'](_0x11a95e);case MODEL_PROVIDERS['OPENAI']:return this['_formatForOpenAI'](_0x11a95e);case MODEL_PROVIDERS[_0x5dc4bf(0x1dc)]:return this[_0x5dc4bf(0x258)](_0x11a95e);default:return _0x11a95e;}}[a0_0x353b80(0x243)](_0x3df56a,_0x170878){const _0x2b6e9f=a0_0x353b80;return{'role':_0x3df56a[_0x2b6e9f(0x228)]||_0x2b6e9f(0x22c),'content':_0x3df56a[_0x2b6e9f(0x202)],'timestamp':_0x3df56a[_0x2b6e9f(0x253)]};}[a0_0x353b80(0x1d7)](_0x5dcde0){return _0x5dcde0['map'](_0x313113=>{const _0x532126=a0_0x36f7;if(_0x313113['role']==='system')return{'role':'user','content':_0x532126(0x260)+_0x313113['content']};return _0x313113;});}[a0_0x353b80(0x1fa)](_0x595239){return _0x595239;}['_formatForAzure'](_0x58306c){const _0x3958b4=a0_0x353b80;return _0x58306c['map'](_0xd38ed0=>({..._0xd38ed0,'content':typeof _0xd38ed0[_0x3958b4(0x202)]==='string'?_0xd38ed0['content']:JSON['stringify'](_0xd38ed0[_0x3958b4(0x202)])}));}[a0_0x353b80(0x241)](_0x1e49b6){const _0x12bbba=a0_0x353b80;this['logger'][_0x12bbba(0x269)]('Validating\x20model',{'model':_0x1e49b6,'modelType':typeof _0x1e49b6});if(this['modelSpecs'][_0x1e49b6]!==undefined)return!![];return this[_0x12bbba(0x204)][_0x12bbba(0x1f1)](_0x12bbba(0x249),{'model':_0x1e49b6,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async[a0_0x353b80(0x1f9)](_0x2fba96){return!![];}async['_estimateTokens'](_0xb6615b,_0x5593ac){const _0x5c5f88=a0_0x353b80;return Math['ceil'](_0xb6615b[_0x5c5f88(0x24e)]/0x4);}async[a0_0x353b80(0x1e3)](_0x1f1905,_0x46605b){const _0x48ae79=a0_0x353b80,_0x53096b=_0x46605b*0x4;if(_0x1f1905[_0x48ae79(0x24e)]<=_0x53096b)return _0x1f1905;return _0x1f1905[_0x48ae79(0x211)](0x0,_0x53096b-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x193dc5,_0x542e6d){const _0x617245=a0_0x353b80,_0x72aa1d=_0x193dc5['map'](_0x4e852e=>_0x4e852e[_0x617245(0x228)]+':\x20'+_0x4e852e['content'])['join']('\x0a'),_0x16ac19=0x1f4;if(_0x72aa1d['length']<=_0x16ac19)return _0x72aa1d;return _0x72aa1d[_0x617245(0x211)](0x0,_0x16ac19)+_0x617245(0x21c);}async[a0_0x353b80(0x26e)](_0x20679c,_0x4ec65a,_0x118463,_0x183bca={}){const _0x2276c2=a0_0x353b80,_0x1b7f7a=_0x2276c2(0x23d);let _0x660736,_0x49772a=null,_0x5bde4e=null;this['logger']?.['info']('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x2276c2(0x20a)],'sessionId':_0x183bca['sessionId'],'hasSessionId':!!_0x183bca['sessionId'],'optionsKeys':Object['keys'](_0x183bca),'model':_0x4ec65a['model']});if(this['apiKeyManager']&&_0x183bca['sessionId']){const _0x49f0ef=this[_0x2276c2(0x20a)][_0x2276c2(0x26d)](_0x183bca[_0x2276c2(0x213)],{'platformProvided':_0x183bca[_0x2276c2(0x22e)]||![],'vendor':this['_getVendorFromModel'](_0x4ec65a['model'])});_0x49772a=_0x49f0ef[_0x2276c2(0x21d)],_0x5bde4e=_0x49f0ef[_0x2276c2(0x1ee)],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x183bca[_0x2276c2(0x213)],'hasLoxiaKey':!!_0x49772a,'hasVendorKey':!!_0x5bde4e,'vendor':this[_0x2276c2(0x268)](_0x4ec65a[_0x2276c2(0x1e0)])});}!_0x49772a&&_0x183bca[_0x2276c2(0x25d)]&&(_0x49772a=_0x183bca[_0x2276c2(0x25d)]);!_0x49772a&&this[_0x2276c2(0x236)]['apiKey']&&(_0x49772a=this['config'][_0x2276c2(0x25d)]);if(!_0x49772a)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x5bb7fd=_0x4ec65a['model'],_0x3920ec={'conversationId':_0x118463,'message':_0x4ec65a['messages'][_0x4ec65a[_0x2276c2(0x278)]['length']-0x1]?.[_0x2276c2(0x202)]||'','messages':_0x4ec65a['messages'],'model':_0x5bb7fd,'requestId':_0x118463,'options':_0x4ec65a[_0x2276c2(0x1e7)]||{},'platformProvided':_0x183bca['platformProvided']||![]};_0x4ec65a['system']&&(_0x3920ec[_0x2276c2(0x221)]=_0x4ec65a[_0x2276c2(0x208)]);_0x183bca['platformProvided']?_0x3920ec['apiKey']=_0x49772a:(_0x5bde4e&&(_0x3920ec['vendorApiKey']=_0x5bde4e),_0x183bca['customApiKeys']&&(_0x3920ec['customApiKeys']=_0x183bca['customApiKeys']),_0x3920ec['apiKey']=_0x49772a);for(let _0x3c04cd=0x1;_0x3c04cd<=this['retryAttempts'];_0x3c04cd++){try{this['logger'][_0x2276c2(0x1d1)](_0x2276c2(0x1e8),{'url':_0x1b7f7a,'model':_0x4ec65a[_0x2276c2(0x1e0)],'requestId':_0x118463,'attempt':_0x3c04cd,'hasApiKey':!!_0x49772a});const _0x5ddc48=await fetch(_0x1b7f7a,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x2276c2(0x1e4)+_0x49772a,'X-Request-ID':_0x118463},'body':JSON['stringify'](_0x3920ec),'timeout':this['timeout']});if(!_0x5ddc48['ok']){const _0xa4a923=await _0x5ddc48[_0x2276c2(0x218)](),_0x455f8c=new Error('HTTP\x20'+_0x5ddc48[_0x2276c2(0x24c)]+':\x20'+_0x5ddc48['statusText']+(_0xa4a923?'\x20-\x20'+_0xa4a923:''));_0x455f8c[_0x2276c2(0x24c)]=_0x5ddc48[_0x2276c2(0x24c)];throw _0x455f8c;}const _0x27327d=await _0x5ddc48[_0x2276c2(0x21e)]();return{'choices':[{'message':{'content':_0x27327d['content']||'','role':'assistant'},'finish_reason':_0x27327d['finishReason']||_0x2276c2(0x261)}],'usage':_0x27327d['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x27327d['model']||_0x4ec65a[_0x2276c2(0x1e0)],'id':_0x27327d['requestId']||_0x118463};}catch(_0xe45d12){_0x660736=_0xe45d12,this['logger']['warn'](_0x2276c2(0x207),{'attempt':_0x3c04cd,'requestId':_0x118463,'error':_0xe45d12['message'],'status':_0xe45d12['status']});if(_0x3c04cd<this['retryAttempts']){const _0x2b8aa2=Math[_0x2276c2(0x1f0)](0x2,_0x3c04cd)*0x3e8;this[_0x2276c2(0x204)]['warn']('Retrying\x20in\x20'+_0x2b8aa2+'ms',{'attempt':_0x3c04cd,'requestId':_0x118463}),await new Promise(_0x71a536=>setTimeout(_0x71a536,_0x2b8aa2));}}}this['logger']['error'](_0x2276c2(0x23c),{'requestId':_0x118463,'error':_0x660736['message']});const _0x3e0f5a=_0x660736[_0x2276c2(0x1fb)]&&_0x660736[_0x2276c2(0x1fb)]['includes'](_0x2276c2(0x223));if(_0x3e0f5a)throw new Error('API\x20Configuration\x20Error:\x20'+_0x660736['message']);return{'choices':[{'message':{'content':_0x2276c2(0x1f6)+_0x660736['message'],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4ec65a[_0x2276c2(0x1e0)],'id':'error-'+_0x118463,'error':_0x660736['message']};}async['_makeImageAPIRequest'](_0x3d6c5a,_0x503792,_0x4795f9={}){const _0x15d057=a0_0x353b80,_0xd5b989='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x3c06a4,_0x4ec8f5=null,_0x1c4430=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x4795f9[_0x15d057(0x213)],'hasSessionId':!!_0x4795f9['sessionId'],'model':_0x3d6c5a[_0x15d057(0x1e0)]});if(this[_0x15d057(0x20a)]&&_0x4795f9['sessionId']){const _0x476f7d=this[_0x15d057(0x20a)][_0x15d057(0x26d)](_0x4795f9[_0x15d057(0x213)],{'platformProvided':_0x4795f9[_0x15d057(0x22e)]||![],'vendor':this['_getVendorFromModel'](_0x3d6c5a[_0x15d057(0x1e0)])});_0x4ec8f5=_0x476f7d[_0x15d057(0x21d)],_0x1c4430=_0x476f7d['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x4795f9['sessionId'],'hasLoxiaKey':!!_0x4ec8f5,'hasVendorKey':!!_0x1c4430});}!_0x4ec8f5&&_0x4795f9['apiKey']&&(_0x4ec8f5=_0x4795f9['apiKey']);!_0x4ec8f5&&this['config'][_0x15d057(0x25d)]&&(_0x4ec8f5=this[_0x15d057(0x236)]['apiKey']);if(!_0x4ec8f5)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x25274a={'prompt':_0x3d6c5a['prompt'],'model':_0x3d6c5a[_0x15d057(0x1e0)]||_0x15d057(0x1e9),'size':_0x3d6c5a['size'],'quality':_0x3d6c5a[_0x15d057(0x23a)],'style':_0x3d6c5a[_0x15d057(0x1f8)]||_0x15d057(0x230),'n':_0x3d6c5a['n']||0x1,'requestId':_0x503792};for(let _0x5c959a=0x1;_0x5c959a<=this[_0x15d057(0x23e)];_0x5c959a++){try{this['logger'][_0x15d057(0x1d1)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0xd5b989,'model':_0x3d6c5a[_0x15d057(0x1e0)],'requestId':_0x503792,'attempt':_0x5c959a,'hasApiKey':!!_0x4ec8f5});const _0x2e12b7=await fetch(_0xd5b989,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x4ec8f5,'X-Request-ID':_0x503792},'body':JSON['stringify'](_0x25274a),'timeout':this[_0x15d057(0x250)]*0x2});if(!_0x2e12b7['ok']){const _0x534115=await _0x2e12b7['text'](),_0x11b129=new Error('HTTP\x20'+_0x2e12b7[_0x15d057(0x24c)]+':\x20'+_0x2e12b7['statusText']+(_0x534115?'\x20-\x20'+_0x534115:''));_0x11b129['status']=_0x2e12b7['status'];throw _0x11b129;}const _0xc31778=await _0x2e12b7['json']();return{'data':_0xc31778[_0x15d057(0x1e5)]||[],'model':_0xc31778['model']||_0x3d6c5a[_0x15d057(0x1e0)],'created':_0xc31778['created']||Date['now'](),'usage':_0xc31778['usage']};}catch(_0x1a3c34){_0x3c06a4=_0x1a3c34,this[_0x15d057(0x204)]['warn'](_0x15d057(0x220),{'attempt':_0x5c959a,'requestId':_0x503792,'error':_0x1a3c34['message'],'status':_0x1a3c34['status']});if(_0x5c959a<this['retryAttempts']){const _0x3342e6=Math['pow'](0x2,_0x5c959a)*0x3e8;this['logger'][_0x15d057(0x1f1)](_0x15d057(0x1f2)+_0x3342e6+'ms',{'attempt':_0x5c959a,'requestId':_0x503792}),await new Promise(_0x130ef6=>setTimeout(_0x130ef6,_0x3342e6));}}}this[_0x15d057(0x204)]['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x503792,'error':_0x3c06a4[_0x15d057(0x1fb)]});throw new Error('Image\x20generation\x20failed:\x20'+_0x3c06a4['message']);}async[a0_0x353b80(0x244)](_0x10306a){await new Promise(_0x2c45fe=>setTimeout(_0x2c45fe,0x64));}async[a0_0x353b80(0x25b)](_0x5415e5){const _0x2a5724=a0_0x353b80,_0x3953a4=0xea60;this[_0x2a5724(0x204)][_0x2a5724(0x1d1)](_0x2a5724(0x247)+_0x3953a4+'ms',_0x5415e5),await new Promise(_0x2bdc81=>setTimeout(_0x2bdc81,_0x3953a4));}async[a0_0x353b80(0x1ea)](_0x4452a4){const _0x4bd661=a0_0x353b80;this[_0x4bd661(0x267)]();const _0x3ede15=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x3ede15+'ms',_0x4452a4),await new Promise(_0x4410e1=>setTimeout(_0x4410e1,_0x3ede15));}['_isCircuitBreakerOpen'](){const _0x10a710=a0_0x353b80;if(!this['circuitBreaker']['isOpen'])return![];const _0x59c264=Date[_0x10a710(0x1d4)]()-this['circuitBreaker'][_0x10a710(0x1d9)];if(_0x59c264>this[_0x10a710(0x24d)][_0x10a710(0x250)])return this['circuitBreaker'][_0x10a710(0x246)]=![],this['circuitBreaker'][_0x10a710(0x274)]=0x0,![];return!![];}['_recordFailure'](){const _0x27f960=a0_0x353b80;this['circuitBreaker']['failures']++,this['circuitBreaker'][_0x27f960(0x1d9)]=Date[_0x27f960(0x1d4)](),this[_0x27f960(0x24d)]['failures']>=this[_0x27f960(0x24d)][_0x27f960(0x20b)]&&(this[_0x27f960(0x24d)]['isOpen']=!![],this[_0x27f960(0x204)]['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x353b80(0x21a)](){const _0x250e9b=a0_0x353b80;this['circuitBreaker'][_0x250e9b(0x274)]>0x0&&(this[_0x250e9b(0x24d)][_0x250e9b(0x274)]=0x0,this[_0x250e9b(0x24d)]['isOpen']=![],this[_0x250e9b(0x204)][_0x250e9b(0x1d1)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x148dd1){const _0x2827e9=a0_0x353b80;if(!_0x148dd1)return null;const _0x30fa39=_0x148dd1['toLowerCase']();if(_0x30fa39['includes']('anthropic')||_0x30fa39['includes'](_0x2827e9(0x270)))return'anthropic';else{if(_0x30fa39[_0x2827e9(0x237)]('openai')||_0x30fa39[_0x2827e9(0x237)](_0x2827e9(0x1cf)))return _0x2827e9(0x20d);else{if(_0x30fa39['includes']('deepseek'))return'deepseek';else{if(_0x30fa39['includes'](_0x2827e9(0x216)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x20c6e3,_0x282907){const _0x54509c=a0_0x353b80;this['agentId']=_0x20c6e3,this['logger']=_0x282907,this[_0x54509c(0x25c)]=new Map();}async['switchModel'](_0x1b9535){return{'messages':[],'model':_0x1b9535,'lastUpdated':new Date()['toISOString']()};}}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
+ const a0_0x44eec7=a0_0x5baa;(function(_0xafea70,_0x1c59c0){const _0x5ba0d3=a0_0x5baa,_0xccb200=_0xafea70();while(!![]){try{const _0x4d74fd=-parseInt(_0x5ba0d3(0x69))/0x1*(parseInt(_0x5ba0d3(0x6a))/0x2)+-parseInt(_0x5ba0d3(0x6d))/0x3+parseInt(_0x5ba0d3(0x71))/0x4*(parseInt(_0x5ba0d3(0x7f))/0x5)+-parseInt(_0x5ba0d3(0x74))/0x6+parseInt(_0x5ba0d3(0x73))/0x7+-parseInt(_0x5ba0d3(0x88))/0x8*(parseInt(_0x5ba0d3(0x8a))/0x9)+parseInt(_0x5ba0d3(0x6f))/0xa;if(_0x4d74fd===_0x1c59c0)break;else _0xccb200['push'](_0xccb200['shift']());}catch(_0x4b1a23){_0xccb200['push'](_0xccb200['shift']());}}}(a0_0x20f6,0x7fbbd));class ApiKeyManager{constructor(_0x3bc4c1){this['logger']=_0x3bc4c1,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x44eec7(0x7a)](_0x46d807,_0x2ce6ad){const _0x1c51d6=a0_0x44eec7;if(!_0x46d807)throw new Error(_0x1c51d6(0x6e));this[_0x1c51d6(0x78)][_0x1c51d6(0x84)](_0x46d807,{'loxiaApiKey':_0x2ce6ad['loxiaApiKey']||null,'vendorKeys':_0x2ce6ad[_0x1c51d6(0x85)]||{},'updatedAt':new Date()[_0x1c51d6(0x67)]()}),this['logger']?.[_0x1c51d6(0x76)](_0x1c51d6(0x87),{'sessionId':_0x46d807,'hasLoxiaKey':!!_0x2ce6ad['loxiaApiKey'],'vendorKeys':Object[_0x1c51d6(0x80)](_0x2ce6ad['vendorKeys']||{}),'timestamp':new Date()[_0x1c51d6(0x67)]()});}[a0_0x44eec7(0x79)](_0x291a6f){const _0x4f6b11=a0_0x44eec7;if(!_0x291a6f)return this[_0x4f6b11(0x72)];const _0x179aeb=this[_0x4f6b11(0x78)][_0x4f6b11(0x6b)](_0x291a6f);if(_0x179aeb)return _0x179aeb;return this['globalKeys'];}['getKeysForRequest'](_0x25ef4d,_0x1c682f={}){const _0x537fb9=a0_0x44eec7,_0x1bafdf=this['getSessionKeys'](_0x25ef4d),_0x53951c={'loxiaApiKey':_0x1bafdf['loxiaApiKey'],'vendorApiKey':null};return!_0x1c682f[_0x537fb9(0x81)]&&_0x1c682f[_0x537fb9(0x7e)]&&_0x1bafdf[_0x537fb9(0x85)]&&(_0x53951c['vendorApiKey']=_0x1bafdf['vendorKeys'][_0x1c682f[_0x537fb9(0x7e)]]),_0x53951c;}[a0_0x44eec7(0x75)](_0x39ef5c){const _0x38cfda=a0_0x44eec7;if(this[_0x38cfda(0x78)]['delete'](_0x39ef5c))return this['logger']?.['info']('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x39ef5c}),!![];return![];}[a0_0x44eec7(0x68)](_0x13dc30){const _0x1db569=a0_0x44eec7;this[_0x1db569(0x72)]={'loxiaApiKey':_0x13dc30['loxiaApiKey']||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this[_0x1db569(0x72)]['vendorKeys'],..._0x13dc30['vendorKeys']||{}}},this[_0x1db569(0x70)]?.[_0x1db569(0x76)]('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0x1db569(0x72)]['loxiaApiKey'],'vendorKeys':Object['keys'](this['globalKeys']['vendorKeys'])});}['getActiveSessions'](){const _0x14428a=a0_0x44eec7;return Array['from'](this[_0x14428a(0x78)][_0x14428a(0x7c)]())['map'](([_0x5758b9,_0x8eaf77])=>({'sessionId':_0x5758b9,'hasLoxiaKey':!!_0x8eaf77[_0x14428a(0x86)],'vendorKeys':Object[_0x14428a(0x80)](_0x8eaf77['vendorKeys']||{}),'updatedAt':_0x8eaf77[_0x14428a(0x77)]}));}[a0_0x44eec7(0x83)](_0x3a612e=0x18*0x3c*0x3c*0x3e8){const _0x8920b9=a0_0x44eec7,_0x3ec470=Date['now'](),_0x385592=[];for(const [_0x3f63e1,_0x190033]of this[_0x8920b9(0x78)]['entries']()){const _0xe3357c=_0x3ec470-new Date(_0x190033[_0x8920b9(0x77)])[_0x8920b9(0x7d)]();_0xe3357c>_0x3a612e&&_0x385592[_0x8920b9(0x82)](_0x3f63e1);}return _0x385592['forEach'](_0x3d80e9=>{const _0x967502=_0x8920b9;this[_0x967502(0x78)][_0x967502(0x7b)](_0x3d80e9);}),_0x385592[_0x8920b9(0x6c)]>0x0&&this['logger']?.['info']('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x385592[_0x8920b9(0x6c)],'remainingSessions':this['sessionKeys'][_0x8920b9(0x89)]}),_0x385592[_0x8920b9(0x6c)];}}function a0_0x5baa(_0x13100c,_0x5ba549){_0x13100c=_0x13100c-0x67;const _0x20f62a=a0_0x20f6();let _0x5baa34=_0x20f62a[_0x13100c];if(a0_0x5baa['GEJlvr']===undefined){var _0xc23035=function(_0x4b6a64){const _0x3162e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3bc4c1='',_0x46d807='';for(let _0x2ce6ad=0x0,_0x291a6f,_0x179aeb,_0x25ef4d=0x0;_0x179aeb=_0x4b6a64['charAt'](_0x25ef4d++);~_0x179aeb&&(_0x291a6f=_0x2ce6ad%0x4?_0x291a6f*0x40+_0x179aeb:_0x179aeb,_0x2ce6ad++%0x4)?_0x3bc4c1+=String['fromCharCode'](0xff&_0x291a6f>>(-0x2*_0x2ce6ad&0x6)):0x0){_0x179aeb=_0x3162e5['indexOf'](_0x179aeb);}for(let _0x1c682f=0x0,_0x1bafdf=_0x3bc4c1['length'];_0x1c682f<_0x1bafdf;_0x1c682f++){_0x46d807+='%'+('00'+_0x3bc4c1['charCodeAt'](_0x1c682f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46d807);};a0_0x5baa['aAqmRn']=_0xc23035,a0_0x5baa['sIRcLR']={},a0_0x5baa['GEJlvr']=!![];}const _0x462117=_0x20f62a[0x0],_0x16936e=_0x13100c+_0x462117,_0x361669=a0_0x5baa['sIRcLR'][_0x16936e];return!_0x361669?(_0x5baa34=a0_0x5baa['aAqmRn'](_0x5baa34),a0_0x5baa['sIRcLR'][_0x16936e]=_0x5baa34):_0x5baa34=_0x361669,_0x5baa34;}function a0_0x20f6(){const _0x49a423=['z2v0','BgvUz3rO','mtGWnJq1nNL6yvnQCW','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','mtq4mtiZntbbuffUC0e','Bg9Nz2vY','mJK0nda0DgP1EhLe','z2XVyMfSs2v5CW','mJqWotu2ohLxDMHowq','mZyWotq4mgT3A21RuW','CMvTB3zLu2vZC2LVBKTLExm','Aw5MBW','DxbKyxrLzef0','C2vZC2LVBKTLExm','z2v0u2vZC2LVBKTLExm','C2v0u2vZC2LVBKTLExm','zgvSzxrL','zw50CMLLCW','z2v0vgLTzq','DMvUzg9Y','nJv3CuPOB2K','A2v5CW','CgXHDgzVCM1qCM92AwrLza','ChvZAa','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','C2v0','DMvUzg9Ys2v5CW','Bg94AwfbCgLlzxK','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mZC2CMDcs2jO','C2L6zq','mteXotqYuxz5q09p','Dg9ju09tDhjPBMC','C2v0r2XVyMfSs2v5CW','mtyYmZndtenVqNa','ntHVrLPSrMm'];a0_0x20f6=function(){return _0x49a423;};return a0_0x20f6();}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
+ function a0_0x36b7(_0x5b43cc,_0x2a697b){_0x5b43cc=_0x5b43cc-0x12e;const _0x313d51=a0_0x313d();let _0x36b7ec=_0x313d51[_0x5b43cc];if(a0_0x36b7['tyewPy']===undefined){var _0x1a6a5=function(_0x140d1c){const _0x161b2d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d5997='',_0x2834a2='';for(let _0x3cef39=0x0,_0x2be70e,_0xefe6db,_0x2c6e68=0x0;_0xefe6db=_0x140d1c['charAt'](_0x2c6e68++);~_0xefe6db&&(_0x2be70e=_0x3cef39%0x4?_0x2be70e*0x40+_0xefe6db:_0xefe6db,_0x3cef39++%0x4)?_0x3d5997+=String['fromCharCode'](0xff&_0x2be70e>>(-0x2*_0x3cef39&0x6)):0x0){_0xefe6db=_0x161b2d['indexOf'](_0xefe6db);}for(let _0x3d16ae=0x0,_0x36a753=_0x3d5997['length'];_0x3d16ae<_0x36a753;_0x3d16ae++){_0x2834a2+='%'+('00'+_0x3d5997['charCodeAt'](_0x3d16ae)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2834a2);};a0_0x36b7['RufCHz']=_0x1a6a5,a0_0x36b7['CCumzs']={},a0_0x36b7['tyewPy']=!![];}const _0x3d1314=_0x313d51[0x0],_0x468a7d=_0x5b43cc+_0x3d1314,_0x410705=a0_0x36b7['CCumzs'][_0x468a7d];return!_0x410705?(_0x36b7ec=a0_0x36b7['RufCHz'](_0x36b7ec),a0_0x36b7['CCumzs'][_0x468a7d]=_0x36b7ec):_0x36b7ec=_0x410705,_0x36b7ec;}function a0_0x313d(){const _0x4ed61a=['mZq3mtK4nKLPq3fyDG','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','CMvMCMvZAeLUDgvYDMfS','DMfSDwvZ','yw5HBhLZAxm','rMfPBgvKihrVigLUAxrPywXPEMuGyMvUy2HTyxjRihnLCNzPy2uGlsbotYbgquXmqKfdsW','mtiXotq4mK9bAhrhEa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','x2DLDezHC3rLC3rnB2rLBa','r0vu','Bg9Nz2vY','z2v0qMvUy2HTyxjRCW','DgfZA3m','y3jLyxrPDMu','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BwfW','y29UzMLN','nZjqDwn1v0O','mtqWmJrguu5svg0','m1nZEKvOqq','x2DLDe1VC3rdB3n0rwzMAwnPzw50','zxjYB3i','Bw9KzwXZ','qMvHCMvYia','BgvUz3rO','y29ZDa','Aw5MBW','Dw5RBM93BG','AxnmB2fKAw5N','yxbWBgLJyxrPB24VANnVBG','C291CMnL','ndu1mdmWvgLbtvnS','otKYmde1EgTsAxzn','C3rHDhvZ','x2DLDejLC3rnB2rLBezVCLrHC2S','yMvUy2HTyxjRCW','Bg9HzejLBMnOBwfYA3m','Bwf4','A2v5CW','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','mty2mJa5ouLQqwLxEG','nda0whbyrefw','BgfZDfvWzgf0zwq','C29YDa'];a0_0x313d=function(){return _0x4ed61a;};return a0_0x313d();}const a0_0x278d50=a0_0x36b7;(function(_0x26d1a3,_0x17fc9d){const _0x214f4f=a0_0x36b7,_0x59a112=_0x26d1a3();while(!![]){try{const _0x174ad3=parseInt(_0x214f4f(0x148))/0x1+-parseInt(_0x214f4f(0x13f))/0x2*(parseInt(_0x214f4f(0x133))/0x3)+-parseInt(_0x214f4f(0x149))/0x4+-parseInt(_0x214f4f(0x140))/0x5+parseInt(_0x214f4f(0x152))/0x6+-parseInt(_0x214f4f(0x14c))/0x7+parseInt(_0x214f4f(0x132))/0x8*(parseInt(_0x214f4f(0x131))/0x9);if(_0x174ad3===_0x17fc9d)break;else _0x59a112['push'](_0x59a112['shift']());}catch(_0x58288e){_0x59a112['push'](_0x59a112['shift']());}}}(a0_0x313d,0xe9ba9));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x3d5997,_0x2834a2){const _0x2a0f87=a0_0x36b7;this[_0x2a0f87(0x130)]=_0x3d5997,this['logger']=_0x2834a2,this[_0x2a0f87(0x143)]=null,this[_0x2a0f87(0x14a)]=null,this[_0x2a0f87(0x13c)]=![],this['azureBackendUrl']=_0x2a0f87(0x153),this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x2a0f87(0x12e)];}async['initialize'](){const _0x51bb7b=a0_0x36b7;try{await this[_0x51bb7b(0x144)](),this['_scheduleRefresh'](),this['logger'][_0x51bb7b(0x13a)]('Benchmark\x20service\x20initialized');}catch(_0x3cef39){this[_0x51bb7b(0x156)]['error'](_0x51bb7b(0x151),{'error':_0x3cef39['message']}),this['benchmarks']=null;}}['getBenchmarks'](){const _0x517ec5=a0_0x36b7;if(!this[_0x517ec5(0x143)])return this[_0x517ec5(0x156)][_0x517ec5(0x135)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0xb62ece=a0_0x36b7;if(this['isLoading']){this['logger']['debug'](_0xb62ece(0x147));return;}this['isLoading']=!![];try{const _0x2be70e=await this['_fetchFromAzureBackend']();if(_0x2be70e)this[_0xb62ece(0x143)]=_0x2be70e,this[_0xb62ece(0x14a)]=new Date(),this[_0xb62ece(0x156)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x2be70e[_0xb62ece(0x136)]?.[_0xb62ece(0x138)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0xefe6db){this[_0xb62ece(0x156)][_0xb62ece(0x135)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0xefe6db['message'],'endpoint':url}),!this['benchmarks']&&(this[_0xb62ece(0x143)]=null);}finally{this[_0xb62ece(0x13c)]=![];}}['getBenchmarkTable'](){const _0x3e21d4=a0_0x36b7,_0x2c6e68=this[_0x3e21d4(0x157)]();return{'lastUpdated':this[_0x3e21d4(0x14a)]?.['toISOString']()||'unknown','models':_0x2c6e68[_0x3e21d4(0x136)]||[],'tasks':_0x2c6e68['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x2c6e68)};}['needsRefresh'](){const _0x22f507=a0_0x36b7;if(!this[_0x22f507(0x14a)])return!![];const _0x3d16ae=Date['now']()-this[_0x22f507(0x14a)]['getTime']();return _0x3d16ae>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0x529367=a0_0x36b7,_0x36a753=this['azureBackendUrl']+'/llm/model-benchmarks';let _0xf1dc73=null;this['config']['apiKey']&&(_0xf1dc73=this[_0x529367(0x130)]['apiKey']);const _0x1dc38f={'method':_0x529367(0x155),'headers':{'Content-Type':_0x529367(0x13d),..._0xf1dc73&&{'Authorization':_0x529367(0x137)+_0xf1dc73}},'timeout':0x2710};this[_0x529367(0x156)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x36a753});const _0x449d68=await fetch(_0x36a753,_0x1dc38f);if(!_0x449d68['ok'])throw new Error('HTTP\x20'+_0x449d68[_0x529367(0x141)]+':\x20'+_0x449d68['statusText']);const _0x26f333=await _0x449d68['json']();return _0x26f333;}['_generateBenchmarkSummary'](_0x13637f){const _0x48c3f1=a0_0x36b7,_0x541029=_0x13637f[_0x48c3f1(0x136)]||[];return{'totalModels':_0x541029[_0x48c3f1(0x138)],'taskCategories':Object[_0x48c3f1(0x146)](_0x13637f[_0x48c3f1(0x158)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x541029,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x541029,_0x48c3f1(0x150)),'bestForQuickTasks':this[_0x48c3f1(0x142)](_0x541029,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x541029,_0x48c3f1(0x159)),'fastestModel':this['_getFastestModel'](_0x541029),'mostCostEfficient':this[_0x48c3f1(0x134)](_0x541029)};}[a0_0x278d50(0x142)](_0x6a643a,_0x34d7ac){const _0x25da30=a0_0x278d50;return _0x6a643a['filter'](_0x485306=>_0x485306['tasks']&&_0x485306[_0x25da30(0x158)][_0x34d7ac])['sort']((_0x41af76,_0x407cf5)=>(_0x407cf5[_0x25da30(0x158)][_0x34d7ac]['score']||0x0)-(_0x41af76[_0x25da30(0x158)][_0x34d7ac]['score']||0x0))[0x0]?.['name']||_0x25da30(0x13b);}[a0_0x278d50(0x154)](_0x2b7417){const _0x36cab5=a0_0x278d50,_0x34dc8e={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x2b7417['sort']((_0x4ac3e9,_0x1aac14)=>{const _0x2f954f=a0_0x36b7,_0xa5c086=Math[_0x2f954f(0x145)](...Object[_0x2f954f(0x14f)](_0x4ac3e9['tasks']||{})[_0x2f954f(0x12f)](_0x11a09e=>_0x34dc8e[_0x11a09e['speed']]||0x0)),_0xa91ddf=Math[_0x2f954f(0x145)](...Object['values'](_0x1aac14[_0x2f954f(0x158)]||{})['map'](_0x2e9225=>_0x34dc8e[_0x2e9225['speed']]||0x0));return _0xa91ddf-_0xa5c086;})[0x0]?.['name']||_0x36cab5(0x13b);}[a0_0x278d50(0x134)](_0xc7c19c){const _0x4ea0b=a0_0x278d50,_0x232f8f={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0xc7c19c[_0x4ea0b(0x14b)]((_0x54ebbb,_0x246868)=>{const _0x709e86=_0x4ea0b,_0x249d3c=Math['max'](...Object['values'](_0x54ebbb[_0x709e86(0x158)]||{})[_0x709e86(0x12f)](_0x5ee209=>_0x232f8f[_0x5ee209[_0x709e86(0x139)]]||0x0)),_0x2fe197=Math['max'](...Object['values'](_0x246868[_0x709e86(0x158)]||{})['map'](_0x27992c=>_0x232f8f[_0x27992c['cost']]||0x0));return _0x2fe197-_0x249d3c;})[0x0]?.['name']||_0x4ea0b(0x13b);}['_scheduleRefresh'](){const _0x480df7=a0_0x278d50;setInterval(async()=>{const _0x3f2e0e=a0_0x36b7;this['needsRefresh']()&&(this['logger']['debug'](_0x3f2e0e(0x14d)),await this[_0x3f2e0e(0x144)]());},this[_0x480df7(0x14e)]);}async['forceRefresh'](){const _0x107910=a0_0x278d50;this['logger'][_0x107910(0x13a)]('Force\x20refreshing\x20benchmark\x20data'),await this[_0x107910(0x144)]();}['getStatus'](){const _0x35916b=a0_0x278d50;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.['toISOString']()||null,'source':this['benchmarks']?.[_0x35916b(0x13e)]||_0x35916b(0x13b),'modelCount':this[_0x35916b(0x143)]?.[_0x35916b(0x136)]?.[_0x35916b(0x138)]||0x0,'isLoading':this[_0x35916b(0x13c)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
@@ -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_0x217561=a0_0x13ec;function a0_0x57bf(){const _0xa518bc=['tw9KzwW','C2v0qNvKz2v0CW','veHsrvnit0XeuW','zgfPBhLbDMvYywDLCW','y2HLy2TcDwrNzxrmAw1PDhm','mZeXotC3nfLRrwTcEa','ywDLBNrjza','Dw5ZAgLMDa','Aw5WDxq','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgq','zM9YrwfJAa','ndyYmJe1Dfjfwuvm','y29ZDa','rgfPBhK','mJCWndy3mwHIDuHgzG','zxjYB3i','z2v0rNvSBfLLyxi','C29YDa','C2f2zvvZywDLrgf0yq','yNvKz2v0qwXLCNq','vxnHz2uGzgf0ysbZyxzLza','CMvXDwvZDhm','nJG5nJq2nfLHqLPQsG','C2v0','mZbUqNLdt3u','y29TCgXLDgLVBL90B2TLBNm','yNLbz2vUDa','nty5otuYnM9XAhfdqq','z2v0','z2v0qwDLBNrvC2fNzq','ChvZAa','CM91BMq','zw1PDa','mtK1otK1B05QvKnz','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','ltaX','Bw9KzwXjza','y2fSy3vSyxrLq29ZDa','qNvKz2v0igXPBwL0CYb1CgrHDgvK','C2v0DxbqzxjPB2rPy1nHDMu','Dg9Rzw5Z','mJe0nJy0nhrsA3Hrsq','BwvZC2fNzq','Aw5MBW','zgvIDwC','z2v0rgf5','y3n2','Bg9Nz2vY','AgfZ','Dg9ju09tDhjPBMC','AM9PBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','z2v0v2vLA0TLEq','zgfPBhK','D2vLA2X5','Bwf4','AxnxAxrOAw5cDwrNzxq','z2v0tw9UDgHlzxK','y3jLyxrLrw1WDhLvC2fNzq','mtb2sNPiyxO','mJHZCKzqA2S','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','z2v0v2vLA051BwjLCG','Dg9Wtw9KzwXZ','Dw5KzwzPBMvK','Bw9UDgHSEq','Dg9tDhjPBMC','ywXLCNrZ','z2v0rgf5s2v5','z2v0uMvTywLUAw5NqNvKz2v0','C2v0rgf0zq','z2v0vxnHz2u','D2fYBG','DxbKyxrLvxnHz2vfBNrYEq','y29UDMvYDfrVq1nw','zw50CMLLCW','Dg90ywW','rMfPBgvKihrVihrYywnRihvZywDL','Bg9HzfvZywDLrgf0yq','C2vUzej1zgDLDefSzxj0','yNLnB2rLBa','C3rYAw5NAwz5','CgfKu3rHCNq','tu9oveHmwq','y29ZDej5rgf5','ugvYAw9K','DxnHz2u','BM93','yNvKz2v0CW'];a0_0x57bf=function(){return _0xa518bc;};return a0_0x57bf();}function a0_0x13ec(_0x300fd9,_0x2d7354){_0x300fd9=_0x300fd9-0xdc;const _0x57bf36=a0_0x57bf();let _0x13ec9e=_0x57bf36[_0x300fd9];if(a0_0x13ec['yskFVh']===undefined){var _0x149fe5=function(_0x2d6bc7){const _0x635e84='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14147f='',_0x4cca03='';for(let _0x2d7d37=0x0,_0x4ebf98,_0x10c343,_0x1a6a7b=0x0;_0x10c343=_0x2d6bc7['charAt'](_0x1a6a7b++);~_0x10c343&&(_0x4ebf98=_0x2d7d37%0x4?_0x4ebf98*0x40+_0x10c343:_0x10c343,_0x2d7d37++%0x4)?_0x14147f+=String['fromCharCode'](0xff&_0x4ebf98>>(-0x2*_0x2d7d37&0x6)):0x0){_0x10c343=_0x635e84['indexOf'](_0x10c343);}for(let _0x3c0724=0x0,_0x510704=_0x14147f['length'];_0x3c0724<_0x510704;_0x3c0724++){_0x4cca03+='%'+('00'+_0x14147f['charCodeAt'](_0x3c0724)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4cca03);};a0_0x13ec['SSLJHd']=_0x149fe5,a0_0x13ec['FPkitN']={},a0_0x13ec['yskFVh']=!![];}const _0x2a80ec=_0x57bf36[0x0],_0x329e4a=_0x300fd9+_0x2a80ec,_0x3326ad=a0_0x13ec['FPkitN'][_0x329e4a];return!_0x3326ad?(_0x13ec9e=a0_0x13ec['SSLJHd'](_0x13ec9e),a0_0x13ec['FPkitN'][_0x329e4a]=_0x13ec9e):_0x13ec9e=_0x3326ad,_0x13ec9e;}(function(_0x33183e,_0x5e4128){const _0x1ccb75=a0_0x13ec,_0x51ef89=_0x33183e();while(!![]){try{const _0x52b11e=parseInt(_0x1ccb75(0x11a))/0x1*(parseInt(_0x1ccb75(0x135))/0x2)+parseInt(_0x1ccb75(0x122))/0x3+-parseInt(_0x1ccb75(0x136))/0x4*(parseInt(_0x1ccb75(0x104))/0x5)+-parseInt(_0x1ccb75(0x114))/0x6+parseInt(_0x1ccb75(0xfd))/0x7+parseInt(_0x1ccb75(0x10f))/0x8+parseInt(_0x1ccb75(0x107))/0x9*(-parseInt(_0x1ccb75(0x111))/0xa);if(_0x52b11e===_0x5e4128)break;else _0x51ef89['push'](_0x51ef89['shift']());}catch(_0xb7ce1e){_0x51ef89['push'](_0x51ef89['shift']());}}}(a0_0x57bf,0x7b36c));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x14147f,_0x4cca03){const _0x216e9a=a0_0x13ec;this['config']=_0x14147f||{},this[_0x216e9a(0x128)]=_0x4cca03,this[_0x216e9a(0xf5)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x216e9a(0xf2)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x216e9a(0xfa)],'lastAlertTimes':new Map()},this[_0x216e9a(0xed)](),this[_0x216e9a(0x120)]();}['trackUsage'](_0x2d7d37,_0x4ebf98,_0x10c343){const _0x17c130=a0_0x13ec;try{const _0x1a6a7b=this[_0x17c130(0x11e)](_0x4ebf98,_0x10c343),_0x3c0724=new Date(),_0x510704=this[_0x17c130(0xe3)](_0x3c0724),_0x729664=this['getWeekKey'](_0x3c0724),_0x23f193=this[_0x17c130(0x133)](_0x3c0724);this['initializeUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0x12f)],_0x510704),this[_0x17c130(0x101)](this['usage'][_0x17c130(0x130)],_0x729664),this['initializeUsageEntry'](this['usage'][_0x17c130(0xe0)],_0x23f193);const _0xf27d99={'agentId':_0x2d7d37,'modelId':_0x4ebf98,'tokens':_0x10c343['total_tokens'],'cost':_0x1a6a7b,'timestamp':_0x3c0724[_0x17c130(0x12a)]()};return this['updateUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0x12f)][_0x17c130(0x115)](_0x510704),_0xf27d99),this[_0x17c130(0xe8)](this['usage'][_0x17c130(0x130)][_0x17c130(0x115)](_0x729664),_0xf27d99),this['updateUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0xe0)]['get'](_0x23f193),_0xf27d99),this['usage']['total']['tokens']+=_0x10c343['total_tokens'],this[_0x17c130(0xf5)][_0x17c130(0xeb)]['cost']+=_0x1a6a7b,this[_0x17c130(0xf5)]['total']['requests']+=0x1,this[_0x17c130(0xfc)](_0x510704,_0x729664,_0x23f193),this[_0x17c130(0x128)][_0x17c130(0x124)]('Usage\x20tracked',{'agentId':_0x2d7d37,'modelId':_0x4ebf98,'tokens':_0x10c343['total_tokens'],'cost':_0x1a6a7b,'totalCost':this[_0x17c130(0xf5)][_0x17c130(0xeb)]['cost']}),{'cost':_0x1a6a7b,'totalCost':this[_0x17c130(0xf5)][_0x17c130(0xeb)][_0x17c130(0x105)],'totalTokens':this[_0x17c130(0xf5)][_0x17c130(0xeb)]['tokens'],'dailyUsage':this['usage']['daily'][_0x17c130(0x115)](_0x510704),'budgetRemaining':this[_0x17c130(0xe4)]()};}catch(_0x77516b){this[_0x17c130(0x128)][_0x17c130(0x108)](_0x17c130(0xec),{'error':_0x77516b['message'],'agentId':_0x2d7d37,'modelId':_0x4ebf98});throw _0x77516b;}}[a0_0x217561(0x11e)](_0x2b5540,_0x519d69){const _0x315ae3=a0_0x217561,_0x41b135=COST_PER_TOKEN[_0x2b5540];if(!_0x41b135)return this[_0x315ae3(0x128)][_0x315ae3(0xe7)](_0x315ae3(0x11b),{'modelId':_0x2b5540}),0x0;const _0x2a84d4=(_0x519d69['prompt_tokens']||0x0)*_0x41b135[_0x315ae3(0x100)],_0x387090=(_0x519d69[_0x315ae3(0x112)]||0x0)*_0x41b135['output'];return _0x2a84d4+_0x387090;}['getUsage'](_0x1aac1b=a0_0x217561(0x12f),_0x42b8ca=new Date()){const _0xf689d8=a0_0x217561;switch(_0x1aac1b){case _0xf689d8(0x12f):return this['usage']['daily'][_0xf689d8(0x115)](this[_0xf689d8(0xe3)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0x130):return this['usage']['weekly'][_0xf689d8(0x115)](this[_0xf689d8(0x12e)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0xe0):return this['usage'][_0xf689d8(0xe0)]['get'](this[_0xf689d8(0x133)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0xeb):return{...this['usage'][_0xf689d8(0xeb)]};default:throw new Error('Invalid\x20period:\x20'+_0x1aac1b);}}[a0_0x217561(0x116)](_0x2ed630,_0x5076de='daily'){const _0xc22988=a0_0x217561,_0x38b790=this[_0xc22988(0xe6)](_0x5076de);return _0x38b790['byAgent']?.[_0x2ed630]||this[_0xc22988(0x134)]();}['getModelUsage'](_0x3d9f24,_0x48143c=a0_0x217561(0x12f)){const _0x1287a0=this['getUsage'](_0x48143c);return _0x1287a0['byModel']?.[_0x3d9f24]||this['createEmptyUsage']();}[a0_0x217561(0xf9)](_0x194c1e){const _0x554f7c=a0_0x217561;if(_0x194c1e[_0x554f7c(0x12f)]!==undefined)this['budgets'][_0x554f7c(0x12f)]=_0x194c1e['daily'];if(_0x194c1e[_0x554f7c(0x130)]!==undefined)this['budgets']['weekly']=_0x194c1e['weekly'];if(_0x194c1e['monthly']!==undefined)this['budgets'][_0x554f7c(0xe0)]=_0x194c1e[_0x554f7c(0xe0)];this[_0x554f7c(0x128)][_0x554f7c(0x124)](_0x554f7c(0x11f),this['budgets']),this[_0x554f7c(0x10b)]();}[a0_0x217561(0xe4)](){const _0x41f3f5=a0_0x217561,_0x48ee8e=new Date(),_0x25c991=this[_0x41f3f5(0xe6)](_0x41f3f5(0x12f),_0x48ee8e),_0x1fc40f=this['getUsage']('weekly',_0x48ee8e),_0x208f61=this[_0x41f3f5(0xe6)](_0x41f3f5(0xe0),_0x48ee8e);return{'daily':Math['max'](0x0,this[_0x41f3f5(0xf7)][_0x41f3f5(0x12f)]-_0x25c991[_0x41f3f5(0x105)]),'weekly':Math[_0x41f3f5(0x131)](0x0,this['budgets']['weekly']-_0x1fc40f[_0x41f3f5(0x105)]),'monthly':Math['max'](0x0,this[_0x41f3f5(0xf7)]['monthly']-_0x208f61[_0x41f3f5(0x105)])};}[a0_0x217561(0x132)](_0x24a527=a0_0x217561(0x12f)){const _0x2a317d=a0_0x217561,_0x411697=this[_0x2a317d(0xe6)](_0x24a527),_0xa427e6=this[_0x2a317d(0xf7)][_0x24a527];return _0x411697['cost']<=_0xa427e6;}['getUsageTrends'](_0x24b92b=0x1e){const _0x25a917=a0_0x217561,_0x4b21f3={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xe23d47=new Date();let _0x2b4738=0x0,_0x166544=0x0,_0x11692d=0x0;const _0x3e2a51=new Map(),_0x462993=new Map();for(let _0x40d972=0x0;_0x40d972<_0x24b92b;_0x40d972++){const _0x4b95fc=new Date(_0xe23d47);_0x4b95fc[_0x25a917(0xe5)](_0x4b95fc['getDate']()-_0x40d972);const _0x4d9d20=this[_0x25a917(0xe3)](_0x4b95fc),_0x287076=this[_0x25a917(0xf5)][_0x25a917(0x12f)][_0x25a917(0x115)](_0x4d9d20);_0x287076?(_0x2b4738+=_0x287076[_0x25a917(0x105)],_0x166544+=_0x287076['tokens'],_0x11692d+=_0x287076[_0x25a917(0x10e)],_0x4b21f3[_0x25a917(0xf3)]['unshift']({'date':_0x4d9d20,'cost':_0x287076[_0x25a917(0x105)]}),_0x4b21f3['tokensByDay']['unshift']({'date':_0x4d9d20,'tokens':_0x287076[_0x25a917(0x121)]}),Object['entries'](_0x287076[_0x25a917(0x113)]||{})['forEach'](([_0x18bfdf,_0x1cc974])=>{const _0x1c2a48=_0x25a917;!_0x3e2a51['has'](_0x18bfdf)&&_0x3e2a51['set'](_0x18bfdf,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x22d6fa=_0x3e2a51['get'](_0x18bfdf);_0x22d6fa[_0x1c2a48(0x105)]+=_0x1cc974[_0x1c2a48(0x105)],_0x22d6fa['tokens']+=_0x1cc974[_0x1c2a48(0x121)],_0x22d6fa[_0x1c2a48(0x10e)]+=_0x1cc974['requests'];}),Object['entries'](_0x287076['byModel']||{})['forEach'](([_0x6fb98,_0x2c98d8])=>{const _0x38818c=_0x25a917;!_0x462993[_0x38818c(0x129)](_0x6fb98)&&_0x462993[_0x38818c(0x110)](_0x6fb98,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5f0ec3=_0x462993[_0x38818c(0x115)](_0x6fb98);_0x5f0ec3[_0x38818c(0x105)]+=_0x2c98d8['cost'],_0x5f0ec3['tokens']+=_0x2c98d8['tokens'],_0x5f0ec3[_0x38818c(0x10e)]+=_0x2c98d8['requests'];})):(_0x4b21f3[_0x25a917(0xf3)]['unshift']({'date':_0x4d9d20,'cost':0x0}),_0x4b21f3['tokensByDay'][_0x25a917(0xff)]({'date':_0x4d9d20,'tokens':0x0}));}return _0x4b21f3[_0x25a917(0xfb)][_0x25a917(0x105)]=_0x2b4738/_0x24b92b,_0x4b21f3['dailyAverages'][_0x25a917(0x121)]=_0x166544/_0x24b92b,_0x4b21f3[_0x25a917(0xfb)]['requests']=_0x11692d/_0x24b92b,_0x4b21f3['topAgents']=Array['from'](_0x3e2a51[_0x25a917(0xea)]())['map'](([_0x23d63b,_0x5c0205])=>({'id':_0x23d63b,..._0x5c0205}))[_0x25a917(0x10a)]((_0x5779af,_0x5ebd0a)=>_0x5ebd0a[_0x25a917(0x105)]-_0x5779af['cost'])['slice'](0x0,0xa),_0x4b21f3[_0x25a917(0xde)]=Array['from'](_0x462993['entries']())['map'](([_0x1a0d8a,_0x3e08cd])=>({'id':_0x1a0d8a,..._0x3e08cd}))['sort']((_0x1fbcfa,_0x424e92)=>_0x424e92[_0x25a917(0x105)]-_0x1fbcfa[_0x25a917(0x105)])['slice'](0x0,0xa),_0x4b21f3;}['exportUsageData'](_0x31ecd2='json',_0x1e2533=null,_0x257007=null){const _0x77f78d=a0_0x217561,_0x3cdd1f={'budgets':this[_0x77f78d(0xf7)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0xaf8f56=(_0x381634,_0x1ed313)=>{const _0x550172=_0x77f78d,_0x55f07b={};return _0x381634[_0x550172(0x103)]((_0xc584d6,_0x1f77ef)=>{const _0x256f6c=_0x1ed313(_0x1f77ef);(!_0x1e2533||_0x256f6c>=_0x1e2533)&&(!_0x257007||_0x256f6c<=_0x257007)&&(_0x55f07b[_0x1f77ef]=_0xc584d6);}),_0x55f07b;};_0x1e2533||_0x257007?(_0x3cdd1f['daily']=_0xaf8f56(this['usage']['daily'],_0x42e02a=>new Date(_0x42e02a)),_0x3cdd1f[_0x77f78d(0x130)]=_0xaf8f56(this[_0x77f78d(0xf5)][_0x77f78d(0x130)],_0x52206=>new Date(_0x52206)),_0x3cdd1f['monthly']=_0xaf8f56(this[_0x77f78d(0xf5)]['monthly'],_0x5bcdb2=>new Date(_0x5bcdb2+_0x77f78d(0x11c)))):(this[_0x77f78d(0xf5)]['daily']['forEach']((_0x1181b5,_0x20ef2d)=>_0x3cdd1f[_0x77f78d(0x12f)][_0x20ef2d]=_0x1181b5),this['usage']['weekly'][_0x77f78d(0x103)]((_0x2995c4,_0x2ec233)=>_0x3cdd1f[_0x77f78d(0x130)][_0x2ec233]=_0x2995c4),this['usage'][_0x77f78d(0xe0)][_0x77f78d(0x103)]((_0x59e4da,_0x5cf716)=>_0x3cdd1f[_0x77f78d(0xe0)][_0x5cf716]=_0x59e4da));if(_0x31ecd2===_0x77f78d(0x127))return this['convertToCSV'](_0x3cdd1f);return JSON[_0x77f78d(0xf0)](_0x3cdd1f,null,0x2);}[a0_0x217561(0x101)](_0x3a3d28,_0x374344){const _0x5e72db=a0_0x217561;!_0x3a3d28[_0x5e72db(0x129)](_0x374344)&&_0x3a3d28['set'](_0x374344,this[_0x5e72db(0x134)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x217561(0xe8)](_0x181626,_0x1d61d5){const _0xa59ae0=a0_0x217561;_0x181626[_0xa59ae0(0x105)]+=_0x1d61d5['cost'],_0x181626['tokens']+=_0x1d61d5['tokens'],_0x181626['requests']+=0x1,!_0x181626[_0xa59ae0(0x113)][_0x1d61d5['agentId']]&&(_0x181626[_0xa59ae0(0x113)][_0x1d61d5[_0xa59ae0(0xfe)]]=this['createEmptyUsage']()),_0x181626['byAgent'][_0x1d61d5['agentId']]['cost']+=_0x1d61d5[_0xa59ae0(0x105)],_0x181626['byAgent'][_0x1d61d5[_0xa59ae0(0xfe)]][_0xa59ae0(0x121)]+=_0x1d61d5['tokens'],_0x181626[_0xa59ae0(0x113)][_0x1d61d5['agentId']][_0xa59ae0(0x10e)]+=0x1,!_0x181626[_0xa59ae0(0xef)][_0x1d61d5[_0xa59ae0(0x11d)]]&&(_0x181626[_0xa59ae0(0xef)][_0x1d61d5['modelId']]=this[_0xa59ae0(0x134)]()),_0x181626['byModel'][_0x1d61d5[_0xa59ae0(0x11d)]]['cost']+=_0x1d61d5['cost'],_0x181626['byModel'][_0x1d61d5['modelId']]['tokens']+=_0x1d61d5['tokens'],_0x181626[_0xa59ae0(0xef)][_0x1d61d5[_0xa59ae0(0x11d)]]['requests']+=0x1;}['checkBudgetLimits'](_0x57e9aa,_0x4b221f,_0x571ced){const _0x3d9da5=a0_0x217561,_0x4f61be=this['usage']['daily']['get'](_0x57e9aa),_0x4e2073=this[_0x3d9da5(0xf5)][_0x3d9da5(0x130)]['get'](_0x4b221f),_0xba7b0d=this['usage'][_0x3d9da5(0xe0)]['get'](_0x571ced);_0x4f61be[_0x3d9da5(0x105)]>this['budgets'][_0x3d9da5(0x12f)]&&this[_0x3d9da5(0xee)](_0x3d9da5(0x12f),_0x4f61be['cost'],this[_0x3d9da5(0xf7)]['daily']),_0x4e2073[_0x3d9da5(0x105)]>this['budgets'][_0x3d9da5(0x130)]&&this[_0x3d9da5(0xee)]('weekly',_0x4e2073['cost'],this['budgets']['weekly']),_0xba7b0d['cost']>this['budgets'][_0x3d9da5(0xe0)]&&this['sendBudgetAlert'](_0x3d9da5(0xe0),_0xba7b0d[_0x3d9da5(0x105)],this[_0x3d9da5(0xf7)][_0x3d9da5(0xe0)]),this[_0x3d9da5(0x12c)](_0x4f61be,_0x4e2073,_0xba7b0d);}['checkThresholdAlerts'](_0x227a4f,_0xf9a288,_0x43050b){const _0x5b8ca9=a0_0x217561,_0x1e248a=this[_0x5b8ca9(0xe2)]['thresholds'];this[_0x5b8ca9(0x102)]('daily',_0x227a4f[_0x5b8ca9(0x105)],this['budgets']['daily'],_0x1e248a),this['checkThreshold']('weekly',_0xf9a288['cost'],this['budgets']['weekly'],_0x1e248a),this[_0x5b8ca9(0x102)](_0x5b8ca9(0xe0),_0x43050b['cost'],this['budgets']['monthly'],_0x1e248a);}['checkThreshold'](_0xea0b8,_0x4bd446,_0x459c05,_0x3a573f){const _0x2b3a03=a0_0x217561,_0x2270c8=_0x4bd446/_0x459c05*0x64;for(const _0x2bef94 of _0x3a573f){if(_0x2270c8>=_0x2bef94){const _0x4c6949=_0xea0b8+'_'+_0x2bef94,_0x2e466f=this['alerts']['lastAlertTimes'][_0x2b3a03(0x115)](_0x4c6949),_0x4bbc0d=Date[_0x2b3a03(0xf6)]();(!_0x2e466f||_0x4bbc0d-_0x2e466f>0x36ee80)&&(this['sendThresholdAlert'](_0xea0b8,_0x2270c8,_0x2bef94,_0x4bd446,_0x459c05),this[_0x2b3a03(0xe2)]['lastAlertTimes']['set'](_0x4c6949,_0x4bbc0d));break;}}}['sendBudgetAlert'](_0xd3279b,_0x3bee18,_0x58fc45){const _0x4502fa=a0_0x217561;this[_0x4502fa(0x128)]['warn']('Budget\x20limit\x20exceeded',{'period':_0xd3279b,'currentUsage':_0x3bee18,'budgetLimit':_0x58fc45,'excess':_0x3bee18-_0x58fc45}),typeof process!==_0x4502fa(0xdf)&&process['emit']&&process['emit'](_0x4502fa(0x10c),{'type':'budget_exceeded','period':_0xd3279b,'currentUsage':_0x3bee18,'budgetLimit':_0x58fc45,'excess':_0x3bee18-_0x58fc45});}['sendThresholdAlert'](_0x10daef,_0xda7a02,_0x4bada0,_0x85c5e4,_0x1ca49d){const _0x3ef901=a0_0x217561;this['logger'][_0x3ef901(0xe7)]('Budget\x20threshold\x20reached',{'period':_0x10daef,'percentage':Math[_0x3ef901(0x118)](_0xda7a02),'threshold':_0x4bada0,'usage':_0x85c5e4,'budget':_0x1ca49d}),typeof process!=='undefined'&&process[_0x3ef901(0x119)]&&process['emit']('budgetAlert',{'type':'threshold_reached','period':_0x10daef,'percentage':Math['round'](_0xda7a02),'threshold':_0x4bada0,'usage':_0x85c5e4,'budget':_0x1ca49d});}['getDayKey'](_0x371b93){const _0x480e50=a0_0x217561;return _0x371b93[_0x480e50(0x12a)]()['split']('T')[0x0];}['getWeekKey'](_0x3abe69){const _0x276238=a0_0x217561,_0xf28f4c=_0x3abe69[_0x276238(0x109)](),_0x228d6c=this['getWeekNumber'](_0x3abe69);return _0xf28f4c+'-W'+_0x228d6c['toString']()['padStart'](0x2,'0');}[a0_0x217561(0x133)](_0x2fdc1c){const _0xca4e02=a0_0x217561,_0x12528d=_0x2fdc1c[_0xca4e02(0x109)](),_0x494e08=_0x2fdc1c['getMonth']()+0x1;return _0x12528d+'-'+_0x494e08[_0xca4e02(0xe1)]()[_0xca4e02(0xf1)](0x2,'0');}[a0_0x217561(0xdd)](_0x1c8d3a){const _0x3ac5e8=a0_0x217561,_0x176bbf=new Date(_0x1c8d3a['getFullYear'](),0x0,0x1),_0x36760=(_0x1c8d3a-_0x176bbf)/0x5265c00;return Math['ceil']((_0x36760+_0x176bbf[_0x3ac5e8(0x126)]()+0x1)/0x7);}[a0_0x217561(0xe9)](_0x34c050){const _0x1f81fa=a0_0x217561,_0x4a8df8=[];return _0x4a8df8[_0x1f81fa(0x117)]([_0x1f81fa(0xf4),'Date','Cost','Tokens','Requests','Agent',_0x1f81fa(0xf8)]),Object['entries'](_0x34c050[_0x1f81fa(0x12f)])['forEach'](([_0x55aae6,_0x298d2e])=>{const _0x17871a=_0x1f81fa;_0x4a8df8[_0x17871a(0x117)](['Daily',_0x55aae6,_0x298d2e[_0x17871a(0x105)],_0x298d2e['tokens'],_0x298d2e['requests'],'','']),Object['entries'](_0x298d2e['byAgent']||{})['forEach'](([_0x1ea794,_0x4161a2])=>{const _0x432cdd=_0x17871a;_0x4a8df8['push']([_0x432cdd(0x106),_0x55aae6,_0x4161a2[_0x432cdd(0x105)],_0x4161a2[_0x432cdd(0x121)],_0x4161a2['requests'],_0x1ea794,'']);});}),_0x4a8df8['map'](_0x121730=>_0x121730[_0x1f81fa(0x12b)](','))['join']('\x0a');}[a0_0x217561(0xed)](){const _0x2f4cd1=a0_0x217561;try{this['logger']['info'](_0x2f4cd1(0x12d));}catch(_0x3ef5dd){this['logger'][_0x2f4cd1(0x108)](_0x2f4cd1(0xdc),{'error':_0x3ef5dd['message']});}}['saveUsageData'](){const _0x7809c9=a0_0x217561;try{this['logger'][_0x7809c9(0x125)](_0x7809c9(0x10d));}catch(_0x2b7282){this[_0x7809c9(0x128)][_0x7809c9(0x108)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x2b7282[_0x7809c9(0x123)]});}}['setupPeriodicSave'](){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_0x4ebb(_0x3b29d1,_0x2f6fde){_0x3b29d1=_0x3b29d1-0xfd;const _0x10f072=a0_0x10f0();let _0x4ebb47=_0x10f072[_0x3b29d1];if(a0_0x4ebb['fBrJmD']===undefined){var _0x4d4050=function(_0x5b6c44){const _0x457403='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x7f49bd='',_0x2226f4='';for(let _0x49302e=0x0,_0x482e2b,_0x5948d6,_0x3502e8=0x0;_0x5948d6=_0x5b6c44['charAt'](_0x3502e8++);~_0x5948d6&&(_0x482e2b=_0x49302e%0x4?_0x482e2b*0x40+_0x5948d6:_0x5948d6,_0x49302e++%0x4)?_0x7f49bd+=String['fromCharCode'](0xff&_0x482e2b>>(-0x2*_0x49302e&0x6)):0x0){_0x5948d6=_0x457403['indexOf'](_0x5948d6);}for(let _0x3de263=0x0,_0x4d8fb7=_0x7f49bd['length'];_0x3de263<_0x4d8fb7;_0x3de263++){_0x2226f4+='%'+('00'+_0x7f49bd['charCodeAt'](_0x3de263)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2226f4);};a0_0x4ebb['LSRrXz']=_0x4d4050,a0_0x4ebb['AwjAWP']={},a0_0x4ebb['fBrJmD']=!![];}const _0x4a78da=_0x10f072[0x0],_0x55a345=_0x3b29d1+_0x4a78da,_0x23aea0=a0_0x4ebb['AwjAWP'][_0x55a345];return!_0x23aea0?(_0x4ebb47=a0_0x4ebb['LSRrXz'](_0x4ebb47),a0_0x4ebb['AwjAWP'][_0x55a345]=_0x4ebb47):_0x4ebb47=_0x23aea0,_0x4ebb47;}const a0_0x4c45f7=a0_0x4ebb;(function(_0xef7cc2,_0x3e02f9){const _0x45b102=a0_0x4ebb,_0x381436=_0xef7cc2();while(!![]){try{const _0x5a0dec=parseInt(_0x45b102(0x10c))/0x1+-parseInt(_0x45b102(0x12e))/0x2*(parseInt(_0x45b102(0x10e))/0x3)+-parseInt(_0x45b102(0x129))/0x4*(-parseInt(_0x45b102(0x12d))/0x5)+-parseInt(_0x45b102(0x12c))/0x6+parseInt(_0x45b102(0x11e))/0x7*(-parseInt(_0x45b102(0x11d))/0x8)+-parseInt(_0x45b102(0x125))/0x9+parseInt(_0x45b102(0x10b))/0xa*(parseInt(_0x45b102(0x11a))/0xb);if(_0x5a0dec===_0x3e02f9)break;else _0x381436['push'](_0x381436['shift']());}catch(_0x26d66f){_0x381436['push'](_0x381436['shift']());}}}(a0_0x10f0,0x3f47c));import a0_0x7f49bd from'./fileAttachmentService.js';function a0_0x10f0(){const _0x1a4289=['CMvMzxjLBMnL','zMLSzu5HBwu','zM9YBwf0q29UDgvUDezPBgu','Dg9Rzw5fC3rPBwf0zq','Dg9ju09tDhjPBMC','zM9YBwf0vgv4DezPBgu','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','nde5mhfev1vzqq','mZK1mJqWCLHTtNr6','zM9YBwf0qNL0zxm','m0jTu3POAG','jNf1B3q7','zxn0Aw1HDgvuB3rHBfrVA2vUCW','pc9HDhrHy2HLzc1MAwXLCZ4k','zxnJyxbLwg1S','zM9YBwf0sw1Hz2vgAwXL','BwvZC2fNzq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','ChvZAa','zMXVB3i','y29UDgvUDa','yNvPBgreEw5HBwLJq29UDgv4Da','nZiZofb0Cg1uva','jMD0oW','Bw9Kzq','mJq4nJqWoeXqBvfsuW','n2L2EhrssW','zMLSDgvY','iIb0ExbLpsi','CgrM','iIbTB2rPzMLLzd0I','Bg9Nz2vY','s0iIig1Vzgu9iMnVBNrLBNqIpGO','mtC0odqYmvDWDNLqBG','Aw5PDgLHBgL6zq','jMX0oW','CMvWBgfJzq','mtu1nLbczgHztq','zM9YBwf0uMvMzxjLBMnLrMLSzq','jMfWB3m7','mJGXmtG0whD1sLDS','nty5mg5tChLeqW','nJa0otG4uvzzswnn','z2v0qxr0ywnOBwvUDenVBNrLBNq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','iIbZAxPLpsi','Bg9N','zM9YBwf0ugrMrMLSzq','Dgv4Da','yxr0ywnOBwvUDfnLCNzPy2u','cJXMAwXLlxjLzMvYzw5Jzxm+cG','zxjYB3i','cIaGpc9MAwXLpG','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','BgvUz3rO','ica8zMLSzsbUyw1Lpsi','Dg9gAxHLza'];a0_0x10f0=function(){return _0x1a4289;};return a0_0x10f0();}class ContextInjectionService{constructor(_0x2226f4={},_0x49302e=null){const _0x1103bf=a0_0x4ebb;this['config']=_0x2226f4,this['logger']=_0x49302e,this[_0x1103bf(0x135)]=new a0_0x7f49bd(_0x2226f4,_0x49302e);}async['initialize'](){const _0x22f244=a0_0x4ebb;await this['attachmentService'][_0x22f244(0x126)]();}async[a0_0x4c45f7(0x119)](_0x482e2b){const _0x22de7b=a0_0x4c45f7;try{const _0x5948d6=await this[_0x22de7b(0x135)][_0x22de7b(0x115)](_0x482e2b);if(_0x5948d6['length']===0x0)return'';const _0x3502e8=_0x5948d6[_0x22de7b(0x11f)](_0x5d5ce1=>_0x5d5ce1['mode']===_0x22de7b(0x118)),_0x3de263=_0x5948d6[_0x22de7b(0x11f)](_0x26690f=>_0x26690f['mode']==='reference');let _0x4d8fb7='';if(_0x3502e8[_0x22de7b(0x101)]>0x0){_0x4d8fb7+='\x0a<attached-files>\x0a';for(const _0x5029e5 of _0x3502e8){const _0x35d888=await this[_0x22de7b(0x135)][_0x22de7b(0x12f)](_0x5029e5['fileId']);if(_0x35d888){const _0x4920d7=this['formatContentFile'](_0x5029e5,_0x35d888);_0x4d8fb7+=_0x4920d7+'\x0a';}}_0x4d8fb7+=_0x22de7b(0x111);}if(_0x3de263[_0x22de7b(0x101)]>0x0){_0x4d8fb7+=_0x22de7b(0xfd);for(const _0x25016e of _0x3de263){const _0x24a3e1=this['formatReferenceFile'](_0x25016e);_0x4d8fb7+=_0x24a3e1+'\x0a';}_0x4d8fb7+=_0x22de7b(0x130),_0x4d8fb7+=_0x22de7b(0x10a);}return _0x4d8fb7;}catch(_0x2a2761){return this['logger']?.[_0x22de7b(0xfe)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x482e2b,'error':_0x2a2761[_0x22de7b(0x114)]}),'';}}[a0_0x4c45f7(0x106)](_0x521d53,_0x404d12){const _0x35c0be=a0_0x4c45f7,{fileName:_0x264b4c,fileType:_0x2bb86a,size:_0x1defb8,contentType:_0x274d08}=_0x521d53,_0x352da1=(_0x1defb8/0x400)['toFixed'](0x2);if(_0x274d08===_0x35c0be(0x134))return this[_0x35c0be(0x109)](_0x521d53,_0x404d12);else{if(_0x274d08==='image')return this[_0x35c0be(0x113)](_0x521d53,_0x404d12);else{if(_0x274d08===_0x35c0be(0x121))return this[_0x35c0be(0x133)](_0x521d53,_0x404d12);}}return'\x20\x20<file\x20name=\x22'+this[_0x35c0be(0x112)](_0x264b4c)+'\x22\x20type=\x22'+_0x2bb86a+_0x35c0be(0x131)+_0x352da1+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x35c0be(0x112)](_0x404d12)+'\x0a\x20\x20</file>';}[a0_0x4c45f7(0x109)](_0x1a0c90,_0xfb3933){const _0x591336=a0_0x4c45f7,{fileName:_0x13c96a,fileType:_0x2753e7,size:_0x2ea6d2}=_0x1a0c90,_0x208fdc=(_0x2ea6d2/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x13c96a)+'\x22\x20type=\x22'+_0x2753e7+'\x22\x20size=\x22'+_0x208fdc+_0x591336(0x124)+this[_0x591336(0x112)](_0xfb3933)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x1c6791,_0x47a393){const _0x1b7616=a0_0x4c45f7,{fileName:_0x2203f4,fileType:_0xd167c0,size:_0x39e644}=_0x1c6791,_0x528ee7=(_0x39e644/0x400)[_0x1b7616(0x103)](0x2);return _0x1b7616(0x102)+this['escapeXml'](_0x2203f4)+_0x1b7616(0x120)+_0xd167c0+'\x22\x20size=\x22'+_0x528ee7+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x47a393+'\x0a\x20\x20</file>';}['formatPdfFile'](_0x3b4a8b,_0x56e522){const _0x16490e=a0_0x4c45f7,{fileName:_0x4331e0,fileType:_0x4dac4d,size:_0x5f0c86}=_0x3b4a8b,_0xd8305e=(_0x5f0c86/0x400)['toFixed'](0x2);return _0x16490e(0x102)+this['escapeXml'](_0x4331e0)+_0x16490e(0x120)+_0x4dac4d+'\x22\x20size=\x22'+_0xd8305e+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x56e522)+_0x16490e(0xff);}[a0_0x4c45f7(0x12a)](_0x4918af){const _0x490bbc=a0_0x4c45f7,{fileName:_0x42d2b6,originalPath:_0x3cdd0c,size:_0x54309e,fileType:_0x21aa08,lastModified:_0x23f94a}=_0x4918af,_0xb4298e=this['formatBytes'](_0x54309e),_0xbbfa52=new Date(_0x23f94a)[_0x490bbc(0x108)]()['split']('T')[0x0];return _0x490bbc(0x102)+this[_0x490bbc(0x112)](_0x42d2b6)+'\x22\x20path=\x22'+this[_0x490bbc(0x112)](_0x3cdd0c)+_0x490bbc(0x131)+_0xb4298e+'\x22\x20type=\x22'+_0x21aa08+_0x490bbc(0x122)+_0xbbfa52+'\x22\x20/>';}[a0_0x4c45f7(0x112)](_0x2e75a1){const _0x4eb381=a0_0x4c45f7;if(!_0x2e75a1)return'';return _0x2e75a1[_0x4eb381(0x128)](/&/g,'&amp;')['replace'](/</g,_0x4eb381(0x127))['replace'](/>/g,_0x4eb381(0x11b))[_0x4eb381(0x128)](/"/g,_0x4eb381(0x10f))['replace'](/'/g,_0x4eb381(0x12b));}['formatBytes'](_0x252202){const _0x1abfc8=a0_0x4c45f7;if(_0x252202===0x0)return'0\x20Bytes';const _0xd91ec8=0x400,_0xee1a6=['Bytes','KB','MB','GB'],_0x323d36=Math[_0x1abfc8(0x117)](Math['log'](_0x252202)/Math[_0x1abfc8(0x132)](_0xd91ec8));return parseFloat((_0x252202/Math['pow'](_0xd91ec8,_0x323d36))[_0x1abfc8(0x103)](0x2))+_0xee1a6[_0x323d36];}async[a0_0x4c45f7(0x110)](_0x29ae16){const _0x4eeb4a=a0_0x4c45f7;try{const _0x5e162b=await this['attachmentService'][_0x4eeb4a(0x115)](_0x29ae16);let _0x2764b5=0x0;for(const _0x406149 of _0x5e162b){_0x406149['mode']===_0x4eeb4a(0x118)?_0x2764b5+=_0x406149['tokenEstimate']||0x0:_0x2764b5+=0x14;}return _0x2764b5;}catch(_0x12156e){return this[_0x4eeb4a(0x123)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x29ae16,'error':_0x12156e[_0x4eeb4a(0x114)]}),0x0;}}async['getAttachmentSummary'](_0x52e229){const _0x1bd759=a0_0x4c45f7;try{const _0x3d7c7c=await this['attachmentService'][_0x1bd759(0x115)](_0x52e229),_0x4df3cf={'totalActive':_0x3d7c7c[_0x1bd759(0x101)],'contentMode':_0x3d7c7c['filter'](_0x323ce3=>_0x323ce3[_0x1bd759(0x11c)]==='content')['length'],'referenceMode':_0x3d7c7c[_0x1bd759(0x11f)](_0x5b8f1e=>_0x5b8f1e['mode']===_0x1bd759(0x104))[_0x1bd759(0x101)],'estimatedTokens':0x0,'files':[]};for(const _0xe32939 of _0x3d7c7c){_0x4df3cf['estimatedTokens']+=_0xe32939[_0x1bd759(0x107)]||0x0,_0x4df3cf['files'][_0x1bd759(0x116)]({'fileName':_0xe32939[_0x1bd759(0x105)],'mode':_0xe32939[_0x1bd759(0x11c)],'size':this[_0x1bd759(0x10d)](_0xe32939['size']),'tokens':_0xe32939['tokenEstimate']||0x0});}return _0x4df3cf;}catch(_0x66f9e1){return this['logger']?.['error'](_0x1bd759(0x100),{'agentId':_0x52e229,'error':_0x66f9e1[_0x1bd759(0x114)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;