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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-lCBai6dX.js → index-CX8ZfpGw.js} +113 -60
  119. package/web-ui/build/static/index-Dwg_JrlO.css +1 -0
  120. package/web-ui/build/static/index-CClD1090.css +0 -1
@@ -1 +1 @@
1
- const a0_0x383746=a0_0x55a8;(function(_0x5537ef,_0x46bc54){const _0x289cb3=a0_0x55a8,_0x24b280=_0x5537ef();while(!![]){try{const _0x3f08ba=-parseInt(_0x289cb3(0x20c))/0x1*(parseInt(_0x289cb3(0x1d1))/0x2)+-parseInt(_0x289cb3(0x20a))/0x3+parseInt(_0x289cb3(0x214))/0x4+-parseInt(_0x289cb3(0x19a))/0x5+parseInt(_0x289cb3(0x1c9))/0x6*(-parseInt(_0x289cb3(0x1a4))/0x7)+parseInt(_0x289cb3(0x188))/0x8*(parseInt(_0x289cb3(0x189))/0x9)+-parseInt(_0x289cb3(0x19d))/0xa*(-parseInt(_0x289cb3(0x1a3))/0xb);if(_0x3f08ba===_0x46bc54)break;else _0x24b280['push'](_0x24b280['shift']());}catch(_0x1c5ba1){_0x24b280['push'](_0x24b280['shift']());}}}(a0_0x1c1c,0x2ee5c));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x490de4,_0x4af033,_0x154cc0,_0x1dc398){const _0x1e1cc0=a0_0x55a8;this['config']=_0x490de4,this['logger']=_0x4af033,this['budgetService']=_0x154cc0,this[_0x1e1cc0(0x1e9)]=_0x1dc398,this[_0x1e1cc0(0x1cf)]=_0x490de4['backend']?.['baseUrl']||'https://api.loxia.ai',this['timeout']=_0x490de4[_0x1e1cc0(0x1da)]?.[_0x1e1cc0(0x1eb)]||0xea60,this['retryAttempts']=_0x490de4['backend']?.[_0x1e1cc0(0x1d5)]||0x3,this[_0x1e1cc0(0x212)]=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x1e1cc0(0x1cd)]=this['_initializeModelSpecs'](),this['conversationManagers']=new Map(),this[_0x1e1cc0(0x194)]=null,this[_0x1e1cc0(0x196)]=null;}async[a0_0x383746(0x19f)](_0x12be62,_0x220aa1,_0x547269={}){const _0x29350e=a0_0x383746,_0x4cecad=_0x29350e(0x1c4)+Date[_0x29350e(0x1a0)]()+'-'+Math[_0x29350e(0x20f)]()['toString'](0x24)[_0x29350e(0x208)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x29350e(0x1dc)](_0x12be62);const _0x47f5de=this['_formatMessagesForModel'](_0x220aa1,_0x12be62,_0x547269),_0x1f4fa3={'model':_0x12be62,'messages':_0x47f5de,'options':{'max_tokens':this[_0x29350e(0x1cd)][_0x12be62]?.[_0x29350e(0x1f4)]||0xfa0,'temperature':_0x547269['temperature']||0.7,'stream':_0x547269[_0x29350e(0x1ca)]||![]},'metadata':{'requestId':_0x4cecad,'agentId':_0x547269['agentId'],'timestamp':new Date()[_0x29350e(0x1e4)]()}};_0x547269['systemPrompt']&&(_0x1f4fa3[_0x29350e(0x1c3)]=_0x547269['systemPrompt']);this['logger'][_0x29350e(0x19b)]('Sending\x20message\x20to\x20model:\x20'+_0x12be62,{'requestId':_0x4cecad,'agentId':_0x547269[_0x29350e(0x203)],'messageCount':Array['isArray'](_0x220aa1)?_0x220aa1[_0x29350e(0x217)]:0x1,'maxTokens':_0x1f4fa3[_0x29350e(0x1fc)]});const _0x5190c4=await this[_0x29350e(0x186)](_0x29350e(0x204),_0x1f4fa3,_0x4cecad,{..._0x547269,'sessionId':_0x547269['sessionId'],'platformProvided':_0x547269[_0x29350e(0x1a2)]||![]});return _0x5190c4['usage']&&await this['trackUsage'](_0x547269[_0x29350e(0x203)],_0x12be62,{'prompt_tokens':_0x5190c4['usage'][_0x29350e(0x1ce)]||0x0,'completion_tokens':_0x5190c4['usage']['completion_tokens']||0x0,'total_tokens':_0x5190c4[_0x29350e(0x1e1)]['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0x5190c4[_0x29350e(0x1e2)][0x0]?.['message']?.['content']||'','model':_0x5190c4[_0x29350e(0x1cb)],'tokenUsage':_0x5190c4['usage'],'requestId':_0x4cecad,'finishReason':_0x5190c4['choices'][0x0]?.['finish_reason']};}catch(_0x2b8ef4){this['_recordFailure'](),this[_0x29350e(0x1df)][_0x29350e(0x1a8)](_0x29350e(0x1e3)+_0x2b8ef4['message'],{'requestId':_0x4cecad,'model':_0x12be62,'agentId':_0x547269[_0x29350e(0x203)],'error':_0x2b8ef4['stack']}),await this[_0x29350e(0x17e)](_0x2b8ef4,{'requestId':_0x4cecad,'model':_0x12be62,'agentId':_0x547269[_0x29350e(0x203)]});throw _0x2b8ef4;}}async[a0_0x383746(0x1f1)](_0x5a28e6,_0x5ac991={}){const _0x348c18=a0_0x383746;try{const _0x4c0f3b=MODEL_ROUTING[_0x5a28e6['toUpperCase']()]||MODEL_ROUTING['FALLBACK'],_0x44ba03=[];for(const _0x302dd2 of _0x4c0f3b){const _0x220d0c=await this['_checkModelHealth'](_0x302dd2);_0x220d0c&&_0x44ba03['push'](_0x302dd2);}if(_0x44ba03[_0x348c18(0x217)]===0x0)return this['logger'][_0x348c18(0x191)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x5a28e6+',\x20using\x20fallback'),MODEL_ROUTING[_0x348c18(0x1be)][0x0];let _0x3f0de4=_0x44ba03[0x0];if(_0x5ac991[_0x348c18(0x1c8)]&&_0x44ba03[_0x348c18(0x1b1)](_0x5ac991['preferredModel']))_0x3f0de4=_0x5ac991['preferredModel'];else{if(_0x5ac991['complexity']===_0x348c18(0x1c6)&&_0x44ba03[_0x348c18(0x1b1)](MODELS[_0x348c18(0x1b2)]))_0x3f0de4=MODELS['ANTHROPIC_OPUS'];else _0x5ac991['speed']==='fast'&&_0x44ba03['includes'](MODELS['ANTHROPIC_HAIKU'])&&(_0x3f0de4=MODELS[_0x348c18(0x1f5)]);}return this[_0x348c18(0x1df)]['info'](_0x348c18(0x1a6)+_0x5a28e6,{'selectedModel':_0x3f0de4,'availableModels':_0x44ba03['length'],'context':_0x5ac991}),_0x3f0de4;}catch(_0x25ff4c){return this[_0x348c18(0x1df)]['error'](_0x348c18(0x190)+_0x25ff4c['message'],{'task':_0x5a28e6,'context':_0x5ac991}),MODEL_ROUTING[_0x348c18(0x1be)][0x0];}}async['compactizeConversation'](_0x2e680f,_0x2fc88){const _0x5d9630=a0_0x383746,_0x2efc61=this[_0x5d9630(0x1cd)][_0x2fc88];if(!_0x2efc61)throw new Error(_0x5d9630(0x1b8)+_0x2fc88);const _0x10e463=_0x2efc61['contextWindow']*0.8;let _0x137cef=0x0;const _0x5f4192=[],_0x9a5a69=await Promise[_0x5d9630(0x202)](_0x2e680f[_0x5d9630(0x1f0)](async _0x35d5e1=>({..._0x35d5e1,'estimatedTokens':await this[_0x5d9630(0x1d6)](_0x35d5e1[_0x5d9630(0x1b9)],_0x2fc88)}))),_0x55afa5=[..._0x9a5a69]['reverse']();for(const _0x3a31bb of _0x55afa5){if(_0x137cef+_0x3a31bb['estimatedTokens']>_0x10e463){if(_0x5f4192['length']===0x0){const _0x16a13a=await this[_0x5d9630(0x1ff)](_0x3a31bb[_0x5d9630(0x1b9)],_0x10e463);_0x5f4192[_0x5d9630(0x1bc)]({..._0x3a31bb,'content':_0x16a13a,'estimatedTokens':_0x10e463});}break;}_0x5f4192[_0x5d9630(0x1bc)](_0x3a31bb),_0x137cef+=_0x3a31bb[_0x5d9630(0x19c)];}const _0x24b600=_0x9a5a69['slice'](0x0,-_0x5f4192[_0x5d9630(0x217)]);if(_0x24b600['length']>0x0){const _0x43c62e=await this[_0x5d9630(0x1b0)](_0x24b600,_0x2fc88);_0x5f4192['unshift']({'role':_0x5d9630(0x1c3),'content':_0x5d9630(0x1ea)+_0x43c62e,'timestamp':_0x24b600[0x0][_0x5d9630(0x1b6)],'type':_0x5d9630(0x1a9),'estimatedTokens':await this['_estimateTokens'](_0x43c62e,_0x2fc88)});}return this['logger'][_0x5d9630(0x19b)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x2fc88,{'originalMessages':_0x2e680f[_0x5d9630(0x217)],'compactizedMessages':_0x5f4192[_0x5d9630(0x217)],'estimatedTokens':_0x137cef,'maxTokens':_0x10e463}),_0x5f4192;}async[a0_0x383746(0x18e)](_0x42145f,_0x1b0cf2,_0x20f8ff,_0x4ebc16){const _0x48bf3f=a0_0x383746;try{this[_0x48bf3f(0x18b)]&&this[_0x48bf3f(0x18b)]['trackUsage'](_0x42145f,_0x1b0cf2,_0x20f8ff);}catch(_0x52341a){this[_0x48bf3f(0x1df)][_0x48bf3f(0x1a8)]('Usage\x20tracking\x20failed:\x20'+_0x52341a['message']);}}async['handleHttpError'](_0x4a24c9,_0x461546){const _0x3048d4=a0_0x383746,_0x272576=this['errorHandler']?.[_0x3048d4(0x1c0)]?.(_0x4a24c9,_0x461546);switch(_0x4a24c9['status']||_0x4a24c9['code']){case HTTP_STATUS[_0x3048d4(0x21a)]:this[_0x3048d4(0x1df)][_0x3048d4(0x1a8)](_0x3048d4(0x1b4),{'context':_0x461546,'error':_0x4a24c9['message']});throw new Error('Invalid\x20request:\x20'+_0x4a24c9[_0x3048d4(0x1ad)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger']['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x461546});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS[_0x3048d4(0x1bb)]:this['logger']['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x461546});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x3048d4(0x21b)]:this['logger'][_0x3048d4(0x1a8)](_0x3048d4(0x17f),{'context':_0x461546});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x3048d4(0x1df)][_0x3048d4(0x191)](_0x3048d4(0x198),{'context':_0x461546}),await this[_0x3048d4(0x184)](_0x461546);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x3048d4(0x18f)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x3048d4(0x1dd)]:this[_0x3048d4(0x1df)]['error'](_0x3048d4(0x218),{'context':_0x461546,'status':_0x4a24c9[_0x3048d4(0x182)]}),await this['_handleServiceUnavailable'](_0x461546);throw new Error(_0x3048d4(0x1b5));default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x461546,'error':_0x4a24c9[_0x3048d4(0x1ad)]});throw new Error('AI\x20service\x20error:\x20'+_0x4a24c9['message']);}}['setApiKeyManager'](_0x417b3e){const _0x4c1e2b=a0_0x383746;this[_0x4c1e2b(0x194)]=_0x417b3e,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x417b3e});}['setAgentPool'](_0xaaaaf5){const _0x54c8c2=a0_0x383746;this[_0x54c8c2(0x196)]=_0xaaaaf5,this['logger']?.['info'](_0x54c8c2(0x195),{'hasAgentPool':!!_0xaaaaf5});}async[a0_0x383746(0x215)](_0x4eefa4,_0x203def={}){const _0x271943=a0_0x383746,_0x14482c=_0x271943(0x1fe)+Date[_0x271943(0x1a0)]()+'-'+Math[_0x271943(0x20f)]()['toString'](0x24)[_0x271943(0x208)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x271943(0x1bd));if(!_0x4eefa4||typeof _0x4eefa4!==_0x271943(0x211)||_0x4eefa4[_0x271943(0x1ac)]()[_0x271943(0x217)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x570db9=_0x203def['model']||_0x271943(0x1a5),_0x4a0bf=_0x203def['size']||'1024x1024',_0x294f5e=_0x203def[_0x271943(0x207)]||'standard',_0xbf970=_0x203def[_0x271943(0x216)]||'url';this['logger'][_0x271943(0x19b)](_0x271943(0x193)+_0x570db9,{'requestId':_0x14482c,'model':_0x570db9,'size':_0x4a0bf,'quality':_0x294f5e,'promptLength':_0x4eefa4['length']});const _0x3c0be2={'prompt':_0x4eefa4,'model':_0x570db9,'size':_0x4a0bf,'quality':_0x294f5e,'response_format':_0xbf970,'n':0x1,'metadata':{'requestId':_0x14482c,'timestamp':new Date()[_0x271943(0x1e4)]()}},_0xb87ab4=await this['_makeImageAPIRequest'](_0x3c0be2,_0x14482c,{'sessionId':_0x203def['sessionId'],'platformProvided':_0x203def['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0xb87ab4['data']?.[0x0]?.['url']||null,'b64_json':_0xb87ab4[_0x271943(0x1b7)]?.[0x0]?.['b64_json']||null,'model':_0xb87ab4['model']||_0x570db9,'requestId':_0x14482c,'revisedPrompt':_0xb87ab4['data']?.[0x0]?.['revised_prompt']||_0x4eefa4};}catch(_0x4f2abe){this['_recordFailure'](),this[_0x271943(0x1df)]['error']('Image\x20generation\x20failed:\x20'+_0x4f2abe['message'],{'requestId':_0x14482c,'model':_0x203def[_0x271943(0x1cb)],'error':_0x4f2abe[_0x271943(0x20b)]});throw _0x4f2abe;}}async['checkServiceHealth'](){const _0x39c705=a0_0x383746;try{const _0x5a0892=await this['_makeAPIRequest'](_0x39c705(0x1f8),{},_0x39c705(0x187));return _0x5a0892['status']===_0x39c705(0x18d);}catch(_0x2279a9){return![];}}async[a0_0x383746(0x1ab)](_0x2c45b2,_0x367fcc){const _0x38e657=a0_0x383746;try{if(!this['_isValidModel'](_0x367fcc))throw new Error('Invalid\x20model:\x20'+_0x367fcc);let _0x4ee51a=this['conversationManagers'][_0x38e657(0x18a)](_0x2c45b2);!_0x4ee51a&&(_0x4ee51a=new ConversationManager(_0x2c45b2,this[_0x38e657(0x1df)]),this['conversationManagers']['set'](_0x2c45b2,_0x4ee51a));const _0x39ce8c=await _0x4ee51a['switchModel'](_0x367fcc),_0x50ab9a=await this['agentPool']?.['getAgent'](_0x2c45b2);return _0x50ab9a&&(_0x50ab9a[_0x38e657(0x1db)]=_0x367fcc,await this['agentPool']['persistAgentState'](_0x2c45b2)),this['logger'][_0x38e657(0x19b)](_0x38e657(0x1fd)+_0x2c45b2,{'newModel':_0x367fcc,'messageCount':_0x39ce8c['messages'][_0x38e657(0x217)]}),{'success':!![],'agentId':_0x2c45b2,'newModel':_0x367fcc,'conversation':_0x39ce8c};}catch(_0x5a1f3a){this[_0x38e657(0x1df)][_0x38e657(0x1a8)]('Model\x20switch\x20failed:\x20'+_0x5a1f3a['message'],{'agentId':_0x2c45b2,'newModel':_0x367fcc});throw _0x5a1f3a;}}[a0_0x383746(0x1e6)](){const _0x28b2a9=a0_0x383746,_0x503786={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x28b2a9(0x21d)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x28b2a9(0x1b2)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x28b2a9(0x1f5)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ae)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ae)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ae)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x28b2a9(0x21c)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x28b2a9(0x180)]]:{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ec)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x28b2a9(0x1d4),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x28b2a9(0x1d4),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x503786;}[a0_0x383746(0x210)](_0x3e7a99,_0x4f1960,_0x4a4d1d){const _0x509cca=a0_0x383746,_0x2fb331=this['modelSpecs'][_0x4f1960]||{'provider':_0x509cca(0x1d4)};let _0x65219a;typeof _0x3e7a99==='string'?_0x65219a=[{'role':_0x509cca(0x1bf),'content':_0x3e7a99}]:_0x65219a=_0x3e7a99['map'](_0x5bdd5c=>this['_formatSingleMessage'](_0x5bdd5c,_0x4f1960));switch(_0x2fb331[_0x509cca(0x1c2)]){case MODEL_PROVIDERS[_0x509cca(0x21d)]:return this['_formatForAnthropic'](_0x65219a);case MODEL_PROVIDERS[_0x509cca(0x1ae)]:return this['_formatForOpenAI'](_0x65219a);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x65219a);default:return _0x65219a;}}['_formatSingleMessage'](_0x5b4443,_0x1c9270){const _0x405e45=a0_0x383746;return{'role':_0x5b4443['role']||_0x405e45(0x1bf),'content':_0x5b4443['content'],'timestamp':_0x5b4443[_0x405e45(0x1b6)]};}['_formatForAnthropic'](_0x184607){return _0x184607['map'](_0xf9c9bc=>{const _0x1b5092=a0_0x55a8;if(_0xf9c9bc['role']==='system')return{'role':_0x1b5092(0x1bf),'content':_0x1b5092(0x1af)+_0xf9c9bc['content']};return _0xf9c9bc;});}[a0_0x383746(0x206)](_0xff486d){return _0xff486d;}['_formatForAzure'](_0x4ca4ec){const _0x3a26c9=a0_0x383746;return _0x4ca4ec[_0x3a26c9(0x1f0)](_0x351a8c=>({..._0x351a8c,'content':typeof _0x351a8c['content']==='string'?_0x351a8c['content']:JSON[_0x3a26c9(0x21e)](_0x351a8c['content'])}));}[a0_0x383746(0x200)](_0x400390){const _0x30c93f=a0_0x383746;this[_0x30c93f(0x1df)]['debug']('Validating\x20model',{'model':_0x400390,'modelType':typeof _0x400390});if(this[_0x30c93f(0x1cd)][_0x400390]!==undefined)return!![];return this[_0x30c93f(0x1df)][_0x30c93f(0x191)]('Model\x20validation\x20failed',{'model':_0x400390,'availableModels':Object[_0x30c93f(0x1de)](this['modelSpecs'])}),![];}async['_checkModelHealth'](_0x5a3960){return!![];}async[a0_0x383746(0x1d6)](_0x23f3eb,_0x1b2386){const _0x43d4d7=a0_0x383746;return Math['ceil'](_0x23f3eb[_0x43d4d7(0x217)]/0x4);}async['_truncateMessage'](_0x40abba,_0x43d434){const _0x468793=a0_0x383746,_0x2d8bee=_0x43d434*0x4;if(_0x40abba[_0x468793(0x217)]<=_0x2d8bee)return _0x40abba;return _0x40abba[_0x468793(0x181)](0x0,_0x2d8bee-0x14)+_0x468793(0x201);}async['_summarizeMessages'](_0x342a15,_0x3bb8d8){const _0x2b3a3c=a0_0x383746,_0x78c8c1=_0x342a15[_0x2b3a3c(0x1f0)](_0x2ca35e=>_0x2ca35e['role']+':\x20'+_0x2ca35e['content'])['join']('\x0a'),_0x11e2e5=0x1f4;if(_0x78c8c1[_0x2b3a3c(0x217)]<=_0x11e2e5)return _0x78c8c1;return _0x78c8c1['substring'](0x0,_0x11e2e5)+_0x2b3a3c(0x183);}async[a0_0x383746(0x186)](_0x1f8a6c,_0x35dd5c,_0x12eaf0,_0x1c90e7={}){const _0xe1bf29=a0_0x383746,_0x36c916='https://autopilot-api.azurewebsites.net/llm/chat';let _0x330274,_0x357b67=null,_0x39c2e2=null;this[_0xe1bf29(0x1df)]?.[_0xe1bf29(0x19b)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1c90e7[_0xe1bf29(0x1ba)],'hasSessionId':!!_0x1c90e7[_0xe1bf29(0x1ba)],'optionsKeys':Object[_0xe1bf29(0x1de)](_0x1c90e7),'model':_0x35dd5c[_0xe1bf29(0x1cb)]});if(this[_0xe1bf29(0x194)]&&_0x1c90e7[_0xe1bf29(0x1ba)]){const _0x5c8681=this['apiKeyManager']['getKeysForRequest'](_0x1c90e7[_0xe1bf29(0x1ba)],{'platformProvided':_0x1c90e7[_0xe1bf29(0x1a2)]||![],'vendor':this['_getVendorFromModel'](_0x35dd5c['model'])});_0x357b67=_0x5c8681[_0xe1bf29(0x1d0)],_0x39c2e2=_0x5c8681['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x1c90e7[_0xe1bf29(0x1ba)],'hasLoxiaKey':!!_0x357b67,'hasVendorKey':!!_0x39c2e2,'vendor':this['_getVendorFromModel'](_0x35dd5c[_0xe1bf29(0x1cb)])});}!_0x357b67&&_0x1c90e7['apiKey']&&(_0x357b67=_0x1c90e7[_0xe1bf29(0x1f6)]);!_0x357b67&&this[_0xe1bf29(0x219)][_0xe1bf29(0x1f6)]&&(_0x357b67=this[_0xe1bf29(0x219)]['apiKey']);if(!_0x357b67)throw new Error(_0xe1bf29(0x1c5));const _0x1eb6b1=_0x35dd5c[_0xe1bf29(0x1cb)],_0x4c1e4a={'conversationId':_0x12eaf0,'message':_0x35dd5c['messages'][_0x35dd5c[_0xe1bf29(0x20d)]['length']-0x1]?.['content']||'','messages':_0x35dd5c['messages'],'model':_0x1eb6b1,'requestId':_0x12eaf0,'options':_0x35dd5c[_0xe1bf29(0x192)]||{},'platformProvided':_0x1c90e7[_0xe1bf29(0x1a2)]||![]};_0x35dd5c[_0xe1bf29(0x1c3)]&&(_0x4c1e4a['systemPrompt']=_0x35dd5c['system']);_0x1c90e7['platformProvided']?_0x4c1e4a['apiKey']=_0x357b67:(_0x39c2e2&&(_0x4c1e4a[_0xe1bf29(0x1f9)]=_0x39c2e2),_0x1c90e7['customApiKeys']&&(_0x4c1e4a[_0xe1bf29(0x1d2)]=_0x1c90e7[_0xe1bf29(0x1d2)]),_0x4c1e4a[_0xe1bf29(0x1f6)]=_0x357b67);for(let _0x460676=0x1;_0x460676<=this['retryAttempts'];_0x460676++){try{this[_0xe1bf29(0x1df)][_0xe1bf29(0x19b)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x36c916,'model':_0x35dd5c['model'],'requestId':_0x12eaf0,'attempt':_0x460676,'hasApiKey':!!_0x357b67});const _0x4537c8=await fetch(_0x36c916,{'method':'POST','headers':{'Content-Type':_0xe1bf29(0x1aa),'Authorization':'Bearer\x20'+_0x357b67,'X-Request-ID':_0x12eaf0},'body':JSON[_0xe1bf29(0x21e)](_0x4c1e4a),'timeout':this[_0xe1bf29(0x1eb)]});if(!_0x4537c8['ok']){const _0x5d5037=await _0x4537c8[_0xe1bf29(0x1c7)](),_0x5eb4d2=new Error('HTTP\x20'+_0x4537c8[_0xe1bf29(0x182)]+':\x20'+_0x4537c8[_0xe1bf29(0x1ef)]+(_0x5d5037?_0xe1bf29(0x1e7)+_0x5d5037:''));_0x5eb4d2[_0xe1bf29(0x182)]=_0x4537c8[_0xe1bf29(0x182)];throw _0x5eb4d2;}const _0x36f2c1=await _0x4537c8['json']();return{'choices':[{'message':{'content':_0x36f2c1['content']||'','role':_0xe1bf29(0x213)},'finish_reason':_0x36f2c1['finishReason']||_0xe1bf29(0x1cc)}],'usage':_0x36f2c1['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x36f2c1[_0xe1bf29(0x1cb)]||_0x35dd5c[_0xe1bf29(0x1cb)],'id':_0x36f2c1[_0xe1bf29(0x1d7)]||_0x12eaf0};}catch(_0x1ac535){_0x330274=_0x1ac535,this[_0xe1bf29(0x1df)]['warn'](_0xe1bf29(0x205),{'attempt':_0x460676,'requestId':_0x12eaf0,'error':_0x1ac535[_0xe1bf29(0x1ad)],'status':_0x1ac535[_0xe1bf29(0x182)]});if(_0x460676<this[_0xe1bf29(0x1d5)]){const _0x247f3a=Math[_0xe1bf29(0x1c1)](0x2,_0x460676)*0x3e8;this[_0xe1bf29(0x1df)][_0xe1bf29(0x191)]('Retrying\x20in\x20'+_0x247f3a+'ms',{'attempt':_0x460676,'requestId':_0x12eaf0}),await new Promise(_0x380966=>setTimeout(_0x380966,_0x247f3a));}}}this['logger']['error'](_0xe1bf29(0x199),{'requestId':_0x12eaf0,'error':_0x330274['message']});const _0x34f2de=_0x330274['message']&&_0x330274[_0xe1bf29(0x1ad)]['includes']('No\x20API\x20key\x20configured');if(_0x34f2de)throw new Error(_0xe1bf29(0x20e)+_0x330274['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x330274[_0xe1bf29(0x1ad)],'role':_0xe1bf29(0x213)},'finish_reason':_0xe1bf29(0x1cc)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x35dd5c['model'],'id':'error-'+_0x12eaf0,'error':_0x330274[_0xe1bf29(0x1ad)]};}async[a0_0x383746(0x1fb)](_0x1c2d0c,_0x1ab697,_0x25f09c={}){const _0x41c5ed=a0_0x383746,_0x1cca71=_0x41c5ed(0x197);let _0x30ae73,_0x47885e=null,_0x3c60c2=null;this[_0x41c5ed(0x1df)]?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x41c5ed(0x194)],'sessionId':_0x25f09c[_0x41c5ed(0x1ba)],'hasSessionId':!!_0x25f09c[_0x41c5ed(0x1ba)],'model':_0x1c2d0c['model']});if(this['apiKeyManager']&&_0x25f09c[_0x41c5ed(0x1ba)]){const _0x4d0074=this['apiKeyManager']['getKeysForRequest'](_0x25f09c[_0x41c5ed(0x1ba)],{'platformProvided':_0x25f09c[_0x41c5ed(0x1a2)]||![],'vendor':this[_0x41c5ed(0x1e8)](_0x1c2d0c[_0x41c5ed(0x1cb)])});_0x47885e=_0x4d0074['loxiaApiKey'],_0x3c60c2=_0x4d0074['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x25f09c['sessionId'],'hasLoxiaKey':!!_0x47885e,'hasVendorKey':!!_0x3c60c2});}!_0x47885e&&_0x25f09c['apiKey']&&(_0x47885e=_0x25f09c[_0x41c5ed(0x1f6)]);!_0x47885e&&this[_0x41c5ed(0x219)][_0x41c5ed(0x1f6)]&&(_0x47885e=this[_0x41c5ed(0x219)][_0x41c5ed(0x1f6)]);if(!_0x47885e)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x29336f={'prompt':_0x1c2d0c['prompt'],'model':_0x1c2d0c[_0x41c5ed(0x1cb)]||_0x41c5ed(0x1f2),'size':_0x1c2d0c['size'],'quality':_0x1c2d0c[_0x41c5ed(0x207)],'style':_0x1c2d0c[_0x41c5ed(0x1fa)]||_0x41c5ed(0x1b3),'n':_0x1c2d0c['n']||0x1,'requestId':_0x1ab697};for(let _0x849279=0x1;_0x849279<=this[_0x41c5ed(0x1d5)];_0x849279++){try{this['logger'][_0x41c5ed(0x19b)](_0x41c5ed(0x1d9),{'url':_0x1cca71,'model':_0x1c2d0c['model'],'requestId':_0x1ab697,'attempt':_0x849279,'hasApiKey':!!_0x47885e});const _0x46371a=await fetch(_0x1cca71,{'method':_0x41c5ed(0x1f3),'headers':{'Content-Type':_0x41c5ed(0x1aa),'Authorization':'Bearer\x20'+_0x47885e,'X-Request-ID':_0x1ab697},'body':JSON[_0x41c5ed(0x21e)](_0x29336f),'timeout':this['timeout']*0x2});if(!_0x46371a['ok']){const _0x56e99f=await _0x46371a[_0x41c5ed(0x1c7)](),_0x4ff5c8=new Error(_0x41c5ed(0x19e)+_0x46371a[_0x41c5ed(0x182)]+':\x20'+_0x46371a['statusText']+(_0x56e99f?'\x20-\x20'+_0x56e99f:''));_0x4ff5c8[_0x41c5ed(0x182)]=_0x46371a['status'];throw _0x4ff5c8;}const _0x377de7=await _0x46371a['json']();return{'data':_0x377de7['images']||[],'model':_0x377de7['model']||_0x1c2d0c[_0x41c5ed(0x1cb)],'created':_0x377de7['created']||Date[_0x41c5ed(0x1a0)](),'usage':_0x377de7['usage']};}catch(_0x3dbf24){_0x30ae73=_0x3dbf24,this['logger'][_0x41c5ed(0x191)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x849279,'requestId':_0x1ab697,'error':_0x3dbf24[_0x41c5ed(0x1ad)],'status':_0x3dbf24[_0x41c5ed(0x182)]});if(_0x849279<this[_0x41c5ed(0x1d5)]){const _0x24a2bd=Math['pow'](0x2,_0x849279)*0x3e8;this['logger'][_0x41c5ed(0x191)]('Retrying\x20in\x20'+_0x24a2bd+'ms',{'attempt':_0x849279,'requestId':_0x1ab697}),await new Promise(_0x432335=>setTimeout(_0x432335,_0x24a2bd));}}}this['logger']['error'](_0x41c5ed(0x1ed),{'requestId':_0x1ab697,'error':_0x30ae73[_0x41c5ed(0x1ad)]});throw new Error('Image\x20generation\x20failed:\x20'+_0x30ae73['message']);}async[a0_0x383746(0x1dc)](_0xb3ab97){await new Promise(_0x5dcc54=>setTimeout(_0x5dcc54,0x64));}async[a0_0x383746(0x184)](_0x308992){const _0x5a4fa9=a0_0x383746,_0x5e1c9e=0xea60;this[_0x5a4fa9(0x1df)][_0x5a4fa9(0x19b)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x5e1c9e+'ms',_0x308992),await new Promise(_0x2db8b8=>setTimeout(_0x2db8b8,_0x5e1c9e));}async[a0_0x383746(0x1d8)](_0xd646de){const _0x78d0c9=a0_0x383746;this['_recordFailure']();const _0x266ec8=0x7530;this[_0x78d0c9(0x1df)][_0x78d0c9(0x19b)]('Service\x20unavailable,\x20waiting\x20'+_0x266ec8+'ms',_0xd646de),await new Promise(_0x58d397=>setTimeout(_0x58d397,_0x266ec8));}[a0_0x383746(0x1d3)](){const _0x38aad5=a0_0x383746;if(!this['circuitBreaker']['isOpen'])return![];const _0x338dd8=Date['now']()-this[_0x38aad5(0x1e0)]['lastFailureTime'];if(_0x338dd8>this[_0x38aad5(0x1e0)][_0x38aad5(0x1eb)])return this[_0x38aad5(0x1e0)]['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x513302=a0_0x383746;this[_0x513302(0x1e0)][_0x513302(0x209)]++,this['circuitBreaker'][_0x513302(0x1e5)]=Date[_0x513302(0x1a0)](),this['circuitBreaker']['failures']>=this['circuitBreaker'][_0x513302(0x185)]&&(this['circuitBreaker']['isOpen']=!![],this['logger'][_0x513302(0x191)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}['_resetCircuitBreaker'](){const _0x3c43d5=a0_0x383746;this['circuitBreaker'][_0x3c43d5(0x209)]>0x0&&(this[_0x3c43d5(0x1e0)][_0x3c43d5(0x209)]=0x0,this[_0x3c43d5(0x1e0)][_0x3c43d5(0x1ee)]=![],this['logger']['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x54432c){const _0x2ecae9=a0_0x383746;if(!_0x54432c)return null;const _0x158fe7=_0x54432c[_0x2ecae9(0x1a1)]();if(_0x158fe7['includes'](_0x2ecae9(0x21f))||_0x158fe7[_0x2ecae9(0x1b1)]('claude'))return'anthropic';else{if(_0x158fe7[_0x2ecae9(0x1b1)](_0x2ecae9(0x1f7))||_0x158fe7[_0x2ecae9(0x1b1)](_0x2ecae9(0x18c)))return'openai';else{if(_0x158fe7[_0x2ecae9(0x1b1)]('deepseek'))return'deepseek';else{if(_0x158fe7[_0x2ecae9(0x1b1)]('phi'))return'microsoft';}}}return null;}}function a0_0x55a8(_0x33a8c5,_0x5d4db1){_0x33a8c5=_0x33a8c5-0x17e;const _0x1c1cc1=a0_0x1c1c();let _0x55a8ec=_0x1c1cc1[_0x33a8c5];if(a0_0x55a8['vXSwDt']===undefined){var _0x54fa40=function(_0x1f67fb){const _0x39868e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x490de4='',_0x4af033='';for(let _0x154cc0=0x0,_0x1dc398,_0x12be62,_0x220aa1=0x0;_0x12be62=_0x1f67fb['charAt'](_0x220aa1++);~_0x12be62&&(_0x1dc398=_0x154cc0%0x4?_0x1dc398*0x40+_0x12be62:_0x12be62,_0x154cc0++%0x4)?_0x490de4+=String['fromCharCode'](0xff&_0x1dc398>>(-0x2*_0x154cc0&0x6)):0x0){_0x12be62=_0x39868e['indexOf'](_0x12be62);}for(let _0x547269=0x0,_0x4cecad=_0x490de4['length'];_0x547269<_0x4cecad;_0x547269++){_0x4af033+='%'+('00'+_0x490de4['charCodeAt'](_0x547269)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4af033);};a0_0x55a8['dtWjMz']=_0x54fa40,a0_0x55a8['lAQamz']={},a0_0x55a8['vXSwDt']=!![];}const _0x36d047=_0x1c1cc1[0x0],_0x3061b7=_0x33a8c5+_0x36d047,_0x57a00f=a0_0x55a8['lAQamz'][_0x3061b7];return!_0x57a00f?(_0x55a8ec=a0_0x55a8['dtWjMz'](_0x55a8ec),a0_0x55a8['lAQamz'][_0x3061b7]=_0x55a8ec):_0x55a8ec=_0x57a00f,_0x55a8ec;}function a0_0x1c1c(){const _0xfaeb55=['zxjYB3jiyw5KBgvY','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','DgLTzw91Da','ueHj','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','AxnpCgvU','C3rHDhvZvgv4Da','BwfW','CM91DgvnB2rLBa','yxP1CMuTB3bLBMfPlwrHBgXLmW','ue9tva','Bwf4vg9Rzw5Z','qu5usfjpueLdx0HbsuTv','yxbPs2v5','B3bLBMfP','l2HLywX0Aa','DMvUzg9YqxbPs2v5','C3r5Bgu','x21HA2vjBwfNzufqsvjLCxvLC3q','Bwf4x3rVA2vUCW','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','Aw1Nlq','x3rYDw5JyxrLtwvZC2fNzq','x2LZvMfSAwrnB2rLBa','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','ywXS','ywDLBNrjza','l2nOyxqVy29TCgXLDgLVBNm','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','x2zVCM1HDezVCK9Wzw5bsq','CxvHBgL0Eq','C3vIC3rY','zMfPBhvYzxm','mZm4nde4uuvYrhDt','C3rHy2S','ndGXmZvTtw9VAu0','BwvZC2fNzxm','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','CMfUzg9T','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','C3rYAw5N','CMf0zuXPBwL0zxjZ','yxnZAxn0yw50','mZuWmdy4A0v1z1jN','z2vUzxjHDgvjBwfNzq','CMvZCg9UC2vgB3jTyxq','BgvUz3rO','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','y29UzMLN','qKfex1jfuvvfu1q','tK9ux0zpvu5e','revfufnfruTFuJe','qu5usfjpueLd','C3rYAw5NAwz5','yw50AhjVCgLJ','AgfUzgXLshr0CevYCM9Y','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','ueHjxZq','C3vIC3rYAw5N','C3rHDhvZ','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','x2HHBMrSzvjHDgvmAw1PDa','DgHYzxnOB2XK','x21HA2vbueLszxf1zxn0','AgvHBhrOlwnOzwnR','mti4mdCYsgjOvvPb','mti2tuTJugPy','z2v0','yNvKz2v0u2vYDMLJzq','z3b0','AgvHBhrOEq','DhjHy2TvC2fNzq','qKfex0DbvevxqvK','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','D2fYBG','B3b0Aw9UCW','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','yxbPs2v5twfUywDLCG','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','ywDLBNrqB29S','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','uMf0zsbSAw1PDcbLEgnLzwrLza','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','mte0mtKYnxzLqKvWsq','Aw5MBW','zxn0Aw1HDgvKvg9Rzw5Z','nti0mffjterita','sfruuca','C2vUze1LC3nHz2u','BM93','Dg9mB3DLCKnHC2u','CgXHDgzVCM1qCM92AwrLza','mtuYmdjctxbNt0C','nJC3ntnqBgvJAg4','zMX1Ec0XlJeTChjV','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','C3DPDgnOtw9KzwW','zxjYB3i','C3vTBwfYEq','yxbWBgLJyxrPB24VANnVBG','C3DPDgnOqwDLBNrnB2rLBa','DhjPBq','BwvZC2fNzq','t1bftKfj','u3LZDgvToIa','x3n1Bw1HCML6zu1LC3nHz2vZ','Aw5JBhvKzxm','qu5usfjpueLdx09qvvm','DML2Awq','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','DgLTzxn0yw1W','zgf0yq','vw5RBM93BIbTB2rLBdOG','y29UDgvUDa','C2vZC2LVBKLK','rK9sqKLerevo','Dw5ZAgLMDa','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','rKfmtejbq0S','DxnLCG','y2XHC3nPzNLfCNjVCG','Cg93','ChjVDMLKzxi','C3LZDgvT','CMvXlq','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','AgLNAa','Dgv4Da','ChjLzMvYCMvKtw9KzwW','mJiYBwjKrKD1','C3rYzwfT','Bw9KzwW','C3rVCa','Bw9KzwXtCgvJCW','ChjVBxb0x3rVA2vUCW','yMfZzvvYBa','Bg94AwfbCgLlzxK','nLLfBgncrq','y3vZDg9TqxbPs2v5CW','x2LZq2LYy3vPDejYzwfRzxjpCgvU','qvPvuKu','CMv0CNLbDhrLBxb0CW','x2vZDgLTyxrLvg9Rzw5Z','CMvXDwvZDeLK','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','yMfJA2vUza','y3vYCMvUDe1VzgvS','x2nOzwnRuMf0zuXPBwL0','r0furvDbwv9usu1ft1vu','A2v5CW','Bg9Nz2vY','y2LYy3vPDejYzwfRzxi','DxnHz2u','y2HVAwnLCW','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','Dg9ju09tDhjPBMC','BgfZDezHAwX1CMvuAw1L','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','ic0G','x2DLDfzLBMrVCKzYB21nB2rLBa'];a0_0x1c1c=function(){return _0xfaeb55;};return a0_0x1c1c();}class ConversationManager{constructor(_0x200b53,_0x148058){const _0x2b3a53=a0_0x383746;this[_0x2b3a53(0x203)]=_0x200b53,this['logger']=_0x148058,this['conversations']=new Map();}async[a0_0x383746(0x1a7)](_0x44320a){return{'messages':[],'model':_0x44320a,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
1
+ function a0_0x4c95(){const _0x558751=['zgvIDwC','CM9Szq','BwvZC2fNzq','r0furvDbwv9usu1ft1vu','DgHYzxnOB2XK','AxnpCgvU','CM91DgvnB2rLBa','y29UzMLN','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','y29UDMvYC2f0Aw9UtwfUywDLCNm','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','C3LZDgvT','t1bftKfj','CMv0CNLbDhrLBxb0CW','y2LYy3vPDejYzwfRzxi','Aw5MBW','yxbPs2v5twfUywDLCG','quKGC2vYDMLJzsbLCNjVCJOG','BM93','DhjHy2TvC2fNzq','n3nhAwDnyW','qu5usfjpueLdx0HbsuTv','revfufnfruTFuJe','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','qMvHCMvYia','y3vYCMvUDe1VzgvS','DML2Awq','C3rYAw5N','z2v0s2v5C0zVCLjLCxvLC3q','qu5usfjpueLdx09qvvm','AxnbCNjHEq','C3rHDhvZ','ue9tva','nw9Uzg9HsG','vu5bvvrit1jjwKve','ndGYodaYu2Hdu3fw','ywDLBNrqB29S','yJy0x2PZB24','CMv2AxnLzf9WCM9TChq','x2LZq2LYy3vPDejYzwfRzxjpCgvU','mZeWsejqtMXZ','x21HA2vjBwfNzufqsvjLCxvLC3q','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','ueHjxZq','uMf0zsbSAw1PDcbLEgnLzwrLza','C3DPDgnOtw9KzwW','yw50AhjVCgLJ','ueHj','mtm3nZuYmNf2v3n5Cq','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3vIC3rYAw5N','r1buxZrFtuLosq','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','CgXHDgzVCM1qCM92AwrLza','qvPvuKu','vw5RBM93BIbTB2rLBdOG','Bw9KzwW','x21HA2vbueLszxf1zxn0','C3DPDgnOqwDLBNrnB2rLBa','Aw1Nlq','BwLJCM9ZB2z0','rKfmtejbq0S','yxbWBgLJyxrPB24VANnVBG','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','C3LZDgvTuhjVBxb0','CMv2zxjZzq','x3n1Bw1HCML6zu1LC3nHz2vZ','CMfUzg9T','ChjVDMLKzxi','yxnZAxn0yw50','C2v0qxbPs2v5twfUywDLCG','DgvTCgvYyxr1CMu','zMLUAxnOx3jLyxnVBG','C3bLzwq','zxjYB3iT','qKfex1jfuvvfu1q','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','Dg9tDhjPBMC','vMfSAwrHDgLUzYbTB2rLBa','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','AgvHBhrOEq','DxnHz2u','mty4ndflCwT0vg8','x2nOzwnRtw9KzwXizwfSDgG','AgvHBhrOlwnOzwnR','ywDLBNrjza','sw52ywXPzcbTB2rLBdOG','u3LZDgvToIa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','ywXS','mti0mdy5DwrZC2Dc','x2zVCM1HDezVCKf6DxjL','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','x2DLDfzLBMrVCKzYB21nB2rLBa','x2zVCM1HDezVCKfUDgHYB3bPyW','qu5usfjpueLd','CxvHBgL0Eq','CMvXDwvZDff1zxvL','x2vZDgLTyxrLvg9Rzw5Z','u0vsvKLdrv9vtKfwquLmqujmrq','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','BwvZC2fNzxm','uMv0CNLPBMCGAw4G','y2vPBa','y3vZDg9TqxbPs2v5CW','y29UDgvUDa','x3jLC2v0q2LYy3vPDejYzwfRzxi','D2fYBG','mtHiCwneuMK','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','C3vIC3rY','z2vUzxjHDgvjBwfNzq','tK9ux0zpvu5e','AgfUzgXLshr0CevYCM9Y','DxjS','DxnLCG','DgLTzw91Da','mZK0mJG4yNbqtxrP','C2vZC2LVBKLK','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zMfPBhvYzxm','B3bLBMfP','Aw5JBhvKzxm','y2XHC3nPzNLfCNjVCG','C3r5Bgu','y29TCgXLDgLVBL90B2TLBNm','zMfZDa','yNvKz2v0u2vYDMLJzq','BgfZDezHAwX1CMvuAw1L','Bwf4x3rVA2vUCW','Dw5ZAgLMDa','zxjYB3i','A2v5CW','DgLTzxn0yw1W','Ahr0Chm6lY9HCgKUBg94AweUywK','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','Dg9ju09tDhjPBMC','ChvZAa','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','y2HVAwnLCW','C2v0','Bw9KzwXtCgvJCW','zgvLChnLzwS','x2zVCM1HDfnPBMDSzu1LC3nHz2u','C3rVCa','zgf0yq','DMvUzg9YqxbPs2v5','C3rYzwfT','rK9sqKLerevo','mJGZmZHlu1PeDvm','x2zVCM1HDezVCK9Wzw5bsq','z2v0qwDLBNq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','BwfW','y3jLyxrLza','zxjYB3jiyw5KBgvY','yxbPs2v5','Bg9Nz2vY','l2HLywX0Aa','Bg94AwfbCgLlzxK','revfufnfruS','BgvUz3rO','CMf0zuXPBwL0zxjZ','yMfJA2vUza','mtaYnhGXmdi0','mtqXotGWofDHqxviBq','Cg93'];a0_0x4c95=function(){return _0x558751;};return a0_0x4c95();}function a0_0x179e(_0x1eb0bd,_0x2b1caa){_0x1eb0bd=_0x1eb0bd-0x186;const _0x4c9560=a0_0x4c95();let _0x179e1a=_0x4c9560[_0x1eb0bd];if(a0_0x179e['jnPcVo']===undefined){var _0x172e64=function(_0xb42407){const _0x4a62a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26f75f='',_0x3b14a0='';for(let _0x38d2b1=0x0,_0x142940,_0x2bf6f1,_0x1909d9=0x0;_0x2bf6f1=_0xb42407['charAt'](_0x1909d9++);~_0x2bf6f1&&(_0x142940=_0x38d2b1%0x4?_0x142940*0x40+_0x2bf6f1:_0x2bf6f1,_0x38d2b1++%0x4)?_0x26f75f+=String['fromCharCode'](0xff&_0x142940>>(-0x2*_0x38d2b1&0x6)):0x0){_0x2bf6f1=_0x4a62a2['indexOf'](_0x2bf6f1);}for(let _0x229a92=0x0,_0x4dabac=_0x26f75f['length'];_0x229a92<_0x4dabac;_0x229a92++){_0x3b14a0+='%'+('00'+_0x26f75f['charCodeAt'](_0x229a92)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b14a0);};a0_0x179e['EVsFRD']=_0x172e64,a0_0x179e['AVhOeV']={},a0_0x179e['jnPcVo']=!![];}const _0x50e7f9=_0x4c9560[0x0],_0x55edab=_0x1eb0bd+_0x50e7f9,_0x58335e=a0_0x179e['AVhOeV'][_0x55edab];return!_0x58335e?(_0x179e1a=a0_0x179e['EVsFRD'](_0x179e1a),a0_0x179e['AVhOeV'][_0x55edab]=_0x179e1a):_0x179e1a=_0x58335e,_0x179e1a;}const a0_0x150019=a0_0x179e;(function(_0x42ef73,_0x1cffe1){const _0x433730=a0_0x179e,_0x48b968=_0x42ef73();while(!![]){try{const _0x4ca118=parseInt(_0x433730(0x1f9))/0x1+-parseInt(_0x433730(0x192))/0x2*(-parseInt(_0x433730(0x214))/0x3)+parseInt(_0x433730(0x21e))/0x4*(-parseInt(_0x433730(0x1c5))/0x5)+parseInt(_0x433730(0x1c7))/0x6+-parseInt(_0x433730(0x1b8))/0x7*(parseInt(_0x433730(0x1a2))/0x8)+-parseInt(_0x433730(0x1d4))/0x9+parseInt(_0x433730(0x1cc))/0xa*(parseInt(_0x433730(0x201))/0xb);if(_0x4ca118===_0x1cffe1)break;else _0x48b968['push'](_0x48b968['shift']());}catch(_0x54796c){_0x48b968['push'](_0x48b968['shift']());}}}(a0_0x4c95,0x191d1));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x26f75f,_0x3b14a0,_0x38d2b1,_0x142940){const _0x495fec=a0_0x179e;this['config']=_0x26f75f,this[_0x495fec(0x19a)]=_0x3b14a0,this[_0x495fec(0x228)]=_0x38d2b1,this[_0x495fec(0x198)]=_0x142940,this['baseUrl']=_0x26f75f['backend']?.['baseUrl']||_0x495fec(0x22f),this['timeout']=_0x26f75f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x26f75f[_0x495fec(0x1a0)]?.[_0x495fec(0x1b1)]||0x3,this[_0x495fec(0x19f)]=new Map(),this[_0x495fec(0x208)]=new Map(),this[_0x495fec(0x1b2)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x495fec(0x1ad)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async['sendMessage'](_0x2bf6f1,_0x1909d9,_0x229a92={}){const _0x40b28d=a0_0x179e,_0x4dabac='req-'+Date[_0x40b28d(0x1b6)]()+'-'+Math['random']()[_0x40b28d(0x1f4)](0x24)[_0x40b28d(0x217)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x40b28d(0x1bb));await this['_checkRateLimit'](_0x2bf6f1);const _0x30a8fe=this['_formatMessagesForModel'](_0x1909d9,_0x2bf6f1,_0x229a92),_0x2c7db4={'model':_0x2bf6f1,'messages':_0x30a8fe,'options':{'max_tokens':this['modelSpecs'][_0x2bf6f1]?.['maxTokens']||0xfa0,'temperature':_0x229a92[_0x40b28d(0x1ee)]||0.7,'stream':_0x229a92[_0x40b28d(0x190)]||![]},'metadata':{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'timestamp':new Date()['toISOString']()}};_0x229a92['systemPrompt']&&(_0x2c7db4[_0x40b28d(0x1af)]=_0x229a92[_0x40b28d(0x1e7)]);this['logger']['info']('Sending\x20message\x20to\x20model:\x20'+_0x2bf6f1,{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'messageCount':Array[_0x40b28d(0x1c2)](_0x1909d9)?_0x1909d9[_0x40b28d(0x19e)]:0x1,'maxTokens':_0x2c7db4[_0x40b28d(0x22a)]});const _0xeac05e=await this[_0x40b28d(0x1de)]('/chat/completions',_0x2c7db4,_0x4dabac,{..._0x229a92,'sessionId':_0x229a92[_0x40b28d(0x21f)],'platformProvided':_0x229a92['platformProvided']||![]});return _0xeac05e[_0x40b28d(0x1f8)]&&await this[_0x40b28d(0x1b7)](_0x229a92['agentId'],_0x2bf6f1,{'prompt_tokens':_0xeac05e[_0x40b28d(0x1f8)]['prompt_tokens']||0x0,'completion_tokens':_0xeac05e[_0x40b28d(0x1f8)][_0x40b28d(0x226)]||0x0,'total_tokens':_0xeac05e[_0x40b28d(0x1f8)]['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0xeac05e['choices'][0x0]?.[_0x40b28d(0x1a6)]?.[_0x40b28d(0x211)]||'','model':_0xeac05e[_0x40b28d(0x1dd)],'tokenUsage':_0xeac05e[_0x40b28d(0x1f8)],'requestId':_0x4dabac,'finishReason':_0xeac05e[_0x40b28d(0x188)][0x0]?.[_0x40b28d(0x1ef)]};}catch(_0x538637){this['_recordFailure'](),this[_0x40b28d(0x19a)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x538637['message'],{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)],'error':_0x538637['stack']}),await this[_0x40b28d(0x21a)](_0x538637,{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)]});throw _0x538637;}}async[a0_0x150019(0x1aa)](_0x2e77c4,_0x5285ef={}){const _0x4e21c6=a0_0x150019;try{const _0x47f259=MODEL_ROUTING[_0x2e77c4['toUpperCase']()]||MODEL_ROUTING[_0x4e21c6(0x1e2)],_0x331bfe=[];for(const _0xa4ae11 of _0x47f259){const _0x544bbc=await this['_checkModelHealth'](_0xa4ae11);_0x544bbc&&_0x331bfe[_0x4e21c6(0x186)](_0xa4ae11);}if(_0x331bfe[_0x4e21c6(0x19e)]===0x0)return this[_0x4e21c6(0x19a)][_0x4e21c6(0x213)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x2e77c4+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x430023=_0x331bfe[0x0];if(_0x5285ef['preferredModel']&&_0x331bfe['includes'](_0x5285ef['preferredModel']))_0x430023=_0x5285ef['preferredModel'];else{if(_0x5285ef['complexity']==='high'&&_0x331bfe['includes'](MODELS['ANTHROPIC_OPUS']))_0x430023=MODELS[_0x4e21c6(0x1c1)];else _0x5285ef[_0x4e21c6(0x1f0)]===_0x4e21c6(0x227)&&_0x331bfe[_0x4e21c6(0x223)](MODELS['ANTHROPIC_HAIKU'])&&(_0x430023=MODELS[_0x4e21c6(0x1b9)]);}return this[_0x4e21c6(0x19a)]['info'](_0x4e21c6(0x231)+_0x2e77c4,{'selectedModel':_0x430023,'availableModels':_0x331bfe['length'],'context':_0x5285ef}),_0x430023;}catch(_0x308fe4){return this['logger'][_0x4e21c6(0x22c)]('Model\x20routing\x20failed:\x20'+_0x308fe4[_0x4e21c6(0x1a6)],{'task':_0x2e77c4,'context':_0x5285ef}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x150019(0x1e5)](_0x3d2b29,_0x4cb4ab){const _0x268de1=a0_0x150019,_0x5b7171=this[_0x268de1(0x18a)][_0x4cb4ab];if(!_0x5b7171)throw new Error(_0x268de1(0x1dc)+_0x4cb4ab);const _0x3b9073=_0x5b7171['contextWindow']*0.8;let _0x7d6070=0x0;const _0x5e081f=[],_0x5a1100=await Promise[_0x268de1(0x200)](_0x3d2b29['map'](async _0x4af32c=>({..._0x4af32c,'estimatedTokens':await this['_estimateTokens'](_0x4af32c[_0x268de1(0x211)],_0x4cb4ab)}))),_0x5a5f10=[..._0x5a1100][_0x268de1(0x1e8)]();for(const _0x17fbf1 of _0x5a5f10){if(_0x7d6070+_0x17fbf1['estimatedTokens']>_0x3b9073){if(_0x5e081f['length']===0x0){const _0x599f14=await this['_truncateMessage'](_0x17fbf1['content'],_0x3b9073);_0x5e081f['unshift']({..._0x17fbf1,'content':_0x599f14,'estimatedTokens':_0x3b9073});}break;}_0x5e081f['unshift'](_0x17fbf1),_0x7d6070+=_0x17fbf1['estimatedTokens'];}const _0x345e66=_0x5a1100['slice'](0x0,-_0x5e081f[_0x268de1(0x19e)]);if(_0x345e66['length']>0x0){const _0x17ee9b=await this['_summarizeMessages'](_0x345e66,_0x4cb4ab);_0x5e081f[_0x268de1(0x22b)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x17ee9b,'timestamp':_0x345e66[0x0]['timestamp'],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x17ee9b,_0x4cb4ab)});}return this['logger'][_0x268de1(0x1b3)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x4cb4ab,{'originalMessages':_0x3d2b29['length'],'compactizedMessages':_0x5e081f[_0x268de1(0x19e)],'estimatedTokens':_0x7d6070,'maxTokens':_0x3b9073}),_0x5e081f;}async['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d,_0x3af156){const _0x5b54b9=a0_0x150019;try{this[_0x5b54b9(0x228)]&&this[_0x5b54b9(0x228)]['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d);}catch(_0x14b366){this['logger'][_0x5b54b9(0x22c)]('Usage\x20tracking\x20failed:\x20'+_0x14b366['message']);}}async[a0_0x150019(0x21a)](_0x12bdc9,_0x1e1b4f){const _0x130fc8=a0_0x150019,_0x18aa90=this['errorHandler']?.[_0x130fc8(0x224)]?.(_0x12bdc9,_0x1e1b4f);switch(_0x12bdc9['status']||_0x12bdc9['code']){case HTTP_STATUS[_0x130fc8(0x1f2)]:this['logger'][_0x130fc8(0x22c)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x1e1b4f,'error':_0x12bdc9[_0x130fc8(0x1a6)]});throw new Error('Invalid\x20request:\x20'+_0x12bdc9['message']);case HTTP_STATUS[_0x130fc8(0x1c6)]:this['logger'][_0x130fc8(0x22c)](_0x130fc8(0x187),{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x20c));case HTTP_STATUS[_0x130fc8(0x191)]:this[_0x130fc8(0x19a)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x1e1b4f});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x130fc8(0x219)]:this[_0x130fc8(0x19a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x1d6));case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger'][_0x130fc8(0x213)](_0x130fc8(0x1d0),{'context':_0x1e1b4f}),await this['_handleRateLimit'](_0x1e1b4f);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS[_0x130fc8(0x20a)]:case HTTP_STATUS[_0x130fc8(0x1a7)]:this['logger'][_0x130fc8(0x22c)]('AI\x20service\x20unavailable',{'context':_0x1e1b4f,'status':_0x12bdc9['status']}),await this['_handleServiceUnavailable'](_0x1e1b4f);throw new Error(_0x130fc8(0x1e4));default:this[_0x130fc8(0x19a)][_0x130fc8(0x22c)](_0x130fc8(0x1f6),{'context':_0x1e1b4f,'error':_0x12bdc9['message']});throw new Error(_0x130fc8(0x1b5)+_0x12bdc9[_0x130fc8(0x1a6)]);}}[a0_0x150019(0x1ed)](_0x5e141b){const _0x45b357=a0_0x150019;this['apiKeyManager']=_0x5e141b,this['logger']?.[_0x45b357(0x1b3)](_0x45b357(0x215),{'hasManager':!!_0x5e141b});}['setAgentPool'](_0x227846){const _0x5b961e=a0_0x150019;this['agentPool']=_0x227846,this[_0x5b961e(0x19a)]?.['info'](_0x5b961e(0x20b),{'hasAgentPool':!!_0x227846});}async[a0_0x150019(0x218)](_0x5eaf42,_0x65b357={}){const _0x144d9=a0_0x150019,_0x5cb1c9=_0x144d9(0x1e0)+Date['now']()+'-'+Math[_0x144d9(0x1ea)]()[_0x144d9(0x1f4)](0x24)['substr'](0x2,0x9);try{if(this[_0x144d9(0x1cb)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x5eaf42||typeof _0x5eaf42!==_0x144d9(0x1bf)||_0x5eaf42['trim']()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x5bd1af=_0x65b357[_0x144d9(0x1dd)]||'flux-1.1-pro',_0x4b7450=_0x65b357['size']||_0x144d9(0x1a1),_0x4abf7f=_0x65b357[_0x144d9(0x207)]||'standard',_0x28a427=_0x65b357['responseFormat']||'url';this['logger']['info']('Generating\x20image\x20with\x20model:\x20'+_0x5bd1af,{'requestId':_0x5cb1c9,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'promptLength':_0x5eaf42['length']});const _0x541518={'prompt':_0x5eaf42,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'response_format':_0x28a427,'n':0x1,'metadata':{'requestId':_0x5cb1c9,'timestamp':new Date()['toISOString']()}},_0x3d3be6=await this['_makeImageAPIRequest'](_0x541518,_0x5cb1c9,{'sessionId':_0x65b357['sessionId'],'platformProvided':_0x65b357['platformProvided']||![]});return this[_0x144d9(0x212)](),{'url':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x21b)]||null,'b64_json':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x1c9)]||null,'model':_0x3d3be6['model']||_0x5bd1af,'requestId':_0x5cb1c9,'revisedPrompt':_0x3d3be6[_0x144d9(0x18e)]?.[0x0]?.[_0x144d9(0x1ca)]||_0x5eaf42};}catch(_0x3d9197){this['_recordFailure'](),this[_0x144d9(0x19a)]['error'](_0x144d9(0x1f3)+_0x3d9197['message'],{'requestId':_0x5cb1c9,'model':_0x65b357[_0x144d9(0x1dd)],'error':_0x3d9197['stack']});throw _0x3d9197;}}async['checkServiceHealth'](){const _0x22c6b0=a0_0x150019;try{const _0x397469=await this['_makeAPIRequest'](_0x22c6b0(0x19b),{},_0x22c6b0(0x1fb));return _0x397469[_0x22c6b0(0x1c3)]===_0x22c6b0(0x1f7);}catch(_0x1cf89e){return![];}}async[a0_0x150019(0x1df)](_0x1bb148,_0x1cb8ef){const _0x2d9dc0=a0_0x150019;try{if(!this['_isValidModel'](_0x1cb8ef))throw new Error(_0x2d9dc0(0x1fd)+_0x1cb8ef);let _0x3694fc=this['conversationManagers']['get'](_0x1bb148);!_0x3694fc&&(_0x3694fc=new ConversationManager(_0x1bb148,this['logger']),this[_0x2d9dc0(0x1ad)][_0x2d9dc0(0x189)](_0x1bb148,_0x3694fc));const _0x263f63=await _0x3694fc[_0x2d9dc0(0x1d1)](_0x1cb8ef),_0xc941ea=await this[_0x2d9dc0(0x1c8)]?.[_0x2d9dc0(0x194)](_0x1bb148);return _0xc941ea&&(_0xc941ea[_0x2d9dc0(0x1bd)]=_0x1cb8ef,await this[_0x2d9dc0(0x1c8)]['persistAgentState'](_0x1bb148)),this[_0x2d9dc0(0x19a)][_0x2d9dc0(0x1b3)](_0x2d9dc0(0x1d9)+_0x1bb148,{'newModel':_0x1cb8ef,'messageCount':_0x263f63[_0x2d9dc0(0x20d)][_0x2d9dc0(0x19e)]}),{'success':!![],'agentId':_0x1bb148,'newModel':_0x1cb8ef,'conversation':_0x263f63};}catch(_0x48b6ac){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0x48b6ac[_0x2d9dc0(0x1a6)],{'agentId':_0x1bb148,'newModel':_0x1cb8ef});throw _0x48b6ac;}}['_initializeModelSpecs'](){const _0x225d93=a0_0x150019,_0x3a666f={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x206)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x225d93(0x1c1)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x225d93(0x1b9)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x225d93(0x1d8)]]:{'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[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x225d93(0x1ba)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x19d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x225d93(0x1cf)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1d3)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x225d93(0x1db),'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':_0x225d93(0x1db),'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':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x225d93(0x1db),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x3a666f;}[a0_0x150019(0x230)](_0x58f9c7,_0x58d611,_0x2650ae){const _0x26e20e=a0_0x150019,_0x41b825=this[_0x26e20e(0x18a)][_0x58d611]||{'provider':_0x26e20e(0x1db)};let _0x2f2b57;typeof _0x58f9c7===_0x26e20e(0x1bf)?_0x2f2b57=[{'role':_0x26e20e(0x21c),'content':_0x58f9c7}]:_0x2f2b57=_0x58f9c7['map'](_0x48356e=>this['_formatSingleMessage'](_0x48356e,_0x58d611));switch(_0x41b825[_0x26e20e(0x1eb)]){case MODEL_PROVIDERS[_0x26e20e(0x206)]:return this[_0x26e20e(0x205)](_0x2f2b57);case MODEL_PROVIDERS['OPENAI']:return this[_0x26e20e(0x193)](_0x2f2b57);case MODEL_PROVIDERS[_0x26e20e(0x1db)]:return this[_0x26e20e(0x202)](_0x2f2b57);default:return _0x2f2b57;}}[a0_0x150019(0x18c)](_0xc01512,_0x1b5d56){const _0x2d5b47=a0_0x150019;return{'role':_0xc01512[_0x2d5b47(0x1a5)]||_0x2d5b47(0x21c),'content':_0xc01512['content'],'timestamp':_0xc01512[_0x2d5b47(0x22e)]};}[a0_0x150019(0x205)](_0x24e95f){const _0x546fa1=a0_0x150019;return _0x24e95f[_0x546fa1(0x196)](_0x2c2985=>{const _0x39bd85=_0x546fa1;if(_0x2c2985['role']===_0x39bd85(0x1af))return{'role':_0x39bd85(0x21c),'content':_0x39bd85(0x1fe)+_0x2c2985[_0x39bd85(0x211)]};return _0x2c2985;});}['_formatForOpenAI'](_0x31bc10){return _0x31bc10;}['_formatForAzure'](_0x222958){const _0x2a0fa2=a0_0x150019;return _0x222958[_0x2a0fa2(0x196)](_0x2e9df9=>({..._0x2e9df9,'content':typeof _0x2e9df9[_0x2a0fa2(0x211)]==='string'?_0x2e9df9['content']:JSON['stringify'](_0x2e9df9[_0x2a0fa2(0x211)])}));}['_isValidModel'](_0x57c17e){const _0x591de8=a0_0x150019;this[_0x591de8(0x19a)][_0x591de8(0x1a4)](_0x591de8(0x1f5),{'model':_0x57c17e,'modelType':typeof _0x57c17e});if(this[_0x591de8(0x18a)][_0x57c17e]!==undefined)return!![];return this[_0x591de8(0x19a)]['warn'](_0x591de8(0x195),{'model':_0x57c17e,'availableModels':Object[_0x591de8(0x22d)](this[_0x591de8(0x18a)])}),![];}async[a0_0x150019(0x1fa)](_0x3ca937){return!![];}async[a0_0x150019(0x209)](_0xf0064f,_0x2a6133){const _0x103a6c=a0_0x150019;return Math[_0x103a6c(0x20f)](_0xf0064f[_0x103a6c(0x19e)]/0x4);}async['_truncateMessage'](_0x229970,_0x4a5ea0){const _0x515892=a0_0x150019,_0x21937c=_0x4a5ea0*0x4;if(_0x229970[_0x515892(0x19e)]<=_0x21937c)return _0x229970;return _0x229970[_0x515892(0x1d7)](0x0,_0x21937c-0x14)+_0x515892(0x1ae);}async[a0_0x150019(0x1e9)](_0x163629,_0x190bde){const _0xfebd2e=a0_0x150019,_0x1f9e58=_0x163629[_0xfebd2e(0x196)](_0x3794a2=>_0x3794a2[_0xfebd2e(0x1a5)]+':\x20'+_0x3794a2['content'])['join']('\x0a'),_0x22487d=0x1f4;if(_0x1f9e58[_0xfebd2e(0x19e)]<=_0x22487d)return _0x1f9e58;return _0x1f9e58[_0xfebd2e(0x1d7)](0x0,_0x22487d)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x150019(0x1de)](_0x5ea211,_0x15e009,_0xdcb505,_0x45c3d1={}){const _0x1e1381=a0_0x150019,_0x114f92=_0x1e1381(0x1ff);let _0x256d0f,_0x493edf=null,_0x39b429=null;this['logger']?.[_0x1e1381(0x1b3)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x1e1381(0x1b4)],'sessionId':_0x45c3d1['sessionId'],'hasSessionId':!!_0x45c3d1['sessionId'],'optionsKeys':Object['keys'](_0x45c3d1),'model':_0x15e009[_0x1e1381(0x1dd)]});if(this[_0x1e1381(0x1b4)]&&_0x45c3d1[_0x1e1381(0x21f)]){const _0x273adf=this['apiKeyManager']['getKeysForRequest'](_0x45c3d1['sessionId'],{'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![],'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});_0x493edf=_0x273adf[_0x1e1381(0x19c)],_0x39b429=_0x273adf[_0x1e1381(0x18f)],this['logger']?.[_0x1e1381(0x1a4)]('Retrieved API keys from session manager',{'sessionId':_0x45c3d1[_0x1e1381(0x21f)],'hasLoxiaKey':!!_0x493edf,'hasVendorKey':!!_0x39b429,'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});}!_0x493edf&&_0x45c3d1['apiKey']&&(_0x493edf=_0x45c3d1[_0x1e1381(0x199)]);!_0x493edf&&this['config']['apiKey']&&(_0x493edf=this['config']['apiKey']);if(!_0x493edf)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x40ed17=_0x15e009['model'],_0x1d0f3c={'conversationId':_0xdcb505,'message':_0x15e009['messages'][_0x15e009['messages']['length']-0x1]?.['content']||'','messages':_0x15e009['messages'],'model':_0x40ed17,'requestId':_0xdcb505,'options':_0x15e009['options']||{},'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![]};_0x15e009[_0x1e1381(0x1af)]&&(_0x1d0f3c[_0x1e1381(0x1e7)]=_0x15e009[_0x1e1381(0x1af)]);_0x45c3d1['platformProvided']?_0x1d0f3c['apiKey']=_0x493edf:(_0x39b429&&(_0x1d0f3c['vendorApiKey']=_0x39b429),_0x45c3d1[_0x1e1381(0x210)]&&(_0x1d0f3c[_0x1e1381(0x210)]=_0x45c3d1['customApiKeys']),_0x1d0f3c['apiKey']=_0x493edf);for(let _0x158635=0x1;_0x158635<=this[_0x1e1381(0x1b1)];_0x158635++){try{this[_0x1e1381(0x19a)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x114f92,'model':_0x15e009[_0x1e1381(0x1dd)],'requestId':_0xdcb505,'attempt':_0x158635,'hasApiKey':!!_0x493edf});const _0x5a7be9=await fetch(_0x114f92,{'method':'POST','headers':{'Content-Type':_0x1e1381(0x1e3),'Authorization':'Bearer\x20'+_0x493edf,'X-Request-ID':_0xdcb505},'body':JSON['stringify'](_0x1d0f3c),'timeout':this[_0x1e1381(0x21d)]});if(!_0x5a7be9['ok']){const _0x52e386=await _0x5a7be9['text'](),_0x2bd809=new Error('HTTP\x20'+_0x5a7be9[_0x1e1381(0x1c3)]+':\x20'+_0x5a7be9['statusText']+(_0x52e386?'\x20-\x20'+_0x52e386:''));_0x2bd809['status']=_0x5a7be9['status'];throw _0x2bd809;}const _0x4e1642=await _0x5a7be9['json']();return{'choices':[{'message':{'content':_0x4e1642['content']||'','role':'assistant'},'finish_reason':_0x4e1642['finishReason']||'stop'}],'usage':_0x4e1642[_0x1e1381(0x1f8)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4e1642['model']||_0x15e009[_0x1e1381(0x1dd)],'id':_0x4e1642['requestId']||_0xdcb505};}catch(_0x25eb26){_0x256d0f=_0x25eb26,this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x1ac),{'attempt':_0x158635,'requestId':_0xdcb505,'error':_0x25eb26[_0x1e1381(0x1a6)],'status':_0x25eb26[_0x1e1381(0x1c3)]});if(_0x158635<this[_0x1e1381(0x1b1)]){const _0x56f1e1=Math[_0x1e1381(0x1a3)](0x2,_0x158635)*0x3e8;this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x20e)+_0x56f1e1+'ms',{'attempt':_0x158635,'requestId':_0xdcb505}),await new Promise(_0x57c1b2=>setTimeout(_0x57c1b2,_0x56f1e1));}}}this['logger']['error'](_0x1e1381(0x203),{'requestId':_0xdcb505,'error':_0x256d0f[_0x1e1381(0x1a6)]});const _0x40187b=_0x256d0f['message']&&_0x256d0f['message']['includes']('No\x20API\x20key\x20configured');if(_0x40187b)throw new Error('API\x20Configuration\x20Error:\x20'+_0x256d0f[_0x1e1381(0x1a6)]);return{'choices':[{'message':{'content':_0x1e1381(0x1e6)+_0x256d0f[_0x1e1381(0x1a6)],'role':_0x1e1381(0x1ec)},'finish_reason':_0x1e1381(0x18d)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x15e009['model'],'id':_0x1e1381(0x1f1)+_0xdcb505,'error':_0x256d0f['message']};}async[a0_0x150019(0x1cd)](_0x3ce2b9,_0x93e30a,_0x27d485={}){const _0x36df8a=a0_0x150019,_0x38dacb='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0xa44334,_0x4e0c01=null,_0x44e7b0=null;this['logger']?.[_0x36df8a(0x1b3)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x36df8a(0x1b4)],'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasSessionId':!!_0x27d485[_0x36df8a(0x21f)],'model':_0x3ce2b9[_0x36df8a(0x1dd)]});if(this['apiKeyManager']&&_0x27d485['sessionId']){const _0x4c41d2=this['apiKeyManager'][_0x36df8a(0x1c0)](_0x27d485['sessionId'],{'platformProvided':_0x27d485[_0x36df8a(0x1da)]||![],'vendor':this[_0x36df8a(0x204)](_0x3ce2b9[_0x36df8a(0x1dd)])});_0x4e0c01=_0x4c41d2[_0x36df8a(0x19c)],_0x44e7b0=_0x4c41d2['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasLoxiaKey':!!_0x4e0c01,'hasVendorKey':!!_0x44e7b0});}!_0x4e0c01&&_0x27d485['apiKey']&&(_0x4e0c01=_0x27d485[_0x36df8a(0x199)]);!_0x4e0c01&&this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]&&(_0x4e0c01=this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]);if(!_0x4e0c01)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3b149b={'prompt':_0x3ce2b9['prompt'],'model':_0x3ce2b9['model']||'azure-openai-dalle3','size':_0x3ce2b9['size'],'quality':_0x3ce2b9['quality'],'style':_0x3ce2b9[_0x36df8a(0x225)]||_0x36df8a(0x1be),'n':_0x3ce2b9['n']||0x1,'requestId':_0x93e30a};for(let _0x5de402=0x1;_0x5de402<=this['retryAttempts'];_0x5de402++){try{this[_0x36df8a(0x19a)]['info'](_0x36df8a(0x1ce),{'url':_0x38dacb,'model':_0x3ce2b9[_0x36df8a(0x1dd)],'requestId':_0x93e30a,'attempt':_0x5de402,'hasApiKey':!!_0x4e0c01});const _0x2b2bc9=await fetch(_0x38dacb,{'method':_0x36df8a(0x1c4),'headers':{'Content-Type':_0x36df8a(0x1e3),'Authorization':_0x36df8a(0x1bc)+_0x4e0c01,'X-Request-ID':_0x93e30a},'body':JSON['stringify'](_0x3b149b),'timeout':this[_0x36df8a(0x21d)]*0x2});if(!_0x2b2bc9['ok']){const _0x3d25bb=await _0x2b2bc9['text'](),_0x430e39=new Error('HTTP\x20'+_0x2b2bc9[_0x36df8a(0x1c3)]+':\x20'+_0x2b2bc9['statusText']+(_0x3d25bb?'\x20-\x20'+_0x3d25bb:''));_0x430e39['status']=_0x2b2bc9['status'];throw _0x430e39;}const _0x1ab511=await _0x2b2bc9['json']();return{'data':_0x1ab511['images']||[],'model':_0x1ab511['model']||_0x3ce2b9['model'],'created':_0x1ab511[_0x36df8a(0x197)]||Date[_0x36df8a(0x1b6)](),'usage':_0x1ab511['usage']};}catch(_0x3664a2){_0xa44334=_0x3664a2,this['logger'][_0x36df8a(0x213)](_0x36df8a(0x1d5),{'attempt':_0x5de402,'requestId':_0x93e30a,'error':_0x3664a2[_0x36df8a(0x1a6)],'status':_0x3664a2['status']});if(_0x5de402<this[_0x36df8a(0x1b1)]){const _0x2c1777=Math[_0x36df8a(0x1a3)](0x2,_0x5de402)*0x3e8;this[_0x36df8a(0x19a)]['warn'](_0x36df8a(0x20e)+_0x2c1777+'ms',{'attempt':_0x5de402,'requestId':_0x93e30a}),await new Promise(_0x2a44d8=>setTimeout(_0x2a44d8,_0x2c1777));}}}this['logger'][_0x36df8a(0x22c)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x93e30a,'error':_0xa44334[_0x36df8a(0x1a6)]});throw new Error('Image\x20generation\x20failed:\x20'+_0xa44334['message']);}async['_checkRateLimit'](_0xbcdb7f){await new Promise(_0x9671e9=>setTimeout(_0x9671e9,0x64));}async['_handleRateLimit'](_0x726a2f){const _0x1f4d84=a0_0x150019,_0x740181=0xea60;this['logger'][_0x1f4d84(0x1b3)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x740181+'ms',_0x726a2f),await new Promise(_0x171071=>setTimeout(_0x171071,_0x740181));}async[a0_0x150019(0x220)](_0xb796fc){this['_recordFailure']();const _0x4031ab=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x4031ab+'ms',_0xb796fc),await new Promise(_0x3a0db5=>setTimeout(_0x3a0db5,_0x4031ab));}['_isCircuitBreakerOpen'](){const _0x5595c8=a0_0x150019;if(!this[_0x5595c8(0x1b2)][_0x5595c8(0x1a9)])return![];const _0x54c014=Date[_0x5595c8(0x1b6)]()-this['circuitBreaker'][_0x5595c8(0x229)];if(_0x54c014>this[_0x5595c8(0x1b2)]['timeout'])return this['circuitBreaker'][_0x5595c8(0x1a9)]=![],this[_0x5595c8(0x1b2)][_0x5595c8(0x221)]=0x0,![];return!![];}['_recordFailure'](){const _0x34a3fd=a0_0x150019;this['circuitBreaker'][_0x34a3fd(0x221)]++,this[_0x34a3fd(0x1b2)][_0x34a3fd(0x229)]=Date[_0x34a3fd(0x1b6)](),this[_0x34a3fd(0x1b2)]['failures']>=this[_0x34a3fd(0x1b2)][_0x34a3fd(0x1a8)]&&(this['circuitBreaker']['isOpen']=!![],this[_0x34a3fd(0x19a)]['warn'](_0x34a3fd(0x216)));}['_resetCircuitBreaker'](){const _0x26220=a0_0x150019;this[_0x26220(0x1b2)]['failures']>0x0&&(this[_0x26220(0x1b2)]['failures']=0x0,this['circuitBreaker'][_0x26220(0x1a9)]=![],this[_0x26220(0x19a)][_0x26220(0x1b3)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x51521f){const _0xee6e66=a0_0x150019;if(!_0x51521f)return null;const _0x13f499=_0x51521f['toLowerCase']();if(_0x13f499[_0xee6e66(0x223)](_0xee6e66(0x1d2))||_0x13f499['includes']('claude'))return'anthropic';else{if(_0x13f499['includes'](_0xee6e66(0x222))||_0x13f499[_0xee6e66(0x223)]('gpt'))return _0xee6e66(0x222);else{if(_0x13f499[_0xee6e66(0x223)]('deepseek'))return _0xee6e66(0x18b);else{if(_0x13f499[_0xee6e66(0x223)]('phi'))return _0xee6e66(0x1e1);}}}return null;}}class ConversationManager{constructor(_0x54e079,_0x4665ea){const _0x26f1bb=a0_0x150019;this[_0x26f1bb(0x1fc)]=_0x54e079,this['logger']=_0x4665ea,this['conversations']=new Map();}async[a0_0x150019(0x1d1)](_0x337477){const _0x378ce6=a0_0x150019;return{'messages':[],'model':_0x337477,'lastUpdated':new Date()[_0x378ce6(0x232)]()};}}export default AIService;
@@ -1 +1 @@
1
- function a0_0xc30d(_0x3064c0,_0x5860a0){_0x3064c0=_0x3064c0-0x11d;const _0x48d27c=a0_0x48d2();let _0xc30da=_0x48d27c[_0x3064c0];if(a0_0xc30d['mCwxzB']===undefined){var _0x533422=function(_0x4f3802){const _0x3af920='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40d8fd='',_0x25ca01='';for(let _0x2bcf34=0x0,_0x310495,_0x237e07,_0x2cc361=0x0;_0x237e07=_0x4f3802['charAt'](_0x2cc361++);~_0x237e07&&(_0x310495=_0x2bcf34%0x4?_0x310495*0x40+_0x237e07:_0x237e07,_0x2bcf34++%0x4)?_0x40d8fd+=String['fromCharCode'](0xff&_0x310495>>(-0x2*_0x2bcf34&0x6)):0x0){_0x237e07=_0x3af920['indexOf'](_0x237e07);}for(let _0x56b7d5=0x0,_0x127e78=_0x40d8fd['length'];_0x56b7d5<_0x127e78;_0x56b7d5++){_0x25ca01+='%'+('00'+_0x40d8fd['charCodeAt'](_0x56b7d5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25ca01);};a0_0xc30d['PbePRf']=_0x533422,a0_0xc30d['bQuZLo']={},a0_0xc30d['mCwxzB']=!![];}const _0x418927=_0x48d27c[0x0],_0x33da7a=_0x3064c0+_0x418927,_0x3a4dc5=a0_0xc30d['bQuZLo'][_0x33da7a];return!_0x3a4dc5?(_0xc30da=a0_0xc30d['PbePRf'](_0xc30da),a0_0xc30d['bQuZLo'][_0x33da7a]=_0xc30da):_0xc30da=_0x3a4dc5,_0xc30da;}const a0_0x5c8590=a0_0xc30d;(function(_0x252a51,_0x17caee){const _0x2c47e0=a0_0xc30d,_0xabd73f=_0x252a51();while(!![]){try{const _0x20b9b4=parseInt(_0x2c47e0(0x120))/0x1+parseInt(_0x2c47e0(0x11d))/0x2*(parseInt(_0x2c47e0(0x12e))/0x3)+-parseInt(_0x2c47e0(0x131))/0x4+-parseInt(_0x2c47e0(0x129))/0x5+parseInt(_0x2c47e0(0x123))/0x6*(parseInt(_0x2c47e0(0x127))/0x7)+-parseInt(_0x2c47e0(0x122))/0x8+parseInt(_0x2c47e0(0x12d))/0x9*(parseInt(_0x2c47e0(0x133))/0xa);if(_0x20b9b4===_0x17caee)break;else _0xabd73f['push'](_0xabd73f['shift']());}catch(_0x17bf23){_0xabd73f['push'](_0xabd73f['shift']());}}}(a0_0x48d2,0x4ad03));class ApiKeyManager{constructor(_0x40d8fd){const _0x11f10c=a0_0xc30d;this[_0x11f10c(0x136)]=_0x40d8fd,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x25ca01,_0x2bcf34){const _0x40fbe7=a0_0xc30d;if(!_0x25ca01)throw new Error('Session\x20ID\x20is\x20required');this['sessionKeys'][_0x40fbe7(0x12b)](_0x25ca01,{'loxiaApiKey':_0x2bcf34['loxiaApiKey']||null,'vendorKeys':_0x2bcf34['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.['info'](_0x40fbe7(0x126),{'sessionId':_0x25ca01,'hasLoxiaKey':!!_0x2bcf34[_0x40fbe7(0x12f)],'vendorKeys':Object[_0x40fbe7(0x121)](_0x2bcf34[_0x40fbe7(0x13a)]||{}),'timestamp':new Date()['toISOString']()});}[a0_0x5c8590(0x125)](_0x310495){const _0x230e5d=a0_0x5c8590;if(!_0x310495)return this[_0x230e5d(0x128)];const _0x237e07=this['sessionKeys'][_0x230e5d(0x137)](_0x310495);if(_0x237e07)return _0x237e07;return this[_0x230e5d(0x128)];}['getKeysForRequest'](_0x2cc361,_0x56b7d5={}){const _0xf13782=a0_0x5c8590,_0x127e78=this[_0xf13782(0x125)](_0x2cc361),_0xaf6d55={'loxiaApiKey':_0x127e78['loxiaApiKey'],'vendorApiKey':null};return!_0x56b7d5[_0xf13782(0x132)]&&_0x56b7d5[_0xf13782(0x11e)]&&_0x127e78['vendorKeys']&&(_0xaf6d55[_0xf13782(0x11f)]=_0x127e78[_0xf13782(0x13a)][_0x56b7d5[_0xf13782(0x11e)]]),_0xaf6d55;}['removeSessionKeys'](_0x8449f1){const _0x294bd0=a0_0x5c8590;if(this[_0x294bd0(0x12a)][_0x294bd0(0x139)](_0x8449f1))return this[_0x294bd0(0x136)]?.[_0x294bd0(0x130)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x8449f1}),!![];return![];}['setGlobalKeys'](_0x234081){const _0x5b3d9c=a0_0x5c8590;this['globalKeys']={'loxiaApiKey':_0x234081[_0x5b3d9c(0x12f)]||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x5b3d9c(0x13a)],..._0x234081[_0x5b3d9c(0x13a)]||{}}},this[_0x5b3d9c(0x136)]?.['info']('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0x5b3d9c(0x128)][_0x5b3d9c(0x12f)],'vendorKeys':Object[_0x5b3d9c(0x121)](this[_0x5b3d9c(0x128)]['vendorKeys'])});}[a0_0x5c8590(0x134)](){const _0x512641=a0_0x5c8590;return Array['from'](this['sessionKeys'][_0x512641(0x135)]())['map'](([_0x40914b,_0x19c252])=>({'sessionId':_0x40914b,'hasLoxiaKey':!!_0x19c252['loxiaApiKey'],'vendorKeys':Object['keys'](_0x19c252[_0x512641(0x13a)]||{}),'updatedAt':_0x19c252['updatedAt']}));}[a0_0x5c8590(0x138)](_0x2325f1=0x18*0x3c*0x3c*0x3e8){const _0x874c0e=a0_0x5c8590,_0x1f4c10=Date['now'](),_0x2024a3=[];for(const [_0x11cdaf,_0x47a319]of this['sessionKeys']['entries']()){const _0x2b325a=_0x1f4c10-new Date(_0x47a319['updatedAt'])['getTime']();_0x2b325a>_0x2325f1&&_0x2024a3['push'](_0x11cdaf);}return _0x2024a3[_0x874c0e(0x124)](_0x4d3db0=>{const _0x439deb=_0x874c0e;this[_0x439deb(0x12a)][_0x439deb(0x139)](_0x4d3db0);}),_0x2024a3['length']>0x0&&this['logger']?.[_0x874c0e(0x130)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x2024a3[_0x874c0e(0x12c)],'remainingSessions':this['sessionKeys']['size']}),_0x2024a3['length'];}}export default ApiKeyManager;function a0_0x48d2(){const _0xf05bf6=['zw50CMLLCW','Bg9Nz2vY','z2v0','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','zgvSzxrL','DMvUzg9Ys2v5CW','ng9Ks2L2sG','DMvUzg9Y','DMvUzg9YqxbPs2v5','mJG5ntm0Agv0ANbA','A2v5CW','nJKZnZiWDKPxsvzK','nteWntrise5rBhG','zM9YrwfJAa','z2v0u2vZC2LVBKTLExm','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mtG5ufzxCvLU','z2XVyMfSs2v5CW','mJi5ndy1nuves3DKBG','C2vZC2LVBKTLExm','C2v0','BgvUz3rO','mtuXmK9fBwDABq','nZuXnJm4wNfYswr0','Bg94AwfbCgLlzxK','Aw5MBW','mtyZmda4mhLnDvzerq','CgXHDgzVCM1qCM92AwrLza','mtqYndbyExrerfa','z2v0qwn0AxzLu2vZC2LVBNm'];a0_0x48d2=function(){return _0xf05bf6;};return a0_0x48d2();}
1
+ function a0_0x3b83(){const _0x307628=['q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','DMvUzg9Y','mtG1nde1Au1IAwnJ','z2v0','Aw5MBW','C2vZC2LVBKTLExm','mJmZndy0n1HpvwHKEG','z2v0u2vZC2LVBKTLExm','zNjVBq','mMH5qNfyza','z2v0s2v5C0zVCLjLCxvLC3q','zgvSzxrL','mtuXmJe4nhrVtM5PzG','C2L6zq','z2XVyMfSs2v5CW','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','nZq4mZCYAuzuD09S','Bg9Nz2vY','CgXHDgzVCM1qCM92AwrLza','nKjNAuvSyW','Bg94AwfbCgLlzxK','DxbKyxrLzef0','DMvUzg9YqxbPs2v5','ndK1otKZmgrLte1cqq','ndm3nNLds0Thua','Dg9ju09tDhjPBMC','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','C2v0r2XVyMfSs2v5CW','odKXmdy2Eu5cvfjX','oxHUvKH1vG','DMvUzg9Ys2v5CW'];a0_0x3b83=function(){return _0x307628;};return a0_0x3b83();}function a0_0x2834(_0x357e6f,_0x43cea9){_0x357e6f=_0x357e6f-0x13b;const _0x3b8346=a0_0x3b83();let _0x2834d3=_0x3b8346[_0x357e6f];if(a0_0x2834['RpOyaS']===undefined){var _0xf445eb=function(_0x2f01d7){const _0x1361cb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x127852='',_0x5bd500='';for(let _0x401ded=0x0,_0x586bfe,_0x27b6a5,_0x4e19b7=0x0;_0x27b6a5=_0x2f01d7['charAt'](_0x4e19b7++);~_0x27b6a5&&(_0x586bfe=_0x401ded%0x4?_0x586bfe*0x40+_0x27b6a5:_0x27b6a5,_0x401ded++%0x4)?_0x127852+=String['fromCharCode'](0xff&_0x586bfe>>(-0x2*_0x401ded&0x6)):0x0){_0x27b6a5=_0x1361cb['indexOf'](_0x27b6a5);}for(let _0x817c41=0x0,_0x124588=_0x127852['length'];_0x817c41<_0x124588;_0x817c41++){_0x5bd500+='%'+('00'+_0x127852['charCodeAt'](_0x817c41)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bd500);};a0_0x2834['joDVaY']=_0xf445eb,a0_0x2834['nTcoAk']={},a0_0x2834['RpOyaS']=!![];}const _0x2a9617=_0x3b8346[0x0],_0x1efa85=_0x357e6f+_0x2a9617,_0x576e01=a0_0x2834['nTcoAk'][_0x1efa85];return!_0x576e01?(_0x2834d3=a0_0x2834['joDVaY'](_0x2834d3),a0_0x2834['nTcoAk'][_0x1efa85]=_0x2834d3):_0x2834d3=_0x576e01,_0x2834d3;}const a0_0x569524=a0_0x2834;(function(_0x5cec48,_0x5e1f1a){const _0x476532=a0_0x2834,_0xf14ed4=_0x5cec48();while(!![]){try{const _0xcc9a26=-parseInt(_0x476532(0x140))/0x1*(parseInt(_0x476532(0x150))/0x2)+parseInt(_0x476532(0x144))/0x3+-parseInt(_0x476532(0x157))/0x4+parseInt(_0x476532(0x149))/0x5+parseInt(_0x476532(0x13b))/0x6*(parseInt(_0x476532(0x14d))/0x7)+parseInt(_0x476532(0x153))/0x8+parseInt(_0x476532(0x145))/0x9*(-parseInt(_0x476532(0x13f))/0xa);if(_0xcc9a26===_0x5e1f1a)break;else _0xf14ed4['push'](_0xf14ed4['shift']());}catch(_0x1cd194){_0xf14ed4['push'](_0xf14ed4['shift']());}}}(a0_0x3b83,0x294e3));class ApiKeyManager{constructor(_0x127852){const _0xda03bb=a0_0x2834;this[_0xda03bb(0x158)]=_0x127852,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x5bd500,_0x401ded){const _0xd6779c=a0_0x2834;if(!_0x5bd500)throw new Error('Session\x20ID\x20is\x20required');this[_0xd6779c(0x14c)]['set'](_0x5bd500,{'loxiaApiKey':_0x401ded[_0xd6779c(0x13c)]||null,'vendorKeys':_0x401ded[_0xd6779c(0x146)]||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.[_0xd6779c(0x14b)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x5bd500,'hasLoxiaKey':!!_0x401ded[_0xd6779c(0x13c)],'vendorKeys':Object['keys'](_0x401ded['vendorKeys']||{}),'timestamp':new Date()[_0xd6779c(0x141)]()});}['getSessionKeys'](_0x586bfe){const _0x25d2ea=a0_0x2834;if(!_0x586bfe)return this[_0x25d2ea(0x155)];const _0x27b6a5=this['sessionKeys'][_0x25d2ea(0x14a)](_0x586bfe);if(_0x27b6a5)return _0x27b6a5;return this['globalKeys'];}[a0_0x569524(0x151)](_0x4e19b7,_0x817c41={}){const _0x13288e=a0_0x569524,_0x124588=this[_0x13288e(0x14e)](_0x4e19b7),_0x4e54f7={'loxiaApiKey':_0x124588[_0x13288e(0x13c)],'vendorApiKey':null};return!_0x817c41[_0x13288e(0x159)]&&_0x817c41['vendor']&&_0x124588['vendorKeys']&&(_0x4e54f7[_0x13288e(0x13e)]=_0x124588[_0x13288e(0x146)][_0x817c41[_0x13288e(0x148)]]),_0x4e54f7;}['removeSessionKeys'](_0x4049f7){const _0x312ff6=a0_0x569524;if(this[_0x312ff6(0x14c)][_0x312ff6(0x152)](_0x4049f7))return this['logger']?.[_0x312ff6(0x14b)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x4049f7}),!![];return![];}[a0_0x569524(0x143)](_0x579480){const _0x59356d=a0_0x569524;this[_0x59356d(0x155)]={'loxiaApiKey':_0x579480['loxiaApiKey']||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x59356d(0x146)],..._0x579480[_0x59356d(0x146)]||{}}},this['logger']?.[_0x59356d(0x14b)](_0x59356d(0x142),{'hasLoxiaKey':!!this[_0x59356d(0x155)]['loxiaApiKey'],'vendorKeys':Object['keys'](this[_0x59356d(0x155)][_0x59356d(0x146)])});}['getActiveSessions'](){const _0x1ace71=a0_0x569524;return Array[_0x1ace71(0x14f)](this[_0x1ace71(0x14c)]['entries']())['map'](([_0x1e1c8b,_0x5c6dd0])=>({'sessionId':_0x1e1c8b,'hasLoxiaKey':!!_0x5c6dd0['loxiaApiKey'],'vendorKeys':Object['keys'](_0x5c6dd0[_0x1ace71(0x146)]||{}),'updatedAt':_0x5c6dd0[_0x1ace71(0x13d)]}));}[a0_0x569524(0x156)](_0x5ddca6=0x18*0x3c*0x3c*0x3e8){const _0x4220b9=a0_0x569524,_0x2dfda9=Date['now'](),_0x536029=[];for(const [_0x9d12c8,_0x2712ad]of this['sessionKeys']['entries']()){const _0x2bd975=_0x2dfda9-new Date(_0x2712ad['updatedAt'])['getTime']();_0x2bd975>_0x5ddca6&&_0x536029['push'](_0x9d12c8);}return _0x536029['forEach'](_0x17c7b7=>{const _0x5e90e9=a0_0x2834;this[_0x5e90e9(0x14c)][_0x5e90e9(0x152)](_0x17c7b7);}),_0x536029['length']>0x0&&this[_0x4220b9(0x158)]?.[_0x4220b9(0x14b)](_0x4220b9(0x147),{'expiredSessions':_0x536029['length'],'remainingSessions':this[_0x4220b9(0x14c)][_0x4220b9(0x154)]}),_0x536029['length'];}}export default ApiKeyManager;
@@ -1 +1 @@
1
- const a0_0x1015cd=a0_0x471c;(function(_0x519a00,_0x269bae){const _0x560bdf=a0_0x471c,_0x2a94fa=_0x519a00();while(!![]){try{const _0x2995b1=parseInt(_0x560bdf(0x1ad))/0x1*(-parseInt(_0x560bdf(0x19e))/0x2)+parseInt(_0x560bdf(0x198))/0x3*(parseInt(_0x560bdf(0x1ae))/0x4)+-parseInt(_0x560bdf(0x184))/0x5*(-parseInt(_0x560bdf(0x191))/0x6)+-parseInt(_0x560bdf(0x1af))/0x7*(parseInt(_0x560bdf(0x1ac))/0x8)+parseInt(_0x560bdf(0x1a7))/0x9*(parseInt(_0x560bdf(0x194))/0xa)+-parseInt(_0x560bdf(0x1b0))/0xb+-parseInt(_0x560bdf(0x19c))/0xc;if(_0x2995b1===_0x269bae)break;else _0x2a94fa['push'](_0x2a94fa['shift']());}catch(_0xcb5616){_0x2a94fa['push'](_0x2a94fa['shift']());}}}(a0_0x16ef,0x6cab4));function a0_0x471c(_0x19843c,_0x5bd363){_0x19843c=_0x19843c-0x17d;const _0x16ef40=a0_0x16ef();let _0x471c6f=_0x16ef40[_0x19843c];if(a0_0x471c['wHbQuk']===undefined){var _0x5e9719=function(_0x2b611d){const _0x3c6694='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xcdf71c='',_0x4c18b2='';for(let _0x540f79=0x0,_0x970edf,_0x214a99,_0x190987=0x0;_0x214a99=_0x2b611d['charAt'](_0x190987++);~_0x214a99&&(_0x970edf=_0x540f79%0x4?_0x970edf*0x40+_0x214a99:_0x214a99,_0x540f79++%0x4)?_0xcdf71c+=String['fromCharCode'](0xff&_0x970edf>>(-0x2*_0x540f79&0x6)):0x0){_0x214a99=_0x3c6694['indexOf'](_0x214a99);}for(let _0x5efe09=0x0,_0x519d2f=_0xcdf71c['length'];_0x5efe09<_0x519d2f;_0x5efe09++){_0x4c18b2+='%'+('00'+_0xcdf71c['charCodeAt'](_0x5efe09)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c18b2);};a0_0x471c['GnIGaX']=_0x5e9719,a0_0x471c['CJAmwa']={},a0_0x471c['wHbQuk']=!![];}const _0x3ffb79=_0x16ef40[0x0],_0x50844c=_0x19843c+_0x3ffb79,_0x20dfbc=a0_0x471c['CJAmwa'][_0x50844c];return!_0x20dfbc?(_0x471c6f=a0_0x471c['GnIGaX'](_0x471c6f),a0_0x471c['CJAmwa'][_0x50844c]=_0x471c6f):_0x471c6f=_0x20dfbc,_0x471c6f;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0xcdf71c,_0x4c18b2){const _0x5edaf5=a0_0x471c;this['config']=_0xcdf71c,this['logger']=_0x4c18b2,this['benchmarks']=null,this['lastUpdated']=null,this[_0x5edaf5(0x19b)]=![],this[_0x5edaf5(0x180)]='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x5edaf5(0x181)];}async['initialize'](){const _0xc7b8e2=a0_0x471c;try{await this[_0xc7b8e2(0x1b3)](),this[_0xc7b8e2(0x1a8)](),this['logger']['info'](_0xc7b8e2(0x1aa));}catch(_0x540f79){this['logger']['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x540f79['message']}),this['benchmarks']=null;}}[a0_0x1015cd(0x1a3)](){const _0x48924a=a0_0x1015cd;if(!this[_0x48924a(0x17e)])return this[_0x48924a(0x19d)][_0x48924a(0x18d)](_0x48924a(0x193),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x48924a(0x17e)];}async[a0_0x1015cd(0x1b3)](){const _0x28d662=a0_0x1015cd;if(this['isLoading']){this['logger']['debug'](_0x28d662(0x1a6));return;}this[_0x28d662(0x19b)]=!![];try{const _0x970edf=await this[_0x28d662(0x1ab)]();if(_0x970edf)this['benchmarks']=_0x970edf,this[_0x28d662(0x18e)]=new Date(),this['logger'][_0x28d662(0x189)]('Benchmarks loaded from Azure backend',{'modelCount':_0x970edf['models']?.[_0x28d662(0x1a5)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x214a99){this[_0x28d662(0x19d)]['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x214a99[_0x28d662(0x1a2)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this['isLoading']=![];}}['getBenchmarkTable'](){const _0x229b0d=a0_0x1015cd,_0x190987=this['getBenchmarks']();return{'lastUpdated':this[_0x229b0d(0x18e)]?.[_0x229b0d(0x195)]()||_0x229b0d(0x183),'models':_0x190987[_0x229b0d(0x1a1)]||[],'tasks':_0x190987[_0x229b0d(0x19f)]||{},'summary':this[_0x229b0d(0x19a)](_0x190987)};}[a0_0x1015cd(0x1b4)](){const _0x26fdb5=a0_0x1015cd;if(!this['lastUpdated'])return!![];const _0x5efe09=Date[_0x26fdb5(0x187)]()-this[_0x26fdb5(0x18e)][_0x26fdb5(0x186)]();return _0x5efe09>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0xb54ae6=a0_0x1015cd,_0x519d2f=this[_0xb54ae6(0x180)]+'/llm/model-benchmarks';let _0x2576fb=null;this['config'][_0xb54ae6(0x18f)]&&(_0x2576fb=this[_0xb54ae6(0x185)]['apiKey']);const _0x1d092b={'method':'GET','headers':{'Content-Type':'application/json',..._0x2576fb&&{'Authorization':'Bearer\x20'+_0x2576fb}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x519d2f});const _0x25acfa=await fetch(_0x519d2f,_0x1d092b);if(!_0x25acfa['ok'])throw new Error('HTTP\x20'+_0x25acfa['status']+':\x20'+_0x25acfa['statusText']);const _0x4e11a7=await _0x25acfa['json']();return _0x4e11a7;}['_generateBenchmarkSummary'](_0x45e1d6){const _0x399acf=a0_0x1015cd,_0x521200=_0x45e1d6['models']||[];return{'totalModels':_0x521200[_0x399acf(0x1a5)],'taskCategories':Object['keys'](_0x45e1d6['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x521200,_0x399acf(0x1b1)),'bestForAnalysis':this[_0x399acf(0x1a0)](_0x521200,'analysis'),'bestForQuickTasks':this['_getBestModelForTask'](_0x521200,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x521200,_0x399acf(0x1a9)),'fastestModel':this[_0x399acf(0x1a4)](_0x521200),'mostCostEfficient':this['_getMostCostEfficient'](_0x521200)};}['_getBestModelForTask'](_0x16d476,_0xef6174){const _0x4b1475=a0_0x1015cd;return _0x16d476[_0x4b1475(0x196)](_0x596a7d=>_0x596a7d['tasks']&&_0x596a7d['tasks'][_0xef6174])[_0x4b1475(0x18c)]((_0x218f14,_0x233162)=>(_0x233162['tasks'][_0xef6174]['score']||0x0)-(_0x218f14['tasks'][_0xef6174]['score']||0x0))[0x0]?.[_0x4b1475(0x197)]||_0x4b1475(0x183);}['_getFastestModel'](_0x20ba8c){const _0xd510a2=a0_0x1015cd,_0x4ccf29={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x20ba8c['sort']((_0x24fa3f,_0xbdfeea)=>{const _0x7b0612=a0_0x471c,_0x116683=Math['max'](...Object[_0x7b0612(0x188)](_0x24fa3f[_0x7b0612(0x19f)]||{})['map'](_0x56fc20=>_0x4ccf29[_0x56fc20[_0x7b0612(0x1b2)]]||0x0)),_0x259b8c=Math['max'](...Object['values'](_0xbdfeea['tasks']||{})['map'](_0xf1031c=>_0x4ccf29[_0xf1031c[_0x7b0612(0x1b2)]]||0x0));return _0x259b8c-_0x116683;})[0x0]?.[_0xd510a2(0x197)]||_0xd510a2(0x183);}[a0_0x1015cd(0x192)](_0x5cbf53){const _0x3c85b7=a0_0x1015cd,_0x235131={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x5cbf53['sort']((_0x219589,_0x343f73)=>{const _0x4a4e0a=a0_0x471c,_0x5a84ab=Math[_0x4a4e0a(0x18a)](...Object['values'](_0x219589['tasks']||{})[_0x4a4e0a(0x190)](_0x15f7c4=>_0x235131[_0x15f7c4['cost']]||0x0)),_0xcfe481=Math['max'](...Object['values'](_0x343f73[_0x4a4e0a(0x19f)]||{})['map'](_0x449170=>_0x235131[_0x449170['cost']]||0x0));return _0xcfe481-_0x5a84ab;})[0x0]?.[_0x3c85b7(0x197)]||_0x3c85b7(0x183);}['_scheduleRefresh'](){const _0x7155a1=a0_0x1015cd;setInterval(async()=>{const _0x5290b7=a0_0x471c;this[_0x5290b7(0x1b4)]()&&(this[_0x5290b7(0x19d)][_0x5290b7(0x17d)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x7155a1(0x18b)]);}async[a0_0x1015cd(0x199)](){const _0x363a0a=a0_0x1015cd;this[_0x363a0a(0x19d)][_0x363a0a(0x189)](_0x363a0a(0x182)),await this['loadBenchmarks']();}['getStatus'](){const _0x503a7b=a0_0x1015cd;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x503a7b(0x195)]()||null,'source':this['benchmarks']?.[_0x503a7b(0x17f)]||'unknown','modelCount':this['benchmarks']?.[_0x503a7b(0x1a1)]?.['length']||0x0,'isLoading':this['isLoading'],'needsRefresh':this[_0x503a7b(0x1b4)]()};}}function a0_0x16ef(){const _0x578dfd=['nJzqAfLjwgi','DgfZA3m','x2DLDejLC3rnB2rLBezVCLrHC2S','Bw9KzwXZ','BwvZC2fNzq','z2v0qMvUy2HTyxjRCW','x2DLDezHC3rLC3rnB2rLBa','BgvUz3rO','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','mJDnAMn6vKG','x3nJAgvKDwXLuMvMCMvZAa','y3jLyxrPDMu','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','mteYDMHMyKHO','otq2n0DTvLbUwq','mZi5mMTbyKz6zG','odi4mZfMB2vPzKi','mtmZntCXoxfMsev2za','y29KAw5N','C3bLzwq','Bg9HzejLBMnOBwfYA3m','BMvLzhnszwzYzxnO','zgvIDwC','yMvUy2HTyxjRCW','C291CMnL','yxP1CMvcywnRzw5KvxjS','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','Dw5RBM93BG','nwv0uhjICG','y29UzMLN','z2v0vgLTzq','BM93','DMfSDwvZ','Aw5MBW','Bwf4','CMvMCMvZAeLUDgvYDMfS','C29YDa','zxjYB3i','BgfZDfvWzgf0zwq','yxbPs2v5','BwfW','ndi0mtK0nMvPy2vSqG','x2DLDe1VC3rdB3n0rwzMAwnPzw50','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','mtK1nJm5mg5bC2rTDW','Dg9ju09tDhjPBMC','zMLSDgvY','BMfTzq','mJa3vuvbs3v3','zM9Yy2vszwzYzxnO','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','AxnmB2fKAw5N','mZy3mZaYmgDJt1DcBa','Bg9Nz2vY'];a0_0x16ef=function(){return _0x578dfd;};return a0_0x16ef();}export default BenchmarkService;
1
+ const a0_0x24ae0e=a0_0x3c07;(function(_0x246eb6,_0x4e6a4b){const _0x1e9a2f=a0_0x3c07,_0x336e47=_0x246eb6();while(!![]){try{const _0x54742c=parseInt(_0x1e9a2f(0x16b))/0x1*(-parseInt(_0x1e9a2f(0x176))/0x2)+parseInt(_0x1e9a2f(0x16c))/0x3*(parseInt(_0x1e9a2f(0x16a))/0x4)+parseInt(_0x1e9a2f(0x160))/0x5*(parseInt(_0x1e9a2f(0x14b))/0x6)+-parseInt(_0x1e9a2f(0x15d))/0x7+-parseInt(_0x1e9a2f(0x151))/0x8+-parseInt(_0x1e9a2f(0x154))/0x9+parseInt(_0x1e9a2f(0x16d))/0xa;if(_0x54742c===_0x4e6a4b)break;else _0x336e47['push'](_0x336e47['shift']());}catch(_0x2a61e2){_0x336e47['push'](_0x336e47['shift']());}}}(a0_0x67e8,0x975de));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x2f245c,_0x43c7ce){const _0x59e066=a0_0x3c07;this['config']=_0x2f245c,this['logger']=_0x43c7ce,this[_0x59e066(0x168)]=null,this[_0x59e066(0x169)]=null,this[_0x59e066(0x158)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this[_0x59e066(0x142)]=MODEL_ROUTER_CONFIG[_0x59e066(0x166)];}async['initialize'](){const _0x22c382=a0_0x3c07;try{await this[_0x22c382(0x171)](),this[_0x22c382(0x163)](),this['logger']['info']('Benchmark\x20service\x20initialized');}catch(_0x37e541){this[_0x22c382(0x14e)]['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x37e541['message']}),this[_0x22c382(0x168)]=null;}}[a0_0x24ae0e(0x146)](){const _0x2caaf7=a0_0x24ae0e;if(!this[_0x2caaf7(0x168)])return this['logger'][_0x2caaf7(0x15c)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x2caaf7(0x168)];}async['loadBenchmarks'](){const _0x1a7639=a0_0x24ae0e;if(this['isLoading']){this[_0x1a7639(0x14e)][_0x1a7639(0x153)]('Benchmark\x20loading\x20already\x20in\x20progress');return;}this['isLoading']=!![];try{const _0x3718c6=await this['_fetchFromAzureBackend']();if(_0x3718c6)this['benchmarks']=_0x3718c6,this['lastUpdated']=new Date(),this[_0x1a7639(0x14e)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x3718c6['models']?.[_0x1a7639(0x159)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x5df557){this[_0x1a7639(0x14e)]['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x5df557[_0x1a7639(0x167)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this[_0x1a7639(0x158)]=![];}}['getBenchmarkTable'](){const _0x41e97c=a0_0x24ae0e,_0x2bb1a0=this[_0x41e97c(0x146)]();return{'lastUpdated':this[_0x41e97c(0x169)]?.[_0x41e97c(0x162)]()||'unknown','models':_0x2bb1a0['models']||[],'tasks':_0x2bb1a0[_0x41e97c(0x148)]||{},'summary':this[_0x41e97c(0x177)](_0x2bb1a0)};}['needsRefresh'](){const _0x7eb59e=a0_0x24ae0e;if(!this['lastUpdated'])return!![];const _0x19a957=Date[_0x7eb59e(0x144)]()-this[_0x7eb59e(0x169)][_0x7eb59e(0x155)]();return _0x19a957>this[_0x7eb59e(0x142)];}async[a0_0x24ae0e(0x14f)](){const _0x3fca96=a0_0x24ae0e,_0x4ace61=this[_0x3fca96(0x147)]+_0x3fca96(0x15a);let _0x5c1b83=null;this[_0x3fca96(0x150)][_0x3fca96(0x14c)]&&(_0x5c1b83=this[_0x3fca96(0x150)][_0x3fca96(0x14c)]);const _0x507f5e={'method':'GET','headers':{'Content-Type':'application/json',..._0x5c1b83&&{'Authorization':'Bearer\x20'+_0x5c1b83}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x4ace61});const _0x35916e=await fetch(_0x4ace61,_0x507f5e);if(!_0x35916e['ok'])throw new Error(_0x3fca96(0x170)+_0x35916e['status']+':\x20'+_0x35916e[_0x3fca96(0x14a)]);const _0x3397d2=await _0x35916e[_0x3fca96(0x15b)]();return _0x3397d2;}[a0_0x24ae0e(0x177)](_0x2a51ff){const _0x59ffce=a0_0x24ae0e,_0xfade9d=_0x2a51ff[_0x59ffce(0x15f)]||[];return{'totalModels':_0xfade9d[_0x59ffce(0x159)],'taskCategories':Object['keys'](_0x2a51ff[_0x59ffce(0x148)]||{}),'bestForCoding':this[_0x59ffce(0x174)](_0xfade9d,_0x59ffce(0x175)),'bestForAnalysis':this['_getBestModelForTask'](_0xfade9d,_0x59ffce(0x165)),'bestForQuickTasks':this['_getBestModelForTask'](_0xfade9d,_0x59ffce(0x141)),'bestForCreative':this[_0x59ffce(0x174)](_0xfade9d,_0x59ffce(0x161)),'fastestModel':this[_0x59ffce(0x157)](_0xfade9d),'mostCostEfficient':this['_getMostCostEfficient'](_0xfade9d)};}['_getBestModelForTask'](_0x3cde1f,_0x2992dc){const _0x14f44b=a0_0x24ae0e;return _0x3cde1f[_0x14f44b(0x14d)](_0x568ac2=>_0x568ac2['tasks']&&_0x568ac2['tasks'][_0x2992dc])['sort']((_0x5a3b5e,_0x4fa569)=>(_0x4fa569[_0x14f44b(0x148)][_0x2992dc][_0x14f44b(0x143)]||0x0)-(_0x5a3b5e['tasks'][_0x2992dc]['score']||0x0))[0x0]?.[_0x14f44b(0x145)]||_0x14f44b(0x152);}['_getFastestModel'](_0x138801){const _0x154a76=a0_0x24ae0e,_0x27d6fa={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x138801['sort']((_0x36af2d,_0x22e3fc)=>{const _0x1314a2=a0_0x3c07,_0x4589a3=Math[_0x1314a2(0x15e)](...Object['values'](_0x36af2d[_0x1314a2(0x148)]||{})[_0x1314a2(0x16f)](_0x2eceec=>_0x27d6fa[_0x2eceec[_0x1314a2(0x149)]]||0x0)),_0x399339=Math[_0x1314a2(0x15e)](...Object[_0x1314a2(0x164)](_0x22e3fc[_0x1314a2(0x148)]||{})[_0x1314a2(0x16f)](_0x24d230=>_0x27d6fa[_0x24d230['speed']]||0x0));return _0x399339-_0x4589a3;})[0x0]?.[_0x154a76(0x145)]||_0x154a76(0x152);}[a0_0x24ae0e(0x172)](_0x57943e){const _0x2b1304=a0_0x24ae0e,_0x22655a={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x57943e['sort']((_0x38936f,_0x115e31)=>{const _0x3520aa=a0_0x3c07,_0xb12857=Math[_0x3520aa(0x15e)](...Object[_0x3520aa(0x164)](_0x38936f[_0x3520aa(0x148)]||{})['map'](_0x1e54eb=>_0x22655a[_0x1e54eb[_0x3520aa(0x173)]]||0x0)),_0x53f5b1=Math['max'](...Object['values'](_0x115e31[_0x3520aa(0x148)]||{})['map'](_0xe37166=>_0x22655a[_0xe37166['cost']]||0x0));return _0x53f5b1-_0xb12857;})[0x0]?.['name']||_0x2b1304(0x152);}['_scheduleRefresh'](){setInterval(async()=>{const _0x338ab5=a0_0x3c07;this['needsRefresh']()&&(this['logger'][_0x338ab5(0x153)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this['refreshInterval']);}async[a0_0x24ae0e(0x156)](){const _0x10f18a=a0_0x24ae0e;this[_0x10f18a(0x14e)]['info'](_0x10f18a(0x16e)),await this[_0x10f18a(0x171)]();}['getStatus'](){const _0x4c073d=a0_0x24ae0e;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x4c073d(0x162)]()||null,'source':this[_0x4c073d(0x168)]?.['source']||_0x4c073d(0x152),'modelCount':this[_0x4c073d(0x168)]?.[_0x4c073d(0x15f)]?.['length']||0x0,'isLoading':this[_0x4c073d(0x158)],'needsRefresh':this['needsRefresh']()};}}function a0_0x3c07(_0xfd4f6a,_0x54bffe){_0xfd4f6a=_0xfd4f6a-0x141;const _0x67e8e4=a0_0x67e8();let _0x3c0741=_0x67e8e4[_0xfd4f6a];if(a0_0x3c07['jvkLXK']===undefined){var _0x5122e5=function(_0x1ccb0d){const _0x20d898='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f245c='',_0x43c7ce='';for(let _0x37e541=0x0,_0x3718c6,_0x5df557,_0x2bb1a0=0x0;_0x5df557=_0x1ccb0d['charAt'](_0x2bb1a0++);~_0x5df557&&(_0x3718c6=_0x37e541%0x4?_0x3718c6*0x40+_0x5df557:_0x5df557,_0x37e541++%0x4)?_0x2f245c+=String['fromCharCode'](0xff&_0x3718c6>>(-0x2*_0x37e541&0x6)):0x0){_0x5df557=_0x20d898['indexOf'](_0x5df557);}for(let _0x19a957=0x0,_0x4ace61=_0x2f245c['length'];_0x19a957<_0x4ace61;_0x19a957++){_0x43c7ce+='%'+('00'+_0x2f245c['charCodeAt'](_0x19a957)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c7ce);};a0_0x3c07['cQFRnH']=_0x5122e5,a0_0x3c07['aIigre']={},a0_0x3c07['jvkLXK']=!![];}const _0x2b1127=_0x67e8e4[0x0],_0x110cee=_0xfd4f6a+_0x2b1127,_0x2b3d68=a0_0x3c07['aIigre'][_0x110cee];return!_0x2b3d68?(_0x3c0741=a0_0x3c07['cQFRnH'](_0x3c0741),a0_0x3c07['aIigre'][_0x110cee]=_0x3c0741):_0x3c0741=_0x2b3d68,_0x3c0741;}function a0_0x67e8(){const _0x1652c3=['yw5HBhLZAxm','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BwvZC2fNzq','yMvUy2HTyxjRCW','BgfZDfvWzgf0zwq','nfjeEw9QEa','mti2mtq1reT5D29v','mtK0mtaWnKjcAgnWvG','mtCWmZi0mJbMzMPdyuq','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','BwfW','sfruuca','Bg9HzejLBMnOBwfYA3m','x2DLDe1VC3rdB3n0rwzMAwnPzw50','y29ZDa','x2DLDejLC3rnB2rLBezVCLrHC2S','y29KAw5N','mKf6AhDyCW','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','CxvPy2STDgfZA3m','CMvMCMvZAeLUDgvYDMfS','C2nVCMu','BM93','BMfTzq','z2v0qMvUy2HTyxjRCW','yxP1CMvcywnRzw5KvxjS','DgfZA3m','C3bLzwq','C3rHDhvZvgv4Da','ndiZmta4nKvyAgnQzq','yxbPs2v5','zMLSDgvY','Bg9Nz2vY','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','y29UzMLN','mJq5mdKWnennDMjfrG','Dw5RBM93BG','zgvIDwC','mta3nJK3nJbrwK9lvM8','z2v0vgLTzq','zM9Yy2vszwzYzxnO','x2DLDezHC3rLC3rnB2rLBa','AxnmB2fKAw5N','BgvUz3rO','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','ANnVBG','zxjYB3i','ntyWodK1m3HAt3nwwq','Bwf4','Bw9KzwXZ','nvHktMTmwq','y3jLyxrPDMu','Dg9ju09tDhjPBMC','x3nJAgvKDwXLuMvMCMvZAa','DMfSDwvZ'];a0_0x67e8=function(){return _0x1652c3;};return a0_0x67e8();}export default BenchmarkService;
@@ -1 +1 @@
1
- function a0_0x15a2(_0x1b4fb0,_0x21d86f){_0x1b4fb0=_0x1b4fb0-0xfe;const _0x43c493=a0_0x43c4();let _0x15a2b6=_0x43c493[_0x1b4fb0];if(a0_0x15a2['dlXCqV']===undefined){var _0x52189e=function(_0xdfb201){const _0x218bc0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f46d5='',_0x1b33f8='';for(let _0x18e8ed=0x0,_0x2b47d4,_0x5f3230,_0x7c71e0=0x0;_0x5f3230=_0xdfb201['charAt'](_0x7c71e0++);~_0x5f3230&&(_0x2b47d4=_0x18e8ed%0x4?_0x2b47d4*0x40+_0x5f3230:_0x5f3230,_0x18e8ed++%0x4)?_0x3f46d5+=String['fromCharCode'](0xff&_0x2b47d4>>(-0x2*_0x18e8ed&0x6)):0x0){_0x5f3230=_0x218bc0['indexOf'](_0x5f3230);}for(let _0x5d657b=0x0,_0x3d617a=_0x3f46d5['length'];_0x5d657b<_0x3d617a;_0x5d657b++){_0x1b33f8+='%'+('00'+_0x3f46d5['charCodeAt'](_0x5d657b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b33f8);};a0_0x15a2['wKrQKW']=_0x52189e,a0_0x15a2['zfJWOC']={},a0_0x15a2['dlXCqV']=!![];}const _0x15ae97=_0x43c493[0x0],_0x25978f=_0x1b4fb0+_0x15ae97,_0x159967=a0_0x15a2['zfJWOC'][_0x25978f];return!_0x159967?(_0x15a2b6=a0_0x15a2['wKrQKW'](_0x15a2b6),a0_0x15a2['zfJWOC'][_0x25978f]=_0x15a2b6):_0x15a2b6=_0x159967,_0x15a2b6;}const a0_0x3e6de1=a0_0x15a2;(function(_0x40ad9b,_0x5691a9){const _0x3c7cb4=a0_0x15a2,_0x42d128=_0x40ad9b();while(!![]){try{const _0x35ed40=-parseInt(_0x3c7cb4(0x12b))/0x1+-parseInt(_0x3c7cb4(0x154))/0x2+parseInt(_0x3c7cb4(0x141))/0x3*(-parseInt(_0x3c7cb4(0x119))/0x4)+-parseInt(_0x3c7cb4(0x105))/0x5+parseInt(_0x3c7cb4(0x11f))/0x6+-parseInt(_0x3c7cb4(0x115))/0x7+parseInt(_0x3c7cb4(0x13a))/0x8;if(_0x35ed40===_0x5691a9)break;else _0x42d128['push'](_0x42d128['shift']());}catch(_0x3092af){_0x42d128['push'](_0x42d128['shift']());}}}(a0_0x43c4,0xa7ea5));function a0_0x43c4(){const _0xabd31c=['C2vUzej1zgDLDefSzxj0','z2v0uMvTywLUAw5NqNvKz2v0','Aw5WDxq','z2v0rNvSBfLLyxi','BM93','v0vfs0Xz','DgHYzxnOB2XKx3jLywnOzwq','Aw5MBW','z2v0tw9UDgHlzxK','Dg9Rzw5Z','vg9Rzw5Z','CM91BMq','C3bSAxq','yNvKz2v0qwXLCNq','mZa4mZmZovfQD2fbua','zw50CMLLCW','z2v0','yNvKz2v0x2v4y2vLzgvK','mJa0nJa0y0jMDfPg','z2v0rgf5s2v5','AxnxAxrOAw5cDwrNzxq','DxbKyxrLvxnHz2vfBNrYEq','z2v0v2vLA051BwjLCG','D2vLA2X5','nJG4ntq4mhn1tfDvAq','y3jLyxrLrw1WDhLvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','Aw5PDgLHBgL6zvvZywDLrw50CNK','zxHWB3j0vxnHz2veyxrH','DxnHz2u','zM9YrwfJAa','y2HLy2TcDwrNzxrmAw1PDhm','y29TCgXLDgLVBL90B2TLBNm','y2HLy2TuAhjLC2HVBgrbBgvYDhm','BwvZC2fNzq','mta0mtuZnvbXD2rVua','rgf0zq','vxnHz2uGDhjHy2TLza','z2v0vxnHz2u','z2v0rgf0zq','Dg9Rzw5ZqNLeyxK','C2vUzfrOCMvZAg9SzefSzxj0','Dg90ywW','CgfKu3rHCNq','Dg9ju09tDhjPBMC','C2f2zvvZywDLrgf0yq','q29ZDa','Dw5ZAgLMDa','Bg9Nz2vY','y29ZDa','mJi0nZC2mdHnANLRAfm','zgfPBhK','DhjHy2TvC2fNzq','qNvKz2v0igXPBwL0igv4y2vLzgvK','C2v0','y2HLy2TuAhjLC2HVBgq','ugvYAw9K','oxztuvH1yG','yNLnB2rLBa','vxnHz2uGzgf0ysbZyxzLza','Dg90ywXFDg9Rzw5Z','tu9oveHmwq','z2v0v2vLA0TLEq','C3rYAw5NAwz5','veHsrvnit0XeuW','Bw9UDgHSEq','C2v0qNvKz2v0CW','C2v0DxbqzxjPB2rPy1nHDMu','zw1PDa','y29UDMvYDfrVq1nw','zgfPBhLbDMvYywDLCW','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','ywXLCNrZ','yNvKz2v0CW','y29ZDej5rgf5','BgfZDefSzxj0vgLTzxm','mJm2nJa3mKzICvrkrG','C2v0rgf0zq','Bw9KzwXjza','Dw5KzwzPBMvK','CMvXDwvZDhm','ywDLBNrjza','zxjYB3i','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','C29YDa','ANnVBG','D2fYBG','mJi1ndK5nvfNA09HDa','yNLbz2vUDa'];a0_0x43c4=function(){return _0xabd31c;};return a0_0x43c4();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x3f46d5,_0x1b33f8){const _0x2b9554=a0_0x15a2;this['config']=_0x3f46d5||{},this[_0x2b9554(0x138)]=_0x1b33f8,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x2b9554(0x151)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x2b9554(0x10c)],'monthly':BUDGET_LIMITS[_0x2b9554(0x145)]},this[_0x2b9554(0x150)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x2b9554(0x148)],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x2b9554(0x14b)]();}[a0_0x3e6de1(0x13c)](_0x18e8ed,_0x2b47d4,_0x5f3230){const _0x150699=a0_0x3e6de1;try{const _0x7c71e0=this['calculateCost'](_0x2b47d4,_0x5f3230),_0x5d657b=new Date(),_0x3d617a=this['getDayKey'](_0x5d657b),_0x37f865=this[_0x150699(0x146)](_0x5d657b),_0x15730e=this['getMonthKey'](_0x5d657b);this[_0x150699(0x123)](this[_0x150699(0x125)]['daily'],_0x3d617a),this[_0x150699(0x123)](this[_0x150699(0x125)]['weekly'],_0x37f865),this[_0x150699(0x123)](this['usage']['monthly'],_0x15730e);const _0x40c2fc={'agentId':_0x18e8ed,'modelId':_0x2b47d4,'tokens':_0x5f3230['total_tokens'],'cost':_0x7c71e0,'timestamp':_0x5d657b[_0x150699(0x134)]()};return this['updateUsageEntry'](this[_0x150699(0x125)]['daily'][_0x150699(0x117)](_0x3d617a),_0x40c2fc),this[_0x150699(0x11c)](this['usage']['weekly']['get'](_0x37f865),_0x40c2fc),this['updateUsageEntry'](this['usage'][_0x150699(0x149)]['get'](_0x15730e),_0x40c2fc),this['usage'][_0x150699(0x132)][_0x150699(0x110)]+=_0x5f3230[_0x150699(0x144)],this[_0x150699(0x125)][_0x150699(0x132)]['cost']+=_0x7c71e0,this[_0x150699(0x125)]['total']['requests']+=0x1,this[_0x150699(0x127)](_0x3d617a,_0x37f865,_0x15730e),this[_0x150699(0x138)]['info'](_0x150699(0x12d),{'agentId':_0x18e8ed,'modelId':_0x2b47d4,'tokens':_0x5f3230[_0x150699(0x144)],'cost':_0x7c71e0,'totalCost':this[_0x150699(0x125)]['total']['cost']}),{'cost':_0x7c71e0,'totalCost':this['usage']['total']['cost'],'totalTokens':this[_0x150699(0x125)][_0x150699(0x132)]['tokens'],'dailyUsage':this['usage'][_0x150699(0x13b)]['get'](_0x3d617a),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x1185fc){this[_0x150699(0x138)][_0x150699(0x100)]('Failed\x20to\x20track\x20usage',{'error':_0x1185fc[_0x150699(0x12a)],'agentId':_0x18e8ed,'modelId':_0x2b47d4});throw _0x1185fc;}}['calculateCost'](_0x173e67,_0x554feb){const _0x46b8a9=a0_0x3e6de1,_0x274a5e=COST_PER_TOKEN[_0x173e67];if(!_0x274a5e)return this[_0x46b8a9(0x138)]['warn'](_0x46b8a9(0x14f),{'modelId':_0x173e67}),0x0;const _0x4e45c5=(_0x554feb['prompt_tokens']||0x0)*_0x274a5e[_0x46b8a9(0x109)],_0x21c94a=(_0x554feb[_0x46b8a9(0x128)]||0x0)*_0x274a5e['output'];return _0x4e45c5+_0x21c94a;}['getUsage'](_0x3e1214='daily',_0x435de1=new Date()){const _0x4beabc=a0_0x3e6de1;switch(_0x3e1214){case _0x4beabc(0x13b):return this['usage']['daily'][_0x4beabc(0x117)](this['getDayKey'](_0x435de1))||this['createEmptyUsage']();case'weekly':return this['usage'][_0x4beabc(0x11e)]['get'](this['getWeekKey'](_0x435de1))||this['createEmptyUsage']();case _0x4beabc(0x149):return this['usage']['monthly']['get'](this['getMonthKey'](_0x435de1))||this['createEmptyUsage']();case'total':return{...this[_0x4beabc(0x125)][_0x4beabc(0x132)]};default:throw new Error(_0x4beabc(0x121)+_0x3e1214);}}['getAgentUsage'](_0x3a4a6c,_0x46cc76='daily'){const _0x38a65a=a0_0x3e6de1,_0x1a0da8=this[_0x38a65a(0x12e)](_0x46cc76);return _0x1a0da8['byAgent']?.[_0x3a4a6c]||this['createEmptyUsage']();}['getModelUsage'](_0x210860,_0x5b42ca='daily'){const _0x417d30=this['getUsage'](_0x5b42ca);return _0x417d30['byModel']?.[_0x210860]||this['createEmptyUsage']();}[a0_0x3e6de1(0x14a)](_0x5b4472){const _0x20a5dc=a0_0x3e6de1;if(_0x5b4472[_0x20a5dc(0x13b)]!==undefined)this[_0x20a5dc(0x151)][_0x20a5dc(0x13b)]=_0x5b4472['daily'];if(_0x5b4472['weekly']!==undefined)this[_0x20a5dc(0x151)]['weekly']=_0x5b4472[_0x20a5dc(0x11e)];if(_0x5b4472['monthly']!==undefined)this[_0x20a5dc(0x151)][_0x20a5dc(0x149)]=_0x5b4472[_0x20a5dc(0x149)];this[_0x20a5dc(0x138)][_0x20a5dc(0x10e)]('Budget\x20limits\x20updated',this['budgets']),this['saveUsageData']();}[a0_0x3e6de1(0x108)](){const _0x62daa9=a0_0x3e6de1,_0x71c8f4=new Date(),_0x57311c=this['getUsage']('daily',_0x71c8f4),_0x93200c=this['getUsage'](_0x62daa9(0x11e),_0x71c8f4),_0x1e8297=this['getUsage'](_0x62daa9(0x149),_0x71c8f4);return{'daily':Math['max'](0x0,this['budgets'][_0x62daa9(0x13b)]-_0x57311c[_0x62daa9(0x139)]),'weekly':Math['max'](0x0,this['budgets']['weekly']-_0x93200c['cost']),'monthly':Math['max'](0x0,this['budgets'][_0x62daa9(0x149)]-_0x1e8297['cost'])};}[a0_0x3e6de1(0x11b)](_0x538150=a0_0x3e6de1(0x13b)){const _0x36f717=a0_0x3e6de1,_0xb6ef2=this[_0x36f717(0x12e)](_0x538150),_0x497d90=this['budgets'][_0x538150];return _0xb6ef2['cost']<=_0x497d90;}['getUsageTrends'](_0x240a38=0x1e){const _0x57bc51=a0_0x3e6de1,_0xf2a934={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x382600=new Date();let _0x68dbb6=0x0,_0x2a3faa=0x0,_0x2a7450=0x0;const _0x524ac7=new Map(),_0x187a15=new Map();for(let _0x361c59=0x0;_0x361c59<_0x240a38;_0x361c59++){const _0x11a4ca=new Date(_0x382600);_0x11a4ca[_0x57bc51(0x155)](_0x11a4ca[_0x57bc51(0x12f)]()-_0x361c59);const _0x329f85=this[_0x57bc51(0x11a)](_0x11a4ca),_0x51ec72=this['usage']['daily'][_0x57bc51(0x117)](_0x329f85);_0x51ec72?(_0x68dbb6+=_0x51ec72['cost'],_0x2a3faa+=_0x51ec72[_0x57bc51(0x110)],_0x2a7450+=_0x51ec72['requests'],_0xf2a934[_0x57bc51(0x152)]['unshift']({'date':_0x329f85,'cost':_0x51ec72['cost']}),_0xf2a934['tokensByDay']['unshift']({'date':_0x329f85,'tokens':_0x51ec72[_0x57bc51(0x110)]}),Object[_0x57bc51(0x116)](_0x51ec72[_0x57bc51(0x106)]||{})[_0x57bc51(0x126)](([_0x38e562,_0x27d5e2])=>{const _0x413034=_0x57bc51;!_0x524ac7['has'](_0x38e562)&&_0x524ac7[_0x413034(0x13e)](_0x38e562,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0xf8e8f1=_0x524ac7['get'](_0x38e562);_0xf8e8f1[_0x413034(0x139)]+=_0x27d5e2['cost'],_0xf8e8f1['tokens']+=_0x27d5e2['tokens'],_0xf8e8f1['requests']+=_0x27d5e2['requests'];}),Object[_0x57bc51(0x116)](_0x51ec72[_0x57bc51(0x142)]||{})['forEach'](([_0x10e729,_0x4902ad])=>{const _0x4d81e5=_0x57bc51;!_0x187a15['has'](_0x10e729)&&_0x187a15['set'](_0x10e729,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x636a07=_0x187a15[_0x4d81e5(0x117)](_0x10e729);_0x636a07['cost']+=_0x4902ad[_0x4d81e5(0x139)],_0x636a07['tokens']+=_0x4902ad[_0x4d81e5(0x110)],_0x636a07['requests']+=_0x4902ad[_0x4d81e5(0xfe)];})):(_0xf2a934['costByDay']['unshift']({'date':_0x329f85,'cost':0x0}),_0xf2a934[_0x57bc51(0x130)][_0x57bc51(0x137)]({'date':_0x329f85,'tokens':0x0}));}return _0xf2a934[_0x57bc51(0x14e)][_0x57bc51(0x139)]=_0x68dbb6/_0x240a38,_0xf2a934[_0x57bc51(0x14e)][_0x57bc51(0x110)]=_0x2a3faa/_0x240a38,_0xf2a934[_0x57bc51(0x14e)]['requests']=_0x2a7450/_0x240a38,_0xf2a934['topAgents']=Array['from'](_0x524ac7[_0x57bc51(0x116)]())['map'](([_0x16aaf9,_0x45fa51])=>({'id':_0x16aaf9,..._0x45fa51}))['sort']((_0x27c196,_0x20b356)=>_0x20b356['cost']-_0x27c196[_0x57bc51(0x139)])['slice'](0x0,0xa),_0xf2a934['topModels']=Array['from'](_0x187a15['entries']())['map'](([_0x4ece05,_0x2a60b0])=>({'id':_0x4ece05,..._0x2a60b0}))[_0x57bc51(0x102)]((_0x6388d0,_0x2c64d1)=>_0x2c64d1[_0x57bc51(0x139)]-_0x6388d0['cost'])['slice'](0x0,0xa),_0xf2a934;}[a0_0x3e6de1(0x124)](_0x3c3faa=a0_0x3e6de1(0x103),_0x41d1f2=null,_0x14da64=null){const _0x8dcc0c=a0_0x3e6de1,_0x161857={'budgets':this[_0x8dcc0c(0x151)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x178974=(_0x482462,_0x18dd98)=>{const _0xf0e2ee=_0x8dcc0c,_0x4760c6={};return _0x482462[_0xf0e2ee(0x126)]((_0x38a08c,_0x4a09f6)=>{const _0x3af333=_0x18dd98(_0x4a09f6);(!_0x41d1f2||_0x3af333>=_0x41d1f2)&&(!_0x14da64||_0x3af333<=_0x14da64)&&(_0x4760c6[_0x4a09f6]=_0x38a08c);}),_0x4760c6;};_0x41d1f2||_0x14da64?(_0x161857[_0x8dcc0c(0x13b)]=_0x178974(this[_0x8dcc0c(0x125)]['daily'],_0x54300e=>new Date(_0x54300e)),_0x161857[_0x8dcc0c(0x11e)]=_0x178974(this['usage'][_0x8dcc0c(0x11e)],_0x57983b=>new Date(_0x57983b)),_0x161857[_0x8dcc0c(0x149)]=_0x178974(this[_0x8dcc0c(0x125)]['monthly'],_0x3d199d=>new Date(_0x3d199d+'-01'))):(this['usage'][_0x8dcc0c(0x13b)][_0x8dcc0c(0x126)]((_0x52fea4,_0x4d3acd)=>_0x161857[_0x8dcc0c(0x13b)][_0x4d3acd]=_0x52fea4),this[_0x8dcc0c(0x125)][_0x8dcc0c(0x11e)][_0x8dcc0c(0x126)]((_0x2dff70,_0x118b87)=>_0x161857[_0x8dcc0c(0x11e)][_0x118b87]=_0x2dff70),this['usage'][_0x8dcc0c(0x149)]['forEach']((_0x20685a,_0x4ded4b)=>_0x161857['monthly'][_0x4ded4b]=_0x20685a));if(_0x3c3faa==='csv')return this[_0x8dcc0c(0x14d)](_0x161857);return JSON[_0x8dcc0c(0x147)](_0x161857,null,0x2);}[a0_0x3e6de1(0x123)](_0x5bd921,_0x15f4db){const _0x22a12b=a0_0x3e6de1;!_0x5bd921['has'](_0x15f4db)&&_0x5bd921[_0x22a12b(0x13e)](_0x15f4db,this['createEmptyUsage']());}[a0_0x3e6de1(0x120)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x2e0dc6,_0x32aad5){const _0x49354d=a0_0x3e6de1;_0x2e0dc6[_0x49354d(0x139)]+=_0x32aad5[_0x49354d(0x139)],_0x2e0dc6[_0x49354d(0x110)]+=_0x32aad5['tokens'],_0x2e0dc6['requests']+=0x1,!_0x2e0dc6['byAgent'][_0x32aad5['agentId']]&&(_0x2e0dc6['byAgent'][_0x32aad5[_0x49354d(0xff)]]=this[_0x49354d(0x120)]()),_0x2e0dc6['byAgent'][_0x32aad5[_0x49354d(0xff)]]['cost']+=_0x32aad5['cost'],_0x2e0dc6[_0x49354d(0x106)][_0x32aad5[_0x49354d(0xff)]][_0x49354d(0x110)]+=_0x32aad5['tokens'],_0x2e0dc6[_0x49354d(0x106)][_0x32aad5['agentId']]['requests']+=0x1,!_0x2e0dc6['byModel'][_0x32aad5[_0x49354d(0x156)]]&&(_0x2e0dc6['byModel'][_0x32aad5['modelId']]=this['createEmptyUsage']()),_0x2e0dc6[_0x49354d(0x142)][_0x32aad5['modelId']]['cost']+=_0x32aad5['cost'],_0x2e0dc6['byModel'][_0x32aad5[_0x49354d(0x156)]]['tokens']+=_0x32aad5['tokens'],_0x2e0dc6['byModel'][_0x32aad5[_0x49354d(0x156)]][_0x49354d(0xfe)]+=0x1;}[a0_0x3e6de1(0x127)](_0x23e5e7,_0x38f0f2,_0x42e20f){const _0x3dcc03=a0_0x3e6de1,_0x356b6e=this[_0x3dcc03(0x125)][_0x3dcc03(0x13b)][_0x3dcc03(0x117)](_0x23e5e7),_0x49375e=this[_0x3dcc03(0x125)][_0x3dcc03(0x11e)]['get'](_0x38f0f2),_0x400a4a=this['usage'][_0x3dcc03(0x149)][_0x3dcc03(0x117)](_0x42e20f);_0x356b6e[_0x3dcc03(0x139)]>this['budgets']['daily']&&this['sendBudgetAlert']('daily',_0x356b6e['cost'],this[_0x3dcc03(0x151)]['daily']),_0x49375e[_0x3dcc03(0x139)]>this[_0x3dcc03(0x151)][_0x3dcc03(0x11e)]&&this[_0x3dcc03(0x107)]('weekly',_0x49375e[_0x3dcc03(0x139)],this['budgets']['weekly']),_0x400a4a[_0x3dcc03(0x139)]>this['budgets'][_0x3dcc03(0x149)]&&this['sendBudgetAlert'](_0x3dcc03(0x149),_0x400a4a['cost'],this['budgets'][_0x3dcc03(0x149)]),this[_0x3dcc03(0x129)](_0x356b6e,_0x49375e,_0x400a4a);}[a0_0x3e6de1(0x129)](_0x186c15,_0x47863c,_0x45c778){const _0x5f082b=a0_0x3e6de1,_0x3b5c0a=this[_0x5f082b(0x150)]['thresholds'];this[_0x5f082b(0x13f)](_0x5f082b(0x13b),_0x186c15[_0x5f082b(0x139)],this[_0x5f082b(0x151)]['daily'],_0x3b5c0a),this[_0x5f082b(0x13f)]('weekly',_0x47863c[_0x5f082b(0x139)],this[_0x5f082b(0x151)]['weekly'],_0x3b5c0a),this[_0x5f082b(0x13f)](_0x5f082b(0x149),_0x45c778[_0x5f082b(0x139)],this[_0x5f082b(0x151)][_0x5f082b(0x149)],_0x3b5c0a);}[a0_0x3e6de1(0x13f)](_0x56b964,_0x572d7d,_0x2842ce,_0x223282){const _0x52baf1=a0_0x3e6de1,_0x12de53=_0x572d7d/_0x2842ce*0x64;for(const _0x26892a of _0x223282){if(_0x12de53>=_0x26892a){const _0x1bb8c9=_0x56b964+'_'+_0x26892a,_0x59c42e=this['alerts'][_0x52baf1(0x153)][_0x52baf1(0x117)](_0x1bb8c9),_0x1db4db=Date[_0x52baf1(0x10b)]();(!_0x59c42e||_0x1db4db-_0x59c42e>0x36ee80)&&(this['sendThresholdAlert'](_0x56b964,_0x12de53,_0x26892a,_0x572d7d,_0x2842ce),this[_0x52baf1(0x150)]['lastAlertTimes'][_0x52baf1(0x13e)](_0x1bb8c9,_0x1db4db));break;}}}[a0_0x3e6de1(0x107)](_0x1c6377,_0x4191d7,_0x200690){const _0x3d39ef=a0_0x3e6de1;this[_0x3d39ef(0x138)][_0x3d39ef(0x104)](_0x3d39ef(0x13d),{'period':_0x1c6377,'currentUsage':_0x4191d7,'budgetLimit':_0x200690,'excess':_0x4191d7-_0x200690}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':_0x3d39ef(0x118),'period':_0x1c6377,'currentUsage':_0x4191d7,'budgetLimit':_0x200690,'excess':_0x4191d7-_0x200690});}[a0_0x3e6de1(0x131)](_0x418bdb,_0x4d272c,_0x44e6ca,_0x1cd759,_0x21ffbd){const _0x902da2=a0_0x3e6de1;this[_0x902da2(0x138)]['warn'](_0x902da2(0x101),{'period':_0x418bdb,'percentage':Math[_0x902da2(0x112)](_0x4d272c),'threshold':_0x44e6ca,'usage':_0x1cd759,'budget':_0x21ffbd}),typeof process!==_0x902da2(0x157)&&process[_0x902da2(0x14c)]&&process['emit'](_0x902da2(0x114),{'type':_0x902da2(0x10d),'period':_0x418bdb,'percentage':Math['round'](_0x4d272c),'threshold':_0x44e6ca,'usage':_0x1cd759,'budget':_0x21ffbd});}[a0_0x3e6de1(0x11a)](_0xe8ef5b){const _0x45bdf5=a0_0x3e6de1;return _0xe8ef5b[_0x45bdf5(0x134)]()[_0x45bdf5(0x113)]('T')[0x0];}['getWeekKey'](_0x244b2b){const _0xd2d858=a0_0x3e6de1,_0x53626b=_0x244b2b['getFullYear'](),_0x356cec=this[_0xd2d858(0x11d)](_0x244b2b);return _0x53626b+'-W'+_0x356cec['toString']()[_0xd2d858(0x133)](0x2,'0');}[a0_0x3e6de1(0x10f)](_0x5612aa){const _0x533f4c=a0_0x3e6de1,_0x5686c4=_0x5612aa[_0x533f4c(0x10a)](),_0x4f59c5=_0x5612aa['getMonth']()+0x1;return _0x5686c4+'-'+_0x4f59c5['toString']()['padStart'](0x2,'0');}[a0_0x3e6de1(0x11d)](_0x1d321a){const _0x70820f=new Date(_0x1d321a['getFullYear'](),0x0,0x1),_0x27436e=(_0x1d321a-_0x70820f)/0x5265c00;return Math['ceil']((_0x27436e+_0x70820f['getDay']()+0x1)/0x7);}[a0_0x3e6de1(0x14d)](_0x86226){const _0x4ad074=a0_0x3e6de1,_0x5531b5=[];return _0x5531b5['push']([_0x4ad074(0x140),_0x4ad074(0x12c),_0x4ad074(0x136),_0x4ad074(0x111),'Requests','Agent','Model']),Object['entries'](_0x86226[_0x4ad074(0x13b)])['forEach'](([_0x56bd30,_0xcb0e25])=>{const _0x3453d6=_0x4ad074;_0x5531b5['push'](['Daily',_0x56bd30,_0xcb0e25['cost'],_0xcb0e25[_0x3453d6(0x110)],_0xcb0e25['requests'],'','']),Object[_0x3453d6(0x116)](_0xcb0e25[_0x3453d6(0x106)]||{})[_0x3453d6(0x126)](([_0x5f315c,_0x125039])=>{_0x5531b5['push'](['Daily',_0x56bd30,_0x125039['cost'],_0x125039['tokens'],_0x125039['requests'],_0x5f315c,'']);});}),_0x5531b5['map'](_0x43eace=>_0x43eace['join'](','))['join']('\x0a');}['loadUsageData'](){const _0x4c01b3=a0_0x3e6de1;try{this['logger'][_0x4c01b3(0x10e)]('Budget\x20service\x20initialized');}catch(_0x526485){this['logger']['error'](_0x4c01b3(0x122),{'error':_0x526485[_0x4c01b3(0x12a)]});}}[a0_0x3e6de1(0x135)](){const _0x2a3e38=a0_0x3e6de1;try{this['logger']['debug'](_0x2a3e38(0x143));}catch(_0x447f7b){this[_0x2a3e38(0x138)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x447f7b[_0x2a3e38(0x12a)]});}}['setupPeriodicSave'](){setInterval(()=>{const _0x398d61=a0_0x15a2;this[_0x398d61(0x135)]();},0x493e0);}}export default BudgetService;
1
+ const a0_0x53020c=a0_0x48be;function a0_0x22dd(){const _0x2f0b48=['y2HLy2TuAhjLC2HVBgrbBgvYDhm','D2vLA2X5','Dg90ywW','z2v0rgf0zq','y29UDMvYDfrVq1nw','z2v0vxnHz2vuCMvUzhm','ywXLCNrZ','Dg90ywXFDg9Rzw5Z','y2vPBa','z2v0tw9KzwXvC2fNzq','refjtfK','yNLnB2rLBa','y29TCgXLDgLVBL90B2TLBNm','qwDLBNq','Dg9Wtw9KzwXZ','Bw9KzwXjza','yNvKz2v0CW','z2v0v2vLA051BwjLCG','z2v0tw9UDgG','DxbKyxrLvxnHz2vfBNrYEq','DhjHy2TvC2fNzq','CMvXDwvZDhm','mZu1otG3mxjsCgHTvG','C2f2zvvZywDLrgf0yq','zNjVBq','uMvXDwvZDhm','CM91BMq','yNLbz2vUDa','vg9Rzw5Z','DxnHz2u','CgfKu3rHCNq','BwfW','zgfPBhLbDMvYywDLCW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y3jLyxrLrw1WDhLvC2fNzq','y29ZDa','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','y29ZDej5rgf5','y2HLy2TuAhjLC2HVBgq','vxnHz2uGzgf0ysbZyxzLza','Dw5ZAgLMDa','DgHYzxnOB2XKx3jLywnOzwq','C2vUzfrOCMvZAg9SzefSzxj0','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','sw52ywXPzcbWzxjPB2q6ia','zgfPBhK','z2v0v2vLA0TLEq','y2HLy2TcDwrNzxrmAw1PDhm','Dg9WqwDLBNrZ','Dg9ju09tDhjPBMC','zM9YrwfJAa','C2v0','Bw9UDgHSEq','Dg9Rzw5ZqNLeyxK','mJKYmZK5nu5kANr4DW','zw1PDa','qNvKz2v0igXPBwL0igv4y2vLzgvK','rgfPBhK','ugvYAw9K','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','ndyZntaWnuTprKHXAa','yNvKz2v0x2v4y2vLzgvK','qNvKz2v0igXPBwL0CYb1CgrHDgvK','Dg9tDhjPBMC','vxnHz2uGDhjHy2TLza','Aw5MBW','z2v0rgf5','AgfZ','Bg9Nz2vY','z2v0rgf5s2v5','C2v0DxbqzxjPB2rPy1nHDMu','mtiZodyYohHVtfj3ta','D2fYBG','ChvZAa','nti5mdG4wNrYyvfw','z2v0tw9UDgHlzxK','C29YDa','AM9PBG','C2vUzej1zgDLDefSzxj0','Dg9Rzw5Z','z2v0vxnHz2u','tu9oveHmwq','odC5mJi2u3fdy1jX','z2v0','mZe4ndeYogP2su16qG','C2v0rgf0zq','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','zw50CMLLCW','q29ZDa','y29UzMLN','rMfPBgvKihrVihrYywnRihvZywDL','Bwf4'];a0_0x22dd=function(){return _0x2f0b48;};return a0_0x22dd();}function a0_0x48be(_0xfdc79b,_0x1fa0db){_0xfdc79b=_0xfdc79b-0xc8;const _0x22ddae=a0_0x22dd();let _0x48be08=_0x22ddae[_0xfdc79b];if(a0_0x48be['vZGCRl']===undefined){var _0x156344=function(_0x350194){const _0x1fc3f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5dff3f='',_0x18570b='';for(let _0x3ea41b=0x0,_0x52d4fd,_0x3fdac0,_0x4a1efa=0x0;_0x3fdac0=_0x350194['charAt'](_0x4a1efa++);~_0x3fdac0&&(_0x52d4fd=_0x3ea41b%0x4?_0x52d4fd*0x40+_0x3fdac0:_0x3fdac0,_0x3ea41b++%0x4)?_0x5dff3f+=String['fromCharCode'](0xff&_0x52d4fd>>(-0x2*_0x3ea41b&0x6)):0x0){_0x3fdac0=_0x1fc3f9['indexOf'](_0x3fdac0);}for(let _0xe3ef3d=0x0,_0x13ca66=_0x5dff3f['length'];_0xe3ef3d<_0x13ca66;_0xe3ef3d++){_0x18570b+='%'+('00'+_0x5dff3f['charCodeAt'](_0xe3ef3d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18570b);};a0_0x48be['nlLSBJ']=_0x156344,a0_0x48be['cGfVGO']={},a0_0x48be['vZGCRl']=!![];}const _0x116055=_0x22ddae[0x0],_0x46f3c2=_0xfdc79b+_0x116055,_0x5c0415=a0_0x48be['cGfVGO'][_0x46f3c2];return!_0x5c0415?(_0x48be08=a0_0x48be['nlLSBJ'](_0x48be08),a0_0x48be['cGfVGO'][_0x46f3c2]=_0x48be08):_0x48be08=_0x5c0415,_0x48be08;}(function(_0x57fea3,_0x5136a){const _0x5d15fd=a0_0x48be,_0x24779c=_0x57fea3();while(!![]){try{const _0x44018f=-parseInt(_0x5d15fd(0xff))/0x1+parseInt(_0x5d15fd(0xf7))/0x2+parseInt(_0x5d15fd(0xe3))/0x3+parseInt(_0x5d15fd(0x101))/0x4+-parseInt(_0x5d15fd(0xe9))/0x5+-parseInt(_0x5d15fd(0xf4))/0x6+parseInt(_0x5d15fd(0x11f))/0x7;if(_0x44018f===_0x5136a)break;else _0x24779c['push'](_0x24779c['shift']());}catch(_0x4aff49){_0x24779c['push'](_0x24779c['shift']());}}}(a0_0x22dd,0x81ab9));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x5dff3f,_0x18570b){const _0x16f584=a0_0x48be;this[_0x16f584(0x106)]=_0x5dff3f||{},this['logger']=_0x18570b,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x16f584(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x16f584(0xfe)]},this[_0x16f584(0x10f)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x16f584(0xf3)]();}[a0_0x53020c(0x11d)](_0x3ea41b,_0x52d4fd,_0x3fdac0){const _0x4d2314=a0_0x53020c;try{const _0x4a1efa=this['calculateCost'](_0x52d4fd,_0x3fdac0),_0xe3ef3d=new Date(),_0x13ca66=this['getDayKey'](_0xe3ef3d),_0x3587e3=this['getWeekKey'](_0xe3ef3d),_0x3fb589=this[_0x4d2314(0xf8)](_0xe3ef3d);this['initializeUsageEntry'](this['usage']['daily'],_0x13ca66),this[_0x4d2314(0xce)](this[_0x4d2314(0xca)][_0x4d2314(0x10a)],_0x3587e3),this[_0x4d2314(0xce)](this['usage'][_0x4d2314(0xe1)],_0x3fb589);const _0x1a8f69={'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0['total_tokens'],'cost':_0x4a1efa,'timestamp':_0xe3ef3d[_0x4d2314(0xde)]()};return this[_0x4d2314(0x11c)](this['usage'][_0x4d2314(0xda)][_0x4d2314(0x100)](_0x13ca66),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0x10a)][_0x4d2314(0x100)](_0x3587e3),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0xe1)][_0x4d2314(0x100)](_0x3fb589),_0x1a8f69),this['usage'][_0x4d2314(0x10b)]['tokens']+=_0x3fdac0['total_tokens'],this[_0x4d2314(0xca)]['total'][_0x4d2314(0xd0)]+=_0x4a1efa,this['usage'][_0x4d2314(0x10b)]['requests']+=0x1,this['checkBudgetLimits'](_0x13ca66,_0x3587e3,_0x3fb589),this[_0x4d2314(0xf1)][_0x4d2314(0xee)](_0x4d2314(0xed),{'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0[_0x4d2314(0x110)],'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)][_0x4d2314(0x10b)]['cost']}),{'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)]['total']['cost'],'totalTokens':this[_0x4d2314(0xca)][_0x4d2314(0x10b)][_0x4d2314(0xfc)],'dailyUsage':this['usage']['daily'][_0x4d2314(0x100)](_0x13ca66),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5d2c06){this[_0x4d2314(0xf1)]['error'](_0x4d2314(0x107),{'error':_0x5d2c06['message'],'agentId':_0x3ea41b,'modelId':_0x52d4fd});throw _0x5d2c06;}}['calculateCost'](_0x1fbe48,_0x38ae65){const _0x1607d7=a0_0x53020c,_0x1ff12b=COST_PER_TOKEN[_0x1fbe48];if(!_0x1ff12b)return this[_0x1607d7(0xf1)]['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x1fbe48}),0x0;const _0x58add8=(_0x38ae65['prompt_tokens']||0x0)*_0x1ff12b['input'],_0x1239b6=(_0x38ae65[_0x1607d7(0x115)]||0x0)*_0x1ff12b['output'];return _0x58add8+_0x1239b6;}['getUsage'](_0x5ed932=a0_0x53020c(0xda),_0x4081be=new Date()){const _0x42b4d1=a0_0x53020c;switch(_0x5ed932){case _0x42b4d1(0xda):return this[_0x42b4d1(0xca)]['daily']['get'](this['getDayKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10a):return this[_0x42b4d1(0xca)]['weekly']['get'](this[_0x42b4d1(0xdb)](_0x4081be))||this[_0x42b4d1(0xcf)]();case'monthly':return this[_0x42b4d1(0xca)]['monthly']['get'](this['getMonthKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10b):return{...this[_0x42b4d1(0xca)]['total']};default:throw new Error(_0x42b4d1(0xd9)+_0x5ed932);}}['getAgentUsage'](_0x4ff57c,_0xf85162=a0_0x53020c(0xda)){const _0x12993e=a0_0x53020c,_0x1f8db3=this[_0x12993e(0xfd)](_0xf85162);return _0x1f8db3[_0x12993e(0xc8)]?.[_0x4ff57c]||this['createEmptyUsage']();}[a0_0x53020c(0x112)](_0x34a4cb,_0x13f4bf='daily'){const _0x539404=this['getUsage'](_0x13f4bf);return _0x539404['byModel']?.[_0x34a4cb]||this['createEmptyUsage']();}['setBudgets'](_0x5c7115){const _0x2df3e1=a0_0x53020c;if(_0x5c7115[_0x2df3e1(0xda)]!==undefined)this[_0x2df3e1(0x119)]['daily']=_0x5c7115[_0x2df3e1(0xda)];if(_0x5c7115[_0x2df3e1(0x10a)]!==undefined)this[_0x2df3e1(0x119)]['weekly']=_0x5c7115[_0x2df3e1(0x10a)];if(_0x5c7115[_0x2df3e1(0xe1)]!==undefined)this[_0x2df3e1(0x119)]['monthly']=_0x5c7115[_0x2df3e1(0xe1)];this['logger'][_0x2df3e1(0xee)](_0x2df3e1(0xeb),this[_0x2df3e1(0x119)]),this[_0x2df3e1(0x120)]();}['getRemainingBudget'](){const _0x189a84=a0_0x53020c,_0x80237a=new Date(),_0x38b281=this[_0x189a84(0xfd)](_0x189a84(0xda),_0x80237a),_0x48e694=this[_0x189a84(0xfd)](_0x189a84(0x10a),_0x80237a),_0x29b61f=this[_0x189a84(0xfd)](_0x189a84(0xe1),_0x80237a);return{'daily':Math['max'](0x0,this['budgets'][_0x189a84(0xda)]-_0x38b281['cost']),'weekly':Math[_0x189a84(0x108)](0x0,this[_0x189a84(0x119)]['weekly']-_0x48e694[_0x189a84(0xd0)]),'monthly':Math['max'](0x0,this[_0x189a84(0x119)][_0x189a84(0xe1)]-_0x29b61f[_0x189a84(0xd0)])};}['isWithinBudget'](_0x4a7988=a0_0x53020c(0xda)){const _0x2c5e33=a0_0x53020c,_0x32f9af=this[_0x2c5e33(0xfd)](_0x4a7988),_0x430619=this['budgets'][_0x4a7988];return _0x32f9af[_0x2c5e33(0xd0)]<=_0x430619;}[a0_0x53020c(0x10e)](_0x37b7da=0x1e){const _0x541b3b=a0_0x53020c,_0x521328={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xba2dcf=new Date();let _0x41710b=0x0,_0x42484b=0x0,_0x15c99a=0x0;const _0x42875b=new Map(),_0x87637d=new Map();for(let _0x5ce57f=0x0;_0x5ce57f<_0x37b7da;_0x5ce57f++){const _0xd08859=new Date(_0xba2dcf);_0xd08859[_0x541b3b(0x102)](_0xd08859[_0x541b3b(0x10c)]()-_0x5ce57f);const _0x38b5bd=this[_0x541b3b(0xf2)](_0xd08859),_0x59cb1c=this[_0x541b3b(0xca)]['daily'][_0x541b3b(0x100)](_0x38b5bd);_0x59cb1c?(_0x41710b+=_0x59cb1c[_0x541b3b(0xd0)],_0x42484b+=_0x59cb1c['tokens'],_0x15c99a+=_0x59cb1c[_0x541b3b(0x11e)],_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':_0x59cb1c['cost']}),_0x521328['tokensByDay']['unshift']({'date':_0x38b5bd,'tokens':_0x59cb1c[_0x541b3b(0xfc)]}),Object[_0x541b3b(0x104)](_0x59cb1c['byAgent']||{})['forEach'](([_0x502608,_0x2b1d13])=>{!_0x42875b['has'](_0x502608)&&_0x42875b['set'](_0x502608,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x9ab9ff=_0x42875b['get'](_0x502608);_0x9ab9ff['cost']+=_0x2b1d13['cost'],_0x9ab9ff['tokens']+=_0x2b1d13['tokens'],_0x9ab9ff['requests']+=_0x2b1d13['requests'];}),Object[_0x541b3b(0x104)](_0x59cb1c[_0x541b3b(0x114)]||{})[_0x541b3b(0xdf)](([_0x40df86,_0x253fb1])=>{const _0x16957e=_0x541b3b;!_0x87637d[_0x16957e(0xf0)](_0x40df86)&&_0x87637d['set'](_0x40df86,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x474020=_0x87637d['get'](_0x40df86);_0x474020['cost']+=_0x253fb1[_0x16957e(0xd0)],_0x474020['tokens']+=_0x253fb1[_0x16957e(0xfc)],_0x474020['requests']+=_0x253fb1['requests'];})):(_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':0x0}),_0x521328[_0x541b3b(0xe2)][_0x541b3b(0xd5)]({'date':_0x38b5bd,'tokens':0x0}));}return _0x521328['dailyAverages']['cost']=_0x41710b/_0x37b7da,_0x521328[_0x541b3b(0xcd)]['tokens']=_0x42484b/_0x37b7da,_0x521328[_0x541b3b(0xcd)][_0x541b3b(0x11e)]=_0x15c99a/_0x37b7da,_0x521328[_0x541b3b(0xdd)]=Array[_0x541b3b(0x121)](_0x42875b[_0x541b3b(0x104)]())[_0x541b3b(0xcc)](([_0xfbb889,_0x1e6421])=>({'id':_0xfbb889,..._0x1e6421}))[_0x541b3b(0xf9)]((_0x2fe089,_0x35ad4c)=>_0x35ad4c['cost']-_0x2fe089['cost'])['slice'](0x0,0xa),_0x521328[_0x541b3b(0x117)]=Array[_0x541b3b(0x121)](_0x87637d['entries']())['map'](([_0x1adf3c,_0x4ca08a])=>({'id':_0x1adf3c,..._0x4ca08a}))[_0x541b3b(0xf9)]((_0x580d49,_0xbb72f1)=>_0xbb72f1['cost']-_0x580d49['cost'])['slice'](0x0,0xa),_0x521328;}['exportUsageData'](_0x322a42='json',_0x32cf31=null,_0x45b232=null){const _0x27de47=a0_0x53020c,_0x1bf2a7={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x21f41f=(_0x15a042,_0x3b4080)=>{const _0x345ca4={};return _0x15a042['forEach']((_0x38852a,_0x3456fb)=>{const _0x43e04e=_0x3b4080(_0x3456fb);(!_0x32cf31||_0x43e04e>=_0x32cf31)&&(!_0x45b232||_0x43e04e<=_0x45b232)&&(_0x345ca4[_0x3456fb]=_0x38852a);}),_0x345ca4;};_0x32cf31||_0x45b232?(_0x1bf2a7['daily']=_0x21f41f(this[_0x27de47(0xca)]['daily'],_0x357ecf=>new Date(_0x357ecf)),_0x1bf2a7[_0x27de47(0x10a)]=_0x21f41f(this['usage']['weekly'],_0xe06d6f=>new Date(_0xe06d6f)),_0x1bf2a7['monthly']=_0x21f41f(this['usage']['monthly'],_0xd27380=>new Date(_0xd27380+'-01'))):(this['usage']['daily']['forEach']((_0x54d917,_0x22c747)=>_0x1bf2a7[_0x27de47(0xda)][_0x22c747]=_0x54d917),this['usage'][_0x27de47(0x10a)]['forEach']((_0x2ef664,_0x5e652b)=>_0x1bf2a7[_0x27de47(0x10a)][_0x5e652b]=_0x2ef664),this[_0x27de47(0xca)][_0x27de47(0xe1)]['forEach']((_0x2d2c3e,_0x2afcbd)=>_0x1bf2a7['monthly'][_0x2afcbd]=_0x2d2c3e));if(_0x322a42==='csv')return this[_0x27de47(0x10d)](_0x1bf2a7);return JSON['stringify'](_0x1bf2a7,null,0x2);}[a0_0x53020c(0xce)](_0x28e727,_0xefe136){const _0x1f82cc=a0_0x53020c;!_0x28e727[_0x1f82cc(0xf0)](_0xefe136)&&_0x28e727[_0x1f82cc(0xe0)](_0xefe136,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x152c93,_0xb39eb8){const _0x1b232d=a0_0x53020c;_0x152c93['cost']+=_0xb39eb8[_0x1b232d(0xd0)],_0x152c93['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['requests']+=0x1,!_0x152c93['byAgent'][_0xb39eb8['agentId']]&&(_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0x11e)]+=0x1,!_0x152c93[_0x1b232d(0x114)][_0xb39eb8[_0x1b232d(0x118)]]&&(_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93['byModel'][_0xb39eb8['modelId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['byModel'][_0xb39eb8['modelId']][_0x1b232d(0x11e)]+=0x1;}[a0_0x53020c(0xdc)](_0x109339,_0x382313,_0x3dd419){const _0x3de2be=a0_0x53020c,_0x3300cc=this[_0x3de2be(0xca)]['daily']['get'](_0x109339),_0x430e0a=this['usage'][_0x3de2be(0x10a)][_0x3de2be(0x100)](_0x382313),_0x3bf67d=this['usage']['monthly']['get'](_0x3dd419);_0x3300cc[_0x3de2be(0xd0)]>this['budgets']['daily']&&this['sendBudgetAlert']('daily',_0x3300cc[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xda)]),_0x430e0a[_0x3de2be(0xd0)]>this[_0x3de2be(0x119)]['weekly']&&this['sendBudgetAlert'](_0x3de2be(0x10a),_0x430e0a[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0x10a)]),_0x3bf67d['cost']>this['budgets']['monthly']&&this[_0x3de2be(0xfb)](_0x3de2be(0xe1),_0x3bf67d[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xe1)]),this['checkThresholdAlerts'](_0x3300cc,_0x430e0a,_0x3bf67d);}[a0_0x53020c(0x109)](_0x243778,_0x256408,_0x466f97){const _0x56b518=a0_0x53020c,_0x468489=this[_0x56b518(0x10f)]['thresholds'];this[_0x56b518(0xd3)](_0x56b518(0xda),_0x243778['cost'],this['budgets'][_0x56b518(0xda)],_0x468489),this['checkThreshold']('weekly',_0x256408[_0x56b518(0xd0)],this[_0x56b518(0x119)][_0x56b518(0x10a)],_0x468489),this[_0x56b518(0xd3)]('monthly',_0x466f97[_0x56b518(0xd0)],this['budgets'][_0x56b518(0xe1)],_0x468489);}[a0_0x53020c(0xd3)](_0xd17774,_0xa6a50c,_0x4467ee,_0x3f4635){const _0x52b590=a0_0x53020c,_0x2640bc=_0xa6a50c/_0x4467ee*0x64;for(const _0x3f4508 of _0x3f4635){if(_0x2640bc>=_0x3f4508){const _0x4aec93=_0xd17774+'_'+_0x3f4508,_0x1f6665=this[_0x52b590(0x10f)]['lastAlertTimes']['get'](_0x4aec93),_0x10e1b5=Date['now']();(!_0x1f6665||_0x10e1b5-_0x1f6665>0x36ee80)&&(this['sendThresholdAlert'](_0xd17774,_0x2640bc,_0x3f4508,_0xa6a50c,_0x4467ee),this['alerts']['lastAlertTimes']['set'](_0x4aec93,_0x10e1b5));break;}}}[a0_0x53020c(0xfb)](_0x30fdd3,_0x1c576c,_0x1b96e5){const _0x24e626=a0_0x53020c;this[_0x24e626(0xf1)][_0x24e626(0xf5)](_0x24e626(0xe5),{'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':_0x24e626(0xea),'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5});}[a0_0x53020c(0xd7)](_0x907ff1,_0x5379bb,_0x3c491b,_0x527d2e,_0x5c3396){const _0x159f88=a0_0x53020c;this['logger'][_0x159f88(0xf5)](_0x159f88(0x103),{'period':_0x907ff1,'percentage':Math[_0x159f88(0x123)](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396}),typeof process!=='undefined'&&process['emit']&&process[_0x159f88(0xe4)]('budgetAlert',{'type':_0x159f88(0xd6),'period':_0x907ff1,'percentage':Math['round'](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396});}[a0_0x53020c(0xf2)](_0x5f0ed3){return _0x5f0ed3['toISOString']()['split']('T')[0x0];}[a0_0x53020c(0xdb)](_0x44ce08){const _0x32f77f=a0_0x53020c,_0x25ac6e=_0x44ce08['getFullYear'](),_0x1fb445=this[_0x32f77f(0x11a)](_0x44ce08);return _0x25ac6e+'-W'+_0x1fb445[_0x32f77f(0xec)]()['padStart'](0x2,'0');}[a0_0x53020c(0xf8)](_0x55591c){const _0x184692=a0_0x53020c,_0xd852d8=_0x55591c['getFullYear'](),_0x3e3c78=_0x55591c[_0x184692(0x11b)]()+0x1;return _0xd852d8+'-'+_0x3e3c78[_0x184692(0xec)]()[_0x184692(0xcb)](0x2,'0');}[a0_0x53020c(0x11a)](_0x513f8f){const _0x2079d3=a0_0x53020c,_0x396117=new Date(_0x513f8f['getFullYear'](),0x0,0x1),_0x3c8cdc=(_0x513f8f-_0x396117)/0x5265c00;return Math[_0x2079d3(0x111)]((_0x3c8cdc+_0x396117[_0x2079d3(0xef)]()+0x1)/0x7);}['convertToCSV'](_0x107ed4){const _0x4c578a=a0_0x53020c,_0x31438d=[];return _0x31438d['push']([_0x4c578a(0xe7),'Date',_0x4c578a(0x105),_0x4c578a(0xc9),_0x4c578a(0x122),_0x4c578a(0x116),'Model']),Object['entries'](_0x107ed4[_0x4c578a(0xda)])[_0x4c578a(0xdf)](([_0x1ae115,_0x17db48])=>{const _0x4ffb4f=_0x4c578a;_0x31438d[_0x4ffb4f(0xf6)]([_0x4ffb4f(0xe6),_0x1ae115,_0x17db48[_0x4ffb4f(0xd0)],_0x17db48[_0x4ffb4f(0xfc)],_0x17db48['requests'],'','']),Object[_0x4ffb4f(0x104)](_0x17db48[_0x4ffb4f(0xc8)]||{})['forEach'](([_0x43653d,_0xfd2144])=>{const _0x36887e=_0x4ffb4f;_0x31438d['push'](['Daily',_0x1ae115,_0xfd2144['cost'],_0xfd2144[_0x36887e(0xfc)],_0xfd2144['requests'],_0x43653d,'']);});}),_0x31438d['map'](_0x429aa5=>_0x429aa5[_0x4c578a(0xfa)](','))['join']('\x0a');}['loadUsageData'](){const _0x578391=a0_0x53020c;try{this['logger'][_0x578391(0xee)](_0x578391(0xd8));}catch(_0x483a4f){this['logger']['error'](_0x578391(0xd1),{'error':_0x483a4f['message']});}}[a0_0x53020c(0x120)](){const _0x347f92=a0_0x53020c;try{this[_0x347f92(0xf1)]['debug'](_0x347f92(0xd4));}catch(_0x572709){this['logger']['error'](_0x347f92(0xe8),{'error':_0x572709['message']});}}[a0_0x53020c(0xf3)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
@@ -1 +1 @@
1
- const a0_0x2ff622=a0_0x1d57;(function(_0x337c1d,_0x334467){const _0x3f1bd4=a0_0x1d57,_0x54340c=_0x337c1d();while(!![]){try{const _0x4a997b=-parseInt(_0x3f1bd4(0xec))/0x1+parseInt(_0x3f1bd4(0xfe))/0x2+parseInt(_0x3f1bd4(0xde))/0x3*(parseInt(_0x3f1bd4(0xf3))/0x4)+-parseInt(_0x3f1bd4(0xe4))/0x5*(-parseInt(_0x3f1bd4(0xf7))/0x6)+-parseInt(_0x3f1bd4(0x108))/0x7+parseInt(_0x3f1bd4(0x10c))/0x8*(parseInt(_0x3f1bd4(0x102))/0x9)+-parseInt(_0x3f1bd4(0xe0))/0xa;if(_0x4a997b===_0x334467)break;else _0x54340c['push'](_0x54340c['shift']());}catch(_0x1dd549){_0x54340c['push'](_0x54340c['shift']());}}}(a0_0x5416,0x2528a));function a0_0x5416(){const _0x5e217c=['cIaGpc9MAwXLpG','BgvUz3rO','nJGWmJjsu2X1Bhu','zMLSDgvY','CMvMzxjLBMnL','jMfTCdS','Bg9Nz2vY','zMXVB3i','nZm5odm3zwzuq21q','zMLSzxm','Aw5PDgLHBgL6zq','zM9YBwf0qNL0zxm','mtm2q0DxugD6','yNvPBgreEw5HBwLJq29UDgv4Da','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','jMfWB3m7','zM9YBwf0ugrMrMLSzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zM9YBwf0sw1Hz2vgAwXL','zM9YBwf0vgv4DezPBgu','m1fnzffRwG','y29UDgvUDa','mZK1ndK2mfLUsffwta','zM9YBwf0uMvMzxjLBMnLrMLSzq','iIaVpG','CMvWBgfJzq','mte3nJGZnwT6vufsrq','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','zxjYB3i','zxnJyxbLwg1S','BwvZC2fNzq','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','Dg9Rzw5fC3rPBwf0zq','CgrM','mJi1mtG0u3v1zLfd','zMLSzu5HBwu','iIbZAxPLpsi','iIbWyxrOpsi','y29UzMLN','C2L6zq','Bw9Kzq','otyWnZy0zuXxzKrx','C3bSAxq','zxn0Aw1HDgvKvg9Rzw5Z','z2v0qwn0AxzLqxr0ywnOBwvUDhm','nNbtEuHLtq','zM9YBwf0q29UDgvUDezPBgu','ica8zMLSzsbUyw1Lpsi','cJXHDhrHy2HLzc1MAwXLCZ4k','yxr0ywnOBwvUDfnLCNzPy2u','ChvZAa','Cg93','ntq5mdu4txHgzMfz','iIb0ExbLpsi'];a0_0x5416=function(){return _0x5e217c;};return a0_0x5416();}import a0_0xef1d6e from'./fileAttachmentService.js';function a0_0x1d57(_0x182bc6,_0x44268a){_0x182bc6=_0x182bc6-0xd9;const _0x5416ba=a0_0x5416();let _0x1d5762=_0x5416ba[_0x182bc6];if(a0_0x1d57['uyGesK']===undefined){var _0x4000fd=function(_0x41cb5c){const _0x54f090='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xef1d6e='',_0x4c5607='';for(let _0x24d79b=0x0,_0x2b7756,_0x16af80,_0x43b997=0x0;_0x16af80=_0x41cb5c['charAt'](_0x43b997++);~_0x16af80&&(_0x2b7756=_0x24d79b%0x4?_0x2b7756*0x40+_0x16af80:_0x16af80,_0x24d79b++%0x4)?_0xef1d6e+=String['fromCharCode'](0xff&_0x2b7756>>(-0x2*_0x24d79b&0x6)):0x0){_0x16af80=_0x54f090['indexOf'](_0x16af80);}for(let _0x1df026=0x0,_0x1e0318=_0xef1d6e['length'];_0x1df026<_0x1e0318;_0x1df026++){_0x4c5607+='%'+('00'+_0xef1d6e['charCodeAt'](_0x1df026)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c5607);};a0_0x1d57['JivmxF']=_0x4000fd,a0_0x1d57['PPRGvu']={},a0_0x1d57['uyGesK']=!![];}const _0x441a55=_0x5416ba[0x0],_0x4e19b4=_0x182bc6+_0x441a55,_0x233199=a0_0x1d57['PPRGvu'][_0x4e19b4];return!_0x233199?(_0x1d5762=a0_0x1d57['JivmxF'](_0x1d5762),a0_0x1d57['PPRGvu'][_0x4e19b4]=_0x1d5762):_0x1d5762=_0x233199,_0x1d5762;}class ContextInjectionService{constructor(_0x4c5607={},_0x24d79b=null){const _0x3c22e5=a0_0x1d57;this[_0x3c22e5(0xf0)]=_0x4c5607,this['logger']=_0x24d79b,this[_0x3c22e5(0xfb)]=new a0_0xef1d6e(_0x4c5607,_0x24d79b);}async[a0_0x2ff622(0x10a)](){const _0x388cbd=a0_0x2ff622;await this[_0x388cbd(0xfb)]['initialize']();}async[a0_0x2ff622(0x10d)](_0x2b7756){const _0x5b8b93=a0_0x2ff622;try{const _0x16af80=await this[_0x5b8b93(0xfb)]['getActiveAttachments'](_0x2b7756);if(_0x16af80['length']===0x0)return'';const _0x43b997=_0x16af80['filter'](_0x21584c=>_0x21584c[_0x5b8b93(0xf2)]==='content'),_0x1df026=_0x16af80['filter'](_0x56196e=>_0x56196e[_0x5b8b93(0xf2)]==='reference');let _0x1e0318='';if(_0x43b997['length']>0x0){_0x1e0318+=_0x5b8b93(0xfa);for(const _0x1a5a84 of _0x43b997){const _0x1fcf55=await this[_0x5b8b93(0xfb)]['getAttachmentContent'](_0x1a5a84['fileId']);if(_0x1fcf55){const _0x36b591=this[_0x5b8b93(0xf8)](_0x1a5a84,_0x1fcf55);_0x1e0318+=_0x36b591+'\x0a';}}_0x1e0318+='</attached-files>\x0a';}if(_0x1df026['length']>0x0){_0x1e0318+='\x0a<file-references>\x0a';for(const _0x19500b of _0x1df026){const _0x53950e=this['formatReferenceFile'](_0x19500b);_0x1e0318+=_0x53950e+'\x0a';}_0x1e0318+=_0x5b8b93(0xdb),_0x1e0318+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x1e0318;}catch(_0x4e38c0){return this['logger']?.['error'](_0x5b8b93(0x10e),{'agentId':_0x2b7756,'error':_0x4e38c0['message']}),'';}}[a0_0x2ff622(0xf8)](_0x3d0fa3,_0x9f6ba2){const _0x1e7228=a0_0x2ff622,{fileName:_0x17be4c,fileType:_0x539c90,size:_0x1c9820,contentType:_0x2d8878}=_0x3d0fa3,_0x2ffdf7=(_0x1c9820/0x400)['toFixed'](0x2);if(_0x2d8878==='text')return this[_0x1e7228(0xdd)](_0x3d0fa3,_0x9f6ba2);else{if(_0x2d8878==='image')return this['formatImageFile'](_0x3d0fa3,_0x9f6ba2);else{if(_0x2d8878===_0x1e7228(0xeb))return this['formatPdfFile'](_0x3d0fa3,_0x9f6ba2);}}return'\x20\x20<file\x20name=\x22'+this[_0x1e7228(0xe7)](_0x17be4c)+'\x22\x20type=\x22'+_0x539c90+_0x1e7228(0xee)+_0x2ffdf7+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x9f6ba2)+_0x1e7228(0x100);}[a0_0x2ff622(0xdd)](_0x1d7782,_0xb5d6a){const _0x176e75=a0_0x2ff622,{fileName:_0x4acf9e,fileType:_0x195535,size:_0x284f16}=_0x1d7782,_0x25f3d9=(_0x284f16/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x4acf9e)+_0x176e75(0xff)+_0x195535+_0x176e75(0xee)+_0x25f3d9+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x176e75(0xe7)](_0xb5d6a)+'\x0a\x20\x20</file>';}[a0_0x2ff622(0xdc)](_0x3f4da3,_0x4731f4){const _0x1960e8=a0_0x2ff622,{fileName:_0x22bc5e,fileType:_0x2f20aa,size:_0x340053}=_0x3f4da3,_0x5c68db=(_0x340053/0x400)['toFixed'](0x2);return _0x1960e8(0xf9)+this['escapeXml'](_0x22bc5e)+_0x1960e8(0xff)+_0x2f20aa+_0x1960e8(0xee)+_0x5c68db+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x4731f4+'\x0a\x20\x20</file>';}[a0_0x2ff622(0xda)](_0x251b9d,_0x2b33ce){const _0x1d78a9=a0_0x2ff622,{fileName:_0x2e753e,fileType:_0x59faba,size:_0x15b62f}=_0x251b9d,_0x4f2c39=(_0x15b62f/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x2e753e)+_0x1d78a9(0xff)+_0x59faba+_0x1d78a9(0xee)+_0x4f2c39+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x1d78a9(0xe7)](_0x2b33ce)+'\x0a\x20\x20</file>';}[a0_0x2ff622(0xe1)](_0x4645fc){const _0xf1f230=a0_0x2ff622,{fileName:_0xb69ee0,originalPath:_0x1b0a77,size:_0x515f9d,fileType:_0x19e49f,lastModified:_0x4e245d}=_0x4645fc,_0x5c0ebb=this[_0xf1f230(0x10b)](_0x515f9d),_0x3ba5ab=new Date(_0x4e245d)['toISOString']()[_0xf1f230(0xf4)]('T')[0x0];return _0xf1f230(0xf9)+this['escapeXml'](_0xb69ee0)+_0xf1f230(0xef)+this[_0xf1f230(0xe7)](_0x1b0a77)+_0xf1f230(0xee)+_0x5c0ebb+'\x22\x20type=\x22'+_0x19e49f+'\x22\x20modified=\x22'+_0x3ba5ab+_0xf1f230(0xe2);}['escapeXml'](_0x570db2){const _0x5cec6e=a0_0x2ff622;if(!_0x570db2)return'';return _0x570db2[_0x5cec6e(0xe3)](/&/g,_0x5cec6e(0x105))['replace'](/</g,'&lt;')[_0x5cec6e(0xe3)](/>/g,'&gt;')['replace'](/"/g,'&quot;')[_0x5cec6e(0xe3)](/'/g,_0x5cec6e(0xd9));}['formatBytes'](_0x1cf6dd){const _0x5b6479=a0_0x2ff622;if(_0x1cf6dd===0x0)return'0\x20Bytes';const _0xb2c648=0x400,_0x3e592c=['Bytes','KB','MB','GB'],_0x392561=Math[_0x5b6479(0x107)](Math['log'](_0x1cf6dd)/Math['log'](_0xb2c648));return parseFloat((_0x1cf6dd/Math[_0x5b6479(0xfd)](_0xb2c648,_0x392561))['toFixed'](0x2))+_0x3e592c[_0x392561];}async['estimateTotalTokens'](_0x4a0c08){const _0xdd3e39=a0_0x2ff622;try{const _0x4ecc99=await this['attachmentService'][_0xdd3e39(0xf6)](_0x4a0c08);let _0x174b19=0x0;for(const _0x2ed6b6 of _0x4ecc99){_0x2ed6b6[_0xdd3e39(0xf2)]===_0xdd3e39(0xdf)?_0x174b19+=_0x2ed6b6[_0xdd3e39(0xea)]||0x0:_0x174b19+=0x14;}return _0x174b19;}catch(_0x371191){return this['logger']?.['error'](_0xdd3e39(0xe5),{'agentId':_0x4a0c08,'error':_0x371191['message']}),0x0;}}async['getAttachmentSummary'](_0xefba91){const _0x3aec4b=a0_0x2ff622;try{const _0x4519c7=await this[_0x3aec4b(0xfb)]['getActiveAttachments'](_0xefba91),_0x321c96={'totalActive':_0x4519c7[_0x3aec4b(0x101)],'contentMode':_0x4519c7['filter'](_0x5a2d04=>_0x5a2d04['mode']===_0x3aec4b(0xdf))[_0x3aec4b(0x101)],'referenceMode':_0x4519c7[_0x3aec4b(0x103)](_0x11aca7=>_0x11aca7[_0x3aec4b(0xf2)]===_0x3aec4b(0x104))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x4d9b15 of _0x4519c7){_0x321c96[_0x3aec4b(0xf5)]+=_0x4d9b15['tokenEstimate']||0x0,_0x321c96[_0x3aec4b(0x109)][_0x3aec4b(0xfc)]({'fileName':_0x4d9b15[_0x3aec4b(0xed)],'mode':_0x4d9b15['mode'],'size':this[_0x3aec4b(0x10b)](_0x4d9b15[_0x3aec4b(0xf1)]),'tokens':_0x4d9b15['tokenEstimate']||0x0});}return _0x321c96;}catch(_0x303ea6){return this[_0x3aec4b(0x106)]?.[_0x3aec4b(0xe6)](_0x3aec4b(0xe9),{'agentId':_0xefba91,'error':_0x303ea6[_0x3aec4b(0xe8)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
1
+ const a0_0x14a836=a0_0x3f03;function a0_0x5e9c(){const _0xaba3b0=['cIaGpc9MAwXLpG','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','zM9YBwf0sw1Hz2vgAwXL','s0iIig1Vzgu9iMnVBNrLBNqIpGO','yxr0ywnOBwvUDfnLCNzPy2u','zMLSzuLK','mJy0otKWEe1TuvPm','BwvZC2fNzq','Dg9Rzw5fC3rPBwf0zq','zM9YBwf0qNL0zxm','C2L6zq','zM9YBwf0q29UDgvUDezPBgu','zxn0Aw1HDgvKvg9Rzw5Z','mtqYndKWvLzRrhbc','Dgv4Da','Bg9Nz2vY','mJK1nZjezfHXEgm','z2v0qwn0AxzLqxr0ywnOBwvUDhm','zM9YBwf0vgv4DezPBgu','yNvPBgreEw5HBwLJq29UDgv4Da','BgvUz3rO','mJyWndeYuKvTEfPY','ChvZAa','mcbcExrLCW','zxn0Aw1HDgvuB3rHBfrVA2vUCW','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','zMXVB3i','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','Bg9N','zM9YBwf0uMvMzxjLBMnLrMLSzq','mtmYExLet2v2','ica8zMLSzsbUyw1Lpsi','zMLSzxm','Aw1Hz2u','mJfWBNfsDNa','nZyWnJrzAgzIvxm','iIaVpG','mJC5ode2mhzsChbPta','mtfNDwnnCu0','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIb0ExbLpsi','odHpDu5sAKu','CgrM','y29UDgvUDa','CMvMzxjLBMnL','CMvWBgfJzq','Dg9gAxHLza','z2v0qxr0ywnOBwvUDenVBNrLBNq','Aw5PDgLHBgL6zq','zxnJyxbLwg1S','iIbWyxrOpsi','mtbbwxPor00','iIbZAxPLpsi','Bw9Kzq','nZuZotnWrNPpD04','Cg93'];a0_0x5e9c=function(){return _0xaba3b0;};return a0_0x5e9c();}(function(_0x153b72,_0x2d353b){const _0x255e99=a0_0x3f03,_0x56337e=_0x153b72();while(!![]){try{const _0x19a33b=-parseInt(_0x255e99(0x199))/0x1*(-parseInt(_0x255e99(0x1bb))/0x2)+parseInt(_0x255e99(0x1b1))/0x3+-parseInt(_0x255e99(0x196))/0x4*(-parseInt(_0x255e99(0x1a6))/0x5)+-parseInt(_0x255e99(0x1c0))/0x6*(-parseInt(_0x255e99(0x195))/0x7)+-parseInt(_0x255e99(0x19c))/0x8*(-parseInt(_0x255e99(0x1a9))/0x9)+parseInt(_0x255e99(0x1b8))/0xa*(-parseInt(_0x255e99(0x191))/0xb)+-parseInt(_0x255e99(0x198))/0xc;if(_0x19a33b===_0x2d353b)break;else _0x56337e['push'](_0x56337e['shift']());}catch(_0x46d6ea){_0x56337e['push'](_0x56337e['shift']());}}}(a0_0x5e9c,0x1a2b9));function a0_0x3f03(_0x38c4e0,_0x17818a){_0x38c4e0=_0x38c4e0-0x18b;const _0x5e9cf9=a0_0x5e9c();let _0x3f03df=_0x5e9cf9[_0x38c4e0];if(a0_0x3f03['yeWGEX']===undefined){var _0x37f94e=function(_0x5035a9){const _0x3dc45d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2aa933='',_0x4169f3='';for(let _0x270f50=0x0,_0x3533a9,_0x85cf14,_0x305935=0x0;_0x85cf14=_0x5035a9['charAt'](_0x305935++);~_0x85cf14&&(_0x3533a9=_0x270f50%0x4?_0x3533a9*0x40+_0x85cf14:_0x85cf14,_0x270f50++%0x4)?_0x2aa933+=String['fromCharCode'](0xff&_0x3533a9>>(-0x2*_0x270f50&0x6)):0x0){_0x85cf14=_0x3dc45d['indexOf'](_0x85cf14);}for(let _0x19b4ad=0x0,_0x114147=_0x2aa933['length'];_0x19b4ad<_0x114147;_0x19b4ad++){_0x4169f3+='%'+('00'+_0x2aa933['charCodeAt'](_0x19b4ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4169f3);};a0_0x3f03['OCrAim']=_0x37f94e,a0_0x3f03['ryrAcb']={},a0_0x3f03['yeWGEX']=!![];}const _0x58b941=_0x5e9cf9[0x0],_0x122d19=_0x38c4e0+_0x58b941,_0x23b3c8=a0_0x3f03['ryrAcb'][_0x122d19];return!_0x23b3c8?(_0x3f03df=a0_0x3f03['OCrAim'](_0x3f03df),a0_0x3f03['ryrAcb'][_0x122d19]=_0x3f03df):_0x3f03df=_0x23b3c8,_0x3f03df;}import a0_0x2aa933 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x4169f3={},_0x270f50=null){const _0x347662=a0_0x3f03;this['config']=_0x4169f3,this[_0x347662(0x1ba)]=_0x270f50,this[_0x347662(0x1af)]=new a0_0x2aa933(_0x4169f3,_0x270f50);}async[a0_0x14a836(0x1a3)](){const _0x589c57=a0_0x14a836;await this[_0x589c57(0x1af)][_0x589c57(0x1a3)]();}async[a0_0x14a836(0x1be)](_0x3533a9){const _0xcabe1a=a0_0x14a836;try{const _0x85cf14=await this[_0xcabe1a(0x1af)][_0xcabe1a(0x1bc)](_0x3533a9);if(_0x85cf14[_0xcabe1a(0x1bf)]===0x0)return'';const _0x305935=_0x85cf14['filter'](_0x182aa4=>_0x182aa4['mode']==='content'),_0x19b4ad=_0x85cf14['filter'](_0x1847f1=>_0x1847f1[_0xcabe1a(0x1a8)]==='reference');let _0x114147='';if(_0x305935[_0xcabe1a(0x1bf)]>0x0){_0x114147+='\x0a<attached-files>\x0a';for(const _0x3d14fa of _0x305935){const _0x10ee07=await this['attachmentService'][_0xcabe1a(0x1a2)](_0x3d14fa[_0xcabe1a(0x1b0)]);if(_0x10ee07){const _0x375204=this[_0xcabe1a(0x1b6)](_0x3d14fa,_0x10ee07);_0x114147+=_0x375204+'\x0a';}}_0x114147+='</attached-files>\x0a';}if(_0x19b4ad['length']>0x0){_0x114147+=_0xcabe1a(0x19a);for(const _0x32c768 of _0x19b4ad){const _0x4aab86=this[_0xcabe1a(0x190)](_0x32c768);_0x114147+=_0x4aab86+'\x0a';}_0x114147+='</file-references>\x0a',_0x114147+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x114147;}catch(_0x2abdb1){return this[_0xcabe1a(0x1ba)]?.['error'](_0xcabe1a(0x18c),{'agentId':_0x3533a9,'error':_0x2abdb1['message']}),'';}}['formatContentFile'](_0x4e9efe,_0x47527e){const _0x5ed438=a0_0x14a836,{fileName:_0x48f397,fileType:_0x149217,size:_0xa5dd09,contentType:_0xb66394}=_0x4e9efe,_0x102495=(_0xa5dd09/0x400)['toFixed'](0x2);if(_0xb66394===_0x5ed438(0x1b9))return this[_0x5ed438(0x1bd)](_0x4e9efe,_0x47527e);else{if(_0xb66394===_0x5ed438(0x194))return this['formatImageFile'](_0x4e9efe,_0x47527e);else{if(_0xb66394===_0x5ed438(0x19d))return this['formatPdfFile'](_0x4e9efe,_0x47527e);}}return _0x5ed438(0x192)+this['escapeXml'](_0x48f397)+'\x22\x20type=\x22'+_0x149217+'\x22\x20size=\x22'+_0x102495+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x47527e)+'\x0a\x20\x20</file>';}[a0_0x14a836(0x1bd)](_0x3abc93,_0x4d1106){const _0x5f2449=a0_0x14a836,{fileName:_0x50fa24,fileType:_0xef5404,size:_0x379f72}=_0x3abc93,_0x32e2cd=(_0x379f72/0x400)['toFixed'](0x2);return _0x5f2449(0x192)+this[_0x5f2449(0x1a4)](_0x50fa24)+_0x5f2449(0x19b)+_0xef5404+'\x22\x20size=\x22'+_0x32e2cd+_0x5f2449(0x1ae)+this[_0x5f2449(0x1a4)](_0x4d1106)+_0x5f2449(0x1ab);}[a0_0x14a836(0x1ad)](_0x17890e,_0x5a6fe9){const _0x39f715=a0_0x14a836,{fileName:_0x3bb629,fileType:_0x49fda8,size:_0x342795}=_0x17890e,_0x3fe991=(_0x342795/0x400)[_0x39f715(0x1a1)](0x2);return _0x39f715(0x192)+this[_0x39f715(0x1a4)](_0x3bb629)+'\x22\x20type=\x22'+_0x49fda8+'\x22\x20size=\x22'+_0x3fe991+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x5a6fe9+_0x39f715(0x1ab);}['formatPdfFile'](_0x1397f9,_0x227304){const _0x5c3ed0=a0_0x14a836,{fileName:_0x2c1a29,fileType:_0x1ea997,size:_0x50aef6}=_0x1397f9,_0x396ba2=(_0x50aef6/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x5c3ed0(0x1a4)](_0x2c1a29)+_0x5c3ed0(0x19b)+_0x1ea997+_0x5c3ed0(0x1a7)+_0x396ba2+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x5c3ed0(0x1a4)](_0x227304)+_0x5c3ed0(0x1ab);}['formatReferenceFile'](_0x5c252f){const _0x27f8c2=a0_0x14a836,{fileName:_0x2de4e5,originalPath:_0x33f1a3,size:_0x5caaa7,fileType:_0x5a53c8,lastModified:_0x40a6b9}=_0x5c252f,_0x466005=this[_0x27f8c2(0x1b4)](_0x5caaa7),_0x37ce0f=new Date(_0x40a6b9)['toISOString']()['split']('T')[0x0];return _0x27f8c2(0x192)+this['escapeXml'](_0x2de4e5)+_0x27f8c2(0x1a5)+this['escapeXml'](_0x33f1a3)+_0x27f8c2(0x1a7)+_0x466005+'\x22\x20type=\x22'+_0x5a53c8+'\x22\x20modified=\x22'+_0x37ce0f+_0x27f8c2(0x197);}[a0_0x14a836(0x1a4)](_0x3aada0){const _0x1b9773=a0_0x14a836;if(!_0x3aada0)return'';return _0x3aada0[_0x1b9773(0x1a0)](/&/g,'&amp;')[_0x1b9773(0x1a0)](/</g,'&lt;')[_0x1b9773(0x1a0)](/>/g,'&gt;')['replace'](/"/g,'&quot;')[_0x1b9773(0x1a0)](/'/g,'&apos;');}[a0_0x14a836(0x1b4)](_0x248c9d){const _0x282d8a=a0_0x14a836;if(_0x248c9d===0x0)return _0x282d8a(0x1c2);const _0x26fdf1=0x400,_0x40e9cc=['Bytes','KB','MB','GB'],_0x80372d=Math[_0x282d8a(0x18d)](Math[_0x282d8a(0x18f)](_0x248c9d)/Math['log'](_0x26fdf1));return parseFloat((_0x248c9d/Math[_0x282d8a(0x1aa)](_0x26fdf1,_0x80372d))['toFixed'](0x2))+_0x40e9cc[_0x80372d];}async[a0_0x14a836(0x18b)](_0x1d5c96){const _0x4fffab=a0_0x14a836;try{const _0x59e267=await this['attachmentService'][_0x4fffab(0x1bc)](_0x1d5c96);let _0x4657d5=0x0;for(const _0x484c3b of _0x59e267){_0x484c3b['mode']==='content'?_0x4657d5+=_0x484c3b['tokenEstimate']||0x0:_0x4657d5+=0x14;}return _0x4657d5;}catch(_0x12360d){return this[_0x4fffab(0x1ba)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x1d5c96,'error':_0x12360d[_0x4fffab(0x1b2)]}),0x0;}}async[a0_0x14a836(0x18e)](_0x1f50ba){const _0x1e487d=a0_0x14a836;try{const _0x1dbdb1=await this['attachmentService'][_0x1e487d(0x1bc)](_0x1f50ba),_0x57e45c={'totalActive':_0x1dbdb1['length'],'contentMode':_0x1dbdb1['filter'](_0x5a2271=>_0x5a2271[_0x1e487d(0x1a8)]===_0x1e487d(0x19e))[_0x1e487d(0x1bf)],'referenceMode':_0x1dbdb1['filter'](_0x2b6623=>_0x2b6623['mode']===_0x1e487d(0x19f))[_0x1e487d(0x1bf)],'estimatedTokens':0x0,'files':[]};for(const _0x583ea9 of _0x1dbdb1){_0x57e45c[_0x1e487d(0x1b7)]+=_0x583ea9[_0x1e487d(0x1b3)]||0x0,_0x57e45c[_0x1e487d(0x193)][_0x1e487d(0x1c1)]({'fileName':_0x583ea9['fileName'],'mode':_0x583ea9[_0x1e487d(0x1a8)],'size':this['formatBytes'](_0x583ea9[_0x1e487d(0x1b5)]),'tokens':_0x583ea9[_0x1e487d(0x1b3)]||0x0});}return _0x57e45c;}catch(_0x4987ac){return this[_0x1e487d(0x1ba)]?.['error'](_0x1e487d(0x1ac),{'agentId':_0x1f50ba,'error':_0x4987ac['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;