@loxia-labs/loxia-autopilot-one 1.0.18 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/agentActivityService.js +1 -1
  76. package/src/services/aiService.js +1 -1
  77. package/src/services/apiKeyManager.js +1 -1
  78. package/src/services/benchmarkService.js +1 -1
  79. package/src/services/budgetService.js +1 -1
  80. package/src/services/contextInjectionService.js +1 -1
  81. package/src/services/conversationCompactionService.js +1 -1
  82. package/src/services/errorHandler.js +1 -1
  83. package/src/services/fileAttachmentService.js +1 -1
  84. package/src/services/modelRouterService.js +1 -1
  85. package/src/services/modelsService.js +1 -1
  86. package/src/services/qualityInspector.js +1 -1
  87. package/src/services/tokenCountingService.js +1 -1
  88. package/src/tools/agentCommunicationTool.js +1 -1
  89. package/src/tools/agentDelayTool.js +1 -1
  90. package/src/tools/asyncToolManager.js +1 -1
  91. package/src/tools/baseTool.js +1 -1
  92. package/src/tools/browserTool.js +1 -1
  93. package/src/tools/cloneDetectionTool.js +1 -1
  94. package/src/tools/dependencyResolverTool.js +1 -1
  95. package/src/tools/fileContentReplaceTool.js +1 -1
  96. package/src/tools/fileSystemTool.js +1 -1
  97. package/src/tools/fileTreeTool.js +1 -1
  98. package/src/tools/imageTool.js +1 -1
  99. package/src/tools/importAnalyzerTool.js +1 -1
  100. package/src/tools/jobDoneTool.js +1 -1
  101. package/src/tools/seekTool.js +1 -1
  102. package/src/tools/staticAnalysisTool.js +1 -1
  103. package/src/tools/taskManagerTool.js +1 -1
  104. package/src/tools/terminalTool.js +1 -1
  105. package/src/tools/webTool.js +1 -1
  106. package/src/types/agent.js +1 -1
  107. package/src/types/contextReference.js +1 -1
  108. package/src/types/conversation.js +1 -1
  109. package/src/types/toolCommand.js +1 -1
  110. package/src/utilities/attachmentValidator.js +1 -1
  111. package/src/utilities/configManager.js +1 -1
  112. package/src/utilities/constants.js +1 -1
  113. package/src/utilities/directoryAccessManager.js +1 -1
  114. package/src/utilities/fileProcessor.js +1 -1
  115. package/src/utilities/logger.js +1 -1
  116. package/src/utilities/tagParser.js +1 -1
  117. package/src/utilities/toolConstants.js +1 -1
  118. package/src/utilities/userDataDir.js +1 -1
  119. package/web-ui/build/index.html +1 -1
  120. package/web-ui/build/static/{index-DL2-PyNX.js → index-CcwO7jS4.js} +8 -8
