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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +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
@@ -1 +1 @@
1
- const a0_0x4c22d6=a0_0xa457;(function(_0x2fb4a2,_0x3296ee){const _0xa0e36c=a0_0xa457,_0xbf114b=_0x2fb4a2();while(!![]){try{const _0x33afff=-parseInt(_0xa0e36c(0x1b7))/0x1*(-parseInt(_0xa0e36c(0x1c5))/0x2)+-parseInt(_0xa0e36c(0x1aa))/0x3+-parseInt(_0xa0e36c(0x181))/0x4+-parseInt(_0xa0e36c(0x202))/0x5*(parseInt(_0xa0e36c(0x219))/0x6)+parseInt(_0xa0e36c(0x1e6))/0x7+parseInt(_0xa0e36c(0x196))/0x8*(parseInt(_0xa0e36c(0x205))/0x9)+parseInt(_0xa0e36c(0x200))/0xa;if(_0x33afff===_0x3296ee)break;else _0xbf114b['push'](_0xbf114b['shift']());}catch(_0x210b59){_0xbf114b['push'](_0xbf114b['shift']());}}}(a0_0x1bf8,0x43400));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x29c8a4,_0x451f6d,_0x4e9209,_0x1bcdf1){const _0x98222c=a0_0xa457;this['config']=_0x29c8a4,this['logger']=_0x451f6d,this[_0x98222c(0x1ab)]=_0x4e9209,this['errorHandler']=_0x1bcdf1,this[_0x98222c(0x193)]=_0x29c8a4[_0x98222c(0x19f)]?.[_0x98222c(0x193)]||_0x98222c(0x21d),this['timeout']=_0x29c8a4['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x29c8a4[_0x98222c(0x19f)]?.['retryAttempts']||0x3,this[_0x98222c(0x209)]=new Map(),this[_0x98222c(0x1ca)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x98222c(0x217)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x4c22d6(0x19a)](_0x36186f,_0x3c0e73,_0x1ace94={}){const _0x231450=a0_0x4c22d6,_0x1c1ce9='req-'+Date[_0x231450(0x1a4)]()+'-'+Math['random']()[_0x231450(0x182)](0x24)['substr'](0x2,0x9);try{if(this[_0x231450(0x1d3)]())throw new Error(_0x231450(0x1ef));await this[_0x231450(0x189)](_0x36186f);const _0x4425d0=this[_0x231450(0x1be)](_0x3c0e73,_0x36186f,_0x1ace94),_0x151c08={'model':_0x36186f,'messages':_0x4425d0,'options':{'max_tokens':this[_0x231450(0x203)][_0x36186f]?.['maxTokens']||0xfa0,'temperature':_0x1ace94[_0x231450(0x1c4)]||0.7,'stream':_0x1ace94[_0x231450(0x191)]||![]},'metadata':{'requestId':_0x1c1ce9,'agentId':_0x1ace94['agentId'],'timestamp':new Date()['toISOString']()}};_0x1ace94['systemPrompt']&&(_0x151c08['system']=_0x1ace94['systemPrompt']);this['logger'][_0x231450(0x183)]('Sending\x20message\x20to\x20model:\x20'+_0x36186f,{'requestId':_0x1c1ce9,'agentId':_0x1ace94[_0x231450(0x1b2)],'messageCount':Array['isArray'](_0x3c0e73)?_0x3c0e73['length']:0x1,'maxTokens':_0x151c08['max_tokens']});const _0x17725e=await this['_makeAPIRequest']('/chat/completions',_0x151c08,_0x1c1ce9,{..._0x1ace94,'sessionId':_0x1ace94['sessionId'],'platformProvided':_0x1ace94[_0x231450(0x194)]||![]});return _0x17725e['usage']&&await this[_0x231450(0x187)](_0x1ace94['agentId'],_0x36186f,{'prompt_tokens':_0x17725e['usage']['prompt_tokens']||0x0,'completion_tokens':_0x17725e[_0x231450(0x1ec)]['completion_tokens']||0x0,'total_tokens':_0x17725e[_0x231450(0x1ec)][_0x231450(0x1a5)]||0x0}),this[_0x231450(0x1e1)](),{'content':_0x17725e['choices'][0x0]?.['message']?.[_0x231450(0x20c)]||'','model':_0x17725e[_0x231450(0x1bc)],'tokenUsage':_0x17725e[_0x231450(0x1ec)],'requestId':_0x1c1ce9,'finishReason':_0x17725e[_0x231450(0x204)][0x0]?.['finish_reason']};}catch(_0x2453bd){this['_recordFailure'](),this[_0x231450(0x18a)][_0x231450(0x1ee)](_0x231450(0x1a8)+_0x2453bd[_0x231450(0x1d4)],{'requestId':_0x1c1ce9,'model':_0x36186f,'agentId':_0x1ace94['agentId'],'error':_0x2453bd[_0x231450(0x1d5)]}),await this[_0x231450(0x1f3)](_0x2453bd,{'requestId':_0x1c1ce9,'model':_0x36186f,'agentId':_0x1ace94[_0x231450(0x1b2)]});throw _0x2453bd;}}async[a0_0x4c22d6(0x17b)](_0xe76ff6,_0x15ec10={}){const _0x3f24b4=a0_0x4c22d6;try{const _0x1e97b4=MODEL_ROUTING[_0xe76ff6[_0x3f24b4(0x1e0)]()]||MODEL_ROUTING[_0x3f24b4(0x1c1)],_0x7e43bb=[];for(const _0x3f2438 of _0x1e97b4){const _0x551825=await this[_0x3f24b4(0x17d)](_0x3f2438);_0x551825&&_0x7e43bb['push'](_0x3f2438);}if(_0x7e43bb['length']===0x0)return this['logger']['warn'](_0x3f24b4(0x195)+_0xe76ff6+_0x3f24b4(0x1d7)),MODEL_ROUTING[_0x3f24b4(0x1c1)][0x0];let _0x377e4c=_0x7e43bb[0x0];if(_0x15ec10['preferredModel']&&_0x7e43bb['includes'](_0x15ec10['preferredModel']))_0x377e4c=_0x15ec10[_0x3f24b4(0x1cd)];else{if(_0x15ec10[_0x3f24b4(0x1c7)]===_0x3f24b4(0x1d0)&&_0x7e43bb['includes'](MODELS['ANTHROPIC_OPUS']))_0x377e4c=MODELS['ANTHROPIC_OPUS'];else _0x15ec10['speed']==='fast'&&_0x7e43bb['includes'](MODELS[_0x3f24b4(0x1e4)])&&(_0x377e4c=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info']('Model\x20routed\x20for\x20task:\x20'+_0xe76ff6,{'selectedModel':_0x377e4c,'availableModels':_0x7e43bb['length'],'context':_0x15ec10}),_0x377e4c;}catch(_0x5a12a9){return this['logger']['error']('Model\x20routing\x20failed:\x20'+_0x5a12a9['message'],{'task':_0xe76ff6,'context':_0x15ec10}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x4c22d6(0x1af)](_0x1ed3da,_0x2cc762){const _0x42c5aa=a0_0x4c22d6,_0x45bbce=this['modelSpecs'][_0x2cc762];if(!_0x45bbce)throw new Error('Unknown\x20model:\x20'+_0x2cc762);const _0x559cf5=_0x45bbce[_0x42c5aa(0x210)]*0.8;let _0x121f12=0x0;const _0x56256e=[],_0x1a47a0=await Promise[_0x42c5aa(0x1e3)](_0x1ed3da[_0x42c5aa(0x212)](async _0x2cde7c=>({..._0x2cde7c,'estimatedTokens':await this[_0x42c5aa(0x1bb)](_0x2cde7c[_0x42c5aa(0x20c)],_0x2cc762)}))),_0x458317=[..._0x1a47a0][_0x42c5aa(0x1de)]();for(const _0x41f2e3 of _0x458317){if(_0x121f12+_0x41f2e3[_0x42c5aa(0x1b3)]>_0x559cf5){if(_0x56256e['length']===0x0){const _0x20c607=await this['_truncateMessage'](_0x41f2e3['content'],_0x559cf5);_0x56256e['unshift']({..._0x41f2e3,'content':_0x20c607,'estimatedTokens':_0x559cf5});}break;}_0x56256e['unshift'](_0x41f2e3),_0x121f12+=_0x41f2e3[_0x42c5aa(0x1b3)];}const _0x5d999e=_0x1a47a0['slice'](0x0,-_0x56256e[_0x42c5aa(0x1dc)]);if(_0x5d999e['length']>0x0){const _0x4488f3=await this['_summarizeMessages'](_0x5d999e,_0x2cc762);_0x56256e['unshift']({'role':_0x42c5aa(0x1eb),'content':'Previous\x20conversation\x20summary:\x20'+_0x4488f3,'timestamp':_0x5d999e[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x42c5aa(0x1bb)](_0x4488f3,_0x2cc762)});}return this['logger'][_0x42c5aa(0x183)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x2cc762,{'originalMessages':_0x1ed3da['length'],'compactizedMessages':_0x56256e['length'],'estimatedTokens':_0x121f12,'maxTokens':_0x559cf5}),_0x56256e;}async[a0_0x4c22d6(0x187)](_0x2a085c,_0x3ec304,_0x348b07,_0x4ede6d){const _0x55cd70=a0_0x4c22d6;try{this['budgetService']&&this[_0x55cd70(0x1ab)]['trackUsage'](_0x2a085c,_0x3ec304,_0x348b07);}catch(_0x6724ea){this['logger']['error'](_0x55cd70(0x19e)+_0x6724ea[_0x55cd70(0x1d4)]);}}async[a0_0x4c22d6(0x1f3)](_0x362f27,_0x2b4f4b){const _0x1aaaeb=a0_0x4c22d6,_0x18fc7b=this[_0x1aaaeb(0x1a2)]?.[_0x1aaaeb(0x1c9)]?.(_0x362f27,_0x2b4f4b);switch(_0x362f27['status']||_0x362f27[_0x1aaaeb(0x18e)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x1aaaeb(0x1ee)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x2b4f4b,'error':_0x362f27['message']});throw new Error(_0x1aaaeb(0x18f)+_0x362f27[_0x1aaaeb(0x1d4)]);case HTTP_STATUS[_0x1aaaeb(0x1fe)]:this['logger'][_0x1aaaeb(0x1ee)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2b4f4b});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x1aaaeb(0x18a)]['error'](_0x1aaaeb(0x1f8),{'context':_0x2b4f4b});throw new Error(_0x1aaaeb(0x1b5));case HTTP_STATUS[_0x1aaaeb(0x179)]:this[_0x1aaaeb(0x18a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x2b4f4b});throw new Error(_0x1aaaeb(0x1a3));case HTTP_STATUS[_0x1aaaeb(0x21a)]:this[_0x1aaaeb(0x18a)][_0x1aaaeb(0x1b0)]('Rate\x20limit\x20exceeded',{'context':_0x2b4f4b}),await this['_handleRateLimit'](_0x2b4f4b);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS[_0x1aaaeb(0x21b)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x1aaaeb(0x198)]:this['logger']['error'](_0x1aaaeb(0x1e9),{'context':_0x2b4f4b,'status':_0x362f27[_0x1aaaeb(0x192)]}),await this['_handleServiceUnavailable'](_0x2b4f4b);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger'][_0x1aaaeb(0x1ee)]('Unknown\x20AI\x20service\x20error',{'context':_0x2b4f4b,'error':_0x362f27['message']});throw new Error('AI\x20service\x20error:\x20'+_0x362f27[_0x1aaaeb(0x1d4)]);}}['setApiKeyManager'](_0x18e299){const _0x455558=a0_0x4c22d6;this[_0x455558(0x1d6)]=_0x18e299,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x18e299});}[a0_0x4c22d6(0x1c3)](_0x3aef81){const _0x3e3b26=a0_0x4c22d6;this[_0x3e3b26(0x18d)]=_0x3aef81,this['logger']?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3aef81});}async[a0_0x4c22d6(0x213)](_0x542e08,_0x57e17d={}){const _0x599a58=a0_0x4c22d6,_0x44f4c6='img-'+Date[_0x599a58(0x1a4)]()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x542e08||typeof _0x542e08!=='string'||_0x542e08[_0x599a58(0x214)]()[_0x599a58(0x1dc)]===0x0)throw new Error(_0x599a58(0x20f));const _0x416600=_0x57e17d[_0x599a58(0x1bc)]||_0x599a58(0x20e),_0x3f1389=_0x57e17d[_0x599a58(0x1c0)]||_0x599a58(0x1cf),_0x17053a=_0x57e17d['quality']||'standard',_0x2156e2=_0x57e17d[_0x599a58(0x1fa)]||'url';this[_0x599a58(0x18a)]['info'](_0x599a58(0x1ff)+_0x416600,{'requestId':_0x44f4c6,'model':_0x416600,'size':_0x3f1389,'quality':_0x17053a,'promptLength':_0x542e08['length']});const _0xbb889e={'prompt':_0x542e08,'model':_0x416600,'size':_0x3f1389,'quality':_0x17053a,'response_format':_0x2156e2,'n':0x1,'metadata':{'requestId':_0x44f4c6,'timestamp':new Date()['toISOString']()}},_0x5b65c1=await this[_0x599a58(0x1bf)](_0xbb889e,_0x44f4c6,{'sessionId':_0x57e17d['sessionId'],'platformProvided':_0x57e17d[_0x599a58(0x194)]||![]});return this[_0x599a58(0x1e1)](),{'url':_0x5b65c1[_0x599a58(0x208)]?.[0x0]?.[_0x599a58(0x21c)]||null,'b64_json':_0x5b65c1['data']?.[0x0]?.[_0x599a58(0x1a0)]||null,'model':_0x5b65c1['model']||_0x416600,'requestId':_0x44f4c6,'revisedPrompt':_0x5b65c1['data']?.[0x0]?.[_0x599a58(0x1f6)]||_0x542e08};}catch(_0x263ca8){this['_recordFailure'](),this['logger'][_0x599a58(0x1ee)]('Image\x20generation\x20failed:\x20'+_0x263ca8['message'],{'requestId':_0x44f4c6,'model':_0x57e17d['model'],'error':_0x263ca8[_0x599a58(0x1d5)]});throw _0x263ca8;}}async[a0_0x4c22d6(0x19c)](){const _0x2ed4b7=a0_0x4c22d6;try{const _0x41b794=await this[_0x2ed4b7(0x1d1)](_0x2ed4b7(0x1df),{},'health-check');return _0x41b794[_0x2ed4b7(0x192)]==='healthy';}catch(_0x12c10c){return![];}}async['switchAgentModel'](_0x3c6d56,_0x32c9b8){const _0x44b508=a0_0x4c22d6;try{if(!this['_isValidModel'](_0x32c9b8))throw new Error(_0x44b508(0x1db)+_0x32c9b8);let _0x17f5ee=this['conversationManagers']['get'](_0x3c6d56);!_0x17f5ee&&(_0x17f5ee=new ConversationManager(_0x3c6d56,this['logger']),this[_0x44b508(0x217)]['set'](_0x3c6d56,_0x17f5ee));const _0x36f745=await _0x17f5ee['switchModel'](_0x32c9b8),_0x100c47=await this[_0x44b508(0x18d)]?.['getAgent'](_0x3c6d56);return _0x100c47&&(_0x100c47[_0x44b508(0x207)]=_0x32c9b8,await this['agentPool']['persistAgentState'](_0x3c6d56)),this[_0x44b508(0x18a)][_0x44b508(0x183)](_0x44b508(0x17f)+_0x3c6d56,{'newModel':_0x32c9b8,'messageCount':_0x36f745['messages']['length']}),{'success':!![],'agentId':_0x3c6d56,'newModel':_0x32c9b8,'conversation':_0x36f745};}catch(_0x205f6f){this[_0x44b508(0x18a)]['error'](_0x44b508(0x19d)+_0x205f6f['message'],{'agentId':_0x3c6d56,'newModel':_0x32c9b8});throw _0x205f6f;}}['_initializeModelSpecs'](){const _0x154fe1=a0_0x4c22d6,_0x4e048c={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x154fe1(0x1fc)]]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x1da)],'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['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x154fe1(0x1da)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x154fe1(0x1f1)]]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x1d8)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x154fe1(0x1bd),'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':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x154fe1(0x1bd),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x4e048c;}[a0_0x4c22d6(0x1be)](_0x54deec,_0x258f5d,_0x53168e){const _0x2ea61a=a0_0x4c22d6,_0xa76cef=this['modelSpecs'][_0x258f5d]||{'provider':'AZURE'};let _0x49e53a;typeof _0x54deec===_0x2ea61a(0x1cc)?_0x49e53a=[{'role':_0x2ea61a(0x1b1),'content':_0x54deec}]:_0x49e53a=_0x54deec[_0x2ea61a(0x212)](_0x27c0e2=>this[_0x2ea61a(0x1c6)](_0x27c0e2,_0x258f5d));switch(_0xa76cef[_0x2ea61a(0x186)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x49e53a);case MODEL_PROVIDERS['OPENAI']:return this[_0x2ea61a(0x1f2)](_0x49e53a);case MODEL_PROVIDERS[_0x2ea61a(0x1bd)]:return this['_formatForAzure'](_0x49e53a);default:return _0x49e53a;}}['_formatSingleMessage'](_0x280d00,_0x3ba1f6){const _0x5ee02a=a0_0x4c22d6;return{'role':_0x280d00['role']||_0x5ee02a(0x1b1),'content':_0x280d00['content'],'timestamp':_0x280d00['timestamp']};}['_formatForAnthropic'](_0x1d164b){return _0x1d164b['map'](_0x4fcbb3=>{const _0x23701e=a0_0xa457;if(_0x4fcbb3['role']===_0x23701e(0x1eb))return{'role':_0x23701e(0x1b1),'content':'System:\x20'+_0x4fcbb3[_0x23701e(0x20c)]};return _0x4fcbb3;});}[a0_0x4c22d6(0x1f2)](_0x482f22){return _0x482f22;}['_formatForAzure'](_0x25997b){const _0x5b6afb=a0_0x4c22d6;return _0x25997b['map'](_0x4513dd=>({..._0x4513dd,'content':typeof _0x4513dd[_0x5b6afb(0x20c)]==='string'?_0x4513dd['content']:JSON['stringify'](_0x4513dd[_0x5b6afb(0x20c)])}));}[a0_0x4c22d6(0x1b6)](_0x1a03fc){const _0x1ff307=a0_0x4c22d6;this['logger'][_0x1ff307(0x19b)]('Validating\x20model',{'model':_0x1a03fc,'modelType':typeof _0x1a03fc});if(this[_0x1ff307(0x203)][_0x1a03fc]!==undefined)return!![];return this['logger'][_0x1ff307(0x1b0)](_0x1ff307(0x188),{'model':_0x1a03fc,'availableModels':Object['keys'](this[_0x1ff307(0x203)])}),![];}async[a0_0x4c22d6(0x17d)](_0x973ba9){return!![];}async[a0_0x4c22d6(0x1bb)](_0x535a12,_0x433001){return Math['ceil'](_0x535a12['length']/0x4);}async[a0_0x4c22d6(0x1ce)](_0x17f4e0,_0x3f2486){const _0x4c5bd1=a0_0x4c22d6,_0x491278=_0x3f2486*0x4;if(_0x17f4e0['length']<=_0x491278)return _0x17f4e0;return _0x17f4e0['substring'](0x0,_0x491278-0x14)+_0x4c5bd1(0x206);}async['_summarizeMessages'](_0x16e3b1,_0x55de4f){const _0x3d4430=a0_0x4c22d6,_0x1369e5=_0x16e3b1[_0x3d4430(0x212)](_0x41feb1=>_0x41feb1['role']+':\x20'+_0x41feb1[_0x3d4430(0x20c)])['join']('\x0a'),_0x4f5b46=0x1f4;if(_0x1369e5[_0x3d4430(0x1dc)]<=_0x4f5b46)return _0x1369e5;return _0x1369e5['substring'](0x0,_0x4f5b46)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x3e6882,_0x433b70,_0x3ee6a1,_0x1167e4={}){const _0x211093=a0_0x4c22d6,_0x3a625f='https://autopilot-api.azurewebsites.net/llm/chat';let _0x2f5417,_0x18d63b=null,_0x598512=null;this[_0x211093(0x18a)]?.['info'](_0x211093(0x1e8),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1167e4[_0x211093(0x1d9)],'hasSessionId':!!_0x1167e4['sessionId'],'optionsKeys':Object['keys'](_0x1167e4),'model':_0x433b70['model']});if(this[_0x211093(0x1d6)]&&_0x1167e4['sessionId']){const _0xe37fce=this[_0x211093(0x1d6)][_0x211093(0x1f4)](_0x1167e4[_0x211093(0x1d9)],{'platformProvided':_0x1167e4['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x433b70[_0x211093(0x1bc)])});_0x18d63b=_0xe37fce[_0x211093(0x1cb)],_0x598512=_0xe37fce['vendorApiKey'],this['logger']?.[_0x211093(0x19b)]('Retrieved API keys from session manager',{'sessionId':_0x1167e4['sessionId'],'hasLoxiaKey':!!_0x18d63b,'hasVendorKey':!!_0x598512,'vendor':this[_0x211093(0x1ae)](_0x433b70['model'])});}!_0x18d63b&&_0x1167e4['apiKey']&&(_0x18d63b=_0x1167e4[_0x211093(0x1c8)]);!_0x18d63b&&this[_0x211093(0x201)]['apiKey']&&(_0x18d63b=this['config'][_0x211093(0x1c8)]);if(!_0x18d63b)throw new Error(_0x211093(0x216));const _0x2634d6=_0x433b70['model'],_0x16a0a5={'conversationId':_0x3ee6a1,'message':_0x433b70[_0x211093(0x1b8)][_0x433b70[_0x211093(0x1b8)]['length']-0x1]?.[_0x211093(0x20c)]||'','messages':_0x433b70['messages'],'model':_0x2634d6,'requestId':_0x3ee6a1,'options':_0x433b70['options']||{},'platformProvided':_0x1167e4['platformProvided']||![]};_0x433b70[_0x211093(0x1eb)]&&(_0x16a0a5[_0x211093(0x1e7)]=_0x433b70['system']);_0x1167e4[_0x211093(0x194)]?_0x16a0a5[_0x211093(0x1c8)]=_0x18d63b:(_0x598512&&(_0x16a0a5['vendorApiKey']=_0x598512),_0x1167e4['customApiKeys']&&(_0x16a0a5['customApiKeys']=_0x1167e4['customApiKeys']),_0x16a0a5['apiKey']=_0x18d63b);for(let _0x5e459e=0x1;_0x5e459e<=this['retryAttempts'];_0x5e459e++){try{this['logger']['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3a625f,'model':_0x433b70['model'],'requestId':_0x3ee6a1,'attempt':_0x5e459e,'hasApiKey':!!_0x18d63b});const _0x2e6fa2=await fetch(_0x3a625f,{'method':'POST','headers':{'Content-Type':_0x211093(0x1f5),'Authorization':'Bearer\x20'+_0x18d63b,'X-Request-ID':_0x3ee6a1},'body':JSON[_0x211093(0x215)](_0x16a0a5),'timeout':this[_0x211093(0x1fd)]});if(!_0x2e6fa2['ok']){const _0x2c022f=await _0x2e6fa2['text'](),_0x193b85=new Error(_0x211093(0x17c)+_0x2e6fa2[_0x211093(0x192)]+':\x20'+_0x2e6fa2['statusText']+(_0x2c022f?'\x20-\x20'+_0x2c022f:''));_0x193b85[_0x211093(0x192)]=_0x2e6fa2['status'];throw _0x193b85;}const _0x1d56ff=await _0x2e6fa2[_0x211093(0x218)]();return{'choices':[{'message':{'content':_0x1d56ff[_0x211093(0x20c)]||'','role':_0x211093(0x180)},'finish_reason':_0x1d56ff['finishReason']||_0x211093(0x211)}],'usage':_0x1d56ff['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x1d56ff[_0x211093(0x1bc)]||_0x433b70[_0x211093(0x1bc)],'id':_0x1d56ff['requestId']||_0x3ee6a1};}catch(_0x219f66){_0x2f5417=_0x219f66,this['logger']['warn']('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x5e459e,'requestId':_0x3ee6a1,'error':_0x219f66[_0x211093(0x1d4)],'status':_0x219f66[_0x211093(0x192)]});if(_0x5e459e<this[_0x211093(0x18c)]){const _0x78caca=Math[_0x211093(0x1ea)](0x2,_0x5e459e)*0x3e8;this['logger']['warn']('Retrying\x20in\x20'+_0x78caca+'ms',{'attempt':_0x5e459e,'requestId':_0x3ee6a1}),await new Promise(_0x2e1511=>setTimeout(_0x2e1511,_0x78caca));}}}this[_0x211093(0x18a)]['error']('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x3ee6a1,'error':_0x2f5417['message']});const _0x4753f6=_0x2f5417['message']&&_0x2f5417[_0x211093(0x1d4)][_0x211093(0x1a6)](_0x211093(0x1ed));if(_0x4753f6)throw new Error(_0x211093(0x21e)+_0x2f5417['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x2f5417[_0x211093(0x1d4)],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x433b70['model'],'id':_0x211093(0x1ba)+_0x3ee6a1,'error':_0x2f5417[_0x211093(0x1d4)]};}async[a0_0x4c22d6(0x1bf)](_0x588c75,_0x27ddf2,_0x379627={}){const _0x291b56=a0_0x4c22d6,_0x4e9693='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x563b79,_0x1f360e=null,_0xb60f69=null;this[_0x291b56(0x18a)]?.[_0x291b56(0x183)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x291b56(0x1d6)],'sessionId':_0x379627['sessionId'],'hasSessionId':!!_0x379627[_0x291b56(0x1d9)],'model':_0x588c75[_0x291b56(0x1bc)]});if(this['apiKeyManager']&&_0x379627['sessionId']){const _0x38d932=this[_0x291b56(0x1d6)][_0x291b56(0x1f4)](_0x379627['sessionId'],{'platformProvided':_0x379627['platformProvided']||![],'vendor':this[_0x291b56(0x1ae)](_0x588c75[_0x291b56(0x1bc)])});_0x1f360e=_0x38d932['loxiaApiKey'],_0xb60f69=_0x38d932[_0x291b56(0x20a)],this[_0x291b56(0x18a)]?.[_0x291b56(0x19b)]('Retrieved API keys from session manager for image',{'sessionId':_0x379627[_0x291b56(0x1d9)],'hasLoxiaKey':!!_0x1f360e,'hasVendorKey':!!_0xb60f69});}!_0x1f360e&&_0x379627[_0x291b56(0x1c8)]&&(_0x1f360e=_0x379627['apiKey']);!_0x1f360e&&this['config']['apiKey']&&(_0x1f360e=this[_0x291b56(0x201)][_0x291b56(0x1c8)]);if(!_0x1f360e)throw new Error(_0x291b56(0x216));const _0x1f59ac={'prompt':_0x588c75[_0x291b56(0x1ac)],'model':_0x588c75[_0x291b56(0x1bc)]||'azure-openai-dalle3','size':_0x588c75['size'],'quality':_0x588c75['quality'],'style':_0x588c75[_0x291b56(0x199)]||_0x291b56(0x1a9),'n':_0x588c75['n']||0x1,'requestId':_0x27ddf2};for(let _0x28c297=0x1;_0x28c297<=this['retryAttempts'];_0x28c297++){try{this['logger'][_0x291b56(0x183)](_0x291b56(0x1dd),{'url':_0x4e9693,'model':_0x588c75['model'],'requestId':_0x27ddf2,'attempt':_0x28c297,'hasApiKey':!!_0x1f360e});const _0x14d993=await fetch(_0x4e9693,{'method':_0x291b56(0x1fb),'headers':{'Content-Type':_0x291b56(0x1f5),'Authorization':_0x291b56(0x17a)+_0x1f360e,'X-Request-ID':_0x27ddf2},'body':JSON['stringify'](_0x1f59ac),'timeout':this[_0x291b56(0x1fd)]*0x2});if(!_0x14d993['ok']){const _0x43075e=await _0x14d993[_0x291b56(0x1c2)](),_0x27ff73=new Error('HTTP\x20'+_0x14d993['status']+':\x20'+_0x14d993['statusText']+(_0x43075e?'\x20-\x20'+_0x43075e:''));_0x27ff73['status']=_0x14d993[_0x291b56(0x192)];throw _0x27ff73;}const _0x4cc799=await _0x14d993['json']();return{'data':_0x4cc799['images']||[],'model':_0x4cc799['model']||_0x588c75['model'],'created':_0x4cc799[_0x291b56(0x1a7)]||Date[_0x291b56(0x1a4)](),'usage':_0x4cc799[_0x291b56(0x1ec)]};}catch(_0x109984){_0x563b79=_0x109984,this[_0x291b56(0x18a)][_0x291b56(0x1b0)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x28c297,'requestId':_0x27ddf2,'error':_0x109984['message'],'status':_0x109984[_0x291b56(0x192)]});if(_0x28c297<this[_0x291b56(0x18c)]){const _0x336f4c=Math[_0x291b56(0x1ea)](0x2,_0x28c297)*0x3e8;this['logger'][_0x291b56(0x1b0)]('Retrying\x20in\x20'+_0x336f4c+'ms',{'attempt':_0x28c297,'requestId':_0x27ddf2}),await new Promise(_0x569cb1=>setTimeout(_0x569cb1,_0x336f4c));}}}this[_0x291b56(0x18a)][_0x291b56(0x1ee)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x27ddf2,'error':_0x563b79['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x563b79[_0x291b56(0x1d4)]);}async['_checkRateLimit'](_0x48a24d){await new Promise(_0x11e708=>setTimeout(_0x11e708,0x64));}async[a0_0x4c22d6(0x197)](_0x10908c){const _0x2e88f7=a0_0x4c22d6,_0x3f1cc8=0xea60;this['logger'][_0x2e88f7(0x183)](_0x2e88f7(0x184)+_0x3f1cc8+'ms',_0x10908c),await new Promise(_0x38c8a3=>setTimeout(_0x38c8a3,_0x3f1cc8));}async[a0_0x4c22d6(0x1a1)](_0x56a5b1){const _0x24875c=a0_0x4c22d6;this['_recordFailure']();const _0x53516b=0x7530;this['logger'][_0x24875c(0x183)](_0x24875c(0x1b9)+_0x53516b+'ms',_0x56a5b1),await new Promise(_0x251056=>setTimeout(_0x251056,_0x53516b));}['_isCircuitBreakerOpen'](){const _0x2e2cde=a0_0x4c22d6;if(!this['circuitBreaker'][_0x2e2cde(0x1f0)])return![];const _0x16b0e3=Date[_0x2e2cde(0x1a4)]()-this['circuitBreaker'][_0x2e2cde(0x1ad)];if(_0x16b0e3>this[_0x2e2cde(0x17e)]['timeout'])return this['circuitBreaker'][_0x2e2cde(0x1f0)]=![],this[_0x2e2cde(0x17e)]['failures']=0x0,![];return!![];}[a0_0x4c22d6(0x1b4)](){const _0x1f7ca9=a0_0x4c22d6;this[_0x1f7ca9(0x17e)]['failures']++,this[_0x1f7ca9(0x17e)]['lastFailureTime']=Date[_0x1f7ca9(0x1a4)](),this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x18b)]>=this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x1f7)]&&(this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x1f0)]=!![],this['logger']['warn'](_0x1f7ca9(0x1d2)));}[a0_0x4c22d6(0x1e1)](){const _0x1f8a99=a0_0x4c22d6;this[_0x1f8a99(0x17e)][_0x1f8a99(0x18b)]>0x0&&(this[_0x1f8a99(0x17e)]['failures']=0x0,this['circuitBreaker'][_0x1f8a99(0x1f0)]=![],this['logger'][_0x1f8a99(0x183)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x4c22d6(0x1ae)](_0x2a4ae5){const _0x55afcb=a0_0x4c22d6;if(!_0x2a4ae5)return null;const _0x4e7fc5=_0x2a4ae5['toLowerCase']();if(_0x4e7fc5['includes']('anthropic')||_0x4e7fc5[_0x55afcb(0x1a6)](_0x55afcb(0x20b)))return _0x55afcb(0x190);else{if(_0x4e7fc5[_0x55afcb(0x1a6)](_0x55afcb(0x20d))||_0x4e7fc5[_0x55afcb(0x1a6)]('gpt'))return'openai';else{if(_0x4e7fc5['includes']('deepseek'))return _0x55afcb(0x1e2);else{if(_0x4e7fc5[_0x55afcb(0x1a6)]('phi'))return _0x55afcb(0x1f9);}}}return null;}}class ConversationManager{constructor(_0x45d1a2,_0x3a7a8c){const _0x48a5d0=a0_0x4c22d6;this[_0x48a5d0(0x1b2)]=_0x45d1a2,this[_0x48a5d0(0x18a)]=_0x3a7a8c,this['conversations']=new Map();}async['switchModel'](_0x3cf9ef){const _0xa4e811=a0_0x4c22d6;return{'messages':[],'model':_0x3cf9ef,'lastUpdated':new Date()[_0xa4e811(0x1e5)]()};}}function a0_0xa457(_0x3b0189,_0x24f9e5){_0x3b0189=_0x3b0189-0x179;const _0x1bf8f9=a0_0x1bf8();let _0xa45750=_0x1bf8f9[_0x3b0189];if(a0_0xa457['VVtUrl']===undefined){var _0x5c366=function(_0x90f73d){const _0x434590='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29c8a4='',_0x451f6d='';for(let _0x4e9209=0x0,_0x1bcdf1,_0x36186f,_0x3c0e73=0x0;_0x36186f=_0x90f73d['charAt'](_0x3c0e73++);~_0x36186f&&(_0x1bcdf1=_0x4e9209%0x4?_0x1bcdf1*0x40+_0x36186f:_0x36186f,_0x4e9209++%0x4)?_0x29c8a4+=String['fromCharCode'](0xff&_0x1bcdf1>>(-0x2*_0x4e9209&0x6)):0x0){_0x36186f=_0x434590['indexOf'](_0x36186f);}for(let _0x1ace94=0x0,_0x1c1ce9=_0x29c8a4['length'];_0x1ace94<_0x1c1ce9;_0x1ace94++){_0x451f6d+='%'+('00'+_0x29c8a4['charCodeAt'](_0x1ace94)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x451f6d);};a0_0xa457['IAbIJu']=_0x5c366,a0_0xa457['xetLEm']={},a0_0xa457['VVtUrl']=!![];}const _0xcafd5b=_0x1bf8f9[0x0],_0x3ca9f3=_0x3b0189+_0xcafd5b,_0x491de8=a0_0xa457['xetLEm'][_0x3ca9f3];return!_0x491de8?(_0xa45750=a0_0xa457['IAbIJu'](_0xa45750),a0_0xa457['xetLEm'][_0x3ca9f3]=_0xa45750):_0xa45750=_0x491de8,_0xa45750;}function a0_0x1bf8(){const _0x51b182=['sw52ywXPzcbTB2rLBdOG','BgvUz3rO','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','CMv2zxjZzq','l2HLywX0Aa','Dg9vChbLCKnHC2u','x3jLC2v0q2LYy3vPDejYzwfRzxi','zgvLChnLzwS','ywXS','qu5usfjpueLdx0HbsuTv','Dg9ju09tDhjPBMC','mZyZndu0n1vmrvjcvW','C3LZDgvTuhjVBxb0','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','Cg93','C3LZDgvT','DxnHz2u','tM8GqvbjigTLEsbJB25MAwD1CMvK','zxjYB3i','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','AxnpCgvU','revfufnfruTFuJe','x2zVCM1HDezVCK9Wzw5bsq','AgfUzgXLshr0CevYCM9Y','z2v0s2v5C0zVCLjLCxvLC3q','yxbWBgLJyxrPB24VANnVBG','CMv2AxnLzf9WCM9TChq','DgHYzxnOB2XK','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','BwLJCM9ZB2z0','CMvZCg9UC2vgB3jTyxq','ue9tva','qu5usfjpueLdx09qvvm','DgLTzw91Da','vu5bvvrit1jjwKve','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','mJq2ntK0meHrBxnfAa','y29UzMLN','nZu1A21bueLo','Bw9KzwXtCgvJCW','y2HVAwnLCW','ntr0qvfeEeK','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','y3vYCMvUDe1VzgvS','zgf0yq','CMf0zuXPBwL0zxjZ','DMvUzg9YqxbPs2v5','y2XHDwrL','y29UDgvUDa','B3bLBMfP','zMX1Ec0XlJeTChjV','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','y29UDgv4DfDPBMrVDW','C3rVCa','BwfW','z2vUzxjHDgvjBwfNzq','DhjPBq','C3rYAw5NAwz5','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','y29UDMvYC2f0Aw9UtwfUywDLCNm','ANnVBG','mtuYotrHC2HAtxO','ve9px01btLLFuKvrvuvtvfm','su5urvjoquXFu0vsvKvsx0vsuK9s','DxjS','Ahr0Chm6lY9HCgKUBg94AweUywK','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','tK9ux0zpvu5e','qMvHCMvYia','CM91DgvnB2rLBa','sfruuca','x2nOzwnRtw9KzwXizwfSDgG','y2LYy3vPDejYzwfRzxi','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','yxnZAxn0yw50','ndy4odi4r2jmvLP2','Dg9tDhjPBMC','Aw5MBW','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','qu5usfjpueLd','ChjVDMLKzxi','DhjHy2TvC2fNzq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','x2nOzwnRuMf0zuXPBwL0','Bg9Nz2vY','zMfPBhvYzxm','CMv0CNLbDhrLBxb0CW','ywDLBNrqB29S','y29Kzq','sw52ywXPzcbYzxf1zxn0oIa','yw50AhjVCgLJ','C3rYzwfT','C3rHDhvZ','yMfZzvvYBa','CgXHDgzVCM1qCM92AwrLza','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','ntKXmKTNuuXpBW','x2HHBMrSzvjHDgvmAw1PDa','r0furvDbwv9usu1ft1vu','C3r5Bgu','C2vUze1LC3nHz2u','zgvIDwC','y2HLy2Ttzxj2AwnLsgvHBhrO','tw9KzwWGC3DPDgnOigzHAwXLzdOG','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','yMfJA2vUza','yJy0x2PZB24','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zxjYB3jiyw5KBgvY','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','BM93','Dg90ywXFDg9Rzw5Z','Aw5JBhvKzxm','y3jLyxrLza','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','DML2Awq','oty1mtm5EvLQwuT4','yNvKz2v0u2vYDMLJzq','ChjVBxb0','BgfZDezHAwX1CMvuAw1L','x2DLDfzLBMrVCKzYB21nB2rLBa','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','D2fYBG','DxnLCG','ywDLBNrjza','zxn0Aw1HDgvKvg9Rzw5Z','x3jLy29YzezHAwX1CMu','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','x2LZvMfSAwrnB2rLBa','mZi5mdi2sujfANri','BwvZC2fNzxm','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','zxjYB3iT','x2vZDgLTyxrLvg9Rzw5Z','Bw9KzwW','qvPvuKu','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','x21HA2vjBwfNzufqsvjLCxvLC3q','C2L6zq','rKfmtejbq0S','Dgv4Da','C2v0qwDLBNrqB29S','DgvTCgvYyxr1CMu','mKDgshfsvq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','y29TCgXLEgL0Eq','yxbPs2v5','y2XHC3nPzNLfCNjVCG','CMvXDwvZDff1zxvL','Bg94AwfbCgLlzxK','C3rYAw5N','ChjLzMvYCMvKtw9KzwW','x3rYDw5JyxrLtwvZC2fNzq','mtaYnhGXmdi0','AgLNAa','x21HA2vbueLszxf1zxn0','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','x2LZq2LYy3vPDejYzwfRzxjpCgvU','BwvZC2fNzq','C3rHy2S','yxbPs2v5twfUywDLCG','lcb1C2LUzYbMywXSyMfJAW','revfufnfruS','C2vZC2LVBKLK','t1bftKfj'];a0_0x1bf8=function(){return _0x51b182;};return a0_0x1bf8();}export default AIService;
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 +1 @@
1
- const a0_0x2575cb=a0_0x4fab;function a0_0x4fab(_0x5406c5,_0x4fbafd){_0x5406c5=_0x5406c5-0x1ae;const _0x5d64c9=a0_0x5d64();let _0x4fab86=_0x5d64c9[_0x5406c5];if(a0_0x4fab['iVNFZx']===undefined){var _0x108845=function(_0x154b01){const _0x30519c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50cd77='',_0x34169c='';for(let _0x245d69=0x0,_0x3305a8,_0x13a2a0,_0x15c922=0x0;_0x13a2a0=_0x154b01['charAt'](_0x15c922++);~_0x13a2a0&&(_0x3305a8=_0x245d69%0x4?_0x3305a8*0x40+_0x13a2a0:_0x13a2a0,_0x245d69++%0x4)?_0x50cd77+=String['fromCharCode'](0xff&_0x3305a8>>(-0x2*_0x245d69&0x6)):0x0){_0x13a2a0=_0x30519c['indexOf'](_0x13a2a0);}for(let _0x508f16=0x0,_0x333eac=_0x50cd77['length'];_0x508f16<_0x333eac;_0x508f16++){_0x34169c+='%'+('00'+_0x50cd77['charCodeAt'](_0x508f16)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x34169c);};a0_0x4fab['npzOkQ']=_0x108845,a0_0x4fab['NzdTrO']={},a0_0x4fab['iVNFZx']=!![];}const _0x361af8=_0x5d64c9[0x0],_0x4a5bba=_0x5406c5+_0x361af8,_0x2e99eb=a0_0x4fab['NzdTrO'][_0x4a5bba];return!_0x2e99eb?(_0x4fab86=a0_0x4fab['npzOkQ'](_0x4fab86),a0_0x4fab['NzdTrO'][_0x4a5bba]=_0x4fab86):_0x4fab86=_0x2e99eb,_0x4fab86;}function a0_0x5d64(){const _0x36ead1=['Bg94AwfbCgLlzxK','mtKZndu4m2TVrgnzra','mJCZmtKYrKnzs3Pe','nJi2mZqYvu9zte1p','ndG3ogfuqxnjwG','mtC4mZy2mfbuBhzZrq','z2v0qwn0AxzLu2vZC2LVBNm','z2v0vgLTzq','Bg9Nz2vY','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','DMvUzg9YqxbPs2v5','Dg9ju09tDhjPBMC','CMvTB3zLu2vZC2LVBKTLExm','mJeWsgPUB3vo','z2XVyMfSs2v5CW','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','ChvZAa','A2v5CW','Aw5MBW','mZaWqKXnBw9I','BgvUz3rO','mtCXmMTJCK9WCW','mJGWndLrr0HMzLC','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','C2vZC2LVBKTLExm','nZC5mMPnAw9WCW','BM93','zM9YrwfJAa','DMvUzg9Ys2v5CW'];a0_0x5d64=function(){return _0x36ead1;};return a0_0x5d64();}(function(_0x18a2dd,_0x33f551){const _0x5c326c=a0_0x4fab,_0x9c6f3c=_0x18a2dd();while(!![]){try{const _0x49c046=-parseInt(_0x5c326c(0x1ba))/0x1+parseInt(_0x5c326c(0x1b9))/0x2+parseInt(_0x5c326c(0x1b8))/0x3+-parseInt(_0x5c326c(0x1b3))/0x4*(parseInt(_0x5c326c(0x1c4))/0x5)+parseInt(_0x5c326c(0x1ca))/0x6*(parseInt(_0x5c326c(0x1b0))/0x7)+-parseInt(_0x5c326c(0x1af))/0x8*(parseInt(_0x5c326c(0x1bb))/0x9)+parseInt(_0x5c326c(0x1bc))/0xa;if(_0x49c046===_0x33f551)break;else _0x9c6f3c['push'](_0x9c6f3c['shift']());}catch(_0xd72c8b){_0x9c6f3c['push'](_0x9c6f3c['shift']());}}}(a0_0x5d64,0x5209b));class ApiKeyManager{constructor(_0x50cd77){const _0x2213a7=a0_0x4fab;this['logger']=_0x50cd77,this[_0x2213a7(0x1b2)]=new Map(),this[_0x2213a7(0x1c5)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x34169c,_0x245d69){const _0x1f7c37=a0_0x4fab;if(!_0x34169c)throw new Error('Session\x20ID\x20is\x20required');this['sessionKeys']['set'](_0x34169c,{'loxiaApiKey':_0x245d69[_0x1f7c37(0x1b7)]||null,'vendorKeys':_0x245d69['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this[_0x1f7c37(0x1bf)]?.['info'](_0x1f7c37(0x1c0),{'sessionId':_0x34169c,'hasLoxiaKey':!!_0x245d69[_0x1f7c37(0x1b7)],'vendorKeys':Object['keys'](_0x245d69['vendorKeys']||{}),'timestamp':new Date()[_0x1f7c37(0x1c2)]()});}['getSessionKeys'](_0x3305a8){const _0xa0e70=a0_0x4fab;if(!_0x3305a8)return this[_0xa0e70(0x1c5)];const _0x13a2a0=this[_0xa0e70(0x1b2)]['get'](_0x3305a8);if(_0x13a2a0)return _0x13a2a0;return this[_0xa0e70(0x1c5)];}['getKeysForRequest'](_0x15c922,_0x508f16={}){const _0x3181e8=a0_0x4fab,_0x333eac=this['getSessionKeys'](_0x15c922),_0x5c41ba={'loxiaApiKey':_0x333eac[_0x3181e8(0x1b7)],'vendorApiKey':null};return!_0x508f16['platformProvided']&&_0x508f16['vendor']&&_0x333eac[_0x3181e8(0x1b6)]&&(_0x5c41ba[_0x3181e8(0x1c1)]=_0x333eac['vendorKeys'][_0x508f16['vendor']]),_0x5c41ba;}[a0_0x2575cb(0x1c3)](_0x307f12){const _0x2c4d3b=a0_0x2575cb;if(this[_0x2c4d3b(0x1b2)]['delete'](_0x307f12))return this[_0x2c4d3b(0x1bf)]?.['info'](_0x2c4d3b(0x1b1),{'sessionId':_0x307f12}),!![];return![];}['setGlobalKeys'](_0x354b7c){const _0x3ee3fe=a0_0x2575cb;this['globalKeys']={'loxiaApiKey':_0x354b7c['loxiaApiKey']||this[_0x3ee3fe(0x1c5)]['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x3ee3fe(0x1b6)],..._0x354b7c[_0x3ee3fe(0x1b6)]||{}}},this[_0x3ee3fe(0x1bf)]?.['info'](_0x3ee3fe(0x1c6),{'hasLoxiaKey':!!this['globalKeys'][_0x3ee3fe(0x1b7)],'vendorKeys':Object[_0x3ee3fe(0x1c8)](this[_0x3ee3fe(0x1c5)][_0x3ee3fe(0x1b6)])});}[a0_0x2575cb(0x1bd)](){const _0x5eebfc=a0_0x2575cb;return Array['from'](this[_0x5eebfc(0x1b2)]['entries']())['map'](([_0xab271d,_0x54ca7f])=>({'sessionId':_0xab271d,'hasLoxiaKey':!!_0x54ca7f['loxiaApiKey'],'vendorKeys':Object['keys'](_0x54ca7f['vendorKeys']||{}),'updatedAt':_0x54ca7f['updatedAt']}));}['cleanupExpiredSessions'](_0x5e0166=0x18*0x3c*0x3c*0x3e8){const _0x41ca63=a0_0x2575cb,_0x4d5ee5=Date[_0x41ca63(0x1b4)](),_0x52338d=[];for(const [_0x5775ef,_0x3c1de6]of this['sessionKeys']['entries']()){const _0x3ea037=_0x4d5ee5-new Date(_0x3c1de6['updatedAt'])[_0x41ca63(0x1be)]();_0x3ea037>_0x5e0166&&_0x52338d[_0x41ca63(0x1c7)](_0x5775ef);}return _0x52338d[_0x41ca63(0x1b5)](_0x41b34d=>{const _0x1770c1=_0x41ca63;this[_0x1770c1(0x1b2)]['delete'](_0x41b34d);}),_0x52338d['length']>0x0&&this['logger']?.[_0x41ca63(0x1c9)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x52338d['length'],'remainingSessions':this[_0x41ca63(0x1b2)]['size']}),_0x52338d[_0x41ca63(0x1ae)];}}export default ApiKeyManager;
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 +1 @@
1
- const a0_0x31312b=a0_0x3819;(function(_0x405f82,_0xb87011){const _0x5d75c5=a0_0x3819,_0x167b88=_0x405f82();while(!![]){try{const _0x25c0cb=-parseInt(_0x5d75c5(0x108))/0x1*(-parseInt(_0x5d75c5(0xff))/0x2)+parseInt(_0x5d75c5(0x11e))/0x3+-parseInt(_0x5d75c5(0xf5))/0x4+parseInt(_0x5d75c5(0x112))/0x5+parseInt(_0x5d75c5(0x11b))/0x6+-parseInt(_0x5d75c5(0x10f))/0x7+parseInt(_0x5d75c5(0x107))/0x8;if(_0x25c0cb===_0xb87011)break;else _0x167b88['push'](_0x167b88['shift']());}catch(_0x5564c9){_0x167b88['push'](_0x167b88['shift']());}}}(a0_0x14a2,0xb17ab));function a0_0x3819(_0x1c86e3,_0x339caf){_0x1c86e3=_0x1c86e3-0xf5;const _0x14a245=a0_0x14a2();let _0x381901=_0x14a245[_0x1c86e3];if(a0_0x3819['uJmYwn']===undefined){var _0x2751b5=function(_0x37f9cb){const _0x146c2b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x13edf9='',_0x10c357='';for(let _0x4319fc=0x0,_0x525c02,_0x25e0c5,_0x954ed1=0x0;_0x25e0c5=_0x37f9cb['charAt'](_0x954ed1++);~_0x25e0c5&&(_0x525c02=_0x4319fc%0x4?_0x525c02*0x40+_0x25e0c5:_0x25e0c5,_0x4319fc++%0x4)?_0x13edf9+=String['fromCharCode'](0xff&_0x525c02>>(-0x2*_0x4319fc&0x6)):0x0){_0x25e0c5=_0x146c2b['indexOf'](_0x25e0c5);}for(let _0x312932=0x0,_0x1beb38=_0x13edf9['length'];_0x312932<_0x1beb38;_0x312932++){_0x10c357+='%'+('00'+_0x13edf9['charCodeAt'](_0x312932)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x10c357);};a0_0x3819['qgBXZT']=_0x2751b5,a0_0x3819['pKJbFz']={},a0_0x3819['uJmYwn']=!![];}const _0x1133a5=_0x14a245[0x0],_0x4aa2e9=_0x1c86e3+_0x1133a5,_0x459920=a0_0x3819['pKJbFz'][_0x4aa2e9];return!_0x459920?(_0x381901=a0_0x3819['qgBXZT'](_0x381901),a0_0x3819['pKJbFz'][_0x4aa2e9]=_0x381901):_0x381901=_0x459920,_0x381901;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0x14a2(){const _0x4a9a85=['Bwf4','ANnVBG','Dg9ju09tDhjPBMC','x2DLDe1VC3rdB3n0rwzMAwnPzw50','DgfZA3m','z2v0qMvUy2HTyxjRvgfIBgu','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','zxjYB3i','C3rHDhvZ','odC0nJi0q0PuBvLL','CxvPy2STDgfZA3m','C3rHDhvZvgv4Da','C2nVCMu','AxnmB2fKAw5N','Bw9KzwXZ','C29YDa','BgvUz3rO','mJK5mZC5mKLKBgDTvG','m2nytKDLyG','z2v0u3rHDhvZ','BMfTzq','x3nJAgvKDwXLuMvMCMvZAa','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','BwvZC2fNzq','DMfSDwvZ','otK3nJu0n3boDwLNtq','yMvUy2HTyxjRCW','Bg9Nz2vY','mZuWmZC4mfzHA3zQrW','y29ZDa','BwfW','BM93','yw5HBhLZAxm','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','zgvIDwC','C3bLzwq','ndy1mtyYnKzpr3P1za','CMvMCMvZAeLUDgvYDMfS','BMvLzhnszwzYzxnO','odeYotu4Dfvore1Y','z2v0qMvUy2HTyxjRCW','C291CMnL','y29UzMLN','Dw5RBM93BG','BgfZDfvWzgf0zwq','yxbWBgLJyxrPB24VANnVBG','Aw5MBW','x2DLDejLC3rnB2rLBezVCLrHC2S','nteYmZK4ofriD0TUBq'];a0_0x14a2=function(){return _0x4a9a85;};return a0_0x14a2();}class BenchmarkService{constructor(_0x13edf9,_0x10c357){const _0x2cf728=a0_0x3819;this['config']=_0x13edf9,this['logger']=_0x10c357,this['benchmarks']=null,this[_0x2cf728(0x123)]=null,this[_0x2cf728(0x103)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this[_0x2cf728(0x11c)]=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async['initialize'](){const _0x296c4f=a0_0x3819;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger']['info'](_0x296c4f(0x10c));}catch(_0x4319fc){this['logger'][_0x296c4f(0xfd)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x4319fc[_0x296c4f(0x10d)]}),this[_0x296c4f(0x110)]=null;}}['getBenchmarks'](){const _0x22ba2d=a0_0x3819;if(!this['benchmarks'])return this['logger'][_0x22ba2d(0xfd)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x4df915=a0_0x3819;if(this[_0x4df915(0x103)]){this[_0x4df915(0x111)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x4df915(0x103)]=!![];try{const _0x525c02=await this['_fetchFromAzureBackend']();if(_0x525c02)this[_0x4df915(0x110)]=_0x525c02,this['lastUpdated']=new Date(),this['logger']['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x525c02['models']?.[_0x4df915(0x106)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x25e0c5){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x25e0c5[_0x4df915(0x10d)],'endpoint':url}),!this[_0x4df915(0x110)]&&(this[_0x4df915(0x110)]=null);}finally{this[_0x4df915(0x103)]=![];}}[a0_0x31312b(0xfb)](){const _0xc279e2=a0_0x31312b,_0x954ed1=this[_0xc279e2(0x11f)]();return{'lastUpdated':this[_0xc279e2(0x123)]?.[_0xc279e2(0xf8)]()||_0xc279e2(0x122),'models':_0x954ed1[_0xc279e2(0x104)]||[],'tasks':_0x954ed1[_0xc279e2(0xfa)]||{},'summary':this[_0xc279e2(0xfc)](_0x954ed1)};}['needsRefresh'](){const _0x1017df=a0_0x31312b;if(!this[_0x1017df(0x123)])return!![];const _0x312932=Date[_0x1017df(0x115)]()-this[_0x1017df(0x123)]['getTime']();return _0x312932>this['refreshInterval'];}async[a0_0x31312b(0x117)](){const _0x528fa3=a0_0x31312b,_0x1beb38=this['azureBackendUrl']+'/llm/model-benchmarks';let _0x37da7d=null;this['config']['apiKey']&&(_0x37da7d=this[_0x528fa3(0x121)]['apiKey']);const _0x325e9c={'method':'GET','headers':{'Content-Type':_0x528fa3(0x124),..._0x37da7d&&{'Authorization':'Bearer\x20'+_0x37da7d}},'timeout':0x2710};this[_0x528fa3(0x111)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x1beb38});const _0x4243bd=await fetch(_0x1beb38,_0x325e9c);if(!_0x4243bd['ok'])throw new Error('HTTP\x20'+_0x4243bd[_0x528fa3(0xfe)]+':\x20'+_0x4243bd[_0x528fa3(0x101)]);const _0x3c59fe=await _0x4243bd[_0x528fa3(0xf7)]();return _0x3c59fe;}['_generateBenchmarkSummary'](_0x4e3a47){const _0x544988=a0_0x31312b,_0x192e5e=_0x4e3a47[_0x544988(0x104)]||[];return{'totalModels':_0x192e5e['length'],'taskCategories':Object['keys'](_0x4e3a47[_0x544988(0xfa)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x192e5e,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x192e5e,_0x544988(0x116)),'bestForQuickTasks':this[_0x544988(0x126)](_0x192e5e,_0x544988(0x100)),'bestForCreative':this['_getBestModelForTask'](_0x192e5e,'creative'),'fastestModel':this['_getFastestModel'](_0x192e5e),'mostCostEfficient':this[_0x544988(0xf9)](_0x192e5e)};}[a0_0x31312b(0x126)](_0x14f760,_0x54a37a){const _0x3233f9=a0_0x31312b;return _0x14f760['filter'](_0x5a30b3=>_0x5a30b3['tasks']&&_0x5a30b3['tasks'][_0x54a37a])[_0x3233f9(0x105)]((_0x2ddf10,_0x198471)=>(_0x198471[_0x3233f9(0xfa)][_0x54a37a]['score']||0x0)-(_0x2ddf10[_0x3233f9(0xfa)][_0x54a37a][_0x3233f9(0x102)]||0x0))[0x0]?.[_0x3233f9(0x10a)]||'unknown';}['_getFastestModel'](_0x34ed2b){const _0x296ec6=a0_0x31312b,_0x29169b={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x34ed2b['sort']((_0x199180,_0xd3f5d1)=>{const _0x2afdc4=a0_0x3819,_0x57e97f=Math[_0x2afdc4(0xf6)](...Object['values'](_0x199180['tasks']||{})[_0x2afdc4(0x114)](_0x4541a4=>_0x29169b[_0x4541a4[_0x2afdc4(0x11a)]]||0x0)),_0x514957=Math[_0x2afdc4(0xf6)](...Object['values'](_0xd3f5d1['tasks']||{})[_0x2afdc4(0x114)](_0x1a40ce=>_0x29169b[_0x1a40ce[_0x2afdc4(0x11a)]]||0x0));return _0x514957-_0x57e97f;})[0x0]?.[_0x296ec6(0x10a)]||_0x296ec6(0x122);}['_getMostCostEfficient'](_0x5e0cbe){const _0x40acbe=a0_0x31312b,_0x53ca6e={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x5e0cbe[_0x40acbe(0x105)]((_0x2a2093,_0x3d89b4)=>{const _0x51bfb1=_0x40acbe,_0x3900d5=Math[_0x51bfb1(0xf6)](...Object[_0x51bfb1(0x10e)](_0x2a2093['tasks']||{})['map'](_0x2be7ec=>_0x53ca6e[_0x2be7ec[_0x51bfb1(0x113)]]||0x0)),_0x24e5c0=Math[_0x51bfb1(0xf6)](...Object[_0x51bfb1(0x10e)](_0x3d89b4[_0x51bfb1(0xfa)]||{})[_0x51bfb1(0x114)](_0x232df3=>_0x53ca6e[_0x232df3[_0x51bfb1(0x113)]]||0x0));return _0x24e5c0-_0x3900d5;})[0x0]?.['name']||'unknown';}[a0_0x31312b(0x10b)](){const _0x3bcc8a=a0_0x31312b;setInterval(async()=>{const _0x380e7a=a0_0x3819;this['needsRefresh']()&&(this[_0x380e7a(0x111)][_0x380e7a(0x119)](_0x380e7a(0x118)),await this['loadBenchmarks']());},this[_0x3bcc8a(0x11c)]);}async['forceRefresh'](){const _0x5e2cd0=a0_0x31312b;this['logger'][_0x5e2cd0(0x125)]('Force\x20refreshing\x20benchmark\x20data'),await this['loadBenchmarks']();}[a0_0x31312b(0x109)](){const _0x3daf73=a0_0x31312b;return{'initialized':!!this['benchmarks'],'lastUpdated':this[_0x3daf73(0x123)]?.[_0x3daf73(0xf8)]()||null,'source':this['benchmarks']?.[_0x3daf73(0x120)]||'unknown','modelCount':this['benchmarks']?.[_0x3daf73(0x104)]?.[_0x3daf73(0x106)]||0x0,'isLoading':this[_0x3daf73(0x103)],'needsRefresh':this[_0x3daf73(0x11d)]()};}}export default BenchmarkService;
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 +1 @@
1
- const a0_0x167936=a0_0x30d2;(function(_0x371c44,_0x1504b6){const _0x39132d=a0_0x30d2,_0x5d9456=_0x371c44();while(!![]){try{const _0x4bf983=-parseInt(_0x39132d(0x111))/0x1+-parseInt(_0x39132d(0x115))/0x2+-parseInt(_0x39132d(0x135))/0x3+-parseInt(_0x39132d(0x125))/0x4+parseInt(_0x39132d(0x11d))/0x5*(-parseInt(_0x39132d(0x117))/0x6)+-parseInt(_0x39132d(0x11c))/0x7*(-parseInt(_0x39132d(0x133))/0x8)+parseInt(_0x39132d(0x128))/0x9*(parseInt(_0x39132d(0x12a))/0xa);if(_0x4bf983===_0x1504b6)break;else _0x5d9456['push'](_0x5d9456['shift']());}catch(_0x207be0){_0x5d9456['push'](_0x5d9456['shift']());}}}(a0_0x5725,0x87488));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x30d2(_0x514a18,_0x220df7){_0x514a18=_0x514a18-0x108;const _0x5725f1=a0_0x5725();let _0x30d209=_0x5725f1[_0x514a18];if(a0_0x30d2['uDRioC']===undefined){var _0x111dce=function(_0x85ccee){const _0x40b6c8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9541e3='',_0x168ecd='';for(let _0x272b33=0x0,_0x3ccaa8,_0x5456fb,_0x3db74d=0x0;_0x5456fb=_0x85ccee['charAt'](_0x3db74d++);~_0x5456fb&&(_0x3ccaa8=_0x272b33%0x4?_0x3ccaa8*0x40+_0x5456fb:_0x5456fb,_0x272b33++%0x4)?_0x9541e3+=String['fromCharCode'](0xff&_0x3ccaa8>>(-0x2*_0x272b33&0x6)):0x0){_0x5456fb=_0x40b6c8['indexOf'](_0x5456fb);}for(let _0x37cc00=0x0,_0x1e3068=_0x9541e3['length'];_0x37cc00<_0x1e3068;_0x37cc00++){_0x168ecd+='%'+('00'+_0x9541e3['charCodeAt'](_0x37cc00)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x168ecd);};a0_0x30d2['PNJQpx']=_0x111dce,a0_0x30d2['EqjZnl']={},a0_0x30d2['uDRioC']=!![];}const _0x5c15fc=_0x5725f1[0x0],_0x26afd5=_0x514a18+_0x5c15fc,_0x3806b6=a0_0x30d2['EqjZnl'][_0x26afd5];return!_0x3806b6?(_0x30d209=a0_0x30d2['PNJQpx'](_0x30d209),a0_0x30d2['EqjZnl'][_0x26afd5]=_0x30d209):_0x30d209=_0x3806b6,_0x30d209;}export class BudgetService{constructor(_0x9541e3,_0x168ecd){const _0x17f6e5=a0_0x30d2;this[_0x17f6e5(0x168)]=_0x9541e3||{},this[_0x17f6e5(0x155)]=_0x168ecd,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x17f6e5(0x14f)]={'daily':BUDGET_LIMITS[_0x17f6e5(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x17f6e5(0x131)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x17f6e5(0x149)],'lastAlertTimes':new Map()},this[_0x17f6e5(0x160)](),this['setupPeriodicSave']();}[a0_0x167936(0x122)](_0x272b33,_0x3ccaa8,_0x5456fb){const _0xd85ae1=a0_0x167936;try{const _0x3db74d=this[_0xd85ae1(0x14a)](_0x3ccaa8,_0x5456fb),_0x37cc00=new Date(),_0x1e3068=this[_0xd85ae1(0x110)](_0x37cc00),_0x170626=this[_0xd85ae1(0x163)](_0x37cc00),_0xe04a3f=this[_0xd85ae1(0x11f)](_0x37cc00);this[_0xd85ae1(0x13c)](this[_0xd85ae1(0x145)][_0xd85ae1(0x132)],_0x1e3068),this['initializeUsageEntry'](this['usage'][_0xd85ae1(0x14c)],_0x170626),this[_0xd85ae1(0x13c)](this['usage'][_0xd85ae1(0x112)],_0xe04a3f);const _0x40de57={'agentId':_0x272b33,'modelId':_0x3ccaa8,'tokens':_0x5456fb[_0xd85ae1(0x141)],'cost':_0x3db74d,'timestamp':_0x37cc00['toISOString']()};return this['updateUsageEntry'](this['usage'][_0xd85ae1(0x132)][_0xd85ae1(0x142)](_0x1e3068),_0x40de57),this['updateUsageEntry'](this['usage']['weekly'][_0xd85ae1(0x142)](_0x170626),_0x40de57),this['updateUsageEntry'](this[_0xd85ae1(0x145)]['monthly'][_0xd85ae1(0x142)](_0xe04a3f),_0x40de57),this[_0xd85ae1(0x145)]['total']['tokens']+=_0x5456fb['total_tokens'],this[_0xd85ae1(0x145)]['total']['cost']+=_0x3db74d,this['usage']['total'][_0xd85ae1(0x134)]+=0x1,this['checkBudgetLimits'](_0x1e3068,_0x170626,_0xe04a3f),this['logger']['info'](_0xd85ae1(0x158),{'agentId':_0x272b33,'modelId':_0x3ccaa8,'tokens':_0x5456fb['total_tokens'],'cost':_0x3db74d,'totalCost':this['usage']['total'][_0xd85ae1(0x118)]}),{'cost':_0x3db74d,'totalCost':this['usage']['total']['cost'],'totalTokens':this['usage'][_0xd85ae1(0x108)]['tokens'],'dailyUsage':this['usage'][_0xd85ae1(0x132)]['get'](_0x1e3068),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5a6123){this[_0xd85ae1(0x155)][_0xd85ae1(0x148)](_0xd85ae1(0x126),{'error':_0x5a6123['message'],'agentId':_0x272b33,'modelId':_0x3ccaa8});throw _0x5a6123;}}['calculateCost'](_0x253dfc,_0x2eda47){const _0x163757=a0_0x167936,_0x1f5a86=COST_PER_TOKEN[_0x253dfc];if(!_0x1f5a86)return this[_0x163757(0x155)][_0x163757(0x15b)](_0x163757(0x14d),{'modelId':_0x253dfc}),0x0;const _0x20e338=(_0x2eda47[_0x163757(0x10f)]||0x0)*_0x1f5a86['input'],_0x55d09f=(_0x2eda47['completion_tokens']||0x0)*_0x1f5a86[_0x163757(0x157)];return _0x20e338+_0x55d09f;}['getUsage'](_0x59ff7e='daily',_0x2b1162=new Date()){const _0xe632a8=a0_0x167936;switch(_0x59ff7e){case'daily':return this['usage']['daily']['get'](this[_0xe632a8(0x110)](_0x2b1162))||this['createEmptyUsage']();case'weekly':return this[_0xe632a8(0x145)]['weekly'][_0xe632a8(0x142)](this[_0xe632a8(0x163)](_0x2b1162))||this['createEmptyUsage']();case _0xe632a8(0x112):return this['usage']['monthly'][_0xe632a8(0x142)](this[_0xe632a8(0x11f)](_0x2b1162))||this[_0xe632a8(0x166)]();case'total':return{...this['usage'][_0xe632a8(0x108)]};default:throw new Error(_0xe632a8(0x123)+_0x59ff7e);}}['getAgentUsage'](_0x4eb8ca,_0x138421=a0_0x167936(0x132)){const _0xb531d=this['getUsage'](_0x138421);return _0xb531d['byAgent']?.[_0x4eb8ca]||this['createEmptyUsage']();}[a0_0x167936(0x137)](_0x5bc0d7,_0x165425='daily'){const _0x1d2a95=a0_0x167936,_0x4ba1fb=this[_0x1d2a95(0x11e)](_0x165425);return _0x4ba1fb[_0x1d2a95(0x156)]?.[_0x5bc0d7]||this[_0x1d2a95(0x166)]();}[a0_0x167936(0x120)](_0x32ea5b){const _0xe9882f=a0_0x167936;if(_0x32ea5b['daily']!==undefined)this[_0xe9882f(0x14f)][_0xe9882f(0x132)]=_0x32ea5b['daily'];if(_0x32ea5b[_0xe9882f(0x14c)]!==undefined)this['budgets'][_0xe9882f(0x14c)]=_0x32ea5b[_0xe9882f(0x14c)];if(_0x32ea5b['monthly']!==undefined)this[_0xe9882f(0x14f)]['monthly']=_0x32ea5b[_0xe9882f(0x112)];this['logger']['info']('Budget\x20limits\x20updated',this['budgets']),this[_0xe9882f(0x136)]();}['getRemainingBudget'](){const _0x331b15=a0_0x167936,_0x81f72=new Date(),_0x174f2e=this[_0x331b15(0x11e)](_0x331b15(0x132),_0x81f72),_0x6a5d27=this['getUsage']('weekly',_0x81f72),_0x1bfad6=this['getUsage'](_0x331b15(0x112),_0x81f72);return{'daily':Math[_0x331b15(0x151)](0x0,this[_0x331b15(0x14f)][_0x331b15(0x132)]-_0x174f2e[_0x331b15(0x118)]),'weekly':Math['max'](0x0,this[_0x331b15(0x14f)]['weekly']-_0x6a5d27['cost']),'monthly':Math[_0x331b15(0x151)](0x0,this[_0x331b15(0x14f)]['monthly']-_0x1bfad6[_0x331b15(0x118)])};}[a0_0x167936(0x114)](_0xfca345='daily'){const _0x15bb45=this['getUsage'](_0xfca345),_0x58d7d2=this['budgets'][_0xfca345];return _0x15bb45['cost']<=_0x58d7d2;}['getUsageTrends'](_0x36401f=0x1e){const _0x3ff1ae=a0_0x167936,_0x84684a={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x157940=new Date();let _0x537e1c=0x0,_0x9c848f=0x0,_0x59e8f1=0x0;const _0x889db5=new Map(),_0x204878=new Map();for(let _0x4663eb=0x0;_0x4663eb<_0x36401f;_0x4663eb++){const _0x5d89a0=new Date(_0x157940);_0x5d89a0['setDate'](_0x5d89a0['getDate']()-_0x4663eb);const _0x2d2eca=this[_0x3ff1ae(0x110)](_0x5d89a0),_0x1bd3c5=this[_0x3ff1ae(0x145)][_0x3ff1ae(0x132)][_0x3ff1ae(0x142)](_0x2d2eca);_0x1bd3c5?(_0x537e1c+=_0x1bd3c5['cost'],_0x9c848f+=_0x1bd3c5[_0x3ff1ae(0x130)],_0x59e8f1+=_0x1bd3c5['requests'],_0x84684a['costByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'cost':_0x1bd3c5['cost']}),_0x84684a[_0x3ff1ae(0x11a)]['unshift']({'date':_0x2d2eca,'tokens':_0x1bd3c5[_0x3ff1ae(0x130)]}),Object['entries'](_0x1bd3c5['byAgent']||{})[_0x3ff1ae(0x13a)](([_0xd9946c,_0x591ede])=>{const _0x3b60be=_0x3ff1ae;!_0x889db5[_0x3b60be(0x161)](_0xd9946c)&&_0x889db5['set'](_0xd9946c,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x3d8ee2=_0x889db5['get'](_0xd9946c);_0x3d8ee2['cost']+=_0x591ede[_0x3b60be(0x118)],_0x3d8ee2[_0x3b60be(0x130)]+=_0x591ede[_0x3b60be(0x130)],_0x3d8ee2['requests']+=_0x591ede[_0x3b60be(0x134)];}),Object['entries'](_0x1bd3c5['byModel']||{})['forEach'](([_0x2c67e2,_0x32ce0d])=>{const _0xf00126=_0x3ff1ae;!_0x204878[_0xf00126(0x161)](_0x2c67e2)&&_0x204878['set'](_0x2c67e2,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x4353d8=_0x204878['get'](_0x2c67e2);_0x4353d8['cost']+=_0x32ce0d['cost'],_0x4353d8['tokens']+=_0x32ce0d[_0xf00126(0x130)],_0x4353d8['requests']+=_0x32ce0d['requests'];})):(_0x84684a['costByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'cost':0x0}),_0x84684a['tokensByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'tokens':0x0}));}return _0x84684a[_0x3ff1ae(0x159)]['cost']=_0x537e1c/_0x36401f,_0x84684a['dailyAverages']['tokens']=_0x9c848f/_0x36401f,_0x84684a[_0x3ff1ae(0x159)]['requests']=_0x59e8f1/_0x36401f,_0x84684a[_0x3ff1ae(0x12f)]=Array['from'](_0x889db5[_0x3ff1ae(0x10a)]())[_0x3ff1ae(0x169)](([_0x39a2b5,_0x208b36])=>({'id':_0x39a2b5,..._0x208b36}))[_0x3ff1ae(0x12d)]((_0x4ba363,_0x52c74a)=>_0x52c74a[_0x3ff1ae(0x118)]-_0x4ba363[_0x3ff1ae(0x118)])['slice'](0x0,0xa),_0x84684a[_0x3ff1ae(0x124)]=Array[_0x3ff1ae(0x15f)](_0x204878['entries']())[_0x3ff1ae(0x169)](([_0x23794c,_0x2ee03e])=>({'id':_0x23794c,..._0x2ee03e}))[_0x3ff1ae(0x12d)]((_0x38a683,_0x155f6a)=>_0x155f6a[_0x3ff1ae(0x118)]-_0x38a683['cost'])[_0x3ff1ae(0x15c)](0x0,0xa),_0x84684a;}[a0_0x167936(0x10b)](_0x96331e='json',_0x1eab0b=null,_0x48d655=null){const _0x1abda9=a0_0x167936,_0x1d6f06={'budgets':this[_0x1abda9(0x14f)],'total':this[_0x1abda9(0x145)]['total'],'daily':{},'weekly':{},'monthly':{}},_0xb17006=(_0x35f91e,_0x2667ea)=>{const _0x298c36=_0x1abda9,_0x49837e={};return _0x35f91e[_0x298c36(0x13a)]((_0x525b16,_0x3e9a0f)=>{const _0x495082=_0x2667ea(_0x3e9a0f);(!_0x1eab0b||_0x495082>=_0x1eab0b)&&(!_0x48d655||_0x495082<=_0x48d655)&&(_0x49837e[_0x3e9a0f]=_0x525b16);}),_0x49837e;};_0x1eab0b||_0x48d655?(_0x1d6f06[_0x1abda9(0x132)]=_0xb17006(this[_0x1abda9(0x145)][_0x1abda9(0x132)],_0x2f6805=>new Date(_0x2f6805)),_0x1d6f06['weekly']=_0xb17006(this['usage']['weekly'],_0x596201=>new Date(_0x596201)),_0x1d6f06['monthly']=_0xb17006(this[_0x1abda9(0x145)]['monthly'],_0x420e69=>new Date(_0x420e69+_0x1abda9(0x146)))):(this[_0x1abda9(0x145)]['daily']['forEach']((_0x229476,_0x224562)=>_0x1d6f06['daily'][_0x224562]=_0x229476),this[_0x1abda9(0x145)][_0x1abda9(0x14c)][_0x1abda9(0x13a)]((_0x59819c,_0x23929d)=>_0x1d6f06[_0x1abda9(0x14c)][_0x23929d]=_0x59819c),this['usage']['monthly'][_0x1abda9(0x13a)]((_0x33ae32,_0x5aeb70)=>_0x1d6f06[_0x1abda9(0x112)][_0x5aeb70]=_0x33ae32));if(_0x96331e===_0x1abda9(0x119))return this[_0x1abda9(0x12c)](_0x1d6f06);return JSON['stringify'](_0x1d6f06,null,0x2);}[a0_0x167936(0x13c)](_0x206e3c,_0x3fdf4d){const _0x210ec8=a0_0x167936;!_0x206e3c[_0x210ec8(0x161)](_0x3fdf4d)&&_0x206e3c['set'](_0x3fdf4d,this['createEmptyUsage']());}[a0_0x167936(0x166)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x35b9bd,_0x4b6c78){const _0x94ed95=a0_0x167936;_0x35b9bd['cost']+=_0x4b6c78[_0x94ed95(0x118)],_0x35b9bd['tokens']+=_0x4b6c78[_0x94ed95(0x130)],_0x35b9bd['requests']+=0x1,!_0x35b9bd[_0x94ed95(0x14b)][_0x4b6c78[_0x94ed95(0x165)]]&&(_0x35b9bd['byAgent'][_0x4b6c78['agentId']]=this['createEmptyUsage']()),_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]][_0x94ed95(0x118)]+=_0x4b6c78['cost'],_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]][_0x94ed95(0x130)]+=_0x4b6c78[_0x94ed95(0x130)],_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]]['requests']+=0x1,!_0x35b9bd['byModel'][_0x4b6c78[_0x94ed95(0x138)]]&&(_0x35b9bd[_0x94ed95(0x156)][_0x4b6c78[_0x94ed95(0x138)]]=this[_0x94ed95(0x166)]()),_0x35b9bd[_0x94ed95(0x156)][_0x4b6c78['modelId']]['cost']+=_0x4b6c78[_0x94ed95(0x118)],_0x35b9bd['byModel'][_0x4b6c78['modelId']]['tokens']+=_0x4b6c78['tokens'],_0x35b9bd['byModel'][_0x4b6c78['modelId']]['requests']+=0x1;}['checkBudgetLimits'](_0x32e062,_0x5a2fce,_0x5556e9){const _0x56ec34=a0_0x167936,_0x3a8e1a=this[_0x56ec34(0x145)]['daily']['get'](_0x32e062),_0x2daa24=this[_0x56ec34(0x145)][_0x56ec34(0x14c)][_0x56ec34(0x142)](_0x5a2fce),_0x6785e1=this['usage']['monthly'][_0x56ec34(0x142)](_0x5556e9);_0x3a8e1a[_0x56ec34(0x118)]>this['budgets']['daily']&&this['sendBudgetAlert'](_0x56ec34(0x132),_0x3a8e1a['cost'],this[_0x56ec34(0x14f)][_0x56ec34(0x132)]),_0x2daa24[_0x56ec34(0x118)]>this[_0x56ec34(0x14f)][_0x56ec34(0x14c)]&&this['sendBudgetAlert']('weekly',_0x2daa24[_0x56ec34(0x118)],this[_0x56ec34(0x14f)]['weekly']),_0x6785e1['cost']>this[_0x56ec34(0x14f)]['monthly']&&this[_0x56ec34(0x12e)](_0x56ec34(0x112),_0x6785e1['cost'],this['budgets'][_0x56ec34(0x112)]),this[_0x56ec34(0x13d)](_0x3a8e1a,_0x2daa24,_0x6785e1);}['checkThresholdAlerts'](_0x2eacbb,_0x52ee3b,_0x1b1416){const _0x8c0967=a0_0x167936,_0x13abaa=this['alerts'][_0x8c0967(0x150)];this[_0x8c0967(0x15e)](_0x8c0967(0x132),_0x2eacbb[_0x8c0967(0x118)],this['budgets']['daily'],_0x13abaa),this['checkThreshold'](_0x8c0967(0x14c),_0x52ee3b[_0x8c0967(0x118)],this['budgets'][_0x8c0967(0x14c)],_0x13abaa),this['checkThreshold']('monthly',_0x1b1416['cost'],this['budgets'][_0x8c0967(0x112)],_0x13abaa);}['checkThreshold'](_0x5004a3,_0x57be5,_0x40bdbe,_0x523658){const _0x36cc98=a0_0x167936,_0x48bcf7=_0x57be5/_0x40bdbe*0x64;for(const _0x37dc92 of _0x523658){if(_0x48bcf7>=_0x37dc92){const _0x380abb=_0x5004a3+'_'+_0x37dc92,_0x60d6cd=this[_0x36cc98(0x15a)][_0x36cc98(0x116)]['get'](_0x380abb),_0x188fe9=Date[_0x36cc98(0x152)]();(!_0x60d6cd||_0x188fe9-_0x60d6cd>0x36ee80)&&(this[_0x36cc98(0x121)](_0x5004a3,_0x48bcf7,_0x37dc92,_0x57be5,_0x40bdbe),this['alerts']['lastAlertTimes'][_0x36cc98(0x144)](_0x380abb,_0x188fe9));break;}}}[a0_0x167936(0x12e)](_0x2bf5b4,_0x2c7a0d,_0x4bf88a){const _0x2071d6=a0_0x167936;this['logger']['warn'](_0x2071d6(0x11b),{'period':_0x2bf5b4,'currentUsage':_0x2c7a0d,'budgetLimit':_0x4bf88a,'excess':_0x2c7a0d-_0x4bf88a}),typeof process!=='undefined'&&process[_0x2071d6(0x162)]&&process[_0x2071d6(0x162)](_0x2071d6(0x10c),{'type':'budget_exceeded','period':_0x2bf5b4,'currentUsage':_0x2c7a0d,'budgetLimit':_0x4bf88a,'excess':_0x2c7a0d-_0x4bf88a});}[a0_0x167936(0x121)](_0x4c7685,_0x19b34f,_0x115194,_0x1092ce,_0x20aba8){const _0x526d06=a0_0x167936;this[_0x526d06(0x155)]['warn']('Budget\x20threshold\x20reached',{'period':_0x4c7685,'percentage':Math['round'](_0x19b34f),'threshold':_0x115194,'usage':_0x1092ce,'budget':_0x20aba8}),typeof process!=='undefined'&&process[_0x526d06(0x162)]&&process[_0x526d06(0x162)](_0x526d06(0x10c),{'type':_0x526d06(0x13f),'period':_0x4c7685,'percentage':Math[_0x526d06(0x167)](_0x19b34f),'threshold':_0x115194,'usage':_0x1092ce,'budget':_0x20aba8});}[a0_0x167936(0x110)](_0x5205c3){const _0x410659=a0_0x167936;return _0x5205c3['toISOString']()[_0x410659(0x15d)]('T')[0x0];}['getWeekKey'](_0x446dce){const _0x5cc177=a0_0x167936,_0x33fde0=_0x446dce['getFullYear'](),_0x480403=this['getWeekNumber'](_0x446dce);return _0x33fde0+'-W'+_0x480403[_0x5cc177(0x153)]()['padStart'](0x2,'0');}[a0_0x167936(0x11f)](_0x374008){const _0x1e7878=a0_0x167936,_0x23d453=_0x374008['getFullYear'](),_0x11d734=_0x374008['getMonth']()+0x1;return _0x23d453+'-'+_0x11d734[_0x1e7878(0x153)]()[_0x1e7878(0x154)](0x2,'0');}[a0_0x167936(0x13e)](_0x5cda69){const _0x284e6f=new Date(_0x5cda69['getFullYear'](),0x0,0x1),_0x412845=(_0x5cda69-_0x284e6f)/0x5265c00;return Math['ceil']((_0x412845+_0x284e6f['getDay']()+0x1)/0x7);}[a0_0x167936(0x12c)](_0x4df4f){const _0x1b083a=a0_0x167936,_0x31d96b=[];return _0x31d96b['push']([_0x1b083a(0x16a),_0x1b083a(0x10e),_0x1b083a(0x147),'Tokens',_0x1b083a(0x12b),'Agent',_0x1b083a(0x13b)]),Object['entries'](_0x4df4f['daily'])[_0x1b083a(0x13a)](([_0x50f39c,_0x1ba0ce])=>{const _0x4d2c7a=_0x1b083a;_0x31d96b[_0x4d2c7a(0x139)]([_0x4d2c7a(0x109),_0x50f39c,_0x1ba0ce['cost'],_0x1ba0ce[_0x4d2c7a(0x130)],_0x1ba0ce[_0x4d2c7a(0x134)],'','']),Object[_0x4d2c7a(0x10a)](_0x1ba0ce[_0x4d2c7a(0x14b)]||{})[_0x4d2c7a(0x13a)](([_0xe86e12,_0x3f7bfa])=>{const _0x530c2a=_0x4d2c7a;_0x31d96b['push']([_0x530c2a(0x109),_0x50f39c,_0x3f7bfa[_0x530c2a(0x118)],_0x3f7bfa[_0x530c2a(0x130)],_0x3f7bfa[_0x530c2a(0x134)],_0xe86e12,'']);});}),_0x31d96b[_0x1b083a(0x169)](_0x173610=>_0x173610[_0x1b083a(0x164)](','))['join']('\x0a');}[a0_0x167936(0x160)](){const _0x1f7458=a0_0x167936;try{this[_0x1f7458(0x155)][_0x1f7458(0x127)](_0x1f7458(0x10d));}catch(_0x1a02bc){this[_0x1f7458(0x155)][_0x1f7458(0x148)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x1a02bc['message']});}}[a0_0x167936(0x136)](){const _0x14c917=a0_0x167936;try{this[_0x14c917(0x155)][_0x14c917(0x14e)]('Usage\x20data\x20saved');}catch(_0x4f97c8){this[_0x14c917(0x155)][_0x14c917(0x148)](_0x14c917(0x129),{'error':_0x4f97c8['message']});}}[a0_0x167936(0x143)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}function a0_0x5725(){const _0xfba01=['Bg9Nz2vY','yNLnB2rLBa','B3v0Chv0','vxnHz2uGDhjHy2TLza','zgfPBhLbDMvYywDLCW','ywXLCNrZ','D2fYBG','C2XPy2u','C3bSAxq','y2HLy2TuAhjLC2HVBgq','zNjVBq','Bg9HzfvZywDLrgf0yq','AgfZ','zw1PDa','z2v0v2vLA0TLEq','AM9PBG','ywDLBNrjza','y3jLyxrLrw1WDhLvC2fNzq','CM91BMq','y29UzMLN','BwfW','ugvYAw9K','Dg90ywW','rgfPBhK','zw50CMLLCW','zxHWB3j0vxnHz2veyxrH','yNvKz2v0qwXLCNq','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','rgf0zq','ChjVBxb0x3rVA2vUCW','z2v0rgf5s2v5','ntu4otm2A0DIC1ry','Bw9UDgHSEq','refjtfK','AxnxAxrOAw5cDwrNzxq','mtG5mJG2uePdCwLO','BgfZDefSzxj0vgLTzxm','mJqWnM91zhHeBq','y29ZDa','y3n2','Dg9Rzw5ZqNLeyxK','qNvKz2v0igXPBwL0igv4y2vLzgvK','mZvKuuHMDvG','odiZmhrcEgj2yG','z2v0vxnHz2u','z2v0tw9UDgHlzxK','C2v0qNvKz2v0CW','C2vUzfrOCMvZAg9SzefSzxj0','DhjHy2TvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','Dg9Wtw9KzwXZ','mZK0mtC1mNbRwNjiEa','rMfPBgvKihrVihrYywnRihvZywDL','Aw5MBW','mZq3ntHsB29XALG','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','odCXmhjuqwfhrG','uMvXDwvZDhm','y29UDMvYDfrVq1nw','C29YDa','C2vUzej1zgDLDefSzxj0','Dg9WqwDLBNrZ','Dg9Rzw5Z','tu9oveHmwq','zgfPBhK','ndaZotyWEKXTA2DJ','CMvXDwvZDhm','mJi4oti4mKnnzMT3wq','C2f2zvvZywDLrgf0yq','z2v0tw9KzwXvC2fNzq','Bw9KzwXjza','ChvZAa','zM9YrwfJAa','tw9KzwW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgrbBgvYDhm','z2v0v2vLA051BwjLCG','DgHYzxnOB2XKx3jLywnOzwq','Dw5ZAgLMDa','Dg90ywXFDg9Rzw5Z','z2v0','C2v0DxbqzxjPB2rPy1nHDMu','C2v0','DxnHz2u','ltaX','q29ZDa','zxjYB3i','veHsrvnit0XeuW','y2fSy3vSyxrLq29ZDa','yNLbz2vUDa','D2vLA2X5','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','zgvIDwC','yNvKz2v0CW','DgHYzxnOB2XKCW','Bwf4','BM93','Dg9tDhjPBMC','CgfKu3rHCNq'];a0_0x5725=function(){return _0xfba01;};return a0_0x5725();}export default BudgetService;
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 +1 @@
1
- const a0_0xdc88c5=a0_0x3027;(function(_0x44cdad,_0x2e7e39){const _0x35f7ca=a0_0x3027,_0x43c3bb=_0x44cdad();while(!![]){try{const _0x2397f3=-parseInt(_0x35f7ca(0x1dc))/0x1*(-parseInt(_0x35f7ca(0x207))/0x2)+parseInt(_0x35f7ca(0x203))/0x3*(parseInt(_0x35f7ca(0x1db))/0x4)+-parseInt(_0x35f7ca(0x1fe))/0x5*(-parseInt(_0x35f7ca(0x1e6))/0x6)+parseInt(_0x35f7ca(0x206))/0x7+parseInt(_0x35f7ca(0x1f3))/0x8+parseInt(_0x35f7ca(0x1e1))/0x9*(-parseInt(_0x35f7ca(0x205))/0xa)+-parseInt(_0x35f7ca(0x1dd))/0xb*(parseInt(_0x35f7ca(0x1f1))/0xc);if(_0x2397f3===_0x2e7e39)break;else _0x43c3bb['push'](_0x43c3bb['shift']());}catch(_0x2bf563){_0x43c3bb['push'](_0x43c3bb['shift']());}}}(a0_0x1e13,0xc5253));function a0_0x1e13(){const _0x174ed8=['Aw5PDgLHBgL6zq','jMfTCdS','mteWndu0vg1RBNDV','jNf1B3q7','yNvPBgreEw5HBwLJq29UDgv4Da','zxjYB3i','Dg9gAxHLza','jMX0oW','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIaVpG','z2v0qwn0AxzLqxr0ywnOBwvUDhm','Bg9Nz2vY','BwvZC2fNzq','nJqYmJuYodrbD3HkCNa','ica8zMLSzsbUyw1Lpsi','otmZntmXmMHksMjjza','Dg9Rzw5fC3rPBwf0zq','Bw9Kzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zM9YBwf0qNL0zxm','Cg93','cIaGpc9MAwXLpG','CMvWBgfJzq','zMLSDgvY','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0q29UDgvUDezPBgu','ndm1CwHiq1HT','iIbZAxPLpsi','CMvMzxjLBMnL','Bg9N','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','ow9mrejWvG','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','nJaYmJGWvennBLjq','nZK4nJa1nxrfugvpqW','nteZmdKWuhrNvKL3','Dgv4Da','CgrM','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','BgvUz3rO','zM9YBwf0sw1Hz2vgAwXL','zMLSzu5HBwu','mteWodu4ne9Zr2DPqq','nKHtu0HrsW','mtfyzvDZCMO','Aw1Hz2u','zM9YBwf0vgv4DezPBgu','zxnJyxbLwg1S','mtHKC3LpAw4','iIbWyxrOpsi','iIb0ExbLpsi'];a0_0x1e13=function(){return _0x174ed8;};return a0_0x1e13();}import a0_0xd9c09a from'./fileAttachmentService.js';function a0_0x3027(_0x4f30ac,_0x27f0b0){_0x4f30ac=_0x4f30ac-0x1d7;const _0x1e1329=a0_0x1e13();let _0x3027a1=_0x1e1329[_0x4f30ac];if(a0_0x3027['ZDLHzT']===undefined){var _0x123dda=function(_0x3017aa){const _0x331066='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xd9c09a='',_0x35daf4='';for(let _0x3275fd=0x0,_0x19b8e1,_0xd69f49,_0x208152=0x0;_0xd69f49=_0x3017aa['charAt'](_0x208152++);~_0xd69f49&&(_0x19b8e1=_0x3275fd%0x4?_0x19b8e1*0x40+_0xd69f49:_0xd69f49,_0x3275fd++%0x4)?_0xd9c09a+=String['fromCharCode'](0xff&_0x19b8e1>>(-0x2*_0x3275fd&0x6)):0x0){_0xd69f49=_0x331066['indexOf'](_0xd69f49);}for(let _0x515527=0x0,_0x172dc3=_0xd9c09a['length'];_0x515527<_0x172dc3;_0x515527++){_0x35daf4+='%'+('00'+_0xd9c09a['charCodeAt'](_0x515527)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x35daf4);};a0_0x3027['svjGIg']=_0x123dda,a0_0x3027['QDeoBE']={},a0_0x3027['ZDLHzT']=!![];}const _0x56d3a3=_0x1e1329[0x0],_0x2289d6=_0x4f30ac+_0x56d3a3,_0x2c271c=a0_0x3027['QDeoBE'][_0x2289d6];return!_0x2c271c?(_0x3027a1=a0_0x3027['svjGIg'](_0x3027a1),a0_0x3027['QDeoBE'][_0x2289d6]=_0x3027a1):_0x3027a1=_0x2c271c,_0x3027a1;}class ContextInjectionService{constructor(_0x35daf4={},_0x3275fd=null){const _0x43879c=a0_0x3027;this['config']=_0x35daf4,this['logger']=_0x3275fd,this[_0x43879c(0x1fc)]=new a0_0xd9c09a(_0x35daf4,_0x3275fd);}async['initialize'](){const _0x5a53f6=a0_0x3027;await this[_0x5a53f6(0x1fc)][_0x5a53f6(0x1e4)]();}async[a0_0xdc88c5(0x1e8)](_0x19b8e1){const _0x48d219=a0_0xdc88c5;try{const _0xd69f49=await this['attachmentService']['getActiveAttachments'](_0x19b8e1);if(_0xd69f49[_0x48d219(0x1d8)]===0x0)return'';const _0x208152=_0xd69f49[_0x48d219(0x1fb)](_0x4af04f=>_0x4af04f['mode']==='content'),_0x515527=_0xd69f49[_0x48d219(0x1fb)](_0x566fea=>_0x566fea['mode']===_0x48d219(0x200));let _0x172dc3='';if(_0x208152[_0x48d219(0x1d8)]>0x0){_0x172dc3+='\x0a<attached-files>\x0a';for(const _0xc2a188 of _0x208152){const _0x44a83e=await this[_0x48d219(0x1fc)]['getAttachmentContent'](_0xc2a188['fileId']);if(_0x44a83e){const _0x27466a=this['formatContentFile'](_0xc2a188,_0x44a83e);_0x172dc3+=_0x27466a+'\x0a';}}_0x172dc3+='</attached-files>\x0a';}if(_0x515527['length']>0x0){_0x172dc3+=_0x48d219(0x1ec);for(const _0x2bb297 of _0x515527){const _0x3f13d5=this['formatReferenceFile'](_0x2bb297);_0x172dc3+=_0x3f13d5+'\x0a';}_0x172dc3+=_0x48d219(0x1f6),_0x172dc3+=_0x48d219(0x204);}return _0x172dc3;}catch(_0x291cce){return this['logger']?.[_0x48d219(0x1e9)](_0x48d219(0x202),{'agentId':_0x19b8e1,'error':_0x291cce['message']}),'';}}[a0_0xdc88c5(0x1fd)](_0x36c69c,_0x60d65){const _0x2dc4ac=a0_0xdc88c5,{fileName:_0x185dca,fileType:_0x2fabf3,size:_0x58ea76,contentType:_0x7d87af}=_0x36c69c,_0x47eb9c=(_0x58ea76/0x400)['toFixed'](0x2);if(_0x7d87af===_0x2dc4ac(0x208))return this[_0x2dc4ac(0x1df)](_0x36c69c,_0x60d65);else{if(_0x7d87af===_0x2dc4ac(0x1de))return this[_0x2dc4ac(0x1d9)](_0x36c69c,_0x60d65);else{if(_0x7d87af===_0x2dc4ac(0x209))return this['formatPdfFile'](_0x36c69c,_0x60d65);}}return _0x2dc4ac(0x1f2)+this[_0x2dc4ac(0x1e0)](_0x185dca)+_0x2dc4ac(0x1e3)+_0x2fabf3+_0x2dc4ac(0x1ff)+_0x47eb9c+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x60d65)+'\x0a\x20\x20</file>';}[a0_0xdc88c5(0x1df)](_0x5800a3,_0x594ca8){const _0x45278b=a0_0xdc88c5,{fileName:_0x3c5fb9,fileType:_0x2135c1,size:_0xb69d53}=_0x5800a3,_0x5b45fc=(_0xb69d53/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x45278b(0x1e0)](_0x3c5fb9)+'\x22\x20type=\x22'+_0x2135c1+_0x45278b(0x1ff)+_0x5b45fc+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x45278b(0x1e0)](_0x594ca8)+'\x0a\x20\x20</file>';}[a0_0xdc88c5(0x1d9)](_0x26f8a7,_0x59f0ec){const _0x150dfd=a0_0xdc88c5,{fileName:_0x269857,fileType:_0x19b9eb,size:_0x1af07e}=_0x26f8a7,_0x24accf=(_0x1af07e/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x269857)+_0x150dfd(0x1e3)+_0x19b9eb+_0x150dfd(0x1ff)+_0x24accf+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x59f0ec+_0x150dfd(0x1f9);}['formatPdfFile'](_0xc2111b,_0x791326){const _0x168116=a0_0xdc88c5,{fileName:_0x432d71,fileType:_0x792bde,size:_0x589f69}=_0xc2111b,_0x33fe19=(_0x589f69/0x400)[_0x168116(0x1ea)](0x2);return _0x168116(0x1f2)+this['escapeXml'](_0x432d71)+'\x22\x20type=\x22'+_0x792bde+'\x22\x20size=\x22'+_0x33fe19+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x791326)+'\x0a\x20\x20</file>';}['formatReferenceFile'](_0x4a19dd){const _0x6bacc6=a0_0xdc88c5,{fileName:_0x20f5bd,originalPath:_0x2645e0,size:_0x1b3116,fileType:_0x493aab,lastModified:_0x2bba1b}=_0x4a19dd,_0x3a52fe=this[_0x6bacc6(0x1f7)](_0x1b3116),_0x329c8b=new Date(_0x2bba1b)['toISOString']()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x20f5bd)+_0x6bacc6(0x1e2)+this[_0x6bacc6(0x1e0)](_0x2645e0)+'\x22\x20size=\x22'+_0x3a52fe+_0x6bacc6(0x1e3)+_0x493aab+'\x22\x20modified=\x22'+_0x329c8b+_0x6bacc6(0x1ed);}[a0_0xdc88c5(0x1e0)](_0xb6e7a){const _0x1ad7e7=a0_0xdc88c5;if(!_0xb6e7a)return'';return _0xb6e7a[_0x1ad7e7(0x1fa)](/&/g,_0x1ad7e7(0x1e5))[_0x1ad7e7(0x1fa)](/</g,_0x1ad7e7(0x1eb))[_0x1ad7e7(0x1fa)](/>/g,'&gt;')[_0x1ad7e7(0x1fa)](/"/g,_0x1ad7e7(0x1e7))['replace'](/'/g,'&apos;');}[a0_0xdc88c5(0x1f7)](_0x37cc06){const _0x21aecd=a0_0xdc88c5;if(_0x37cc06===0x0)return'0\x20Bytes';const _0x3d5f77=0x400,_0x1e7002=['Bytes','KB','MB','GB'],_0xb3e122=Math['floor'](Math[_0x21aecd(0x201)](_0x37cc06)/Math['log'](_0x3d5f77));return parseFloat((_0x37cc06/Math[_0x21aecd(0x1f8)](_0x3d5f77,_0xb3e122))['toFixed'](0x2))+_0x1e7002[_0xb3e122];}async['estimateTotalTokens'](_0x2b42ed){const _0x3b031a=a0_0xdc88c5;try{const _0x4cf4a9=await this['attachmentService']['getActiveAttachments'](_0x2b42ed);let _0xc316cf=0x0;for(const _0xe5d6e7 of _0x4cf4a9){_0xe5d6e7['mode']==='content'?_0xc316cf+=_0xe5d6e7[_0x3b031a(0x1f4)]||0x0:_0xc316cf+=0x14;}return _0xc316cf;}catch(_0x1c3da8){return this['logger']?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x2b42ed,'error':_0x1c3da8['message']}),0x0;}}async[a0_0xdc88c5(0x1d7)](_0x4623f0){const _0x8dab11=a0_0xdc88c5;try{const _0x4208f6=await this['attachmentService'][_0x8dab11(0x1ee)](_0x4623f0),_0xa1ac71={'totalActive':_0x4208f6['length'],'contentMode':_0x4208f6[_0x8dab11(0x1fb)](_0x43401c=>_0x43401c[_0x8dab11(0x1f5)]==='content')[_0x8dab11(0x1d8)],'referenceMode':_0x4208f6['filter'](_0x288f9b=>_0x288f9b[_0x8dab11(0x1f5)]==='reference')[_0x8dab11(0x1d8)],'estimatedTokens':0x0,'files':[]};for(const _0x184018 of _0x4208f6){_0xa1ac71['estimatedTokens']+=_0x184018[_0x8dab11(0x1f4)]||0x0,_0xa1ac71['files']['push']({'fileName':_0x184018[_0x8dab11(0x1da)],'mode':_0x184018[_0x8dab11(0x1f5)],'size':this[_0x8dab11(0x1f7)](_0x184018['size']),'tokens':_0x184018['tokenEstimate']||0x0});}return _0xa1ac71;}catch(_0x531129){return this[_0x8dab11(0x1ef)]?.[_0x8dab11(0x1e9)]('Error\x20getting\x20attachment\x20summary',{'agentId':_0x4623f0,'error':_0x531129[_0x8dab11(0x1f0)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
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;