@loxia-labs/loxia-autopilot-one 1.0.15 → 1.0.17

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 (122) 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 +2 -2
  120. package/web-ui/build/static/index-CRkOpV4k.css +1 -0
  121. package/web-ui/build/static/{index-CR8edPA3.js → index-DzOU48ux.js} +98 -79
  122. package/web-ui/build/static/index-uN7nOVvZ.css +0 -1
@@ -1 +1 @@
1
- (function(_0x1b902c,_0x1d549c){const _0x3a4a53=a0_0x322a,_0x1acb3e=_0x1b902c();while(!![]){try{const _0x29a461=-parseInt(_0x3a4a53(0x1fc))/0x1+parseInt(_0x3a4a53(0x205))/0x2+parseInt(_0x3a4a53(0x20e))/0x3+-parseInt(_0x3a4a53(0x216))/0x4+-parseInt(_0x3a4a53(0x204))/0x5+-parseInt(_0x3a4a53(0x20f))/0x6+parseInt(_0x3a4a53(0x22a))/0x7;if(_0x29a461===_0x1d549c)break;else _0x1acb3e['push'](_0x1acb3e['shift']());}catch(_0x5b2561){_0x1acb3e['push'](_0x1acb3e['shift']());}}}(a0_0x5552,0x5af7f));import{AGENT_MODES,AGENT_MODE_STATES,AGENT_STATUS,AGENT_ACTIVITY_STATUS,TASK_STATUS,SCHEDULER_CONFIG}from'../utilities/constants.js';function a0_0x322a(_0x30610f,_0x15490d){_0x30610f=_0x30610f-0x1ef;const _0x5552b1=a0_0x5552();let _0x322aa3=_0x5552b1[_0x30610f];if(a0_0x322a['ViXRXG']===undefined){var _0x41acd2=function(_0x4969c0){const _0x3145a8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x48d77a='',_0x550991='';for(let _0x38e4ba=0x0,_0x3cff5f,_0xf84a7e,_0x4d5d04=0x0;_0xf84a7e=_0x4969c0['charAt'](_0x4d5d04++);~_0xf84a7e&&(_0x3cff5f=_0x38e4ba%0x4?_0x3cff5f*0x40+_0xf84a7e:_0xf84a7e,_0x38e4ba++%0x4)?_0x48d77a+=String['fromCharCode'](0xff&_0x3cff5f>>(-0x2*_0x38e4ba&0x6)):0x0){_0xf84a7e=_0x3145a8['indexOf'](_0xf84a7e);}for(let _0x1402eb=0x0,_0x44e665=_0x48d77a['length'];_0x1402eb<_0x44e665;_0x1402eb++){_0x550991+='%'+('00'+_0x48d77a['charCodeAt'](_0x1402eb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x550991);};a0_0x322a['qvxHaM']=_0x41acd2,a0_0x322a['xlaGkt']={},a0_0x322a['ViXRXG']=!![];}const _0x28e77f=_0x5552b1[0x0],_0x597743=_0x30610f+_0x28e77f,_0x5996b8=a0_0x322a['xlaGkt'][_0x597743];return!_0x5996b8?(_0x322aa3=a0_0x322a['qvxHaM'](_0x322aa3),a0_0x322a['xlaGkt'][_0x597743]=_0x322aa3):_0x322aa3=_0x5996b8,_0x322aa3;}function a0_0x5552(){const _0xa2a217=['BgfZDfjLy2vPDMvK','DxnLCK1LC3nHz2vZ','CMvJzwL2zwq','qwDLBNqGAxmGy3vYCMvUDgX5igv4zwn1DgLUzYaOBw9Kzvn0yxrLpuvyrunvveLorYK','Bw9Kzq','AgfZtwvZC2fNzxm','vu5ltK9xtL9nt0rf','nZC2ntC0swTLwKPZ','mJC3ntCYnMPcv0nmvq','zgvSyxLfBMruAw1L','igLUDgvYlwfNzw50ig1LC3nHz2uOCYKGDg8GChjVy2vZCW','DgfZA3m','seftx0Lovevsx0fhru5ux01fu1nbr0vt','Bw9Kzvn0yxrL','su5Fufjpr1jfu1m','mta3mJm0ohvNuvbxDa','q0Hbva','ihf1zxvLzcbTzxnZywDLCYaOvdO','quDftLq','yxv0B25VBw91C1DVCMTdB21WBgv0zq','qwDLBNqGzgvSyxLLzcb1BNrPBca','quDftLrFuefvu0ve','seftx1vtrvjFtuvtu0fhrvm','Aw50zxjbz2vUDe1LC3nHz2vZ','BgvUz3rO','qvvut05ptu9vu19nt0rfx0fdveLwrq','qwDLBNqGAgfZia','DgfZA0XPC3q','rvHfq1vusu5h','lcbvoG','zMLSDgvY','C2L6zq','u1rpuf9srvfvrvnuruq','Aw5JB21PBMDnzxnZywDLCW','BwfW','mte5mdmZnZr3qKz1vgy','qwDLBNqGAgfZihvUChjVy2vZC2vKigLUy29TAw5Nig1LC3nHz2vZ','uevoreLorW','Dg9VBfjLC3vSDhm','quDftLrFtK9ux0zpvu5e','CMvHC29U','uefvu0ve','BgfZDfr5Cgu','y291BNrZ','lcbLEhbLy3rLzca','C3rHDhvZ','Cgf1C2vKvw50AwW','qwDLBNqGC3rHDhvZigLZia','AgfZsw50zxjbz2vUDe1LC3nHz2vZ','Dg90ywW','AxnbCNjHEq','mJyYmdy3t21ztg1i','q0HbvcbTB2rLic0GBM8GBwvZC2fNzxmGDg8GChjVy2vZCW','qwDLBNqGCgf1C2vKigLUzgvMAw5PDgvSEq','ywn0AxzL','Aw50zxjbz2vUDfrYywnRAw5N','q0HbvcbTB2rLic0GAgfZia','quDftLrFsu5bq1rjvKvFu1rbvfvt','qwDLBNqGCgf1C2vKihvUDgLSia','mZe1nZeXmg9hBejqDG','nZq5mJHeBLnQDw8','C29Tzq'];a0_0x5552=function(){return _0xa2a217;};return a0_0x5552();}function hasPendingTasks(_0x48d77a){const _0x521a5c=a0_0x322a;if(!_0x48d77a['taskList']||!_0x48d77a[_0x521a5c(0x222)][_0x521a5c(0x212)]||!Array['isArray'](_0x48d77a[_0x521a5c(0x222)][_0x521a5c(0x212)]))return![];return _0x48d77a['taskList'][_0x521a5c(0x212)][_0x521a5c(0x206)](_0x550991=>_0x550991['status']===TASK_STATUS[_0x521a5c(0x22c)]||_0x550991[_0x521a5c(0x1f6)]===TASK_STATUS[_0x521a5c(0x215)]);}function getMessageQueueStatus(_0x38e4ba){const _0x3d6327=a0_0x322a,_0x3cff5f=_0x38e4ba['messageQueues']||{},_0xf84a7e={'toolResults':Array[_0x3d6327(0x1fb)](_0x3cff5f['toolResults'])?_0x3cff5f['toolResults']['length']:0x0,'interAgentMessages':Array[_0x3d6327(0x1fb)](_0x3cff5f['interAgentMessages'])?_0x3cff5f[_0x3d6327(0x21e)][_0x3d6327(0x21f)]:0x0,'userMessages':Array[_0x3d6327(0x1fb)](_0x3cff5f['userMessages'])?_0x3cff5f['userMessages']['length']:0x0};return _0xf84a7e['total']=_0xf84a7e[_0x3d6327(0x1ef)]+_0xf84a7e[_0x3d6327(0x21e)]+_0xf84a7e['userMessages'],{'hasMessages':_0xf84a7e[_0x3d6327(0x1fa)]>0x0,'hasUserMessages':_0xf84a7e[_0x3d6327(0x208)]>0x0,'hasInterAgentMessages':_0xf84a7e[_0x3d6327(0x21e)]>0x0,'hasToolResults':_0xf84a7e[_0x3d6327(0x1ef)]>0x0,'counts':_0xf84a7e};}function hasUnprocessedIncomingMessages(_0x4d5d04){const _0x193051=a0_0x322a;if(_0x4d5d04['incomingMessages']&&Array['isArray'](_0x4d5d04['incomingMessages'])&&_0x4d5d04[_0x193051(0x228)]['length']>0x0)return!![];if(_0x4d5d04[_0x193051(0x200)]&&_0x4d5d04[_0x193051(0x200)]instanceof Map&&_0x4d5d04[_0x193051(0x200)][_0x193051(0x226)]>0x0){const _0x1402eb=Date['now']();for(const _0x44e665 of _0x4d5d04[_0x193051(0x200)]['values']()){if(_0x44e665['lastReceived']&&_0x1402eb-_0x44e665[_0x193051(0x207)]<SCHEDULER_CONFIG['RECENT_MESSAGE_THRESHOLD_MS']&&_0x44e665[_0x193051(0x1f3)]===_0x193051(0x209))return!![];}}return![];}function isAgentDelayed(_0x7f5afa){const _0x5be228=a0_0x322a;if(!_0x7f5afa['delayEndTime'])return![];return new Date()<new Date(_0x7f5afa[_0x5be228(0x210)]);}function isAgentPaused(_0x25fd9d){const _0x11642a=a0_0x322a;if(_0x25fd9d[_0x11642a(0x1f6)]===AGENT_STATUS[_0x11642a(0x1f2)]){if(_0x25fd9d['pausedUntil'])return new Date()<new Date(_0x25fd9d['pausedUntil']);return!![];}if(_0x25fd9d[_0x11642a(0x1f7)]&&new Date()<new Date(_0x25fd9d['pausedUntil']))return!![];return![];}function hasAutonomousWorkComplete(_0x1c6822){const _0x482fd9=a0_0x322a;return _0x1c6822[_0x482fd9(0x21a)]===!![];}export function shouldAgentBeActive(_0x2bd0bc){const _0x10f637=a0_0x322a;if(!_0x2bd0bc)return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x10f637(0x1f0)],'details':'Agent\x20object\x20is\x20null\x20or\x20undefined'};if(_0x2bd0bc[_0x10f637(0x1f6)]!==AGENT_STATUS['ACTIVE'])return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x10f637(0x202)],'details':_0x10f637(0x1f8)+_0x2bd0bc[_0x10f637(0x1f6)]+_0x10f637(0x1f5)+AGENT_STATUS['ACTIVE']};if(isAgentDelayed(_0x2bd0bc))return{'active':![],'reason':AGENT_ACTIVITY_STATUS['AGENT_DELAYED'],'details':_0x10f637(0x21b)+_0x2bd0bc['delayEndTime']};if(isAgentPaused(_0x2bd0bc))return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x10f637(0x21c)],'details':_0x2bd0bc['pausedUntil']?_0x10f637(0x203)+_0x2bd0bc[_0x10f637(0x1f7)]:_0x10f637(0x1fe)};if(_0x2bd0bc['stopRequested'])return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x10f637(0x227)],'details':'Agent\x20stop\x20has\x20been\x20requested'};if(_0x2bd0bc[_0x10f637(0x214)]===AGENT_MODE_STATES[_0x10f637(0x223)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x10f637(0x220)],'details':_0x10f637(0x20a)};const _0x32bb88=getMessageQueueStatus(_0x2bd0bc);if(_0x2bd0bc[_0x10f637(0x20b)]===AGENT_MODES[_0x10f637(0x219)]){const _0x544724=hasPendingTasks(_0x2bd0bc),unprocessedMessages=hasUnprocessedIncomingMessages(_0x2bd0bc);if(_0x544724)return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['HAS_PENDING_TASKS'],'details':'Agent\x20has\x20pending/in-progress\x20tasks'};if(_0x32bb88[_0x10f637(0x20c)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['HAS_QUEUED_MESSAGES'],'details':'Agent\x20has\x20'+_0x32bb88['counts']['total']+_0x10f637(0x218)+_0x32bb88['counts'][_0x10f637(0x1ef)]+',\x20I:'+_0x32bb88[_0x10f637(0x1f4)]['interAgentMessages']+_0x10f637(0x224)+_0x32bb88['counts']['userMessages']+')'};if(unprocessedMessages)return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['AUTONOMOUS_MODE_ACTIVE'],'details':_0x10f637(0x22b)};return{'active':![],'reason':AGENT_ACTIVITY_STATUS['NO_PENDING_WORK'],'details':'AGENT\x20mode\x20agent\x20has\x20no\x20pending\x20tasks\x20or\x20messages'};}if(_0x2bd0bc['mode']===AGENT_MODES[_0x10f637(0x217)]){if(_0x32bb88['hasUserMessages'])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x10f637(0x21d)],'details':_0x10f637(0x221)+_0x32bb88['counts'][_0x10f637(0x208)]+'\x20user\x20message(s)\x20to\x20process'};if(_0x32bb88[_0x10f637(0x1f9)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x10f637(0x213)],'details':_0x10f637(0x221)+_0x32bb88[_0x10f637(0x1f4)][_0x10f637(0x21e)]+_0x10f637(0x211)};return{'active':![],'reason':AGENT_ACTIVITY_STATUS['CHAT_MODE_NO_MESSAGES'],'details':_0x32bb88['hasToolResults']?_0x10f637(0x201)+_0x32bb88[_0x10f637(0x1f4)][_0x10f637(0x1ef)]+'\x20tool\x20results\x20but\x20no\x20new\x20messages':_0x10f637(0x1fd)};}return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x10f637(0x20d)],'details':'Unknown\x20agent\x20mode:\x20'+_0x2bd0bc['mode']};}export function getActiveAgents(_0x3aa1da){const _0x39b759=a0_0x322a,_0x115b43=_0x3aa1da instanceof Map?Array['from'](_0x3aa1da['values']()):_0x3aa1da;return _0x115b43[_0x39b759(0x229)](_0x32af11=>{const _0x5d37f3=shouldAgentBeActive(_0x32af11);return{'agent':_0x32af11,'agentId':_0x32af11['id'],'sessionId':_0x32af11['sessionId'],..._0x5d37f3};})[_0x39b759(0x225)](_0x3e31ed=>_0x3e31ed[_0x39b759(0x1ff)]);}export function getAllAgentActivityStatus(_0xd2497b){const _0x245ca0=_0xd2497b instanceof Map?Array['from'](_0xd2497b['values']()):_0xd2497b;return _0x245ca0['map'](_0x49eb30=>{const _0x512e61=a0_0x322a,_0x5912a4=shouldAgentBeActive(_0x49eb30),_0xf0f2ac=getMessageQueueStatus(_0x49eb30);return{'agentId':_0x49eb30['id'],'agentName':_0x49eb30['name'],'mode':_0x49eb30[_0x512e61(0x20b)],'status':_0x49eb30[_0x512e61(0x1f6)],'active':_0x5912a4['active'],'reason':_0x5912a4[_0x512e61(0x1f1)],'details':_0x5912a4['details'],'queueCounts':_0xf0f2ac['counts'],'hasPendingTasks':hasPendingTasks(_0x49eb30),'isDelayed':isAgentDelayed(_0x49eb30),'isPaused':isAgentPaused(_0x49eb30),'stopRequested':_0x49eb30['stopRequested']||![],'delayEndTime':_0x49eb30[_0x512e61(0x210)]||null,'pausedUntil':_0x49eb30['pausedUntil']||null};});}export function shouldSkipIteration(_0x40a5cf){const _0x144436=a0_0x322a;if(!_0x40a5cf)return{'skip':!![],'reason':'Agent\x20not\x20found'};if(isAgentDelayed(_0x40a5cf))return{'skip':!![],'reason':'Agent\x20delayed\x20until\x20'+_0x40a5cf[_0x144436(0x210)]};if(_0x40a5cf[_0x144436(0x1f7)]&&new Date()<new Date(_0x40a5cf[_0x144436(0x1f7)]))return{'skip':!![],'reason':'Agent\x20paused\x20until\x20'+_0x40a5cf['pausedUntil']};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(_0x3da81d,_0x5142cf){const _0x5623b1=a0_0x25f9,_0x5639b4=_0x3da81d();while(!![]){try{const _0x418346=-parseInt(_0x5623b1(0x1dd))/0x1+-parseInt(_0x5623b1(0x1d5))/0x2*(parseInt(_0x5623b1(0x1b5))/0x3)+-parseInt(_0x5623b1(0x1d9))/0x4+parseInt(_0x5623b1(0x1bf))/0x5+parseInt(_0x5623b1(0x1c1))/0x6+-parseInt(_0x5623b1(0x1c6))/0x7*(parseInt(_0x5623b1(0x1d1))/0x8)+parseInt(_0x5623b1(0x1e2))/0x9;if(_0x418346===_0x5142cf)break;else _0x5639b4['push'](_0x5639b4['shift']());}catch(_0x3c5111){_0x5639b4['push'](_0x5639b4['shift']());}}}(a0_0x2d9f,0xe59cf));import{AGENT_MODES,AGENT_MODE_STATES,AGENT_STATUS,AGENT_ACTIVITY_STATUS,TASK_STATUS,SCHEDULER_CONFIG}from'../utilities/constants.js';function hasPendingTasks(_0x2e5db6){const _0x2ec367=a0_0x25f9;if(!_0x2e5db6['taskList']||!_0x2e5db6['taskList'][_0x2ec367(0x1b8)]||!Array['isArray'](_0x2e5db6['taskList']['tasks']))return![];return _0x2e5db6[_0x2ec367(0x1c7)]['tasks']['some'](_0x43632f=>_0x43632f[_0x2ec367(0x1c0)]===TASK_STATUS['PENDING']||_0x43632f[_0x2ec367(0x1c0)]===TASK_STATUS['IN_PROGRESS']);}function getMessageQueueStatus(_0xa7829a){const _0x3f2dbc=a0_0x25f9,_0x27bd2e=_0xa7829a['messageQueues']||{},_0x2a25ab={'toolResults':Array[_0x3f2dbc(0x1ba)](_0x27bd2e['toolResults'])?_0x27bd2e[_0x3f2dbc(0x1e0)]['length']:0x0,'interAgentMessages':Array['isArray'](_0x27bd2e[_0x3f2dbc(0x1b4)])?_0x27bd2e[_0x3f2dbc(0x1b4)]['length']:0x0,'userMessages':Array['isArray'](_0x27bd2e[_0x3f2dbc(0x1d4)])?_0x27bd2e['userMessages']['length']:0x0};return _0x2a25ab['total']=_0x2a25ab['toolResults']+_0x2a25ab['interAgentMessages']+_0x2a25ab[_0x3f2dbc(0x1d4)],{'hasMessages':_0x2a25ab[_0x3f2dbc(0x1c9)]>0x0,'hasUserMessages':_0x2a25ab[_0x3f2dbc(0x1d4)]>0x0,'hasInterAgentMessages':_0x2a25ab[_0x3f2dbc(0x1b4)]>0x0,'hasToolResults':_0x2a25ab[_0x3f2dbc(0x1e0)]>0x0,'counts':_0x2a25ab};}function hasUnprocessedIncomingMessages(_0x252478){const _0x2ffa95=a0_0x25f9;if(_0x252478[_0x2ffa95(0x1be)]&&Array[_0x2ffa95(0x1ba)](_0x252478[_0x2ffa95(0x1be)])&&_0x252478['incomingMessages'][_0x2ffa95(0x1b6)]>0x0)return!![];if(_0x252478['interAgentTracking']&&_0x252478[_0x2ffa95(0x1b3)]instanceof Map&&_0x252478['interAgentTracking'][_0x2ffa95(0x1d0)]>0x0){const _0xb8219=Date[_0x2ffa95(0x1c8)]();for(const _0x14583e of _0x252478['interAgentTracking'][_0x2ffa95(0x1e1)]()){if(_0x14583e['lastReceived']&&_0xb8219-_0x14583e['lastReceived']<SCHEDULER_CONFIG['RECENT_MESSAGE_THRESHOLD_MS']&&_0x14583e['lastType']==='received')return!![];}}return![];}function isAgentDelayed(_0x2f9f8c){const _0x2166c0=a0_0x25f9;if(!_0x2f9f8c['delayEndTime'])return![];return new Date()<new Date(_0x2f9f8c[_0x2166c0(0x1d8)]);}function isAgentPaused(_0x1af248){const _0x5b50ec=a0_0x25f9;if(_0x1af248['status']===AGENT_STATUS[_0x5b50ec(0x1dc)]){if(_0x1af248['pausedUntil'])return new Date()<new Date(_0x1af248['pausedUntil']);return!![];}if(_0x1af248['pausedUntil']&&new Date()<new Date(_0x1af248['pausedUntil']))return!![];return![];}function hasAutonomousWorkComplete(_0xe194d7){return _0xe194d7['autonomousWorkComplete']===!![];}export function shouldAgentBeActive(_0x4ce92e){const _0x38842b=a0_0x25f9;if(!_0x4ce92e)return{'active':![],'reason':AGENT_ACTIVITY_STATUS['AGENT_NOT_FOUND'],'details':'Agent\x20object\x20is\x20null\x20or\x20undefined'};if(_0x4ce92e['status']!==AGENT_STATUS[_0x38842b(0x1c5)])return{'active':![],'reason':AGENT_ACTIVITY_STATUS['AGENT_INACTIVE_STATUS'],'details':'Agent\x20status\x20is\x20'+_0x4ce92e[_0x38842b(0x1c0)]+',\x20expected\x20'+AGENT_STATUS[_0x38842b(0x1c5)]};if(isAgentDelayed(_0x4ce92e))return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x38842b(0x1cd)],'details':_0x38842b(0x1b9)+_0x4ce92e['delayEndTime']};if(isAgentPaused(_0x4ce92e))return{'active':![],'reason':AGENT_ACTIVITY_STATUS['AGENT_PAUSED'],'details':_0x4ce92e[_0x38842b(0x1b0)]?'Agent\x20paused\x20until\x20'+_0x4ce92e[_0x38842b(0x1b0)]:'Agent\x20paused\x20indefinitely'};if(_0x4ce92e['stopRequested'])return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x38842b(0x1bb)],'details':_0x38842b(0x1c3)};if(_0x4ce92e['modeState']===AGENT_MODE_STATES[_0x38842b(0x1d6)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['AUTONOMOUS_MODE_ACTIVE'],'details':'Agent\x20is\x20currently\x20executing\x20(modeState=EXECUTING)'};const _0x2ed3cf=getMessageQueueStatus(_0x4ce92e);if(_0x4ce92e['mode']===AGENT_MODES['AGENT']){const _0x5bd24d=hasPendingTasks(_0x4ce92e),unprocessedMessages=hasUnprocessedIncomingMessages(_0x4ce92e);if(_0x5bd24d)return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['HAS_PENDING_TASKS'],'details':'Agent\x20has\x20pending/in-progress\x20tasks'};if(_0x2ed3cf['hasMessages'])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['HAS_QUEUED_MESSAGES'],'details':_0x38842b(0x1d7)+_0x2ed3cf[_0x38842b(0x1df)][_0x38842b(0x1c9)]+_0x38842b(0x1e3)+_0x2ed3cf[_0x38842b(0x1df)]['toolResults']+_0x38842b(0x1c4)+_0x2ed3cf['counts'][_0x38842b(0x1b4)]+',\x20U:'+_0x2ed3cf[_0x38842b(0x1df)][_0x38842b(0x1d4)]+')'};if(unprocessedMessages)return{'active':!![],'reason':AGENT_ACTIVITY_STATUS[_0x38842b(0x1cf)],'details':'Agent\x20has\x20unprocessed\x20incoming\x20messages'};return{'active':![],'reason':AGENT_ACTIVITY_STATUS[_0x38842b(0x1b2)],'details':_0x38842b(0x1bc)};}if(_0x4ce92e['mode']===AGENT_MODES[_0x38842b(0x1cc)]){if(_0x2ed3cf[_0x38842b(0x1ce)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['HAS_USER_MESSAGES'],'details':'Agent\x20has\x20'+_0x2ed3cf[_0x38842b(0x1df)]['userMessages']+_0x38842b(0x1da)};if(_0x2ed3cf[_0x38842b(0x1d3)])return{'active':!![],'reason':AGENT_ACTIVITY_STATUS['HAS_INTER_AGENT_MESSAGES'],'details':_0x38842b(0x1d7)+_0x2ed3cf[_0x38842b(0x1df)]['interAgentMessages']+_0x38842b(0x1ca)};return{'active':![],'reason':AGENT_ACTIVITY_STATUS['CHAT_MODE_NO_MESSAGES'],'details':_0x2ed3cf[_0x38842b(0x1cb)]?_0x38842b(0x1b7)+_0x2ed3cf['counts'][_0x38842b(0x1e0)]+'\x20tool\x20results\x20but\x20no\x20new\x20messages':_0x38842b(0x1de)};}return{'active':![],'reason':AGENT_ACTIVITY_STATUS['UNKNOWN_MODE'],'details':'Unknown\x20agent\x20mode:\x20'+_0x4ce92e['mode']};}function a0_0x25f9(_0x14a182,_0x5c48f8){_0x14a182=_0x14a182-0x1b0;const _0x2d9f4e=a0_0x2d9f();let _0x25f95b=_0x2d9f4e[_0x14a182];if(a0_0x25f9['ZTDHoM']===undefined){var _0x47fe22=function(_0x157ff5){const _0x528bca='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e5db6='',_0x43632f='';for(let _0xa7829a=0x0,_0x27bd2e,_0x2a25ab,_0x252478=0x0;_0x2a25ab=_0x157ff5['charAt'](_0x252478++);~_0x2a25ab&&(_0x27bd2e=_0xa7829a%0x4?_0x27bd2e*0x40+_0x2a25ab:_0x2a25ab,_0xa7829a++%0x4)?_0x2e5db6+=String['fromCharCode'](0xff&_0x27bd2e>>(-0x2*_0xa7829a&0x6)):0x0){_0x2a25ab=_0x528bca['indexOf'](_0x2a25ab);}for(let _0xb8219=0x0,_0x14583e=_0x2e5db6['length'];_0xb8219<_0x14583e;_0xb8219++){_0x43632f+='%'+('00'+_0x2e5db6['charCodeAt'](_0xb8219)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43632f);};a0_0x25f9['WttyxV']=_0x47fe22,a0_0x25f9['hSHzCu']={},a0_0x25f9['ZTDHoM']=!![];}const _0x17f3f1=_0x2d9f4e[0x0],_0x1f3401=_0x14a182+_0x17f3f1,_0x51cdee=a0_0x25f9['hSHzCu'][_0x1f3401];return!_0x51cdee?(_0x25f95b=a0_0x25f9['WttyxV'](_0x25f95b),a0_0x25f9['hSHzCu'][_0x1f3401]=_0x25f95b):_0x25f95b=_0x51cdee,_0x25f95b;}function a0_0x2d9f(){const _0x12445d=['tK9FuevoreLor19xt1jl','Aw50zxjbz2vUDfrYywnRAw5N','Aw50zxjbz2vUDe1LC3nHz2vZ','mtqXEwjwwMHn','BgvUz3rO','q0HbvcbTB2rLic0GAgfZia','DgfZA3m','qwDLBNqGzgvSyxLLzcb1BNrPBca','AxnbCNjHEq','u1rpuf9srvfvrvnuruq','quDftLqGBw9KzsbHz2vUDcbOyxmGBM8GCgvUzgLUzYb0yxnRCYbVCIbTzxnZywDLCW','zNjVBq','Aw5JB21PBMDnzxnZywDLCW','ndu4mZmZnuTsBvzhtW','C3rHDhvZ','nJG5mdeYngvdAMvLuG','ywn0AxzL','qwDLBNqGC3rVCcbOyxmGyMvLBIbYzxf1zxn0zwq','lcbjoG','qunusvzf','ndaZodCZngn4vhndqG','DgfZA0XPC3q','BM93','Dg90ywW','igLUDgvYlwfNzw50ig1LC3nHz2uOCYKGDg8GChjVy2vZCW','AgfZvg9VBfjLC3vSDhm','q0Hbva','quDftLrFrevmqvLfra','AgfZvxnLCK1LC3nHz2vZ','qvvut05ptu9vu19nt0rfx0fdveLwrq','C2L6zq','ogz5wMvYrq','C3rVCfjLCxvLC3rLza','AgfZsw50zxjbz2vUDe1LC3nHz2vZ','DxnLCK1LC3nHz2vZ','nti2mZzfwKDlvgm','rvHfq1vusu5h','qwDLBNqGAgfZia','zgvSyxLfBMruAw1L','nteXnZa2ogHJuvzfwq','ihvZzxiGBwvZC2fNzsHZksb0BYbWCM9JzxnZ','CMvHC29U','uefvu0ve','mtiXmJu4mxrwqLPVBG','q0HbvcbTB2rLic0GBM8GBwvZC2fNzxmGDg8GChjVy2vZCW','y291BNrZ','Dg9VBfjLC3vSDhm','DMfSDwvZ','mJG2mZeWnZbZwgzvt3q','ihf1zxvLzcbTzxnZywDLCYaOvdO','qwDLBNqGCgf1C2vKihvUDgLSia','Cgf1C2vKvw50AwW','BwfW'];a0_0x2d9f=function(){return _0x12445d;};return a0_0x2d9f();}export function getActiveAgents(_0x35d335){const _0x4185b5=a0_0x25f9,_0x3a5417=_0x35d335 instanceof Map?Array[_0x4185b5(0x1bd)](_0x35d335[_0x4185b5(0x1e1)]()):_0x35d335;return _0x3a5417[_0x4185b5(0x1b1)](_0x1e0eb2=>{const _0x1780d6=shouldAgentBeActive(_0x1e0eb2);return{'agent':_0x1e0eb2,'agentId':_0x1e0eb2['id'],'sessionId':_0x1e0eb2['sessionId'],..._0x1780d6};})['filter'](_0x2278f3=>_0x2278f3['active']);}export function getAllAgentActivityStatus(_0x5688a1){const _0x416909=a0_0x25f9,_0x19e9e7=_0x5688a1 instanceof Map?Array[_0x416909(0x1bd)](_0x5688a1[_0x416909(0x1e1)]()):_0x5688a1;return _0x19e9e7['map'](_0x38379f=>{const _0x308312=_0x416909,_0x5b8547=shouldAgentBeActive(_0x38379f),_0x4fa19c=getMessageQueueStatus(_0x38379f);return{'agentId':_0x38379f['id'],'agentName':_0x38379f['name'],'mode':_0x38379f['mode'],'status':_0x38379f[_0x308312(0x1c0)],'active':_0x5b8547[_0x308312(0x1c2)],'reason':_0x5b8547[_0x308312(0x1db)],'details':_0x5b8547['details'],'queueCounts':_0x4fa19c[_0x308312(0x1df)],'hasPendingTasks':hasPendingTasks(_0x38379f),'isDelayed':isAgentDelayed(_0x38379f),'isPaused':isAgentPaused(_0x38379f),'stopRequested':_0x38379f[_0x308312(0x1d2)]||![],'delayEndTime':_0x38379f[_0x308312(0x1d8)]||null,'pausedUntil':_0x38379f[_0x308312(0x1b0)]||null};});}export function shouldSkipIteration(_0x484b4e){const _0x38b02e=a0_0x25f9;if(!_0x484b4e)return{'skip':!![],'reason':'Agent\x20not\x20found'};if(isAgentDelayed(_0x484b4e))return{'skip':!![],'reason':_0x38b02e(0x1b9)+_0x484b4e[_0x38b02e(0x1d8)]};if(_0x484b4e[_0x38b02e(0x1b0)]&&new Date()<new Date(_0x484b4e['pausedUntil']))return{'skip':!![],'reason':_0x38b02e(0x1e4)+_0x484b4e['pausedUntil']};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 +1 @@
1
- const a0_0x58e07c=a0_0x524b;function a0_0x1aa9(){const _0x2a2048=['uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','C3rHDhvZvgv4Da','Bw9KzwW','Aw5MBW','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','qu5usfjpueLdx09qvvm','ChjVBxb0','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','z2v0s2v5C0zVCLjLCxvLC3q','zgvIDwC','x3n1Bw1HCML6zu1LC3nHz2vZ','CxvHBgL0Eq','CgHP','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','C3rYAw5N','qu5usfjpueLd','x2nOzwnRtw9KzwXizwfSDgG','qKfex0DbvevxqvK','tM8GqvbjigTLEsbJB25MAwD1CMvK','Aw5JBhvKzxm','z2v0qwDLBNq','DhjHy2TvC2fNzq','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','t1bftKfj','y2LYy3vPDejYzwfRzxi','Aw1Nlq','C3r5Bgu','B3b0Aw9UCW','yw50AhjVCgLJ','zxjYB3iT','mZK5nZe0nKXRDgDTvq','BM93','mJy0ndmWB1HJB3fg','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','x2zVCM1HDfnPBMDSzu1LC3nHz2u','CgXHDgzVCM1qCM92AwrLza','C3rYAw5NAwz5','ue9tva','yNvKz2v0u2vYDMLJzq','y29UDgvUDa','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','qMvHCMvYia','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','x2zVCM1HDezVCKfUDgHYB3bPyW','x21HA2vbueLszxf1zxn0','x2DLDfzLBMrVCKzYB21nB2rLBa','mtaWBMjpshPM','zMfPBhvYzxm','yxbPs2v5','y3jLyxrLza','DgLTzxn0yw1W','Dg90ywXFDg9Rzw5Z','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','yxP1CMuTB3bLBMfPlwrHBgXLmW','ChjVDMLKzxi','C3bLzwq','y29Kzq','Bg9Nz2vY','revfufnfruTFuJe','Cg93','qu5usfjpueLdx0HbsuTv','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','uMf0zsbSAw1PDcbLEgnLzwrLza','ndjRB3LnAfa','uMv0CNLPBMCGAw4G','qvPvuKu','ic0G','su5urvjoquXFu0vsvKvsx0vsuK9s','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','ntiYtfHQCgHX','x21HA2vjBwfNzufqsvjLCxvLC3q','ChjLzMvYCMvKtw9KzwW','DxjS','mte2nti4mgLMtvzZtq','y3vZDg9TqxbPs2v5CW','C3vTBwfYEq','y2XHC3nPzNLfCNjVCG','Dw5ZAgLMDa','AgvHBhrOEq','Aw1Hz2vZ','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','CMfUzg9T','AxnpCgvU','sfruuca','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','C3LZDgvT','Dg9ju09tDhjPBMC','C3rHDhvZ','vw5RBM93BIbTB2rLBdOG','C3rHBMrHCMq','zMfZDa','yMfJA2vUza','BwvZC2fNzq','zxjYB3jiyw5KBgvY','BwvZC2fNzxm','BgvUz3rO','zxjYB3i','DxnHz2u','ndq3mdiWnwzZB2zvyW','nZq0ntq5nKDxtvjYCG','Ahr0Chm6lY9HCgKUBg94AweUywK','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','BgfZDezHAwX1CMvuAw1L','Bwf4x3rVA2vUCW','sw52ywXPzcbTB2rLBdOG','revfufnfruS','DxnLCG','zgf0yq','quKGC2vYDMLJzsbLCNjVCJOG','DMvUzg9YqxbPs2v5','C3rHy2S','AgvHBhrOlwnOzwnR','x2zVCM1HDezVCKf6DxjL','yMfZzvvYBa','u3LZDgvToIa','D2fYBG','CMv0CNLbDhrLBxb0CW','x3jLC2v0q2LYy3vPDejYzwfRzxi','ANnVBG','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','C2v0qxbPs2v5twfUywDLCG','C3rVCa','ywDLBNrjza','x3rYDw5JyxrLtwvZC2fNzq','ywDLBNrqB29S','Bw9KzwXtCgvJCW','x2vZDgLTyxrLvg9Rzw5Z','zgvLChnLzwS','mZe3n3nlvvHqtG','yxbWBgLJyxrPB24VANnVBG','CM9Szq','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','z3b0','AxnbCNjHEq','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','AgfUzgXLshr0CevYCM9Y','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','C3rYzwfT','C3vIC3rY','yxbPs2v5twfUywDLCG','y29UzMLN','C2L6zq','DgLTzw91Da','tK9ux0zpvu5e','yxnZAxn0yw50','yJy0x2PZB24','C2vZC2LVBKLK','BwfW','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','CMf0zuXPBwL0zxjZ','DgHYzxnOB2XK','ueHj','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','x3jLy29YzezHAwX1CMu','y2HVAwnLCW','x2zVCM1HDezVCK9Wzw5bsq','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','odi0odeYEKXquNf1'];a0_0x1aa9=function(){return _0x2a2048;};return a0_0x1aa9();}(function(_0x2a3bdc,_0x159a24){const _0x4af759=a0_0x524b,_0x1ba77b=_0x2a3bdc();while(!![]){try{const _0x4844cf=-parseInt(_0x4af759(0xd8))/0x1*(parseInt(_0x4af759(0x125))/0x2)+parseInt(_0x4af759(0x114))/0x3+-parseInt(_0x4af759(0xf5))/0x4+parseInt(_0x4af759(0x15a))/0x5+parseInt(_0x4af759(0x15b))/0x6+parseInt(_0x4af759(0x136))/0x7*(-parseInt(_0x4af759(0x141))/0x8)+-parseInt(_0x4af759(0x13d))/0x9*(parseInt(_0x4af759(0x116))/0xa);if(_0x4844cf===_0x159a24)break;else _0x1ba77b['push'](_0x1ba77b['shift']());}catch(_0xafc03e){_0x1ba77b['push'](_0x1ba77b['shift']());}}}(a0_0x1aa9,0xa9968));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x524b(_0x540b8f,_0x3b3d12){_0x540b8f=_0x540b8f-0xc6;const _0x1aa958=a0_0x1aa9();let _0x524b4a=_0x1aa958[_0x540b8f];if(a0_0x524b['rEgDfb']===undefined){var _0x4936da=function(_0x525d7f){const _0x506d73='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3101f8='',_0x56d469='';for(let _0x559853=0x0,_0x31b886,_0x4d5949,_0x41d219=0x0;_0x4d5949=_0x525d7f['charAt'](_0x41d219++);~_0x4d5949&&(_0x31b886=_0x559853%0x4?_0x31b886*0x40+_0x4d5949:_0x4d5949,_0x559853++%0x4)?_0x3101f8+=String['fromCharCode'](0xff&_0x31b886>>(-0x2*_0x559853&0x6)):0x0){_0x4d5949=_0x506d73['indexOf'](_0x4d5949);}for(let _0x5c55bf=0x0,_0x113139=_0x3101f8['length'];_0x5c55bf<_0x113139;_0x5c55bf++){_0x56d469+='%'+('00'+_0x3101f8['charCodeAt'](_0x5c55bf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56d469);};a0_0x524b['QnKeyS']=_0x4936da,a0_0x524b['eDqYPy']={},a0_0x524b['rEgDfb']=!![];}const _0x3aa58b=_0x1aa958[0x0],_0x5290c6=_0x540b8f+_0x3aa58b,_0x2c8340=a0_0x524b['eDqYPy'][_0x5290c6];return!_0x2c8340?(_0x524b4a=a0_0x524b['QnKeyS'](_0x524b4a),a0_0x524b['eDqYPy'][_0x5290c6]=_0x524b4a):_0x524b4a=_0x2c8340,_0x524b4a;}class AIService{constructor(_0x3101f8,_0x56d469,_0x559853,_0x31b886){const _0x1df78a=a0_0x524b;this[_0x1df78a(0xe4)]=_0x3101f8,this['logger']=_0x56d469,this['budgetService']=_0x559853,this[_0x1df78a(0x155)]=_0x31b886,this[_0x1df78a(0xc9)]=_0x3101f8[_0x1df78a(0x153)]?.[_0x1df78a(0xc9)]||_0x1df78a(0x15c),this['timeout']=_0x3101f8[_0x1df78a(0x153)]?.[_0x1df78a(0xe6)]||0xea60,this['retryAttempts']=_0x3101f8['backend']?.['retryAttempts']||0x3,this[_0x1df78a(0xed)]=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x1df78a(0x120)](),this['conversationManagers']=new Map(),this['apiKeyManager']=null,this[_0x1df78a(0xd4)]=null;}async['sendMessage'](_0x4d5949,_0x41d219,_0x5c55bf={}){const _0x477f6f=a0_0x524b,_0x113139='req-'+Date[_0x477f6f(0x115)]()+'-'+Math[_0x477f6f(0x149)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x4d5949);const _0x288356=this['_formatMessagesForModel'](_0x41d219,_0x4d5949,_0x5c55bf),_0x1a07ee={'model':_0x4d5949,'messages':_0x288356,'options':{'max_tokens':this[_0x477f6f(0xd5)][_0x4d5949]?.['maxTokens']||0xfa0,'temperature':_0x5c55bf['temperature']||0.7,'stream':_0x5c55bf[_0x477f6f(0xe1)]||![]},'metadata':{'requestId':_0x113139,'agentId':_0x5c55bf['agentId'],'timestamp':new Date()[_0x477f6f(0x14e)]()}};_0x5c55bf['systemPrompt']&&(_0x1a07ee[_0x477f6f(0x14d)]=_0x5c55bf['systemPrompt']);this[_0x477f6f(0x130)][_0x477f6f(0xf9)](_0x477f6f(0x10c)+_0x4d5949,{'requestId':_0x113139,'agentId':_0x5c55bf['agentId'],'messageCount':Array[_0x477f6f(0xdd)](_0x41d219)?_0x41d219['length']:0x1,'maxTokens':_0x1a07ee[_0x477f6f(0x15f)]});const _0x309ba7=await this['_makeAPIRequest']('/chat/completions',_0x1a07ee,_0x113139,{..._0x5c55bf,'sessionId':_0x5c55bf[_0x477f6f(0xea)],'platformProvided':_0x5c55bf['platformProvided']||![]});return _0x309ba7['usage']&&await this[_0x477f6f(0x10b)](_0x5c55bf['agentId'],_0x4d5949,{'prompt_tokens':_0x309ba7['usage']['prompt_tokens']||0x0,'completion_tokens':_0x309ba7['usage']['completion_tokens']||0x0,'total_tokens':_0x309ba7[_0x477f6f(0x159)][_0x477f6f(0x12a)]||0x0}),this[_0x477f6f(0xcd)](),{'content':_0x309ba7[_0x477f6f(0xf2)][0x0]?.['message']?.['content']||'','model':_0x309ba7[_0x477f6f(0xf8)],'tokenUsage':_0x309ba7['usage'],'requestId':_0x113139,'finishReason':_0x309ba7['choices'][0x0]?.['finish_reason']};}catch(_0x2984ce){this['_recordFailure'](),this['logger']['error'](_0x477f6f(0x13c)+_0x2984ce['message'],{'requestId':_0x113139,'model':_0x4d5949,'agentId':_0x5c55bf['agentId'],'error':_0x2984ce[_0x477f6f(0xc6)]}),await this[_0x477f6f(0xdf)](_0x2984ce,{'requestId':_0x113139,'model':_0x4d5949,'agentId':_0x5c55bf['agentId']});throw _0x2984ce;}}async['routeModel'](_0x80dc2b,_0x1b3937={}){const _0x126c28=a0_0x524b;try{const _0x315852=MODEL_ROUTING[_0x80dc2b['toUpperCase']()]||MODEL_ROUTING['FALLBACK'],_0x36cd01=[];for(const _0x4329cf of _0x315852){const _0xcf69f9=await this[_0x126c28(0x106)](_0x4329cf);_0xcf69f9&&_0x36cd01['push'](_0x4329cf);}if(_0x36cd01['length']===0x0)return this['logger']['warn'](_0x126c28(0xde)+_0x80dc2b+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x5856a5=_0x36cd01[0x0];if(_0x1b3937['preferredModel']&&_0x36cd01['includes'](_0x1b3937['preferredModel']))_0x5856a5=_0x1b3937[_0x126c28(0x13f)];else{if(_0x1b3937['complexity']==='high'&&_0x36cd01[_0x126c28(0x109)](MODELS[_0x126c28(0xfb)]))_0x5856a5=MODELS['ANTHROPIC_OPUS'];else _0x1b3937[_0x126c28(0x12e)]===_0x126c28(0x152)&&_0x36cd01[_0x126c28(0x109)](MODELS[_0x126c28(0x133)])&&(_0x5856a5=MODELS[_0x126c28(0x133)]);}return this['logger']['info'](_0x126c28(0xf0)+_0x80dc2b,{'selectedModel':_0x5856a5,'availableModels':_0x36cd01['length'],'context':_0x1b3937}),_0x5856a5;}catch(_0x541b3e){return this['logger']['error']('Model\x20routing\x20failed:\x20'+_0x541b3e['message'],{'task':_0x80dc2b,'context':_0x1b3937}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x5b8049,_0x5d4920){const _0x1b803c=a0_0x524b,_0x13ec4e=this['modelSpecs'][_0x5d4920];if(!_0x13ec4e)throw new Error(_0x1b803c(0x150)+_0x5d4920);const _0x983b51=_0x13ec4e['contextWindow']*0.8;let _0x1e844d=0x0;const _0x30a591=[],_0x3beecd=await Promise['all'](_0x5b8049[_0x1b803c(0xeb)](async _0x7b8ce5=>({..._0x7b8ce5,'estimatedTokens':await this[_0x1b803c(0xd6)](_0x7b8ce5[_0x1b803c(0x11d)],_0x5d4920)}))),_0x4f849b=[..._0x3beecd]['reverse']();for(const _0x355c43 of _0x4f849b){if(_0x1e844d+_0x355c43['estimatedTokens']>_0x983b51){if(_0x30a591['length']===0x0){const _0x4c1b4d=await this[_0x1b803c(0xd3)](_0x355c43['content'],_0x983b51);_0x30a591[_0x1b803c(0x145)]({..._0x355c43,'content':_0x4c1b4d,'estimatedTokens':_0x983b51});}break;}_0x30a591[_0x1b803c(0x145)](_0x355c43),_0x1e844d+=_0x355c43['estimatedTokens'];}const _0xaffa53=_0x3beecd['slice'](0x0,-_0x30a591[_0x1b803c(0x157)]);if(_0xaffa53[_0x1b803c(0x157)]>0x0){const _0x160a6a=await this[_0x1b803c(0x100)](_0xaffa53,_0x5d4920);_0x30a591['unshift']({'role':_0x1b803c(0x14d),'content':'Previous\x20conversation\x20summary:\x20'+_0x160a6a,'timestamp':_0xaffa53[0x0][_0x1b803c(0x129)],'type':_0x1b803c(0x143),'estimatedTokens':await this[_0x1b803c(0xd6)](_0x160a6a,_0x5d4920)});}return this['logger'][_0x1b803c(0xf9)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x5d4920,{'originalMessages':_0x5b8049['length'],'compactizedMessages':_0x30a591['length'],'estimatedTokens':_0x1e844d,'maxTokens':_0x983b51}),_0x30a591;}async['trackUsage'](_0x78ab37,_0x19eae6,_0x276f84,_0x5f5e7c){const _0x31ba7a=a0_0x524b;try{this[_0x31ba7a(0x11c)]&&this['budgetService']['trackUsage'](_0x78ab37,_0x19eae6,_0x276f84);}catch(_0x4f6922){this[_0x31ba7a(0x130)]['error']('Usage\x20tracking\x20failed:\x20'+_0x4f6922[_0x31ba7a(0x154)]);}}async['handleHttpError'](_0xb20ad5,_0x19cec2){const _0x4712aa=a0_0x524b,_0x5d696c=this[_0x4712aa(0x155)]?.[_0x4712aa(0x144)]?.(_0xb20ad5,_0x19cec2);switch(_0xb20ad5[_0x4712aa(0x14f)]||_0xb20ad5[_0x4712aa(0x12f)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x4712aa(0x158)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x19cec2,'error':_0xb20ad5['message']});throw new Error('Invalid\x20request:\x20'+_0xb20ad5[_0x4712aa(0x154)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger'][_0x4712aa(0x158)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x19cec2});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this['logger']['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x19cec2});throw new Error(_0x4712aa(0xec));case HTTP_STATUS[_0x4712aa(0xe7)]:this['logger'][_0x4712aa(0x158)]('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x19cec2});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x4712aa(0x130)]['warn'](_0x4712aa(0x135),{'context':_0x19cec2}),await this['_handleRateLimit'](_0x19cec2);throw new Error(_0x4712aa(0xf6));case HTTP_STATUS[_0x4712aa(0x13a)]:case HTTP_STATUS[_0x4712aa(0x107)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x4712aa(0x130)][_0x4712aa(0x158)](_0x4712aa(0x11e),{'context':_0x19cec2,'status':_0xb20ad5['status']}),await this[_0x4712aa(0x12b)](_0x19cec2);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x4712aa(0x130)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x19cec2,'error':_0xb20ad5['message']});throw new Error(_0x4712aa(0x164)+_0xb20ad5[_0x4712aa(0x154)]);}}[a0_0x58e07c(0xd0)](_0x2779e2){const _0xd30e29=a0_0x58e07c;this['apiKeyManager']=_0x2779e2,this[_0xd30e29(0x130)]?.['info'](_0xd30e29(0xcf),{'hasManager':!!_0x2779e2});}['setAgentPool'](_0x3f66df){const _0x30af80=a0_0x58e07c;this['agentPool']=_0x3f66df,this[_0x30af80(0x130)]?.[_0x30af80(0xf9)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3f66df});}async['generateImage'](_0x46560a,_0x25f103={}){const _0x2fa17b=a0_0x58e07c,_0x4a261d=_0x2fa17b(0x10f)+Date['now']()+'-'+Math[_0x2fa17b(0x149)]()['toString'](0x24)[_0x2fa17b(0xe2)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x46560a||typeof _0x46560a!==_0x2fa17b(0x104)||_0x46560a['trim']()[_0x2fa17b(0x157)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x4b0f0e=_0x25f103['model']||'flux-1.1-pro',_0x473fe3=_0x25f103[_0x2fa17b(0xe5)]||'1024x1024',_0x3a3b7a=_0x25f103[_0x2fa17b(0x101)]||_0x2fa17b(0x151),_0x43e10b=_0x25f103['responseFormat']||_0x2fa17b(0x140);this[_0x2fa17b(0x130)][_0x2fa17b(0xf9)]('Generating\x20image\x20with\x20model:\x20'+_0x4b0f0e,{'requestId':_0x4a261d,'model':_0x4b0f0e,'size':_0x473fe3,'quality':_0x3a3b7a,'promptLength':_0x46560a['length']});const _0x2ac027={'prompt':_0x46560a,'model':_0x4b0f0e,'size':_0x473fe3,'quality':_0x3a3b7a,'response_format':_0x43e10b,'n':0x1,'metadata':{'requestId':_0x4a261d,'timestamp':new Date()[_0x2fa17b(0x14e)]()}},_0x44caa8=await this[_0x2fa17b(0x13e)](_0x2ac027,_0x4a261d,{'sessionId':_0x25f103['sessionId'],'platformProvided':_0x25f103[_0x2fa17b(0x119)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x44caa8['data']?.[0x0]?.['url']||null,'b64_json':_0x44caa8[_0x2fa17b(0x163)]?.[0x0]?.[_0x2fa17b(0xe9)]||null,'model':_0x44caa8['model']||_0x4b0f0e,'requestId':_0x4a261d,'revisedPrompt':_0x44caa8[_0x2fa17b(0x163)]?.[0x0]?.['revised_prompt']||_0x46560a};}catch(_0x292984){this[_0x2fa17b(0xf1)](),this['logger']['error']('Image\x20generation\x20failed:\x20'+_0x292984['message'],{'requestId':_0x4a261d,'model':_0x25f103['model'],'error':_0x292984[_0x2fa17b(0xc6)]});throw _0x292984;}}async['checkServiceHealth'](){const _0x4d44db=a0_0x58e07c;try{const _0xbbc62d=await this[_0x4d44db(0x123)]('/health',{},_0x4d44db(0xc7));return _0xbbc62d[_0x4d44db(0x14f)]===_0x4d44db(0x146);}catch(_0x42094d){return![];}}async['switchAgentModel'](_0x4fcf6e,_0x553903){const _0x2b9b53=a0_0x58e07c;try{if(!this['_isValidModel'](_0x553903))throw new Error(_0x2b9b53(0x160)+_0x553903);let _0x2959a5=this['conversationManagers']['get'](_0x4fcf6e);!_0x2959a5&&(_0x2959a5=new ConversationManager(_0x4fcf6e,this['logger']),this['conversationManagers']['set'](_0x4fcf6e,_0x2959a5));const _0x32585f=await _0x2959a5['switchModel'](_0x553903),_0x47b347=await this[_0x2b9b53(0xd4)]?.[_0x2b9b53(0x10a)](_0x4fcf6e);return _0x47b347&&(_0x47b347['currentModel']=_0x553903,await this['agentPool']['persistAgentState'](_0x4fcf6e)),this['logger'][_0x2b9b53(0xf9)](_0x2b9b53(0x117)+_0x4fcf6e,{'newModel':_0x553903,'messageCount':_0x32585f[_0x2b9b53(0x156)]['length']}),{'success':!![],'agentId':_0x4fcf6e,'newModel':_0x553903,'conversation':_0x32585f};}catch(_0x49095b){this[_0x2b9b53(0x130)][_0x2b9b53(0x158)]('Model\x20switch\x20failed:\x20'+_0x49095b[_0x2b9b53(0x154)],{'agentId':_0x4fcf6e,'newModel':_0x553903});throw _0x49095b;}}[a0_0x58e07c(0x120)](){const _0x4e4a5f=a0_0x58e07c,_0x42e6fd={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x4e4a5f(0xfb)]]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x105)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x105)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x10d)],'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[_0x4e4a5f(0x10d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x10d)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x4e4a5f(0x131)]]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x161)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0xef)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x4e4a5f(0x138),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x42e6fd;}['_formatMessagesForModel'](_0x71007b,_0x34fef1,_0x280e1b){const _0x4da3e8=a0_0x58e07c,_0x581c43=this['modelSpecs'][_0x34fef1]||{'provider':'AZURE'};let _0x23c971;typeof _0x71007b===_0x4da3e8(0x104)?_0x23c971=[{'role':_0x4da3e8(0x162),'content':_0x71007b}]:_0x23c971=_0x71007b[_0x4da3e8(0xeb)](_0xa380b0=>this['_formatSingleMessage'](_0xa380b0,_0x34fef1));switch(_0x581c43[_0x4da3e8(0x12d)]){case MODEL_PROVIDERS['ANTHROPIC']:return this[_0x4da3e8(0x122)](_0x23c971);case MODEL_PROVIDERS['OPENAI']:return this[_0x4da3e8(0xf3)](_0x23c971);case MODEL_PROVIDERS['AZURE']:return this[_0x4da3e8(0xc8)](_0x23c971);default:return _0x23c971;}}[a0_0x58e07c(0x118)](_0x3d34a0,_0x2346fa){const _0x19056b=a0_0x58e07c;return{'role':_0x3d34a0[_0x19056b(0xda)]||'user','content':_0x3d34a0[_0x19056b(0x11d)],'timestamp':_0x3d34a0[_0x19056b(0x129)]};}['_formatForAnthropic'](_0x2db566){return _0x2db566['map'](_0x5be645=>{const _0x15b70e=a0_0x524b;if(_0x5be645[_0x15b70e(0xda)]===_0x15b70e(0x14d))return{'role':_0x15b70e(0x162),'content':_0x15b70e(0xca)+_0x5be645['content']};return _0x5be645;});}[a0_0x58e07c(0xf3)](_0x5f3215){return _0x5f3215;}['_formatForAzure'](_0x42c5cd){const _0x35f388=a0_0x58e07c;return _0x42c5cd[_0x35f388(0xeb)](_0x59b587=>({..._0x59b587,'content':typeof _0x59b587['content']===_0x35f388(0x104)?_0x59b587['content']:JSON['stringify'](_0x59b587['content'])}));}['_isValidModel'](_0x2a53e5){const _0x218ee8=a0_0x58e07c;this[_0x218ee8(0x130)][_0x218ee8(0xff)]('Validating\x20model',{'model':_0x2a53e5,'modelType':typeof _0x2a53e5});if(this['modelSpecs'][_0x2a53e5]!==undefined)return!![];return this['logger']['warn']('Model\x20validation\x20failed',{'model':_0x2a53e5,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async['_checkModelHealth'](_0x34e6bb){return!![];}async[a0_0x58e07c(0xd6)](_0x5d45dc,_0x286f9c){const _0x5437e3=a0_0x58e07c;return Math['ceil'](_0x5d45dc[_0x5437e3(0x157)]/0x4);}async[a0_0x58e07c(0xd3)](_0x30d706,_0x4d86ad){const _0x4aa58f=a0_0x58e07c,_0x2b8566=_0x4d86ad*0x4;if(_0x30d706['length']<=_0x2b8566)return _0x30d706;return _0x30d706['substring'](0x0,_0x2b8566-0x14)+_0x4aa58f(0x13b);}async['_summarizeMessages'](_0x37b455,_0x302980){const _0x1df728=a0_0x58e07c,_0x22f311=_0x37b455[_0x1df728(0xeb)](_0x350f40=>_0x350f40[_0x1df728(0xda)]+':\x20'+_0x350f40[_0x1df728(0x11d)])['join']('\x0a'),_0x8d4029=0x1f4;if(_0x22f311['length']<=_0x8d4029)return _0x22f311;return _0x22f311['substring'](0x0,_0x8d4029)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x58e07c(0x123)](_0x23be5d,_0x37919d,_0x596390,_0x1941ac={}){const _0x273bf8=a0_0x58e07c,_0xacdf81='https://autopilot-api.azurewebsites.net/llm/chat';let _0x434462,_0x48988d=null,_0x34a639=null;this[_0x273bf8(0x130)]?.['info'](_0x273bf8(0x148),{'hasApiKeyManager':!!this[_0x273bf8(0xe3)],'sessionId':_0x1941ac[_0x273bf8(0xea)],'hasSessionId':!!_0x1941ac[_0x273bf8(0xea)],'optionsKeys':Object['keys'](_0x1941ac),'model':_0x37919d['model']});if(this[_0x273bf8(0xe3)]&&_0x1941ac['sessionId']){const _0x2e92b2=this[_0x273bf8(0xe3)][_0x273bf8(0xfe)](_0x1941ac['sessionId'],{'platformProvided':_0x1941ac[_0x273bf8(0x119)]||![],'vendor':this[_0x273bf8(0x124)](_0x37919d[_0x273bf8(0xf8)])});_0x48988d=_0x2e92b2['loxiaApiKey'],_0x34a639=_0x2e92b2[_0x273bf8(0x165)],this['logger']?.[_0x273bf8(0xff)]('Retrieved API keys from session manager',{'sessionId':_0x1941ac['sessionId'],'hasLoxiaKey':!!_0x48988d,'hasVendorKey':!!_0x34a639,'vendor':this['_getVendorFromModel'](_0x37919d[_0x273bf8(0xf8)])});}!_0x48988d&&_0x1941ac[_0x273bf8(0x127)]&&(_0x48988d=_0x1941ac[_0x273bf8(0x127)]);!_0x48988d&&this[_0x273bf8(0xe4)]['apiKey']&&(_0x48988d=this[_0x273bf8(0xe4)]['apiKey']);if(!_0x48988d)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x16a943=_0x37919d[_0x273bf8(0xf8)],_0x478eb5={'conversationId':_0x596390,'message':_0x37919d[_0x273bf8(0x156)][_0x37919d['messages']['length']-0x1]?.['content']||'','messages':_0x37919d['messages'],'model':_0x16a943,'requestId':_0x596390,'options':_0x37919d[_0x273bf8(0x111)]||{},'platformProvided':_0x1941ac['platformProvided']||![]};_0x37919d[_0x273bf8(0x14d)]&&(_0x478eb5['systemPrompt']=_0x37919d['system']);_0x1941ac[_0x273bf8(0x119)]?_0x478eb5[_0x273bf8(0x127)]=_0x48988d:(_0x34a639&&(_0x478eb5[_0x273bf8(0x165)]=_0x34a639),_0x1941ac['customApiKeys']&&(_0x478eb5[_0x273bf8(0x142)]=_0x1941ac[_0x273bf8(0x142)]),_0x478eb5[_0x273bf8(0x127)]=_0x48988d);for(let _0x2e97bb=0x1;_0x2e97bb<=this[_0x273bf8(0xcc)];_0x2e97bb++){try{this[_0x273bf8(0x130)][_0x273bf8(0xf9)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0xacdf81,'model':_0x37919d['model'],'requestId':_0x596390,'attempt':_0x2e97bb,'hasApiKey':!!_0x48988d});const _0xa07066=await fetch(_0xacdf81,{'method':_0x273bf8(0x11b),'headers':{'Content-Type':'application/json','Authorization':_0x273bf8(0x11f)+_0x48988d,'X-Request-ID':_0x596390},'body':JSON['stringify'](_0x478eb5),'timeout':this['timeout']});if(!_0xa07066['ok']){const _0x33c69e=await _0xa07066['text'](),_0x25feea=new Error('HTTP\x20'+_0xa07066[_0x273bf8(0x14f)]+':\x20'+_0xa07066[_0x273bf8(0xf7)]+(_0x33c69e?'\x20-\x20'+_0x33c69e:''));_0x25feea[_0x273bf8(0x14f)]=_0xa07066[_0x273bf8(0x14f)];throw _0x25feea;}const _0x3883b2=await _0xa07066[_0x273bf8(0xce)]();return{'choices':[{'message':{'content':_0x3883b2[_0x273bf8(0x11d)]||'','role':_0x273bf8(0xe8)},'finish_reason':_0x3883b2['finishReason']||_0x273bf8(0xd1)}],'usage':_0x3883b2[_0x273bf8(0x159)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x3883b2['model']||_0x37919d[_0x273bf8(0xf8)],'id':_0x3883b2['requestId']||_0x596390};}catch(_0x4f0d05){_0x434462=_0x4f0d05,this['logger'][_0x273bf8(0xcb)](_0x273bf8(0xf4),{'attempt':_0x2e97bb,'requestId':_0x596390,'error':_0x4f0d05['message'],'status':_0x4f0d05[_0x273bf8(0x14f)]});if(_0x2e97bb<this[_0x273bf8(0xcc)]){const _0x3d5240=Math[_0x273bf8(0x132)](0x2,_0x2e97bb)*0x3e8;this[_0x273bf8(0x130)]['warn'](_0x273bf8(0x137)+_0x3d5240+'ms',{'attempt':_0x2e97bb,'requestId':_0x596390}),await new Promise(_0x3bae16=>setTimeout(_0x3bae16,_0x3d5240));}}}this[_0x273bf8(0x130)][_0x273bf8(0x158)]('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x596390,'error':_0x434462['message']});const _0x7825c5=_0x434462[_0x273bf8(0x154)]&&_0x434462['message'][_0x273bf8(0x109)](_0x273bf8(0x108));if(_0x7825c5)throw new Error(_0x273bf8(0xe0)+_0x434462[_0x273bf8(0x154)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x434462['message'],'role':_0x273bf8(0xe8)},'finish_reason':_0x273bf8(0xd1)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x37919d['model'],'id':_0x273bf8(0x113)+_0x596390,'error':_0x434462[_0x273bf8(0x154)]};}async['_makeImageAPIRequest'](_0x23794c,_0x2206c1,_0x422194={}){const _0x4d8435=a0_0x58e07c,_0x58d14b=_0x4d8435(0x134);let _0x599303,_0x14529b=null,_0x16bbf8=null;this[_0x4d8435(0x130)]?.[_0x4d8435(0xf9)](_0x4d8435(0xfd),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x422194['sessionId'],'hasSessionId':!!_0x422194['sessionId'],'model':_0x23794c[_0x4d8435(0xf8)]});if(this[_0x4d8435(0xe3)]&&_0x422194[_0x4d8435(0xea)]){const _0x189b12=this['apiKeyManager']['getKeysForRequest'](_0x422194['sessionId'],{'platformProvided':_0x422194['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x23794c[_0x4d8435(0xf8)])});_0x14529b=_0x189b12['loxiaApiKey'],_0x16bbf8=_0x189b12['vendorApiKey'],this[_0x4d8435(0x130)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x422194['sessionId'],'hasLoxiaKey':!!_0x14529b,'hasVendorKey':!!_0x16bbf8});}!_0x14529b&&_0x422194[_0x4d8435(0x127)]&&(_0x14529b=_0x422194['apiKey']);!_0x14529b&&this['config'][_0x4d8435(0x127)]&&(_0x14529b=this[_0x4d8435(0xe4)]['apiKey']);if(!_0x14529b)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x537ee8={'prompt':_0x23794c[_0x4d8435(0xfc)],'model':_0x23794c[_0x4d8435(0xf8)]||_0x4d8435(0x12c),'size':_0x23794c['size'],'quality':_0x23794c[_0x4d8435(0x101)],'style':_0x23794c[_0x4d8435(0x110)]||'vivid','n':_0x23794c['n']||0x1,'requestId':_0x2206c1};for(let _0x401261=0x1;_0x401261<=this['retryAttempts'];_0x401261++){try{this[_0x4d8435(0x130)][_0x4d8435(0xf9)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x58d14b,'model':_0x23794c['model'],'requestId':_0x2206c1,'attempt':_0x401261,'hasApiKey':!!_0x14529b});const _0x405333=await fetch(_0x58d14b,{'method':'POST','headers':{'Content-Type':_0x4d8435(0xd9),'Authorization':'Bearer\x20'+_0x14529b,'X-Request-ID':_0x2206c1},'body':JSON[_0x4d8435(0x11a)](_0x537ee8),'timeout':this[_0x4d8435(0xe6)]*0x2});if(!_0x405333['ok']){const _0x499801=await _0x405333['text'](),_0x2b54d0=new Error(_0x4d8435(0x14b)+_0x405333['status']+':\x20'+_0x405333['statusText']+(_0x499801?_0x4d8435(0x139)+_0x499801:''));_0x2b54d0['status']=_0x405333['status'];throw _0x2b54d0;}const _0x2962ad=await _0x405333[_0x4d8435(0xce)]();return{'data':_0x2962ad[_0x4d8435(0x147)]||[],'model':_0x2962ad['model']||_0x23794c[_0x4d8435(0xf8)],'created':_0x2962ad[_0x4d8435(0x128)]||Date[_0x4d8435(0x115)](),'usage':_0x2962ad['usage']};}catch(_0x2289be){_0x599303=_0x2289be,this['logger'][_0x4d8435(0xcb)](_0x4d8435(0x121),{'attempt':_0x401261,'requestId':_0x2206c1,'error':_0x2289be[_0x4d8435(0x154)],'status':_0x2289be[_0x4d8435(0x14f)]});if(_0x401261<this['retryAttempts']){const _0x4eeacf=Math['pow'](0x2,_0x401261)*0x3e8;this['logger']['warn']('Retrying\x20in\x20'+_0x4eeacf+'ms',{'attempt':_0x401261,'requestId':_0x2206c1}),await new Promise(_0x59c91e=>setTimeout(_0x59c91e,_0x4eeacf));}}}this['logger'][_0x4d8435(0x158)](_0x4d8435(0xdb),{'requestId':_0x2206c1,'error':_0x599303['message']});throw new Error(_0x4d8435(0x103)+_0x599303['message']);}async['_checkRateLimit'](_0x2ed234){await new Promise(_0x28da3f=>setTimeout(_0x28da3f,0x64));}async['_handleRateLimit'](_0x4b2892){const _0x5a6571=a0_0x58e07c,_0x37fba7=0xea60;this['logger'][_0x5a6571(0xf9)](_0x5a6571(0x15d)+_0x37fba7+'ms',_0x4b2892),await new Promise(_0x4a2897=>setTimeout(_0x4a2897,_0x37fba7));}async[a0_0x58e07c(0x12b)](_0x16ffef){const _0x51f8e4=a0_0x58e07c;this[_0x51f8e4(0xf1)]();const _0x49674c=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x49674c+'ms',_0x16ffef),await new Promise(_0x5dd729=>setTimeout(_0x5dd729,_0x49674c));}['_isCircuitBreakerOpen'](){const _0x2af83e=a0_0x58e07c;if(!this[_0x2af83e(0x10e)]['isOpen'])return![];const _0xb3a1df=Date['now']()-this[_0x2af83e(0x10e)]['lastFailureTime'];if(_0xb3a1df>this['circuitBreaker'][_0x2af83e(0xe6)])return this['circuitBreaker'][_0x2af83e(0x14a)]=![],this['circuitBreaker']['failures']=0x0,![];return!![];}[a0_0x58e07c(0xf1)](){const _0x3c6cae=a0_0x58e07c;this[_0x3c6cae(0x10e)]['failures']++,this['circuitBreaker'][_0x3c6cae(0x15e)]=Date['now'](),this[_0x3c6cae(0x10e)][_0x3c6cae(0x126)]>=this[_0x3c6cae(0x10e)][_0x3c6cae(0xee)]&&(this['circuitBreaker']['isOpen']=!![],this[_0x3c6cae(0x130)]['warn'](_0x3c6cae(0xfa)));}['_resetCircuitBreaker'](){const _0x27db32=a0_0x58e07c;this[_0x27db32(0x10e)]['failures']>0x0&&(this[_0x27db32(0x10e)]['failures']=0x0,this['circuitBreaker']['isOpen']=![],this[_0x27db32(0x130)]['info'](_0x27db32(0x14c)));}['_getVendorFromModel'](_0x17d1ff){const _0x4b745d=a0_0x58e07c;if(!_0x17d1ff)return null;const _0x5af8ba=_0x17d1ff['toLowerCase']();if(_0x5af8ba['includes']('anthropic')||_0x5af8ba['includes']('claude'))return _0x4b745d(0x112);else{if(_0x5af8ba['includes']('openai')||_0x5af8ba[_0x4b745d(0x109)](_0x4b745d(0xdc)))return'openai';else{if(_0x5af8ba[_0x4b745d(0x109)](_0x4b745d(0xd7)))return'deepseek';else{if(_0x5af8ba[_0x4b745d(0x109)](_0x4b745d(0x102)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x26ab7c,_0x29cbec){const _0x2aead6=a0_0x58e07c;this[_0x2aead6(0xd2)]=_0x26ab7c,this['logger']=_0x29cbec,this['conversations']=new Map();}async['switchModel'](_0x683f45){return{'messages':[],'model':_0x683f45,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
1
+ function a0_0x5a63(){const _0x549eeb=['C2v0qwDLBNrqB29S','AxnpCgvU','tK9ux0zpvu5e','x2LZq2LYy3vPDejYzwfRzxjpCgvU','C3rVCa','t1bftKfj','yxbWBgLJyxrPB24VANnVBG','yxbPs2v5','Dw5ZAgLMDa','y2XHDwrL','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','DxnHz2u','C3vIC3rYAw5N','C3rHy2S','sw52ywXPzcbYzxf1zxn0oIa','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','lcb1C2LUzYbMywXSyMfJAW','BM93','l2nOyxqVy29TCgXLDgLVBNm','Cg93','mtz6yLvTCg8','sfruuca','C3rHDhvZvgv4Da','yxnZAxn0yw50','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','z2v0s2v5C0zVCLjLCxvLC3q','B3b0Aw9UCW','DxjS','C3rYAw5NAwz5','x2DLDfzLBMrVCKzYB21nB2rLBa','x2nOzwnRtw9KzwXizwfSDgG','zxn0Aw1HDgvKvg9Rzw5Z','Dg9ju09tDhjPBMC','C2vZC2LVBKLK','qu5usfjpueLd','ChjLzMvYCMvKtw9KzwW','CMv0CNLbDhrLBxb0CW','mZCWnteWEK5sEMH3','C2v0','DML2Awq','DhjHy2TvC2fNzq','BwLJCM9ZB2z0','Bw9KzwXtCgvJCW','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','revfufnfruTFuJe','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','x2zVCM1HDezVCKfUDgHYB3bPyW','BgfZDezHAwX1CMvuAw1L','qvPvuKu','x2zVCM1HDezVCKf6DxjL','x2HHBMrSzvjHDgvmAw1PDa','CMv2AxnLzf9WCM9TChq','mtC5mdiYAM9oCxzm','qu5usfjpueLdx09qvvm','BwvZC2fNzxm','Ahr0Chm6lY9HCgKUBg94AweUywK','ue9tva','zgvLChnLzwS','zMfPBhvYzxm','ANnVBG','C3LZDgvT','y2HVAwnLCW','yMfJA2vUza','C3DPDgnOtw9KzwW','C2vUze1LC3nHz2u','ywXS','y29UzMLN','x3jLy29YzezHAwX1CMu','rK9sqKLerevo','z2v0qwDLBNq','C3r5Bgu','x3rYDw5JyxrLtwvZC2fNzq','r0furvDbwv9usu1ft1vu','zxjYB3jiyw5KBgvY','ChjVBxb0x3rVA2vUCW','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','vMfSAwrHDgLUzYbTB2rLBa','vw5RBM93BIbTB2rLBdOG','mZa4ntu1zK9drvzM','Aw1Hz2vZ','ic0G','u0vsvKLdrv9vtKfwquLmqujmrq','y29UDgv4DfDPBMrVDW','CM91DgvnB2rLBa','C3rHDhvZ','z3b0','yMfZzvvYBa','y29UDgvUDa','y29UDMvYC2f0Aw9UCW','CMvXDwvZDff1zxvL','mJq4nJuYmffkAeXdsa','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','DhjPBq','Bwf4x3rVA2vUCW','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','CMvXlq','AM9PBG','yxbPs2v5twfUywDLCG','x21HA2vjBwfNzufqsvjLCxvLC3q','ChjVBxb0','y2vPBa','ntK5mZu4sxP6Ehbx','mJK1nta1mw1sv21Yua','C3rYzwfT','C3rYAw5N','Bw9KzwW','y2LYy3vPDejYzwfRzxi','AgfUzgXLshr0CevYCM9Y','y29UDMvYC2f0Aw9UtwfUywDLCNm','D2fYBG','CM9Szq','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','x2LZvMfSAwrnB2rLBa','Aw5JBhvKzxm','Dg9vChbLCKnHC2u','zgf0yq','C3vIC3rY','y29TCgXLEgL0Eq','Bg9Nz2vY','yNvKz2v0u2vYDMLJzq','DxnLCG','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','x3n1Bw1HCML6zu1LC3nHz2vZ','zxjYB3i','DgLTzxn0yw1W','DgLTzw91Da','yJy0x2PZB24','ywDLBNrjza','x2nOzwnRuMf0zuXPBwL0','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','y2HLy2Ttzxj2AwnLsgvHBhrO','Aw5MBW','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','ChvZAa','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','ueHjxZq','uMf0zsbSAw1PDcbLEgnLzwrLza','rKfmtejbq0S','CxvHBgL0Eq','qMvHCMvYia','zxjYB3iT','Dg90ywXFDg9Rzw5Z','Bwf4vg9Rzw5Z','x21HA2vbueLszxf1zxn0','zgvIDwC','qu5usfjpueLdx1nptK5fva','BgvUz3rO','zMLUAxnOuMvHC29U','ywDLBNrqB29S','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','nJmXodCWzuros2T2','B3bLBMfP','CgXHDgzVCM1qCM92AwrLza','y3vZDg9TqxbPs2v5CW','Dgv4Da','ChjVDMLKzxi','BwfW','BwvZC2fNzq','mJbPy0jfugu'];a0_0x5a63=function(){return _0x549eeb;};return a0_0x5a63();}const a0_0x5afc88=a0_0x30c2;function a0_0x30c2(_0x135a99,_0x1900cc){_0x135a99=_0x135a99-0x1d7;const _0x5a63ea=a0_0x5a63();let _0x30c2d7=_0x5a63ea[_0x135a99];if(a0_0x30c2['fihDWh']===undefined){var _0x2a26d4=function(_0x1d6840){const _0x2c66a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x38cadd='',_0x1addbc='';for(let _0x436abb=0x0,_0x4b4af3,_0x2a25bc,_0x2df1ad=0x0;_0x2a25bc=_0x1d6840['charAt'](_0x2df1ad++);~_0x2a25bc&&(_0x4b4af3=_0x436abb%0x4?_0x4b4af3*0x40+_0x2a25bc:_0x2a25bc,_0x436abb++%0x4)?_0x38cadd+=String['fromCharCode'](0xff&_0x4b4af3>>(-0x2*_0x436abb&0x6)):0x0){_0x2a25bc=_0x2c66a2['indexOf'](_0x2a25bc);}for(let _0x5262d0=0x0,_0x3f73e5=_0x38cadd['length'];_0x5262d0<_0x3f73e5;_0x5262d0++){_0x1addbc+='%'+('00'+_0x38cadd['charCodeAt'](_0x5262d0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1addbc);};a0_0x30c2['nJlQhZ']=_0x2a26d4,a0_0x30c2['SkWMfi']={},a0_0x30c2['fihDWh']=!![];}const _0x46b108=_0x5a63ea[0x0],_0x5a2159=_0x135a99+_0x46b108,_0x108ed3=a0_0x30c2['SkWMfi'][_0x5a2159];return!_0x108ed3?(_0x30c2d7=a0_0x30c2['nJlQhZ'](_0x30c2d7),a0_0x30c2['SkWMfi'][_0x5a2159]=_0x30c2d7):_0x30c2d7=_0x108ed3,_0x30c2d7;}(function(_0x45a802,_0x19a347){const _0x2deeeb=a0_0x30c2,_0x45b84d=_0x45a802();while(!![]){try{const _0x5a3810=-parseInt(_0x2deeeb(0x253))/0x1+-parseInt(_0x2deeeb(0x1fb))/0x2+-parseInt(_0x2deeeb(0x26a))/0x3+parseInt(_0x2deeeb(0x25f))/0x4+-parseInt(_0x2deeeb(0x203))/0x5*(-parseInt(_0x2deeeb(0x239))/0x6)+parseInt(_0x2deeeb(0x22a))/0x7*(parseInt(_0x2deeeb(0x218))/0x8)+parseInt(_0x2deeeb(0x26b))/0x9;if(_0x5a3810===_0x19a347)break;else _0x45b84d['push'](_0x45b84d['shift']());}catch(_0x2408f9){_0x45b84d['push'](_0x45b84d['shift']());}}}(a0_0x5a63,0x55ab5));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x38cadd,_0x1addbc,_0x436abb,_0x4b4af3){const _0x157f37=a0_0x30c2;this['config']=_0x38cadd,this[_0x157f37(0x1da)]=_0x1addbc,this[_0x157f37(0x1db)]=_0x436abb,this['errorHandler']=_0x4b4af3,this['baseUrl']=_0x38cadd[_0x157f37(0x243)]?.[_0x157f37(0x25b)]||_0x157f37(0x23c),this[_0x157f37(0x1e1)]=_0x38cadd['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x38cadd['backend']?.[_0x157f37(0x229)]||0x3,this['rateLimiters']=new Map(),this[_0x157f37(0x25e)]=new Map(),this[_0x157f37(0x26f)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x157f37(0x22f)]=this['_initializeModelSpecs'](),this['conversationManagers']=new Map(),this['apiKeyManager']=null,this[_0x157f37(0x1f8)]=null;}async[a0_0x5afc88(0x245)](_0x2a25bc,_0x2df1ad,_0x5262d0={}){const _0x12f70b=a0_0x5afc88,_0x3f73e5=_0x12f70b(0x264)+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this[_0x12f70b(0x207)]())throw new Error(_0x12f70b(0x213));await this[_0x12f70b(0x1e4)](_0x2a25bc);const _0x2157ff=this['_formatMessagesForModel'](_0x2df1ad,_0x2a25bc,_0x5262d0),_0x21c86a={'model':_0x2a25bc,'messages':_0x2157ff,'options':{'max_tokens':this[_0x12f70b(0x22f)][_0x2a25bc]?.[_0x12f70b(0x1f2)]||0xfa0,'temperature':_0x5262d0['temperature']||0.7,'stream':_0x5262d0[_0x12f70b(0x26c)]||![]},'metadata':{'requestId':_0x3f73e5,'agentId':_0x5262d0[_0x12f70b(0x1e3)],'timestamp':new Date()['toISOString']()}};_0x5262d0['systemPrompt']&&(_0x21c86a[_0x12f70b(0x241)]=_0x5262d0['systemPrompt']);this[_0x12f70b(0x1da)][_0x12f70b(0x1e7)](_0x12f70b(0x232)+_0x2a25bc,{'requestId':_0x3f73e5,'agentId':_0x5262d0[_0x12f70b(0x1e3)],'messageCount':Array['isArray'](_0x2df1ad)?_0x2df1ad['length']:0x1,'maxTokens':_0x21c86a[_0x12f70b(0x262)]});const _0x1f9cf7=await this[_0x12f70b(0x1f3)](_0x12f70b(0x216),_0x21c86a,_0x3f73e5,{..._0x5262d0,'sessionId':_0x5262d0['sessionId'],'platformProvided':_0x5262d0[_0x12f70b(0x1fd)]||![]});return _0x1f9cf7['usage']&&await this['trackUsage'](_0x5262d0['agentId'],_0x2a25bc,{'prompt_tokens':_0x1f9cf7['usage'][_0x12f70b(0x24f)]||0x0,'completion_tokens':_0x1f9cf7[_0x12f70b(0x20f)]['completion_tokens']||0x0,'total_tokens':_0x1f9cf7['usage'][_0x12f70b(0x1f1)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x1f9cf7['choices'][0x0]?.['message']?.['content']||'','model':_0x1f9cf7['model'],'tokenUsage':_0x1f9cf7['usage'],'requestId':_0x3f73e5,'finishReason':_0x1f9cf7[_0x12f70b(0x242)][0x0]?.['finish_reason']};}catch(_0x4b4df9){this[_0x12f70b(0x248)](),this[_0x12f70b(0x1da)][_0x12f70b(0x1df)]('AI\x20service\x20request\x20failed:\x20'+_0x4b4df9['message'],{'requestId':_0x3f73e5,'model':_0x2a25bc,'agentId':_0x5262d0['agentId'],'error':_0x4b4df9['stack']}),await this[_0x12f70b(0x270)](_0x4b4df9,{'requestId':_0x3f73e5,'model':_0x2a25bc,'agentId':_0x5262d0[_0x12f70b(0x1e3)]});throw _0x4b4df9;}}async[a0_0x5afc88(0x258)](_0x9e4dfe,_0x496392={}){const _0x34b6e3=a0_0x5afc88;try{const _0x293361=MODEL_ROUTING[_0x9e4dfe[_0x34b6e3(0x278)]()]||MODEL_ROUTING[_0x34b6e3(0x1ed)],_0x276479=[];for(const _0x370f1e of _0x293361){const _0x4d109e=await this[_0x34b6e3(0x223)](_0x370f1e);_0x4d109e&&_0x276479[_0x34b6e3(0x1e9)](_0x370f1e);}if(_0x276479[_0x34b6e3(0x1f6)]===0x0)return this['logger']['warn']('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x9e4dfe+_0x34b6e3(0x214)),MODEL_ROUTING['FALLBACK'][0x0];let _0x2df652=_0x276479[0x0];if(_0x496392['preferredModel']&&_0x276479[_0x34b6e3(0x277)](_0x496392[_0x34b6e3(0x228)]))_0x2df652=_0x496392[_0x34b6e3(0x228)];else{if(_0x496392[_0x34b6e3(0x1d9)]==='high'&&_0x276479['includes'](MODELS['ANTHROPIC_OPUS']))_0x2df652=MODELS['ANTHROPIC_OPUS'];else _0x496392['speed']==='fast'&&_0x276479[_0x34b6e3(0x277)](MODELS['ANTHROPIC_HAIKU'])&&(_0x2df652=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info'](_0x34b6e3(0x1ea)+_0x9e4dfe,{'selectedModel':_0x2df652,'availableModels':_0x276479['length'],'context':_0x496392}),_0x2df652;}catch(_0x4585e2){return this[_0x34b6e3(0x1da)][_0x34b6e3(0x1df)](_0x34b6e3(0x230)+_0x4585e2['message'],{'task':_0x9e4dfe,'context':_0x496392}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x5afc88(0x274)](_0x43f6e9,_0x10317c){const _0xca63d5=a0_0x5afc88,_0x3ec1f2=this[_0xca63d5(0x22f)][_0x10317c];if(!_0x3ec1f2)throw new Error(_0xca63d5(0x252)+_0x10317c);const _0x591aca=_0x3ec1f2[_0xca63d5(0x257)]*0.8;let _0x4372a9=0x0;const _0x21fe5f=[],_0x54c983=await Promise[_0xca63d5(0x246)](_0x43f6e9['map'](async _0x3f4b2e=>({..._0x3f4b2e,'estimatedTokens':await this['_estimateTokens'](_0x3f4b2e[_0xca63d5(0x25c)],_0x10317c)}))),_0x4e2791=[..._0x54c983]['reverse']();for(const _0x3c92c2 of _0x4e2791){if(_0x4372a9+_0x3c92c2[_0xca63d5(0x224)]>_0x591aca){if(_0x21fe5f[_0xca63d5(0x1f6)]===0x0){const _0x10aba7=await this[_0xca63d5(0x24c)](_0x3c92c2['content'],_0x591aca);_0x21fe5f[_0xca63d5(0x20c)]({..._0x3c92c2,'content':_0x10aba7,'estimatedTokens':_0x591aca});}break;}_0x21fe5f[_0xca63d5(0x20c)](_0x3c92c2),_0x4372a9+=_0x3c92c2[_0xca63d5(0x224)];}const _0x252449=_0x54c983['slice'](0x0,-_0x21fe5f['length']);if(_0x252449[_0xca63d5(0x1f6)]>0x0){const _0x82b2ad=await this[_0xca63d5(0x1de)](_0x252449,_0x10317c);_0x21fe5f['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x82b2ad,'timestamp':_0x252449[0x0][_0xca63d5(0x1e0)],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x82b2ad,_0x10317c)});}return this[_0xca63d5(0x1da)]['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x10317c,{'originalMessages':_0x43f6e9[_0xca63d5(0x1f6)],'compactizedMessages':_0x21fe5f[_0xca63d5(0x1f6)],'estimatedTokens':_0x4372a9,'maxTokens':_0x591aca}),_0x21fe5f;}async['trackUsage'](_0x1058cb,_0x588344,_0x313f5f,_0xbcc91d){const _0x5d09a0=a0_0x5afc88;try{this['budgetService']&&this[_0x5d09a0(0x1db)][_0x5d09a0(0x22d)](_0x1058cb,_0x588344,_0x313f5f);}catch(_0x576613){this[_0x5d09a0(0x1da)][_0x5d09a0(0x1df)]('Usage\x20tracking\x20failed:\x20'+_0x576613['message']);}}async['handleHttpError'](_0x79d0d,_0x4b9554){const _0x2d1d92=a0_0x5afc88,_0xb49e5b=this[_0x2d1d92(0x24e)]?.['classifyError']?.(_0x79d0d,_0x4b9554);switch(_0x79d0d[_0x2d1d92(0x259)]||_0x79d0d['code']){case HTTP_STATUS['BAD_REQUEST']:this[_0x2d1d92(0x1da)]['error']('Bad\x20request\x20to\x20AI\x20service',{'context':_0x4b9554,'error':_0x79d0d['message']});throw new Error(_0x2d1d92(0x212)+_0x79d0d[_0x2d1d92(0x202)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger'][_0x2d1d92(0x1df)](_0x2d1d92(0x21c),{'context':_0x4b9554});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS[_0x2d1d92(0x249)]:this[_0x2d1d92(0x1da)]['error'](_0x2d1d92(0x275),{'context':_0x4b9554});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x2d1d92(0x206)]:this[_0x2d1d92(0x1da)][_0x2d1d92(0x1df)]('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x4b9554});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x2d1d92(0x1da)]['warn'](_0x2d1d92(0x1ec),{'context':_0x4b9554}),await this[_0x2d1d92(0x237)](_0x4b9554);throw new Error(_0x2d1d92(0x1f9));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS[_0x2d1d92(0x256)]:case HTTP_STATUS[_0x2d1d92(0x24d)]:this['logger']['error']('AI\x20service\x20unavailable',{'context':_0x4b9554,'status':_0x79d0d[_0x2d1d92(0x259)]}),await this[_0x2d1d92(0x250)](_0x4b9554);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x4b9554,'error':_0x79d0d[_0x2d1d92(0x202)]});throw new Error('AI\x20service\x20error:\x20'+_0x79d0d['message']);}}['setApiKeyManager'](_0x1f323e){const _0x3a2dd1=a0_0x5afc88;this['apiKeyManager']=_0x1f323e,this['logger']?.[_0x3a2dd1(0x1e7)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x1f323e});}[a0_0x5afc88(0x204)](_0x1e5355){const _0x494139=a0_0x5afc88;this['agentPool']=_0x1e5355,this[_0x494139(0x1da)]?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x1e5355});}async['generateImage'](_0x46795d,_0x52ffd1={}){const _0x2c99a9=a0_0x5afc88,_0x164aef='img-'+Date['now']()+'-'+Math['random']()['toString'](0x24)[_0x2c99a9(0x1d8)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x46795d||typeof _0x46795d!==_0x2c99a9(0x26d)||_0x46795d[_0x2c99a9(0x261)]()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x8b504e=_0x52ffd1['model']||'flux-1.1-pro',_0x223df7=_0x52ffd1['size']||'1024x1024',_0x3e94ce=_0x52ffd1[_0x2c99a9(0x1ee)]||'standard',_0x4f1ca2=_0x52ffd1['responseFormat']||_0x2c99a9(0x220);this[_0x2c99a9(0x1da)][_0x2c99a9(0x1e7)](_0x2c99a9(0x1e8)+_0x8b504e,{'requestId':_0x164aef,'model':_0x8b504e,'size':_0x223df7,'quality':_0x3e94ce,'promptLength':_0x46795d[_0x2c99a9(0x1f6)]});const _0x33fabd={'prompt':_0x46795d,'model':_0x8b504e,'size':_0x223df7,'quality':_0x3e94ce,'response_format':_0x4f1ca2,'n':0x1,'metadata':{'requestId':_0x164aef,'timestamp':new Date()[_0x2c99a9(0x225)]()}},_0x17863e=await this[_0x2c99a9(0x267)](_0x33fabd,_0x164aef,{'sessionId':_0x52ffd1['sessionId'],'platformProvided':_0x52ffd1[_0x2c99a9(0x1fd)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x17863e['data']?.[0x0]?.[_0x2c99a9(0x220)]||null,'b64_json':_0x17863e['data']?.[0x0]?.[_0x2c99a9(0x1e2)]||null,'model':_0x17863e['model']||_0x8b504e,'requestId':_0x164aef,'revisedPrompt':_0x17863e[_0x2c99a9(0x1d7)]?.[0x0]?.[_0x2c99a9(0x238)]||_0x46795d};}catch(_0x2de73a){this[_0x2c99a9(0x248)](),this[_0x2c99a9(0x1da)]['error'](_0x2c99a9(0x20e)+_0x2de73a[_0x2c99a9(0x202)],{'requestId':_0x164aef,'model':_0x52ffd1[_0x2c99a9(0x26e)],'error':_0x2de73a[_0x2c99a9(0x211)]});throw _0x2de73a;}}async[a0_0x5afc88(0x1e6)](){const _0x50d16a=a0_0x5afc88;try{const _0x5ec81b=await this[_0x50d16a(0x1f3)]('/health',{},'health-check');return _0x5ec81b['status']==='healthy';}catch(_0x41c749){return![];}}async['switchAgentModel'](_0x34dd44,_0x4b9f0e){const _0x56988e=a0_0x5afc88;try{if(!this[_0x56988e(0x276)](_0x4b9f0e))throw new Error('Invalid\x20model:\x20'+_0x4b9f0e);let _0x405da3=this[_0x56988e(0x271)]['get'](_0x34dd44);!_0x405da3&&(_0x405da3=new ConversationManager(_0x34dd44,this['logger']),this['conversationManagers'][_0x56988e(0x22b)](_0x34dd44,_0x405da3));const _0x3f6988=await _0x405da3[_0x56988e(0x244)](_0x4b9f0e),_0x4fa37c=await this['agentPool']?.[_0x56988e(0x24a)](_0x34dd44);return _0x4fa37c&&(_0x4fa37c['currentModel']=_0x4b9f0e,await this[_0x56988e(0x1f8)]['persistAgentState'](_0x34dd44)),this['logger'][_0x56988e(0x1e7)]('Agent\x20model\x20switched:\x20'+_0x34dd44,{'newModel':_0x4b9f0e,'messageCount':_0x3f6988['messages'][_0x56988e(0x1f6)]}),{'success':!![],'agentId':_0x34dd44,'newModel':_0x4b9f0e,'conversation':_0x3f6988};}catch(_0x533db6){this[_0x56988e(0x1da)][_0x56988e(0x1df)]('Model\x20switch\x20failed:\x20'+_0x533db6[_0x56988e(0x202)],{'agentId':_0x34dd44,'newModel':_0x4b9f0e});throw _0x533db6;}}['_initializeModelSpecs'](){const _0x9a7e1e=a0_0x5afc88,_0x206776={[MODELS[_0x9a7e1e(0x1f5)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x9a7e1e(0x23a)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x9a7e1e(0x227)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x9a7e1e(0x209)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x9a7e1e(0x231)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x9a7e1e(0x1eb)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x9a7e1e(0x235),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x9a7e1e(0x235),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x9a7e1e(0x235),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x206776;}['_formatMessagesForModel'](_0x2575ba,_0x87b0ed,_0xfd74a4){const _0x5b9c85=a0_0x5afc88,_0x34119a=this['modelSpecs'][_0x87b0ed]||{'provider':'AZURE'};let _0x44af7f;typeof _0x2575ba===_0x5b9c85(0x26d)?_0x44af7f=[{'role':_0x5b9c85(0x1dc),'content':_0x2575ba}]:_0x44af7f=_0x2575ba['map'](_0x321ee9=>this['_formatSingleMessage'](_0x321ee9,_0x87b0ed));switch(_0x34119a[_0x5b9c85(0x200)]){case MODEL_PROVIDERS[_0x5b9c85(0x227)]:return this[_0x5b9c85(0x233)](_0x44af7f);case MODEL_PROVIDERS[_0x5b9c85(0x209)]:return this['_formatForOpenAI'](_0x44af7f);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x44af7f);default:return _0x44af7f;}}[a0_0x5afc88(0x1fa)](_0x36503a,_0x37d759){const _0x19110c=a0_0x5afc88;return{'role':_0x36503a[_0x19110c(0x273)]||_0x19110c(0x1dc),'content':_0x36503a['content'],'timestamp':_0x36503a['timestamp']};}[a0_0x5afc88(0x233)](_0x56be18){const _0xadec18=a0_0x5afc88;return _0x56be18[_0xadec18(0x201)](_0x232ce7=>{const _0x44845d=_0xadec18;if(_0x232ce7['role']==='system')return{'role':_0x44845d(0x1dc),'content':'System:\x20'+_0x232ce7['content']};return _0x232ce7;});}['_formatForOpenAI'](_0x26f806){return _0x26f806;}[a0_0x5afc88(0x236)](_0x1c7647){const _0x3b97f9=a0_0x5afc88;return _0x1c7647['map'](_0x1cd01a=>({..._0x1cd01a,'content':typeof _0x1cd01a[_0x3b97f9(0x25c)]==='string'?_0x1cd01a[_0x3b97f9(0x25c)]:JSON[_0x3b97f9(0x221)](_0x1cd01a[_0x3b97f9(0x25c)])}));}['_isValidModel'](_0x441bdf){const _0x3edb96=a0_0x5afc88;this['logger'][_0x3edb96(0x1f4)](_0x3edb96(0x251),{'model':_0x441bdf,'modelType':typeof _0x441bdf});if(this[_0x3edb96(0x22f)][_0x441bdf]!==undefined)return!![];return this['logger'][_0x3edb96(0x272)]('Model\x20validation\x20failed',{'model':_0x441bdf,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async[a0_0x5afc88(0x223)](_0xce4178){return!![];}async['_estimateTokens'](_0x1c0619,_0x1d82cd){const _0x2483f1=a0_0x5afc88;return Math[_0x2483f1(0x269)](_0x1c0619['length']/0x4);}async[a0_0x5afc88(0x24c)](_0x403784,_0x302050){const _0x605e9f=_0x302050*0x4;if(_0x403784['length']<=_0x605e9f)return _0x403784;return _0x403784['substring'](0x0,_0x605e9f-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x54b5c5,_0x237d53){const _0x3a9f73=a0_0x5afc88,_0x4c6e3f=_0x54b5c5['map'](_0x4c3cb2=>_0x4c3cb2[_0x3a9f73(0x273)]+':\x20'+_0x4c3cb2[_0x3a9f73(0x25c)])[_0x3a9f73(0x265)]('\x0a'),_0x1e8cd5=0x1f4;if(_0x4c6e3f['length']<=_0x1e8cd5)return _0x4c6e3f;return _0x4c6e3f[_0x3a9f73(0x210)](0x0,_0x1e8cd5)+_0x3a9f73(0x1dd);}async[a0_0x5afc88(0x1f3)](_0x1f4ff4,_0x4fdc33,_0x3ad3b0,_0x586753={}){const _0x38ff0d=a0_0x5afc88,_0x14aa94=_0x38ff0d(0x263);let _0x2a333c,_0x5e4c54=null,_0xf3a415=null;this['logger']?.[_0x38ff0d(0x1e7)](_0x38ff0d(0x21d),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x586753[_0x38ff0d(0x226)],'hasSessionId':!!_0x586753['sessionId'],'optionsKeys':Object['keys'](_0x586753),'model':_0x4fdc33['model']});if(this[_0x38ff0d(0x266)]&&_0x586753[_0x38ff0d(0x226)]){const _0x3c2f5a=this['apiKeyManager'][_0x38ff0d(0x21e)](_0x586753['sessionId'],{'platformProvided':_0x586753['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x4fdc33[_0x38ff0d(0x26e)])});_0x5e4c54=_0x3c2f5a['loxiaApiKey'],_0xf3a415=_0x3c2f5a['vendorApiKey'],this[_0x38ff0d(0x1da)]?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x586753[_0x38ff0d(0x226)],'hasLoxiaKey':!!_0x5e4c54,'hasVendorKey':!!_0xf3a415,'vendor':this['_getVendorFromModel'](_0x4fdc33['model'])});}!_0x5e4c54&&_0x586753['apiKey']&&(_0x5e4c54=_0x586753[_0x38ff0d(0x20b)]);!_0x5e4c54&&this[_0x38ff0d(0x247)][_0x38ff0d(0x20b)]&&(_0x5e4c54=this[_0x38ff0d(0x247)]['apiKey']);if(!_0x5e4c54)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x118e42=_0x4fdc33[_0x38ff0d(0x26e)],_0x4ea0a0={'conversationId':_0x3ad3b0,'message':_0x4fdc33[_0x38ff0d(0x23b)][_0x4fdc33['messages'][_0x38ff0d(0x1f6)]-0x1]?.['content']||'','messages':_0x4fdc33['messages'],'model':_0x118e42,'requestId':_0x3ad3b0,'options':_0x4fdc33[_0x38ff0d(0x21f)]||{},'platformProvided':_0x586753['platformProvided']||![]};_0x4fdc33[_0x38ff0d(0x241)]&&(_0x4ea0a0['systemPrompt']=_0x4fdc33[_0x38ff0d(0x241)]);_0x586753['platformProvided']?_0x4ea0a0[_0x38ff0d(0x20b)]=_0x5e4c54:(_0xf3a415&&(_0x4ea0a0['vendorApiKey']=_0xf3a415),_0x586753[_0x38ff0d(0x1fe)]&&(_0x4ea0a0[_0x38ff0d(0x1fe)]=_0x586753['customApiKeys']),_0x4ea0a0['apiKey']=_0x5e4c54);for(let _0x21d61c=0x1;_0x21d61c<=this['retryAttempts'];_0x21d61c++){try{this['logger'][_0x38ff0d(0x1e7)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x14aa94,'model':_0x4fdc33['model'],'requestId':_0x3ad3b0,'attempt':_0x21d61c,'hasApiKey':!!_0x5e4c54});const _0x46f4a9=await fetch(_0x14aa94,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x38ff0d(0x1ef)+_0x5e4c54,'X-Request-ID':_0x3ad3b0},'body':JSON['stringify'](_0x4ea0a0),'timeout':this['timeout']});if(!_0x46f4a9['ok']){const _0x5808ae=await _0x46f4a9[_0x38ff0d(0x1ff)](),_0x2f6a18=new Error('HTTP\x20'+_0x46f4a9['status']+':\x20'+_0x46f4a9['statusText']+(_0x5808ae?'\x20-\x20'+_0x5808ae:''));_0x2f6a18['status']=_0x46f4a9['status'];throw _0x2f6a18;}const _0x38fb8b=await _0x46f4a9[_0x38ff0d(0x240)]();return{'choices':[{'message':{'content':_0x38fb8b['content']||'','role':_0x38ff0d(0x21b)},'finish_reason':_0x38fb8b[_0x38ff0d(0x1f7)]||_0x38ff0d(0x208)}],'usage':_0x38fb8b['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x38fb8b[_0x38ff0d(0x26e)]||_0x4fdc33[_0x38ff0d(0x26e)],'id':_0x38fb8b['requestId']||_0x3ad3b0};}catch(_0x18c7d8){_0x2a333c=_0x18c7d8,this['logger'][_0x38ff0d(0x272)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x21d61c,'requestId':_0x3ad3b0,'error':_0x18c7d8['message'],'status':_0x18c7d8['status']});if(_0x21d61c<this['retryAttempts']){const _0x2481d8=Math[_0x38ff0d(0x217)](0x2,_0x21d61c)*0x3e8;this['logger']['warn']('Retrying\x20in\x20'+_0x2481d8+'ms',{'attempt':_0x21d61c,'requestId':_0x3ad3b0}),await new Promise(_0x164822=>setTimeout(_0x164822,_0x2481d8));}}}this[_0x38ff0d(0x1da)][_0x38ff0d(0x1df)](_0x38ff0d(0x260),{'requestId':_0x3ad3b0,'error':_0x2a333c[_0x38ff0d(0x202)]});const _0x4a6f69=_0x2a333c[_0x38ff0d(0x202)]&&_0x2a333c['message'][_0x38ff0d(0x277)]('No\x20API\x20key\x20configured');if(_0x4a6f69)throw new Error('API\x20Configuration\x20Error:\x20'+_0x2a333c[_0x38ff0d(0x202)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x2a333c['message'],'role':_0x38ff0d(0x21b)},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4fdc33[_0x38ff0d(0x26e)],'id':_0x38ff0d(0x1f0)+_0x3ad3b0,'error':_0x2a333c[_0x38ff0d(0x202)]};}async['_makeImageAPIRequest'](_0x1f0963,_0x47b251,_0x4b42f9={}){const _0xb90af3=a0_0x5afc88,_0x313197='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x197ced,_0x598e3b=null,_0x52fe2c=null;this[_0xb90af3(0x1da)]?.['info'](_0xb90af3(0x1e5),{'hasApiKeyManager':!!this[_0xb90af3(0x266)],'sessionId':_0x4b42f9[_0xb90af3(0x226)],'hasSessionId':!!_0x4b42f9[_0xb90af3(0x226)],'model':_0x1f0963['model']});if(this[_0xb90af3(0x266)]&&_0x4b42f9[_0xb90af3(0x226)]){const _0x426a04=this[_0xb90af3(0x266)]['getKeysForRequest'](_0x4b42f9['sessionId'],{'platformProvided':_0x4b42f9[_0xb90af3(0x1fd)]||![],'vendor':this[_0xb90af3(0x222)](_0x1f0963[_0xb90af3(0x26e)])});_0x598e3b=_0x426a04['loxiaApiKey'],_0x52fe2c=_0x426a04['vendorApiKey'],this[_0xb90af3(0x1da)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x4b42f9[_0xb90af3(0x226)],'hasLoxiaKey':!!_0x598e3b,'hasVendorKey':!!_0x52fe2c});}!_0x598e3b&&_0x4b42f9[_0xb90af3(0x20b)]&&(_0x598e3b=_0x4b42f9[_0xb90af3(0x20b)]);!_0x598e3b&&this[_0xb90af3(0x247)][_0xb90af3(0x20b)]&&(_0x598e3b=this[_0xb90af3(0x247)][_0xb90af3(0x20b)]);if(!_0x598e3b)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x341cd8={'prompt':_0x1f0963[_0xb90af3(0x268)],'model':_0x1f0963[_0xb90af3(0x26e)]||'azure-openai-dalle3','size':_0x1f0963['size'],'quality':_0x1f0963[_0xb90af3(0x1ee)],'style':_0x1f0963[_0xb90af3(0x24b)]||_0xb90af3(0x22c),'n':_0x1f0963['n']||0x1,'requestId':_0x47b251};for(let _0x2a3a9f=0x1;_0x2a3a9f<=this[_0xb90af3(0x229)];_0x2a3a9f++){try{this['logger']['info']('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x313197,'model':_0x1f0963[_0xb90af3(0x26e)],'requestId':_0x47b251,'attempt':_0x2a3a9f,'hasApiKey':!!_0x598e3b});const _0x1859d4=await fetch(_0x313197,{'method':_0xb90af3(0x23d),'headers':{'Content-Type':_0xb90af3(0x20a),'Authorization':'Bearer\x20'+_0x598e3b,'X-Request-ID':_0x47b251},'body':JSON['stringify'](_0x341cd8),'timeout':this['timeout']*0x2});if(!_0x1859d4['ok']){const _0x3ea75b=await _0x1859d4['text'](),_0xb6786f=new Error(_0xb90af3(0x219)+_0x1859d4['status']+':\x20'+_0x1859d4[_0xb90af3(0x21a)]+(_0x3ea75b?_0xb90af3(0x255)+_0x3ea75b:''));_0xb6786f['status']=_0x1859d4['status'];throw _0xb6786f;}const _0xdccc58=await _0x1859d4['json']();return{'data':_0xdccc58[_0xb90af3(0x254)]||[],'model':_0xdccc58[_0xb90af3(0x26e)]||_0x1f0963['model'],'created':_0xdccc58['created']||Date[_0xb90af3(0x215)](),'usage':_0xdccc58['usage']};}catch(_0x4d5dbb){_0x197ced=_0x4d5dbb,this[_0xb90af3(0x1da)]['warn']('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x2a3a9f,'requestId':_0x47b251,'error':_0x4d5dbb['message'],'status':_0x4d5dbb['status']});if(_0x2a3a9f<this[_0xb90af3(0x229)]){const _0x2e0052=Math['pow'](0x2,_0x2a3a9f)*0x3e8;this['logger']['warn']('Retrying\x20in\x20'+_0x2e0052+'ms',{'attempt':_0x2a3a9f,'requestId':_0x47b251}),await new Promise(_0x45f6ca=>setTimeout(_0x45f6ca,_0x2e0052));}}}this[_0xb90af3(0x1da)][_0xb90af3(0x1df)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x47b251,'error':_0x197ced['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x197ced['message']);}async['_checkRateLimit'](_0x3647f2){await new Promise(_0x1cc084=>setTimeout(_0x1cc084,0x64));}async['_handleRateLimit'](_0x280e6c){const _0x341a48=0xea60;this['logger']['info']('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x341a48+'ms',_0x280e6c),await new Promise(_0x40d022=>setTimeout(_0x40d022,_0x341a48));}async[a0_0x5afc88(0x250)](_0x462e77){const _0x369144=a0_0x5afc88;this[_0x369144(0x248)]();const _0x718848=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x718848+'ms',_0x462e77),await new Promise(_0x418570=>setTimeout(_0x418570,_0x718848));}[a0_0x5afc88(0x207)](){const _0x4a8fd6=a0_0x5afc88;if(!this[_0x4a8fd6(0x26f)][_0x4a8fd6(0x205)])return![];const _0x1bfabd=Date[_0x4a8fd6(0x215)]()-this['circuitBreaker']['lastFailureTime'];if(_0x1bfabd>this['circuitBreaker'][_0x4a8fd6(0x1e1)])return this[_0x4a8fd6(0x26f)]['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x52d1eb=a0_0x5afc88;this[_0x52d1eb(0x26f)][_0x52d1eb(0x23f)]++,this[_0x52d1eb(0x26f)][_0x52d1eb(0x234)]=Date[_0x52d1eb(0x215)](),this['circuitBreaker'][_0x52d1eb(0x23f)]>=this['circuitBreaker']['threshold']&&(this[_0x52d1eb(0x26f)][_0x52d1eb(0x205)]=!![],this['logger'][_0x52d1eb(0x272)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}['_resetCircuitBreaker'](){const _0x547d8a=a0_0x5afc88;this['circuitBreaker'][_0x547d8a(0x23f)]>0x0&&(this['circuitBreaker']['failures']=0x0,this[_0x547d8a(0x26f)]['isOpen']=![],this[_0x547d8a(0x1da)][_0x547d8a(0x1e7)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x43931f){const _0x9016e2=a0_0x5afc88;if(!_0x43931f)return null;const _0x3c40a3=_0x43931f['toLowerCase']();if(_0x3c40a3['includes']('anthropic')||_0x3c40a3['includes'](_0x9016e2(0x20d)))return'anthropic';else{if(_0x3c40a3[_0x9016e2(0x277)](_0x9016e2(0x1fc))||_0x3c40a3['includes'](_0x9016e2(0x25a)))return'openai';else{if(_0x3c40a3['includes'](_0x9016e2(0x23e)))return _0x9016e2(0x23e);else{if(_0x3c40a3['includes']('phi'))return _0x9016e2(0x22e);}}}return null;}}class ConversationManager{constructor(_0x474eba,_0x2e49eb){const _0x1fd47c=a0_0x5afc88;this[_0x1fd47c(0x1e3)]=_0x474eba,this[_0x1fd47c(0x1da)]=_0x2e49eb,this[_0x1fd47c(0x25d)]=new Map();}async['switchModel'](_0xc68616){const _0x4a0472=a0_0x5afc88;return{'messages':[],'model':_0xc68616,'lastUpdated':new Date()[_0x4a0472(0x225)]()};}}export default AIService;
@@ -1 +1 @@
1
- function a0_0x13ba(){const _0x3d099d=['mu9IuKfAyW','C2vZC2LVBKTLExm','z2v0u2vZC2LVBKTLExm','z2v0qwn0AxzLu2vZC2LVBNm','zM9YrwfJAa','nZK0mJC2DuDSwLbK','CMvTB3zLu2vZC2LVBKTLExm','DMvUzg9Y','ntaXotm5nK9Rt3bgwG','mZC2mdm5m0DtD0feyG','DxbKyxrLzef0','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','BM93','ntaZnJCYnxf3u0jeEq','C2v0r2XVyMfSs2v5CW','mJa0mtm3nNjns0DmDG','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','z2v0','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','Bg9Nz2vY','DMvUzg9Ys2v5CW','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','z2XVyMfSs2v5CW','Dg9ju09tDhjPBMC','A2v5CW','odDbu3jzwMW','mZzqvxDHz2y','zw50CMLLCW','Aw5MBW','mtm0nZG4twTyuuzJ','Bg94AwfbCgLlzxK','ChvZAa','mtq3odm3mdbmEfDdyvK','zNjVBq','zgvSzxrL','CgXHDgzVCM1qCM92AwrLza','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW'];a0_0x13ba=function(){return _0x3d099d;};return a0_0x13ba();}const a0_0x19c439=a0_0x5695;function a0_0x5695(_0x146438,_0x2b6aee){_0x146438=_0x146438-0x68;const _0x13bad8=a0_0x13ba();let _0x569521=_0x13bad8[_0x146438];if(a0_0x5695['pcRmHF']===undefined){var _0x2774ce=function(_0x55c67c){const _0xcbe78a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1595b7='',_0x6d5402='';for(let _0x24e253=0x0,_0x5e80ae,_0x5c9da1,_0x23c824=0x0;_0x5c9da1=_0x55c67c['charAt'](_0x23c824++);~_0x5c9da1&&(_0x5e80ae=_0x24e253%0x4?_0x5e80ae*0x40+_0x5c9da1:_0x5c9da1,_0x24e253++%0x4)?_0x1595b7+=String['fromCharCode'](0xff&_0x5e80ae>>(-0x2*_0x24e253&0x6)):0x0){_0x5c9da1=_0xcbe78a['indexOf'](_0x5c9da1);}for(let _0x2550dc=0x0,_0x140c8f=_0x1595b7['length'];_0x2550dc<_0x140c8f;_0x2550dc++){_0x6d5402+='%'+('00'+_0x1595b7['charCodeAt'](_0x2550dc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x6d5402);};a0_0x5695['APLebj']=_0x2774ce,a0_0x5695['YfHOlc']={},a0_0x5695['pcRmHF']=!![];}const _0x22c167=_0x13bad8[0x0],_0x3cd890=_0x146438+_0x22c167,_0x5d0b94=a0_0x5695['YfHOlc'][_0x3cd890];return!_0x5d0b94?(_0x569521=a0_0x5695['APLebj'](_0x569521),a0_0x5695['YfHOlc'][_0x3cd890]=_0x569521):_0x569521=_0x5d0b94,_0x569521;}(function(_0x16ad37,_0x262400){const _0x2b2f96=a0_0x5695,_0x14dbab=_0x16ad37();while(!![]){try{const _0x1a5e88=parseInt(_0x2b2f96(0x6f))/0x1*(parseInt(_0x2b2f96(0x74))/0x2)+parseInt(_0x2b2f96(0x88))/0x3*(parseInt(_0x2b2f96(0x8c))/0x4)+-parseInt(_0x2b2f96(0x7c))/0x5+-parseInt(_0x2b2f96(0x77))/0x6+parseInt(_0x2b2f96(0x78))/0x7+parseInt(_0x2b2f96(0x7e))/0x8*(-parseInt(_0x2b2f96(0x89))/0x9)+parseInt(_0x2b2f96(0x6a))/0xa;if(_0x1a5e88===_0x262400)break;else _0x14dbab['push'](_0x14dbab['shift']());}catch(_0x3c1478){_0x14dbab['push'](_0x14dbab['shift']());}}}(a0_0x13ba,0x80409));class ApiKeyManager{constructor(_0x1595b7){const _0x74a8e1=a0_0x5695;this['logger']=_0x1595b7,this['sessionKeys']=new Map(),this[_0x74a8e1(0x85)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x6d5402,_0x24e253){const _0x208ed8=a0_0x5695;if(!_0x6d5402)throw new Error(_0x208ed8(0x7f));this['sessionKeys']['set'](_0x6d5402,{'loxiaApiKey':_0x24e253['loxiaApiKey']||null,'vendorKeys':_0x24e253['vendorKeys']||{},'updatedAt':new Date()[_0x208ed8(0x86)]()}),this[_0x208ed8(0x82)]?.[_0x208ed8(0x8b)](_0x208ed8(0x81),{'sessionId':_0x6d5402,'hasLoxiaKey':!!_0x24e253['loxiaApiKey'],'vendorKeys':Object['keys'](_0x24e253[_0x208ed8(0x83)]||{}),'timestamp':new Date()[_0x208ed8(0x86)]()});}['getSessionKeys'](_0x5e80ae){const _0x8119f1=a0_0x5695;if(!_0x5e80ae)return this[_0x8119f1(0x85)];const _0x5c9da1=this[_0x8119f1(0x70)][_0x8119f1(0x80)](_0x5e80ae);if(_0x5c9da1)return _0x5c9da1;return this['globalKeys'];}['getKeysForRequest'](_0x23c824,_0x2550dc={}){const _0x5353b3=a0_0x5695,_0x140c8f=this[_0x5353b3(0x71)](_0x23c824),_0x5da8b8={'loxiaApiKey':_0x140c8f[_0x5353b3(0x68)],'vendorApiKey':null};return!_0x2550dc[_0x5353b3(0x6d)]&&_0x2550dc[_0x5353b3(0x76)]&&_0x140c8f[_0x5353b3(0x83)]&&(_0x5da8b8['vendorApiKey']=_0x140c8f['vendorKeys'][_0x2550dc['vendor']]),_0x5da8b8;}[a0_0x19c439(0x75)](_0x52a19d){const _0x58382b=a0_0x19c439;if(this[_0x58382b(0x70)]['delete'](_0x52a19d))return this['logger']?.['info'](_0x58382b(0x7a),{'sessionId':_0x52a19d}),!![];return![];}[a0_0x19c439(0x7d)](_0x308c8e){const _0x24e0f6=a0_0x19c439;this[_0x24e0f6(0x85)]={'loxiaApiKey':_0x308c8e['loxiaApiKey']||this['globalKeys'][_0x24e0f6(0x68)],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x308c8e[_0x24e0f6(0x83)]||{}}},this[_0x24e0f6(0x82)]?.['info']('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this['globalKeys'][_0x24e0f6(0x68)],'vendorKeys':Object[_0x24e0f6(0x87)](this['globalKeys']['vendorKeys'])});}[a0_0x19c439(0x72)](){const _0x7b0546=a0_0x19c439;return Array[_0x7b0546(0x6b)](this[_0x7b0546(0x70)]['entries']())['map'](([_0x219246,_0x19604a])=>({'sessionId':_0x219246,'hasLoxiaKey':!!_0x19604a['loxiaApiKey'],'vendorKeys':Object['keys'](_0x19604a['vendorKeys']||{}),'updatedAt':_0x19604a[_0x7b0546(0x79)]}));}[a0_0x19c439(0x6e)](_0x439856=0x18*0x3c*0x3c*0x3e8){const _0xb980d1=a0_0x19c439,_0x1de088=Date[_0xb980d1(0x7b)](),_0x30ca03=[];for(const [_0x2f4199,_0x148af1]of this['sessionKeys'][_0xb980d1(0x8a)]()){const _0x3e9abd=_0x1de088-new Date(_0x148af1[_0xb980d1(0x79)])['getTime']();_0x3e9abd>_0x439856&&_0x30ca03[_0xb980d1(0x69)](_0x2f4199);}return _0x30ca03[_0xb980d1(0x73)](_0x5ccd81=>{const _0x5c38f6=_0xb980d1;this['sessionKeys'][_0x5c38f6(0x6c)](_0x5ccd81);}),_0x30ca03['length']>0x0&&this[_0xb980d1(0x82)]?.[_0xb980d1(0x8b)](_0xb980d1(0x84),{'expiredSessions':_0x30ca03['length'],'remainingSessions':this[_0xb980d1(0x70)]['size']}),_0x30ca03['length'];}}export default ApiKeyManager;
1
+ const a0_0x2ea83b=a0_0x4a72;(function(_0x6e6b9c,_0x2a00a5){const _0x400db4=a0_0x4a72,_0x578302=_0x6e6b9c();while(!![]){try{const _0x126512=-parseInt(_0x400db4(0x156))/0x1+parseInt(_0x400db4(0x13f))/0x2*(parseInt(_0x400db4(0x146))/0x3)+-parseInt(_0x400db4(0x143))/0x4*(parseInt(_0x400db4(0x15f))/0x5)+-parseInt(_0x400db4(0x15a))/0x6+-parseInt(_0x400db4(0x144))/0x7*(parseInt(_0x400db4(0x141))/0x8)+parseInt(_0x400db4(0x13e))/0x9+parseInt(_0x400db4(0x152))/0xa;if(_0x126512===_0x2a00a5)break;else _0x578302['push'](_0x578302['shift']());}catch(_0x217d3e){_0x578302['push'](_0x578302['shift']());}}}(a0_0x4410,0xc0145));class ApiKeyManager{constructor(_0x312428){const _0x81369b=a0_0x4a72;this[_0x81369b(0x158)]=_0x312428,this['sessionKeys']=new Map(),this[_0x81369b(0x14b)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x3591a8,_0x622113){const _0x24fe2c=a0_0x4a72;if(!_0x3591a8)throw new Error('Session\x20ID\x20is\x20required');this[_0x24fe2c(0x15d)]['set'](_0x3591a8,{'loxiaApiKey':_0x622113['loxiaApiKey']||null,'vendorKeys':_0x622113['vendorKeys']||{},'updatedAt':new Date()[_0x24fe2c(0x159)]()}),this['logger']?.['info'](_0x24fe2c(0x149),{'sessionId':_0x3591a8,'hasLoxiaKey':!!_0x622113['loxiaApiKey'],'vendorKeys':Object[_0x24fe2c(0x14c)](_0x622113[_0x24fe2c(0x157)]||{}),'timestamp':new Date()[_0x24fe2c(0x159)]()});}['getSessionKeys'](_0x4891d2){const _0x202671=a0_0x4a72;if(!_0x4891d2)return this['globalKeys'];const _0x1dfc24=this['sessionKeys'][_0x202671(0x154)](_0x4891d2);if(_0x1dfc24)return _0x1dfc24;return this['globalKeys'];}['getKeysForRequest'](_0x335bc5,_0x2c5395={}){const _0x4d1367=a0_0x4a72,_0x2fb4ca=this[_0x4d1367(0x15c)](_0x335bc5),_0x186a06={'loxiaApiKey':_0x2fb4ca[_0x4d1367(0x155)],'vendorApiKey':null};return!_0x2c5395['platformProvided']&&_0x2c5395[_0x4d1367(0x148)]&&_0x2fb4ca['vendorKeys']&&(_0x186a06['vendorApiKey']=_0x2fb4ca[_0x4d1367(0x157)][_0x2c5395['vendor']]),_0x186a06;}['removeSessionKeys'](_0x442d07){const _0x363d95=a0_0x4a72;if(this['sessionKeys'][_0x363d95(0x145)](_0x442d07))return this[_0x363d95(0x158)]?.[_0x363d95(0x15b)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x442d07}),!![];return![];}[a0_0x2ea83b(0x153)](_0x2f968b){const _0x3bf845=a0_0x2ea83b;this[_0x3bf845(0x14b)]={'loxiaApiKey':_0x2f968b[_0x3bf845(0x155)]||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x3bf845(0x157)],..._0x2f968b[_0x3bf845(0x157)]||{}}},this[_0x3bf845(0x158)]?.['info'](_0x3bf845(0x15e),{'hasLoxiaKey':!!this[_0x3bf845(0x14b)]['loxiaApiKey'],'vendorKeys':Object[_0x3bf845(0x14c)](this[_0x3bf845(0x14b)][_0x3bf845(0x157)])});}['getActiveSessions'](){const _0x27dd63=a0_0x2ea83b;return Array[_0x27dd63(0x140)](this[_0x27dd63(0x15d)]['entries']())[_0x27dd63(0x160)](([_0x570a0c,_0x56004b])=>({'sessionId':_0x570a0c,'hasLoxiaKey':!!_0x56004b['loxiaApiKey'],'vendorKeys':Object['keys'](_0x56004b[_0x27dd63(0x157)]||{}),'updatedAt':_0x56004b[_0x27dd63(0x14d)]}));}[a0_0x2ea83b(0x14f)](_0x52c998=0x18*0x3c*0x3c*0x3e8){const _0x2676aa=a0_0x2ea83b,_0x38f339=Date[_0x2676aa(0x14a)](),_0x335e4c=[];for(const [_0x34b28b,_0x4d615a]of this['sessionKeys']['entries']()){const _0x357feb=_0x38f339-new Date(_0x4d615a[_0x2676aa(0x14d)])[_0x2676aa(0x150)]();_0x357feb>_0x52c998&&_0x335e4c[_0x2676aa(0x151)](_0x34b28b);}return _0x335e4c[_0x2676aa(0x142)](_0x52398b=>{this['sessionKeys']['delete'](_0x52398b);}),_0x335e4c[_0x2676aa(0x147)]>0x0&&this['logger']?.['info']('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x335e4c[_0x2676aa(0x147)],'remainingSessions':this[_0x2676aa(0x15d)][_0x2676aa(0x14e)]}),_0x335e4c[_0x2676aa(0x147)];}}function a0_0x4a72(_0x149003,_0x399888){_0x149003=_0x149003-0x13e;const _0x44106d=a0_0x4410();let _0x4a72a2=_0x44106d[_0x149003];if(a0_0x4a72['tKGvqF']===undefined){var _0x150fab=function(_0x33fc76){const _0x22b4f2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x312428='',_0x3591a8='';for(let _0x622113=0x0,_0x4891d2,_0x1dfc24,_0x335bc5=0x0;_0x1dfc24=_0x33fc76['charAt'](_0x335bc5++);~_0x1dfc24&&(_0x4891d2=_0x622113%0x4?_0x4891d2*0x40+_0x1dfc24:_0x1dfc24,_0x622113++%0x4)?_0x312428+=String['fromCharCode'](0xff&_0x4891d2>>(-0x2*_0x622113&0x6)):0x0){_0x1dfc24=_0x22b4f2['indexOf'](_0x1dfc24);}for(let _0x2c5395=0x0,_0x2fb4ca=_0x312428['length'];_0x2c5395<_0x2fb4ca;_0x2c5395++){_0x3591a8+='%'+('00'+_0x312428['charCodeAt'](_0x2c5395)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3591a8);};a0_0x4a72['hxgphK']=_0x150fab,a0_0x4a72['wbFFEu']={},a0_0x4a72['tKGvqF']=!![];}const _0x5cc2c6=_0x44106d[0x0],_0x88251e=_0x149003+_0x5cc2c6,_0x698949=a0_0x4a72['wbFFEu'][_0x88251e];return!_0x698949?(_0x4a72a2=a0_0x4a72['hxgphK'](_0x4a72a2),a0_0x4a72['wbFFEu'][_0x88251e]=_0x4a72a2):_0x4a72a2=_0x698949,_0x4a72a2;}function a0_0x4410(){const _0x5da70c=['z2v0vgLTzq','ChvZAa','mZi0nde1nZbxDLbcsM8','C2v0r2XVyMfSs2v5CW','z2v0','Bg94AwfbCgLlzxK','mtaXmJaYmhjxsvDuyW','DMvUzg9Ys2v5CW','Bg9Nz2vY','Dg9ju09tDhjPBMC','mJe2odqYngD0C25qDq','Aw5MBW','z2v0u2vZC2LVBKTLExm','C2vZC2LVBKTLExm','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','nxHYDvjWrq','BwfW','mty5odG3nNnwCwrhuW','mte3nde2swXgqKrb','zNjVBq','mtGZmLDlD2z3zW','zM9YrwfJAa','mJK5mda4ngPIvePZtq','mJmYmZnnC05ftfK','zgvSzxrL','mtj4uwjTB3e','BgvUz3rO','DMvUzg9Y','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','BM93','z2XVyMfSs2v5CW','A2v5CW','DxbKyxrLzef0','C2L6zq','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW'];a0_0x4410=function(){return _0x5da70c;};return a0_0x4410();}export default ApiKeyManager;
@@ -1 +1 @@
1
- const a0_0x54c676=a0_0x12cf;(function(_0x28525a,_0x7d4ee0){const _0x306830=a0_0x12cf,_0x2aa104=_0x28525a();while(!![]){try{const _0x1bf92c=parseInt(_0x306830(0x1e7))/0x1+parseInt(_0x306830(0x1ed))/0x2*(-parseInt(_0x306830(0x20e))/0x3)+-parseInt(_0x306830(0x1e2))/0x4+-parseInt(_0x306830(0x1ec))/0x5+-parseInt(_0x306830(0x1f8))/0x6+parseInt(_0x306830(0x206))/0x7+-parseInt(_0x306830(0x1fb))/0x8*(-parseInt(_0x306830(0x1e0))/0x9);if(_0x1bf92c===_0x7d4ee0)break;else _0x2aa104['push'](_0x2aa104['shift']());}catch(_0x2b2c74){_0x2aa104['push'](_0x2aa104['shift']());}}}(a0_0x2740,0x616f2));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x4f9fe2,_0x57b13f){const _0xb44ccb=a0_0x12cf;this['config']=_0x4f9fe2,this[_0xb44ccb(0x1fd)]=_0x57b13f,this['benchmarks']=null,this['lastUpdated']=null,this[_0xb44ccb(0x210)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0xb44ccb(0x1fe)];}async[a0_0x54c676(0x1e9)](){const _0x1c3b37=a0_0x54c676;try{await this[_0x1c3b37(0x1f9)](),this['_scheduleRefresh'](),this[_0x1c3b37(0x1fd)]['info']('Benchmark\x20service\x20initialized');}catch(_0x299544){this['logger'][_0x1c3b37(0x208)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x299544['message']}),this[_0x1c3b37(0x1f5)]=null;}}['getBenchmarks'](){const _0x3ecc7e=a0_0x54c676;if(!this['benchmarks'])return this['logger']['error'](_0x3ecc7e(0x1fa),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async[a0_0x54c676(0x1f9)](){const _0x542dc4=a0_0x54c676;if(this['isLoading']){this[_0x542dc4(0x1fd)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this['isLoading']=!![];try{const _0x5f4a91=await this[_0x542dc4(0x207)]();if(_0x5f4a91)this['benchmarks']=_0x5f4a91,this[_0x542dc4(0x1e1)]=new Date(),this['logger'][_0x542dc4(0x1f1)]('Benchmarks loaded from Azure backend',{'modelCount':_0x5f4a91['models']?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x329bc3){this['logger'][_0x542dc4(0x208)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x329bc3[_0x542dc4(0x212)],'endpoint':url}),!this[_0x542dc4(0x1f5)]&&(this[_0x542dc4(0x1f5)]=null);}finally{this['isLoading']=![];}}[a0_0x54c676(0x1e4)](){const _0x4329a4=a0_0x54c676,_0x5e4966=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||_0x4329a4(0x1f3),'models':_0x5e4966['models']||[],'tasks':_0x5e4966['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x5e4966)};}[a0_0x54c676(0x1eb)](){const _0x10591d=a0_0x54c676;if(!this[_0x10591d(0x1e1)])return!![];const _0x47d58c=Date['now']()-this['lastUpdated'][_0x10591d(0x1f7)]();return _0x47d58c>this[_0x10591d(0x202)];}async[a0_0x54c676(0x207)](){const _0x1b39f7=a0_0x54c676,_0x1fbb9d=this['azureBackendUrl']+_0x1b39f7(0x1f6);let _0x10e7da=null;this[_0x1b39f7(0x1ea)]['apiKey']&&(_0x10e7da=this[_0x1b39f7(0x1ea)]['apiKey']);const _0x26c19b={'method':_0x1b39f7(0x1ef),'headers':{'Content-Type':'application/json',..._0x10e7da&&{'Authorization':_0x1b39f7(0x1fc)+_0x10e7da}},'timeout':0x2710};this[_0x1b39f7(0x1fd)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x1fbb9d});const _0x5f1ebe=await fetch(_0x1fbb9d,_0x26c19b);if(!_0x5f1ebe['ok'])throw new Error(_0x1b39f7(0x211)+_0x5f1ebe['status']+':\x20'+_0x5f1ebe[_0x1b39f7(0x205)]);const _0x24c896=await _0x5f1ebe[_0x1b39f7(0x200)]();return _0x24c896;}[a0_0x54c676(0x1ee)](_0x4df1f5){const _0x3bf770=a0_0x54c676,_0x342554=_0x4df1f5['models']||[];return{'totalModels':_0x342554[_0x3bf770(0x1f2)],'taskCategories':Object[_0x3bf770(0x20a)](_0x4df1f5['tasks']||{}),'bestForCoding':this[_0x3bf770(0x209)](_0x342554,'coding'),'bestForAnalysis':this[_0x3bf770(0x209)](_0x342554,_0x3bf770(0x201)),'bestForQuickTasks':this[_0x3bf770(0x209)](_0x342554,_0x3bf770(0x204)),'bestForCreative':this['_getBestModelForTask'](_0x342554,_0x3bf770(0x1e3)),'fastestModel':this['_getFastestModel'](_0x342554),'mostCostEfficient':this['_getMostCostEfficient'](_0x342554)};}['_getBestModelForTask'](_0x4ef701,_0x32dda4){const _0xc6ee9c=a0_0x54c676;return _0x4ef701['filter'](_0x13083b=>_0x13083b[_0xc6ee9c(0x20f)]&&_0x13083b['tasks'][_0x32dda4])['sort']((_0x48af96,_0x598ccc)=>(_0x598ccc[_0xc6ee9c(0x20f)][_0x32dda4]['score']||0x0)-(_0x48af96[_0xc6ee9c(0x20f)][_0x32dda4]['score']||0x0))[0x0]?.[_0xc6ee9c(0x1f0)]||_0xc6ee9c(0x1f3);}['_getFastestModel'](_0x580859){const _0x4d8096=a0_0x54c676,_0x4b6fff={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x580859['sort']((_0x51f4bb,_0x218ef7)=>{const _0x3bf6be=a0_0x12cf,_0x52c266=Math[_0x3bf6be(0x203)](...Object[_0x3bf6be(0x20c)](_0x51f4bb[_0x3bf6be(0x20f)]||{})['map'](_0x347044=>_0x4b6fff[_0x347044['speed']]||0x0)),_0x327bce=Math['max'](...Object[_0x3bf6be(0x20c)](_0x218ef7[_0x3bf6be(0x20f)]||{})[_0x3bf6be(0x1e6)](_0x42ff41=>_0x4b6fff[_0x42ff41['speed']]||0x0));return _0x327bce-_0x52c266;})[0x0]?.[_0x4d8096(0x1f0)]||_0x4d8096(0x1f3);}[a0_0x54c676(0x1f4)](_0x38836c){const _0x5b28d7={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x38836c['sort']((_0x5b8989,_0x4f5655)=>{const _0x32a2a2=a0_0x12cf,_0x481d1d=Math['max'](...Object[_0x32a2a2(0x20c)](_0x5b8989[_0x32a2a2(0x20f)]||{})['map'](_0x471055=>_0x5b28d7[_0x471055[_0x32a2a2(0x1ff)]]||0x0)),_0x30ed4b=Math[_0x32a2a2(0x203)](...Object[_0x32a2a2(0x20c)](_0x4f5655[_0x32a2a2(0x20f)]||{})['map'](_0x1bf833=>_0x5b28d7[_0x1bf833['cost']]||0x0));return _0x30ed4b-_0x481d1d;})[0x0]?.['name']||'unknown';}[a0_0x54c676(0x1e5)](){const _0x54ae54=a0_0x54c676;setInterval(async()=>{const _0x26f5c7=a0_0x12cf;this['needsRefresh']()&&(this['logger'][_0x26f5c7(0x1e8)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x54ae54(0x202)]);}async['forceRefresh'](){const _0x1a6708=a0_0x54c676;this['logger']['info'](_0x1a6708(0x20d)),await this['loadBenchmarks']();}[a0_0x54c676(0x20b)](){const _0x549abe=a0_0x54c676;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x549abe(0x213)]()||null,'source':this['benchmarks']?.[_0x549abe(0x1df)]||_0x549abe(0x1f3),'modelCount':this['benchmarks']?.['models']?.[_0x549abe(0x1f2)]||0x0,'isLoading':this['isLoading'],'needsRefresh':this[_0x549abe(0x1eb)]()};}}export default BenchmarkService;function a0_0x12cf(_0x50618e,_0x523f26){_0x50618e=_0x50618e-0x1df;const _0x27409d=a0_0x2740();let _0x12cf4e=_0x27409d[_0x50618e];if(a0_0x12cf['xXZQFD']===undefined){var _0x391ee5=function(_0x5332c4){const _0x566dcd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f9fe2='',_0x57b13f='';for(let _0x299544=0x0,_0x5f4a91,_0x329bc3,_0x5e4966=0x0;_0x329bc3=_0x5332c4['charAt'](_0x5e4966++);~_0x329bc3&&(_0x5f4a91=_0x299544%0x4?_0x5f4a91*0x40+_0x329bc3:_0x329bc3,_0x299544++%0x4)?_0x4f9fe2+=String['fromCharCode'](0xff&_0x5f4a91>>(-0x2*_0x299544&0x6)):0x0){_0x329bc3=_0x566dcd['indexOf'](_0x329bc3);}for(let _0x47d58c=0x0,_0x1fbb9d=_0x4f9fe2['length'];_0x47d58c<_0x1fbb9d;_0x47d58c++){_0x57b13f+='%'+('00'+_0x4f9fe2['charCodeAt'](_0x47d58c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x57b13f);};a0_0x12cf['vVpOVS']=_0x391ee5,a0_0x12cf['hsHJnT']={},a0_0x12cf['xXZQFD']=!![];}const _0x1040d1=_0x27409d[0x0],_0x139bb2=_0x50618e+_0x1040d1,_0xd5cbca=a0_0x12cf['hsHJnT'][_0x139bb2];return!_0xd5cbca?(_0x12cf4e=a0_0x12cf['vVpOVS'](_0x12cf4e),a0_0x12cf['hsHJnT'][_0x139bb2]=_0x12cf4e):_0x12cf4e=_0xd5cbca,_0x12cf4e;}function a0_0x2740(){const _0xe8b9c8=['BMfTzq','Aw5MBW','BgvUz3rO','Dw5RBM93BG','x2DLDe1VC3rdB3n0rwzMAwnPzw50','yMvUy2HTyxjRCW','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','z2v0vgLTzq','mJqYnJq5nLr2rxnssa','Bg9HzejLBMnOBwfYA3m','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','nZq1nZy4DuLWCgjn','qMvHCMvYia','Bg9Nz2vY','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','y29ZDa','ANnVBG','yw5HBhLZAxm','CMvMCMvZAeLUDgvYDMfS','Bwf4','CxvPy2STDgfZA3m','C3rHDhvZvgv4Da','ndG0nZGYoxDethvAyW','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','zxjYB3i','x2DLDejLC3rnB2rLBezVCLrHC2S','A2v5CW','z2v0u3rHDhvZ','DMfSDwvZ','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','nZa1D2Tur3Lb','DgfZA3m','AxnmB2fKAw5N','sfruuca','BwvZC2fNzq','Dg9ju09tDhjPBMC','C291CMnL','otbVz3PmuwG','BgfZDfvWzgf0zwq','mJy4mJCYmg9Aq0HpsW','y3jLyxrPDMu','z2v0qMvUy2HTyxjRvgfIBgu','x3nJAgvKDwXLuMvMCMvZAa','BwfW','nZmXnde0t0zHCLnV','zgvIDwC','Aw5PDgLHBgL6zq','y29UzMLN','BMvLzhnszwzYzxnO','mJy2nZqWmhbctuPirW','mJK2nLHxwuncuG','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','r0vu'];a0_0x2740=function(){return _0xe8b9c8;};return a0_0x2740();}
1
+ function a0_0x2b83(){const _0xfef3b0=['ntqYndGWnhjPCfHzEa','BwfW','zxjYB3i','qMvHCMvYia','Bg9Nz2vY','BwvZC2fNzq','ndG3mZK2nwzYCwnjqq','nZbeEfbnDxi','x2DLDe1VC3rdB3n0rwzMAwnPzw50','BgvUz3rO','BMvLzhnszwzYzxnO','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','m0XpAKnXwG','Bw9KzwXZ','mZvPDu1zCKG','DMfSDwvZ','mtmZmJG5mwfTuwzHDG','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','y3jLyxrPDMu','z2v0u3rHDhvZ','x3nJAgvKDwXLuMvMCMvZAa','x2DLDezHC3rLC3rnB2rLBa','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','C3bLzwq','CMvMCMvZAeLUDgvYDMfS','z2v0vgLTzq','Bg9HzejLBMnOBwfYA3m','BgfZDfvWzgf0zwq','C29YDa','ngDWCuT2ua','DgfZA3m','mtyZntaXnMPVy0niwq','Bwf4','zgvIDwC','mte2otK4nKLUCNDoAG','Aw5MBW','mJu0nda2oufgwuHkCG','sfruuca','C291CMnL','Dw5RBM93BG','yxbPs2v5','x2DLDejLC3rnB2rLBezVCLrHC2S','AxnmB2fKAw5N','yMvUy2HTyxjRCW','nJyWmdGWBhrHA2DZ','zM9Yy2vszwzYzxnO','C3rHDhvZvgv4Da','Dg9ju09tDhjPBMC','C2nVCMu','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza'];a0_0x2b83=function(){return _0xfef3b0;};return a0_0x2b83();}const a0_0x4c5909=a0_0x1b9b;(function(_0x470619,_0x4f3132){const _0x1d14da=a0_0x1b9b,_0x449f5a=_0x470619();while(!![]){try{const _0x2ff847=parseInt(_0x1d14da(0x158))/0x1+-parseInt(_0x1d14da(0x14e))/0x2*(parseInt(_0x1d14da(0x16a))/0x3)+-parseInt(_0x1d14da(0x17b))/0x4*(parseInt(_0x1d14da(0x164))/0x5)+-parseInt(_0x1d14da(0x15e))/0x6+parseInt(_0x1d14da(0x16c))/0x7*(parseInt(_0x1d14da(0x14b))/0x8)+-parseInt(_0x1d14da(0x16e))/0x9+-parseInt(_0x1d14da(0x165))/0xa*(-parseInt(_0x1d14da(0x150))/0xb);if(_0x2ff847===_0x4f3132)break;else _0x449f5a['push'](_0x449f5a['shift']());}catch(_0xf1753){_0x449f5a['push'](_0x449f5a['shift']());}}}(a0_0x2b83,0xa8303));function a0_0x1b9b(_0xae7c10,_0x1d47cb){_0xae7c10=_0xae7c10-0x14a;const _0x2b8343=a0_0x2b83();let _0x1b9b1=_0x2b8343[_0xae7c10];if(a0_0x1b9b['QaKLsY']===undefined){var _0x33f932=function(_0x59a745){const _0x33c355='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x13d183='',_0x121e3d='';for(let _0x5ab0eb=0x0,_0x58ee88,_0x4447aa,_0x1d1fa7=0x0;_0x4447aa=_0x59a745['charAt'](_0x1d1fa7++);~_0x4447aa&&(_0x58ee88=_0x5ab0eb%0x4?_0x58ee88*0x40+_0x4447aa:_0x4447aa,_0x5ab0eb++%0x4)?_0x13d183+=String['fromCharCode'](0xff&_0x58ee88>>(-0x2*_0x5ab0eb&0x6)):0x0){_0x4447aa=_0x33c355['indexOf'](_0x4447aa);}for(let _0x560b54=0x0,_0x336b0c=_0x13d183['length'];_0x560b54<_0x336b0c;_0x560b54++){_0x121e3d+='%'+('00'+_0x13d183['charCodeAt'](_0x560b54)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x121e3d);};a0_0x1b9b['XJijbs']=_0x33f932,a0_0x1b9b['IYWNme']={},a0_0x1b9b['QaKLsY']=!![];}const _0x3a735b=_0x2b8343[0x0],_0x7de72d=_0xae7c10+_0x3a735b,_0x132753=a0_0x1b9b['IYWNme'][_0x7de72d];return!_0x132753?(_0x1b9b1=a0_0x1b9b['XJijbs'](_0x1b9b1),a0_0x1b9b['IYWNme'][_0x7de72d]=_0x1b9b1):_0x1b9b1=_0x132753,_0x1b9b1;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x13d183,_0x121e3d){const _0x2a2e74=a0_0x1b9b;this['config']=_0x13d183,this['logger']=_0x121e3d,this['benchmarks']=null,this[_0x2a2e74(0x179)]=null,this[_0x2a2e74(0x156)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async['initialize'](){const _0x3ffa59=a0_0x1b9b;try{await this[_0x3ffa59(0x178)](),this[_0x3ffa59(0x172)](),this[_0x3ffa59(0x162)][_0x3ffa59(0x14f)](_0x3ffa59(0x169));}catch(_0x5ab0eb){this[_0x3ffa59(0x162)]['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x5ab0eb[_0x3ffa59(0x163)]}),this['benchmarks']=null;}}['getBenchmarks'](){const _0x434207=a0_0x1b9b;if(!this[_0x434207(0x157)])return this['logger']['error']('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async[a0_0x4c5909(0x178)](){const _0x3ea7ae=a0_0x4c5909;if(this['isLoading']){this['logger']['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this['isLoading']=!![];try{const _0x58ee88=await this['_fetchFromAzureBackend']();if(_0x58ee88)this['benchmarks']=_0x58ee88,this[_0x3ea7ae(0x179)]=new Date(),this[_0x3ea7ae(0x162)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x58ee88['models']?.[_0x3ea7ae(0x167)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x4447aa){this['logger'][_0x3ea7ae(0x160)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x4447aa['message'],'endpoint':url}),!this[_0x3ea7ae(0x157)]&&(this['benchmarks']=null);}finally{this[_0x3ea7ae(0x156)]=![];}}['getBenchmarkTable'](){const _0x45ab13=a0_0x4c5909,_0x1d1fa7=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.[_0x45ab13(0x15b)]()||_0x45ab13(0x153),'models':_0x1d1fa7['models']||[],'tasks':_0x1d1fa7[_0x45ab13(0x14a)]||{},'summary':this['_generateBenchmarkSummary'](_0x1d1fa7)};}[a0_0x4c5909(0x168)](){const _0x159cf9=a0_0x4c5909;if(!this[_0x159cf9(0x179)])return!![];const _0x560b54=Date['now']()-this[_0x159cf9(0x179)][_0x159cf9(0x177)]();return _0x560b54>this['refreshInterval'];}async[a0_0x4c5909(0x15d)](){const _0x91b592=a0_0x4c5909,_0x336b0c=this['azureBackendUrl']+_0x91b592(0x16f);let _0x40f8f0=null;this['config'][_0x91b592(0x154)]&&(_0x40f8f0=this['config']['apiKey']);const _0x1d67fc={'method':'GET','headers':{'Content-Type':'application/json',..._0x40f8f0&&{'Authorization':_0x91b592(0x161)+_0x40f8f0}},'timeout':0x2710};this[_0x91b592(0x162)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x336b0c});const _0x520501=await fetch(_0x336b0c,_0x1d67fc);if(!_0x520501['ok'])throw new Error(_0x91b592(0x151)+_0x520501['status']+':\x20'+_0x520501[_0x91b592(0x15a)]);const _0x20362c=await _0x520501['json']();return _0x20362c;}['_generateBenchmarkSummary'](_0x1f15cd){const _0x10f8f6=a0_0x4c5909,_0x155c61=_0x1f15cd[_0x10f8f6(0x16b)]||[];return{'totalModels':_0x155c61[_0x10f8f6(0x167)],'taskCategories':Object['keys'](_0x1f15cd['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x155c61,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x155c61,'analysis'),'bestForQuickTasks':this['_getBestModelForTask'](_0x155c61,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x155c61,_0x10f8f6(0x170)),'fastestModel':this[_0x10f8f6(0x173)](_0x155c61),'mostCostEfficient':this[_0x10f8f6(0x166)](_0x155c61)};}[a0_0x4c5909(0x155)](_0x176042,_0x1ef47b){const _0x20a0f6=a0_0x4c5909;return _0x176042['filter'](_0x5164f2=>_0x5164f2['tasks']&&_0x5164f2['tasks'][_0x1ef47b])['sort']((_0x25bcf1,_0x42af5e)=>(_0x42af5e[_0x20a0f6(0x14a)][_0x1ef47b][_0x20a0f6(0x15c)]||0x0)-(_0x25bcf1['tasks'][_0x1ef47b]['score']||0x0))[0x0]?.['name']||_0x20a0f6(0x153);}['_getFastestModel'](_0x397c44){const _0x2f56e4=a0_0x4c5909,_0x2ed47d={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x397c44['sort']((_0x1d113e,_0x1c5119)=>{const _0x5d66=a0_0x1b9b,_0x1fe46a=Math[_0x5d66(0x14c)](...Object['values'](_0x1d113e[_0x5d66(0x14a)]||{})[_0x5d66(0x15f)](_0x58530b=>_0x2ed47d[_0x58530b[_0x5d66(0x175)]]||0x0)),_0x4207b3=Math['max'](...Object['values'](_0x1c5119['tasks']||{})[_0x5d66(0x15f)](_0x479793=>_0x2ed47d[_0x479793['speed']]||0x0));return _0x4207b3-_0x1fe46a;})[0x0]?.['name']||_0x2f56e4(0x153);}['_getMostCostEfficient'](_0x236a9d){const _0x1ba377=a0_0x4c5909,_0x25cd3f={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x236a9d[_0x1ba377(0x17a)]((_0x333c1e,_0x1312b1)=>{const _0x5a72b2=_0x1ba377,_0x2adcd7=Math[_0x5a72b2(0x14c)](...Object['values'](_0x333c1e['tasks']||{})['map'](_0x2545d1=>_0x25cd3f[_0x2545d1['cost']]||0x0)),_0x5b8ae6=Math['max'](...Object[_0x5a72b2(0x16d)](_0x1312b1['tasks']||{})['map'](_0x5cfe19=>_0x25cd3f[_0x5cfe19['cost']]||0x0));return _0x5b8ae6-_0x2adcd7;})[0x0]?.['name']||'unknown';}[a0_0x4c5909(0x172)](){const _0x349a0b=a0_0x4c5909;setInterval(async()=>{const _0x35d923=a0_0x1b9b;this[_0x35d923(0x168)]()&&(this[_0x35d923(0x162)][_0x35d923(0x14d)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x349a0b(0x176)]);}async[a0_0x4c5909(0x159)](){const _0x33814=a0_0x4c5909;this[_0x33814(0x162)]['info'](_0x33814(0x174)),await this['loadBenchmarks']();}[a0_0x4c5909(0x171)](){const _0x21d4e5=a0_0x4c5909;return{'initialized':!!this[_0x21d4e5(0x157)],'lastUpdated':this['lastUpdated']?.['toISOString']()||null,'source':this['benchmarks']?.[_0x21d4e5(0x152)]||_0x21d4e5(0x153),'modelCount':this['benchmarks']?.['models']?.['length']||0x0,'isLoading':this[_0x21d4e5(0x156)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
@@ -1 +1 @@
1
- function a0_0xc992(_0x1d1ad0,_0x1fd5d4){_0x1d1ad0=_0x1d1ad0-0x1a1;const _0x3de347=a0_0x3de3();let _0xc9920c=_0x3de347[_0x1d1ad0];if(a0_0xc992['RgMthS']===undefined){var _0x3c1e05=function(_0x53f4ed){const _0x3ce7b8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xda20db='',_0x4103cc='';for(let _0x554444=0x0,_0xcfea4f,_0x320dae,_0x10ee18=0x0;_0x320dae=_0x53f4ed['charAt'](_0x10ee18++);~_0x320dae&&(_0xcfea4f=_0x554444%0x4?_0xcfea4f*0x40+_0x320dae:_0x320dae,_0x554444++%0x4)?_0xda20db+=String['fromCharCode'](0xff&_0xcfea4f>>(-0x2*_0x554444&0x6)):0x0){_0x320dae=_0x3ce7b8['indexOf'](_0x320dae);}for(let _0x3d11b2=0x0,_0x1c7f81=_0xda20db['length'];_0x3d11b2<_0x1c7f81;_0x3d11b2++){_0x4103cc+='%'+('00'+_0xda20db['charCodeAt'](_0x3d11b2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4103cc);};a0_0xc992['LKRQZT']=_0x3c1e05,a0_0xc992['nIAgiy']={},a0_0xc992['RgMthS']=!![];}const _0x255628=_0x3de347[0x0],_0x42e62d=_0x1d1ad0+_0x255628,_0xcd5aff=a0_0xc992['nIAgiy'][_0x42e62d];return!_0xcd5aff?(_0xc9920c=a0_0xc992['LKRQZT'](_0xc9920c),a0_0xc992['nIAgiy'][_0x42e62d]=_0xc9920c):_0xc9920c=_0xcd5aff,_0xc9920c;}function a0_0x3de3(){const _0x50b676=['ANnVBG','z2v0vxnHz2vuCMvUzhm','z2v0qwDLBNrvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','ltaX','mJKXnJeZmhbeC0vrzG','Bg9HzfvZywDLrgf0yq','Bw9KzwXjza','Dg9ju09tDhjPBMC','y3n2','Bwf4','ChvZAa','Dw5KzwzPBMvK','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','DgHYzxnOB2XKx3jLywnOzwq','zgfPBhK','C2XPy2u','z2v0rgf5s2v5','C2v0qNvKz2v0CW','z2v0rgf0zq','z2v0tw9UDgG','DxnHz2u','CMvXDwvZDhm','Dw5ZAgLMDa','BwfW','yNvKz2v0x2v4y2vLzgvK','Bw9UDgHSEq','zgfPBhLbDMvYywDLCW','C29YDa','y2HLy2TuAhjLC2HVBgrbBgvYDhm','y29ZDa','B3v0Chv0','DxbKyxrLvxnHz2vfBNrYEq','yNLnB2rLBa','C3rYAw5NAwz5','C2vUzej1zgDLDefSzxj0','rMfPBgvKihrVihrYywnRihvZywDL','z2v0rNvSBfLLyxi','BgfZDefSzxj0vgLTzxm','C2vUzfrOCMvZAg9SzefSzxj0','vxnHz2uGzgf0ysbZyxzLza','ywXLCNrZ','nZHwshbOB1K','zM9YrwfJAa','y2HLy2TuAhjLC2HVBgq','z2v0v2vLA051BwjLCG','Dg9Rzw5Z','z2v0uMvTywLUAw5NqNvKz2v0','C2f2zvvZywDLrgf0yq','D2vLA2X5','ndvRChjSsg0','Dg90ywXFDg9Rzw5Z','y2fSy3vSyxrLq29ZDa','nty3ndGYnhb4zgHoCW','AM9PBG','zNjVBq','yNLbz2vUDa','Dg90ywW','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','Aw5PDgLHBgL6zvvZywDLrw50CNK','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','y2vPBa','Bg9Nz2vY','q29ZDa','D2fYBG','C2v0','zxjYB3i','nZa3sufXyufT','odu3mZr3ExviDvO','y3jLyxrLrw1WDhLvC2fNzq','mta4mJHLvfDwA0m','yNvKz2v0CW','C2v0rgf0zq','yNvKz2v0qwXLCNq','AgfZ','Dg9Rzw5ZqNLeyxK','ywDLBNrjza','C2v0DxbqzxjPB2rPy1nHDMu','mti1mtC4mg5pvKrQAa','nti2mtzkB09eANK','zw50CMLLCW','zw1PDa','rgf0zq','uMvXDwvZDhm','DhjHy2TvC2fNzq','z2v0vxnHz2u','nteWmJHHt21NAMi','z2v0tw9UDgHlzxK','Aw5WDxq','vxnHz2uGDhjHy2TLza','z2v0','tu9oveHmwq'];a0_0x3de3=function(){return _0x50b676;};return a0_0x3de3();}const a0_0x1580b4=a0_0xc992;(function(_0x55b4e5,_0x186ee3){const _0x1ed3a8=a0_0xc992,_0x4259ed=_0x55b4e5();while(!![]){try{const _0x48b93a=-parseInt(_0x1ed3a8(0x1ab))/0x1+parseInt(_0x1ed3a8(0x1a3))/0x2+parseInt(_0x1ed3a8(0x1db))/0x3*(-parseInt(_0x1ed3a8(0x1f8))/0x4)+parseInt(_0x1ed3a8(0x1e3))/0x5*(parseInt(_0x1ed3a8(0x1f6))/0x6)+parseInt(_0x1ed3a8(0x1f5))/0x7*(parseInt(_0x1ed3a8(0x1a4))/0x8)+-parseInt(_0x1ed3a8(0x1e6))/0x9+-parseInt(_0x1ed3a8(0x1b6))/0xa;if(_0x48b93a===_0x186ee3)break;else _0x4259ed['push'](_0x4259ed['shift']());}catch(_0x3a5b92){_0x4259ed['push'](_0x4259ed['shift']());}}}(a0_0x3de3,0x5b9a9));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0xda20db,_0x4103cc){const _0x5ca772=a0_0xc992;this['config']=_0xda20db||{},this[_0x5ca772(0x1f0)]=_0x4103cc,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x5ca772(0x1f9)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x5ca772(0x1b0)]},this[_0x5ca772(0x1da)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this['setupPeriodicSave']();}[a0_0x1580b4(0x1a9)](_0x554444,_0xcfea4f,_0x320dae){const _0x1051f6=a0_0x1580b4;try{const _0x10ee18=this[_0x1051f6(0x1e5)](_0xcfea4f,_0x320dae),_0x3d11b2=new Date(),_0x1c7f81=this[_0x1051f6(0x1c2)](_0x3d11b2),_0x52fa3a=this['getWeekKey'](_0x3d11b2),_0x254dbd=this[_0x1051f6(0x1ac)](_0x3d11b2);this['initializeUsageEntry'](this['usage'][_0x1051f6(0x1c0)],_0x1c7f81),this['initializeUsageEntry'](this[_0x1051f6(0x1c6)][_0x1051f6(0x1e2)],_0x52fa3a),this[_0x1051f6(0x1ed)](this[_0x1051f6(0x1c6)][_0x1051f6(0x1cb)],_0x254dbd);const _0x6b6c99={'agentId':_0x554444,'modelId':_0xcfea4f,'tokens':_0x320dae[_0x1051f6(0x1e4)],'cost':_0x10ee18,'timestamp':_0x3d11b2[_0x1051f6(0x1b9)]()};return this[_0x1051f6(0x1d1)](this['usage']['daily']['get'](_0x1c7f81),_0x6b6c99),this[_0x1051f6(0x1d1)](this['usage'][_0x1051f6(0x1e2)][_0x1051f6(0x1af)](_0x52fa3a),_0x6b6c99),this['updateUsageEntry'](this[_0x1051f6(0x1c6)]['monthly']['get'](_0x254dbd),_0x6b6c99),this['usage'][_0x1051f6(0x1ea)][_0x1051f6(0x1df)]+=_0x320dae['total_tokens'],this['usage']['total']['cost']+=_0x10ee18,this[_0x1051f6(0x1c6)][_0x1051f6(0x1ea)][_0x1051f6(0x1c7)]+=0x1,this['checkBudgetLimits'](_0x1c7f81,_0x52fa3a,_0x254dbd),this[_0x1051f6(0x1f0)]['info'](_0x1051f6(0x1ae),{'agentId':_0x554444,'modelId':_0xcfea4f,'tokens':_0x320dae[_0x1051f6(0x1e4)],'cost':_0x10ee18,'totalCost':this['usage']['total']['cost']}),{'cost':_0x10ee18,'totalCost':this['usage']['total'][_0x1051f6(0x1cf)],'totalTokens':this[_0x1051f6(0x1c6)]['total']['tokens'],'dailyUsage':this['usage'][_0x1051f6(0x1c0)]['get'](_0x1c7f81),'budgetRemaining':this[_0x1051f6(0x1e0)]()};}catch(_0x3b3d42){this['logger']['error'](_0x1051f6(0x1d5),{'error':_0x3b3d42['message'],'agentId':_0x554444,'modelId':_0xcfea4f});throw _0x3b3d42;}}['calculateCost'](_0x22bedb,_0x48a97f){const _0x50481d=a0_0x1580b4,_0xdd8779=COST_PER_TOKEN[_0x22bedb];if(!_0xdd8779)return this['logger'][_0x50481d(0x1f2)](_0x50481d(0x1be),{'modelId':_0x22bedb}),0x0;const _0x35a55d=(_0x48a97f['prompt_tokens']||0x0)*_0xdd8779[_0x50481d(0x1ad)],_0x1a3aec=(_0x48a97f['completion_tokens']||0x0)*_0xdd8779[_0x50481d(0x1d0)];return _0x35a55d+_0x1a3aec;}[a0_0x1580b4(0x1aa)](_0x6d1f10=a0_0x1580b4(0x1c0),_0x4beb30=new Date()){const _0x3f60f4=a0_0x1580b4;switch(_0x6d1f10){case'daily':return this['usage']['daily']['get'](this[_0x3f60f4(0x1c2)](_0x4beb30))||this[_0x3f60f4(0x1f7)]();case'weekly':return this['usage'][_0x3f60f4(0x1e2)][_0x3f60f4(0x1af)](this['getWeekKey'](_0x4beb30))||this['createEmptyUsage']();case _0x3f60f4(0x1cb):return this[_0x3f60f4(0x1c6)]['monthly']['get'](this[_0x3f60f4(0x1ac)](_0x4beb30))||this[_0x3f60f4(0x1f7)]();case'total':return{...this[_0x3f60f4(0x1c6)]['total']};default:throw new Error(_0x3f60f4(0x1b4)+_0x6d1f10);}}[a0_0x1580b4(0x1b3)](_0x3fd911,_0x646a2b=a0_0x1580b4(0x1c0)){const _0x57fe94=a0_0x1580b4,_0x364b7b=this['getUsage'](_0x646a2b);return _0x364b7b['byAgent']?.[_0x3fd911]||this[_0x57fe94(0x1f7)]();}['getModelUsage'](_0x1a120a,_0x53b572='daily'){const _0x4c9248=this['getUsage'](_0x53b572);return _0x4c9248['byModel']?.[_0x1a120a]||this['createEmptyUsage']();}[a0_0x1580b4(0x1c3)](_0x50d6c6){const _0x88a729=a0_0x1580b4;if(_0x50d6c6['daily']!==undefined)this['budgets'][_0x88a729(0x1c0)]=_0x50d6c6['daily'];if(_0x50d6c6['weekly']!==undefined)this['budgets']['weekly']=_0x50d6c6['weekly'];if(_0x50d6c6[_0x88a729(0x1cb)]!==undefined)this['budgets'][_0x88a729(0x1cb)]=_0x50d6c6['monthly'];this['logger']['info']('Budget\x20limits\x20updated',this[_0x88a729(0x1f9)]),this[_0x88a729(0x1e1)]();}[a0_0x1580b4(0x1e0)](){const _0x5ee749=a0_0x1580b4,_0x2629c9=new Date(),_0x185b27=this['getUsage'](_0x5ee749(0x1c0),_0x2629c9),_0x16f0a5=this[_0x5ee749(0x1aa)]('weekly',_0x2629c9),_0x111d0a=this[_0x5ee749(0x1aa)](_0x5ee749(0x1cb),_0x2629c9);return{'daily':Math[_0x5ee749(0x1bb)](0x0,this[_0x5ee749(0x1f9)][_0x5ee749(0x1c0)]-_0x185b27[_0x5ee749(0x1cf)]),'weekly':Math[_0x5ee749(0x1bb)](0x0,this['budgets'][_0x5ee749(0x1e2)]-_0x16f0a5[_0x5ee749(0x1cf)]),'monthly':Math[_0x5ee749(0x1bb)](0x0,this[_0x5ee749(0x1f9)][_0x5ee749(0x1cb)]-_0x111d0a['cost'])};}['isWithinBudget'](_0x4b0df3=a0_0x1580b4(0x1c0)){const _0x4ba9d7=a0_0x1580b4,_0xd14a12=this[_0x4ba9d7(0x1aa)](_0x4b0df3),_0x20c2a7=this['budgets'][_0x4b0df3];return _0xd14a12['cost']<=_0x20c2a7;}[a0_0x1580b4(0x1b2)](_0x55627d=0x1e){const _0x594e33=a0_0x1580b4,_0x5502df={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x491ffe=new Date();let _0x39a4bb=0x0,_0x163a15=0x0,_0xf859c8=0x0;const _0x2ca67e=new Map(),_0x243db3=new Map();for(let _0x37fe6c=0x0;_0x37fe6c<_0x55627d;_0x37fe6c++){const _0xb12d80=new Date(_0x491ffe);_0xb12d80[_0x594e33(0x1fa)](_0xb12d80[_0x594e33(0x1c4)]()-_0x37fe6c);const _0x42a87b=this['getDayKey'](_0xb12d80),_0x17ddf5=this[_0x594e33(0x1c6)][_0x594e33(0x1c0)][_0x594e33(0x1af)](_0x42a87b);_0x17ddf5?(_0x39a4bb+=_0x17ddf5['cost'],_0x163a15+=_0x17ddf5['tokens'],_0xf859c8+=_0x17ddf5[_0x594e33(0x1c7)],_0x5502df['costByDay'][_0x594e33(0x1c8)]({'date':_0x42a87b,'cost':_0x17ddf5[_0x594e33(0x1cf)]}),_0x5502df[_0x594e33(0x1fd)]['unshift']({'date':_0x42a87b,'tokens':_0x17ddf5['tokens']}),Object['entries'](_0x17ddf5[_0x594e33(0x1e9)]||{})['forEach'](([_0x17fc1d,_0x405f5e])=>{const _0xb7bad4=_0x594e33;!_0x2ca67e[_0xb7bad4(0x1fc)](_0x17fc1d)&&_0x2ca67e['set'](_0x17fc1d,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x56b897=_0x2ca67e[_0xb7bad4(0x1af)](_0x17fc1d);_0x56b897['cost']+=_0x405f5e[_0xb7bad4(0x1cf)],_0x56b897[_0xb7bad4(0x1df)]+=_0x405f5e[_0xb7bad4(0x1df)],_0x56b897['requests']+=_0x405f5e[_0xb7bad4(0x1c7)];}),Object[_0x594e33(0x1a5)](_0x17ddf5[_0x594e33(0x1d2)]||{})[_0x594e33(0x1dc)](([_0x290514,_0x3c97f3])=>{const _0x12f912=_0x594e33;!_0x243db3['has'](_0x290514)&&_0x243db3[_0x12f912(0x1f3)](_0x290514,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x19e51d=_0x243db3['get'](_0x290514);_0x19e51d[_0x12f912(0x1cf)]+=_0x3c97f3[_0x12f912(0x1cf)],_0x19e51d[_0x12f912(0x1df)]+=_0x3c97f3[_0x12f912(0x1df)],_0x19e51d[_0x12f912(0x1c7)]+=_0x3c97f3['requests'];})):(_0x5502df['costByDay'][_0x594e33(0x1c8)]({'date':_0x42a87b,'cost':0x0}),_0x5502df[_0x594e33(0x1fd)]['unshift']({'date':_0x42a87b,'tokens':0x0}));}return _0x5502df['dailyAverages'][_0x594e33(0x1cf)]=_0x39a4bb/_0x55627d,_0x5502df[_0x594e33(0x1cc)][_0x594e33(0x1df)]=_0x163a15/_0x55627d,_0x5502df['dailyAverages'][_0x594e33(0x1c7)]=_0xf859c8/_0x55627d,_0x5502df['topAgents']=Array[_0x594e33(0x1e8)](_0x2ca67e['entries']())[_0x594e33(0x1c9)](([_0x42d50f,_0x20e4c3])=>({'id':_0x42d50f,..._0x20e4c3}))['sort']((_0x4eb0be,_0xb841b7)=>_0xb841b7[_0x594e33(0x1cf)]-_0x4eb0be['cost'])[_0x594e33(0x1c1)](0x0,0xa),_0x5502df['topModels']=Array['from'](_0x243db3['entries']())['map'](([_0x10102b,_0x1bdb90])=>({'id':_0x10102b,..._0x1bdb90}))[_0x594e33(0x1cd)]((_0x3815d2,_0x3b7d88)=>_0x3b7d88[_0x594e33(0x1cf)]-_0x3815d2['cost'])[_0x594e33(0x1c1)](0x0,0xa),_0x5502df;}['exportUsageData'](_0x56ef5c=a0_0x1580b4(0x1b1),_0x21b037=null,_0x199cfe=null){const _0x8ac120=a0_0x1580b4,_0x451f47={'budgets':this[_0x8ac120(0x1f9)],'total':this[_0x8ac120(0x1c6)][_0x8ac120(0x1ea)],'daily':{},'weekly':{},'monthly':{}},_0x1b1b7e=(_0x570ade,_0x577007)=>{const _0x10c754=_0x8ac120,_0x38d62b={};return _0x570ade[_0x10c754(0x1dc)]((_0x27bf67,_0x344353)=>{const _0x52adcb=_0x577007(_0x344353);(!_0x21b037||_0x52adcb>=_0x21b037)&&(!_0x199cfe||_0x52adcb<=_0x199cfe)&&(_0x38d62b[_0x344353]=_0x27bf67);}),_0x38d62b;};_0x21b037||_0x199cfe?(_0x451f47[_0x8ac120(0x1c0)]=_0x1b1b7e(this[_0x8ac120(0x1c6)]['daily'],_0x18f9ae=>new Date(_0x18f9ae)),_0x451f47[_0x8ac120(0x1e2)]=_0x1b1b7e(this['usage']['weekly'],_0x56d982=>new Date(_0x56d982)),_0x451f47['monthly']=_0x1b1b7e(this['usage']['monthly'],_0x334c0d=>new Date(_0x334c0d+_0x8ac120(0x1b5)))):(this['usage'][_0x8ac120(0x1c0)][_0x8ac120(0x1dc)]((_0xd1a752,_0x2a6031)=>_0x451f47['daily'][_0x2a6031]=_0xd1a752),this[_0x8ac120(0x1c6)][_0x8ac120(0x1e2)][_0x8ac120(0x1dc)]((_0x2b1c34,_0x120ced)=>_0x451f47['weekly'][_0x120ced]=_0x2b1c34),this['usage'][_0x8ac120(0x1cb)][_0x8ac120(0x1dc)]((_0x5c7ec2,_0x3fa1ed)=>_0x451f47['monthly'][_0x3fa1ed]=_0x5c7ec2));if(_0x56ef5c===_0x8ac120(0x1ba))return this['convertToCSV'](_0x451f47);return JSON[_0x8ac120(0x1d3)](_0x451f47,null,0x2);}[a0_0x1580b4(0x1ed)](_0x322763,_0x71860){const _0x5bee08=a0_0x1580b4;!_0x322763['has'](_0x71860)&&_0x322763[_0x5bee08(0x1f3)](_0x71860,this['createEmptyUsage']());}[a0_0x1580b4(0x1f7)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x1580b4(0x1d1)](_0x160125,_0x2bd6bf){const _0x12e4d4=a0_0x1580b4;_0x160125['cost']+=_0x2bd6bf[_0x12e4d4(0x1cf)],_0x160125['tokens']+=_0x2bd6bf['tokens'],_0x160125[_0x12e4d4(0x1c7)]+=0x1,!_0x160125[_0x12e4d4(0x1e9)][_0x2bd6bf['agentId']]&&(_0x160125['byAgent'][_0x2bd6bf['agentId']]=this[_0x12e4d4(0x1f7)]()),_0x160125[_0x12e4d4(0x1e9)][_0x2bd6bf[_0x12e4d4(0x1a1)]][_0x12e4d4(0x1cf)]+=_0x2bd6bf['cost'],_0x160125['byAgent'][_0x2bd6bf[_0x12e4d4(0x1a1)]]['tokens']+=_0x2bd6bf[_0x12e4d4(0x1df)],_0x160125['byAgent'][_0x2bd6bf[_0x12e4d4(0x1a1)]][_0x12e4d4(0x1c7)]+=0x1,!_0x160125[_0x12e4d4(0x1d2)][_0x2bd6bf[_0x12e4d4(0x1b8)]]&&(_0x160125[_0x12e4d4(0x1d2)][_0x2bd6bf[_0x12e4d4(0x1b8)]]=this['createEmptyUsage']()),_0x160125['byModel'][_0x2bd6bf['modelId']]['cost']+=_0x2bd6bf['cost'],_0x160125[_0x12e4d4(0x1d2)][_0x2bd6bf[_0x12e4d4(0x1b8)]]['tokens']+=_0x2bd6bf['tokens'],_0x160125['byModel'][_0x2bd6bf[_0x12e4d4(0x1b8)]]['requests']+=0x1;}['checkBudgetLimits'](_0x1a0f1c,_0x1971b7,_0x1459b5){const _0x29b0e0=a0_0x1580b4,_0x45c20c=this[_0x29b0e0(0x1c6)][_0x29b0e0(0x1c0)][_0x29b0e0(0x1af)](_0x1a0f1c),_0x33de9c=this[_0x29b0e0(0x1c6)]['weekly']['get'](_0x1971b7),_0x24cbe6=this['usage']['monthly'][_0x29b0e0(0x1af)](_0x1459b5);_0x45c20c[_0x29b0e0(0x1cf)]>this[_0x29b0e0(0x1f9)][_0x29b0e0(0x1c0)]&&this['sendBudgetAlert'](_0x29b0e0(0x1c0),_0x45c20c[_0x29b0e0(0x1cf)],this['budgets']['daily']),_0x33de9c[_0x29b0e0(0x1cf)]>this['budgets']['weekly']&&this['sendBudgetAlert']('weekly',_0x33de9c[_0x29b0e0(0x1cf)],this[_0x29b0e0(0x1f9)]['weekly']),_0x24cbe6[_0x29b0e0(0x1cf)]>this['budgets'][_0x29b0e0(0x1cb)]&&this[_0x29b0e0(0x1d4)](_0x29b0e0(0x1cb),_0x24cbe6['cost'],this[_0x29b0e0(0x1f9)]['monthly']),this[_0x29b0e0(0x1ce)](_0x45c20c,_0x33de9c,_0x24cbe6);}[a0_0x1580b4(0x1ce)](_0x3138b0,_0x1e097b,_0xb41969){const _0x21aca9=a0_0x1580b4,_0x273253=this[_0x21aca9(0x1da)]['thresholds'];this['checkThreshold']('daily',_0x3138b0[_0x21aca9(0x1cf)],this[_0x21aca9(0x1f9)]['daily'],_0x273253),this[_0x21aca9(0x1dd)](_0x21aca9(0x1e2),_0x1e097b['cost'],this['budgets'][_0x21aca9(0x1e2)],_0x273253),this[_0x21aca9(0x1dd)]('monthly',_0xb41969[_0x21aca9(0x1cf)],this['budgets'][_0x21aca9(0x1cb)],_0x273253);}['checkThreshold'](_0xd80fda,_0x523c98,_0x453ae7,_0x2f786a){const _0x50ca0e=a0_0x1580b4,_0x46a533=_0x523c98/_0x453ae7*0x64;for(const _0x29076a of _0x2f786a){if(_0x46a533>=_0x29076a){const _0x52a136=_0xd80fda+'_'+_0x29076a,_0x218a24=this['alerts'][_0x50ca0e(0x1d7)]['get'](_0x52a136),_0x2bf148=Date['now']();(!_0x218a24||_0x2bf148-_0x218a24>0x36ee80)&&(this[_0x50ca0e(0x1d8)](_0xd80fda,_0x46a533,_0x29076a,_0x523c98,_0x453ae7),this[_0x50ca0e(0x1da)][_0x50ca0e(0x1d7)]['set'](_0x52a136,_0x2bf148));break;}}}['sendBudgetAlert'](_0x52b552,_0xd8b4dc,_0x2984da){const _0x4be83c=a0_0x1580b4;this['logger']['warn']('Budget\x20limit\x20exceeded',{'period':_0x52b552,'currentUsage':_0xd8b4dc,'budgetLimit':_0x2984da,'excess':_0xd8b4dc-_0x2984da}),typeof process!==_0x4be83c(0x1bd)&&process['emit']&&process[_0x4be83c(0x1a6)]('budgetAlert',{'type':_0x4be83c(0x1ca),'period':_0x52b552,'currentUsage':_0xd8b4dc,'budgetLimit':_0x2984da,'excess':_0xd8b4dc-_0x2984da});}['sendThresholdAlert'](_0x2eadcb,_0x2bc21b,_0x314558,_0x20e8e2,_0x3365d6){const _0x37018c=a0_0x1580b4;this[_0x37018c(0x1f0)]['warn'](_0x37018c(0x1eb),{'period':_0x2eadcb,'percentage':Math['round'](_0x2bc21b),'threshold':_0x314558,'usage':_0x20e8e2,'budget':_0x3365d6}),typeof process!==_0x37018c(0x1bd)&&process['emit']&&process['emit'](_0x37018c(0x1fb),{'type':_0x37018c(0x1bf),'period':_0x2eadcb,'percentage':Math['round'](_0x2bc21b),'threshold':_0x314558,'usage':_0x20e8e2,'budget':_0x3365d6});}['getDayKey'](_0x2dcbf1){return _0x2dcbf1['toISOString']()['split']('T')[0x0];}['getWeekKey'](_0x2e7947){const _0x393633=a0_0x1580b4,_0x4fcc60=_0x2e7947[_0x393633(0x1d6)](),_0xe08e3e=this['getWeekNumber'](_0x2e7947);return _0x4fcc60+'-W'+_0xe08e3e['toString']()['padStart'](0x2,'0');}['getMonthKey'](_0xddf3c1){const _0x48313a=a0_0x1580b4,_0x2acf6a=_0xddf3c1['getFullYear'](),_0x5746b3=_0xddf3c1[_0x48313a(0x1c5)]()+0x1;return _0x2acf6a+'-'+_0x5746b3['toString']()['padStart'](0x2,'0');}[a0_0x1580b4(0x1de)](_0x1bf3b3){const _0x7b4138=a0_0x1580b4,_0x816762=new Date(_0x1bf3b3[_0x7b4138(0x1d6)](),0x0,0x1),_0x2904f2=(_0x1bf3b3-_0x816762)/0x5265c00;return Math[_0x7b4138(0x1ef)]((_0x2904f2+_0x816762['getDay']()+0x1)/0x7);}['convertToCSV'](_0x5930f9){const _0x553e2b=a0_0x1580b4,_0x1510a2=[];return _0x1510a2[_0x553e2b(0x1bc)](['Period',_0x553e2b(0x1a7),_0x553e2b(0x1f1),'Tokens',_0x553e2b(0x1a8),'Agent','Model']),Object['entries'](_0x5930f9['daily'])['forEach'](([_0x40e311,_0xc5c9cb])=>{const _0x37f595=_0x553e2b;_0x1510a2['push'](['Daily',_0x40e311,_0xc5c9cb[_0x37f595(0x1cf)],_0xc5c9cb['tokens'],_0xc5c9cb[_0x37f595(0x1c7)],'','']),Object[_0x37f595(0x1a5)](_0xc5c9cb[_0x37f595(0x1e9)]||{})[_0x37f595(0x1dc)](([_0x438906,_0x4cbf4d])=>{const _0x3f907e=_0x37f595;_0x1510a2['push'](['Daily',_0x40e311,_0x4cbf4d[_0x3f907e(0x1cf)],_0x4cbf4d['tokens'],_0x4cbf4d['requests'],_0x438906,'']);});}),_0x1510a2[_0x553e2b(0x1c9)](_0x3516dd=>_0x3516dd[_0x553e2b(0x1e7)](','))['join']('\x0a');}[a0_0x1580b4(0x1b7)](){const _0x44b26b=a0_0x1580b4;try{this['logger']['info'](_0x44b26b(0x1ee));}catch(_0x5caf32){this[_0x44b26b(0x1f0)][_0x44b26b(0x1f4)](_0x44b26b(0x1ec),{'error':_0x5caf32['message']});}}['saveUsageData'](){const _0x24a14e=a0_0x1580b4;try{this[_0x24a14e(0x1f0)]['debug'](_0x24a14e(0x1d9));}catch(_0x1db88c){this[_0x24a14e(0x1f0)][_0x24a14e(0x1f4)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x1db88c['message']});}}[a0_0x1580b4(0x1a2)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
1
+ const a0_0x134367=a0_0x4076;(function(_0x355faa,_0x56efce){const _0x1de4fc=a0_0x4076,_0x3ae7fc=_0x355faa();while(!![]){try{const _0x4e261e=parseInt(_0x1de4fc(0xb5))/0x1*(parseInt(_0x1de4fc(0x8b))/0x2)+parseInt(_0x1de4fc(0xba))/0x3+-parseInt(_0x1de4fc(0xa9))/0x4+-parseInt(_0x1de4fc(0xd4))/0x5*(parseInt(_0x1de4fc(0xc6))/0x6)+parseInt(_0x1de4fc(0xce))/0x7+-parseInt(_0x1de4fc(0xc9))/0x8+parseInt(_0x1de4fc(0xa7))/0x9;if(_0x4e261e===_0x56efce)break;else _0x3ae7fc['push'](_0x3ae7fc['shift']());}catch(_0x26df0d){_0x3ae7fc['push'](_0x3ae7fc['shift']());}}}(a0_0x2dd6,0x35fd5));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x4076(_0x122b22,_0x1c1552){_0x122b22=_0x122b22-0x7b;const _0x2dd6a7=a0_0x2dd6();let _0x40768c=_0x2dd6a7[_0x122b22];if(a0_0x4076['dmpgEt']===undefined){var _0x49aa3c=function(_0x333421){const _0x11965a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37db7c='',_0x313b55='';for(let _0x2ede38=0x0,_0x3b0e0f,_0x285a69,_0x13b4bf=0x0;_0x285a69=_0x333421['charAt'](_0x13b4bf++);~_0x285a69&&(_0x3b0e0f=_0x2ede38%0x4?_0x3b0e0f*0x40+_0x285a69:_0x285a69,_0x2ede38++%0x4)?_0x37db7c+=String['fromCharCode'](0xff&_0x3b0e0f>>(-0x2*_0x2ede38&0x6)):0x0){_0x285a69=_0x11965a['indexOf'](_0x285a69);}for(let _0x57c4fe=0x0,_0x49b239=_0x37db7c['length'];_0x57c4fe<_0x49b239;_0x57c4fe++){_0x313b55+='%'+('00'+_0x37db7c['charCodeAt'](_0x57c4fe)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x313b55);};a0_0x4076['RQdanb']=_0x49aa3c,a0_0x4076['AvYikL']={},a0_0x4076['dmpgEt']=!![];}const _0x2719f4=_0x2dd6a7[0x0],_0x4375dd=_0x122b22+_0x2719f4,_0x2b9a4f=a0_0x4076['AvYikL'][_0x4375dd];return!_0x2b9a4f?(_0x40768c=a0_0x4076['RQdanb'](_0x40768c),a0_0x4076['AvYikL'][_0x4375dd]=_0x40768c):_0x40768c=_0x2b9a4f,_0x40768c;}export class BudgetService{constructor(_0x37db7c,_0x313b55){const _0x1d1c61=a0_0x4076;this['config']=_0x37db7c||{},this[_0x1d1c61(0xc8)]=_0x313b55,this[_0x1d1c61(0xd8)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x1d1c61(0xa4)],'weekly':BUDGET_LIMITS[_0x1d1c61(0xb9)],'monthly':BUDGET_LIMITS[_0x1d1c61(0xd5)]},this[_0x1d1c61(0xad)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this[_0x1d1c61(0x84)](),this[_0x1d1c61(0x97)]();}[a0_0x134367(0x8c)](_0x2ede38,_0x3b0e0f,_0x285a69){const _0x3d48b3=a0_0x134367;try{const _0x13b4bf=this['calculateCost'](_0x3b0e0f,_0x285a69),_0x57c4fe=new Date(),_0x49b239=this[_0x3d48b3(0x82)](_0x57c4fe),_0x480d33=this['getWeekKey'](_0x57c4fe),_0x487acb=this['getMonthKey'](_0x57c4fe);this[_0x3d48b3(0xc5)](this[_0x3d48b3(0xd8)][_0x3d48b3(0xa5)],_0x49b239),this[_0x3d48b3(0xc5)](this[_0x3d48b3(0xd8)]['weekly'],_0x480d33),this[_0x3d48b3(0xc5)](this['usage']['monthly'],_0x487acb);const _0x381771={'agentId':_0x2ede38,'modelId':_0x3b0e0f,'tokens':_0x285a69[_0x3d48b3(0xda)],'cost':_0x13b4bf,'timestamp':_0x57c4fe['toISOString']()};return this['updateUsageEntry'](this['usage'][_0x3d48b3(0xa5)][_0x3d48b3(0x81)](_0x49b239),_0x381771),this['updateUsageEntry'](this[_0x3d48b3(0xd8)]['weekly']['get'](_0x480d33),_0x381771),this['updateUsageEntry'](this['usage'][_0x3d48b3(0x9b)][_0x3d48b3(0x81)](_0x487acb),_0x381771),this[_0x3d48b3(0xd8)]['total']['tokens']+=_0x285a69['total_tokens'],this['usage'][_0x3d48b3(0xcb)][_0x3d48b3(0xd6)]+=_0x13b4bf,this['usage'][_0x3d48b3(0xcb)][_0x3d48b3(0x98)]+=0x1,this[_0x3d48b3(0xb3)](_0x49b239,_0x480d33,_0x487acb),this['logger']['info']('Usage\x20tracked',{'agentId':_0x2ede38,'modelId':_0x3b0e0f,'tokens':_0x285a69[_0x3d48b3(0xda)],'cost':_0x13b4bf,'totalCost':this['usage']['total'][_0x3d48b3(0xd6)]}),{'cost':_0x13b4bf,'totalCost':this['usage']['total'][_0x3d48b3(0xd6)],'totalTokens':this[_0x3d48b3(0xd8)]['total']['tokens'],'dailyUsage':this['usage']['daily']['get'](_0x49b239),'budgetRemaining':this[_0x3d48b3(0x80)]()};}catch(_0x3563c3){this[_0x3d48b3(0xc8)][_0x3d48b3(0xbd)](_0x3d48b3(0xdb),{'error':_0x3563c3[_0x3d48b3(0xc1)],'agentId':_0x2ede38,'modelId':_0x3b0e0f});throw _0x3563c3;}}['calculateCost'](_0x46286c,_0x51eb7c){const _0x86f25b=a0_0x134367,_0x2fc4b1=COST_PER_TOKEN[_0x46286c];if(!_0x2fc4b1)return this[_0x86f25b(0xc8)][_0x86f25b(0x96)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x46286c}),0x0;const _0x2208d3=(_0x51eb7c[_0x86f25b(0xa1)]||0x0)*_0x2fc4b1['input'],_0x1e32ba=(_0x51eb7c[_0x86f25b(0xd7)]||0x0)*_0x2fc4b1[_0x86f25b(0x8d)];return _0x2208d3+_0x1e32ba;}['getUsage'](_0x557453='daily',_0x540a72=new Date()){const _0xe5387e=a0_0x134367;switch(_0x557453){case'daily':return this['usage'][_0xe5387e(0xa5)]['get'](this['getDayKey'](_0x540a72))||this[_0xe5387e(0xc3)]();case'weekly':return this['usage']['weekly']['get'](this['getWeekKey'](_0x540a72))||this[_0xe5387e(0xc3)]();case'monthly':return this[_0xe5387e(0xd8)]['monthly'][_0xe5387e(0x81)](this[_0xe5387e(0xb6)](_0x540a72))||this[_0xe5387e(0xc3)]();case _0xe5387e(0xcb):return{...this['usage'][_0xe5387e(0xcb)]};default:throw new Error(_0xe5387e(0x92)+_0x557453);}}[a0_0x134367(0x9a)](_0x43d758,_0x6dc35a=a0_0x134367(0xa5)){const _0xab8465=a0_0x134367,_0x401709=this[_0xab8465(0xac)](_0x6dc35a);return _0x401709[_0xab8465(0x83)]?.[_0x43d758]||this[_0xab8465(0xc3)]();}['getModelUsage'](_0x4e4705,_0x3e3a04=a0_0x134367(0xa5)){const _0x41a918=a0_0x134367,_0x479dd3=this[_0x41a918(0xac)](_0x3e3a04);return _0x479dd3['byModel']?.[_0x4e4705]||this[_0x41a918(0xc3)]();}['setBudgets'](_0x1af07c){const _0x3be558=a0_0x134367;if(_0x1af07c['daily']!==undefined)this[_0x3be558(0xcf)]['daily']=_0x1af07c[_0x3be558(0xa5)];if(_0x1af07c['weekly']!==undefined)this['budgets'][_0x3be558(0xbc)]=_0x1af07c['weekly'];if(_0x1af07c['monthly']!==undefined)this[_0x3be558(0xcf)][_0x3be558(0x9b)]=_0x1af07c['monthly'];this['logger'][_0x3be558(0x87)]('Budget\x20limits\x20updated',this[_0x3be558(0xcf)]),this['saveUsageData']();}['getRemainingBudget'](){const _0x25a319=a0_0x134367,_0x1ee921=new Date(),_0x19a0d1=this['getUsage']('daily',_0x1ee921),_0x276946=this['getUsage'](_0x25a319(0xbc),_0x1ee921),_0x39dd37=this['getUsage']('monthly',_0x1ee921);return{'daily':Math[_0x25a319(0xa3)](0x0,this['budgets'][_0x25a319(0xa5)]-_0x19a0d1['cost']),'weekly':Math[_0x25a319(0xa3)](0x0,this['budgets']['weekly']-_0x276946[_0x25a319(0xd6)]),'monthly':Math[_0x25a319(0xa3)](0x0,this[_0x25a319(0xcf)]['monthly']-_0x39dd37['cost'])};}[a0_0x134367(0xa6)](_0x515bd0='daily'){const _0x2fd099=a0_0x134367,_0x2fadd4=this['getUsage'](_0x515bd0),_0x495084=this[_0x2fd099(0xcf)][_0x515bd0];return _0x2fadd4['cost']<=_0x495084;}['getUsageTrends'](_0x3b39d7=0x1e){const _0x1bfd72=a0_0x134367,_0xed6141={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x72262b=new Date();let _0x5ad26c=0x0,_0xa0e140=0x0,_0x40ab32=0x0;const _0x75d9dd=new Map(),_0x41d6fe=new Map();for(let _0x293aad=0x0;_0x293aad<_0x3b39d7;_0x293aad++){const _0x2f8a04=new Date(_0x72262b);_0x2f8a04['setDate'](_0x2f8a04[_0x1bfd72(0x9d)]()-_0x293aad);const _0x1925c7=this[_0x1bfd72(0x82)](_0x2f8a04),_0x411c8d=this[_0x1bfd72(0xd8)]['daily']['get'](_0x1925c7);_0x411c8d?(_0x5ad26c+=_0x411c8d[_0x1bfd72(0xd6)],_0xa0e140+=_0x411c8d[_0x1bfd72(0x89)],_0x40ab32+=_0x411c8d[_0x1bfd72(0x98)],_0xed6141['costByDay'][_0x1bfd72(0x99)]({'date':_0x1925c7,'cost':_0x411c8d['cost']}),_0xed6141['tokensByDay'][_0x1bfd72(0x99)]({'date':_0x1925c7,'tokens':_0x411c8d['tokens']}),Object[_0x1bfd72(0xa8)](_0x411c8d[_0x1bfd72(0x83)]||{})['forEach'](([_0x4848c8,_0x593f13])=>{const _0x211d03=_0x1bfd72;!_0x75d9dd['has'](_0x4848c8)&&_0x75d9dd['set'](_0x4848c8,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0xbf3d64=_0x75d9dd['get'](_0x4848c8);_0xbf3d64['cost']+=_0x593f13['cost'],_0xbf3d64['tokens']+=_0x593f13['tokens'],_0xbf3d64[_0x211d03(0x98)]+=_0x593f13[_0x211d03(0x98)];}),Object[_0x1bfd72(0xa8)](_0x411c8d['byModel']||{})[_0x1bfd72(0x91)](([_0x179bc2,_0x11934a])=>{const _0x568f51=_0x1bfd72;!_0x41d6fe['has'](_0x179bc2)&&_0x41d6fe['set'](_0x179bc2,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x58e591=_0x41d6fe['get'](_0x179bc2);_0x58e591[_0x568f51(0xd6)]+=_0x11934a[_0x568f51(0xd6)],_0x58e591['tokens']+=_0x11934a['tokens'],_0x58e591[_0x568f51(0x98)]+=_0x11934a[_0x568f51(0x98)];})):(_0xed6141[_0x1bfd72(0xdc)]['unshift']({'date':_0x1925c7,'cost':0x0}),_0xed6141['tokensByDay'][_0x1bfd72(0x99)]({'date':_0x1925c7,'tokens':0x0}));}return _0xed6141['dailyAverages']['cost']=_0x5ad26c/_0x3b39d7,_0xed6141['dailyAverages'][_0x1bfd72(0x89)]=_0xa0e140/_0x3b39d7,_0xed6141['dailyAverages'][_0x1bfd72(0x98)]=_0x40ab32/_0x3b39d7,_0xed6141[_0x1bfd72(0xb8)]=Array[_0x1bfd72(0xa0)](_0x75d9dd[_0x1bfd72(0xa8)]())[_0x1bfd72(0xaa)](([_0xc2e8ab,_0x34694c])=>({'id':_0xc2e8ab,..._0x34694c}))[_0x1bfd72(0x8a)]((_0x40bdeb,_0x1b99f3)=>_0x1b99f3['cost']-_0x40bdeb['cost'])[_0x1bfd72(0xaf)](0x0,0xa),_0xed6141[_0x1bfd72(0xbf)]=Array[_0x1bfd72(0xa0)](_0x41d6fe[_0x1bfd72(0xa8)]())[_0x1bfd72(0xaa)](([_0xdb994a,_0x479e7e])=>({'id':_0xdb994a,..._0x479e7e}))['sort']((_0x23ddd6,_0x3187ba)=>_0x3187ba['cost']-_0x23ddd6[_0x1bfd72(0xd6)])['slice'](0x0,0xa),_0xed6141;}[a0_0x134367(0x93)](_0x1013f5='json',_0xd08478=null,_0x5c0d10=null){const _0xdfe9ad=a0_0x134367,_0x2a5ee6={'budgets':this[_0xdfe9ad(0xcf)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x3ede56=(_0x39ce48,_0x3c7571)=>{const _0x2c8123={};return _0x39ce48['forEach']((_0x159ba4,_0x4a1bd7)=>{const _0x53bb56=_0x3c7571(_0x4a1bd7);(!_0xd08478||_0x53bb56>=_0xd08478)&&(!_0x5c0d10||_0x53bb56<=_0x5c0d10)&&(_0x2c8123[_0x4a1bd7]=_0x159ba4);}),_0x2c8123;};_0xd08478||_0x5c0d10?(_0x2a5ee6[_0xdfe9ad(0xa5)]=_0x3ede56(this['usage'][_0xdfe9ad(0xa5)],_0xdc2ee=>new Date(_0xdc2ee)),_0x2a5ee6[_0xdfe9ad(0xbc)]=_0x3ede56(this[_0xdfe9ad(0xd8)]['weekly'],_0x4c6f60=>new Date(_0x4c6f60)),_0x2a5ee6['monthly']=_0x3ede56(this[_0xdfe9ad(0xd8)]['monthly'],_0x48801c=>new Date(_0x48801c+_0xdfe9ad(0xb2)))):(this['usage']['daily']['forEach']((_0x17140e,_0x399ec8)=>_0x2a5ee6[_0xdfe9ad(0xa5)][_0x399ec8]=_0x17140e),this['usage'][_0xdfe9ad(0xbc)][_0xdfe9ad(0x91)]((_0x385b5a,_0x599be6)=>_0x2a5ee6[_0xdfe9ad(0xbc)][_0x599be6]=_0x385b5a),this[_0xdfe9ad(0xd8)]['monthly']['forEach']((_0x52cc66,_0x6ee548)=>_0x2a5ee6['monthly'][_0x6ee548]=_0x52cc66));if(_0x1013f5===_0xdfe9ad(0x8f))return this['convertToCSV'](_0x2a5ee6);return JSON[_0xdfe9ad(0x9f)](_0x2a5ee6,null,0x2);}['initializeUsageEntry'](_0x138a44,_0x3b3848){const _0x4b0f49=a0_0x134367;!_0x138a44[_0x4b0f49(0xc2)](_0x3b3848)&&_0x138a44[_0x4b0f49(0x90)](_0x3b3848,this[_0x4b0f49(0xc3)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x134367(0x94)](_0x1432ce,_0x59d639){const _0x4a1ce1=a0_0x134367;_0x1432ce[_0x4a1ce1(0xd6)]+=_0x59d639[_0x4a1ce1(0xd6)],_0x1432ce[_0x4a1ce1(0x89)]+=_0x59d639['tokens'],_0x1432ce[_0x4a1ce1(0x98)]+=0x1,!_0x1432ce[_0x4a1ce1(0x83)][_0x59d639[_0x4a1ce1(0xbe)]]&&(_0x1432ce['byAgent'][_0x59d639['agentId']]=this['createEmptyUsage']()),_0x1432ce[_0x4a1ce1(0x83)][_0x59d639[_0x4a1ce1(0xbe)]][_0x4a1ce1(0xd6)]+=_0x59d639['cost'],_0x1432ce['byAgent'][_0x59d639[_0x4a1ce1(0xbe)]][_0x4a1ce1(0x89)]+=_0x59d639[_0x4a1ce1(0x89)],_0x1432ce[_0x4a1ce1(0x83)][_0x59d639['agentId']]['requests']+=0x1,!_0x1432ce['byModel'][_0x59d639['modelId']]&&(_0x1432ce['byModel'][_0x59d639['modelId']]=this[_0x4a1ce1(0xc3)]()),_0x1432ce['byModel'][_0x59d639['modelId']][_0x4a1ce1(0xd6)]+=_0x59d639['cost'],_0x1432ce[_0x4a1ce1(0x9c)][_0x59d639['modelId']][_0x4a1ce1(0x89)]+=_0x59d639['tokens'],_0x1432ce['byModel'][_0x59d639[_0x4a1ce1(0xd0)]]['requests']+=0x1;}['checkBudgetLimits'](_0x39767b,_0x1a41f8,_0x2dec02){const _0x3ddddd=a0_0x134367,_0x2eb782=this['usage']['daily']['get'](_0x39767b),_0x3c0b8b=this[_0x3ddddd(0xd8)]['weekly'][_0x3ddddd(0x81)](_0x1a41f8),_0x2ecca8=this[_0x3ddddd(0xd8)]['monthly'][_0x3ddddd(0x81)](_0x2dec02);_0x2eb782[_0x3ddddd(0xd6)]>this['budgets'][_0x3ddddd(0xa5)]&&this['sendBudgetAlert'](_0x3ddddd(0xa5),_0x2eb782['cost'],this['budgets']['daily']),_0x3c0b8b['cost']>this['budgets'][_0x3ddddd(0xbc)]&&this[_0x3ddddd(0xae)]('weekly',_0x3c0b8b['cost'],this['budgets']['weekly']),_0x2ecca8[_0x3ddddd(0xd6)]>this[_0x3ddddd(0xcf)]['monthly']&&this[_0x3ddddd(0xae)]('monthly',_0x2ecca8[_0x3ddddd(0xd6)],this['budgets'][_0x3ddddd(0x9b)]),this[_0x3ddddd(0x95)](_0x2eb782,_0x3c0b8b,_0x2ecca8);}['checkThresholdAlerts'](_0xafd4b0,_0x24391d,_0x1ff995){const _0x18fb52=a0_0x134367,_0x3ab33e=this['alerts']['thresholds'];this['checkThreshold']('daily',_0xafd4b0[_0x18fb52(0xd6)],this['budgets'][_0x18fb52(0xa5)],_0x3ab33e),this[_0x18fb52(0xc0)]('weekly',_0x24391d[_0x18fb52(0xd6)],this[_0x18fb52(0xcf)][_0x18fb52(0xbc)],_0x3ab33e),this['checkThreshold'](_0x18fb52(0x9b),_0x1ff995[_0x18fb52(0xd6)],this[_0x18fb52(0xcf)]['monthly'],_0x3ab33e);}['checkThreshold'](_0x53ca9f,_0x5b85b0,_0x4c8b5e,_0x2f7c92){const _0x34cab6=a0_0x134367,_0xd28a31=_0x5b85b0/_0x4c8b5e*0x64;for(const _0xbcb2f5 of _0x2f7c92){if(_0xd28a31>=_0xbcb2f5){const _0xa6a21=_0x53ca9f+'_'+_0xbcb2f5,_0x124283=this[_0x34cab6(0xad)][_0x34cab6(0x85)][_0x34cab6(0x81)](_0xa6a21),_0xf67efe=Date[_0x34cab6(0xab)]();(!_0x124283||_0xf67efe-_0x124283>0x36ee80)&&(this['sendThresholdAlert'](_0x53ca9f,_0xd28a31,_0xbcb2f5,_0x5b85b0,_0x4c8b5e),this['alerts']['lastAlertTimes']['set'](_0xa6a21,_0xf67efe));break;}}}[a0_0x134367(0xae)](_0x295436,_0x347313,_0x60d9e9){const _0x277cc6=a0_0x134367;this[_0x277cc6(0xc8)]['warn'](_0x277cc6(0xbb),{'period':_0x295436,'currentUsage':_0x347313,'budgetLimit':_0x60d9e9,'excess':_0x347313-_0x60d9e9}),typeof process!==_0x277cc6(0xd3)&&process['emit']&&process['emit']('budgetAlert',{'type':'budget_exceeded','period':_0x295436,'currentUsage':_0x347313,'budgetLimit':_0x60d9e9,'excess':_0x347313-_0x60d9e9});}[a0_0x134367(0xd2)](_0x255606,_0x4402f4,_0x5c981d,_0x2d72b6,_0x3351ae){const _0xa393e1=a0_0x134367;this[_0xa393e1(0xc8)][_0xa393e1(0x96)](_0xa393e1(0xb1),{'period':_0x255606,'percentage':Math['round'](_0x4402f4),'threshold':_0x5c981d,'usage':_0x2d72b6,'budget':_0x3351ae}),typeof process!==_0xa393e1(0xd3)&&process[_0xa393e1(0x88)]&&process[_0xa393e1(0x88)]('budgetAlert',{'type':'threshold_reached','period':_0x255606,'percentage':Math['round'](_0x4402f4),'threshold':_0x5c981d,'usage':_0x2d72b6,'budget':_0x3351ae});}['getDayKey'](_0x18f476){const _0x2b3df7=a0_0x134367;return _0x18f476[_0x2b3df7(0x7c)]()['split']('T')[0x0];}['getWeekKey'](_0x608c2c){const _0xeb5b50=a0_0x134367,_0x2f5a79=_0x608c2c['getFullYear'](),_0x2b2d0c=this[_0xeb5b50(0xb7)](_0x608c2c);return _0x2f5a79+'-W'+_0x2b2d0c[_0xeb5b50(0xa2)]()['padStart'](0x2,'0');}['getMonthKey'](_0x43207a){const _0x3dee07=a0_0x134367,_0x1646a0=_0x43207a['getFullYear'](),_0x4c2d5e=_0x43207a['getMonth']()+0x1;return _0x1646a0+'-'+_0x4c2d5e[_0x3dee07(0xa2)]()[_0x3dee07(0xc7)](0x2,'0');}['getWeekNumber'](_0x459e03){const _0xf0c95e=new Date(_0x459e03['getFullYear'](),0x0,0x1),_0x3024bb=(_0x459e03-_0xf0c95e)/0x5265c00;return Math['ceil']((_0x3024bb+_0xf0c95e['getDay']()+0x1)/0x7);}[a0_0x134367(0x8e)](_0x221eb4){const _0x507fd1=a0_0x134367,_0x2065dd=[];return _0x2065dd['push']([_0x507fd1(0x9e),_0x507fd1(0x7b),_0x507fd1(0x86),_0x507fd1(0xcc),_0x507fd1(0x7f),_0x507fd1(0x7d),_0x507fd1(0xc4)]),Object['entries'](_0x221eb4[_0x507fd1(0xa5)])[_0x507fd1(0x91)](([_0x3f1734,_0x1361d5])=>{const _0x975c6=_0x507fd1;_0x2065dd[_0x975c6(0x7e)]([_0x975c6(0xb4),_0x3f1734,_0x1361d5['cost'],_0x1361d5[_0x975c6(0x89)],_0x1361d5[_0x975c6(0x98)],'','']),Object[_0x975c6(0xa8)](_0x1361d5['byAgent']||{})[_0x975c6(0x91)](([_0x2b3f0d,_0x45086e])=>{const _0x46a184=_0x975c6;_0x2065dd[_0x46a184(0x7e)](['Daily',_0x3f1734,_0x45086e[_0x46a184(0xd6)],_0x45086e['tokens'],_0x45086e['requests'],_0x2b3f0d,'']);});}),_0x2065dd[_0x507fd1(0xaa)](_0x3d4dfd=>_0x3d4dfd['join'](','))[_0x507fd1(0xcd)]('\x0a');}['loadUsageData'](){const _0x19fdf0=a0_0x134367;try{this[_0x19fdf0(0xc8)]['info']('Budget\x20service\x20initialized');}catch(_0xa41f14){this['logger']['error'](_0x19fdf0(0xd1),{'error':_0xa41f14[_0x19fdf0(0xc1)]});}}['saveUsageData'](){const _0x3f554a=a0_0x134367;try{this[_0x3f554a(0xc8)][_0x3f554a(0xca)](_0x3f554a(0xd9));}catch(_0x3df8e8){this[_0x3f554a(0xc8)]['error'](_0x3f554a(0xb0),{'error':_0x3df8e8[_0x3f554a(0xc1)]});}}[a0_0x134367(0x97)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;function a0_0x2dd6(){const _0xcad36d=['yNvKz2v0CW','Bw9KzwXjza','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','C2vUzfrOCMvZAg9SzefSzxj0','Dw5KzwzPBMvK','nwXbC0jQuW','tu9oveHmwq','y29ZDa','y29TCgXLDgLVBL90B2TLBNm','DxnHz2u','vxnHz2uGzgf0ysbZyxzLza','Dg90ywXFDg9Rzw5Z','rMfPBgvKihrVihrYywnRihvZywDL','y29ZDej5rgf5','rgf0zq','Dg9ju09tDhjPBMC','qwDLBNq','ChvZAa','uMvXDwvZDhm','z2v0uMvTywLUAw5NqNvKz2v0','z2v0','z2v0rgf5s2v5','yNLbz2vUDa','Bg9HzfvZywDLrgf0yq','BgfZDefSzxj0vgLTzxm','q29ZDa','Aw5MBW','zw1PDa','Dg9Rzw5Z','C29YDa','mtHUyKfQC3i','DhjHy2TvC2fNzq','B3v0Chv0','y29UDMvYDfrVq1nw','y3n2','C2v0','zM9YrwfJAa','sw52ywXPzcbWzxjPB2q6ia','zxHWB3j0vxnHz2veyxrH','DxbKyxrLvxnHz2vfBNrYEq','y2HLy2TuAhjLC2HVBgrbBgvYDhm','D2fYBG','C2v0DxbqzxjPB2rPy1nHDMu','CMvXDwvZDhm','Dw5ZAgLMDa','z2v0qwDLBNrvC2fNzq','Bw9UDgHSEq','yNLnB2rLBa','z2v0rgf0zq','ugvYAw9K','C3rYAw5NAwz5','zNjVBq','ChjVBxb0x3rVA2vUCW','Dg9tDhjPBMC','Bwf4','refjtfK','zgfPBhK','AxnxAxrOAw5cDwrNzxq','mtu3mdCYnvHnEuXqBq','zw50CMLLCW','mtq3ntaYofrAz3LfAG','BwfW','BM93','z2v0vxnHz2u','ywXLCNrZ','C2vUzej1zgDLDefSzxj0','C2XPy2u','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','ltaX','y2HLy2TcDwrNzxrmAw1PDhm','rgfPBhK','mtuWotfqtKvHuKq','z2v0tw9UDgHlzxK','z2v0v2vLA051BwjLCG','Dg9WqwDLBNrZ','v0vfs0Xz','odiYmdeYC0z3vgTI','qNvKz2v0igXPBwL0igv4y2vLzgvK','D2vLA2X5','zxjYB3i','ywDLBNrjza','Dg9Wtw9KzwXZ','y2HLy2TuAhjLC2HVBgq','BwvZC2fNzq','AgfZ','y3jLyxrLrw1WDhLvC2fNzq','tw9KzwW','Aw5PDgLHBgL6zvvZywDLrw50CNK','mtq2oduYneLWB1bHDa','CgfKu3rHCNq','Bg9Nz2vY','mZqZmJe2uuLUyM9A','zgvIDwC','Dg90ywW','vg9Rzw5Z','AM9PBG','mJa1mJq0mNvfEMzPAW'];a0_0x2dd6=function(){return _0xcad36d;};return a0_0x2dd6();}
@@ -1 +1 @@
1
- const a0_0x27467d=a0_0x3beb;(function(_0x35cfaa,_0x187249){const _0xf8b63e=a0_0x3beb,_0x234201=_0x35cfaa();while(!![]){try{const _0x57b271=-parseInt(_0xf8b63e(0x1a2))/0x1+parseInt(_0xf8b63e(0x1b3))/0x2*(parseInt(_0xf8b63e(0x1ba))/0x3)+-parseInt(_0xf8b63e(0x1cf))/0x4+-parseInt(_0xf8b63e(0x1b2))/0x5+-parseInt(_0xf8b63e(0x1ae))/0x6+-parseInt(_0xf8b63e(0x1ac))/0x7+parseInt(_0xf8b63e(0x1c8))/0x8*(parseInt(_0xf8b63e(0x1ca))/0x9);if(_0x57b271===_0x187249)break;else _0x234201['push'](_0x234201['shift']());}catch(_0x2ab36d){_0x234201['push'](_0x234201['shift']());}}}(a0_0x5b01,0x70f9b));import a0_0x4520a9 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x43c888={},_0x14bfa6=null){const _0x2bb67e=a0_0x3beb;this[_0x2bb67e(0x1c3)]=_0x43c888,this[_0x2bb67e(0x1a5)]=_0x14bfa6,this[_0x2bb67e(0x1b5)]=new a0_0x4520a9(_0x43c888,_0x14bfa6);}async[a0_0x27467d(0x1ad)](){const _0x10dc1e=a0_0x27467d;await this[_0x10dc1e(0x1b5)][_0x10dc1e(0x1ad)]();}async['buildDynamicContext'](_0x2831f6){const _0x3e1429=a0_0x27467d;try{const _0x28f635=await this[_0x3e1429(0x1b5)][_0x3e1429(0x1c7)](_0x2831f6);if(_0x28f635[_0x3e1429(0x1b0)]===0x0)return'';const _0x2bb101=_0x28f635[_0x3e1429(0x1a3)](_0x3a631e=>_0x3a631e[_0x3e1429(0x1c1)]==='content'),_0x5918ed=_0x28f635['filter'](_0x16237f=>_0x16237f['mode']==='reference');let _0x56079c='';if(_0x2bb101['length']>0x0){_0x56079c+=_0x3e1429(0x1c2);for(const _0x4aef70 of _0x2bb101){const _0x50a752=await this['attachmentService'][_0x3e1429(0x1b1)](_0x4aef70[_0x3e1429(0x1a4)]);if(_0x50a752){const _0x39dc06=this[_0x3e1429(0x1bb)](_0x4aef70,_0x50a752);_0x56079c+=_0x39dc06+'\x0a';}}_0x56079c+=_0x3e1429(0x1ce);}if(_0x5918ed[_0x3e1429(0x1b0)]>0x0){_0x56079c+=_0x3e1429(0x1c4);for(const _0x44b2f0 of _0x5918ed){const _0x562bbe=this['formatReferenceFile'](_0x44b2f0);_0x56079c+=_0x562bbe+'\x0a';}_0x56079c+=_0x3e1429(0x1af),_0x56079c+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x56079c;}catch(_0xb78cc4){return this['logger']?.[_0x3e1429(0x1d0)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x2831f6,'error':_0xb78cc4[_0x3e1429(0x1c9)]}),'';}}['formatContentFile'](_0x1133d1,_0x181b46){const _0x42b752=a0_0x27467d,{fileName:_0x5f0e78,fileType:_0x52faba,size:_0x2f54e1,contentType:_0x1bb8a8}=_0x1133d1,_0x32c902=(_0x2f54e1/0x400)[_0x42b752(0x1a6)](0x2);if(_0x1bb8a8===_0x42b752(0x1cb))return this['formatTextFile'](_0x1133d1,_0x181b46);else{if(_0x1bb8a8===_0x42b752(0x1a8))return this[_0x42b752(0x19f)](_0x1133d1,_0x181b46);else{if(_0x1bb8a8==='pdf')return this[_0x42b752(0x1b4)](_0x1133d1,_0x181b46);}}return'\x20\x20<file\x20name=\x22'+this[_0x42b752(0x1b6)](_0x5f0e78)+'\x22\x20type=\x22'+_0x52faba+_0x42b752(0x1b7)+_0x32c902+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x181b46)+_0x42b752(0x1c6);}['formatTextFile'](_0x1a7620,_0x212621){const _0x59aa8b=a0_0x27467d,{fileName:_0x3a8910,fileType:_0x52f9b5,size:_0x3ea1af}=_0x1a7620,_0x121947=(_0x3ea1af/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x59aa8b(0x1b6)](_0x3a8910)+'\x22\x20type=\x22'+_0x52f9b5+'\x22\x20size=\x22'+_0x121947+_0x59aa8b(0x1a7)+this['escapeXml'](_0x212621)+_0x59aa8b(0x1c6);}['formatImageFile'](_0x181c5c,_0x5fd763){const _0x36d614=a0_0x27467d,{fileName:_0x36aa3d,fileType:_0x51eac0,size:_0x142903}=_0x181c5c,_0x4d0ef5=(_0x142903/0x400)[_0x36d614(0x1a6)](0x2);return _0x36d614(0x1b9)+this[_0x36d614(0x1b6)](_0x36aa3d)+'\x22\x20type=\x22'+_0x51eac0+'\x22\x20size=\x22'+_0x4d0ef5+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x5fd763+'\x0a\x20\x20</file>';}[a0_0x27467d(0x1b4)](_0x53ebb4,_0x5cf8c8){const _0x5ab5ca=a0_0x27467d,{fileName:_0x24d8b4,fileType:_0x172b5d,size:_0x282385}=_0x53ebb4,_0x1f21ea=(_0x282385/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x24d8b4)+_0x5ab5ca(0x1aa)+_0x172b5d+'\x22\x20size=\x22'+_0x1f21ea+_0x5ab5ca(0x1a7)+this[_0x5ab5ca(0x1b6)](_0x5cf8c8)+_0x5ab5ca(0x1c6);}[a0_0x27467d(0x1a0)](_0x2dcc4b){const _0xaab0a8=a0_0x27467d,{fileName:_0x1ea29f,originalPath:_0x496300,size:_0x1f5cb8,fileType:_0x456d59,lastModified:_0x20402f}=_0x2dcc4b,_0x25b463=this[_0xaab0a8(0x1ab)](_0x1f5cb8),_0x1e3e7d=new Date(_0x20402f)['toISOString']()['split']('T')[0x0];return _0xaab0a8(0x1b9)+this['escapeXml'](_0x1ea29f)+'\x22\x20path=\x22'+this[_0xaab0a8(0x1b6)](_0x496300)+'\x22\x20size=\x22'+_0x25b463+'\x22\x20type=\x22'+_0x456d59+_0xaab0a8(0x1c5)+_0x1e3e7d+'\x22\x20/>';}['escapeXml'](_0x3eb17f){const _0x3d2566=a0_0x27467d;if(!_0x3eb17f)return'';return _0x3eb17f[_0x3d2566(0x1a9)](/&/g,_0x3d2566(0x1b8))['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')[_0x3d2566(0x1a9)](/"/g,_0x3d2566(0x1a1))[_0x3d2566(0x1a9)](/'/g,'&apos;');}['formatBytes'](_0x578956){const _0x39ab96=a0_0x27467d;if(_0x578956===0x0)return'0\x20Bytes';const _0x554768=0x400,_0x742c54=['Bytes','KB','MB','GB'],_0x4156ca=Math[_0x39ab96(0x1bd)](Math[_0x39ab96(0x1bc)](_0x578956)/Math['log'](_0x554768));return parseFloat((_0x578956/Math[_0x39ab96(0x1cc)](_0x554768,_0x4156ca))[_0x39ab96(0x1a6)](0x2))+_0x742c54[_0x4156ca];}async[a0_0x27467d(0x1bf)](_0x3d1376){const _0x4a0d7f=a0_0x27467d;try{const _0x1a0945=await this[_0x4a0d7f(0x1b5)]['getActiveAttachments'](_0x3d1376);let _0x11b2ee=0x0;for(const _0x2d5dfd of _0x1a0945){_0x2d5dfd[_0x4a0d7f(0x1c1)]===_0x4a0d7f(0x1be)?_0x11b2ee+=_0x2d5dfd[_0x4a0d7f(0x1cd)]||0x0:_0x11b2ee+=0x14;}return _0x11b2ee;}catch(_0x57ab37){return this[_0x4a0d7f(0x1a5)]?.[_0x4a0d7f(0x1d0)]('Error\x20estimating\x20total\x20tokens',{'agentId':_0x3d1376,'error':_0x57ab37['message']}),0x0;}}async['getAttachmentSummary'](_0x1e7322){const _0x6d2279=a0_0x27467d;try{const _0x7637ac=await this[_0x6d2279(0x1b5)]['getActiveAttachments'](_0x1e7322),_0x56a2e7={'totalActive':_0x7637ac[_0x6d2279(0x1b0)],'contentMode':_0x7637ac['filter'](_0x163088=>_0x163088['mode']==='content')[_0x6d2279(0x1b0)],'referenceMode':_0x7637ac[_0x6d2279(0x1a3)](_0x48e574=>_0x48e574['mode']==='reference')['length'],'estimatedTokens':0x0,'files':[]};for(const _0x33cf96 of _0x7637ac){_0x56a2e7[_0x6d2279(0x1c0)]+=_0x33cf96['tokenEstimate']||0x0,_0x56a2e7['files']['push']({'fileName':_0x33cf96['fileName'],'mode':_0x33cf96[_0x6d2279(0x1c1)],'size':this[_0x6d2279(0x1ab)](_0x33cf96['size']),'tokens':_0x33cf96['tokenEstimate']||0x0});}return _0x56a2e7;}catch(_0x4def7f){return this[_0x6d2279(0x1a5)]?.[_0x6d2279(0x1d0)]('Error\x20getting\x20attachment\x20summary',{'agentId':_0x1e7322,'error':_0x4def7f[_0x6d2279(0x1c9)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}function a0_0x3beb(_0x162fb1,_0x8b3f40){_0x162fb1=_0x162fb1-0x19f;const _0x5b01b7=a0_0x5b01();let _0x3beb04=_0x5b01b7[_0x162fb1];if(a0_0x3beb['QbXOGL']===undefined){var _0x5505a2=function(_0xf2d8f8){const _0x37934c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4520a9='',_0x43c888='';for(let _0x14bfa6=0x0,_0x2831f6,_0x28f635,_0x2bb101=0x0;_0x28f635=_0xf2d8f8['charAt'](_0x2bb101++);~_0x28f635&&(_0x2831f6=_0x14bfa6%0x4?_0x2831f6*0x40+_0x28f635:_0x28f635,_0x14bfa6++%0x4)?_0x4520a9+=String['fromCharCode'](0xff&_0x2831f6>>(-0x2*_0x14bfa6&0x6)):0x0){_0x28f635=_0x37934c['indexOf'](_0x28f635);}for(let _0x5918ed=0x0,_0x56079c=_0x4520a9['length'];_0x5918ed<_0x56079c;_0x5918ed++){_0x43c888+='%'+('00'+_0x4520a9['charCodeAt'](_0x5918ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c888);};a0_0x3beb['iirojo']=_0x5505a2,a0_0x3beb['tHEmqc']={},a0_0x3beb['QbXOGL']=!![];}const _0x2b8968=_0x5b01b7[0x0],_0xbf7001=_0x162fb1+_0x2b8968,_0x51d1d8=a0_0x3beb['tHEmqc'][_0xbf7001];return!_0x51d1d8?(_0x3beb04=a0_0x3beb['iirojo'](_0x3beb04),a0_0x3beb['tHEmqc'][_0xbf7001]=_0x3beb04):_0x3beb04=_0x51d1d8,_0x3beb04;}function a0_0x5b01(){const _0x5c6ea2=['Dg9Rzw5fC3rPBwf0zq','pc9HDhrHy2HLzc1MAwXLCZ4k','mte1mJq0ne52Bw95sG','zxjYB3i','zM9YBwf0sw1Hz2vgAwXL','zM9YBwf0uMvMzxjLBMnLrMLSzq','jNf1B3q7','ody4mtCXzgjhBgPA','zMLSDgvY','zMLSzuLK','Bg9Nz2vY','Dg9gAxHLza','s0iIig1Vzgu9iMnVBNrLBNqIpGO','Aw1Hz2u','CMvWBgfJzq','iIb0ExbLpsi','zM9YBwf0qNL0zxm','nZi1mtCYs3zWy3Lm','Aw5PDgLHBgL6zq','mZm4mZmWnhfIvKfHuW','pc9MAwXLlxjLzMvYzw5Jzxm+cG','BgvUz3rO','z2v0qxr0ywnOBwvUDenVBNrLBNq','mtCYmZK5nun4z3jTqW','mtyXmtzwyw1YEK4','zM9YBwf0ugrMrMLSzq','yxr0ywnOBwvUDfnLCNzPy2u','zxnJyxbLwg1S','iIbZAxPLpsi','jMfTCdS','ica8zMLSzsbUyw1Lpsi','mtGZzhvYwgHJ','zM9YBwf0q29UDgvUDezPBgu','Bg9N','zMXVB3i','y29UDgvUDa','zxn0Aw1HDgvuB3rHBfrVA2vUCW','zxn0Aw1HDgvKvg9Rzw5Z','Bw9Kzq','cJXHDhrHy2HLzc1MAwXLCZ4k','y29UzMLN','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIbTB2rPzMLLzd0I','cIaGpc9MAwXLpG','z2v0qwn0AxzLqxr0ywnOBwvUDhm','odb4Cxfgvwu','BwvZC2fNzq','mtKYntC5m1vgqLzqqG','Dgv4Da','Cg93'];a0_0x5b01=function(){return _0x5c6ea2;};return a0_0x5b01();}export default ContextInjectionService;
1
+ const a0_0x1c7447=a0_0x56e7;function a0_0x56e7(_0x1643c7,_0xd20250){_0x1643c7=_0x1643c7-0x100;const _0xb29d91=a0_0xb29d();let _0x56e700=_0xb29d91[_0x1643c7];if(a0_0x56e7['iAKnRT']===undefined){var _0x3a2fd1=function(_0x321603){const _0xae3d6c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x121f50='',_0x394355='';for(let _0x15b232=0x0,_0x31116d,_0x2784fd,_0x506a92=0x0;_0x2784fd=_0x321603['charAt'](_0x506a92++);~_0x2784fd&&(_0x31116d=_0x15b232%0x4?_0x31116d*0x40+_0x2784fd:_0x2784fd,_0x15b232++%0x4)?_0x121f50+=String['fromCharCode'](0xff&_0x31116d>>(-0x2*_0x15b232&0x6)):0x0){_0x2784fd=_0xae3d6c['indexOf'](_0x2784fd);}for(let _0x4ee17f=0x0,_0x4d9be8=_0x121f50['length'];_0x4ee17f<_0x4d9be8;_0x4ee17f++){_0x394355+='%'+('00'+_0x121f50['charCodeAt'](_0x4ee17f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x394355);};a0_0x56e7['cHCXVc']=_0x3a2fd1,a0_0x56e7['QbxeVw']={},a0_0x56e7['iAKnRT']=!![];}const _0x4025a8=_0xb29d91[0x0],_0x2aa6ab=_0x1643c7+_0x4025a8,_0xe93f8d=a0_0x56e7['QbxeVw'][_0x2aa6ab];return!_0xe93f8d?(_0x56e700=a0_0x56e7['cHCXVc'](_0x56e700),a0_0x56e7['QbxeVw'][_0x2aa6ab]=_0x56e700):_0x56e700=_0xe93f8d,_0x56e700;}function a0_0xb29d(){const _0x4de408=['zM9YBwf0vgv4DezPBgu','zMXVB3i','odjizNLbEhC','mZeWmdvizwLZuw4','mJe0ndeXnuzHu1jqDq','zxnJyxbLwg1S','ndi1odi0mfHKzgXvuW','BgvUz3rO','Aw5PDgLHBgL6zq','ndiZmtHLBevoC1G','BwvZC2fNzq','CgrM','z2v0qwn0AxzLqxr0ywnOBwvUDhm','ChvZAa','nZuZnJaWu3bgvuP1','Bg9Nz2vY','mtGYndq0A1rcv1PU','yNvPBgreEw5HBwLJq29UDgv4Da','CMvWBgfJzq','zMLSDgvY','ica8zMLSzsbUyw1Lpsi','iIb0ExbLpsi','C3bSAxq','iIbZAxPLpsi','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','cJXHDhrHy2HLzc1MAwXLCZ4k','zMLSzuLK','Bw9Kzq','zxn0Aw1HDgvuB3rHBfrVA2vUCW','yxr0ywnOBwvUDfnLCNzPy2u','Dg9Rzw5fC3rPBwf0zq','Aw1Hz2u','zM9YBwf0q29UDgvUDezPBgu','Dg9gAxHLza','odeXmhzfDvrWvq','s0iIig1Vzgu9iMnVBNrLBNqIpGO','CMvMzxjLBMnL','zM9YBwf0qNL0zxm','mta4nwDuy0T6Ca','zM9YBwf0uMvMzxjLBMnLrMLSzq','Bg9N','cJXMAwXLlxjLzMvYzw5Jzxm+cG','z2v0qxr0ywnOBwvUDenVBNrLBNq','zxjYB3i','nZe4nZfTzwDgrwC'];a0_0xb29d=function(){return _0x4de408;};return a0_0xb29d();}(function(_0x2fe99f,_0x758fb0){const _0x3d530d=a0_0x56e7,_0x1d08f3=_0x2fe99f();while(!![]){try{const _0x5da9bd=-parseInt(_0x3d530d(0x12a))/0x1+-parseInt(_0x3d530d(0x11c))/0x2*(-parseInt(_0x3d530d(0x119))/0x3)+parseInt(_0x3d530d(0x120))/0x4+parseInt(_0x3d530d(0x11e))/0x5+-parseInt(_0x3d530d(0x123))/0x6*(-parseInt(_0x3d530d(0x113))/0x7)+parseInt(_0x3d530d(0x128))/0x8+-parseInt(_0x3d530d(0x11d))/0x9*(parseInt(_0x3d530d(0x10f))/0xa);if(_0x5da9bd===_0x758fb0)break;else _0x1d08f3['push'](_0x1d08f3['shift']());}catch(_0x1aad3b){_0x1d08f3['push'](_0x1d08f3['shift']());}}}(a0_0xb29d,0xa7a68));import a0_0x121f50 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x394355={},_0x15b232=null){const _0x5bdbf8=a0_0x56e7;this['config']=_0x394355,this[_0x5bdbf8(0x129)]=_0x15b232,this['attachmentService']=new a0_0x121f50(_0x394355,_0x15b232);}async['initialize'](){const _0x16f1fd=a0_0x56e7;await this['attachmentService'][_0x16f1fd(0x122)]();}async[a0_0x1c7447(0x12b)](_0x31116d){const _0x314c8d=a0_0x1c7447;try{const _0x2784fd=await this[_0x314c8d(0x10a)][_0x314c8d(0x126)](_0x31116d);if(_0x2784fd['length']===0x0)return'';const _0x506a92=_0x2784fd['filter'](_0x219b25=>_0x219b25[_0x314c8d(0x108)]==='content'),_0x4ee17f=_0x2784fd['filter'](_0xdf3af2=>_0xdf3af2[_0x314c8d(0x108)]===_0x314c8d(0x111));let _0x4d9be8='';if(_0x506a92[_0x314c8d(0x121)]>0x0){_0x4d9be8+=_0x314c8d(0x106);for(const _0x54895e of _0x506a92){const _0x3ed4cf=await this['attachmentService'][_0x314c8d(0x117)](_0x54895e[_0x314c8d(0x107)]);if(_0x3ed4cf){const _0x4bd2d6=this['formatContentFile'](_0x54895e,_0x3ed4cf);_0x4d9be8+=_0x4bd2d6+'\x0a';}}_0x4d9be8+='</attached-files>\x0a';}if(_0x4ee17f['length']>0x0){_0x4d9be8+=_0x314c8d(0x116);for(const _0x495972 of _0x4ee17f){const _0x4bc6a8=this['formatReferenceFile'](_0x495972);_0x4d9be8+=_0x4bc6a8+'\x0a';}_0x4d9be8+='</file-references>\x0a',_0x4d9be8+=_0x314c8d(0x105);}return _0x4d9be8;}catch(_0x5c88ca){return this['logger']?.['error']('Error\x20building\x20dynamic\x20context',{'agentId':_0x31116d,'error':_0x5c88ca[_0x314c8d(0x124)]}),'';}}[a0_0x1c7447(0x10d)](_0x5ce48f,_0x2ddc2e){const _0x229fb9=a0_0x1c7447,{fileName:_0x5931a0,fileType:_0x333528,size:_0x5e3d2d,contentType:_0xe8511f}=_0x5ce48f,_0x998ee5=(_0x5e3d2d/0x400)[_0x229fb9(0x10e)](0x2);if(_0xe8511f==='text')return this['formatTextFile'](_0x5ce48f,_0x2ddc2e);else{if(_0xe8511f===_0x229fb9(0x10c))return this['formatImageFile'](_0x5ce48f,_0x2ddc2e);else{if(_0xe8511f===_0x229fb9(0x125))return this['formatPdfFile'](_0x5ce48f,_0x2ddc2e);}}return'\x20\x20<file\x20name=\x22'+this[_0x229fb9(0x11f)](_0x5931a0)+_0x229fb9(0x102)+_0x333528+_0x229fb9(0x104)+_0x998ee5+_0x229fb9(0x110)+this[_0x229fb9(0x11f)](_0x2ddc2e)+'\x0a\x20\x20</file>';}[a0_0x1c7447(0x11a)](_0x31addb,_0x20a62a){const _0x54177f=a0_0x1c7447,{fileName:_0x4c888e,fileType:_0x4f4ab7,size:_0x59813b}=_0x31addb,_0x45d813=(_0x59813b/0x400)['toFixed'](0x2);return _0x54177f(0x101)+this[_0x54177f(0x11f)](_0x4c888e)+'\x22\x20type=\x22'+_0x4f4ab7+_0x54177f(0x104)+_0x45d813+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x20a62a)+'\x0a\x20\x20</file>';}['formatImageFile'](_0xd8e61f,_0x30c5a5){const _0x16df66=a0_0x1c7447,{fileName:_0x46dd1d,fileType:_0x5aec2e,size:_0x2f6566}=_0xd8e61f,_0x558b40=(_0x2f6566/0x400)[_0x16df66(0x10e)](0x2);return _0x16df66(0x101)+this[_0x16df66(0x11f)](_0x46dd1d)+_0x16df66(0x102)+_0x5aec2e+'\x22\x20size=\x22'+_0x558b40+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x30c5a5+'\x0a\x20\x20</file>';}['formatPdfFile'](_0x5759f6,_0x8d4a0c){const _0x59eafa=a0_0x1c7447,{fileName:_0xd08c13,fileType:_0x4db71c,size:_0x28cd90}=_0x5759f6,_0x1c2414=(_0x28cd90/0x400)['toFixed'](0x2);return _0x59eafa(0x101)+this[_0x59eafa(0x11f)](_0xd08c13)+_0x59eafa(0x102)+_0x4db71c+'\x22\x20size=\x22'+_0x1c2414+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x8d4a0c)+'\x0a\x20\x20</file>';}[a0_0x1c7447(0x114)](_0x2a9ed0){const _0x45bf16=a0_0x1c7447,{fileName:_0x2af1f8,originalPath:_0x4e2efe,size:_0x4c6931,fileType:_0x39363c,lastModified:_0x91ca9c}=_0x2a9ed0,_0x158844=this['formatBytes'](_0x4c6931),_0x480013=new Date(_0x91ca9c)['toISOString']()[_0x45bf16(0x103)]('T')[0x0];return'\x20\x20<file\x20name=\x22'+this[_0x45bf16(0x11f)](_0x2af1f8)+'\x22\x20path=\x22'+this['escapeXml'](_0x4e2efe)+'\x22\x20size=\x22'+_0x158844+'\x22\x20type=\x22'+_0x39363c+'\x22\x20modified=\x22'+_0x480013+'\x22\x20/>';}[a0_0x1c7447(0x11f)](_0x405ae9){const _0xd3dcfe=a0_0x1c7447;if(!_0x405ae9)return'';return _0x405ae9['replace'](/&/g,'&amp;')[_0xd3dcfe(0x12c)](/</g,'&lt;')[_0xd3dcfe(0x12c)](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&apos;');}[a0_0x1c7447(0x112)](_0x1ffe5e){const _0xa3761a=a0_0x1c7447;if(_0x1ffe5e===0x0)return'0\x20Bytes';const _0x2a9da3=0x400,_0x35a30f=['Bytes','KB','MB','GB'],_0x56cedd=Math[_0xa3761a(0x11b)](Math['log'](_0x1ffe5e)/Math[_0xa3761a(0x115)](_0x2a9da3));return parseFloat((_0x1ffe5e/Math['pow'](_0x2a9da3,_0x56cedd))[_0xa3761a(0x10e)](0x2))+_0x35a30f[_0x56cedd];}async[a0_0x1c7447(0x109)](_0x1c8878){const _0x3cf6ba=a0_0x1c7447;try{const _0x155bef=await this['attachmentService']['getActiveAttachments'](_0x1c8878);let _0x3449cb=0x0;for(const _0x2c2e7c of _0x155bef){_0x2c2e7c['mode']==='content'?_0x3449cb+=_0x2c2e7c[_0x3cf6ba(0x10b)]||0x0:_0x3449cb+=0x14;}return _0x3449cb;}catch(_0x1e21d1){return this['logger']?.[_0x3cf6ba(0x118)]('Error\x20estimating\x20total\x20tokens',{'agentId':_0x1c8878,'error':_0x1e21d1['message']}),0x0;}}async['getAttachmentSummary'](_0x290a11){const _0x56e9db=a0_0x1c7447;try{const _0x31c58e=await this['attachmentService']['getActiveAttachments'](_0x290a11),_0x302c61={'totalActive':_0x31c58e[_0x56e9db(0x121)],'contentMode':_0x31c58e[_0x56e9db(0x100)](_0x4908d3=>_0x4908d3[_0x56e9db(0x108)]==='content')[_0x56e9db(0x121)],'referenceMode':_0x31c58e['filter'](_0x2ab810=>_0x2ab810[_0x56e9db(0x108)]==='reference')[_0x56e9db(0x121)],'estimatedTokens':0x0,'files':[]};for(const _0x4c5822 of _0x31c58e){_0x302c61['estimatedTokens']+=_0x4c5822[_0x56e9db(0x10b)]||0x0,_0x302c61['files'][_0x56e9db(0x127)]({'fileName':_0x4c5822['fileName'],'mode':_0x4c5822['mode'],'size':this['formatBytes'](_0x4c5822['size']),'tokens':_0x4c5822[_0x56e9db(0x10b)]||0x0});}return _0x302c61;}catch(_0x3818f4){return this['logger']?.['error']('Error\x20getting\x20attachment\x20summary',{'agentId':_0x290a11,'error':_0x3818f4['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;