@@ -1 +1 @@
1
- function a0_0x17fd(){const _0x584765=['DgfZA0XPC3q','Aw5JB21PBMDnzxnZywDLCW','BwvZC2fNzvf1zxvLCW','BgfZDfjLy2vPDMvK','Dg9VBfjLC3vSDhm','qvvut05ptu9vu19nt0rfx0fdveLwrq','mJG5mJa1nKHPzw1jBa','CMvJzwL2zwq','Cgf1C2vKvw50AwW','ywn0AxzL','qwDLBNqGzgvSyxLLzcb1BNrPBca','C3rHDhvZ','yxv0B25VBw91C1DVCMTdB21WBgv0zq','CMvHC29U','seftx1bftKrjtKDFvefts1m','BgvUz3rO','rvHfq1vusu5h','ihvZzxiGBwvZC2fNzsHZksb0BYbWCM9JzxnZ','seftx1vtrvjFtuvtu0fhrvm','DMfSDwvZ','mJiZnJq5tLrjvKf3','qwDLBNqGC3rHDhvZigLZia','mJKYnwn3vMPHCW','mJC1nZi0mhDeueXHAG','y291BNrZ','qwDLBNqGC3rVCcbOyxmGyMvLBIbYzxf1zxn0zwq','AgfZvg9VBfjLC3vSDhm','zMLSDgvY','mZnlDgLfrMK','BMfTzq','zgvSyxLfBMruAw1L','Aw50zxjbz2vUDfrYywnRAw5N','qunusvzf','mtuXnLjrAMLyzq','lcbjoG','quDftLrFrevmqvLfra','DxnLCK1LC3nHz2vZ','mtaWmJG5tLLivwXp','Aw50zxjbz2vUDe1LC3nHz2vZ','quDftLrFuefvu0ve','igLUDgvYlwfNzw50ig1LC3nHz2uOCYKGDg8GChjVy2vZCW','mJrvwujetha','u1rpuf9srvfvrvnuruq','qwDLBNqGCgf1C2vKihvUDgLSia','quDftLqGBw9KzsbHz2vUDcbOyxmGBM8GCgvUzgLUzYb0yxnRCYbVCIbTzxnZywDLCW','lcbLEhbLy3rLzca','ndu4odyXmg9XBfPXDG','Dg90ywW','AxnbCNjHEq','qwDLBNqGB2jQzwn0igLZig51BgWGB3iGDw5KzwzPBMvK','Bw9Kzq','seftx1fvrvvfrf9nrvntquDfuW','uKvdru5ux01fu1nbr0vFveHsrvnit0Xex01t','qwDLBNqGAgfZia','C2L6zq','qwDLBNqGAxmGy3vYCMvUDgX5igv4zwn1DgLUzYaOBw9Kzvn0yxrLpuvyrunvveLorYK','odK4mdzdwhbOqwi'];a0_0x17fd=function(){return _0x584765;};return a0_0x17fd();}(function(_0x40d334,_0x4fa276){const _0x530ce3=a0_0x9e3c,_0x5cf73b=_0x40d334();while(!![]){try{const _0x4c27a8=parseInt(_0x530ce3(0x107))/0x1+-parseInt(_0x530ce3(0xf2))/0x2*(parseInt(_0x530ce3(0x10f))/0x3)+-parseInt(_0x530ce3(0x114))/0x4*(-parseInt(_0x530ce3(0x109))/0x5)+-parseInt(_0x530ce3(0x11c))/0x6*(parseInt(_0x530ce3(0x118))/0x7)+-parseInt(_0x530ce3(0xf9))/0x8+parseInt(_0x530ce3(0x10a))/0x9+parseInt(_0x530ce3(0x121))/0xa;if(_0x4c27a8===_0x4fa276)break;else _0x5cf73b['push'](_0x5cf73b['shift']());}catch(_0x11a2b6){_0x5cf73b['push'](_0x5cf73b['shift']());}}}(a0_0x17fd,0x48b6d));import{AGENT_MODES,AGENT_MODE_STATES,AGENT_STATUS,AGENT_ACTIVITY_STATUS,TASK_STATUS,SCHEDULER_CONFIG}from'../utilities/constants.js';function hasPendingTasks(_0x14b535){const _0x10fc53=a0_0x9e3c;if(!_0x14b535[_0x10fc53(0xf3)]||!_0x14b535['taskList']['tasks']||!Array['isArray'](_0x14b535['taskList']['tasks']))return![];return _0x14b535[_0x10fc53(0xf3)]['tasks']['some'](_0x293002=>_0x293002[_0x10fc53(0xfe)]===TASK_STATUS['PENDING']||_0x293002['status']===TASK_STATUS['IN_PROGRESS']);}function getMessageQueueStatus(_0x19a42b){const _0x450d00=a0_0x9e3c,_0x24bdec=_0x19a42b[_0x450d00(0xf5)]||{},_0x30e565={'toolResults':Array['isArray'](_0x24bdec[_0x450d00(0xf7)])?_0x24bdec['toolResults'][_0x450d00(0x102)]:0x0,'interAgentMessages':Array['isArray'](_0x24bdec['interAgentMessages'])?_0x24bdec['interAgentMessages']['length']:0x0,'userMessages':Array[_0x450d00(0xea)](_0x24bdec[_0x450d00(0x117)])?_0x24bdec['userMessages'][_0x450d00(0x102)]:0x0};return _0x30e565[_0x450d00(0x122)]=_0x30e565['toolResults']+_0x30e565['interAgentMessages']+_0x30e565[_0x450d00(0x117)],{'hasMessages':_0x30e565[_0x450d00(0x122)]>0x0,'hasUserMessages':_0x30e565['userMessages']>0x0,'hasInterAgentMessages':_0x30e565[_0x450d00(0x119)]>0x0,'hasToolResults':_0x30e565['toolResults']>0x0,'counts':_0x30e565};}function hasUnprocessedIncomingMessages(_0x5a4bd4){const _0x49db9b=a0_0x9e3c;if(_0x5a4bd4['incomingMessages']&&Array[_0x49db9b(0xea)](_0x5a4bd4[_0x49db9b(0xf4)])&&_0x5a4bd4[_0x49db9b(0xf4)]['length']>0x0)return!![];if(_0x5a4bd4[_0x49db9b(0x112)]&&_0x5a4bd4[_0x49db9b(0x112)]instanceof Map&&_0x5a4bd4[_0x49db9b(0x112)][_0x49db9b(0xf0)]>0x0){const _0x15f1d2=Date['now']();for(const _0x19f6f3 of _0x5a4bd4[_0x49db9b(0x112)]['values']()){if(_0x19f6f3['lastReceived']&&_0x15f1d2-_0x19f6f3[_0x49db9b(0xf6)]<SCHEDULER_CONFIG[_0x49db9b(0xee)]&&_0x19f6f3['lastType']===_0x49db9b(0xfa))return!![];}}return![];}function a0_0x9e3c(_0x20397b,_0x568443){_0x20397b=_0x20397b-0xea;const _0x17fd32=a0_0x17fd();let _0x9e3c1a=_0x17fd32[_0x20397b];if(a0_0x9e3c['cZJlps']===undefined){var _0x477527=function(_0x2d0d0a){const _0x13a821='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14b535='',_0x293002='';for(let _0x19a42b=0x0,_0x24bdec,_0x30e565,_0x5a4bd4=0x0;_0x30e565=_0x2d0d0a['charAt'](_0x5a4bd4++);~_0x30e565&&(_0x24bdec=_0x19a42b%0x4?_0x24bdec*0x40+_0x30e565:_0x30e565,_0x19a42b++%0x4)?_0x14b535+=String['fromCharCode'](0xff&_0x24bdec>>(-0x2*_0x19a42b&0x6)):0x0){_0x30e565=_0x13a821['indexOf'](_0x30e565);}for(let _0x15f1d2=0x0,_0x19f6f3=_0x14b535['length'];_0x15f1d2<_0x19f6f3;_0x15f1d2++){_0x293002+='%'+('00'+_0x14b535['charCodeAt'](_0x15f1d2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x293002);};a0_0x9e3c['iBjZDu']=_0x477527,a0_0x9e3c['mTchRY']={},a0_0x9e3c['cZJlps']=!![];}const _0xa7d4fb=_0x17fd32[0x0],_0x2f02d2=_0x20397b+_0xa7d4fb,_0xdf538e=a0_0x9e3c['mTchRY'][_0x2f02d2];return!_0xdf538e?(_0x9e3c1a=a0_0x9e3c['iBjZDu'](_0x9e3c1a),a0_0x9e3c['mTchRY'][_0x2f02d2]=_0x9e3c1a):_0x9e3c1a=_0xdf538e,_0x9e3c1a;}function isAgentDelayed(_0x40cf12){const _0x1405b4=a0_0x9e3c;if(!_0x40cf12['delayEndTime'])return![];return new Date()<new Date(_0x40cf12[_0x1405b4(0x111)]);}function isAgentPaused(_0x474fe0){const _0x56be6f=a0_0x9e3c;if(_0x474fe0['status']===AGENT_STATUS['PAUSED']){if(_0x474fe0[_0x56be6f(0xfb)])return new Date()<new Date(_0x474fe0[_0x56be6f(0xfb)]);return!![];}if(_0x474fe0['pausedUntil']&&new Date()<new Date(_0x474fe0[_0x56be6f(0xfb)]))return!![];return![];}function hasAutonomousWorkComplete(_0xd73f90){const _0x38ead0=a0_0x9e3c;return _0xd73f90[_0x38ead0(0xff)]===!![];}export function shouldAgentBeActive(_0x42f357){const _0x56bdeb=a0_0x9e3c;if(!_0x42f357)return{'active':![],'reason':AGENT_ACTIVITY_STATUS['AGENT_NOT_FOUND'],'details':_0x56bdeb(0xeb)};if(_0x42f357['status']!==AGENT_STATUS[_0x56bdeb(0x113)])return{'active':![],'reason':AGENT_ACTIVITY_STATUS['AGENT_INACTIVE_STATUS'],'details':_0x56bdeb(0x108)+_0x42f357[_0x56bdeb(0xfe)]+_0x56bdeb(0x120)+AGENT_STATUS[_0x56bdeb(0x113)]};if(isAgentDelayed(_0x42f357))return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x56bdeb(0x116)],'details':_0x56bdeb(0xfd)+_0x42f357[_0x56bdeb(0x111)]};if(isAgentPaused(_0x42f357))return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x56bdeb(0x11a)],'details':_0x42f357['pausedUntil']?_0x56bdeb(0x11e)+_0x42f357['pausedUntil']:'Agent\x20paused\x20indefinitely'};if(_0x42f357['stopRequested'])return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x56bdeb(0x11d)],'details':_0x56bdeb(0x10c)};if(_0x42f357['modeState']===AGENT_MODE_STATES[_0x56bdeb(0x103)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x56bdeb(0xf8)],'details':_0x56bdeb(0xf1)};const _0x267ffa=getMessageQueueStatus(_0x42f357);if(_0x42f357[_0x56bdeb(0xec)]===AGENT_MODES['AGENT']){const _0x52fde8=hasPendingTasks(_0x42f357),unprocessedMessages=hasUnprocessedIncomingMessages(_0x42f357);if(_0x52fde8)return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x56bdeb(0x101)],'details':'Agent\x20has\x20pending/in-progress\x20tasks'};if(_0x267ffa['hasMessages'])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x56bdeb(0xed)],'details':'Agent\x20has\x20'+_0x267ffa['counts']['total']+'\x20queued\x20messages\x20(T:'+_0x267ffa[_0x56bdeb(0x10b)][_0x56bdeb(0xf7)]+_0x56bdeb(0x115)+_0x267ffa[_0x56bdeb(0x10b)][_0x56bdeb(0x119)]+',\x20U:'+_0x267ffa['counts'][_0x56bdeb(0x117)]+')'};if(unprocessedMessages)return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['AUTONOMOUS_MODE_ACTIVE'],'details':'Agent\x20has\x20unprocessed\x20incoming\x20messages'};return{'active':![],'reason':AGENT_ACTIVITY_STATUS['NO_PENDING_WORK'],'details':_0x56bdeb(0x11f)};}if(_0x42f357[_0x56bdeb(0xec)]===AGENT_MODES['CHAT']){if(_0x267ffa['hasUserMessages'])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x56bdeb(0x105)],'details':_0x56bdeb(0xef)+_0x267ffa['counts'][_0x56bdeb(0x117)]+_0x56bdeb(0x104)};if(_0x267ffa['hasInterAgentMessages'])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['HAS_INTER_AGENT_MESSAGES'],'details':_0x56bdeb(0xef)+_0x267ffa['counts']['interAgentMessages']+_0x56bdeb(0x11b)};return{'active':![],'reason':AGENT_ACTIVITY_STATUS['CHAT_MODE_NO_MESSAGES'],'details':_0x267ffa[_0x56bdeb(0x10d)]?'CHAT\x20mode\x20-\x20has\x20'+_0x267ffa['counts']['toolResults']+'\x20tool\x20results\x20but\x20no\x20new\x20messages':'CHAT\x20mode\x20-\x20no\x20messages\x20to\x20process'};}return{'active':![],'reason':AGENT_ACTIVITY_STATUS['UNKNOWN_MODE'],'details':'Unknown\x20agent\x20mode:\x20'+_0x42f357[_0x56bdeb(0xec)]};}export function getActiveAgents(_0x16e6f2){const _0x2ef11a=a0_0x9e3c,_0x3d7d1c=_0x16e6f2 instanceof Map?Array['from'](_0x16e6f2[_0x2ef11a(0x106)]()):_0x16e6f2;return _0x3d7d1c['map'](_0x4adf5d=>{const _0x3ab16b=shouldAgentBeActive(_0x4adf5d);return{'agent':_0x4adf5d,'agentId':_0x4adf5d['id'],'sessionId':_0x4adf5d['sessionId'],..._0x3ab16b};})[_0x2ef11a(0x10e)](_0x53ec90=>_0x53ec90['active']);}export function getAllAgentActivityStatus(_0xf29f18){const _0x413796=a0_0x9e3c,_0x492a7d=_0xf29f18 instanceof Map?Array['from'](_0xf29f18[_0x413796(0x106)]()):_0xf29f18;return _0x492a7d['map'](_0xa433f7=>{const _0x229edd=_0x413796,_0xc89723=shouldAgentBeActive(_0xa433f7),_0x58e095=getMessageQueueStatus(_0xa433f7);return{'agentId':_0xa433f7['id'],'agentName':_0xa433f7[_0x229edd(0x110)],'mode':_0xa433f7[_0x229edd(0xec)],'status':_0xa433f7['status'],'active':_0xc89723[_0x229edd(0xfc)],'reason':_0xc89723[_0x229edd(0x100)],'details':_0xc89723['details'],'queueCounts':_0x58e095['counts'],'hasPendingTasks':hasPendingTasks(_0xa433f7),'isDelayed':isAgentDelayed(_0xa433f7),'isPaused':isAgentPaused(_0xa433f7),'stopRequested':_0xa433f7['stopRequested']||![],'delayEndTime':_0xa433f7[_0x229edd(0x111)]||null,'pausedUntil':_0xa433f7[_0x229edd(0xfb)]||null};});}export function shouldSkipIteration(_0x5deba5){const _0x493b81=a0_0x9e3c;if(!_0x5deba5)return{'skip':!![],'reason':'Agent\x20not\x20found'};if(isAgentDelayed(_0x5deba5))return{'skip':!![],'reason':'Agent\x20delayed\x20until\x20'+_0x5deba5['delayEndTime']};if(_0x5deba5['pausedUntil']&&new Date()<new Date(_0x5deba5[_0x493b81(0xfb)]))return{'skip':!![],'reason':_0x493b81(0x11e)+_0x5deba5[_0x493b81(0xfb)]};return{'skip':![],'reason':null};}export{hasPendingTasks,getMessageQueueStatus,hasUnprocessedIncomingMessages,isAgentDelayed,isAgentPaused,hasAutonomousWorkComplete};export default{'shouldAgentBeActive':shouldAgentBeActive,'getActiveAgents':getActiveAgents,'getAllAgentActivityStatus':getAllAgentActivityStatus,'shouldSkipIteration':shouldSkipIteration,'hasPendingTasks':hasPendingTasks,'getMessageQueueStatus':getMessageQueueStatus,'hasUnprocessedIncomingMessages':hasUnprocessedIncomingMessages,'isAgentDelayed':isAgentDelayed,'isAgentPaused':isAgentPaused,'hasAutonomousWorkComplete':hasAutonomousWorkComplete};
1
+ (function(_0x5dafed,_0x5c2a40){const _0x3411b2=a0_0x4b69,_0x9a531b=_0x5dafed();while(!![]){try{const _0x335d36=-parseInt(_0x3411b2(0x1cb))/0x1*(parseInt(_0x3411b2(0x1c2))/0x2)+parseInt(_0x3411b2(0x1cd))/0x3*(-parseInt(_0x3411b2(0x1da))/0x4)+parseInt(_0x3411b2(0x1b2))/0x5*(parseInt(_0x3411b2(0x1d5))/0x6)+parseInt(_0x3411b2(0x1de))/0x7+-parseInt(_0x3411b2(0x1d8))/0x8*(parseInt(_0x3411b2(0x1ae))/0x9)+parseInt(_0x3411b2(0x1bd))/0xa*(-parseInt(_0x3411b2(0x1db))/0xb)+parseInt(_0x3411b2(0x1d7))/0xc;if(_0x335d36===_0x5c2a40)break;else _0x9a531b['push'](_0x9a531b['shift']());}catch(_0x319333){_0x9a531b['push'](_0x9a531b['shift']());}}}(a0_0x3ebd,0xebe11));import{AGENT_MODES,AGENT_MODE_STATES,AGENT_STATUS,AGENT_ACTIVITY_STATUS,TASK_STATUS,SCHEDULER_CONFIG}from'../utilities/constants.js';function hasPendingTasks(_0x220e6d){const _0x561d96=a0_0x4b69;if(!_0x220e6d[_0x561d96(0x1b9)]||!_0x220e6d[_0x561d96(0x1b9)]['tasks']||!Array['isArray'](_0x220e6d['taskList'][_0x561d96(0x1a3)]))return![];return _0x220e6d[_0x561d96(0x1b9)][_0x561d96(0x1a3)]['some'](_0x3d3b1d=>_0x3d3b1d[_0x561d96(0x1ab)]===TASK_STATUS['PENDING']||_0x3d3b1d['status']===TASK_STATUS[_0x561d96(0x1a7)]);}function a0_0x4b69(_0x464bc3,_0x171aaa){_0x464bc3=_0x464bc3-0x1a2;const _0x3ebd57=a0_0x3ebd();let _0x4b6928=_0x3ebd57[_0x464bc3];if(a0_0x4b69['pxlwJu']===undefined){var _0x453304=function(_0x3461a9){const _0x2de77d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x220e6d='',_0x3d3b1d='';for(let _0x3556c2=0x0,_0x29b0f2,_0x18c927,_0x3e7f68=0x0;_0x18c927=_0x3461a9['charAt'](_0x3e7f68++);~_0x18c927&&(_0x29b0f2=_0x3556c2%0x4?_0x29b0f2*0x40+_0x18c927:_0x18c927,_0x3556c2++%0x4)?_0x220e6d+=String['fromCharCode'](0xff&_0x29b0f2>>(-0x2*_0x3556c2&0x6)):0x0){_0x18c927=_0x2de77d['indexOf'](_0x18c927);}for(let _0x512407=0x0,_0x15e887=_0x220e6d['length'];_0x512407<_0x15e887;_0x512407++){_0x3d3b1d+='%'+('00'+_0x220e6d['charCodeAt'](_0x512407)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3d3b1d);};a0_0x4b69['GWCMod']=_0x453304,a0_0x4b69['TFLEtH']={},a0_0x4b69['pxlwJu']=!![];}const _0x3dadc4=_0x3ebd57[0x0],_0x3422cb=_0x464bc3+_0x3dadc4,_0x53389e=a0_0x4b69['TFLEtH'][_0x3422cb];return!_0x53389e?(_0x4b6928=a0_0x4b69['GWCMod'](_0x4b6928),a0_0x4b69['TFLEtH'][_0x3422cb]=_0x4b6928):_0x4b6928=_0x53389e,_0x4b6928;}function getMessageQueueStatus(_0x3556c2){const _0x3bfe14=a0_0x4b69,_0x29b0f2=_0x3556c2['messageQueues']||{},_0x18c927={'toolResults':Array['isArray'](_0x29b0f2['toolResults'])?_0x29b0f2['toolResults'][_0x3bfe14(0x1c9)]:0x0,'interAgentMessages':Array[_0x3bfe14(0x1a5)](_0x29b0f2['interAgentMessages'])?_0x29b0f2['interAgentMessages']['length']:0x0,'userMessages':Array['isArray'](_0x29b0f2[_0x3bfe14(0x1a6)])?_0x29b0f2[_0x3bfe14(0x1a6)]['length']:0x0};return _0x18c927['total']=_0x18c927[_0x3bfe14(0x1a9)]+_0x18c927[_0x3bfe14(0x1ba)]+_0x18c927[_0x3bfe14(0x1a6)],{'hasMessages':_0x18c927[_0x3bfe14(0x1dc)]>0x0,'hasUserMessages':_0x18c927[_0x3bfe14(0x1a6)]>0x0,'hasInterAgentMessages':_0x18c927['interAgentMessages']>0x0,'hasToolResults':_0x18c927['toolResults']>0x0,'counts':_0x18c927};}function hasUnprocessedIncomingMessages(_0x3e7f68){const _0x1da534=a0_0x4b69;if(_0x3e7f68[_0x1da534(0x1b8)]&&Array[_0x1da534(0x1a5)](_0x3e7f68[_0x1da534(0x1b8)])&&_0x3e7f68[_0x1da534(0x1b8)][_0x1da534(0x1c9)]>0x0)return!![];if(_0x3e7f68[_0x1da534(0x1dd)]&&_0x3e7f68[_0x1da534(0x1dd)]instanceof Map&&_0x3e7f68['interAgentTracking']['size']>0x0){const _0x512407=Date['now']();for(const _0x15e887 of _0x3e7f68[_0x1da534(0x1dd)][_0x1da534(0x1d6)]()){if(_0x15e887['lastReceived']&&_0x512407-_0x15e887['lastReceived']<SCHEDULER_CONFIG[_0x1da534(0x1b7)]&&_0x15e887['lastType']===_0x1da534(0x1be))return!![];}}return![];}function isAgentDelayed(_0x4951e0){const _0x2fb3d6=a0_0x4b69;if(!_0x4951e0[_0x2fb3d6(0x1ce)])return![];return new Date()<new Date(_0x4951e0[_0x2fb3d6(0x1ce)]);}function isAgentPaused(_0x5e41dd){const _0x42158b=a0_0x4b69;if(_0x5e41dd['status']===AGENT_STATUS[_0x42158b(0x1ca)]){if(_0x5e41dd['pausedUntil'])return new Date()<new Date(_0x5e41dd[_0x42158b(0x1c5)]);return!![];}if(_0x5e41dd[_0x42158b(0x1c5)]&&new Date()<new Date(_0x5e41dd[_0x42158b(0x1c5)]))return!![];return![];}function hasAutonomousWorkComplete(_0x384ed6){return _0x384ed6['autonomousWorkComplete']===!![];}export function shouldAgentBeActive(_0x4a8759){const _0x133ef8=a0_0x4b69;if(!_0x4a8759)return{'active':![],'reason':AGENT_ACTIVITY_STATUS['AGENT_NOT_FOUND'],'details':_0x133ef8(0x1ac)};if(_0x4a8759[_0x133ef8(0x1ab)]!==AGENT_STATUS[_0x133ef8(0x1c4)])return{'active':![],'reason':AGENT_ACTIVITY_STATUS['AGENT_INACTIVE_STATUS'],'details':'Agent\x20status\x20is\x20'+_0x4a8759['status']+',\x20expected\x20'+AGENT_STATUS[_0x133ef8(0x1c4)]};if(isAgentDelayed(_0x4a8759))return{'active':![],'reason':AGENT_ACTIVITY_STATUS['AGENT_DELAYED'],'details':_0x133ef8(0x1cf)+_0x4a8759['delayEndTime']};if(isAgentPaused(_0x4a8759))return{'active':![],'reason':AGENT_ACTIVITY_STATUS['AGENT_PAUSED'],'details':_0x4a8759[_0x133ef8(0x1c5)]?'Agent\x20paused\x20until\x20'+_0x4a8759['pausedUntil']:_0x133ef8(0x1b5)};if(_0x4a8759[_0x133ef8(0x1cc)])return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x133ef8(0x1a2)],'details':'Agent\x20stop\x20has\x20been\x20requested'};if(_0x4a8759[_0x133ef8(0x1bc)]===AGENT_MODE_STATES[_0x133ef8(0x1d3)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x133ef8(0x1c1)],'details':'Agent\x20is\x20currently\x20executing\x20(modeState=EXECUTING)'};const _0x41cea6=getMessageQueueStatus(_0x4a8759);if(_0x4a8759['mode']===AGENT_MODES['AGENT']){const _0xef6ed=hasPendingTasks(_0x4a8759),unprocessedMessages=hasUnprocessedIncomingMessages(_0x4a8759);if(_0xef6ed)return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x133ef8(0x1a8)],'details':'Agent\x20has\x20pending/in-progress\x20tasks'};if(_0x41cea6[_0x133ef8(0x1a4)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['HAS_QUEUED_MESSAGES'],'details':_0x133ef8(0x1aa)+_0x41cea6[_0x133ef8(0x1c3)]['total']+'\x20queued\x20messages\x20(T:'+_0x41cea6[_0x133ef8(0x1c3)][_0x133ef8(0x1a9)]+_0x133ef8(0x1b6)+_0x41cea6['counts'][_0x133ef8(0x1ba)]+',\x20U:'+_0x41cea6['counts']['userMessages']+')'};if(unprocessedMessages)return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x133ef8(0x1c1)],'details':_0x133ef8(0x1bb)};return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x133ef8(0x1b0)],'details':'AGENT\x20mode\x20agent\x20has\x20no\x20pending\x20tasks\x20or\x20messages'};}if(_0x4a8759['mode']===AGENT_MODES[_0x133ef8(0x1ad)]){if(_0x41cea6[_0x133ef8(0x1c7)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['HAS_USER_MESSAGES'],'details':'Agent\x20has\x20'+_0x41cea6[_0x133ef8(0x1c3)]['userMessages']+_0x133ef8(0x1c8)};if(_0x41cea6[_0x133ef8(0x1b3)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['HAS_INTER_AGENT_MESSAGES'],'details':_0x133ef8(0x1aa)+_0x41cea6['counts']['interAgentMessages']+_0x133ef8(0x1af)};return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x133ef8(0x1d9)],'details':_0x41cea6['hasToolResults']?_0x133ef8(0x1e0)+_0x41cea6[_0x133ef8(0x1c3)][_0x133ef8(0x1a9)]+_0x133ef8(0x1bf):_0x133ef8(0x1df)};}return{'active':![],'reason':AGENT_ACTIVITY_STATUS['UNKNOWN_MODE'],'details':_0x133ef8(0x1d1)+_0x4a8759['mode']};}export function getActiveAgents(_0x4ae95f){const _0xb815d3=a0_0x4b69,_0x382581=_0x4ae95f instanceof Map?Array[_0xb815d3(0x1c6)](_0x4ae95f[_0xb815d3(0x1d6)]()):_0x4ae95f;return _0x382581[_0xb815d3(0x1b1)](_0x4ef0bf=>{const _0x2e53bc=_0xb815d3,_0x471178=shouldAgentBeActive(_0x4ef0bf);return{'agent':_0x4ef0bf,'agentId':_0x4ef0bf['id'],'sessionId':_0x4ef0bf[_0x2e53bc(0x1d0)],..._0x471178};})['filter'](_0x109e2e=>_0x109e2e[_0xb815d3(0x1d2)]);}export function getAllAgentActivityStatus(_0x44be0b){const _0x25a90e=a0_0x4b69,_0x47f7b0=_0x44be0b instanceof Map?Array['from'](_0x44be0b[_0x25a90e(0x1d6)]()):_0x44be0b;return _0x47f7b0[_0x25a90e(0x1b1)](_0x5de937=>{const _0x515032=_0x25a90e,_0x5c4126=shouldAgentBeActive(_0x5de937),_0xe29786=getMessageQueueStatus(_0x5de937);return{'agentId':_0x5de937['id'],'agentName':_0x5de937[_0x515032(0x1c0)],'mode':_0x5de937['mode'],'status':_0x5de937[_0x515032(0x1ab)],'active':_0x5c4126[_0x515032(0x1d2)],'reason':_0x5c4126['reason'],'details':_0x5c4126['details'],'queueCounts':_0xe29786['counts'],'hasPendingTasks':hasPendingTasks(_0x5de937),'isDelayed':isAgentDelayed(_0x5de937),'isPaused':isAgentPaused(_0x5de937),'stopRequested':_0x5de937[_0x515032(0x1cc)]||![],'delayEndTime':_0x5de937['delayEndTime']||null,'pausedUntil':_0x5de937[_0x515032(0x1c5)]||null};});}export function shouldSkipIteration(_0x22ce00){const _0x244b14=a0_0x4b69;if(!_0x22ce00)return{'skip':!![],'reason':_0x244b14(0x1b4)};if(isAgentDelayed(_0x22ce00))return{'skip':!![],'reason':_0x244b14(0x1cf)+_0x22ce00['delayEndTime']};if(_0x22ce00[_0x244b14(0x1c5)]&&new Date()<new Date(_0x22ce00['pausedUntil']))return{'skip':!![],'reason':_0x244b14(0x1d4)+_0x22ce00[_0x244b14(0x1c5)]};return{'skip':![],'reason':null};}function a0_0x3ebd(){const _0x3550a5=['qunusvzf','Cgf1C2vKvw50AwW','zNjVBq','AgfZvxnLCK1LC3nHz2vZ','ihvZzxiGBwvZC2fNzsHZksb0BYbWCM9JzxnZ','BgvUz3rO','uefvu0ve','mtz0CwvJAuq','C3rVCfjLCxvLC3rLza','mZbPA0DMv20','zgvSyxLfBMruAw1L','qwDLBNqGzgvSyxLLzcb1BNrPBca','C2vZC2LVBKLK','vw5RBM93BIbHz2vUDcbTB2rLoIa','ywn0AxzL','rvHfq1vusu5h','qwDLBNqGCgf1C2vKihvUDgLSia','mJm0ndKYwvffCfHY','DMfSDwvZ','ntmYmtq5mZziCvrttuS','mJi1mZaZmM1bt1fJva','q0Hbvf9nt0rfx05px01fu1nbr0vt','ntK4odq0EhzYrg5j','mte3mde1oe5kEg5SBa','Dg90ywW','Aw50zxjbz2vUDfrYywnRAw5N','nJu1mtCWnKriCvrJyq','q0HbvcbTB2rLic0GBM8GBwvZC2fNzxmGDg8GChjVy2vZCW','q0HbvcbTB2rLic0GAgfZia','u1rpuf9srvfvrvnuruq','DgfZA3m','AgfZtwvZC2fNzxm','AxnbCNjHEq','DxnLCK1LC3nHz2vZ','su5Fufjpr1jfu1m','seftx1bftKrjtKDFvefts1m','Dg9VBfjLC3vSDhm','qwDLBNqGAgfZia','C3rHDhvZ','qwDLBNqGB2jQzwn0igLZig51BgWGB3iGDw5KzwzPBMvK','q0Hbva','ndvHzKHxz00','igLUDgvYlwfNzw50ig1LC3nHz2uOCYKGDg8GChjVy2vZCW','tK9FuevoreLor19xt1jl','BwfW','ndvmtwvSExK','AgfZsw50zxjbz2vUDe1LC3nHz2vZ','qwDLBNqGBM90igzVDw5K','qwDLBNqGCgf1C2vKigLUzgvMAw5PDgvSEq','lcbjoG','uKvdru5ux01fu1nbr0vFveHsrvnit0Xex01t','Aw5JB21PBMDnzxnZywDLCW','DgfZA0XPC3q','Aw50zxjbz2vUDe1LC3nHz2vZ','qwDLBNqGAgfZihvUChjVy2vZC2vKigLUy29TAw5Nig1LC3nHz2vZ','Bw9Kzvn0yxrL','mtbkAeXjBeG','CMvJzwL2zwq','ihrVB2WGCMvZDwX0CYbIDxqGBM8GBMv3ig1LC3nHz2vZ','BMfTzq','qvvut05ptu9vu19nt0rfx0fdveLwrq','mJe4mdyWBe9Ltu1M','y291BNrZ'];a0_0x3ebd=function(){return _0x3550a5;};return a0_0x3ebd();}export{hasPendingTasks,getMessageQueueStatus,hasUnprocessedIncomingMessages,isAgentDelayed,isAgentPaused,hasAutonomousWorkComplete};export default{'shouldAgentBeActive':shouldAgentBeActive,'getActiveAgents':getActiveAgents,'getAllAgentActivityStatus':getAllAgentActivityStatus,'shouldSkipIteration':shouldSkipIteration,'hasPendingTasks':hasPendingTasks,'getMessageQueueStatus':getMessageQueueStatus,'hasUnprocessedIncomingMessages':hasUnprocessedIncomingMessages,'isAgentDelayed':isAgentDelayed,'isAgentPaused':isAgentPaused,'hasAutonomousWorkComplete':hasAutonomousWorkComplete};
@@ -1 +1 @@
1
- const a0_0x1c04f4=a0_0x89e3;(function(_0x1e84a9,_0x15b070){const _0x5970c8=a0_0x89e3,_0x580d38=_0x1e84a9();while(!![]){try{const _0xdbfda1=-parseInt(_0x5970c8(0x12e))/0x1*(parseInt(_0x5970c8(0x14b))/0x2)+parseInt(_0x5970c8(0x123))/0x3+parseInt(_0x5970c8(0x107))/0x4+parseInt(_0x5970c8(0x124))/0x5+-parseInt(_0x5970c8(0x146))/0x6*(parseInt(_0x5970c8(0xeb))/0x7)+parseInt(_0x5970c8(0xf7))/0x8+-parseInt(_0x5970c8(0xd8))/0x9;if(_0xdbfda1===_0x15b070)break;else _0x580d38['push'](_0x580d38['shift']());}catch(_0x16e85d){_0x580d38['push'](_0x580d38['shift']());}}}(a0_0x552e,0xb6d68));function a0_0x552e(){const _0x5080b1=['CxvHBgL0Eq','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','r1buxZq','x3rYDw5JyxrLtwvZC2fNzq','x2nOzwnRtw9KzwXizwfSDgG','Dg9Rzw4GBgLTAxq','CMvXDwvZDeLK','vw5RBM93BIbTB2rLBdOG','otHMtKfbDhq','C3rHDhvZ','ueHj','C3LZDgvTuhjVBxb0','C2v0','AxnpCgvU','CM9Szq','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','x2zVCM1HDezVCK9Wzw5bsq','CgHP','Dg9ju09tDhjPBMC','ue9tva','nda5otmYoeDZAhrRza','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','zMfZDa','x2zVCM1HDezVCKfUDgHYB3bPyW','r1buxZrFtuLosq','x3n1Bw1HCML6zu1LC3nHz2vZ','Dg9vChbLCKnHC2u','Dg9tDhjPBMC','ChjVBxb0igLZihrVBYbSB25N','y3vZDg9TqxbPs2v5CW','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','BwvZC2fNzxm','vg9Rzw4GBgLTAxqGzxHJzwvKzwq6ia','D2fYBG','yJy0x2PZB24','CMv0CNLbDhrLBxb0CW','ndaYmZiZmNHbser5wq','Bwf4x3rVA2vUCW','x21HA2vjBwfNzufqsvjLCxvLC3q','C2vZC2LVBKLK','y29UDgvUDa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','tK9ux0zpvu5e','y2XHC3nPzNLfCNjVCG','qKfex0DbvevxqvK','BM93','Aw5JBhvKzxm','Bwf4Aw11Bq','Aw1Hz2vZ','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','ywDLBNrqB29S','quKGC2vYDMLJzsbLCNjVCJOG','rKfmtejbq0S','ueHjxZq','l2HLywX0Aa','t1bftKfj','Aw5MBW','qu5usfjpueLdx09qvvm','BwfW','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','CgXHDgzVCM1qCM92AwrLza','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','zxjYB3i','u0vsvKLdrv9vtKfwquLmqujmrq','mte0ntm2nfDivhLIrq','nZmYndK1nw9bsLfLCG','DxnHz2u','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','zMX1Ec0XlJeTChjV','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','zgvLChnLzwS','C3vTBwfYEq','C3LZDgvT','yNvKz2v0u2vYDMLJzq','CgvYC2LZDefNzw50u3rHDgu','nZvZwgnACeW','x2LZvMfSAwrnB2rLBa','y29UDgv4DfDPBMrVDW','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','vMfSAwrHDgLUzYbTB2rLBa','BwvZC2fNzq','Bw9KzwW','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','C3rHy2S','AgLNAa','DxnLCG','y2vPBa','DMvUzg9YqxbPs2v5','zgvIDwC','CMf0zuXPBwL0zxjZ','C3r5Bgu','u3LZDgvToIa','qu5usfjpueLdx1nptK5fva','AgvHBhrOlwnOzwnR','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','z2vUzxjHDgvjBwfNzq','y2LYy3vPDejYzwfRzxi','x3jLC2v0q2LYy3vPDejYzwfRzxi','BgvUz3rO','mZq4nJu0CwTsA3by','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','AM9PBG','CMvXlq','y29UzMLN','mta1nZbnr3HIC1y','vu5bvvrit1jjwKve','zgf0yq','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','x2DLDfzLBMrVCKzYB21nB2rLBa','DML2Awq','y29UDgv4DcbSzw5NDgG','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','zMLUAxnOuMvHC29U','B3b0Aw9UCW','C3vIC3rY','C3vIC3rYAw5N','x3jLy29YzezHAwX1CMu','DhjHy2TvC2fNzq','yxbPs2v5twfUywDLCG','yMfJA2vUza','yMfZzvvYBa','ChjVDMLKzxi','AgfUzgXLshr0CevYCM9Y','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','y2XHDwrL','yxnZAxn0yw50','qu5usfjpueLdx0HbsuTv','DgHYzxnOB2XK','qMvHCMvYia','CMvZCg9UC2vgB3jTyxq','sw52ywXPzcbYzxf1zxn0oIa','x21HA2vbueLszxf1zxn0','zMfPBhvYzxm','ywDLBNrjza','A2v5CW','y29UDgv4Df9Szw5NDgHFzxHJzwvKzwq','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','mtaYnhGXmdi0','C3DPDgnOtw9KzwW','x2LZq2LYy3vPDejYzwfRzxjpCgvU','qvPvuKu','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','x2vZDgLTyxrLvg9Rzw5Z','x2zVCM1HDezVCKf6DxjL','ic0G','Dw5ZAgLMDa','y29TCgXLDgLVBL90B2TLBNm','y2HVAwnLCW','C2L6zq','Bwf4vg9Rzw5Z','y29UDMvYC2f0Aw9UCW','AgvHBhrOEq','sfruuca','ANnVBG','y2HLy2Ttzxj2AwnLsgvHBhrO','Bg9Nz2vY','x2HHBMrSzvjHDgvmAw1PDa','zxjYB3jiyw5KBgvY','DgLTzw91Da','CMfUzg9T','DgvTCgvYyxr1CMu','DxjS','DhjPBq','y3jLyxrLza','C3rYzwfT','C3rHBMrHCMq','C3rVCa','Dg9Rzw5Z','Bw9KzwXtCgvJCW','C2v0qwDLBNrqB29S','mti2ntu3odjlyvDcq0e','y29UDMvYC2f0Aw9UtwfUywDLCNm','BgfZDezHAwX1CMvuAw1L','Cg93','yw50AhjVCgLJ','C3rYAw5NAwz5','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','x2nOzwnRuMf0zuXPBwL0','Dgv4Da','CMvXDwvZDff1zxvL','yxbPs2v5'];a0_0x552e=function(){return _0x5080b1;};return a0_0x552e();}function a0_0x89e3(_0x331657,_0x33569a){_0x331657=_0x331657-0xc7;const _0x552e96=a0_0x552e();let _0x89e3ce=_0x552e96[_0x331657];if(a0_0x89e3['aHtlat']===undefined){var _0x129be2=function(_0x43e256){const _0x46f1ab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x47ca90='',_0x3925d6='';for(let _0x599960=0x0,_0x186995,_0x31a410,_0x39916a=0x0;_0x31a410=_0x43e256['charAt'](_0x39916a++);~_0x31a410&&(_0x186995=_0x599960%0x4?_0x186995*0x40+_0x31a410:_0x31a410,_0x599960++%0x4)?_0x47ca90+=String['fromCharCode'](0xff&_0x186995>>(-0x2*_0x599960&0x6)):0x0){_0x31a410=_0x46f1ab['indexOf'](_0x31a410);}for(let _0x3ae266=0x0,_0x26759a=_0x47ca90['length'];_0x3ae266<_0x26759a;_0x3ae266++){_0x3925d6+='%'+('00'+_0x47ca90['charCodeAt'](_0x3ae266)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3925d6);};a0_0x89e3['mVNqfL']=_0x129be2,a0_0x89e3['FbLAwR']={},a0_0x89e3['aHtlat']=!![];}const _0x38cc52=_0x552e96[0x0],_0x5eb787=_0x331657+_0x38cc52,_0x3cf0f9=a0_0x89e3['FbLAwR'][_0x5eb787];return!_0x3cf0f9?(_0x89e3ce=a0_0x89e3['mVNqfL'](_0x89e3ce),a0_0x89e3['FbLAwR'][_0x5eb787]=_0x89e3ce):_0x89e3ce=_0x3cf0f9,_0x89e3ce;}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x47ca90,_0x3925d6,_0x599960,_0x186995){const _0x4079da=a0_0x89e3;this[_0x4079da(0x14a)]=_0x47ca90,this[_0x4079da(0xc9)]=_0x3925d6,this[_0x4079da(0x12c)]=_0x599960,this[_0x4079da(0xcb)]=_0x186995,this[_0x4079da(0x15b)]=_0x47ca90['backend']?.['baseUrl']||'https://api.loxia.ai',this[_0x4079da(0xcc)]=_0x47ca90[_0x4079da(0x15a)]?.[_0x4079da(0xcc)]||0xea60,this['retryAttempts']=_0x47ca90[_0x4079da(0x15a)]?.[_0x4079da(0x106)]||0x3,this[_0x4079da(0x13c)]=new Map(),this[_0x4079da(0xe1)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x4079da(0x131)](),this[_0x4079da(0xd9)]=new Map(),this[_0x4079da(0x159)]=null,this['agentPool']=null;}async['sendMessage'](_0x31a410,_0x39916a,_0x3ae266={}){const _0xd4db80=a0_0x89e3,_0x26759a=_0xd4db80(0x149)+Date['now']()+'-'+Math['random']()['toString'](0x24)[_0xd4db80(0x155)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x31a410);const _0x5ec16e=this['_formatMessagesForModel'](_0x39916a,_0x31a410,_0x3ae266),_0x48997a={'model':_0x31a410,'messages':_0x5ec16e,'options':{'max_tokens':this[_0xd4db80(0xd6)][_0x31a410]?.[_0xd4db80(0x179)]||0xfa0,'temperature':_0x3ae266[_0xd4db80(0xce)]||0.7,'stream':_0x3ae266[_0xd4db80(0xd2)]||![]},'metadata':{'requestId':_0x26759a,'agentId':_0x3ae266['agentId'],'timestamp':new Date()['toISOString']()}};_0x3ae266[_0xd4db80(0xee)]&&(_0x48997a[_0xd4db80(0x12b)]=_0x3ae266[_0xd4db80(0xee)]);this[_0xd4db80(0xc9)]['info']('Sending\x20message\x20to\x20model:\x20'+_0x31a410,{'requestId':_0x26759a,'agentId':_0x3ae266[_0xd4db80(0x168)],'messageCount':Array['isArray'](_0x39916a)?_0x39916a[_0xd4db80(0x145)]:0x1,'maxTokens':_0x48997a[_0xd4db80(0x108)]});const _0x2a7c95=await this['_makeAPIRequest']('/chat/completions',_0x48997a,_0x26759a,{..._0x3ae266,'sessionId':_0x3ae266['sessionId'],'platformProvided':_0x3ae266['platformProvided']||![]});return _0x2a7c95[_0xd4db80(0x125)]&&await this[_0xd4db80(0x158)](_0x3ae266['agentId'],_0x31a410,{'prompt_tokens':_0x2a7c95['usage']['prompt_tokens']||0x0,'completion_tokens':_0x2a7c95['usage'][_0xd4db80(0x176)]||0x0,'total_tokens':_0x2a7c95[_0xd4db80(0x125)]['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0x2a7c95[_0xd4db80(0x177)][0x0]?.['message']?.[_0xd4db80(0x10b)]||'','model':_0x2a7c95['model'],'tokenUsage':_0x2a7c95[_0xd4db80(0x125)],'requestId':_0x26759a,'finishReason':_0x2a7c95[_0xd4db80(0x177)][0x0]?.['finish_reason']};}catch(_0x2b1a43){this[_0xd4db80(0x157)](),this[_0xd4db80(0xc9)]['error'](_0xd4db80(0x126)+_0x2b1a43[_0xd4db80(0x133)],{'requestId':_0x26759a,'model':_0x31a410,'agentId':_0x3ae266['agentId'],'error':_0x2b1a43[_0xd4db80(0x136)]}),await this[_0xd4db80(0x15d)](_0x2b1a43,{'requestId':_0x26759a,'model':_0x31a410,'agentId':_0x3ae266['agentId']});throw _0x2b1a43;}}async['routeModel'](_0x125c08,_0x490fa9={}){const _0x3514bc=a0_0x89e3;try{const _0x2bbb52=MODEL_ROUTING[_0x125c08[_0x3514bc(0xfd)]()]||MODEL_ROUTING['FALLBACK'],_0x479e0a=[];for(const _0x5b0c04 of _0x2bbb52){const _0x4ae31b=await this[_0x3514bc(0xe7)](_0x5b0c04);_0x4ae31b&&_0x479e0a['push'](_0x5b0c04);}if(_0x479e0a[_0x3514bc(0x145)]===0x0)return this[_0x3514bc(0xc9)][_0x3514bc(0x104)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x125c08+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x5a79f6=_0x479e0a[0x0];if(_0x490fa9['preferredModel']&&_0x479e0a['includes'](_0x490fa9['preferredModel']))_0x5a79f6=_0x490fa9['preferredModel'];else{if(_0x490fa9['complexity']===_0x3514bc(0x137)&&_0x479e0a[_0x3514bc(0x111)](MODELS['ANTHROPIC_OPUS']))_0x5a79f6=MODELS['ANTHROPIC_OPUS'];else _0x490fa9['speed']===_0x3514bc(0xf9)&&_0x479e0a['includes'](MODELS['ANTHROPIC_HAIKU'])&&(_0x5a79f6=MODELS[_0x3514bc(0x161)]);}return this[_0x3514bc(0xc9)]['info']('Model\x20routed\x20for\x20task:\x20'+_0x125c08,{'selectedModel':_0x5a79f6,'availableModels':_0x479e0a[_0x3514bc(0x145)],'context':_0x490fa9}),_0x5a79f6;}catch(_0x5dbd09){return this['logger']['error'](_0x3514bc(0xf2)+_0x5dbd09['message'],{'task':_0x125c08,'context':_0x490fa9}),MODEL_ROUTING[_0x3514bc(0x117)][0x0];}}async['compactizeConversation'](_0x4bd3e8,_0x2aab45){const _0x64312f=a0_0x89e3,_0x3f6651=this[_0x64312f(0xd6)][_0x2aab45];if(!_0x3f6651)throw new Error(_0x64312f(0xea)+_0x2aab45);const _0x2d2075=_0x3f6651[_0x64312f(0x130)]*0.8;let _0x7d4fd=0x0;const _0x147294=[],_0x12a59f=await Promise['all'](_0x4bd3e8['map'](async _0x59c588=>({..._0x59c588,'estimatedTokens':await this[_0x64312f(0x172)](_0x59c588[_0x64312f(0x10b)],_0x2aab45)}))),_0x156481=[..._0x12a59f]['reverse']();for(const _0x48d21b of _0x156481){if(_0x7d4fd+_0x48d21b['estimatedTokens']>_0x2d2075){if(_0x147294[_0x64312f(0x145)]===0x0){const _0x1ecbfc=await this[_0x64312f(0xe6)](_0x48d21b[_0x64312f(0x10b)],_0x2d2075);_0x147294['unshift']({..._0x48d21b,'content':_0x1ecbfc,'estimatedTokens':_0x2d2075});}break;}_0x147294['unshift'](_0x48d21b),_0x7d4fd+=_0x48d21b['estimatedTokens'];}const _0x35965f=_0x12a59f['slice'](0x0,-_0x147294['length']);if(_0x35965f['length']>0x0){const _0x2bd3ea=await this[_0x64312f(0xfc)](_0x35965f,_0x2aab45);_0x147294[_0x64312f(0x175)]({'role':_0x64312f(0x12b),'content':_0x64312f(0x11e)+_0x2bd3ea,'timestamp':_0x35965f[0x0]['timestamp'],'type':_0x64312f(0x12a),'estimatedTokens':await this['_estimateTokens'](_0x2bd3ea,_0x2aab45)});}return this['logger']['info'](_0x64312f(0x16b)+_0x2aab45,{'originalMessages':_0x4bd3e8['length'],'compactizedMessages':_0x147294['length'],'estimatedTokens':_0x7d4fd,'maxTokens':_0x2d2075}),_0x147294;}async[a0_0x1c04f4(0x158)](_0x3befa8,_0x44248e,_0xaa04c4,_0x39da51){const _0x2d87aa=a0_0x1c04f4;try{this[_0x2d87aa(0x12c)]&&this['budgetService'][_0x2d87aa(0x158)](_0x3befa8,_0x44248e,_0xaa04c4);}catch(_0x33e150){this['logger'][_0x2d87aa(0x121)]('Usage\x20tracking\x20failed:\x20'+_0x33e150[_0x2d87aa(0x133)]);}}async['handleHttpError'](_0xccea54,_0x59e128){const _0x11663d=a0_0x1c04f4,_0x2abedd=this['errorHandler']?.[_0x11663d(0x10e)]?.(_0xccea54,_0x59e128);switch(_0xccea54[_0x11663d(0xec)]||_0xccea54['code']){case HTTP_STATUS['BAD_REQUEST']:this['logger']['error']('Bad\x20request\x20to\x20AI\x20service',{'context':_0x59e128,'error':_0xccea54[_0x11663d(0x133)]});throw new Error(_0x11663d(0x165)+_0xccea54['message']);case HTTP_STATUS[_0x11663d(0x14c)]:this[_0x11663d(0xc9)]['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x59e128});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this['logger']['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x59e128});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x11663d(0x10d)]:this['logger'][_0x11663d(0x121)]('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x59e128});throw new Error(_0x11663d(0x114));case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x11663d(0xc9)]['warn']('Rate\x20limit\x20exceeded',{'context':_0x59e128}),await this['_handleRateLimit'](_0x59e128);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x11663d(0x10f)]:case HTTP_STATUS[_0x11663d(0x122)]:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x11663d(0xc9)]['error']('AI\x20service\x20unavailable',{'context':_0x59e128,'status':_0xccea54[_0x11663d(0xec)]}),await this[_0x11663d(0xe4)](_0x59e128);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x11663d(0xc9)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x59e128,'error':_0xccea54['message']});throw new Error(_0x11663d(0x116)+_0xccea54['message']);}}['setApiKeyManager'](_0x26130c){const _0x10e20e=a0_0x1c04f4;this[_0x10e20e(0x159)]=_0x26130c,this['logger']?.['info'](_0x10e20e(0x15e),{'hasManager':!!_0x26130c});}[a0_0x1c04f4(0xd7)](_0x580e58){const _0x44fd2b=a0_0x1c04f4;this['agentPool']=_0x580e58,this[_0x44fd2b(0xc9)]?.[_0x44fd2b(0x11b)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x580e58});}async[a0_0x1c04f4(0x142)](_0x481c65,_0x56f50c={}){const _0x469e20=a0_0x1c04f4,_0xea836d='img-'+Date[_0x469e20(0x110)]()+'-'+Math[_0x469e20(0xcd)]()[_0x469e20(0xfe)](0x24)['substr'](0x2,0x9);try{if(this[_0x469e20(0x16e)]())throw new Error(_0x469e20(0x101));if(!_0x481c65||typeof _0x481c65!=='string'||_0x481c65[_0x469e20(0xd0)]()['length']===0x0)throw new Error(_0x469e20(0x170));const _0x4b4a75=_0x56f50c[_0x469e20(0x134)]||_0x469e20(0x127),_0x28ca7=_0x56f50c[_0x469e20(0x178)]||_0x469e20(0x16c),_0x2cf9c7=_0x56f50c[_0x469e20(0xe3)]||_0x469e20(0xd3),_0x3c9a40=_0x56f50c[_0x469e20(0x164)]||_0x469e20(0xcf);this['logger'][_0x469e20(0x11b)]('Generating\x20image\x20with\x20model:\x20'+_0x4b4a75,{'requestId':_0xea836d,'model':_0x4b4a75,'size':_0x28ca7,'quality':_0x2cf9c7,'promptLength':_0x481c65['length']});const _0x5ec3d7={'prompt':_0x481c65,'model':_0x4b4a75,'size':_0x28ca7,'quality':_0x2cf9c7,'response_format':_0x3c9a40,'n':0x1,'metadata':{'requestId':_0xea836d,'timestamp':new Date()[_0x469e20(0xf5)]()}},_0x136494=await this[_0x469e20(0x109)](_0x5ec3d7,_0xea836d,{'sessionId':_0x56f50c[_0x469e20(0x10a)],'platformProvided':_0x56f50c['platformProvided']||![]});return this[_0x469e20(0x144)](),{'url':_0x136494['data']?.[0x0]?.['url']||null,'b64_json':_0x136494[_0x469e20(0x14d)]?.[0x0]?.[_0x469e20(0x105)]||null,'model':_0x136494[_0x469e20(0x134)]||_0x4b4a75,'requestId':_0xea836d,'revisedPrompt':_0x136494[_0x469e20(0x14d)]?.[0x0]?.['revised_prompt']||_0x481c65};}catch(_0x4931c0){this[_0x469e20(0x157)](),this['logger']['error'](_0x469e20(0x141)+_0x4931c0['message'],{'requestId':_0xea836d,'model':_0x56f50c[_0x469e20(0x134)],'error':_0x4931c0['stack']});throw _0x4931c0;}}async[a0_0x1c04f4(0xc8)](){const _0xe8b058=a0_0x1c04f4;try{const _0x3567fc=await this[_0xe8b058(0x166)](_0xe8b058(0x119),{},_0xe8b058(0x140));return _0x3567fc[_0xe8b058(0xec)]===_0xe8b058(0x17b);}catch(_0x28d101){return![];}}async['switchAgentModel'](_0x54bd4f,_0x2a8651){const _0x13bec4=a0_0x1c04f4;try{if(!this[_0x13bec4(0x12f)](_0x2a8651))throw new Error('Invalid\x20model:\x20'+_0x2a8651);let _0x35da5e=this[_0x13bec4(0xd9)]['get'](_0x54bd4f);!_0x35da5e&&(_0x35da5e=new ConversationManager(_0x54bd4f,this[_0x13bec4(0xc9)]),this[_0x13bec4(0xd9)][_0x13bec4(0xef)](_0x54bd4f,_0x35da5e));const _0x19378a=await _0x35da5e['switchModel'](_0x2a8651),_0x437699=await this['agentPool']?.['getAgent'](_0x54bd4f);return _0x437699&&(_0x437699['currentModel']=_0x2a8651,await this[_0x13bec4(0x115)][_0x13bec4(0x12d)](_0x54bd4f)),this['logger'][_0x13bec4(0x11b)]('Agent\x20model\x20switched:\x20'+_0x54bd4f,{'newModel':_0x2a8651,'messageCount':_0x19378a['messages']['length']}),{'success':!![],'agentId':_0x54bd4f,'newModel':_0x2a8651,'conversation':_0x19378a};}catch(_0x57937a){this[_0x13bec4(0xc9)]['error']('Model\x20switch\x20failed:\x20'+_0x57937a['message'],{'agentId':_0x54bd4f,'newModel':_0x2a8651});throw _0x57937a;}}['_initializeModelSpecs'](){const _0x1740ea=a0_0x1c04f4,_0x21604d={[MODELS[_0x1740ea(0x13f)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x1740ea(0x11c)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x1740ea(0x161)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x1740ea(0xe5)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x1740ea(0xfb)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x1740ea(0x11a)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x1740ea(0x118)]]:{'provider':MODEL_PROVIDERS[_0x1740ea(0xed)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x1740ea(0x16f),'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':_0x1740ea(0x16f),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x1740ea(0x16f),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x1740ea(0x16f),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x21604d;}[a0_0x1c04f4(0x120)](_0x3c4a0c,_0x2434f0,_0x44f172){const _0x2cf33d=a0_0x1c04f4,_0x312be5=this[_0x2cf33d(0xd6)][_0x2434f0]||{'provider':_0x2cf33d(0x16f)};let _0x28149b;typeof _0x3c4a0c==='string'?_0x28149b=[{'role':'user','content':_0x3c4a0c}]:_0x28149b=_0x3c4a0c[_0x2cf33d(0x11d)](_0x4db75a=>this['_formatSingleMessage'](_0x4db75a,_0x2434f0));switch(_0x312be5[_0x2cf33d(0x15c)]){case MODEL_PROVIDERS['ANTHROPIC']:return this[_0x2cf33d(0xfa)](_0x28149b);case MODEL_PROVIDERS['OPENAI']:return this['_formatForOpenAI'](_0x28149b);case MODEL_PROVIDERS['AZURE']:return this[_0x2cf33d(0x173)](_0x28149b);default:return _0x28149b;}}['_formatSingleMessage'](_0x377c3a,_0x1fdc4e){const _0x15cc68=a0_0x1c04f4;return{'role':_0x377c3a[_0x15cc68(0xf1)]||'user','content':_0x377c3a[_0x15cc68(0x10b)],'timestamp':_0x377c3a['timestamp']};}[a0_0x1c04f4(0xfa)](_0x49813b){return _0x49813b['map'](_0x52686f=>{const _0x52e052=a0_0x89e3;if(_0x52686f['role']===_0x52e052(0x12b))return{'role':_0x52e052(0x138),'content':_0x52e052(0x13e)+_0x52686f['content']};return _0x52686f;});}[a0_0x1c04f4(0xf3)](_0x5f010d){return _0x5f010d;}[a0_0x1c04f4(0x173)](_0x50f7c0){const _0x56b25d=a0_0x1c04f4;return _0x50f7c0[_0x56b25d(0x11d)](_0x33d41d=>({..._0x33d41d,'content':typeof _0x33d41d[_0x56b25d(0x10b)]==='string'?_0x33d41d[_0x56b25d(0x10b)]:JSON['stringify'](_0x33d41d[_0x56b25d(0x10b)])}));}['_isValidModel'](_0x58a20e){const _0x288e83=a0_0x1c04f4;this['logger']['debug'](_0x288e83(0x132),{'model':_0x58a20e,'modelType':typeof _0x58a20e});if(this['modelSpecs'][_0x58a20e]!==undefined)return!![];return this[_0x288e83(0xc9)]['warn']('Model\x20validation\x20failed',{'model':_0x58a20e,'availableModels':Object[_0x288e83(0x169)](this['modelSpecs'])}),![];}async[a0_0x1c04f4(0xe7)](_0x1a994e){return!![];}async['_estimateTokens'](_0x5efc8f,_0x11c944){const _0x174cae=a0_0x1c04f4;return Math[_0x174cae(0x139)](_0x5efc8f[_0x174cae(0x145)]/0x4);}async[a0_0x1c04f4(0xe6)](_0x242899,_0xeae7ca){const _0x10c4c3=a0_0x1c04f4,_0x5c4b6b=_0xeae7ca*0x4;if(_0x242899['length']<=_0x5c4b6b)return _0x242899;return _0x242899[_0x10c4c3(0x156)](0x0,_0x5c4b6b-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x1c1140,_0x4bb3d5){const _0x480eef=a0_0x1c04f4,_0x4cb54a=_0x1c1140['map'](_0x37ba3a=>_0x37ba3a['role']+':\x20'+_0x37ba3a[_0x480eef(0x10b)])[_0x480eef(0x148)]('\x0a'),_0x271e1e=0x1f4;if(_0x4cb54a['length']<=_0x271e1e)return _0x4cb54a;return _0x4cb54a['substring'](0x0,_0x271e1e)+_0x480eef(0x135);}async[a0_0x1c04f4(0x166)](_0x3e9a9f,_0x67e350,_0x4e7220,_0xeeb616={}){const _0x2e697b=a0_0x1c04f4,_0x5d86ed=_0x2e697b(0x10c);let _0x5e891c,_0x160bb0=null,_0x1ae1b7=null;this['logger']?.[_0x2e697b(0x11b)](_0x2e697b(0x14e),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0xeeb616['sessionId'],'hasSessionId':!!_0xeeb616[_0x2e697b(0x10a)],'optionsKeys':Object[_0x2e697b(0x169)](_0xeeb616),'model':_0x67e350[_0x2e697b(0x134)]});if(this['apiKeyManager']&&_0xeeb616[_0x2e697b(0x10a)]){const _0x557252=this[_0x2e697b(0x159)]['getKeysForRequest'](_0xeeb616['sessionId'],{'platformProvided':_0xeeb616[_0x2e697b(0x11f)]||![],'vendor':this[_0x2e697b(0x14f)](_0x67e350[_0x2e697b(0x134)])});_0x160bb0=_0x557252['loxiaApiKey'],_0x1ae1b7=_0x557252[_0x2e697b(0x13a)],this['logger']?.[_0x2e697b(0x13b)]('Retrieved API keys from session manager',{'sessionId':_0xeeb616[_0x2e697b(0x10a)],'hasLoxiaKey':!!_0x160bb0,'hasVendorKey':!!_0x1ae1b7,'vendor':this[_0x2e697b(0x14f)](_0x67e350['model'])});}!_0x160bb0&&_0xeeb616[_0x2e697b(0xe2)]&&(_0x160bb0=_0xeeb616['apiKey']);!_0x160bb0&&this[_0x2e697b(0x14a)][_0x2e697b(0xe2)]&&(_0x160bb0=this[_0x2e697b(0x14a)]['apiKey']);if(!_0x160bb0)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x2c8b8e=_0x67e350[_0x2e697b(0x134)],_0x3a157a={'conversationId':_0x4e7220,'message':_0x67e350['messages'][_0x67e350['messages']['length']-0x1]?.[_0x2e697b(0x10b)]||'','messages':_0x67e350[_0x2e697b(0x102)],'model':_0x2c8b8e,'requestId':_0x4e7220,'options':_0x67e350[_0x2e697b(0x154)]||{},'platformProvided':_0xeeb616['platformProvided']||![]};_0x67e350[_0x2e697b(0x12b)]&&(_0x3a157a[_0x2e697b(0xee)]=_0x67e350['system']);_0xeeb616[_0x2e697b(0x11f)]?_0x3a157a[_0x2e697b(0xe2)]=_0x160bb0:(_0x1ae1b7&&(_0x3a157a[_0x2e697b(0x13a)]=_0x1ae1b7),_0xeeb616['customApiKeys']&&(_0x3a157a['customApiKeys']=_0xeeb616[_0x2e697b(0x100)]),_0x3a157a['apiKey']=_0x160bb0);for(let _0x362a39=0x1;_0x362a39<=this[_0x2e697b(0x106)];_0x362a39++){try{this[_0x2e697b(0xc9)]['info'](_0x2e697b(0x147),{'url':_0x5d86ed,'model':_0x67e350[_0x2e697b(0x134)],'requestId':_0x4e7220,'attempt':_0x362a39,'hasApiKey':!!_0x160bb0});const _0xdcc8a5=await fetch(_0x5d86ed,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x2e697b(0x163)+_0x160bb0,'X-Request-ID':_0x4e7220},'body':JSON[_0x2e697b(0xdd)](_0x3a157a),'timeout':this[_0x2e697b(0xcc)]});if(!_0xdcc8a5['ok']){const _0x4caa46=await _0xdcc8a5['text'](),_0x406b4a=new Error('HTTP\x20'+_0xdcc8a5['status']+':\x20'+_0xdcc8a5['statusText']+(_0x4caa46?'\x20-\x20'+_0x4caa46:''));_0x406b4a[_0x2e697b(0xec)]=_0xdcc8a5['status'];throw _0x406b4a;}const _0x31b85f=await _0xdcc8a5[_0x2e697b(0xc7)]();return{'choices':[{'message':{'content':_0x31b85f[_0x2e697b(0x10b)]||'','role':'assistant'},'finish_reason':_0x31b85f[_0x2e697b(0x153)]||_0x2e697b(0xd4)}],'usage':_0x31b85f['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x31b85f['model']||_0x67e350['model'],'id':_0x31b85f[_0x2e697b(0xe9)]||_0x4e7220};}catch(_0x335024){_0x5e891c=_0x335024,this[_0x2e697b(0xc9)][_0x2e697b(0x104)](_0x2e697b(0x152),{'attempt':_0x362a39,'requestId':_0x4e7220,'error':_0x335024[_0x2e697b(0x133)],'status':_0x335024[_0x2e697b(0xec)]});if(_0x362a39<this['retryAttempts']){const _0x1b33f9=Math['pow'](0x2,_0x362a39)*0x3e8;this[_0x2e697b(0xc9)]['warn']('Retrying\x20in\x20'+_0x1b33f9+'ms',{'attempt':_0x362a39,'requestId':_0x4e7220}),await new Promise(_0x3e444c=>setTimeout(_0x3e444c,_0x1b33f9));}}}this[_0x2e697b(0xc9)]['error']('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x4e7220,'error':_0x5e891c['message']});const _0x444383=_0x5e891c[_0x2e697b(0x133)]&&_0x5e891c[_0x2e697b(0x133)][_0x2e697b(0x111)]('No\x20API\x20key\x20configured');if(_0x444383)throw new Error('API\x20Configuration\x20Error:\x20'+_0x5e891c[_0x2e697b(0x133)]);const _0x5909bf=(_0x5e891c[_0x2e697b(0x133)]||'')['toLowerCase'](),_0x331220=_0x5909bf[_0x2e697b(0x111)](_0x2e697b(0xff))||_0x5909bf[_0x2e697b(0x111)](_0x2e697b(0x151))||_0x5909bf['includes'](_0x2e697b(0xe8))||_0x5909bf[_0x2e697b(0x111)](_0x2e697b(0x16a))||_0x5909bf['includes'](_0x2e697b(0xd5))&&_0x5909bf[_0x2e697b(0x111)](_0x2e697b(0x112));if(_0x331220)throw new Error(_0x2e697b(0x103)+_0x5e891c[_0x2e697b(0x133)]);return{'choices':[{'message':{'content':_0x2e697b(0xde)+_0x5e891c['message'],'role':_0x2e697b(0x160)},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x67e350[_0x2e697b(0x134)],'id':'error-'+_0x4e7220,'error':_0x5e891c[_0x2e697b(0x133)]};}async[a0_0x1c04f4(0x109)](_0x3089ee,_0x1c95d5,_0x2a9c3b={}){const _0xa07f84=a0_0x1c04f4,_0x3d60e9='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x5070ac,_0x2d6aa4=null,_0x40bb20=null;this[_0xa07f84(0xc9)]?.['info'](_0xa07f84(0x171),{'hasApiKeyManager':!!this[_0xa07f84(0x159)],'sessionId':_0x2a9c3b['sessionId'],'hasSessionId':!!_0x2a9c3b[_0xa07f84(0x10a)],'model':_0x3089ee['model']});if(this[_0xa07f84(0x159)]&&_0x2a9c3b['sessionId']){const _0x561646=this[_0xa07f84(0x159)]['getKeysForRequest'](_0x2a9c3b[_0xa07f84(0x10a)],{'platformProvided':_0x2a9c3b[_0xa07f84(0x11f)]||![],'vendor':this[_0xa07f84(0x14f)](_0x3089ee[_0xa07f84(0x134)])});_0x2d6aa4=_0x561646['loxiaApiKey'],_0x40bb20=_0x561646['vendorApiKey'],this['logger']?.[_0xa07f84(0x13b)]('Retrieved API keys from session manager for image',{'sessionId':_0x2a9c3b['sessionId'],'hasLoxiaKey':!!_0x2d6aa4,'hasVendorKey':!!_0x40bb20});}!_0x2d6aa4&&_0x2a9c3b[_0xa07f84(0xe2)]&&(_0x2d6aa4=_0x2a9c3b[_0xa07f84(0xe2)]);!_0x2d6aa4&&this[_0xa07f84(0x14a)][_0xa07f84(0xe2)]&&(_0x2d6aa4=this[_0xa07f84(0x14a)]['apiKey']);if(!_0x2d6aa4)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x35cfdb={'prompt':_0x3089ee['prompt'],'model':_0x3089ee['model']||'azure-openai-dalle3','size':_0x3089ee['size'],'quality':_0x3089ee[_0xa07f84(0xe3)],'style':_0x3089ee[_0xa07f84(0x13d)]||_0xa07f84(0x150),'n':_0x3089ee['n']||0x1,'requestId':_0x1c95d5};for(let _0x57335a=0x1;_0x57335a<=this[_0xa07f84(0x106)];_0x57335a++){try{this['logger'][_0xa07f84(0x11b)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x3d60e9,'model':_0x3089ee['model'],'requestId':_0x1c95d5,'attempt':_0x57335a,'hasApiKey':!!_0x2d6aa4});const _0x40433d=await fetch(_0x3d60e9,{'method':_0xa07f84(0xf6),'headers':{'Content-Type':'application/json','Authorization':_0xa07f84(0x163)+_0x2d6aa4,'X-Request-ID':_0x1c95d5},'body':JSON[_0xa07f84(0xdd)](_0x35cfdb),'timeout':this['timeout']*0x2});if(!_0x40433d['ok']){const _0x4cc2c3=await _0x40433d[_0xa07f84(0xe0)](),_0x228ece=new Error(_0xa07f84(0x17c)+_0x40433d['status']+':\x20'+_0x40433d['statusText']+(_0x4cc2c3?_0xa07f84(0x174)+_0x4cc2c3:''));_0x228ece['status']=_0x40433d[_0xa07f84(0xec)];throw _0x228ece;}const _0x530bf0=await _0x40433d['json']();return{'data':_0x530bf0[_0xa07f84(0x113)]||[],'model':_0x530bf0[_0xa07f84(0x134)]||_0x3089ee['model'],'created':_0x530bf0[_0xa07f84(0xd1)]||Date['now'](),'usage':_0x530bf0[_0xa07f84(0x125)]};}catch(_0x20260b){_0x5070ac=_0x20260b,this[_0xa07f84(0xc9)]['warn']('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x57335a,'requestId':_0x1c95d5,'error':_0x20260b['message'],'status':_0x20260b['status']});if(_0x57335a<this[_0xa07f84(0x106)]){const _0x2c575c=Math[_0xa07f84(0xdb)](0x2,_0x57335a)*0x3e8;this['logger'][_0xa07f84(0x104)]('Retrying\x20in\x20'+_0x2c575c+'ms',{'attempt':_0x57335a,'requestId':_0x1c95d5}),await new Promise(_0x1d05f1=>setTimeout(_0x1d05f1,_0x2c575c));}}}this[_0xa07f84(0xc9)]['error'](_0xa07f84(0x128),{'requestId':_0x1c95d5,'error':_0x5070ac['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x5070ac[_0xa07f84(0x133)]);}async[a0_0x1c04f4(0xdf)](_0x2ea40b){await new Promise(_0x220f08=>setTimeout(_0x220f08,0x64));}async[a0_0x1c04f4(0xca)](_0x47313d){const _0x236ac1=0xea60;this['logger']['info']('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x236ac1+'ms',_0x47313d),await new Promise(_0x1995c3=>setTimeout(_0x1995c3,_0x236ac1));}async['_handleServiceUnavailable'](_0x16d3c5){const _0x34e477=a0_0x1c04f4;this[_0x34e477(0x157)]();const _0x12dfff=0x7530;this[_0x34e477(0xc9)]['info']('Service\x20unavailable,\x20waiting\x20'+_0x12dfff+'ms',_0x16d3c5),await new Promise(_0x3bf1b0=>setTimeout(_0x3bf1b0,_0x12dfff));}[a0_0x1c04f4(0x16e)](){const _0x4063d0=a0_0x1c04f4;if(!this[_0x4063d0(0x143)]['isOpen'])return![];const _0x5356e3=Date[_0x4063d0(0x110)]()-this[_0x4063d0(0x143)][_0x4063d0(0xda)];if(_0x5356e3>this['circuitBreaker']['timeout'])return this['circuitBreaker']['isOpen']=![],this['circuitBreaker'][_0x4063d0(0x167)]=0x0,![];return!![];}[a0_0x1c04f4(0x157)](){const _0x39daef=a0_0x1c04f4;this['circuitBreaker'][_0x39daef(0x167)]++,this[_0x39daef(0x143)]['lastFailureTime']=Date['now'](),this[_0x39daef(0x143)][_0x39daef(0x167)]>=this[_0x39daef(0x143)][_0x39daef(0x162)]&&(this[_0x39daef(0x143)]['isOpen']=!![],this[_0x39daef(0xc9)][_0x39daef(0x104)](_0x39daef(0xf8)));}[a0_0x1c04f4(0x144)](){const _0x551133=a0_0x1c04f4;this[_0x551133(0x143)]['failures']>0x0&&(this['circuitBreaker']['failures']=0x0,this[_0x551133(0x143)][_0x551133(0xf0)]=![],this[_0x551133(0xc9)]['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x1c04f4(0x14f)](_0x263f2c){const _0x1a2513=a0_0x1c04f4;if(!_0x263f2c)return null;const _0x2244e4=_0x263f2c['toLowerCase']();if(_0x2244e4['includes'](_0x1a2513(0xdc))||_0x2244e4[_0x1a2513(0x111)](_0x1a2513(0x15f)))return _0x1a2513(0xdc);else{if(_0x2244e4[_0x1a2513(0x111)]('openai')||_0x2244e4['includes']('gpt'))return'openai';else{if(_0x2244e4['includes']('deepseek'))return _0x1a2513(0x129);else{if(_0x2244e4['includes'](_0x1a2513(0xf4)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0xdc54d5,_0x529518){const _0x2c8ca4=a0_0x1c04f4;this[_0x2c8ca4(0x168)]=_0xdc54d5,this['logger']=_0x529518,this[_0x2c8ca4(0x17a)]=new Map();}async[a0_0x1c04f4(0x16d)](_0x1bf742){return{'messages':[],'model':_0x1bf742,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
1
+ const a0_0x5b1eca=a0_0xfc80;(function(_0x1c115e,_0xdddd12){const _0x9cc4ef=a0_0xfc80,_0x26866c=_0x1c115e();while(!![]){try{const _0x51f02d=parseInt(_0x9cc4ef(0x10d))/0x1*(parseInt(_0x9cc4ef(0xda))/0x2)+parseInt(_0x9cc4ef(0xfb))/0x3*(parseInt(_0x9cc4ef(0xc5))/0x4)+-parseInt(_0x9cc4ef(0x139))/0x5*(-parseInt(_0x9cc4ef(0x164))/0x6)+parseInt(_0x9cc4ef(0x12f))/0x7+-parseInt(_0x9cc4ef(0x140))/0x8*(parseInt(_0x9cc4ef(0x13b))/0x9)+-parseInt(_0x9cc4ef(0x110))/0xa*(-parseInt(_0x9cc4ef(0x150))/0xb)+parseInt(_0x9cc4ef(0x147))/0xc*(-parseInt(_0x9cc4ef(0x111))/0xd);if(_0x51f02d===_0xdddd12)break;else _0x26866c['push'](_0x26866c['shift']());}catch(_0x3d0f08){_0x26866c['push'](_0x26866c['shift']());}}}(a0_0x18a0,0xedb1f));function a0_0x18a0(){const _0x2f4151=['sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','CM9Szq','x3rYDw5JyxrLtwvZC2fNzq','x3jLy29YzezHAwX1CMu','BgvUz3rO','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','ywXS','Aw5MBW','y2HVAwnLCW','BwvZC2fNzq','Bwf4Aw11Bq','CMv2zxjZzq','ChvZAa','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','vg9Rzw4GBgLTAxqGzxHJzwvKzwq6ia','uMv0CNLPBMCGAw4G','x2HHBMrSzvjHDgvmAw1PDa','C2vZC2LVBKLK','qMvHCMvYia','y29UzMLN','Bg9Nz2vY','t1bftKfj','AgLNAa','y2XHDwrL','DgvTCgvYyxr1CMu','Dw5ZAgLMDa','yw50AhjVCgLJ','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','ndC2ndi4nwLdwNPjvq','x3jLC2v0q2LYy3vPDejYzwfRzxi','AM9PBG','qvPvuKu','x2LZvMfSAwrnB2rLBa','C3vIC3rY','z2v0','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','Dg90ywXFDg9Rzw5Z','AxnbCNjHEq','Dg9Rzw4GBgLTAxq','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','DML2Awq','ChjVBxb0x3rVA2vUCW','lcb1C2LUzYbMywXSyMfJAW','CMv0CNLbDhrLBxb0CW','zMfPBhvYzxm','mtGYodqYovPhEMDnqG','AgfUzgXLshr0CevYCM9Y','B3bLBMfP','mJm4nte5mhn2s0jAAW','mZm4EK1eDvLf','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','DxnHz2u','ywDLBNrjza','y2LYy3vPDejYzwfRzxi','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','C3LZDgvT','BgfZDezHAwX1CMvuAw1L','C3vIC3rYAw5N','Bg94AwfbCgLlzxK','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','y2XHC3nPzNLfCNjVCG','x21HA2vjBwfNzufqsvjLCxvLC3q','DxnLCG','C3rYAw5NAwz5','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','x21HA2vbueLszxf1zxn0','x2vZDgLTyxrLvg9Rzw5Z','yxnZAxn0yw50','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','Bw9KzwW','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','x2DLDfzLBMrVCKzYB21nB2rLBa','C2v0qxbPs2v5twfUywDLCG','C2XPy2u','zxjYB3i','y29UDgv4DcbSzw5NDgG','qu5usfjpueLd','ChjLzMvYCMvKtw9KzwW','C3rHy2S','mtaYmZmYm2XkzvrLsa','Bwf4vg9Rzw5Z','Bwf4x3rVA2vUCW','BwvZC2fNzxm','vu5bvvrit1jjwKve','BM93','tw9KzwWGC3DPDgnOigzHAwXLzdOG','x2LZq2LYy3vPDejYzwfRzxjpCgvU','zgvIDwC','CgHP','mJC3otu0mfnpENvWAq','Cg93','mJaYodG3t09yvvPQ','DhjPBq','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','u0vsvKLdrv9vtKfwquLmqujmrq','odH4vfLOwwq','ueHj','CgXHDgzVCM1qCM92AwrLza','zxn0Aw1HDgvKvg9Rzw5Z','y29UDMvYC2f0Aw9UCW','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','yxbPs2v5','mtG4nZuYoeLzwM1Vvq','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','Dg9ju09tDhjPBMC','zMfZDa','Aw1Nlq','C3LZDgvTuhjVBxb0','revfufnfruTFuJe','DgLTzxn0yw1W','C2vUze1LC3nHz2u','ntvtrgzLEvm','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','z2v0s2v5C0zVCLjLCxvLC3q','Dg9tDhjPBMC','qu5usfjpueLdx09qvvm','uMf0zsbSAw1PDcbLEgnLzwrLza','vw5RBM93BIbTB2rLBdOG','DMvUzg9YqxbPs2v5','ANnVBG','ChjVBxb0igLZihrVBYbSB25N','tM8GqvbjigTLEsbJB25MAwD1CMvK','y29UDMvYC2f0Aw9UtwfUywDLCNm','rKfmtejbq0S','Dgv4Da','DhjHy2TvC2fNzq','Dg9mB3DLCKnHC2u','qu5usfjpueLdx1nptK5fva','ueHjxZq','Bw9KzwXtCgvJCW','x2zVCM1HDezVCK9Wzw5bsq','nNbosuLzBa','y3vZDg9TqxbPs2v5CW','C2L6zq','DgLTzw91Da','A2v5CW','yxbPs2v5twfUywDLCG','qKfex1jfuvvfu1q','y29UDgvUDa','zxjYB3jiyw5KBgvY','yNvKz2v0u2vYDMLJzq','yMfJA2vUza','BwfW','BwLJCM9ZB2z0','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','C3rVCa','ic0G','ue9tva','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','nfLOvwTkvq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','D2fYBG','zMX1Ec0XlJeTChjV','y29Kzq','x2zVCM1HDezVCKf6DxjL','x3n1Bw1HCML6zu1LC3nHz2vZ','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','AxnpCgvU','CxvHBgL0Eq','ywDLBNrqB29S','C3rHDhvZ','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','x2nOzwnRtw9KzwXizwfSDgG','r0furvDbwv9usu1ft1vu','yMfZzvvYBa','sfruuca','Aw5JBhvKzxm','C3rYAw5N','zxjYB3iT','z3b0','mKjsrwjcAq','vMfSAwrHDgLUzYbTB2rLBa'];a0_0x18a0=function(){return _0x2f4151;};return a0_0x18a0();}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0xdddcc,_0x13839e,_0x183549,_0x4e5dd0){const _0x3368af=a0_0xfc80;this['config']=_0xdddcc,this['logger']=_0x13839e,this[_0x3368af(0xbc)]=_0x183549,this['errorHandler']=_0x4e5dd0,this['baseUrl']=_0xdddcc['backend']?.[_0x3368af(0xd4)]||'https://api.loxia.ai',this['timeout']=_0xdddcc['backend']?.[_0x3368af(0x167)]||0xea60,this['retryAttempts']=_0xdddcc[_0x3368af(0xbd)]?.['retryAttempts']||0x3,this['rateLimiters']=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x3368af(0x162)]=this['_initializeModelSpecs'](),this[_0x3368af(0x15b)]=new Map(),this[_0x3368af(0xb8)]=null,this[_0x3368af(0xcf)]=null;}async[a0_0x5b1eca(0x14f)](_0x4aa28b,_0x27e2e1,_0x360821={}){const _0x55f83b=a0_0x5b1eca,_0x4c4ab2='req-'+Date[_0x55f83b(0x134)]()+'-'+Math['random']()['toString'](0x24)[_0x55f83b(0x100)](0x2,0x9);try{if(this[_0x55f83b(0x136)]())throw new Error(_0x55f83b(0x13e));await this['_checkRateLimit'](_0x4aa28b);const _0xe02ecb=this[_0x55f83b(0xd1)](_0x27e2e1,_0x4aa28b,_0x360821),_0x1cee56={'model':_0x4aa28b,'messages':_0xe02ecb,'options':{'max_tokens':this['modelSpecs'][_0x4aa28b]?.[_0x55f83b(0x130)]||0xfa0,'temperature':_0x360821[_0x55f83b(0xf6)]||0.7,'stream':_0x360821['stream']||![]},'metadata':{'requestId':_0x4c4ab2,'agentId':_0x360821['agentId'],'timestamp':new Date()['toISOString']()}};_0x360821['systemPrompt']&&(_0x1cee56[_0x55f83b(0x117)]=_0x360821[_0x55f83b(0x14c)]);this['logger']['info'](_0x55f83b(0xf9)+_0x4aa28b,{'requestId':_0x4c4ab2,'agentId':_0x360821['agentId'],'messageCount':Array[_0x55f83b(0x104)](_0x27e2e1)?_0x27e2e1['length']:0x1,'maxTokens':_0x1cee56[_0x55f83b(0x131)]});const _0x11713d=await this['_makeAPIRequest']('/chat/completions',_0x1cee56,_0x4c4ab2,{..._0x360821,'sessionId':_0x360821['sessionId'],'platformProvided':_0x360821[_0x55f83b(0x142)]||![]});return _0x11713d['usage']&&await this[_0x55f83b(0x15e)](_0x360821[_0x55f83b(0x114)],_0x4aa28b,{'prompt_tokens':_0x11713d['usage'][_0x55f83b(0x109)]||0x0,'completion_tokens':_0x11713d[_0x55f83b(0x113)]['completion_tokens']||0x0,'total_tokens':_0x11713d['usage'][_0x55f83b(0x103)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x11713d[_0x55f83b(0xe6)][0x0]?.[_0x55f83b(0xe7)]?.['content']||'','model':_0x11713d['model'],'tokenUsage':_0x11713d[_0x55f83b(0x113)],'requestId':_0x4c4ab2,'finishReason':_0x11713d[_0x55f83b(0xe6)][0x0]?.['finish_reason']};}catch(_0x3060a4){this[_0x55f83b(0xe1)](),this['logger'][_0x55f83b(0x12a)]('AI\x20service\x20request\x20failed:\x20'+_0x3060a4['message'],{'requestId':_0x4c4ab2,'model':_0x4aa28b,'agentId':_0x360821[_0x55f83b(0x114)],'error':_0x3060a4['stack']}),await this[_0x55f83b(0x10e)](_0x3060a4,{'requestId':_0x4c4ab2,'model':_0x4aa28b,'agentId':_0x360821['agentId']});throw _0x3060a4;}}async['routeModel'](_0x482b64,_0x106c06={}){const _0x359bda=a0_0x5b1eca;try{const _0x187931=MODEL_ROUTING[_0x482b64['toUpperCase']()]||MODEL_ROUTING['FALLBACK'],_0x3a6c90=[];for(const _0x246686 of _0x187931){const _0x860040=await this['_checkModelHealth'](_0x246686);_0x860040&&_0x3a6c90[_0x359bda(0xea)](_0x246686);}if(_0x3a6c90[_0x359bda(0xe2)]===0x0)return this[_0x359bda(0xf2)][_0x359bda(0xc7)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x482b64+_0x359bda(0x10a)),MODEL_ROUTING[_0x359bda(0x15c)][0x0];let _0x26d6a6=_0x3a6c90[0x0];if(_0x106c06['preferredModel']&&_0x3a6c90[_0x359bda(0xd6)](_0x106c06[_0x359bda(0x12d)]))_0x26d6a6=_0x106c06['preferredModel'];else{if(_0x106c06['complexity']===_0x359bda(0xf4)&&_0x3a6c90['includes'](MODELS['ANTHROPIC_OPUS']))_0x26d6a6=MODELS['ANTHROPIC_OPUS'];else _0x106c06['speed']===_0x359bda(0x14a)&&_0x3a6c90[_0x359bda(0xd6)](MODELS['ANTHROPIC_HAIKU'])&&(_0x26d6a6=MODELS['ANTHROPIC_HAIKU']);}return this[_0x359bda(0xf2)]['info']('Model\x20routed\x20for\x20task:\x20'+_0x482b64,{'selectedModel':_0x26d6a6,'availableModels':_0x3a6c90['length'],'context':_0x106c06}),_0x26d6a6;}catch(_0x1274e3){return this[_0x359bda(0xf2)]['error'](_0x359bda(0x151)+_0x1274e3[_0x359bda(0xe7)],{'task':_0x482b64,'context':_0x106c06}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x189573,_0x17a072){const _0x5246bc=a0_0x5b1eca,_0x1820be=this['modelSpecs'][_0x17a072];if(!_0x1820be)throw new Error(_0x5246bc(0x156)+_0x17a072);const _0x12640d=_0x1820be['contextWindow']*0.8;let _0x3800f8=0x0;const _0x1007cf=[],_0x131501=await Promise[_0x5246bc(0xe4)](_0x189573[_0x5246bc(0xbe)](async _0x27ea54=>({..._0x27ea54,'estimatedTokens':await this[_0x5246bc(0x122)](_0x27ea54[_0x5246bc(0xba)],_0x17a072)}))),_0xf58ac9=[..._0x131501][_0x5246bc(0xe9)]();for(const _0x42143d of _0xf58ac9){if(_0x3800f8+_0x42143d['estimatedTokens']>_0x12640d){if(_0x1007cf['length']===0x0){const _0x1393dd=await this[_0x5246bc(0xe0)](_0x42143d[_0x5246bc(0xba)],_0x12640d);_0x1007cf['unshift']({..._0x42143d,'content':_0x1393dd,'estimatedTokens':_0x12640d});}break;}_0x1007cf['unshift'](_0x42143d),_0x3800f8+=_0x42143d[_0x5246bc(0x143)];}const _0x221614=_0x131501[_0x5246bc(0x129)](0x0,-_0x1007cf['length']);if(_0x221614[_0x5246bc(0xe2)]>0x0){const _0x56fcf7=await this[_0x5246bc(0xcb)](_0x221614,_0x17a072);_0x1007cf[_0x5246bc(0xf7)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x56fcf7,'timestamp':_0x221614[0x0][_0x5246bc(0x14e)],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x56fcf7,_0x17a072)});}return this[_0x5246bc(0xf2)]['info'](_0x5246bc(0x145)+_0x17a072,{'originalMessages':_0x189573[_0x5246bc(0xe2)],'compactizedMessages':_0x1007cf['length'],'estimatedTokens':_0x3800f8,'maxTokens':_0x12640d}),_0x1007cf;}async[a0_0x5b1eca(0x15e)](_0x2b4399,_0x502d51,_0x537dea,_0xe9aea8){const _0x5a1893=a0_0x5b1eca;try{this[_0x5a1893(0xbc)]&&this['budgetService']['trackUsage'](_0x2b4399,_0x502d51,_0x537dea);}catch(_0x41a9ca){this['logger'][_0x5a1893(0x12a)]('Usage\x20tracking\x20failed:\x20'+_0x41a9ca['message']);}}async['handleHttpError'](_0x366233,_0x2d765d){const _0x3fa5c2=a0_0x5b1eca,_0x289507=this[_0x3fa5c2(0xbb)]?.[_0x3fa5c2(0x11c)]?.(_0x366233,_0x2d765d);switch(_0x366233[_0x3fa5c2(0xd0)]||_0x366233[_0x3fa5c2(0xc9)]){case HTTP_STATUS[_0x3fa5c2(0xb9)]:this['logger']['error'](_0x3fa5c2(0x13d),{'context':_0x2d765d,'error':_0x366233[_0x3fa5c2(0xe7)]});throw new Error('Invalid\x20request:\x20'+_0x366233[_0x3fa5c2(0xe7)]);case HTTP_STATUS[_0x3fa5c2(0x133)]:this['logger']['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2d765d});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this['logger']['error'](_0x3fa5c2(0x148),{'context':_0x2d765d});throw new Error(_0x3fa5c2(0x102));case HTTP_STATUS['NOT_FOUND']:this[_0x3fa5c2(0xf2)][_0x3fa5c2(0x12a)](_0x3fa5c2(0xeb),{'context':_0x2d765d});throw new Error(_0x3fa5c2(0x106));case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x3fa5c2(0xf2)][_0x3fa5c2(0xc7)](_0x3fa5c2(0x155),{'context':_0x2d765d}),await this['_handleRateLimit'](_0x2d765d);throw new Error(_0x3fa5c2(0xdd));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS[_0x3fa5c2(0x13f)]:case HTTP_STATUS[_0x3fa5c2(0xd3)]:this['logger'][_0x3fa5c2(0x12a)](_0x3fa5c2(0xde),{'context':_0x2d765d,'status':_0x366233[_0x3fa5c2(0xd0)]}),await this[_0x3fa5c2(0x11b)](_0x2d765d);throw new Error(_0x3fa5c2(0xe3));default:this[_0x3fa5c2(0xf2)]['error'](_0x3fa5c2(0xc4),{'context':_0x2d765d,'error':_0x366233['message']});throw new Error('AI\x20service\x20error:\x20'+_0x366233['message']);}}[a0_0x5b1eca(0x128)](_0x477d94){const _0x1fa3de=a0_0x5b1eca;this['apiKeyManager']=_0x477d94,this[_0x1fa3de(0xf2)]?.[_0x1fa3de(0xe5)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x477d94});}['setAgentPool'](_0x2cf47f){const _0x36b3e1=a0_0x5b1eca;this['agentPool']=_0x2cf47f,this[_0x36b3e1(0xf2)]?.[_0x36b3e1(0xe5)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x2cf47f});}async['generateImage'](_0x2b04a1,_0x211fd5={}){const _0x368149=a0_0x5b1eca,_0x37ba15=_0x368149(0x14b)+Date[_0x368149(0x134)]()+'-'+Math['random']()[_0x368149(0x153)](0x24)['substr'](0x2,0x9);try{if(this[_0x368149(0x136)]())throw new Error(_0x368149(0x13e));if(!_0x2b04a1||typeof _0x2b04a1!=='string'||_0x2b04a1[_0x368149(0x13c)]()[_0x368149(0xe2)]===0x0)throw new Error(_0x368149(0x126));const _0x231fb4=_0x211fd5['model']||_0x368149(0xc8),_0x1db059=_0x211fd5['size']||'1024x1024',_0x135149=_0x211fd5[_0x368149(0xce)]||'standard',_0x3a2657=_0x211fd5['responseFormat']||'url';this['logger']['info']('Generating\x20image\x20with\x20model:\x20'+_0x231fb4,{'requestId':_0x37ba15,'model':_0x231fb4,'size':_0x1db059,'quality':_0x135149,'promptLength':_0x2b04a1['length']});const _0x33865b={'prompt':_0x2b04a1,'model':_0x231fb4,'size':_0x1db059,'quality':_0x135149,'response_format':_0x3a2657,'n':0x1,'metadata':{'requestId':_0x37ba15,'timestamp':new Date()[_0x368149(0x149)]()}},_0x10fed6=await this[_0x368149(0x11d)](_0x33865b,_0x37ba15,{'sessionId':_0x211fd5['sessionId'],'platformProvided':_0x211fd5['platformProvided']||![]});return this[_0x368149(0xfc)](),{'url':_0x10fed6['data']?.[0x0]?.['url']||null,'b64_json':_0x10fed6['data']?.[0x0]?.['b64_json']||null,'model':_0x10fed6['model']||_0x231fb4,'requestId':_0x37ba15,'revisedPrompt':_0x10fed6['data']?.[0x0]?.['revised_prompt']||_0x2b04a1};}catch(_0x5a511b){this[_0x368149(0xe1)](),this['logger'][_0x368149(0x12a)](_0x368149(0xdc)+_0x5a511b[_0x368149(0xe7)],{'requestId':_0x37ba15,'model':_0x211fd5[_0x368149(0x125)],'error':_0x5a511b[_0x368149(0x12e)]});throw _0x5a511b;}}async['checkServiceHealth'](){const _0x34865e=a0_0x5b1eca;try{const _0x2db7ed=await this[_0x34865e(0x121)]('/health',{},'health-check');return _0x2db7ed['status']==='healthy';}catch(_0x31af06){return![];}}async['switchAgentModel'](_0x18b4a3,_0x22a5bb){const _0x53145a=a0_0x5b1eca;try{if(!this['_isValidModel'](_0x22a5bb))throw new Error('Invalid\x20model:\x20'+_0x22a5bb);let _0x98039d=this['conversationManagers'][_0x53145a(0x101)](_0x18b4a3);!_0x98039d&&(_0x98039d=new ConversationManager(_0x18b4a3,this['logger']),this[_0x53145a(0x15b)]['set'](_0x18b4a3,_0x98039d));const _0x3a33c1=await _0x98039d['switchModel'](_0x22a5bb),_0x39a499=await this[_0x53145a(0xcf)]?.['getAgent'](_0x18b4a3);return _0x39a499&&(_0x39a499['currentModel']=_0x22a5bb,await this['agentPool']['persistAgentState'](_0x18b4a3)),this[_0x53145a(0xf2)][_0x53145a(0xe5)](_0x53145a(0xc0)+_0x18b4a3,{'newModel':_0x22a5bb,'messageCount':_0x3a33c1['messages'][_0x53145a(0xe2)]}),{'success':!![],'agentId':_0x18b4a3,'newModel':_0x22a5bb,'conversation':_0x3a33c1};}catch(_0x57a899){this[_0x53145a(0xf2)]['error'](_0x53145a(0x135)+_0x57a899['message'],{'agentId':_0x18b4a3,'newModel':_0x22a5bb});throw _0x57a899;}}['_initializeModelSpecs'](){const _0x3a071e=a0_0x5b1eca,_0xf31976={[MODELS[_0x3a071e(0x160)]]:{'provider':MODEL_PROVIDERS[_0x3a071e(0x12c)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x3a071e(0x154)]]:{'provider':MODEL_PROVIDERS[_0x3a071e(0x12c)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x3a071e(0x12c)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x3a071e(0xf3)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS[_0x3a071e(0xf3)],'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[_0x3a071e(0x14d)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x3a071e(0x161)]]:{'provider':MODEL_PROVIDERS[_0x3a071e(0x141)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x3a071e(0xfe),'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':_0x3a071e(0xfe),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x3a071e(0xfe),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x3a071e(0xfe),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0xf31976;}['_formatMessagesForModel'](_0x521ccf,_0x49b4fa,_0x4e7e77){const _0x1713b6=a0_0x5b1eca,_0x55e227=this['modelSpecs'][_0x49b4fa]||{'provider':_0x1713b6(0xfe)};let _0xd1b858;typeof _0x521ccf===_0x1713b6(0xd7)?_0xd1b858=[{'role':'user','content':_0x521ccf}]:_0xd1b858=_0x521ccf[_0x1713b6(0xbe)](_0x3a2a62=>this[_0x1713b6(0xc6)](_0x3a2a62,_0x49b4fa));switch(_0x55e227['provider']){case MODEL_PROVIDERS[_0x1713b6(0x12c)]:return this['_formatForAnthropic'](_0xd1b858);case MODEL_PROVIDERS[_0x1713b6(0xf3)]:return this[_0x1713b6(0x163)](_0xd1b858);case MODEL_PROVIDERS[_0x1713b6(0xfe)]:return this[_0x1713b6(0xca)](_0xd1b858);default:return _0xd1b858;}}['_formatSingleMessage'](_0x4088bc,_0x35185b){const _0x5d0ff7=a0_0x5b1eca;return{'role':_0x4088bc[_0x5d0ff7(0xdf)]||_0x5d0ff7(0x11e),'content':_0x4088bc['content'],'timestamp':_0x4088bc[_0x5d0ff7(0x14e)]};}['_formatForAnthropic'](_0x23b86f){const _0x2cbb2e=a0_0x5b1eca;return _0x23b86f[_0x2cbb2e(0xbe)](_0x59c86d=>{const _0x46bb41=_0x2cbb2e;if(_0x59c86d['role']===_0x46bb41(0x117))return{'role':_0x46bb41(0x11e),'content':'System:\x20'+_0x59c86d[_0x46bb41(0xba)]};return _0x59c86d;});}['_formatForOpenAI'](_0x14e5a3){return _0x14e5a3;}[a0_0x5b1eca(0xca)](_0x46fe7a){const _0xe6a849=a0_0x5b1eca;return _0x46fe7a['map'](_0xa91610=>({..._0xa91610,'content':typeof _0xa91610[_0xe6a849(0xba)]==='string'?_0xa91610[_0xe6a849(0xba)]:JSON['stringify'](_0xa91610['content'])}));}[a0_0x5b1eca(0xff)](_0x4daf34){const _0x4d45b4=a0_0x5b1eca;this[_0x4d45b4(0xf2)][_0x4d45b4(0x137)](_0x4d45b4(0xdb),{'model':_0x4daf34,'modelType':typeof _0x4daf34});if(this['modelSpecs'][_0x4daf34]!==undefined)return!![];return this['logger'][_0x4d45b4(0xc7)]('Model\x20validation\x20failed',{'model':_0x4daf34,'availableModels':Object[_0x4d45b4(0x168)](this[_0x4d45b4(0x162)])}),![];}async[a0_0x5b1eca(0xd2)](_0x3a5a0a){return!![];}async[a0_0x5b1eca(0x122)](_0x2feaac,_0x328dd9){const _0x39ba56=a0_0x5b1eca;return Math['ceil'](_0x2feaac[_0x39ba56(0xe2)]/0x4);}async['_truncateMessage'](_0x4dc09e,_0x30d5ae){const _0x54fbf0=a0_0x5b1eca,_0x49fad9=_0x30d5ae*0x4;if(_0x4dc09e[_0x54fbf0(0xe2)]<=_0x49fad9)return _0x4dc09e;return _0x4dc09e[_0x54fbf0(0x119)](0x0,_0x49fad9-0x14)+'\x0a...\x20[message\x20truncated]';}async[a0_0x5b1eca(0xcb)](_0x1430de,_0x33461d){const _0x1ea287=a0_0x5b1eca,_0x3f0375=_0x1430de[_0x1ea287(0xbe)](_0x419bb2=>_0x419bb2['role']+':\x20'+_0x419bb2[_0x1ea287(0xba)])[_0x1ea287(0xfd)]('\x0a'),_0xaed81d=0x1f4;if(_0x3f0375[_0x1ea287(0xe2)]<=_0xaed81d)return _0x3f0375;return _0x3f0375[_0x1ea287(0x119)](0x0,_0xaed81d)+_0x1ea287(0x120);}async[a0_0x5b1eca(0x121)](_0x3e9a68,_0x45822d,_0x1488db,_0x4d3d4b={}){const _0x1fbb85=a0_0x5b1eca,_0x3129be=_0x1fbb85(0x107);let _0xc552af,_0x195f4e=null,_0x5914f1=null;this['logger']?.[_0x1fbb85(0xe5)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x1fbb85(0xb8)],'sessionId':_0x4d3d4b['sessionId'],'hasSessionId':!!_0x4d3d4b[_0x1fbb85(0xef)],'optionsKeys':Object[_0x1fbb85(0x168)](_0x4d3d4b),'model':_0x45822d['model']});if(this[_0x1fbb85(0xb8)]&&_0x4d3d4b[_0x1fbb85(0xef)]){const _0x317b21=this[_0x1fbb85(0xb8)]['getKeysForRequest'](_0x4d3d4b[_0x1fbb85(0xef)],{'platformProvided':_0x4d3d4b[_0x1fbb85(0x142)]||![],'vendor':this[_0x1fbb85(0x127)](_0x45822d[_0x1fbb85(0x125)])});_0x195f4e=_0x317b21['loxiaApiKey'],_0x5914f1=_0x317b21[_0x1fbb85(0x157)],this[_0x1fbb85(0xf2)]?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x4d3d4b['sessionId'],'hasLoxiaKey':!!_0x195f4e,'hasVendorKey':!!_0x5914f1,'vendor':this[_0x1fbb85(0x127)](_0x45822d[_0x1fbb85(0x125)])});}!_0x195f4e&&_0x4d3d4b['apiKey']&&(_0x195f4e=_0x4d3d4b['apiKey']);!_0x195f4e&&this['config']['apiKey']&&(_0x195f4e=this[_0x1fbb85(0xf1)]['apiKey']);if(!_0x195f4e)throw new Error(_0x1fbb85(0xfa));const _0x143836=_0x45822d[_0x1fbb85(0x125)],_0x567cbe={'conversationId':_0x1488db,'message':_0x45822d[_0x1fbb85(0x132)][_0x45822d[_0x1fbb85(0x132)][_0x1fbb85(0xe2)]-0x1]?.['content']||'','messages':_0x45822d[_0x1fbb85(0x132)],'model':_0x143836,'requestId':_0x1488db,'options':_0x45822d['options']||{},'platformProvided':_0x4d3d4b[_0x1fbb85(0x142)]||![]};_0x45822d[_0x1fbb85(0x117)]&&(_0x567cbe['systemPrompt']=_0x45822d[_0x1fbb85(0x117)]);_0x4d3d4b[_0x1fbb85(0x142)]?_0x567cbe['apiKey']=_0x195f4e:(_0x5914f1&&(_0x567cbe['vendorApiKey']=_0x5914f1),_0x4d3d4b['customApiKeys']&&(_0x567cbe['customApiKeys']=_0x4d3d4b[_0x1fbb85(0x165)]),_0x567cbe['apiKey']=_0x195f4e);for(let _0x269a7e=0x1;_0x269a7e<=this[_0x1fbb85(0x10b)];_0x269a7e++){try{this['logger']['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3129be,'model':_0x45822d[_0x1fbb85(0x125)],'requestId':_0x1488db,'attempt':_0x269a7e,'hasApiKey':!!_0x195f4e});const _0x16862b=await fetch(_0x3129be,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x195f4e,'X-Request-ID':_0x1488db},'body':JSON[_0x1fbb85(0x11f)](_0x567cbe),'timeout':this[_0x1fbb85(0x167)]});if(!_0x16862b['ok']){const _0x405ba9=await _0x16862b[_0x1fbb85(0x15d)](),_0x56dcbb=new Error('HTTP\x20'+_0x16862b['status']+':\x20'+_0x16862b['statusText']+(_0x405ba9?_0x1fbb85(0xc2)+_0x405ba9:''));_0x56dcbb['status']=_0x16862b['status'];throw _0x56dcbb;}const _0x513c1b=await _0x16862b['json']();return{'choices':[{'message':{'content':_0x513c1b['content']||'','role':'assistant'},'finish_reason':_0x513c1b['finishReason']||_0x1fbb85(0xc1)}],'usage':_0x513c1b[_0x1fbb85(0x113)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x513c1b['model']||_0x45822d['model'],'id':_0x513c1b['requestId']||_0x1488db};}catch(_0xb39d2a){_0xc552af=_0xb39d2a,this[_0x1fbb85(0xf2)]['warn']('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x269a7e,'requestId':_0x1488db,'error':_0xb39d2a[_0x1fbb85(0xe7)],'status':_0xb39d2a['status']});if(_0x269a7e<this['retryAttempts']){const _0x2e6c0f=Math['pow'](0x2,_0x269a7e)*0x3e8;this['logger'][_0x1fbb85(0xc7)]('Retrying\x20in\x20'+_0x2e6c0f+'ms',{'attempt':_0x269a7e,'requestId':_0x1488db}),await new Promise(_0x11604c=>setTimeout(_0x11604c,_0x2e6c0f));}}}this[_0x1fbb85(0xf2)]['error'](_0x1fbb85(0x112),{'requestId':_0x1488db,'error':_0xc552af['message']});const _0x31bbd7=_0xc552af[_0x1fbb85(0xe7)]&&_0xc552af[_0x1fbb85(0xe7)][_0x1fbb85(0xd6)](_0x1fbb85(0x15a));if(_0x31bbd7)throw new Error(_0x1fbb85(0x124)+_0xc552af['message']);const _0x55bc5b=(_0xc552af[_0x1fbb85(0xe7)]||'')[_0x1fbb85(0x15f)](),_0x2deeca=_0x55bc5b[_0x1fbb85(0xd6)](_0x1fbb85(0x159))||_0x55bc5b[_0x1fbb85(0xd6)](_0x1fbb85(0x12b))||_0x55bc5b['includes'](_0x1fbb85(0x105))||_0x55bc5b['includes']('context_length_exceeded')||_0x55bc5b[_0x1fbb85(0xd6)]('tokens')&&_0x55bc5b[_0x1fbb85(0xd6)](_0x1fbb85(0xe8));if(_0x2deeca)throw new Error(_0x1fbb85(0xec)+_0xc552af['message']);return{'choices':[{'message':{'content':_0x1fbb85(0xcc)+_0xc552af['message'],'role':_0x1fbb85(0x123)},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x45822d[_0x1fbb85(0x125)],'id':_0x1fbb85(0xd8)+_0x1488db,'error':_0xc552af[_0x1fbb85(0xe7)]};}async['_makeImageAPIRequest'](_0x4127a4,_0x21e793,_0x71fff={}){const _0x5b58ae=a0_0x5b1eca,_0x3813d8='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x132fe9,_0x5c7f4d=null,_0x11d240=null;this[_0x5b58ae(0xf2)]?.[_0x5b58ae(0xe5)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x71fff['sessionId'],'hasSessionId':!!_0x71fff[_0x5b58ae(0xef)],'model':_0x4127a4['model']});if(this[_0x5b58ae(0xb8)]&&_0x71fff[_0x5b58ae(0xef)]){const _0x53e943=this['apiKeyManager'][_0x5b58ae(0x152)](_0x71fff[_0x5b58ae(0xef)],{'platformProvided':_0x71fff['platformProvided']||![],'vendor':this[_0x5b58ae(0x127)](_0x4127a4['model'])});_0x5c7f4d=_0x53e943[_0x5b58ae(0x11a)],_0x11d240=_0x53e943['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x71fff[_0x5b58ae(0xef)],'hasLoxiaKey':!!_0x5c7f4d,'hasVendorKey':!!_0x11d240});}!_0x5c7f4d&&_0x71fff[_0x5b58ae(0x146)]&&(_0x5c7f4d=_0x71fff[_0x5b58ae(0x146)]);!_0x5c7f4d&&this['config']['apiKey']&&(_0x5c7f4d=this['config']['apiKey']);if(!_0x5c7f4d)throw new Error(_0x5b58ae(0xfa));const _0x4c7ffa={'prompt':_0x4127a4['prompt'],'model':_0x4127a4['model']||'azure-openai-dalle3','size':_0x4127a4[_0x5b58ae(0x166)],'quality':_0x4127a4[_0x5b58ae(0xce)],'style':_0x4127a4['style']||_0x5b58ae(0x108),'n':_0x4127a4['n']||0x1,'requestId':_0x21e793};for(let _0x4ebdda=0x1;_0x4ebdda<=this[_0x5b58ae(0x10b)];_0x4ebdda++){try{this['logger']['info']('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x3813d8,'model':_0x4127a4[_0x5b58ae(0x125)],'requestId':_0x21e793,'attempt':_0x4ebdda,'hasApiKey':!!_0x5c7f4d});const _0x45cb2f=await fetch(_0x3813d8,{'method':_0x5b58ae(0xc3),'headers':{'Content-Type':'application/json','Authorization':_0x5b58ae(0xf0)+_0x5c7f4d,'X-Request-ID':_0x21e793},'body':JSON['stringify'](_0x4c7ffa),'timeout':this['timeout']*0x2});if(!_0x45cb2f['ok']){const _0x9cefd1=await _0x45cb2f['text'](),_0x4bd360=new Error(_0x5b58ae(0xd5)+_0x45cb2f[_0x5b58ae(0xd0)]+':\x20'+_0x45cb2f['statusText']+(_0x9cefd1?'\x20-\x20'+_0x9cefd1:''));_0x4bd360[_0x5b58ae(0xd0)]=_0x45cb2f['status'];throw _0x4bd360;}const _0x57bd10=await _0x45cb2f[_0x5b58ae(0x158)]();return{'data':_0x57bd10['images']||[],'model':_0x57bd10[_0x5b58ae(0x125)]||_0x4127a4[_0x5b58ae(0x125)],'created':_0x57bd10['created']||Date[_0x5b58ae(0x134)](),'usage':_0x57bd10['usage']};}catch(_0x326737){_0x132fe9=_0x326737,this[_0x5b58ae(0xf2)][_0x5b58ae(0xc7)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x4ebdda,'requestId':_0x21e793,'error':_0x326737['message'],'status':_0x326737['status']});if(_0x4ebdda<this[_0x5b58ae(0x10b)]){const _0x4d3712=Math[_0x5b58ae(0x13a)](0x2,_0x4ebdda)*0x3e8;this[_0x5b58ae(0xf2)]['warn'](_0x5b58ae(0xed)+_0x4d3712+'ms',{'attempt':_0x4ebdda,'requestId':_0x21e793}),await new Promise(_0x5960b9=>setTimeout(_0x5960b9,_0x4d3712));}}}this[_0x5b58ae(0xf2)][_0x5b58ae(0x12a)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x21e793,'error':_0x132fe9['message']});throw new Error(_0x5b58ae(0xdc)+_0x132fe9['message']);}async['_checkRateLimit'](_0x5f030f){await new Promise(_0x1889e4=>setTimeout(_0x1889e4,0x64));}async[a0_0x5b1eca(0xee)](_0xd25539){const _0x1ea4a3=a0_0x5b1eca,_0x443c1c=0xea60;this[_0x1ea4a3(0xf2)]['info']('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x443c1c+'ms',_0xd25539),await new Promise(_0x140d29=>setTimeout(_0x140d29,_0x443c1c));}async[a0_0x5b1eca(0x11b)](_0xe9415e){const _0x59f134=a0_0x5b1eca;this[_0x59f134(0xe1)]();const _0x2fa954=0x7530;this[_0x59f134(0xf2)]['info']('Service\x20unavailable,\x20waiting\x20'+_0x2fa954+'ms',_0xe9415e),await new Promise(_0x44c66f=>setTimeout(_0x44c66f,_0x2fa954));}['_isCircuitBreakerOpen'](){const _0x4ccaf6=a0_0x5b1eca;if(!this['circuitBreaker'][_0x4ccaf6(0xcd)])return![];const _0x373f3e=Date[_0x4ccaf6(0x134)]()-this['circuitBreaker']['lastFailureTime'];if(_0x373f3e>this['circuitBreaker'][_0x4ccaf6(0x167)])return this[_0x4ccaf6(0x115)][_0x4ccaf6(0xcd)]=![],this[_0x4ccaf6(0x115)]['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x54f0a0=a0_0x5b1eca;this[_0x54f0a0(0x115)]['failures']++,this[_0x54f0a0(0x115)][_0x54f0a0(0x118)]=Date[_0x54f0a0(0x134)](),this[_0x54f0a0(0x115)][_0x54f0a0(0x10c)]>=this['circuitBreaker']['threshold']&&(this[_0x54f0a0(0x115)][_0x54f0a0(0xcd)]=!![],this[_0x54f0a0(0xf2)]['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}['_resetCircuitBreaker'](){const _0x261d99=a0_0x5b1eca;this['circuitBreaker'][_0x261d99(0x10c)]>0x0&&(this[_0x261d99(0x115)][_0x261d99(0x10c)]=0x0,this[_0x261d99(0x115)][_0x261d99(0xcd)]=![],this['logger'][_0x261d99(0xe5)](_0x261d99(0x116)));}['_getVendorFromModel'](_0xc0ad41){const _0x6ea6bc=a0_0x5b1eca;if(!_0xc0ad41)return null;const _0x12df0f=_0xc0ad41['toLowerCase']();if(_0x12df0f['includes'](_0x6ea6bc(0xf8))||_0x12df0f[_0x6ea6bc(0xd6)](_0x6ea6bc(0xf5)))return _0x6ea6bc(0xf8);else{if(_0x12df0f['includes'](_0x6ea6bc(0x10f))||_0x12df0f['includes'](_0x6ea6bc(0xd9)))return _0x6ea6bc(0x10f);else{if(_0x12df0f['includes']('deepseek'))return'deepseek';else{if(_0x12df0f['includes'](_0x6ea6bc(0x138)))return _0x6ea6bc(0xbf);}}}return null;}}function a0_0xfc80(_0x195e36,_0xa6add6){_0x195e36=_0x195e36-0xb8;const _0x18a04c=a0_0x18a0();let _0xfc8015=_0x18a04c[_0x195e36];if(a0_0xfc80['QMcxWj']===undefined){var _0x1e0e25=function(_0x416842){const _0x10d9db='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xdddcc='',_0x13839e='';for(let _0x183549=0x0,_0x4e5dd0,_0x4aa28b,_0x27e2e1=0x0;_0x4aa28b=_0x416842['charAt'](_0x27e2e1++);~_0x4aa28b&&(_0x4e5dd0=_0x183549%0x4?_0x4e5dd0*0x40+_0x4aa28b:_0x4aa28b,_0x183549++%0x4)?_0xdddcc+=String['fromCharCode'](0xff&_0x4e5dd0>>(-0x2*_0x183549&0x6)):0x0){_0x4aa28b=_0x10d9db['indexOf'](_0x4aa28b);}for(let _0x360821=0x0,_0x4c4ab2=_0xdddcc['length'];_0x360821<_0x4c4ab2;_0x360821++){_0x13839e+='%'+('00'+_0xdddcc['charCodeAt'](_0x360821)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13839e);};a0_0xfc80['JUcEyB']=_0x1e0e25,a0_0xfc80['aMoFHg']={},a0_0xfc80['QMcxWj']=!![];}const _0xb6bbba=_0x18a04c[0x0],_0x5d8b2e=_0x195e36+_0xb6bbba,_0x3ae9f4=a0_0xfc80['aMoFHg'][_0x5d8b2e];return!_0x3ae9f4?(_0xfc8015=a0_0xfc80['JUcEyB'](_0xfc8015),a0_0xfc80['aMoFHg'][_0x5d8b2e]=_0xfc8015):_0xfc8015=_0x3ae9f4,_0xfc8015;}class ConversationManager{constructor(_0x47bc8f,_0xc2335e){const _0x984a95=a0_0x5b1eca;this[_0x984a95(0x114)]=_0x47bc8f,this[_0x984a95(0xf2)]=_0xc2335e,this[_0x984a95(0x144)]=new Map();}async['switchModel'](_0x4a4798){return{'messages':[],'model':_0x4a4798,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
@@ -1 +1 @@
1
- const a0_0x5d7515=a0_0x1fbc;(function(_0x53224a,_0x2da8d9){const _0x4828bd=a0_0x1fbc,_0x138541=_0x53224a();while(!![]){try{const _0x417155=-parseInt(_0x4828bd(0x19d))/0x1+-parseInt(_0x4828bd(0x18e))/0x2+-parseInt(_0x4828bd(0x191))/0x3+-parseInt(_0x4828bd(0x19b))/0x4*(-parseInt(_0x4828bd(0x1a1))/0x5)+-parseInt(_0x4828bd(0x197))/0x6+-parseInt(_0x4828bd(0x1a4))/0x7+parseInt(_0x4828bd(0x18f))/0x8;if(_0x417155===_0x2da8d9)break;else _0x138541['push'](_0x138541['shift']());}catch(_0x4b835f){_0x138541['push'](_0x138541['shift']());}}}(a0_0x118b,0xd08b4));function a0_0x1fbc(_0x3afa2f,_0x3a8808){_0x3afa2f=_0x3afa2f-0x18d;const _0x118bd9=a0_0x118b();let _0x1fbc2e=_0x118bd9[_0x3afa2f];if(a0_0x1fbc['THZdIo']===undefined){var _0x108221=function(_0x518432){const _0x553c53='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b0cea='',_0x12640e='';for(let _0x1559f1=0x0,_0x42414c,_0x4f89c2,_0x4bc955=0x0;_0x4f89c2=_0x518432['charAt'](_0x4bc955++);~_0x4f89c2&&(_0x42414c=_0x1559f1%0x4?_0x42414c*0x40+_0x4f89c2:_0x4f89c2,_0x1559f1++%0x4)?_0x1b0cea+=String['fromCharCode'](0xff&_0x42414c>>(-0x2*_0x1559f1&0x6)):0x0){_0x4f89c2=_0x553c53['indexOf'](_0x4f89c2);}for(let _0x3afdd2=0x0,_0x318caf=_0x1b0cea['length'];_0x3afdd2<_0x318caf;_0x3afdd2++){_0x12640e+='%'+('00'+_0x1b0cea['charCodeAt'](_0x3afdd2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x12640e);};a0_0x1fbc['fEwmkm']=_0x108221,a0_0x1fbc['URdAOl']={},a0_0x1fbc['THZdIo']=!![];}const _0x42d24d=_0x118bd9[0x0],_0x12737e=_0x3afa2f+_0x42d24d,_0x5bfcb7=a0_0x1fbc['URdAOl'][_0x12737e];return!_0x5bfcb7?(_0x1fbc2e=a0_0x1fbc['fEwmkm'](_0x1fbc2e),a0_0x1fbc['URdAOl'][_0x12737e]=_0x1fbc2e):_0x1fbc2e=_0x5bfcb7,_0x1fbc2e;}class ApiKeyManager{constructor(_0x1b0cea){const _0x4773f4=a0_0x1fbc;this['logger']=_0x1b0cea,this[_0x4773f4(0x192)]=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x5d7515(0x1a0)](_0x12640e,_0x1559f1){const _0x31f989=a0_0x5d7515;if(!_0x12640e)throw new Error(_0x31f989(0x193));this[_0x31f989(0x192)][_0x31f989(0x1a8)](_0x12640e,{'loxiaApiKey':_0x1559f1['loxiaApiKey']||null,'vendorKeys':_0x1559f1[_0x31f989(0x1a6)]||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.['info']('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x12640e,'hasLoxiaKey':!!_0x1559f1['loxiaApiKey'],'vendorKeys':Object['keys'](_0x1559f1[_0x31f989(0x1a6)]||{}),'timestamp':new Date()['toISOString']()});}[a0_0x5d7515(0x1a5)](_0x42414c){const _0x55fb3f=a0_0x5d7515;if(!_0x42414c)return this['globalKeys'];const _0x4f89c2=this['sessionKeys'][_0x55fb3f(0x19e)](_0x42414c);if(_0x4f89c2)return _0x4f89c2;return this[_0x55fb3f(0x199)];}[a0_0x5d7515(0x19f)](_0x4bc955,_0x3afdd2={}){const _0x289392=a0_0x5d7515,_0x318caf=this[_0x289392(0x1a5)](_0x4bc955),_0xbd9aa4={'loxiaApiKey':_0x318caf[_0x289392(0x1a2)],'vendorApiKey':null};return!_0x3afdd2['platformProvided']&&_0x3afdd2['vendor']&&_0x318caf[_0x289392(0x1a6)]&&(_0xbd9aa4[_0x289392(0x1aa)]=_0x318caf['vendorKeys'][_0x3afdd2['vendor']]),_0xbd9aa4;}[a0_0x5d7515(0x1a3)](_0x2d4a48){const _0x554fdf=a0_0x5d7515;if(this[_0x554fdf(0x192)][_0x554fdf(0x194)](_0x2d4a48))return this['logger']?.[_0x554fdf(0x1ac)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x2d4a48}),!![];return![];}[a0_0x5d7515(0x190)](_0x3fae26){const _0x364c32=a0_0x5d7515;this[_0x364c32(0x199)]={'loxiaApiKey':_0x3fae26[_0x364c32(0x1a2)]||this[_0x364c32(0x199)]['loxiaApiKey'],'vendorKeys':{...this[_0x364c32(0x199)][_0x364c32(0x1a6)],..._0x3fae26['vendorKeys']||{}}},this['logger']?.['info'](_0x364c32(0x19a),{'hasLoxiaKey':!!this['globalKeys'][_0x364c32(0x1a2)],'vendorKeys':Object[_0x364c32(0x198)](this['globalKeys'][_0x364c32(0x1a6)])});}['getActiveSessions'](){const _0x10d685=a0_0x5d7515;return Array[_0x10d685(0x18d)](this['sessionKeys']['entries']())[_0x10d685(0x1ab)](([_0x22d8d1,_0x57a1f8])=>({'sessionId':_0x22d8d1,'hasLoxiaKey':!!_0x57a1f8['loxiaApiKey'],'vendorKeys':Object[_0x10d685(0x198)](_0x57a1f8[_0x10d685(0x1a6)]||{}),'updatedAt':_0x57a1f8[_0x10d685(0x195)]}));}['cleanupExpiredSessions'](_0x5afd4f=0x18*0x3c*0x3c*0x3e8){const _0x556cd9=a0_0x5d7515,_0x3d62ad=Date[_0x556cd9(0x1a7)](),_0x2d6d50=[];for(const [_0x1681c4,_0x510965]of this['sessionKeys']['entries']()){const _0x33616e=_0x3d62ad-new Date(_0x510965['updatedAt'])[_0x556cd9(0x196)]();_0x33616e>_0x5afd4f&&_0x2d6d50['push'](_0x1681c4);}return _0x2d6d50[_0x556cd9(0x1a9)](_0x55ff04=>{this['sessionKeys']['delete'](_0x55ff04);}),_0x2d6d50[_0x556cd9(0x19c)]>0x0&&this['logger']?.[_0x556cd9(0x1ac)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x2d6d50['length'],'remainingSessions':this['sessionKeys']['size']}),_0x2d6d50['length'];}}export default ApiKeyManager;function a0_0x118b(){const _0x44554c=['r2XVyMfSiefqssbRzxLZihvWzgf0zwq','mJu3mdGWvwfvAKHk','BgvUz3rO','ndyYnJD1rgP2u3a','z2v0','z2v0s2v5C0zVCLjLCxvLC3q','C2v0u2vZC2LVBKTLExm','mti1uuDxEKrI','Bg94AwfbCgLlzxK','CMvTB3zLu2vZC2LVBKTLExm','mJC5mZC5mvLpy21Xsa','z2v0u2vZC2LVBKTLExm','DMvUzg9Ys2v5CW','BM93','C2v0','zM9YrwfJAa','DMvUzg9YqxbPs2v5','BwfW','Aw5MBW','zNjVBq','mJi3otqWoe9IzejSzG','mteZmJeWmdbREfnTyxO','C2v0r2XVyMfSs2v5CW','odCWmdi3rM1nwKzI','C2vZC2LVBKTLExm','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','zgvSzxrL','DxbKyxrLzef0','z2v0vgLTzq','mtC1ntuXnNnUs3buAa','A2v5CW','z2XVyMfSs2v5CW'];a0_0x118b=function(){return _0x44554c;};return a0_0x118b();}
1
+ const a0_0x23a91f=a0_0x19d0;function a0_0x19d0(_0x1de304,_0x49b4be){_0x1de304=_0x1de304-0x163;const _0x558cc0=a0_0x558c();let _0x19d0f2=_0x558cc0[_0x1de304];if(a0_0x19d0['SYPqxA']===undefined){var _0x2a6893=function(_0x4b7589){const _0xd1c86c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1cbe53='',_0x372883='';for(let _0x34d9ff=0x0,_0x43f58b,_0x132bfc,_0x5d70ac=0x0;_0x132bfc=_0x4b7589['charAt'](_0x5d70ac++);~_0x132bfc&&(_0x43f58b=_0x34d9ff%0x4?_0x43f58b*0x40+_0x132bfc:_0x132bfc,_0x34d9ff++%0x4)?_0x1cbe53+=String['fromCharCode'](0xff&_0x43f58b>>(-0x2*_0x34d9ff&0x6)):0x0){_0x132bfc=_0xd1c86c['indexOf'](_0x132bfc);}for(let _0x3762b8=0x0,_0x339701=_0x1cbe53['length'];_0x3762b8<_0x339701;_0x3762b8++){_0x372883+='%'+('00'+_0x1cbe53['charCodeAt'](_0x3762b8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x372883);};a0_0x19d0['zVVYjy']=_0x2a6893,a0_0x19d0['VPfXaZ']={},a0_0x19d0['SYPqxA']=!![];}const _0x48c912=_0x558cc0[0x0],_0x486684=_0x1de304+_0x48c912,_0x4e0f11=a0_0x19d0['VPfXaZ'][_0x486684];return!_0x4e0f11?(_0x19d0f2=a0_0x19d0['zVVYjy'](_0x19d0f2),a0_0x19d0['VPfXaZ'][_0x486684]=_0x19d0f2):_0x19d0f2=_0x4e0f11,_0x19d0f2;}(function(_0x412537,_0x2fab0b){const _0x4d0d6a=a0_0x19d0,_0x237a5f=_0x412537();while(!![]){try{const _0x31fbc0=parseInt(_0x4d0d6a(0x166))/0x1+parseInt(_0x4d0d6a(0x164))/0x2+parseInt(_0x4d0d6a(0x180))/0x3*(-parseInt(_0x4d0d6a(0x170))/0x4)+parseInt(_0x4d0d6a(0x16f))/0x5+-parseInt(_0x4d0d6a(0x174))/0x6+parseInt(_0x4d0d6a(0x16e))/0x7+parseInt(_0x4d0d6a(0x173))/0x8;if(_0x31fbc0===_0x2fab0b)break;else _0x237a5f['push'](_0x237a5f['shift']());}catch(_0x1a0dfc){_0x237a5f['push'](_0x237a5f['shift']());}}}(a0_0x558c,0x2d899));function a0_0x558c(){const _0x343600=['z2v0u2vZC2LVBKTLExm','C2L6zq','DxbKyxrLzef0','z2XVyMfSs2v5CW','A2v5CW','zM9YrwfJAa','ndC0ndv0r0PWDgm','zw50CMLLCW','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','BwfW','mtqZodC4B1jOy2fp','ChvZAa','nZa4mdbtvKXOu1G','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','Aw5MBW','C2v0u2vZC2LVBKTLExm','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','zgvSzxrL','BgvUz3rO','DMvUzg9Y','otq4otC2C2viAu5S','nJqXmtCWv0XcDMfj','mtzgAuzWB3O','zNjVBq','C2v0r2XVyMfSs2v5CW','otq0ndCYAg9hD0TR','mty0odKXng1srxvNrG','z2v0vgLTzq','C2vZC2LVBKTLExm','Bg94AwfbCgLlzxK','Bg9Nz2vY','DMvUzg9Ys2v5CW'];a0_0x558c=function(){return _0x343600;};return a0_0x558c();}class ApiKeyManager{constructor(_0x1cbe53){const _0x2ab681=a0_0x19d0;this[_0x2ab681(0x178)]=_0x1cbe53,this[_0x2ab681(0x176)]=new Map(),this[_0x2ab681(0x17d)]={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x23a91f(0x169)](_0x372883,_0x34d9ff){const _0x5f41e4=a0_0x23a91f;if(!_0x372883)throw new Error(_0x5f41e4(0x167));this['sessionKeys']['set'](_0x372883,{'loxiaApiKey':_0x34d9ff['loxiaApiKey']||null,'vendorKeys':_0x34d9ff[_0x5f41e4(0x179)]||{},'updatedAt':new Date()['toISOString']()}),this[_0x5f41e4(0x178)]?.[_0x5f41e4(0x168)](_0x5f41e4(0x16a),{'sessionId':_0x372883,'hasLoxiaKey':!!_0x34d9ff[_0x5f41e4(0x177)],'vendorKeys':Object[_0x5f41e4(0x17e)](_0x34d9ff['vendorKeys']||{}),'timestamp':new Date()['toISOString']()});}[a0_0x23a91f(0x17a)](_0x43f58b){const _0x5a25ee=a0_0x23a91f;if(!_0x43f58b)return this['globalKeys'];const _0x132bfc=this['sessionKeys']['get'](_0x43f58b);if(_0x132bfc)return _0x132bfc;return this[_0x5a25ee(0x17d)];}['getKeysForRequest'](_0x5d70ac,_0x3762b8={}){const _0x388eab=a0_0x23a91f,_0x339701=this[_0x388eab(0x17a)](_0x5d70ac),_0x360338={'loxiaApiKey':_0x339701[_0x388eab(0x177)],'vendorApiKey':null};return!_0x3762b8['platformProvided']&&_0x3762b8[_0x388eab(0x16d)]&&_0x339701[_0x388eab(0x179)]&&(_0x360338['vendorApiKey']=_0x339701[_0x388eab(0x179)][_0x3762b8['vendor']]),_0x360338;}['removeSessionKeys'](_0x4b7038){const _0x3aa966=a0_0x23a91f;if(this[_0x3aa966(0x176)][_0x3aa966(0x16b)](_0x4b7038))return this[_0x3aa966(0x178)]?.[_0x3aa966(0x168)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x4b7038}),!![];return![];}[a0_0x23a91f(0x172)](_0x457d95){const _0x4a6bfe=a0_0x23a91f;this[_0x4a6bfe(0x17d)]={'loxiaApiKey':_0x457d95[_0x4a6bfe(0x177)]||this[_0x4a6bfe(0x17d)]['loxiaApiKey'],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x457d95['vendorKeys']||{}}},this[_0x4a6bfe(0x178)]?.['info'](_0x4a6bfe(0x182),{'hasLoxiaKey':!!this['globalKeys'][_0x4a6bfe(0x177)],'vendorKeys':Object[_0x4a6bfe(0x17e)](this['globalKeys']['vendorKeys'])});}['getActiveSessions'](){const _0x786ec3=a0_0x23a91f;return Array[_0x786ec3(0x171)](this['sessionKeys'][_0x786ec3(0x181)]())[_0x786ec3(0x163)](([_0x40bfbc,_0x4a85c1])=>({'sessionId':_0x40bfbc,'hasLoxiaKey':!!_0x4a85c1['loxiaApiKey'],'vendorKeys':Object[_0x786ec3(0x17e)](_0x4a85c1['vendorKeys']||{}),'updatedAt':_0x4a85c1[_0x786ec3(0x17c)]}));}['cleanupExpiredSessions'](_0x41466f=0x18*0x3c*0x3c*0x3e8){const _0xad4b0b=a0_0x23a91f,_0xc4a8cd=Date['now'](),_0x4bfe27=[];for(const [_0x4bffb4,_0x2f312d]of this['sessionKeys'][_0xad4b0b(0x181)]()){const _0x536abd=_0xc4a8cd-new Date(_0x2f312d['updatedAt'])[_0xad4b0b(0x175)]();_0x536abd>_0x41466f&&_0x4bfe27[_0xad4b0b(0x165)](_0x4bffb4);}return _0x4bfe27[_0xad4b0b(0x17f)](_0xe1a148=>{const _0x4eb053=_0xad4b0b;this['sessionKeys'][_0x4eb053(0x16b)](_0xe1a148);}),_0x4bfe27[_0xad4b0b(0x16c)]>0x0&&this['logger']?.['info']('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x4bfe27['length'],'remainingSessions':this[_0xad4b0b(0x176)][_0xad4b0b(0x17b)]}),_0x4bfe27[_0xad4b0b(0x16c)];}}export default ApiKeyManager;
@@ -1 +1 @@
1
- function a0_0x2582(_0x1140cf,_0x56e266){_0x1140cf=_0x1140cf-0x113;const _0x3ae973=a0_0x3ae9();let _0x2582b2=_0x3ae973[_0x1140cf];if(a0_0x2582['uoLOMl']===undefined){var _0x4c4981=function(_0x5ee928){const _0x4e45c2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x512416='',_0x22d418='';for(let _0x57feb7=0x0,_0x46045a,_0x510280,_0x5358b4=0x0;_0x510280=_0x5ee928['charAt'](_0x5358b4++);~_0x510280&&(_0x46045a=_0x57feb7%0x4?_0x46045a*0x40+_0x510280:_0x510280,_0x57feb7++%0x4)?_0x512416+=String['fromCharCode'](0xff&_0x46045a>>(-0x2*_0x57feb7&0x6)):0x0){_0x510280=_0x4e45c2['indexOf'](_0x510280);}for(let _0xe1107f=0x0,_0x202434=_0x512416['length'];_0xe1107f<_0x202434;_0xe1107f++){_0x22d418+='%'+('00'+_0x512416['charCodeAt'](_0xe1107f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22d418);};a0_0x2582['ruwaPs']=_0x4c4981,a0_0x2582['HqjuEq']={},a0_0x2582['uoLOMl']=!![];}const _0x3b34ad=_0x3ae973[0x0],_0x35064a=_0x1140cf+_0x3b34ad,_0x522284=a0_0x2582['HqjuEq'][_0x35064a];return!_0x522284?(_0x2582b2=a0_0x2582['ruwaPs'](_0x2582b2),a0_0x2582['HqjuEq'][_0x35064a]=_0x2582b2):_0x2582b2=_0x522284,_0x2582b2;}const a0_0x3645e0=a0_0x2582;(function(_0xc13b0,_0x560a08){const _0x3e55d3=a0_0x2582,_0x14d400=_0xc13b0();while(!![]){try{const _0x9cd076=-parseInt(_0x3e55d3(0x11c))/0x1*(parseInt(_0x3e55d3(0x118))/0x2)+-parseInt(_0x3e55d3(0x134))/0x3+parseInt(_0x3e55d3(0x13f))/0x4+-parseInt(_0x3e55d3(0x11a))/0x5+parseInt(_0x3e55d3(0x11d))/0x6+-parseInt(_0x3e55d3(0x115))/0x7*(-parseInt(_0x3e55d3(0x139))/0x8)+parseInt(_0x3e55d3(0x124))/0x9*(parseInt(_0x3e55d3(0x12d))/0xa);if(_0x9cd076===_0x560a08)break;else _0x14d400['push'](_0x14d400['shift']());}catch(_0x4f644c){_0x14d400['push'](_0x14d400['shift']());}}}(a0_0x3ae9,0xd1d1f));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x512416,_0x22d418){const _0x4c1fae=a0_0x2582;this[_0x4c1fae(0x128)]=_0x512416,this['logger']=_0x22d418,this['benchmarks']=null,this[_0x4c1fae(0x11e)]=null,this[_0x4c1fae(0x114)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x4c1fae(0x127)];}async['initialize'](){const _0x5daae9=a0_0x2582;try{await this[_0x5daae9(0x138)](),this[_0x5daae9(0x12f)](),this['logger'][_0x5daae9(0x12b)](_0x5daae9(0x125));}catch(_0x57feb7){this['logger']['error'](_0x5daae9(0x135),{'error':_0x57feb7['message']}),this['benchmarks']=null;}}[a0_0x3645e0(0x145)](){const _0x37879b=a0_0x3645e0;if(!this[_0x37879b(0x13b)])return this['logger']['error']('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x37879b(0x13b)];}async[a0_0x3645e0(0x138)](){const _0x1f5d8a=a0_0x3645e0;if(this[_0x1f5d8a(0x114)]){this[_0x1f5d8a(0x142)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this['isLoading']=!![];try{const _0x46045a=await this[_0x1f5d8a(0x143)]();if(_0x46045a)this['benchmarks']=_0x46045a,this['lastUpdated']=new Date(),this['logger']['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x46045a[_0x1f5d8a(0x133)]?.[_0x1f5d8a(0x122)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x510280){this[_0x1f5d8a(0x142)][_0x1f5d8a(0x13a)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x510280['message'],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this['isLoading']=![];}}[a0_0x3645e0(0x136)](){const _0x2e8044=a0_0x3645e0,_0x5358b4=this[_0x2e8044(0x145)]();return{'lastUpdated':this['lastUpdated']?.[_0x2e8044(0x140)]()||'unknown','models':_0x5358b4['models']||[],'tasks':_0x5358b4[_0x2e8044(0x144)]||{},'summary':this['_generateBenchmarkSummary'](_0x5358b4)};}[a0_0x3645e0(0x132)](){const _0xf2e241=a0_0x3645e0;if(!this['lastUpdated'])return!![];const _0xe1107f=Date['now']()-this['lastUpdated'][_0xf2e241(0x141)]();return _0xe1107f>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0x59a16a=a0_0x3645e0,_0x202434=this[_0x59a16a(0x126)]+'/llm/model-benchmarks';let _0x495485=null;this['config'][_0x59a16a(0x13e)]&&(_0x495485=this[_0x59a16a(0x128)][_0x59a16a(0x13e)]);const _0x109eb9={'method':'GET','headers':{'Content-Type':'application/json',..._0x495485&&{'Authorization':'Bearer\x20'+_0x495485}},'timeout':0x2710};this[_0x59a16a(0x142)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x202434});const _0x59885a=await fetch(_0x202434,_0x109eb9);if(!_0x59885a['ok'])throw new Error(_0x59a16a(0x130)+_0x59885a['status']+':\x20'+_0x59885a[_0x59a16a(0x13d)]);const _0x527649=await _0x59885a[_0x59a16a(0x11f)]();return _0x527649;}['_generateBenchmarkSummary'](_0xa85f72){const _0x46b8a3=a0_0x3645e0,_0x5b2360=_0xa85f72['models']||[];return{'totalModels':_0x5b2360['length'],'taskCategories':Object['keys'](_0xa85f72[_0x46b8a3(0x144)]||{}),'bestForCoding':this[_0x46b8a3(0x12c)](_0x5b2360,_0x46b8a3(0x12e)),'bestForAnalysis':this['_getBestModelForTask'](_0x5b2360,'analysis'),'bestForQuickTasks':this['_getBestModelForTask'](_0x5b2360,'quick-tasks'),'bestForCreative':this[_0x46b8a3(0x12c)](_0x5b2360,_0x46b8a3(0x117)),'fastestModel':this['_getFastestModel'](_0x5b2360),'mostCostEfficient':this['_getMostCostEfficient'](_0x5b2360)};}['_getBestModelForTask'](_0x2dd33b,_0x452029){const _0x9fff78=a0_0x3645e0;return _0x2dd33b[_0x9fff78(0x123)](_0x1f8127=>_0x1f8127['tasks']&&_0x1f8127[_0x9fff78(0x144)][_0x452029])['sort']((_0x4bb1fb,_0x2d0cc8)=>(_0x2d0cc8[_0x9fff78(0x144)][_0x452029][_0x9fff78(0x129)]||0x0)-(_0x4bb1fb['tasks'][_0x452029][_0x9fff78(0x129)]||0x0))[0x0]?.[_0x9fff78(0x12a)]||'unknown';}['_getFastestModel'](_0x1a02c7){const _0x5334b8=a0_0x3645e0,_0x349bd7={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x1a02c7['sort']((_0x52ddd9,_0x53b7df)=>{const _0x244f8b=a0_0x2582,_0x3d4e2b=Math['max'](...Object['values'](_0x52ddd9['tasks']||{})[_0x244f8b(0x113)](_0x10dc8e=>_0x349bd7[_0x10dc8e[_0x244f8b(0x131)]]||0x0)),_0x1bc18e=Math['max'](...Object[_0x244f8b(0x13c)](_0x53b7df[_0x244f8b(0x144)]||{})[_0x244f8b(0x113)](_0xff0da8=>_0x349bd7[_0xff0da8[_0x244f8b(0x131)]]||0x0));return _0x1bc18e-_0x3d4e2b;})[0x0]?.[_0x5334b8(0x12a)]||'unknown';}['_getMostCostEfficient'](_0x5b29ce){const _0x2b84c2=a0_0x3645e0,_0x47a1f8={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x5b29ce['sort']((_0x466d84,_0x4a8b57)=>{const _0x198a48=a0_0x2582,_0x1b1337=Math[_0x198a48(0x137)](...Object[_0x198a48(0x13c)](_0x466d84['tasks']||{})[_0x198a48(0x113)](_0x573806=>_0x47a1f8[_0x573806['cost']]||0x0)),_0x3ceee0=Math[_0x198a48(0x137)](...Object['values'](_0x4a8b57[_0x198a48(0x144)]||{})[_0x198a48(0x113)](_0x1e281c=>_0x47a1f8[_0x1e281c[_0x198a48(0x11b)]]||0x0));return _0x3ceee0-_0x1b1337;})[0x0]?.['name']||_0x2b84c2(0x119);}['_scheduleRefresh'](){setInterval(async()=>{const _0x468096=a0_0x2582;this[_0x468096(0x132)]()&&(this[_0x468096(0x142)][_0x468096(0x120)]('Refreshing\x20benchmark\x20data'),await this[_0x468096(0x138)]());},this['refreshInterval']);}async['forceRefresh'](){const _0x40bbd2=a0_0x3645e0;this['logger']['info'](_0x40bbd2(0x121)),await this['loadBenchmarks']();}[a0_0x3645e0(0x116)](){const _0x59e7d1=a0_0x3645e0;return{'initialized':!!this['benchmarks'],'lastUpdated':this[_0x59e7d1(0x11e)]?.['toISOString']()||null,'source':this['benchmarks']?.['source']||'unknown','modelCount':this[_0x59e7d1(0x13b)]?.[_0x59e7d1(0x133)]?.['length']||0x0,'isLoading':this['isLoading'],'needsRefresh':this['needsRefresh']()};}}function a0_0x3ae9(){const _0x4349fa=['mtmZotCZnhf2D3rxta','BgfZDfvWzgf0zwq','ANnVBG','zgvIDwC','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','BgvUz3rO','zMLSDgvY','mta4yujeB05b','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','yxP1CMvcywnRzw5KvxjS','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','y29UzMLN','C2nVCMu','BMfTzq','Aw5MBW','x2DLDejLC3rnB2rLBezVCLrHC2S','mtGZmZi4mhb5EM5tEq','y29KAw5N','x3nJAgvKDwXLuMvMCMvZAa','sfruuca','C3bLzwq','BMvLzhnszwzYzxnO','Bw9KzwXZ','ndeWntC3ExHiwMXx','rMfPBgvKihrVigLUAxrPywXPEMuGyMvUy2HTyxjRihnLCNzPy2uGlsbotYbgquXmqKfdsW','z2v0qMvUy2HTyxjRvgfIBgu','Bwf4','Bg9HzejLBMnOBwfYA3m','oevjv3PXsa','zxjYB3i','yMvUy2HTyxjRCW','DMfSDwvZ','C3rHDhvZvgv4Da','yxbPs2v5','nta2mJeYmfriEwDeBG','Dg9ju09tDhjPBMC','z2v0vgLTzq','Bg9Nz2vY','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','DgfZA3m','z2v0qMvUy2HTyxjRCW','BwfW','AxnmB2fKAw5N','mJG2nZq2nM5WteDtuq','z2v0u3rHDhvZ','y3jLyxrPDMu','mJG3nZyXmgrnruLTwq','Dw5RBM93BG','odmXnJuZmgPwzLvhDG','y29ZDa','mujdBgj6BW'];a0_0x3ae9=function(){return _0x4349fa;};return a0_0x3ae9();}export default BenchmarkService;
1
+ function a0_0x81af(_0x262d3c,_0x3da488){_0x262d3c=_0x262d3c-0x173;const _0x3fd929=a0_0x3fd9();let _0x81afbe=_0x3fd929[_0x262d3c];if(a0_0x81af['htDvEP']===undefined){var _0x55f24a=function(_0x20837e){const _0x4b7380='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39a3d6='',_0x7f7057='';for(let _0x32e889=0x0,_0x98db08,_0x212e51,_0x18e46e=0x0;_0x212e51=_0x20837e['charAt'](_0x18e46e++);~_0x212e51&&(_0x98db08=_0x32e889%0x4?_0x98db08*0x40+_0x212e51:_0x212e51,_0x32e889++%0x4)?_0x39a3d6+=String['fromCharCode'](0xff&_0x98db08>>(-0x2*_0x32e889&0x6)):0x0){_0x212e51=_0x4b7380['indexOf'](_0x212e51);}for(let _0x1763e5=0x0,_0x3c9dd9=_0x39a3d6['length'];_0x1763e5<_0x3c9dd9;_0x1763e5++){_0x7f7057+='%'+('00'+_0x39a3d6['charCodeAt'](_0x1763e5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x7f7057);};a0_0x81af['IbUooZ']=_0x55f24a,a0_0x81af['HGBuDU']={},a0_0x81af['htDvEP']=!![];}const _0x52654a=_0x3fd929[0x0],_0x5ad183=_0x262d3c+_0x52654a,_0x461791=a0_0x81af['HGBuDU'][_0x5ad183];return!_0x461791?(_0x81afbe=a0_0x81af['IbUooZ'](_0x81afbe),a0_0x81af['HGBuDU'][_0x5ad183]=_0x81afbe):_0x81afbe=_0x461791,_0x81afbe;}const a0_0x152015=a0_0x81af;(function(_0x32165e,_0x4c4a68){const _0x2b8c4b=a0_0x81af,_0x570859=_0x32165e();while(!![]){try{const _0x42cb99=parseInt(_0x2b8c4b(0x181))/0x1+parseInt(_0x2b8c4b(0x19f))/0x2*(-parseInt(_0x2b8c4b(0x18e))/0x3)+parseInt(_0x2b8c4b(0x187))/0x4+-parseInt(_0x2b8c4b(0x1a5))/0x5*(parseInt(_0x2b8c4b(0x19b))/0x6)+parseInt(_0x2b8c4b(0x18f))/0x7+-parseInt(_0x2b8c4b(0x1ac))/0x8*(parseInt(_0x2b8c4b(0x196))/0x9)+-parseInt(_0x2b8c4b(0x18b))/0xa;if(_0x42cb99===_0x4c4a68)break;else _0x570859['push'](_0x570859['shift']());}catch(_0x2561ea){_0x570859['push'](_0x570859['shift']());}}}(a0_0x3fd9,0x28825));function a0_0x3fd9(){const _0x5245d4=['AxnmB2fKAw5N','Bg9HzejLBMnOBwfYA3m','BwvZC2fNzq','yxP1CMvcywnRzw5KvxjS','mJe2odm3DMDly0fX','yMvUy2HTyxjRCW','Bw9KzwXZ','CMvMCMvZAeLUDgvYDMfS','x2DLDejLC3rnB2rLBezVCLrHC2S','mtaXnhH5CMnvuG','x2DLDezHC3rLC3rnB2rLBa','C3bLzwq','z2v0qMvUy2HTyxjRCW','mZKXohzuveDhAa','Aw5MBW','BgfZDfvWzgf0zwq','BM93','y3jLyxrPDMu','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','mZKZmezTDg9IqW','zxjYB3i','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','Dw5RBM93BG','CxvPy2STDgfZA3m','zMLSDgvY','z2v0vgLTzq','mta0BNr1Buz6','zM9Yy2vszwzYzxnO','C3rHDhvZvgv4Da','y29ZDa','Bwf4','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','BMvLzhnszwzYzxnO','y29UzMLN','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BwfW','yw5HBhLZAxm','Bg9Nz2vY','yxbPs2v5','BMfTzq','r0vu','mty3mty2tgX5qxno','DgfZA3m','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','x2DLDe1VC3rdB3n0rwzMAwnPzw50','ANnVBG','C3rHDhvZ','ntK4mJGWwK1tseXY','DMfSDwvZ','Dg9ju09tDhjPBMC','zgvIDwC','mJqZnZGWq2vxwKfA','C29YDa','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','nNvLquv2vq','mJi2ndy5nKDMEwD1rq','y29KAw5N','BgvUz3rO'];a0_0x3fd9=function(){return _0x5245d4;};return a0_0x3fd9();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x39a3d6,_0x7f7057){const _0x3276dc=a0_0x81af;this['config']=_0x39a3d6,this['logger']=_0x7f7057,this['benchmarks']=null,this['lastUpdated']=null,this[_0x3276dc(0x192)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x3276dc(0x17a)];}async['initialize'](){const _0x3aa34e=a0_0x81af;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this[_0x3aa34e(0x17d)][_0x3aa34e(0x1a0)](_0x3aa34e(0x18d));}catch(_0x32e889){this[_0x3aa34e(0x17d)][_0x3aa34e(0x1a6)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x32e889['message']}),this['benchmarks']=null;}}[a0_0x152015(0x19e)](){const _0x4e2df1=a0_0x152015;if(!this['benchmarks'])return this[_0x4e2df1(0x17d)][_0x4e2df1(0x1a6)](_0x4e2df1(0x183),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x4e2df1(0x197)];}async[a0_0x152015(0x193)](){const _0x126aee=a0_0x152015;if(this[_0x126aee(0x192)]){this[_0x126aee(0x17d)][_0x126aee(0x18a)](_0x126aee(0x1a7));return;}this['isLoading']=!![];try{const _0x98db08=await this['_fetchFromAzureBackend']();if(_0x98db08)this['benchmarks']=_0x98db08,this['lastUpdated']=new Date(),this['logger'][_0x126aee(0x1a0)]('Benchmarks loaded from Azure backend',{'modelCount':_0x98db08[_0x126aee(0x198)]?.[_0x126aee(0x191)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x212e51){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x212e51[_0x126aee(0x194)],'endpoint':url}),!this['benchmarks']&&(this[_0x126aee(0x197)]=null);}finally{this['isLoading']=![];}}['getBenchmarkTable'](){const _0x663299=a0_0x152015,_0x18e46e=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||_0x663299(0x1a8),'models':_0x18e46e['models']||[],'tasks':_0x18e46e[_0x663299(0x182)]||{},'summary':this['_generateBenchmarkSummary'](_0x18e46e)};}[a0_0x152015(0x178)](){const _0x4c7afe=a0_0x152015;if(!this[_0x4c7afe(0x1a1)])return!![];const _0x1763e5=Date[_0x4c7afe(0x1a2)]()-this['lastUpdated'][_0x4c7afe(0x1ab)]();return _0x1763e5>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0x164aff=a0_0x152015,_0x3c9dd9=this[_0x164aff(0x195)]+'/llm/model-benchmarks';let _0x506871=null;this[_0x164aff(0x179)][_0x164aff(0x17e)]&&(_0x506871=this[_0x164aff(0x179)]['apiKey']);const _0x5bd669={'method':_0x164aff(0x180),'headers':{'Content-Type':'application/json',..._0x506871&&{'Authorization':'Bearer\x20'+_0x506871}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x3c9dd9});const _0x196779=await fetch(_0x3c9dd9,_0x5bd669);if(!_0x196779['ok'])throw new Error('HTTP\x20'+_0x196779[_0x164aff(0x186)]+':\x20'+_0x196779[_0x164aff(0x174)]);const _0x45adca=await _0x196779[_0x164aff(0x185)]();return _0x45adca;}[a0_0x152015(0x177)](_0x18e275){const _0x40f0f3=a0_0x152015,_0x4a7242=_0x18e275[_0x40f0f3(0x198)]||[];return{'totalModels':_0x4a7242['length'],'taskCategories':Object['keys'](_0x18e275[_0x40f0f3(0x182)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x4a7242,_0x40f0f3(0x190)),'bestForAnalysis':this[_0x40f0f3(0x19a)](_0x4a7242,_0x40f0f3(0x17c)),'bestForQuickTasks':this['_getBestModelForTask'](_0x4a7242,_0x40f0f3(0x1a9)),'bestForCreative':this[_0x40f0f3(0x19a)](_0x4a7242,_0x40f0f3(0x1a3)),'fastestModel':this[_0x40f0f3(0x19c)](_0x4a7242),'mostCostEfficient':this['_getMostCostEfficient'](_0x4a7242)};}['_getBestModelForTask'](_0x26a2b4,_0x4740c9){const _0x52d10a=a0_0x152015;return _0x26a2b4[_0x52d10a(0x1aa)](_0x204556=>_0x204556[_0x52d10a(0x182)]&&_0x204556[_0x52d10a(0x182)][_0x4740c9])['sort']((_0x186dcc,_0x1080c5)=>(_0x1080c5['tasks'][_0x4740c9]['score']||0x0)-(_0x186dcc['tasks'][_0x4740c9]['score']||0x0))[0x0]?.[_0x52d10a(0x17f)]||_0x52d10a(0x1a8);}[a0_0x152015(0x19c)](_0x425652){const _0x52add0=a0_0x152015,_0x4f1cf0={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x425652[_0x52add0(0x18c)]((_0x522560,_0x396e77)=>{const _0x516ae8=_0x52add0,_0x4ca948=Math['max'](...Object[_0x516ae8(0x188)](_0x522560[_0x516ae8(0x182)]||{})[_0x516ae8(0x17b)](_0x4cc23c=>_0x4f1cf0[_0x4cc23c[_0x516ae8(0x19d)]]||0x0)),_0x1721ea=Math[_0x516ae8(0x176)](...Object['values'](_0x396e77['tasks']||{})['map'](_0x2d0448=>_0x4f1cf0[_0x2d0448['speed']]||0x0));return _0x1721ea-_0x4ca948;})[0x0]?.['name']||_0x52add0(0x1a8);}[a0_0x152015(0x184)](_0x469dfa){const _0x11ca1c=a0_0x152015,_0x4448f9={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x469dfa[_0x11ca1c(0x18c)]((_0x4f9665,_0x457a0c)=>{const _0x51de11=_0x11ca1c,_0xca8161=Math['max'](...Object[_0x51de11(0x188)](_0x4f9665[_0x51de11(0x182)]||{})[_0x51de11(0x17b)](_0x4f1246=>_0x4448f9[_0x4f1246[_0x51de11(0x175)]]||0x0)),_0x39e865=Math['max'](...Object[_0x51de11(0x188)](_0x457a0c[_0x51de11(0x182)]||{})[_0x51de11(0x17b)](_0x3939e0=>_0x4448f9[_0x3939e0[_0x51de11(0x175)]]||0x0));return _0x39e865-_0xca8161;})[0x0]?.[_0x11ca1c(0x17f)]||_0x11ca1c(0x1a8);}['_scheduleRefresh'](){const _0x2b8470=a0_0x152015;setInterval(async()=>{const _0xbb3281=a0_0x81af;this[_0xbb3281(0x178)]()&&(this['logger'][_0xbb3281(0x18a)]('Refreshing\x20benchmark\x20data'),await this[_0xbb3281(0x193)]());},this[_0x2b8470(0x199)]);}async[a0_0x152015(0x173)](){const _0x37e61e=a0_0x152015;this[_0x37e61e(0x17d)]['info'](_0x37e61e(0x1a4)),await this['loadBenchmarks']();}['getStatus'](){const _0x13ca33=a0_0x152015;return{'initialized':!!this['benchmarks'],'lastUpdated':this[_0x13ca33(0x1a1)]?.[_0x13ca33(0x189)]()||null,'source':this['benchmarks']?.['source']||'unknown','modelCount':this[_0x13ca33(0x197)]?.[_0x13ca33(0x198)]?.[_0x13ca33(0x191)]||0x0,'isLoading':this[_0x13ca33(0x192)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
@@ -1 +1 @@
1
- const a0_0x5bb413=a0_0xf73e;(function(_0x357c32,_0x3564f3){const _0x4018a0=a0_0xf73e,_0x26430e=_0x357c32();while(!![]){try{const _0x3ffd87=parseInt(_0x4018a0(0xb6))/0x1*(-parseInt(_0x4018a0(0xb0))/0x2)+-parseInt(_0x4018a0(0xe3))/0x3+-parseInt(_0x4018a0(0xd1))/0x4*(parseInt(_0x4018a0(0xeb))/0x5)+-parseInt(_0x4018a0(0xe1))/0x6*(parseInt(_0x4018a0(0xe0))/0x7)+parseInt(_0x4018a0(0xb1))/0x8+parseInt(_0x4018a0(0xe2))/0x9+parseInt(_0x4018a0(0xa2))/0xa;if(_0x3ffd87===_0x3564f3)break;else _0x26430e['push'](_0x26430e['shift']());}catch(_0x500a43){_0x26430e['push'](_0x26430e['shift']());}}}(a0_0x3266,0xa14c5));function a0_0xf73e(_0x35deca,_0x58b8b8){_0x35deca=_0x35deca-0x9e;const _0x3266e6=a0_0x3266();let _0xf73e43=_0x3266e6[_0x35deca];if(a0_0xf73e['BzliXv']===undefined){var _0x541dd0=function(_0x47b11e){const _0x3a661e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1ae9f2='',_0x4f91a5='';for(let _0x475bc6=0x0,_0x4563f9,_0x589c77,_0x2fc06d=0x0;_0x589c77=_0x47b11e['charAt'](_0x2fc06d++);~_0x589c77&&(_0x4563f9=_0x475bc6%0x4?_0x4563f9*0x40+_0x589c77:_0x589c77,_0x475bc6++%0x4)?_0x1ae9f2+=String['fromCharCode'](0xff&_0x4563f9>>(-0x2*_0x475bc6&0x6)):0x0){_0x589c77=_0x3a661e['indexOf'](_0x589c77);}for(let _0x3c5368=0x0,_0x510a1e=_0x1ae9f2['length'];_0x3c5368<_0x510a1e;_0x3c5368++){_0x4f91a5+='%'+('00'+_0x1ae9f2['charCodeAt'](_0x3c5368)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f91a5);};a0_0xf73e['mCbLva']=_0x541dd0,a0_0xf73e['Hmxpyh']={},a0_0xf73e['BzliXv']=!![];}const _0x362d8b=_0x3266e6[0x0],_0x539f6f=_0x35deca+_0x362d8b,_0xc87d61=a0_0xf73e['Hmxpyh'][_0x539f6f];return!_0xc87d61?(_0xf73e43=a0_0xf73e['mCbLva'](_0xf73e43),a0_0xf73e['Hmxpyh'][_0x539f6f]=_0xf73e43):_0xf73e43=_0xc87d61,_0xf73e43;}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x1ae9f2,_0x4f91a5){const _0x330665=a0_0xf73e;this['config']=_0x1ae9f2||{},this[_0x330665(0xa9)]=_0x4f91a5,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x330665(0xb8)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x330665(0xe4)],'monthly':BUDGET_LIMITS['MONTHLY']},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x330665(0x9e)],'lastAlertTimes':new Map()},this[_0x330665(0xe6)](),this[_0x330665(0xd4)]();}['trackUsage'](_0x475bc6,_0x4563f9,_0x589c77){const _0x4c1c62=a0_0xf73e;try{const _0x2fc06d=this[_0x4c1c62(0xcf)](_0x4563f9,_0x589c77),_0x3c5368=new Date(),_0x510a1e=this[_0x4c1c62(0xc5)](_0x3c5368),_0x201eb9=this['getWeekKey'](_0x3c5368),_0xf27d80=this[_0x4c1c62(0xe7)](_0x3c5368);this['initializeUsageEntry'](this[_0x4c1c62(0xdc)]['daily'],_0x510a1e),this['initializeUsageEntry'](this[_0x4c1c62(0xdc)]['weekly'],_0x201eb9),this['initializeUsageEntry'](this[_0x4c1c62(0xdc)][_0x4c1c62(0xbc)],_0xf27d80);const _0x5abe00={'agentId':_0x475bc6,'modelId':_0x4563f9,'tokens':_0x589c77[_0x4c1c62(0xec)],'cost':_0x2fc06d,'timestamp':_0x3c5368['toISOString']()};return this['updateUsageEntry'](this['usage']['daily']['get'](_0x510a1e),_0x5abe00),this[_0x4c1c62(0xc2)](this['usage'][_0x4c1c62(0xdf)]['get'](_0x201eb9),_0x5abe00),this['updateUsageEntry'](this[_0x4c1c62(0xdc)]['monthly'][_0x4c1c62(0xa3)](_0xf27d80),_0x5abe00),this[_0x4c1c62(0xdc)][_0x4c1c62(0xb9)][_0x4c1c62(0xca)]+=_0x589c77['total_tokens'],this['usage']['total']['cost']+=_0x2fc06d,this[_0x4c1c62(0xdc)]['total'][_0x4c1c62(0xb3)]+=0x1,this['checkBudgetLimits'](_0x510a1e,_0x201eb9,_0xf27d80),this['logger'][_0x4c1c62(0xd0)]('Usage\x20tracked',{'agentId':_0x475bc6,'modelId':_0x4563f9,'tokens':_0x589c77['total_tokens'],'cost':_0x2fc06d,'totalCost':this[_0x4c1c62(0xdc)]['total'][_0x4c1c62(0xde)]}),{'cost':_0x2fc06d,'totalCost':this[_0x4c1c62(0xdc)]['total']['cost'],'totalTokens':this[_0x4c1c62(0xdc)]['total']['tokens'],'dailyUsage':this['usage'][_0x4c1c62(0xa5)]['get'](_0x510a1e),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5bd3f0){this['logger']['error']('Failed\x20to\x20track\x20usage',{'error':_0x5bd3f0['message'],'agentId':_0x475bc6,'modelId':_0x4563f9});throw _0x5bd3f0;}}['calculateCost'](_0x39b29b,_0x405219){const _0x48dedf=a0_0xf73e,_0x4f8556=COST_PER_TOKEN[_0x39b29b];if(!_0x4f8556)return this[_0x48dedf(0xa9)]['warn'](_0x48dedf(0xae),{'modelId':_0x39b29b}),0x0;const _0x5e1a36=(_0x405219['prompt_tokens']||0x0)*_0x4f8556['input'],_0x565ab8=(_0x405219['completion_tokens']||0x0)*_0x4f8556['output'];return _0x5e1a36+_0x565ab8;}['getUsage'](_0xb48704=a0_0x5bb413(0xa5),_0x294ff6=new Date()){const _0x58c7eb=a0_0x5bb413;switch(_0xb48704){case _0x58c7eb(0xa5):return this[_0x58c7eb(0xdc)]['daily']['get'](this[_0x58c7eb(0xc5)](_0x294ff6))||this['createEmptyUsage']();case _0x58c7eb(0xdf):return this[_0x58c7eb(0xdc)][_0x58c7eb(0xdf)][_0x58c7eb(0xa3)](this['getWeekKey'](_0x294ff6))||this['createEmptyUsage']();case'monthly':return this['usage']['monthly'][_0x58c7eb(0xa3)](this['getMonthKey'](_0x294ff6))||this[_0x58c7eb(0xef)]();case _0x58c7eb(0xb9):return{...this[_0x58c7eb(0xdc)][_0x58c7eb(0xb9)]};default:throw new Error('Invalid\x20period:\x20'+_0xb48704);}}['getAgentUsage'](_0x2b6038,_0x551246=a0_0x5bb413(0xa5)){const _0x479fb7=a0_0x5bb413,_0x1a68dd=this[_0x479fb7(0xd6)](_0x551246);return _0x1a68dd[_0x479fb7(0xcb)]?.[_0x2b6038]||this['createEmptyUsage']();}['getModelUsage'](_0x179365,_0x393d66=a0_0x5bb413(0xa5)){const _0x24e701=a0_0x5bb413,_0x1473ab=this[_0x24e701(0xd6)](_0x393d66);return _0x1473ab[_0x24e701(0xdb)]?.[_0x179365]||this['createEmptyUsage']();}['setBudgets'](_0x38e52b){const _0x5ebefd=a0_0x5bb413;if(_0x38e52b[_0x5ebefd(0xa5)]!==undefined)this[_0x5ebefd(0xb8)][_0x5ebefd(0xa5)]=_0x38e52b[_0x5ebefd(0xa5)];if(_0x38e52b['weekly']!==undefined)this[_0x5ebefd(0xb8)][_0x5ebefd(0xdf)]=_0x38e52b[_0x5ebefd(0xdf)];if(_0x38e52b[_0x5ebefd(0xbc)]!==undefined)this[_0x5ebefd(0xb8)]['monthly']=_0x38e52b['monthly'];this['logger']['info'](_0x5ebefd(0xee),this['budgets']),this[_0x5ebefd(0xac)]();}[a0_0x5bb413(0xd9)](){const _0x36e2e7=a0_0x5bb413,_0x15a462=new Date(),_0x5dfb0e=this[_0x36e2e7(0xd6)]('daily',_0x15a462),_0x33e0ab=this['getUsage'](_0x36e2e7(0xdf),_0x15a462),_0x5e60dd=this['getUsage']('monthly',_0x15a462);return{'daily':Math[_0x36e2e7(0xed)](0x0,this[_0x36e2e7(0xb8)][_0x36e2e7(0xa5)]-_0x5dfb0e[_0x36e2e7(0xde)]),'weekly':Math[_0x36e2e7(0xed)](0x0,this[_0x36e2e7(0xb8)]['weekly']-_0x33e0ab['cost']),'monthly':Math[_0x36e2e7(0xed)](0x0,this[_0x36e2e7(0xb8)][_0x36e2e7(0xbc)]-_0x5e60dd[_0x36e2e7(0xde)])};}['isWithinBudget'](_0x5cd058=a0_0x5bb413(0xa5)){const _0x241c9b=a0_0x5bb413,_0x3feaa9=this['getUsage'](_0x5cd058),_0x278506=this['budgets'][_0x5cd058];return _0x3feaa9[_0x241c9b(0xde)]<=_0x278506;}[a0_0x5bb413(0xba)](_0x395432=0x1e){const _0x19d872=a0_0x5bb413,_0x43db35={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x9d87ab=new Date();let _0x25c706=0x0,_0x205559=0x0,_0x2f8858=0x0;const _0x404f88=new Map(),_0x258adc=new Map();for(let _0x22b5f2=0x0;_0x22b5f2<_0x395432;_0x22b5f2++){const _0xc17337=new Date(_0x9d87ab);_0xc17337['setDate'](_0xc17337['getDate']()-_0x22b5f2);const _0x5f0a72=this[_0x19d872(0xc5)](_0xc17337),_0x1d7292=this[_0x19d872(0xdc)]['daily']['get'](_0x5f0a72);_0x1d7292?(_0x25c706+=_0x1d7292[_0x19d872(0xde)],_0x205559+=_0x1d7292[_0x19d872(0xca)],_0x2f8858+=_0x1d7292['requests'],_0x43db35['costByDay']['unshift']({'date':_0x5f0a72,'cost':_0x1d7292[_0x19d872(0xde)]}),_0x43db35[_0x19d872(0xc4)][_0x19d872(0xb4)]({'date':_0x5f0a72,'tokens':_0x1d7292[_0x19d872(0xca)]}),Object['entries'](_0x1d7292['byAgent']||{})[_0x19d872(0xdd)](([_0x2ea9fd,_0x4e60d0])=>{const _0x25ff13=_0x19d872;!_0x404f88['has'](_0x2ea9fd)&&_0x404f88[_0x25ff13(0xd5)](_0x2ea9fd,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x390426=_0x404f88['get'](_0x2ea9fd);_0x390426['cost']+=_0x4e60d0[_0x25ff13(0xde)],_0x390426['tokens']+=_0x4e60d0[_0x25ff13(0xca)],_0x390426['requests']+=_0x4e60d0[_0x25ff13(0xb3)];}),Object['entries'](_0x1d7292['byModel']||{})[_0x19d872(0xdd)](([_0x2a6b68,_0x42c881])=>{const _0x4e28b8=_0x19d872;!_0x258adc['has'](_0x2a6b68)&&_0x258adc[_0x4e28b8(0xd5)](_0x2a6b68,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x19c126=_0x258adc['get'](_0x2a6b68);_0x19c126['cost']+=_0x42c881[_0x4e28b8(0xde)],_0x19c126['tokens']+=_0x42c881[_0x4e28b8(0xca)],_0x19c126[_0x4e28b8(0xb3)]+=_0x42c881[_0x4e28b8(0xb3)];})):(_0x43db35['costByDay'][_0x19d872(0xb4)]({'date':_0x5f0a72,'cost':0x0}),_0x43db35['tokensByDay'][_0x19d872(0xb4)]({'date':_0x5f0a72,'tokens':0x0}));}return _0x43db35[_0x19d872(0xad)][_0x19d872(0xde)]=_0x25c706/_0x395432,_0x43db35[_0x19d872(0xad)]['tokens']=_0x205559/_0x395432,_0x43db35['dailyAverages']['requests']=_0x2f8858/_0x395432,_0x43db35[_0x19d872(0xab)]=Array['from'](_0x404f88[_0x19d872(0xbb)]())['map'](([_0x35ffe6,_0x51bd1b])=>({'id':_0x35ffe6,..._0x51bd1b}))['sort']((_0xe7ff18,_0x3f5743)=>_0x3f5743[_0x19d872(0xde)]-_0xe7ff18['cost'])[_0x19d872(0xa0)](0x0,0xa),_0x43db35[_0x19d872(0xea)]=Array[_0x19d872(0xa7)](_0x258adc['entries']())['map'](([_0xe0ef1c,_0x3d8388])=>({'id':_0xe0ef1c,..._0x3d8388}))[_0x19d872(0xa8)]((_0x9bc560,_0x4c8bb7)=>_0x4c8bb7['cost']-_0x9bc560[_0x19d872(0xde)])['slice'](0x0,0xa),_0x43db35;}[a0_0x5bb413(0xd8)](_0x370394='json',_0x17fd75=null,_0x284719=null){const _0x164121=a0_0x5bb413,_0x53b0fc={'budgets':this[_0x164121(0xb8)],'total':this[_0x164121(0xdc)]['total'],'daily':{},'weekly':{},'monthly':{}},_0x228f54=(_0x1a797c,_0x20194a)=>{const _0x59db90={};return _0x1a797c['forEach']((_0x116698,_0x47aa5f)=>{const _0x203a02=_0x20194a(_0x47aa5f);(!_0x17fd75||_0x203a02>=_0x17fd75)&&(!_0x284719||_0x203a02<=_0x284719)&&(_0x59db90[_0x47aa5f]=_0x116698);}),_0x59db90;};_0x17fd75||_0x284719?(_0x53b0fc['daily']=_0x228f54(this[_0x164121(0xdc)][_0x164121(0xa5)],_0x31bfe7=>new Date(_0x31bfe7)),_0x53b0fc['weekly']=_0x228f54(this['usage']['weekly'],_0x2d2b9b=>new Date(_0x2d2b9b)),_0x53b0fc[_0x164121(0xbc)]=_0x228f54(this[_0x164121(0xdc)]['monthly'],_0x156471=>new Date(_0x156471+'-01'))):(this[_0x164121(0xdc)]['daily'][_0x164121(0xdd)]((_0x36dec3,_0x28c69c)=>_0x53b0fc['daily'][_0x28c69c]=_0x36dec3),this[_0x164121(0xdc)]['weekly'][_0x164121(0xdd)]((_0x10b849,_0x44c981)=>_0x53b0fc['weekly'][_0x44c981]=_0x10b849),this['usage'][_0x164121(0xbc)]['forEach']((_0x5f0c27,_0x271121)=>_0x53b0fc['monthly'][_0x271121]=_0x5f0c27));if(_0x370394===_0x164121(0xc1))return this['convertToCSV'](_0x53b0fc);return JSON[_0x164121(0xaf)](_0x53b0fc,null,0x2);}[a0_0x5bb413(0xbf)](_0x344ef8,_0x58fcee){const _0x202e0a=a0_0x5bb413;!_0x344ef8[_0x202e0a(0xf1)](_0x58fcee)&&_0x344ef8[_0x202e0a(0xd5)](_0x58fcee,this[_0x202e0a(0xef)]());}[a0_0x5bb413(0xef)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x5bb413(0xc2)](_0x3fd5cb,_0x36e713){const _0x2210a6=a0_0x5bb413;_0x3fd5cb[_0x2210a6(0xde)]+=_0x36e713['cost'],_0x3fd5cb['tokens']+=_0x36e713[_0x2210a6(0xca)],_0x3fd5cb[_0x2210a6(0xb3)]+=0x1,!_0x3fd5cb[_0x2210a6(0xcb)][_0x36e713['agentId']]&&(_0x3fd5cb['byAgent'][_0x36e713['agentId']]=this['createEmptyUsage']()),_0x3fd5cb['byAgent'][_0x36e713['agentId']]['cost']+=_0x36e713[_0x2210a6(0xde)],_0x3fd5cb[_0x2210a6(0xcb)][_0x36e713['agentId']][_0x2210a6(0xca)]+=_0x36e713[_0x2210a6(0xca)],_0x3fd5cb[_0x2210a6(0xcb)][_0x36e713['agentId']]['requests']+=0x1,!_0x3fd5cb[_0x2210a6(0xdb)][_0x36e713['modelId']]&&(_0x3fd5cb[_0x2210a6(0xdb)][_0x36e713['modelId']]=this[_0x2210a6(0xef)]()),_0x3fd5cb['byModel'][_0x36e713['modelId']]['cost']+=_0x36e713['cost'],_0x3fd5cb['byModel'][_0x36e713[_0x2210a6(0xcc)]]['tokens']+=_0x36e713['tokens'],_0x3fd5cb[_0x2210a6(0xdb)][_0x36e713[_0x2210a6(0xcc)]][_0x2210a6(0xb3)]+=0x1;}[a0_0x5bb413(0xaa)](_0x38784c,_0x5e7658,_0x1e4956){const _0x421434=a0_0x5bb413,_0xb1e33=this['usage']['daily']['get'](_0x38784c),_0x317d63=this[_0x421434(0xdc)]['weekly'][_0x421434(0xa3)](_0x5e7658),_0x309013=this[_0x421434(0xdc)]['monthly'][_0x421434(0xa3)](_0x1e4956);_0xb1e33[_0x421434(0xde)]>this[_0x421434(0xb8)]['daily']&&this['sendBudgetAlert'](_0x421434(0xa5),_0xb1e33['cost'],this[_0x421434(0xb8)]['daily']),_0x317d63['cost']>this['budgets'][_0x421434(0xdf)]&&this[_0x421434(0xda)]('weekly',_0x317d63[_0x421434(0xde)],this[_0x421434(0xb8)]['weekly']),_0x309013[_0x421434(0xde)]>this[_0x421434(0xb8)]['monthly']&&this['sendBudgetAlert'](_0x421434(0xbc),_0x309013[_0x421434(0xde)],this['budgets'][_0x421434(0xbc)]),this[_0x421434(0xf0)](_0xb1e33,_0x317d63,_0x309013);}['checkThresholdAlerts'](_0x1a805a,_0x4060f0,_0x1401f7){const _0x114dc3=a0_0x5bb413,_0x146de8=this[_0x114dc3(0xc0)]['thresholds'];this[_0x114dc3(0xd3)](_0x114dc3(0xa5),_0x1a805a[_0x114dc3(0xde)],this['budgets'][_0x114dc3(0xa5)],_0x146de8),this['checkThreshold']('weekly',_0x4060f0[_0x114dc3(0xde)],this[_0x114dc3(0xb8)]['weekly'],_0x146de8),this['checkThreshold']('monthly',_0x1401f7[_0x114dc3(0xde)],this[_0x114dc3(0xb8)]['monthly'],_0x146de8);}[a0_0x5bb413(0xd3)](_0x178ba4,_0x25bde1,_0x1351e0,_0x4733c1){const _0xa01578=a0_0x5bb413,_0x4244d0=_0x25bde1/_0x1351e0*0x64;for(const _0x5581ef of _0x4733c1){if(_0x4244d0>=_0x5581ef){const _0x11dda5=_0x178ba4+'_'+_0x5581ef,_0x190c91=this['alerts']['lastAlertTimes']['get'](_0x11dda5),_0x4dba27=Date[_0xa01578(0xce)]();(!_0x190c91||_0x4dba27-_0x190c91>0x36ee80)&&(this['sendThresholdAlert'](_0x178ba4,_0x4244d0,_0x5581ef,_0x25bde1,_0x1351e0),this[_0xa01578(0xc0)]['lastAlertTimes']['set'](_0x11dda5,_0x4dba27));break;}}}[a0_0x5bb413(0xda)](_0x5a01c4,_0x24faf3,_0x15c85c){const _0x2d32c0=a0_0x5bb413;this['logger']['warn'](_0x2d32c0(0xc6),{'period':_0x5a01c4,'currentUsage':_0x24faf3,'budgetLimit':_0x15c85c,'excess':_0x24faf3-_0x15c85c}),typeof process!==_0x2d32c0(0xd7)&&process[_0x2d32c0(0xb2)]&&process['emit']('budgetAlert',{'type':_0x2d32c0(0xc7),'period':_0x5a01c4,'currentUsage':_0x24faf3,'budgetLimit':_0x15c85c,'excess':_0x24faf3-_0x15c85c});}[a0_0x5bb413(0xb5)](_0x1f3bb,_0x398c10,_0x1505c4,_0x5914dd,_0x4019a7){const _0x4c06f5=a0_0x5bb413;this[_0x4c06f5(0xa9)]['warn']('Budget\x20threshold\x20reached',{'period':_0x1f3bb,'percentage':Math[_0x4c06f5(0xa1)](_0x398c10),'threshold':_0x1505c4,'usage':_0x5914dd,'budget':_0x4019a7}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':'threshold_reached','period':_0x1f3bb,'percentage':Math[_0x4c06f5(0xa1)](_0x398c10),'threshold':_0x1505c4,'usage':_0x5914dd,'budget':_0x4019a7});}['getDayKey'](_0x54f374){return _0x54f374['toISOString']()['split']('T')[0x0];}['getWeekKey'](_0x5ae613){const _0x6db6bb=_0x5ae613['getFullYear'](),_0x15650d=this['getWeekNumber'](_0x5ae613);return _0x6db6bb+'-W'+_0x15650d['toString']()['padStart'](0x2,'0');}[a0_0x5bb413(0xe7)](_0x33d98c){const _0xe410e=a0_0x5bb413,_0x583825=_0x33d98c['getFullYear'](),_0x3d9a17=_0x33d98c[_0xe410e(0xc8)]()+0x1;return _0x583825+'-'+_0x3d9a17['toString']()['padStart'](0x2,'0');}['getWeekNumber'](_0x444f2c){const _0x33d329=a0_0x5bb413,_0x13266a=new Date(_0x444f2c[_0x33d329(0xd2)](),0x0,0x1),_0x3343b8=(_0x444f2c-_0x13266a)/0x5265c00;return Math[_0x33d329(0xc9)]((_0x3343b8+_0x13266a['getDay']()+0x1)/0x7);}[a0_0x5bb413(0xe8)](_0x2928ab){const _0x5629c5=a0_0x5bb413,_0x21e7c8=[];return _0x21e7c8[_0x5629c5(0xbe)]([_0x5629c5(0xcd),'Date','Cost','Tokens','Requests','Agent','Model']),Object[_0x5629c5(0xbb)](_0x2928ab['daily'])[_0x5629c5(0xdd)](([_0x27fca3,_0x64f880])=>{const _0x47a4ec=_0x5629c5;_0x21e7c8['push'](['Daily',_0x27fca3,_0x64f880[_0x47a4ec(0xde)],_0x64f880['tokens'],_0x64f880[_0x47a4ec(0xb3)],'','']),Object['entries'](_0x64f880[_0x47a4ec(0xcb)]||{})['forEach'](([_0x369407,_0x296764])=>{const _0x3a1078=_0x47a4ec;_0x21e7c8['push']([_0x3a1078(0xb7),_0x27fca3,_0x296764[_0x3a1078(0xde)],_0x296764['tokens'],_0x296764['requests'],_0x369407,'']);});}),_0x21e7c8[_0x5629c5(0xe5)](_0x2fa546=>_0x2fa546['join'](','))[_0x5629c5(0xc3)]('\x0a');}['loadUsageData'](){const _0x29d973=a0_0x5bb413;try{this['logger'][_0x29d973(0xd0)](_0x29d973(0xa4));}catch(_0x12d6be){this['logger'][_0x29d973(0x9f)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x12d6be['message']});}}['saveUsageData'](){const _0x22d573=a0_0x5bb413;try{this[_0x22d573(0xa9)][_0x22d573(0xa6)](_0x22d573(0xbd));}catch(_0xa8aed4){this['logger']['error'](_0x22d573(0xe9),{'error':_0xa8aed4['message']});}}[a0_0x5bb413(0xd4)](){setInterval(()=>{const _0x4a9da0=a0_0xf73e;this[_0x4a9da0(0xac)]();},0x493e0);}}export default BudgetService;function a0_0x3266(){const _0x5411a7=['Dg9Rzw5ZqNLeyxK','z2v0rgf5s2v5','qNvKz2v0igXPBwL0igv4y2vLzgvK','yNvKz2v0x2v4y2vLzgvK','z2v0tw9UDgG','y2vPBa','Dg9Rzw5Z','yNLbz2vUDa','Bw9KzwXjza','ugvYAw9K','BM93','y2fSy3vSyxrLq29ZDa','Aw5MBW','mJG5ota5nKL5txvSEa','z2v0rNvSBfLLyxi','y2HLy2TuAhjLC2HVBgq','C2v0DxbqzxjPB2rPy1nHDMu','C2v0','z2v0vxnHz2u','Dw5KzwzPBMvK','zxHWB3j0vxnHz2veyxrH','z2v0uMvTywLUAw5NqNvKz2v0','C2vUzej1zgDLDefSzxj0','yNLnB2rLBa','DxnHz2u','zM9YrwfJAa','y29ZDa','D2vLA2X5','mte5wfDXC1HS','mJa2mty2BuzUCLPw','ndG5nte3mNvgrNDeta','nJm4mZm3qNPKBMHo','v0vfs0Xz','BwfW','Bg9HzfvZywDLrgf0yq','z2v0tw9UDgHlzxK','y29UDMvYDfrVq1nw','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','Dg9Wtw9KzwXZ','nujSwu13rG','Dg90ywXFDg9Rzw5Z','Bwf4','qNvKz2v0igXPBwL0CYb1CgrHDgvK','y3jLyxrLrw1WDhLvC2fNzq','y2HLy2TuAhjLC2HVBgrbBgvYDhm','AgfZ','veHsrvnit0XeuW','zxjYB3i','C2XPy2u','CM91BMq','mte2mta4nJbwCMjSB1O','z2v0','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','zgfPBhK','zgvIDwC','zNjVBq','C29YDa','Bg9Nz2vY','y2HLy2TcDwrNzxrmAw1PDhm','Dg9WqwDLBNrZ','C2f2zvvZywDLrgf0yq','zgfPBhLbDMvYywDLCW','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','C3rYAw5NAwz5','ndiYtuTsDvjy','nJG4otq1nM9PC0HzAW','zw1PDa','CMvXDwvZDhm','Dw5ZAgLMDa','C2vUzfrOCMvZAg9SzefSzxj0','mtGXowXOz1bJvW','rgfPBhK','yNvKz2v0CW','Dg90ywW','z2v0vxnHz2vuCMvUzhm','zw50CMLLCW','Bw9UDgHSEq','vxnHz2uGzgf0ysbZyxzLza','ChvZAa','Aw5PDgLHBgL6zvvZywDLrw50CNK','ywXLCNrZ','y3n2','DxbKyxrLvxnHz2vfBNrYEq','AM9PBG'];a0_0x3266=function(){return _0x5411a7;};return a0_0x3266();}
1
+ const a0_0x36bf97=a0_0x76c2;(function(_0x5d92e9,_0x370169){const _0x328de0=a0_0x76c2,_0x256686=_0x5d92e9();while(!![]){try{const _0x1d9ee3=parseInt(_0x328de0(0x1ef))/0x1+parseInt(_0x328de0(0x204))/0x2+-parseInt(_0x328de0(0x232))/0x3+-parseInt(_0x328de0(0x241))/0x4*(parseInt(_0x328de0(0x1f0))/0x5)+parseInt(_0x328de0(0x1fd))/0x6+parseInt(_0x328de0(0x222))/0x7+-parseInt(_0x328de0(0x226))/0x8*(-parseInt(_0x328de0(0x1f3))/0x9);if(_0x1d9ee3===_0x370169)break;else _0x256686['push'](_0x256686['shift']());}catch(_0xaba2d){_0x256686['push'](_0x256686['shift']());}}}(a0_0x48af,0xe31d5));function a0_0x48af(){const _0x5a67f5=['zxjYB3i','C2v0DxbqzxjPB2rPy1nHDMu','Dg90ywXFDg9Rzw5Z','y2fSy3vSyxrLq29ZDa','ywXLCNrZ','odiWotC3nKDwAevRAG','z2v0rNvSBfLLyxi','zNjVBq','C2vUzej1zgDLDefSzxj0','BgfZDefSzxj0vgLTzxm','ChvZAa','C2f2zvvZywDLrgf0yq','mte0mZCZmgL6qxbjzW','C2vUzfrOCMvZAg9SzefSzxj0','D2fYBG','z2v0tw9UDgHlzxK','vxnHz2uGzgf0ysbZyxzLza','tw9KzwW','Aw5PDgLHBgL6zvvZywDLrw50CNK','DgHYzxnOB2XKCW','y2vPBa','AM9PBG','ugvYAw9K','zgfPBhK','Dg9Rzw5Z','yNvKz2v0CW','y3jLyxrLrw1WDhLvC2fNzq','Dw5KzwzPBMvK','zM9YrwfJAa','Bw9UDgHSEq','Dg9tDhjPBMC','z2v0rgf5','Bw9KzwXjza','y3n2','CM91BMq','Dg9WqwDLBNrZ','Dg9Rzw5ZqNLeyxK','z2v0vxnHz2u','DhjHy2TvC2fNzq','zw1PDa','zw50CMLLCW','DxbKyxrLvxnHz2vfBNrYEq','mZC2otm3ngLZrNPVtW','zgfPBhLbDMvYywDLCW','BwvZC2fNzq','veHsrvnit0XeuW','nZC2AwHXB2ru','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','yNLbz2vUDa','vxnHz2uGDhjHy2TLza','Aw5MBW','y29UDMvYDfrVq1nw','y2HLy2TuAhjLC2HVBgq','rgf0zq','y29TCgXLDgLVBL90B2TLBNm','D2vLA2X5','q29ZDa','z2v0vxnHz2vuCMvUzhm','ntq4odKXmufOthDgDW','Bwf4','z2v0rgf5s2v5','y2HLy2TcDwrNzxrmAw1PDhm','AgfZ','C2XPy2u','y2HLy2TuAhjLC2HVBgrbBgvYDhm','yNLnB2rLBa','C3bSAxq','zxHWB3j0vxnHz2veyxrH','BM93','ChjVBxb0x3rVA2vUCW','C3rYAw5NAwz5','y29ZDej5rgf5','CMvXDwvZDhm','mtu2mdryBhnNrgC','ltaX','z2v0uMvTywLUAw5NqNvKz2v0','C29YDa','Dw5ZAgLMDa','z2v0','vg9Rzw5Z','Bg9Nz2vY','rgfPBhK','C2v0','DxnHz2u','y29ZDa','tu9oveHmwq','ywDLBNrjza','Dg90ywW','mtiWntKWmvHyD0Xmuq','mtq2nxv0v3bvza','Bg9HzfvZywDLrgf0yq','BwfW','mJaYntLmBuzotMm','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','Aw5WDxq','z2v0tw9KzwXvC2fNzq'];a0_0x48af=function(){return _0x5a67f5;};return a0_0x48af();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0xcee48e,_0x286987){const _0x3d311f=a0_0x76c2;this['config']=_0xcee48e||{},this['logger']=_0x286987,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x3d311f(0x211)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x3d311f(0x1ec)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x3d311f(0x225)],'lastAlertTimes':new Map()},this[_0x3d311f(0x1f1)](),this[_0x3d311f(0x1f9)]();}[a0_0x36bf97(0x21e)](_0x43649b,_0x445bad,_0x501c57){const _0x456192=a0_0x36bf97;try{const _0x18084d=this[_0x456192(0x1fb)](_0x445bad,_0x501c57),_0x18141b=new Date(),_0x43d140=this['getDayKey'](_0x18141b),_0x166e46=this['getWeekKey'](_0x18141b),_0x4e829c=this['getMonthKey'](_0x18141b);this['initializeUsageEntry'](this[_0x456192(0x1ea)]['daily'],_0x43d140),this['initializeUsageEntry'](this['usage'][_0x456192(0x22f)],_0x166e46),this[_0x456192(0x20a)](this[_0x456192(0x1ea)]['monthly'],_0x4e829c);const _0x5c708f={'agentId':_0x43649b,'modelId':_0x445bad,'tokens':_0x501c57['total_tokens'],'cost':_0x18084d,'timestamp':_0x18141b['toISOString']()};return this[_0x456192(0x221)](this['usage'][_0x456192(0x20f)][_0x456192(0x246)](_0x43d140),_0x5c708f),this['updateUsageEntry'](this[_0x456192(0x1ea)]['weekly']['get'](_0x166e46),_0x5c708f),this[_0x456192(0x221)](this['usage'][_0x456192(0x215)]['get'](_0x4e829c),_0x5c708f),this[_0x456192(0x1ea)]['total']['tokens']+=_0x501c57['total_tokens'],this[_0x456192(0x1ea)][_0x456192(0x1ee)]['cost']+=_0x18084d,this['usage'][_0x456192(0x1ee)]['requests']+=0x1,this['checkBudgetLimits'](_0x43d140,_0x166e46,_0x4e829c),this['logger']['info'](_0x456192(0x229),{'agentId':_0x43649b,'modelId':_0x445bad,'tokens':_0x501c57[_0x456192(0x1fa)],'cost':_0x18084d,'totalCost':this['usage'][_0x456192(0x1ee)][_0x456192(0x1eb)]}),{'cost':_0x18084d,'totalCost':this[_0x456192(0x1ea)][_0x456192(0x1ee)][_0x456192(0x1eb)],'totalTokens':this['usage']['total'][_0x456192(0x210)],'dailyUsage':this[_0x456192(0x1ea)]['daily']['get'](_0x43d140),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x57e5b4){this[_0x456192(0x1e7)][_0x456192(0x1f8)]('Failed\x20to\x20track\x20usage',{'error':_0x57e5b4['message'],'agentId':_0x43649b,'modelId':_0x445bad});throw _0x57e5b4;}}['calculateCost'](_0x45c2db,_0x3fad14){const _0xe643c4=a0_0x36bf97,_0x3598b4=COST_PER_TOKEN[_0x45c2db];if(!_0x3598b4)return this[_0xe643c4(0x1e7)][_0xe643c4(0x206)](_0xe643c4(0x1f4),{'modelId':_0x45c2db}),0x0;const _0x4b2f0b=(_0x3fad14[_0xe643c4(0x23d)]||0x0)*_0x3598b4[_0xe643c4(0x1f6)],_0x131e19=(_0x3fad14[_0xe643c4(0x22e)]||0x0)*_0x3598b4['output'];return _0x4b2f0b+_0x131e19;}[a0_0x36bf97(0x21d)](_0x1e0807='daily',_0x1e953b=new Date()){const _0x2e520f=a0_0x36bf97;switch(_0x1e0807){case'daily':return this['usage']['daily']['get'](this[_0x2e520f(0x234)](_0x1e953b))||this[_0x2e520f(0x212)]();case _0x2e520f(0x22f):return this['usage']['weekly']['get'](this['getWeekKey'](_0x1e953b))||this['createEmptyUsage']();case _0x2e520f(0x215):return this[_0x2e520f(0x1ea)]['monthly']['get'](this[_0x2e520f(0x207)](_0x1e953b))||this['createEmptyUsage']();case'total':return{...this['usage'][_0x2e520f(0x1ee)]};default:throw new Error('Invalid\x20period:\x20'+_0x1e0807);}}['getAgentUsage'](_0x2134da,_0x100f1b=a0_0x36bf97(0x20f)){const _0xb52fc6=a0_0x36bf97,_0x37c276=this[_0xb52fc6(0x21d)](_0x100f1b);return _0x37c276['byAgent']?.[_0x2134da]||this['createEmptyUsage']();}[a0_0x36bf97(0x1f7)](_0x1d8363,_0x1955f8=a0_0x36bf97(0x20f)){const _0x3b3ce1=a0_0x36bf97,_0x2f4178=this['getUsage'](_0x1955f8);return _0x2f4178['byModel']?.[_0x1d8363]||this[_0x3b3ce1(0x212)]();}['setBudgets'](_0x1db782){const _0x3d681a=a0_0x36bf97;if(_0x1db782[_0x3d681a(0x20f)]!==undefined)this['budgets']['daily']=_0x1db782[_0x3d681a(0x20f)];if(_0x1db782['weekly']!==undefined)this['budgets'][_0x3d681a(0x22f)]=_0x1db782[_0x3d681a(0x22f)];if(_0x1db782[_0x3d681a(0x215)]!==undefined)this['budgets']['monthly']=_0x1db782[_0x3d681a(0x215)];this['logger'][_0x3d681a(0x22a)]('Budget\x20limits\x20updated',this[_0x3d681a(0x211)]),this['saveUsageData']();}[a0_0x36bf97(0x243)](){const _0x3ec709=a0_0x36bf97,_0x16c76e=new Date(),_0x2a32dc=this['getUsage']('daily',_0x16c76e),_0x1ce401=this[_0x3ec709(0x21d)]('weekly',_0x16c76e),_0x6b8469=this[_0x3ec709(0x21d)]('monthly',_0x16c76e);return{'daily':Math['max'](0x0,this['budgets']['daily']-_0x2a32dc[_0x3ec709(0x1eb)]),'weekly':Math['max'](0x0,this[_0x3ec709(0x211)]['weekly']-_0x1ce401[_0x3ec709(0x1eb)]),'monthly':Math[_0x3ec709(0x233)](0x0,this['budgets'][_0x3ec709(0x215)]-_0x6b8469['cost'])};}['isWithinBudget'](_0x1b344e=a0_0x36bf97(0x20f)){const _0x28d224=this['getUsage'](_0x1b344e),_0x3bcb75=this['budgets'][_0x1b344e];return _0x28d224['cost']<=_0x3bcb75;}[a0_0x36bf97(0x231)](_0x351a3f=0x1e){const _0xe3d4e4=a0_0x36bf97,_0x2e8ade={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x1f57d0=new Date();let _0x46046a=0x0,_0x1a2ac8=0x0,_0x7cec3=0x0;const _0x3f96e9=new Map(),_0x460316=new Map();for(let _0x2f674f=0x0;_0x2f674f<_0x351a3f;_0x2f674f++){const _0x1e13ff=new Date(_0x1f57d0);_0x1e13ff['setDate'](_0x1e13ff['getDate']()-_0x2f674f);const _0x534481=this[_0xe3d4e4(0x234)](_0x1e13ff),_0x59b082=this[_0xe3d4e4(0x1ea)][_0xe3d4e4(0x20f)]['get'](_0x534481);_0x59b082?(_0x46046a+=_0x59b082['cost'],_0x1a2ac8+=_0x59b082[_0xe3d4e4(0x210)],_0x7cec3+=_0x59b082[_0xe3d4e4(0x240)],_0x2e8ade['costByDay'][_0xe3d4e4(0x245)]({'date':_0x534481,'cost':_0x59b082['cost']}),_0x2e8ade[_0xe3d4e4(0x21c)]['unshift']({'date':_0x534481,'tokens':_0x59b082[_0xe3d4e4(0x210)]}),Object['entries'](_0x59b082['byAgent']||{})[_0xe3d4e4(0x214)](([_0x2491fe,_0x128163])=>{const _0x41aa53=_0xe3d4e4;!_0x3f96e9[_0x41aa53(0x236)](_0x2491fe)&&_0x3f96e9['set'](_0x2491fe,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5052ca=_0x3f96e9['get'](_0x2491fe);_0x5052ca[_0x41aa53(0x1eb)]+=_0x128163[_0x41aa53(0x1eb)],_0x5052ca[_0x41aa53(0x210)]+=_0x128163['tokens'],_0x5052ca[_0x41aa53(0x240)]+=_0x128163['requests'];}),Object[_0xe3d4e4(0x220)](_0x59b082[_0xe3d4e4(0x239)]||{})[_0xe3d4e4(0x214)](([_0x29b1e4,_0x27e8ed])=>{const _0x1f15c4=_0xe3d4e4;!_0x460316['has'](_0x29b1e4)&&_0x460316[_0x1f15c4(0x1e9)](_0x29b1e4,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x4b0ce7=_0x460316[_0x1f15c4(0x246)](_0x29b1e4);_0x4b0ce7[_0x1f15c4(0x1eb)]+=_0x27e8ed['cost'],_0x4b0ce7['tokens']+=_0x27e8ed['tokens'],_0x4b0ce7['requests']+=_0x27e8ed[_0x1f15c4(0x240)];})):(_0x2e8ade[_0xe3d4e4(0x23f)]['unshift']({'date':_0x534481,'cost':0x0}),_0x2e8ade['tokensByDay']['unshift']({'date':_0x534481,'tokens':0x0}));}return _0x2e8ade['dailyAverages'][_0xe3d4e4(0x1eb)]=_0x46046a/_0x351a3f,_0x2e8ade['dailyAverages']['tokens']=_0x1a2ac8/_0x351a3f,_0x2e8ade[_0xe3d4e4(0x223)]['requests']=_0x7cec3/_0x351a3f,_0x2e8ade[_0xe3d4e4(0x21b)]=Array['from'](_0x3f96e9['entries']())['map'](([_0x5bf94d,_0x3df0ee])=>({'id':_0x5bf94d,..._0x3df0ee}))[_0xe3d4e4(0x244)]((_0x1913af,_0x152c06)=>_0x152c06[_0xe3d4e4(0x1eb)]-_0x1913af['cost'])[_0xe3d4e4(0x237)](0x0,0xa),_0x2e8ade['topModels']=Array[_0xe3d4e4(0x1ff)](_0x460316[_0xe3d4e4(0x220)]())[_0xe3d4e4(0x1f2)](([_0x388a43,_0x4c6e47])=>({'id':_0x388a43,..._0x4c6e47}))['sort']((_0x202172,_0xcfbfe5)=>_0xcfbfe5['cost']-_0x202172['cost'])[_0xe3d4e4(0x237)](0x0,0xa),_0x2e8ade;}[a0_0x36bf97(0x23b)](_0xe503e3='json',_0x3d0456=null,_0x909980=null){const _0x52e2d3=a0_0x36bf97,_0x250d69={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0xb245f=(_0x361d9d,_0x5affe7)=>{const _0x376bf2={};return _0x361d9d['forEach']((_0x3eee16,_0x4faa66)=>{const _0x1321f3=_0x5affe7(_0x4faa66);(!_0x3d0456||_0x1321f3>=_0x3d0456)&&(!_0x909980||_0x1321f3<=_0x909980)&&(_0x376bf2[_0x4faa66]=_0x3eee16);}),_0x376bf2;};_0x3d0456||_0x909980?(_0x250d69[_0x52e2d3(0x20f)]=_0xb245f(this[_0x52e2d3(0x1ea)]['daily'],_0x456b06=>new Date(_0x456b06)),_0x250d69['weekly']=_0xb245f(this['usage']['weekly'],_0x41b1a8=>new Date(_0x41b1a8)),_0x250d69['monthly']=_0xb245f(this[_0x52e2d3(0x1ea)]['monthly'],_0x447ef2=>new Date(_0x447ef2+_0x52e2d3(0x242)))):(this[_0x52e2d3(0x1ea)][_0x52e2d3(0x20f)][_0x52e2d3(0x214)]((_0x4eef1c,_0x25eefb)=>_0x250d69['daily'][_0x25eefb]=_0x4eef1c),this['usage'][_0x52e2d3(0x22f)]['forEach']((_0xbad7bc,_0x1dabf2)=>_0x250d69['weekly'][_0x1dabf2]=_0xbad7bc),this[_0x52e2d3(0x1ea)]['monthly'][_0x52e2d3(0x214)]((_0xfe7817,_0x5a9440)=>_0x250d69[_0x52e2d3(0x215)][_0x5a9440]=_0xfe7817));if(_0xe503e3===_0x52e2d3(0x219))return this['convertToCSV'](_0x250d69);return JSON[_0x52e2d3(0x23e)](_0x250d69,null,0x2);}[a0_0x36bf97(0x20a)](_0x451e84,_0x7fbcb1){const _0x550371=a0_0x36bf97;!_0x451e84[_0x550371(0x236)](_0x7fbcb1)&&_0x451e84[_0x550371(0x1e9)](_0x7fbcb1,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x36bf97(0x221)](_0x231d01,_0x2218c9){const _0x24f343=a0_0x36bf97;_0x231d01['cost']+=_0x2218c9[_0x24f343(0x1eb)],_0x231d01[_0x24f343(0x210)]+=_0x2218c9[_0x24f343(0x210)],_0x231d01[_0x24f343(0x240)]+=0x1,!_0x231d01['byAgent'][_0x2218c9[_0x24f343(0x1ed)]]&&(_0x231d01['byAgent'][_0x2218c9['agentId']]=this[_0x24f343(0x212)]()),_0x231d01['byAgent'][_0x2218c9[_0x24f343(0x1ed)]][_0x24f343(0x1eb)]+=_0x2218c9[_0x24f343(0x1eb)],_0x231d01[_0x24f343(0x228)][_0x2218c9['agentId']][_0x24f343(0x210)]+=_0x2218c9[_0x24f343(0x210)],_0x231d01[_0x24f343(0x228)][_0x2218c9['agentId']][_0x24f343(0x240)]+=0x1,!_0x231d01[_0x24f343(0x239)][_0x2218c9['modelId']]&&(_0x231d01[_0x24f343(0x239)][_0x2218c9[_0x24f343(0x218)]]=this['createEmptyUsage']()),_0x231d01['byModel'][_0x2218c9['modelId']]['cost']+=_0x2218c9['cost'],_0x231d01['byModel'][_0x2218c9[_0x24f343(0x218)]][_0x24f343(0x210)]+=_0x2218c9[_0x24f343(0x210)],_0x231d01['byModel'][_0x2218c9[_0x24f343(0x218)]][_0x24f343(0x240)]+=0x1;}[a0_0x36bf97(0x235)](_0x14d97b,_0x29a100,_0x274408){const _0x4f7859=a0_0x36bf97,_0xf4d3f4=this['usage'][_0x4f7859(0x20f)]['get'](_0x14d97b),_0x15d72a=this[_0x4f7859(0x1ea)]['weekly'][_0x4f7859(0x246)](_0x29a100),_0x141a1c=this[_0x4f7859(0x1ea)]['monthly'][_0x4f7859(0x246)](_0x274408);_0xf4d3f4['cost']>this[_0x4f7859(0x211)][_0x4f7859(0x20f)]&&this['sendBudgetAlert'](_0x4f7859(0x20f),_0xf4d3f4[_0x4f7859(0x1eb)],this['budgets']['daily']),_0x15d72a['cost']>this['budgets']['weekly']&&this['sendBudgetAlert'](_0x4f7859(0x22f),_0x15d72a[_0x4f7859(0x1eb)],this[_0x4f7859(0x211)]['weekly']),_0x141a1c['cost']>this['budgets'][_0x4f7859(0x215)]&&this[_0x4f7859(0x200)]('monthly',_0x141a1c['cost'],this[_0x4f7859(0x211)][_0x4f7859(0x215)]),this[_0x4f7859(0x238)](_0xf4d3f4,_0x15d72a,_0x141a1c);}['checkThresholdAlerts'](_0x6ad2bd,_0x314b91,_0x1f5d3d){const _0x5e5952=a0_0x36bf97,_0x2de2e9=this['alerts'][_0x5e5952(0x20b)];this[_0x5e5952(0x22c)](_0x5e5952(0x20f),_0x6ad2bd[_0x5e5952(0x1eb)],this[_0x5e5952(0x211)][_0x5e5952(0x20f)],_0x2de2e9),this[_0x5e5952(0x22c)](_0x5e5952(0x22f),_0x314b91['cost'],this['budgets'][_0x5e5952(0x22f)],_0x2de2e9),this[_0x5e5952(0x22c)](_0x5e5952(0x215),_0x1f5d3d['cost'],this['budgets'][_0x5e5952(0x215)],_0x2de2e9);}[a0_0x36bf97(0x22c)](_0x4675ab,_0x5600df,_0x49d006,_0x5b4d54){const _0x113d31=a0_0x36bf97,_0x85bb72=_0x5600df/_0x49d006*0x64;for(const _0x13f127 of _0x5b4d54){if(_0x85bb72>=_0x13f127){const _0xe49121=_0x4675ab+'_'+_0x13f127,_0x2e82c3=this['alerts'][_0x113d31(0x201)][_0x113d31(0x246)](_0xe49121),_0x29ad07=Date[_0x113d31(0x23c)]();(!_0x2e82c3||_0x29ad07-_0x2e82c3>0x36ee80)&&(this[_0x113d31(0x205)](_0x4675ab,_0x85bb72,_0x13f127,_0x5600df,_0x49d006),this[_0x113d31(0x1fc)][_0x113d31(0x201)]['set'](_0xe49121,_0x29ad07));break;}}}[a0_0x36bf97(0x200)](_0x431fad,_0x17ab6a,_0x4970c4){const _0x3f6684=a0_0x36bf97;this['logger']['warn']('Budget\x20limit\x20exceeded',{'period':_0x431fad,'currentUsage':_0x17ab6a,'budgetLimit':_0x4970c4,'excess':_0x17ab6a-_0x4970c4}),typeof process!==_0x3f6684(0x213)&&process[_0x3f6684(0x21f)]&&process['emit']('budgetAlert',{'type':'budget_exceeded','period':_0x431fad,'currentUsage':_0x17ab6a,'budgetLimit':_0x4970c4,'excess':_0x17ab6a-_0x4970c4});}['sendThresholdAlert'](_0x371c4c,_0x3e3606,_0x456523,_0x58e4cb,_0x3bb4c3){const _0x3651e1=a0_0x36bf97;this[_0x3651e1(0x1e7)]['warn'](_0x3651e1(0x227),{'period':_0x371c4c,'percentage':Math['round'](_0x3e3606),'threshold':_0x456523,'usage':_0x58e4cb,'budget':_0x3bb4c3}),typeof process!==_0x3651e1(0x213)&&process[_0x3651e1(0x21f)]&&process['emit']('budgetAlert',{'type':'threshold_reached','period':_0x371c4c,'percentage':Math[_0x3651e1(0x21a)](_0x3e3606),'threshold':_0x456523,'usage':_0x58e4cb,'budget':_0x3bb4c3});}[a0_0x36bf97(0x234)](_0x245742){const _0x43b618=a0_0x36bf97;return _0x245742['toISOString']()[_0x43b618(0x23a)]('T')[0x0];}['getWeekKey'](_0xc2af28){const _0xc334d=a0_0x36bf97,_0x176b30=_0xc2af28[_0xc334d(0x1fe)](),_0x23cda3=this['getWeekNumber'](_0xc2af28);return _0x176b30+'-W'+_0x23cda3['toString']()['padStart'](0x2,'0');}['getMonthKey'](_0x533700){const _0x500a21=a0_0x36bf97,_0x301008=_0x533700[_0x500a21(0x1fe)](),_0x4f4cf0=_0x533700['getMonth']()+0x1;return _0x301008+'-'+_0x4f4cf0[_0x500a21(0x216)]()['padStart'](0x2,'0');}['getWeekNumber'](_0x3e02ae){const _0x18afec=a0_0x36bf97,_0xe67878=new Date(_0x3e02ae['getFullYear'](),0x0,0x1),_0x3b0041=(_0x3e02ae-_0xe67878)/0x5265c00;return Math[_0x18afec(0x20c)]((_0x3b0041+_0xe67878[_0x18afec(0x217)]()+0x1)/0x7);}[a0_0x36bf97(0x22b)](_0x4d42d6){const _0x2924df=a0_0x36bf97,_0xce262e=[];return _0xce262e[_0x2924df(0x202)]([_0x2924df(0x20e),_0x2924df(0x22d),_0x2924df(0x230),_0x2924df(0x247),'Requests','Agent',_0x2924df(0x209)]),Object[_0x2924df(0x220)](_0x4d42d6['daily'])[_0x2924df(0x214)](([_0x5d13da,_0x2e4996])=>{const _0x461190=_0x2924df;_0xce262e[_0x461190(0x202)]([_0x461190(0x1e8),_0x5d13da,_0x2e4996[_0x461190(0x1eb)],_0x2e4996[_0x461190(0x210)],_0x2e4996['requests'],'','']),Object[_0x461190(0x220)](_0x2e4996[_0x461190(0x228)]||{})['forEach'](([_0x1e5288,_0x1587cf])=>{const _0x34aa3a=_0x461190;_0xce262e[_0x34aa3a(0x202)]([_0x34aa3a(0x1e8),_0x5d13da,_0x1587cf[_0x34aa3a(0x1eb)],_0x1587cf['tokens'],_0x1587cf[_0x34aa3a(0x240)],_0x1e5288,'']);});}),_0xce262e[_0x2924df(0x1f2)](_0x3db166=>_0x3db166['join'](','))[_0x2924df(0x20d)]('\x0a');}['loadUsageData'](){const _0x5b2cfd=a0_0x36bf97;try{this['logger'][_0x5b2cfd(0x22a)]('Budget\x20service\x20initialized');}catch(_0xf6e5f7){this['logger'][_0x5b2cfd(0x1f8)](_0x5b2cfd(0x1f5),{'error':_0xf6e5f7[_0x5b2cfd(0x224)]});}}[a0_0x36bf97(0x203)](){const _0x21308d=a0_0x36bf97;try{this['logger']['debug'](_0x21308d(0x208));}catch(_0x49772e){this[_0x21308d(0x1e7)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x49772e[_0x21308d(0x224)]});}}['setupPeriodicSave'](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}function a0_0x76c2(_0x1b2159,_0x2e76da){_0x1b2159=_0x1b2159-0x1e7;const _0x48afd7=a0_0x48af();let _0x76c272=_0x48afd7[_0x1b2159];if(a0_0x76c2['YPIeSm']===undefined){var _0xb6deff=function(_0x458307){const _0x2f40ef='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xcee48e='',_0x286987='';for(let _0x43649b=0x0,_0x445bad,_0x501c57,_0x18084d=0x0;_0x501c57=_0x458307['charAt'](_0x18084d++);~_0x501c57&&(_0x445bad=_0x43649b%0x4?_0x445bad*0x40+_0x501c57:_0x501c57,_0x43649b++%0x4)?_0xcee48e+=String['fromCharCode'](0xff&_0x445bad>>(-0x2*_0x43649b&0x6)):0x0){_0x501c57=_0x2f40ef['indexOf'](_0x501c57);}for(let _0x18141b=0x0,_0x43d140=_0xcee48e['length'];_0x18141b<_0x43d140;_0x18141b++){_0x286987+='%'+('00'+_0xcee48e['charCodeAt'](_0x18141b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x286987);};a0_0x76c2['DFORtV']=_0xb6deff,a0_0x76c2['dsjTEC']={},a0_0x76c2['YPIeSm']=!![];}const _0x57faed=_0x48afd7[0x0],_0x5a297f=_0x1b2159+_0x57faed,_0x8540f1=a0_0x76c2['dsjTEC'][_0x5a297f];return!_0x8540f1?(_0x76c272=a0_0x76c2['DFORtV'](_0x76c272),a0_0x76c2['dsjTEC'][_0x5a297f]=_0x76c272):_0x76c272=_0x8540f1,_0x76c272;}export default BudgetService;
@@ -1 +1 @@
1
- function a0_0x33fa(){const _0x2e5bae=['Bg9N','mtu0ntCZmfH1vKfRrq','CMvMzxjLBMnL','BgvUz3rO','jMfWB3m7','z2v0qwn0AxzLqxr0ywnOBwvUDhm','Aw5PDgLHBgL6zq','zM9YBwf0qNL0zxm','cJXHDhrHy2HLzc1MAwXLCZ4k','ner1zvbQDa','iIbZAxPLpsi','mtCWotbnueLzwfq','nZe1otHvzgXssuu','zM9YBwf0vgv4DezPBgu','zM9YBwf0q29UDgvUDezPBgu','cIaGpc9MAwXLpG','ndu4odaWmNvMs1HisW','mtqYnJDNu2T1y3y','CgrM','mJG3mdy0CLrLr0zr','Cg93','Dg9gAxHLza','BwvZC2fNzq','Bw9Kzq','ndjIAKjOBfa','odvPBvD4AhG','nZa1nZu5C0DxB1LS','s0iIig1Vzgu9iMnVBNrLBNqIpGO','y29UzMLN','zMLSDgvY','zxn0Aw1HDgvuB3rHBfrVA2vUCW','zMLSzu5HBwu','Aw1Hz2u','ica8zMLSzsbUyw1Lpsi','iIb0ExbLpsi','mJaYmJiWnffTChzezq','zM9YBwf0uMvMzxjLBMnLrMLSzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zxnJyxbLwg1S','Bg9Nz2vY','ChvZAa','CMvWBgfJzq'];a0_0x33fa=function(){return _0x2e5bae;};return a0_0x33fa();}function a0_0x3785(_0x349945,_0x2a1230){_0x349945=_0x349945-0xaf;const _0x33fa88=a0_0x33fa();let _0x378579=_0x33fa88[_0x349945];if(a0_0x3785['BHlpGx']===undefined){var _0x125652=function(_0xb0780f){const _0x26c75c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5b827f='',_0x18e703='';for(let _0x34523d=0x0,_0x49e45f,_0x516385,_0x48a1d9=0x0;_0x516385=_0xb0780f['charAt'](_0x48a1d9++);~_0x516385&&(_0x49e45f=_0x34523d%0x4?_0x49e45f*0x40+_0x516385:_0x516385,_0x34523d++%0x4)?_0x5b827f+=String['fromCharCode'](0xff&_0x49e45f>>(-0x2*_0x34523d&0x6)):0x0){_0x516385=_0x26c75c['indexOf'](_0x516385);}for(let _0x538175=0x0,_0x975c08=_0x5b827f['length'];_0x538175<_0x975c08;_0x538175++){_0x18e703+='%'+('00'+_0x5b827f['charCodeAt'](_0x538175)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18e703);};a0_0x3785['UcdoKu']=_0x125652,a0_0x3785['HljYfD']={},a0_0x3785['BHlpGx']=!![];}const _0x17b8b5=_0x33fa88[0x0],_0x4793da=_0x349945+_0x17b8b5,_0x1b818a=a0_0x3785['HljYfD'][_0x4793da];return!_0x1b818a?(_0x378579=a0_0x3785['UcdoKu'](_0x378579),a0_0x3785['HljYfD'][_0x4793da]=_0x378579):_0x378579=_0x1b818a,_0x378579;}const a0_0x1495ca=a0_0x3785;(function(_0x848eed,_0x5d694f){const _0x5bc057=a0_0x3785,_0x330197=_0x848eed();while(!![]){try{const _0x46b25f=parseInt(_0x5bc057(0xce))/0x1+parseInt(_0x5bc057(0xb5))/0x2+-parseInt(_0x5bc057(0xd7))/0x3*(-parseInt(_0x5bc057(0xbd))/0x4)+parseInt(_0x5bc057(0xcd))/0x5*(-parseInt(_0x5bc057(0xc0))/0x6)+-parseInt(_0x5bc057(0xcc))/0x7*(-parseInt(_0x5bc057(0xc7))/0x8)+parseInt(_0x5bc057(0xc4))/0x9+-parseInt(_0x5bc057(0xbf))/0xa*(parseInt(_0x5bc057(0xc5))/0xb);if(_0x46b25f===_0x5d694f)break;else _0x330197['push'](_0x330197['shift']());}catch(_0x3e6c33){_0x330197['push'](_0x330197['shift']());}}}(a0_0x33fa,0x6fe5e));import a0_0x5b827f from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x18e703={},_0x34523d=null){const _0x59a7a1=a0_0x3785;this[_0x59a7a1(0xd0)]=_0x18e703,this[_0x59a7a1(0xb1)]=_0x34523d,this['attachmentService']=new a0_0x5b827f(_0x18e703,_0x34523d);}async['initialize'](){const _0x59098c=a0_0x3785;await this['attachmentService'][_0x59098c(0xba)]();}async['buildDynamicContext'](_0x49e45f){const _0x20e73e=a0_0x3785;try{const _0x516385=await this['attachmentService']['getActiveAttachments'](_0x49e45f);if(_0x516385['length']===0x0)return'';const _0x48a1d9=_0x516385['filter'](_0x5b3f4b=>_0x5b3f4b['mode']==='content'),_0x538175=_0x516385['filter'](_0x48599d=>_0x48599d[_0x20e73e(0xcb)]==='reference');let _0x975c08='';if(_0x48a1d9['length']>0x0){_0x975c08+=_0x20e73e(0xbc);for(const _0x1d1c43 of _0x48a1d9){const _0x209357=await this['attachmentService']['getAttachmentContent'](_0x1d1c43['fileId']);if(_0x209357){const _0x1953af=this[_0x20e73e(0xc2)](_0x1d1c43,_0x209357);_0x975c08+=_0x1953af+'\x0a';}}_0x975c08+='</attached-files>\x0a';}if(_0x538175[_0x20e73e(0xb7)]>0x0){_0x975c08+='\x0a<file-references>\x0a';for(const _0x383a18 of _0x538175){const _0x120337=this[_0x20e73e(0xd8)](_0x383a18);_0x975c08+=_0x120337+'\x0a';}_0x975c08+=_0x20e73e(0xaf),_0x975c08+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x975c08;}catch(_0x821810){return this['logger']?.['error']('Error\x20building\x20dynamic\x20context',{'agentId':_0x49e45f,'error':_0x821810[_0x20e73e(0xca)]}),'';}}['formatContentFile'](_0x1fc6b0,_0x56a1c4){const _0x2c433e=a0_0x3785,{fileName:_0x24c13e,fileType:_0x1d1b6e,size:_0x1729ee,contentType:_0xc8f3d3}=_0x1fc6b0,_0x27cdf8=(_0x1729ee/0x400)[_0x2c433e(0xc9)](0x2);if(_0xc8f3d3==='text')return this[_0x2c433e(0xc1)](_0x1fc6b0,_0x56a1c4);else{if(_0xc8f3d3===_0x2c433e(0xd4))return this['formatImageFile'](_0x1fc6b0,_0x56a1c4);else{if(_0xc8f3d3===_0x2c433e(0xc6))return this['formatPdfFile'](_0x1fc6b0,_0x56a1c4);}}return _0x2c433e(0xd5)+this['escapeXml'](_0x24c13e)+'\x22\x20type=\x22'+_0x1d1b6e+_0x2c433e(0xbe)+_0x27cdf8+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x2c433e(0xb0)](_0x56a1c4)+'\x0a\x20\x20</file>';}[a0_0x1495ca(0xc1)](_0x5e4c61,_0x2c6141){const _0x2ef14c=a0_0x1495ca,{fileName:_0x2a69c8,fileType:_0x9bf2ca,size:_0x1bb13d}=_0x5e4c61,_0x556a2a=(_0x1bb13d/0x400)[_0x2ef14c(0xc9)](0x2);return _0x2ef14c(0xd5)+this['escapeXml'](_0x2a69c8)+'\x22\x20type=\x22'+_0x9bf2ca+'\x22\x20size=\x22'+_0x556a2a+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x2ef14c(0xb0)](_0x2c6141)+_0x2ef14c(0xc3);}['formatImageFile'](_0x428b59,_0x30f685){const _0x3a368d=a0_0x1495ca,{fileName:_0x1a6c54,fileType:_0x3877fc,size:_0x468105}=_0x428b59,_0x48cb02=(_0x468105/0x400)['toFixed'](0x2);return _0x3a368d(0xd5)+this['escapeXml'](_0x1a6c54)+_0x3a368d(0xd6)+_0x3877fc+'\x22\x20size=\x22'+_0x48cb02+_0x3a368d(0xcf)+_0x30f685+_0x3a368d(0xc3);}['formatPdfFile'](_0x58fee2,_0xf6a02c){const _0x52df71=a0_0x1495ca,{fileName:_0x21b581,fileType:_0xbf238e,size:_0x29b64e}=_0x58fee2,_0x231371=(_0x29b64e/0x400)['toFixed'](0x2);return _0x52df71(0xd5)+this['escapeXml'](_0x21b581)+'\x22\x20type=\x22'+_0xbf238e+_0x52df71(0xbe)+_0x231371+_0x52df71(0xcf)+this['escapeXml'](_0xf6a02c)+'\x0a\x20\x20</file>';}['formatReferenceFile'](_0x4b72be){const _0x1ba5f6=a0_0x1495ca,{fileName:_0xb0afc4,originalPath:_0x191783,size:_0x3139c4,fileType:_0x4f85c6,lastModified:_0x43f2d9}=_0x4b72be,_0x3ea333=this[_0x1ba5f6(0xbb)](_0x3139c4),_0x57c7fb=new Date(_0x43f2d9)['toISOString']()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0xb0afc4)+'\x22\x20path=\x22'+this[_0x1ba5f6(0xb0)](_0x191783)+_0x1ba5f6(0xbe)+_0x3ea333+_0x1ba5f6(0xd6)+_0x4f85c6+'\x22\x20modified=\x22'+_0x57c7fb+'\x22\x20/>';}[a0_0x1495ca(0xb0)](_0x5420c6){const _0x38e34a=a0_0x1495ca;if(!_0x5420c6)return'';return _0x5420c6[_0x38e34a(0xb3)](/&/g,'&amp;')['replace'](/</g,'&lt;')[_0x38e34a(0xb3)](/>/g,'&gt;')['replace'](/"/g,'&quot;')[_0x38e34a(0xb3)](/'/g,_0x38e34a(0xb8));}['formatBytes'](_0x4fe5f7){const _0x4401ab=a0_0x1495ca;if(_0x4fe5f7===0x0)return'0\x20Bytes';const _0x4991bc=0x400,_0x5333c1=['Bytes','KB','MB','GB'],_0x2b143b=Math['floor'](Math['log'](_0x4fe5f7)/Math[_0x4401ab(0xb4)](_0x4991bc));return parseFloat((_0x4fe5f7/Math[_0x4401ab(0xc8)](_0x4991bc,_0x2b143b))['toFixed'](0x2))+_0x5333c1[_0x2b143b];}async[a0_0x1495ca(0xd2)](_0xd47e60){const _0x4c211f=a0_0x1495ca;try{const _0x1cfa93=await this['attachmentService'][_0x4c211f(0xb9)](_0xd47e60);let _0x1a1ef4=0x0;for(const _0x5d326d of _0x1cfa93){_0x5d326d['mode']==='content'?_0x1a1ef4+=_0x5d326d['tokenEstimate']||0x0:_0x1a1ef4+=0x14;}return _0x1a1ef4;}catch(_0x2cb575){return this['logger']?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0xd47e60,'error':_0x2cb575[_0x4c211f(0xca)]}),0x0;}}async['getAttachmentSummary'](_0x58ce27){const _0x37eb4=a0_0x1495ca;try{const _0x4b6527=await this['attachmentService']['getActiveAttachments'](_0x58ce27),_0x13019e={'totalActive':_0x4b6527[_0x37eb4(0xb7)],'contentMode':_0x4b6527[_0x37eb4(0xd1)](_0x1a7c9f=>_0x1a7c9f[_0x37eb4(0xcb)]==='content')['length'],'referenceMode':_0x4b6527['filter'](_0x5415d9=>_0x5415d9[_0x37eb4(0xcb)]===_0x37eb4(0xb6))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x42b66b of _0x4b6527){_0x13019e['estimatedTokens']+=_0x42b66b['tokenEstimate']||0x0,_0x13019e['files'][_0x37eb4(0xb2)]({'fileName':_0x42b66b[_0x37eb4(0xd3)],'mode':_0x42b66b[_0x37eb4(0xcb)],'size':this['formatBytes'](_0x42b66b['size']),'tokens':_0x42b66b['tokenEstimate']||0x0});}return _0x13019e;}catch(_0x4f9643){return this[_0x37eb4(0xb1)]?.['error']('Error\x20getting\x20attachment\x20summary',{'agentId':_0x58ce27,'error':_0x4f9643['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
1
+ const a0_0xcd4cc4=a0_0x579f;(function(_0x350b81,_0xb1dc8a){const _0x2bb63f=a0_0x579f,_0x4a30dd=_0x350b81();while(!![]){try{const _0x3789c9=-parseInt(_0x2bb63f(0x1b8))/0x1+parseInt(_0x2bb63f(0x1cc))/0x2*(parseInt(_0x2bb63f(0x1b9))/0x3)+parseInt(_0x2bb63f(0x1b0))/0x4*(-parseInt(_0x2bb63f(0x1cf))/0x5)+parseInt(_0x2bb63f(0x1b3))/0x6+parseInt(_0x2bb63f(0x1c4))/0x7*(-parseInt(_0x2bb63f(0x1c5))/0x8)+parseInt(_0x2bb63f(0x1a5))/0x9*(-parseInt(_0x2bb63f(0x1c3))/0xa)+parseInt(_0x2bb63f(0x1a4))/0xb*(parseInt(_0x2bb63f(0x1b1))/0xc);if(_0x3789c9===_0xb1dc8a)break;else _0x4a30dd['push'](_0x4a30dd['shift']());}catch(_0x5f30e2){_0x4a30dd['push'](_0x4a30dd['shift']());}}}(a0_0x58bd,0x403c5));import a0_0x1b11ce from'./fileAttachmentService.js';function a0_0x579f(_0x19591e,_0x5a2a79){_0x19591e=_0x19591e-0x19f;const _0x58bdcc=a0_0x58bd();let _0x579f38=_0x58bdcc[_0x19591e];if(a0_0x579f['NmuYGC']===undefined){var _0x580350=function(_0x3e95ec){const _0x209e62='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b11ce='',_0x3f245b='';for(let _0xf9d7b2=0x0,_0x3c883c,_0x5fc01b,_0x1f5a4f=0x0;_0x5fc01b=_0x3e95ec['charAt'](_0x1f5a4f++);~_0x5fc01b&&(_0x3c883c=_0xf9d7b2%0x4?_0x3c883c*0x40+_0x5fc01b:_0x5fc01b,_0xf9d7b2++%0x4)?_0x1b11ce+=String['fromCharCode'](0xff&_0x3c883c>>(-0x2*_0xf9d7b2&0x6)):0x0){_0x5fc01b=_0x209e62['indexOf'](_0x5fc01b);}for(let _0x4c0147=0x0,_0x50c812=_0x1b11ce['length'];_0x4c0147<_0x50c812;_0x4c0147++){_0x3f245b+='%'+('00'+_0x1b11ce['charCodeAt'](_0x4c0147)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f245b);};a0_0x579f['FAIrzt']=_0x580350,a0_0x579f['voodej']={},a0_0x579f['NmuYGC']=!![];}const _0x327146=_0x58bdcc[0x0],_0x243d85=_0x19591e+_0x327146,_0x350c54=a0_0x579f['voodej'][_0x243d85];return!_0x350c54?(_0x579f38=a0_0x579f['FAIrzt'](_0x579f38),a0_0x579f['voodej'][_0x243d85]=_0x579f38):_0x579f38=_0x350c54,_0x579f38;}function a0_0x58bd(){const _0x4ad5f0=['Dg9Rzw5fC3rPBwf0zq','odK2oda4CMzQAKH3','iIbZAxPLpsi','jNf1B3q7','y29UDgvUDa','yxr0ywnOBwvUDfnLCNzPy2u','mtm2odC1txfTCxLo','nJLcu1jLD3G','Bg9Nz2vY','zM9YBwf0ugrMrMLSzq','zM9YBwf0qNL0zxm','Dg9gAxHLza','jMfWB3m7','CgrM','CMvMzxjLBMnL','CMvWBgfJzq','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','nJuWDuX4vuT2','mJe3mZq1ohD0sfzQva','ogvADKzXsq','zMXVB3i','zM9YBwf0uMvMzxjLBMnLrMLSzq','zMLSDgvY','Aw1Hz2u','Cg93','zM9YBwf0vgv4DezPBgu','oda0neTvuhrNzW','BwvZC2fNzq','zxjYB3i','nJyWALLSr05u','yNvPBgreEw5HBwLJq29UDgv4Da','zxn0Aw1HDgvuB3rHBfrVA2vUCW','pc9HDhrHy2HLzc1MAwXLCZ4k','z2v0qxr0ywnOBwvUDenVBNrLBNq','cIaGpc9MAwXLpG','z2v0qwn0AxzLqxr0ywnOBwvUDhm','pc9MAwXLlxjLzMvYzw5Jzxm+cG','iIb0ExbLpsi','Bg9N','zxnJyxbLwg1S','s0iIig1Vzgu9iMnVBNrLBNqIpGO','Bw9Kzq','mJjUAKnSAei','mJmXnJzcDvLPz0i','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','iIaVpG','Aw5PDgLHBgL6zq','y29UzMLN','BgvUz3rO','C2L6zq','ChvZAa','ica8zMLSzsbUyw1Lpsi','jMX0oW','zMLSzuLK','mti0mZzhD3nOvvG','nJi3nZiXmNPyz0T3DG'];a0_0x58bd=function(){return _0x4ad5f0;};return a0_0x58bd();}class ContextInjectionService{constructor(_0x3f245b={},_0xf9d7b2=null){const _0x1758ee=a0_0x579f;this[_0x1758ee(0x1a9)]=_0x3f245b,this['logger']=_0xf9d7b2,this[_0x1758ee(0x1b7)]=new a0_0x1b11ce(_0x3f245b,_0xf9d7b2);}async['initialize'](){const _0x2a4b2d=a0_0x579f;await this[_0x2a4b2d(0x1b7)][_0x2a4b2d(0x1a8)]();}async[a0_0xcd4cc4(0x1d0)](_0x3c883c){const _0xdebe03=a0_0xcd4cc4;try{const _0x5fc01b=await this[_0xdebe03(0x1b7)]['getActiveAttachments'](_0x3c883c);if(_0x5fc01b[_0xdebe03(0x1aa)]===0x0)return'';const _0x1f5a4f=_0x5fc01b[_0xdebe03(0x1c8)](_0x547784=>_0x547784['mode']===_0xdebe03(0x1b6)),_0x4c0147=_0x5fc01b[_0xdebe03(0x1c8)](_0xd687fa=>_0xd687fa['mode']===_0xdebe03(0x1c0));let _0x50c812='';if(_0x1f5a4f[_0xdebe03(0x1aa)]>0x0){_0x50c812+='\x0a<attached-files>\x0a';for(const _0x4bddc9 of _0x1f5a4f){const _0x2f43ab=await this['attachmentService'][_0xdebe03(0x1d3)](_0x4bddc9[_0xdebe03(0x1af)]);if(_0x2f43ab){const _0x13b61e=this['formatContentFile'](_0x4bddc9,_0x2f43ab);_0x50c812+=_0x13b61e+'\x0a';}}_0x50c812+=_0xdebe03(0x1d2);}if(_0x4c0147['length']>0x0){_0x50c812+='\x0a<file-references>\x0a';for(const _0x900b02 of _0x4c0147){const _0x431d8d=this[_0xdebe03(0x1c7)](_0x900b02);_0x50c812+=_0x431d8d+'\x0a';}_0x50c812+=_0xdebe03(0x1d6),_0x50c812+=_0xdebe03(0x1a6);}return _0x50c812;}catch(_0x59ddc2){return this['logger']?.[_0xdebe03(0x1ce)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x3c883c,'error':_0x59ddc2[_0xdebe03(0x1cd)]}),'';}}['formatContentFile'](_0x492c14,_0x1a7d47){const _0x1defef=a0_0xcd4cc4,{fileName:_0x1fddfe,fileType:_0x39807b,size:_0x5082d4,contentType:_0x2df11a}=_0x492c14,_0xd5d01=(_0x5082d4/0x400)[_0x1defef(0x1bd)](0x2);if(_0x2df11a==='text')return this[_0x1defef(0x1cb)](_0x492c14,_0x1a7d47);else{if(_0x2df11a===_0x1defef(0x1c9))return this['formatImageFile'](_0x492c14,_0x1a7d47);else{if(_0x2df11a===_0x1defef(0x1bf))return this[_0x1defef(0x1bb)](_0x492c14,_0x1a7d47);}}return'\x20\x20<file\x20name=\x22'+this[_0x1defef(0x1a1)](_0x1fddfe)+_0x1defef(0x19f)+_0x39807b+'\x22\x20size=\x22'+_0xd5d01+_0x1defef(0x1a2)+this[_0x1defef(0x1a1)](_0x1a7d47)+_0x1defef(0x1d4);}['formatTextFile'](_0x523d19,_0x3e780a){const _0x15a91a=a0_0xcd4cc4,{fileName:_0x83259d,fileType:_0x15ea01,size:_0x377332}=_0x523d19,_0x3dcccf=(_0x377332/0x400)['toFixed'](0x2);return _0x15a91a(0x1ad)+this['escapeXml'](_0x83259d)+_0x15a91a(0x19f)+_0x15ea01+_0x15a91a(0x1b4)+_0x3dcccf+_0x15a91a(0x1a2)+this[_0x15a91a(0x1a1)](_0x3e780a)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x348041,_0x29e411){const _0x2fa60d=a0_0xcd4cc4,{fileName:_0x1ea36d,fileType:_0x42babc,size:_0x3dd222}=_0x348041,_0x597153=(_0x3dd222/0x400)[_0x2fa60d(0x1bd)](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x2fa60d(0x1a1)](_0x1ea36d)+'\x22\x20type=\x22'+_0x42babc+_0x2fa60d(0x1b4)+_0x597153+_0x2fa60d(0x1a2)+_0x29e411+'\x0a\x20\x20</file>';}['formatPdfFile'](_0x2d97d4,_0x4dde29){const _0x4f726e=a0_0xcd4cc4,{fileName:_0x4fcfc8,fileType:_0x20b71d,size:_0x22bed5}=_0x2d97d4,_0x320ae9=(_0x22bed5/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x4f726e(0x1a1)](_0x4fcfc8)+_0x4f726e(0x19f)+_0x20b71d+'\x22\x20size=\x22'+_0x320ae9+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x4f726e(0x1a1)](_0x4dde29)+'\x0a\x20\x20</file>';}['formatReferenceFile'](_0x498218){const _0x2b8096=a0_0xcd4cc4,{fileName:_0x2258b7,originalPath:_0x57cee7,size:_0x1d6b05,fileType:_0x525f92,lastModified:_0x14aba1}=_0x498218,_0x317e80=this[_0x2b8096(0x1bc)](_0x1d6b05),_0xc630e0=new Date(_0x14aba1)['toISOString']()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x2258b7)+'\x22\x20path=\x22'+this['escapeXml'](_0x57cee7)+_0x2b8096(0x1b4)+_0x317e80+_0x2b8096(0x19f)+_0x525f92+'\x22\x20modified=\x22'+_0xc630e0+_0x2b8096(0x1a7);}['escapeXml'](_0x1ae2a6){const _0x4f1374=a0_0xcd4cc4;if(!_0x1ae2a6)return'';return _0x1ae2a6['replace'](/&/g,'&amp;')['replace'](/</g,_0x4f1374(0x1ae))[_0x4f1374(0x1c1)](/>/g,'&gt;')[_0x4f1374(0x1c1)](/"/g,_0x4f1374(0x1b5))['replace'](/'/g,_0x4f1374(0x1be));}['formatBytes'](_0x4320ac){const _0xe652c9=a0_0xcd4cc4;if(_0x4320ac===0x0)return'0\x20Bytes';const _0x4b1b84=0x400,_0x84c761=['Bytes','KB','MB','GB'],_0x36a18b=Math[_0xe652c9(0x1c6)](Math[_0xe652c9(0x1a0)](_0x4320ac)/Math[_0xe652c9(0x1a0)](_0x4b1b84));return parseFloat((_0x4320ac/Math[_0xe652c9(0x1ca)](_0x4b1b84,_0x36a18b))['toFixed'](0x2))+_0x84c761[_0x36a18b];}async[a0_0xcd4cc4(0x1d1)](_0x23fc68){const _0x1a37d0=a0_0xcd4cc4;try{const _0x5723e1=await this['attachmentService'][_0x1a37d0(0x1d5)](_0x23fc68);let _0x55dbb8=0x0;for(const _0x27e97e of _0x5723e1){_0x27e97e['mode']===_0x1a37d0(0x1b6)?_0x55dbb8+=_0x27e97e['tokenEstimate']||0x0:_0x55dbb8+=0x14;}return _0x55dbb8;}catch(_0x103c39){return this[_0x1a37d0(0x1ba)]?.[_0x1a37d0(0x1ce)]('Error\x20estimating\x20total\x20tokens',{'agentId':_0x23fc68,'error':_0x103c39[_0x1a37d0(0x1cd)]}),0x0;}}async['getAttachmentSummary'](_0x463634){const _0x51736d=a0_0xcd4cc4;try{const _0x1dd2ab=await this[_0x51736d(0x1b7)][_0x51736d(0x1d5)](_0x463634),_0x1ce361={'totalActive':_0x1dd2ab[_0x51736d(0x1aa)],'contentMode':_0x1dd2ab[_0x51736d(0x1c8)](_0x2a517f=>_0x2a517f['mode']==='content')['length'],'referenceMode':_0x1dd2ab[_0x51736d(0x1c8)](_0x30d17e=>_0x30d17e[_0x51736d(0x1a3)]===_0x51736d(0x1c0))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x117756 of _0x1dd2ab){_0x1ce361['estimatedTokens']+=_0x117756['tokenEstimate']||0x0,_0x1ce361['files'][_0x51736d(0x1ac)]({'fileName':_0x117756['fileName'],'mode':_0x117756['mode'],'size':this[_0x51736d(0x1bc)](_0x117756[_0x51736d(0x1ab)]),'tokens':_0x117756[_0x51736d(0x1b2)]||0x0});}return _0x1ce361;}catch(_0x3a2f29){return this['logger']?.['error'](_0x51736d(0x1c2),{'agentId':_0x463634,'error':_0x3a2f29[_0x51736d(0x1cd)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;