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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/bin/cli.js +1 -1
  2. package/bin/loxia-terminal-v2.js +1 -1
  3. package/bin/loxia-terminal.js +1 -1
  4. package/bin/start-with-terminal.js +1 -1
  5. package/package.json +1 -1
  6. package/scripts/install-scanners.js +1 -1
  7. package/src/analyzers/CSSAnalyzer.js +1 -1
  8. package/src/analyzers/ConfigValidator.js +1 -1
  9. package/src/analyzers/ESLintAnalyzer.js +1 -1
  10. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  11. package/src/analyzers/PrettierFormatter.js +1 -1
  12. package/src/analyzers/PythonAnalyzer.js +1 -1
  13. package/src/analyzers/SecurityAnalyzer.js +1 -1
  14. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  15. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  17. package/src/analyzers/codeCloneDetector/index.js +1 -1
  18. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  19. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  20. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  21. package/src/core/agentPool.js +1 -1
  22. package/src/core/agentScheduler.js +1 -1
  23. package/src/core/contextManager.js +1 -1
  24. package/src/core/messageProcessor.js +1 -1
  25. package/src/core/orchestrator.js +1 -1
  26. package/src/core/stateManager.js +1 -1
  27. package/src/index.js +1 -1
  28. package/src/interfaces/cli.js +1 -1
  29. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  38. package/src/interfaces/terminal/api/apiClient.js +1 -1
  39. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  40. package/src/interfaces/terminal/api/session.js +1 -1
  41. package/src/interfaces/terminal/api/websocket.js +1 -1
  42. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  43. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  44. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  45. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  47. package/src/interfaces/terminal/components/Header.js +1 -1
  48. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  49. package/src/interfaces/terminal/components/InputBox.js +1 -1
  50. package/src/interfaces/terminal/components/Layout.js +1 -1
  51. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  52. package/src/interfaces/terminal/components/MessageList.js +1 -1
  53. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  54. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  55. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  56. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  57. package/src/interfaces/terminal/components/TextInput.js +1 -1
  58. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  59. package/src/interfaces/terminal/config/constants.js +1 -1
  60. package/src/interfaces/terminal/index.js +1 -1
  61. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  62. package/src/interfaces/terminal/state/useAgents.js +1 -1
  63. package/src/interfaces/terminal/state/useConnection.js +1 -1
  64. package/src/interfaces/terminal/state/useMessages.js +1 -1
  65. package/src/interfaces/terminal/state/useTools.js +1 -1
  66. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  67. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  68. package/src/interfaces/terminal/utils/theme.js +1 -1
  69. package/src/interfaces/webServer.js +1 -1
  70. package/src/modules/fileExplorer/controller.js +1 -1
  71. package/src/modules/fileExplorer/index.js +1 -1
  72. package/src/modules/fileExplorer/middleware.js +1 -1
  73. package/src/modules/fileExplorer/routes.js +1 -1
  74. package/src/services/aiService.js +1 -1
  75. package/src/services/apiKeyManager.js +1 -1
  76. package/src/services/benchmarkService.js +1 -1
  77. package/src/services/budgetService.js +1 -1
  78. package/src/services/contextInjectionService.js +1 -1
  79. package/src/services/conversationCompactionService.js +1 -1
  80. package/src/services/errorHandler.js +1 -1
  81. package/src/services/fileAttachmentService.js +1 -1
  82. package/src/services/modelRouterService.js +1 -1
  83. package/src/services/modelsService.js +1 -1
  84. package/src/services/qualityInspector.js +1 -1
  85. package/src/services/tokenCountingService.js +1 -1
  86. package/src/tools/agentCommunicationTool.js +1 -1
  87. package/src/tools/agentDelayTool.js +1 -1
  88. package/src/tools/asyncToolManager.js +1 -1
  89. package/src/tools/baseTool.js +1 -1
  90. package/src/tools/browserTool.js +1 -1
  91. package/src/tools/cloneDetectionTool.js +1 -1
  92. package/src/tools/dependencyResolverTool.js +1 -1
  93. package/src/tools/fileContentReplaceTool.js +1 -1
  94. package/src/tools/fileSystemTool.js +1 -1
  95. package/src/tools/fileTreeTool.js +1 -1
  96. package/src/tools/imageTool.js +1 -1
  97. package/src/tools/importAnalyzerTool.js +1 -1
  98. package/src/tools/jobDoneTool.js +1 -1
  99. package/src/tools/seekTool.js +1 -1
  100. package/src/tools/staticAnalysisTool.js +1 -1
  101. package/src/tools/taskManagerTool.js +1 -1
  102. package/src/tools/terminalTool.js +1 -1
  103. package/src/tools/webTool.js +1 -1
  104. package/src/types/agent.js +1 -1
  105. package/src/types/contextReference.js +1 -1
  106. package/src/types/conversation.js +1 -1
  107. package/src/types/toolCommand.js +1 -1
  108. package/src/utilities/attachmentValidator.js +1 -1
  109. package/src/utilities/configManager.js +1 -1
  110. package/src/utilities/constants.js +1 -1
  111. package/src/utilities/directoryAccessManager.js +1 -1
  112. package/src/utilities/fileProcessor.js +1 -1
  113. package/src/utilities/logger.js +1 -1
  114. package/src/utilities/tagParser.js +1 -1
  115. package/src/utilities/toolConstants.js +1 -1
  116. package/src/utilities/userDataDir.js +1 -0
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-C5X7qBNF.js → index-DXN850Y2.js} +69 -65
  119. package/web-ui/build/static/index-an-YRzUX.css +1 -0
  120. package/web-ui/build/static/index-g2UFuTwG.css +0 -1
@@ -1 +1 @@
1
- const a0_0x4e369d=a0_0x312b;(function(_0x396554,_0x4e3088){const _0x4a9497=a0_0x312b,_0x50f0d2=_0x396554();while(!![]){try{const _0x2b0d6a=-parseInt(_0x4a9497(0xa3))/0x1+-parseInt(_0x4a9497(0xce))/0x2+-parseInt(_0x4a9497(0xd6))/0x3+-parseInt(_0x4a9497(0xb3))/0x4*(-parseInt(_0x4a9497(0xbe))/0x5)+-parseInt(_0x4a9497(0xc8))/0x6*(-parseInt(_0x4a9497(0xcb))/0x7)+parseInt(_0x4a9497(0x92))/0x8+parseInt(_0x4a9497(0x99))/0x9;if(_0x2b0d6a===_0x4e3088)break;else _0x50f0d2['push'](_0x50f0d2['shift']());}catch(_0x3f37b5){_0x50f0d2['push'](_0x50f0d2['shift']());}}}(a0_0x601b,0x4a007));import{COMPACTION_CONFIG,COMPACTION_STRATEGIES,TOKEN_COUNTING_MODES}from'../utilities/constants.js';class ConversationCompactionService{constructor(_0x35cbdf,_0x1bcd6f,_0xa7292f){const _0x4d03a1=a0_0x312b;this['tokenCountingService']=_0x35cbdf,this[_0x4d03a1(0xd2)]=_0x1bcd6f,this[_0x4d03a1(0xc9)]=_0xa7292f,this['summaryPromptTemplate']=this['_createSummaryPromptTemplate']();}async[a0_0x4e369d(0xd1)](_0x578360,_0x21280e,_0x23c30d,_0xabaffb={}){const _0x58c23a=a0_0x4e369d,_0x126b94=Date['now']();try{if(!Array['isArray'](_0x578360)||_0x578360[_0x58c23a(0xbd)]===0x0)throw new Error(_0x58c23a(0xb0));if(_0x578360[_0x58c23a(0xbd)]<COMPACTION_CONFIG['MIN_MESSAGES_FOR_COMPACTION'])return this['logger']['warn']('Too\x20few\x20messages\x20for\x20compaction',{'messageCount':_0x578360[_0x58c23a(0xbd)],'minimum':COMPACTION_CONFIG['MIN_MESSAGES_FOR_COMPACTION']}),{'compactedMessages':_0x578360,'strategy':'none','originalTokenCount':0x0,'compactedTokenCount':0x0,'reductionPercent':0x0,'skipped':!![],'reason':_0x58c23a(0xa1)};const _0x3bfa06=_0x21280e!==_0x23c30d,_0x105975=_0xabaffb[_0x58c23a(0xb1)]||![];let _0xf29583;if(_0x3bfa06)_0xf29583=COMPACTION_STRATEGIES['TRUNCATION'];else _0x105975?_0xf29583=COMPACTION_STRATEGIES['AGGRESSIVE']:_0xf29583=_0xabaffb[_0x58c23a(0xb7)]||COMPACTION_STRATEGIES['SUMMARIZATION'];this[_0x58c23a(0xc9)][_0x58c23a(0xc6)](_0x58c23a(0xcd),{'messageCount':_0x578360['length'],'currentModel':_0x21280e,'targetModel':_0x23c30d,'strategy':_0xf29583,'isModelSwitch':_0x3bfa06,'isRetry':_0x105975});let _0x51e4ad;switch(_0xf29583){case COMPACTION_STRATEGIES[_0x58c23a(0x8e)]:_0x51e4ad=await this['_compactWithSummarization'](_0x578360,_0x21280e,_0xabaffb);break;case COMPACTION_STRATEGIES[_0x58c23a(0xd3)]:_0x51e4ad=await this[_0x58c23a(0x8f)](_0x578360,_0x23c30d,_0xabaffb);break;case COMPACTION_STRATEGIES[_0x58c23a(0xa2)]:_0x51e4ad=await this[_0x58c23a(0xd7)](_0x578360,_0x21280e,_0xabaffb);break;default:throw new Error('Unknown\x20compaction\x20strategy:\x20'+_0xf29583);}const _0x149dda=Date['now']()-_0x126b94;return _0x51e4ad[_0x58c23a(0xc7)]=_0x149dda,_0x51e4ad[_0x58c23a(0x8d)]=new Date()['toISOString'](),this[_0x58c23a(0xc9)][_0x58c23a(0xc6)]('Compaction\x20completed\x20successfully',{'strategy':_0x51e4ad[_0x58c23a(0xb7)],'originalMessages':_0x578360[_0x58c23a(0xbd)],'compactedMessages':_0x51e4ad[_0x58c23a(0xc3)]['length'],'originalTokens':_0x51e4ad[_0x58c23a(0xbf)],'compactedTokens':_0x51e4ad['compactedTokenCount'],'reductionPercent':_0x51e4ad[_0x58c23a(0x9b)]['toFixed'](0x2),'executionTime':_0x149dda+'ms'}),_0x51e4ad;}catch(_0x504f53){const _0x35dd83=Date[_0x58c23a(0xd5)]()-_0x126b94;this[_0x58c23a(0xc9)]['error'](_0x58c23a(0xa0),{'error':_0x504f53['message'],'messageCount':_0x578360[_0x58c23a(0xbd)],'currentModel':_0x21280e,'targetModel':_0x23c30d,'executionTime':_0x35dd83+'ms'});throw _0x504f53;}}async[a0_0x4e369d(0x9f)](_0x384ff7,_0xf4c894,_0x3330a9){const _0x308d80=a0_0x4e369d,_0x2ea992=COMPACTION_STRATEGIES[_0x308d80(0x8e)],_0x44ebf6=await this[_0x308d80(0x96)]['estimateConversationTokens'](_0x384ff7,_0xf4c894,TOKEN_COUNTING_MODES[_0x308d80(0x95)]),_0x27f79f=await this['_identifySegments'](_0x384ff7,_0xf4c894,COMPACTION_CONFIG[_0x308d80(0xd4)],COMPACTION_CONFIG[_0x308d80(0xc5)]);this['logger'][_0x308d80(0xba)]('Segments\x20identified\x20for\x20summarization',{'beginningMessages':_0x27f79f[_0x308d80(0xc1)][_0x308d80(0xbd)],'middleMessages':_0x27f79f[_0x308d80(0xa9)]['length'],'endMessages':_0x27f79f[_0x308d80(0xb9)]['length'],'middleStartIndex':_0x27f79f[_0x308d80(0xcc)],'middleEndIndex':_0x27f79f[_0x308d80(0xcf)],'totalMessages':_0x384ff7['length']});const _0x4ce892=await this['_generateSummary'](_0x27f79f['middle'],_0xf4c894,{..._0x3330a9,'middleStartIndex':_0x27f79f[_0x308d80(0xcc)],'middleEndIndex':_0x27f79f[_0x308d80(0xcf)]}),_0xa9198e=[..._0x27f79f[_0x308d80(0xc1)],_0x4ce892,..._0x27f79f['end']],_0x13957c=await this['tokenCountingService']['estimateConversationTokens'](_0xa9198e,_0xf4c894,TOKEN_COUNTING_MODES[_0x308d80(0x95)]),_0x71e982=(_0x44ebf6-_0x13957c)/_0x44ebf6*0x64;return{'compactedMessages':_0xa9198e,'strategy':_0x2ea992,'originalTokenCount':_0x44ebf6,'compactedTokenCount':_0x13957c,'reductionPercent':_0x71e982,'segments':{'beginningCount':_0x27f79f['beginning'][_0x308d80(0xbd)],'middleCount':_0x27f79f['middle']['length'],'endCount':_0x27f79f[_0x308d80(0xb9)][_0x308d80(0xbd)],'summaryInserted':!![]}};}async['_compactWithTruncation'](_0xc82221,_0xe49e5f,_0x3e4af3){const _0x356113=a0_0x4e369d,_0x2e8aaf=COMPACTION_STRATEGIES['TRUNCATION'],_0xb5daad=this['tokenCountingService']['getModelContextWindow'](_0xe49e5f),_0x395264=Math['floor'](_0xb5daad*0.8),_0x3a1433=await this['tokenCountingService']['estimateConversationTokens'](_0xc82221,_0xe49e5f,TOKEN_COUNTING_MODES[_0x356113(0x95)]),_0x19673c=await this['_identifySegments'](_0xc82221,_0xe49e5f,COMPACTION_CONFIG[_0x356113(0xaa)],COMPACTION_CONFIG[_0x356113(0xc4)]);this['logger'][_0x356113(0xba)](_0x356113(0xac),{'beginningMessages':_0x19673c[_0x356113(0xc1)]['length'],'middleMessages':_0x19673c[_0x356113(0xa9)][_0x356113(0xbd)],'endMessages':_0x19673c['end'][_0x356113(0xbd)],'targetTokenCount':_0x395264,'originalTokenCount':_0x3a1433});const _0x477877={'role':'system','content':COMPACTION_CONFIG['COMPACTION_SEPARATOR_MESSAGE'],'type':_0x356113(0xad),'timestamp':new Date()['toISOString'](),'metadata':{'truncatedMessages':_0x19673c[_0x356113(0xa9)][_0x356113(0xbd)],'reason':_0x356113(0x8c)}},_0x34e608=[..._0x19673c['beginning'],_0x477877,..._0x19673c['end']],_0x1243f9=await this['tokenCountingService']['estimateConversationTokens'](_0x34e608,_0xe49e5f,TOKEN_COUNTING_MODES['ACCURATE']),_0x26be73=(_0x3a1433-_0x1243f9)/_0x3a1433*0x64;return{'compactedMessages':_0x34e608,'strategy':_0x2e8aaf,'originalTokenCount':_0x3a1433,'compactedTokenCount':_0x1243f9,'reductionPercent':_0x26be73,'segments':{'beginningCount':_0x19673c['beginning'][_0x356113(0xbd)],'middleCount':_0x19673c['middle'][_0x356113(0xbd)],'endCount':_0x19673c[_0x356113(0xb9)]['length'],'summaryInserted':![]}};}async[a0_0x4e369d(0xd7)](_0xd73043,_0x368e76,_0x34f11d){const _0xe991ad=a0_0x4e369d,_0xe64cdb=COMPACTION_STRATEGIES[_0xe991ad(0xa2)],_0x5544cb=await this['tokenCountingService']['estimateConversationTokens'](_0xd73043,_0x368e76,TOKEN_COUNTING_MODES[_0xe991ad(0x95)]),_0x269619=await this['_identifySegments'](_0xd73043,_0x368e76,COMPACTION_CONFIG['AGGRESSIVE_BEGINNING_PERCENTAGE'],COMPACTION_CONFIG[_0xe991ad(0xc0)]);this['logger'][_0xe991ad(0xba)](_0xe991ad(0xc2),{'beginningMessages':_0x269619['beginning']['length'],'middleMessages':_0x269619['middle']['length'],'endMessages':_0x269619[_0xe991ad(0xb9)][_0xe991ad(0xbd)],'middleStartIndex':_0x269619['middleStartIndex'],'middleEndIndex':_0x269619['middleEndIndex']});const _0x521958=await this['_generateSummary'](_0x269619['middle'],_0x368e76,{..._0x34f11d,'aggressive':!![],'middleStartIndex':_0x269619[_0xe991ad(0xcc)],'middleEndIndex':_0x269619[_0xe991ad(0xcf)]}),_0x19703b=[..._0x269619['beginning'],_0x521958,..._0x269619['end']],_0x2bade9=await this[_0xe991ad(0x96)]['estimateConversationTokens'](_0x19703b,_0x368e76,TOKEN_COUNTING_MODES['ACCURATE']),_0x2b5f5c=(_0x5544cb-_0x2bade9)/_0x5544cb*0x64;return{'compactedMessages':_0x19703b,'strategy':_0xe64cdb,'originalTokenCount':_0x5544cb,'compactedTokenCount':_0x2bade9,'reductionPercent':_0x2b5f5c,'segments':{'beginningCount':_0x269619[_0xe991ad(0xc1)][_0xe991ad(0xbd)],'middleCount':_0x269619[_0xe991ad(0xa9)][_0xe991ad(0xbd)],'endCount':_0x269619['end']['length'],'summaryInserted':!![]}};}async['_identifySegments'](_0x5b2d24,_0x976e77,_0x3632d1,_0x5cc92b){const _0x5ee5e1=a0_0x4e369d,_0x8024cd=await this[_0x5ee5e1(0x96)][_0x5ee5e1(0x9c)](_0x5b2d24,_0x976e77,TOKEN_COUNTING_MODES['ACCURATE']),_0x3fab29=Math['floor'](_0x8024cd*_0x3632d1),_0x1cb117=Math['floor'](_0x8024cd*_0x5cc92b);let _0x495818=0x0,_0xc304d7=0x0;for(let _0x173438=0x0;_0x173438<_0x5b2d24['length'];_0x173438++){const _0x5c70b4=await this['tokenCountingService']['countTokens'](_0x5b2d24[_0x173438]['content'],_0x976e77,TOKEN_COUNTING_MODES['CACHED']);if(_0x495818+_0x5c70b4>_0x3fab29&&_0x173438>=0x2)break;_0x495818+=_0x5c70b4,_0xc304d7=_0x173438+0x1;}let _0x3404aa=0x0,_0x4fb030=_0x5b2d24[_0x5ee5e1(0xbd)];for(let _0x59472a=_0x5b2d24[_0x5ee5e1(0xbd)]-0x1;_0x59472a>=0x0;_0x59472a--){const _0x270ce0=await this['tokenCountingService'][_0x5ee5e1(0xb4)](_0x5b2d24[_0x59472a]['content'],_0x976e77,TOKEN_COUNTING_MODES[_0x5ee5e1(0xa8)]);if(_0x3404aa+_0x270ce0>_0x1cb117)break;_0x3404aa+=_0x270ce0,_0x4fb030=_0x59472a;}_0x4fb030<_0xc304d7&&(_0x4fb030=_0xc304d7);const _0x440ac2=_0x5b2d24['slice'](0x0,_0xc304d7),_0x37a4cf=_0x5b2d24[_0x5ee5e1(0x97)](_0xc304d7,_0x4fb030),_0x168e8a=_0x5b2d24['slice'](_0x4fb030);return{'beginning':_0x440ac2,'middle':_0x37a4cf,'end':_0x168e8a,'middleStartIndex':_0xc304d7,'middleEndIndex':_0x4fb030-0x1};}async[a0_0x4e369d(0xae)](_0x4c2bb9,_0x5f27e2,_0x172f5c={}){const _0x1f0f82=a0_0x4e369d;if(_0x4c2bb9[_0x1f0f82(0xbd)]===0x0)return{'role':_0x1f0f82(0xd0),'content':COMPACTION_CONFIG['COMPACTION_SUMMARY_PREFIX']+'\x20No\x20messages\x20to\x20summarize.','type':_0x1f0f82(0xa4),'timestamp':new Date()['toISOString']()};const _0x72af7a=_0x4c2bb9[_0x1f0f82(0x93)](_0x322531=>_0x322531['role']+':\x20'+_0x322531[_0x1f0f82(0x9e)])[_0x1f0f82(0xbb)]('\x0a\x0a'),_0x4fe28d=this['summaryPromptTemplate'][_0x1f0f82(0xaf)]('{middle_segment}',_0x72af7a)['replace'](_0x1f0f82(0xbc),_0x172f5c['aggressive']?'\x0a\x0aIMPORTANT:\x20Be\x20VERY\x20aggressive\x20in\x20compression.\x20Prioritize\x20only\x20the\x20most\x20critical\x20information.\x20Aim\x20for\x20maximum\x20brevity\x20while\x20maintaining\x20essential\x20context.':''),_0x453371=[COMPACTION_CONFIG['COMPACTION_MODEL'],...COMPACTION_CONFIG['COMPACTION_MODEL_FALLBACKS']];let _0x494cbe=null;for(const _0x2e8723 of _0x453371){try{this[_0x1f0f82(0xc9)][_0x1f0f82(0xba)]('Generating\x20summary',{'compactionModel':_0x2e8723,'middleMessageCount':_0x4c2bb9['length'],'middleContentLength':_0x72af7a['length'],'aggressive':_0x172f5c['aggressive']});const _0x2bf535=await this[_0x1f0f82(0xd2)][_0x1f0f82(0x9a)](_0x2e8723,_0x4fe28d,{'systemPrompt':_0x1f0f82(0xa6),'maxTokens':COMPACTION_CONFIG['MAX_SUMMARY_TOKENS'],'temperature':0.3,'sessionId':_0x172f5c['sessionId'],'platformProvided':!![]}),_0x3927e5=_0x2bf535[_0x1f0f82(0x9e)]['trim'](),_0x575c72=_0x172f5c[_0x1f0f82(0xcc)]!==undefined&&_0x172f5c[_0x1f0f82(0xcf)]!==undefined?_0x1f0f82(0xa7)+_0x172f5c[_0x1f0f82(0xcc)]+'-'+_0x172f5c[_0x1f0f82(0xcf)]:_0x4c2bb9['length']+_0x1f0f82(0x94);return this[_0x1f0f82(0xc9)][_0x1f0f82(0xc6)]('Summary\x20generated\x20successfully',{'compactionModel':_0x2e8723,'originalLength':_0x72af7a['length'],'summaryLength':_0x3927e5[_0x1f0f82(0xbd)],'compressionRatio':(_0x3927e5[_0x1f0f82(0xbd)]/_0x72af7a['length']*0x64)['toFixed'](0x2)+'%','indexRange':_0x575c72}),{'role':'system','content':COMPACTION_CONFIG['COMPACTION_SUMMARY_PREFIX']+'\x20-\x20'+_0x575c72+']\x0a\x0a'+_0x3927e5+'\x0a\x0a'+COMPACTION_CONFIG['COMPACTION_SUMMARY_SUFFIX'],'type':_0x1f0f82(0xa4),'timestamp':new Date()[_0x1f0f82(0x90)](),'metadata':{'originalMessageCount':_0x4c2bb9['length'],'originalStartIndex':_0x172f5c[_0x1f0f82(0xcc)],'originalEndIndex':_0x172f5c['middleEndIndex'],'compactionModel':_0x2e8723,'aggressive':_0x172f5c[_0x1f0f82(0x91)]||![]}};}catch(_0x21c9ec){_0x494cbe=_0x21c9ec,this[_0x1f0f82(0xc9)][_0x1f0f82(0xb8)]('Summary\x20generation\x20failed\x20with\x20model,\x20trying\x20next\x20fallback',{'compactionModel':_0x2e8723,'error':_0x21c9ec['message'],'middleMessageCount':_0x4c2bb9[_0x1f0f82(0xbd)]});}}this['logger'][_0x1f0f82(0xb5)]('All\x20summary\x20generation\x20attempts\x20failed',{'modelsAttempted':_0x453371['length'],'lastError':_0x494cbe?.[_0x1f0f82(0xb2)],'middleMessageCount':_0x4c2bb9['length']});const _0x5e0657=this[_0x1f0f82(0xa5)](_0x4c2bb9),_0x298698=_0x172f5c['middleStartIndex']!==undefined&&_0x172f5c['middleEndIndex']!==undefined?'original\x20messages\x20'+_0x172f5c['middleStartIndex']+'-'+_0x172f5c['middleEndIndex']:_0x4c2bb9[_0x1f0f82(0xbd)]+'\x20messages';return{'role':'system','content':COMPACTION_CONFIG['COMPACTION_SUMMARY_PREFIX']+_0x1f0f82(0x9d)+_0x298698+']\x0a\x0a'+_0x5e0657+'\x0a\x0a'+COMPACTION_CONFIG[_0x1f0f82(0xd8)],'type':'summary','timestamp':new Date()[_0x1f0f82(0x90)](),'metadata':{'originalMessageCount':_0x4c2bb9[_0x1f0f82(0xbd)],'originalStartIndex':_0x172f5c['middleStartIndex'],'originalEndIndex':_0x172f5c[_0x1f0f82(0xcf)],'fallback':!![],'error':_0x494cbe?.[_0x1f0f82(0xb2)],'modelsAttempted':_0x453371}};}[a0_0x4e369d(0xa5)](_0x1c3a97){const _0xa47a9=a0_0x4e369d,_0x2450a2=_0x1c3a97[_0xa47a9(0xbd)],_0x20100b=_0x1c3a97['map'](_0x30c210=>_0x30c210['role']),_0x327b23=_0x20100b[_0xa47a9(0xab)](_0x2b4781=>_0x2b4781==='user')['length'],_0x55a7da=_0x20100b[_0xa47a9(0xab)](_0x320ff0=>_0x320ff0===_0xa47a9(0x98))[_0xa47a9(0xbd)];return'['+_0x2450a2+_0xa47a9(0xb6)+_0x327b23+'\x20user\x20messages,\x20'+_0x55a7da+'\x20assistant\x20responses.\x20'+'Summary\x20generation\x20unavailable\x20-\x20middle\x20section\x20compressed\x20for\x20context\x20management.]';}[a0_0x4e369d(0xca)](){return'You\x20are\x20compacting\x20a\x20conversation\x20to\x20preserve\x20critical\x20information\x20while\x20reducing\x20token\x20count.\x0a\x0aCONTEXT:\x20This\x20is\x20part\x20of\x20a\x20longer\x20conversation\x20that\x20needs\x20compactization\x20for\x20continued\x20processing.\x0a\x0aPRESERVATION\x20GUIDELINES:\x0a\x0aHIGH\x20PRIORITY\x20(Always\x20Preserve):\x0a-\x20Future\x20reference\x20value:\x20Information\x20likely\x20to\x20be\x20referenced\x20again\x0a-\x20Decisions\x20and\x20reasoning:\x20WHY\x20things\x20were\x20decided,\x20not\x20just\x20what\x0a-\x20API\x20signatures\x20and\x20interfaces:\x20Function\x20definitions,\x20method\x20calls\x0a-\x20Active\x20dependencies:\x20Information\x20that\x20ongoing\x20work\x20relies\x20on\x0a-\x20Error\x20patterns\x20and\x20solutions:\x20What\x20failed\x20and\x20how\x20it\x20was\x20fixed\x0a-\x20Key\x20facts\x20and\x20data:\x20Specific\x20numbers,\x20names,\x20configurations\x0a\x0aMEDIUM\x20PRIORITY\x20(Compress\x20Intelligently):\x0a-\x20Code\x20blocks:\x20Keep\x20function\x20signatures\x20+\x20brief\x20description,\x20compress\x20implementation\x20details\x0a-\x20Working\x20solutions:\x20Essence\x20and\x20outcome,\x20not\x20every\x20implementation\x20step\x0a-\x20Failed\x20attempts:\x20Brief\x20mention\x20of\x20what\x20didn\x27t\x20work\x20and\x20why,\x20skip\x20detailed\x20troubleshooting\x0a-\x20Repetitive\x20content:\x20Consolidate\x20similar\x20examples\x20or\x20explanations\x0a\x0aLOW\x20PRIORITY\x20(Heavily\x20Compress/Remove):\x0a-\x20Completed\x20calculations:\x20Keep\x20results,\x20skip\x20intermediate\x20steps\x0a-\x20Verbose\x20explanations:\x20Summarize\x20well-known\x20concepts\x0a-\x20Debug\x20output:\x20Skip\x20terminal\x20logs\x20and\x20error\x20messages\x20that\x20served\x20their\x20purpose\x0a-\x20Trial-and-error\x20sequences:\x20Skip\x20multiple\x20failed\x20attempts\x20with\x20no\x20lasting\x20value\x0a-\x20Acknowledgments\x20and\x20pleasantries:\x20Skip\x20\x22thank\x20you\x22,\x20\x22sure\x22,\x20\x22okay\x22\x20type\x20exchanges\x0a\x0aCONVERSATION\x20SEGMENT\x20TO\x20SUMMARIZE:\x0a{middle_segment}\x0a\x0aTASK:\x20Create\x20a\x20concise\x20summary\x20that\x20preserves\x20logical\x20flow\x20and\x20critical\x20information.\x20Focus\x20on:\x0a1.\x20Key\x20decisions\x20and\x20their\x20reasoning\x0a2.\x20Important\x20facts,\x20data,\x20and\x20configurations\x0a3.\x20Active\x20context\x20needed\x20for\x20continuation\x0a4.\x20Problem-solving\x20outcomes\x20(skip\x20the\x20debugging\x20process)\x0a5.\x20Dependencies\x20and\x20interfaces\x20that\x20code/work\x20relies\x20on\x0a\x0aSomeone\x20reading\x20this\x20should\x20understand\x20the\x20conversation\x20progression\x20and\x20have\x20all\x20information\x20needed\x20for\x20effective\x20continuation.\x0a{aggressive_instruction}\x0a\x0aOUTPUT:\x20Provide\x20ONLY\x20the\x20summary\x20text\x20without\x20preamble,\x20explanation,\x20or\x20meta-commentary.';}}function a0_0x312b(_0x330e42,_0xdddeaf){_0x330e42=_0x330e42-0x8c;const _0x601bb9=a0_0x601b();let _0x312b52=_0x601bb9[_0x330e42];if(a0_0x312b['ETUxQL']===undefined){var _0x31a45d=function(_0x53dcb4){const _0x4a013c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35cbdf='',_0x1bcd6f='';for(let _0xa7292f=0x0,_0x578360,_0x21280e,_0x23c30d=0x0;_0x21280e=_0x53dcb4['charAt'](_0x23c30d++);~_0x21280e&&(_0x578360=_0xa7292f%0x4?_0x578360*0x40+_0x21280e:_0x21280e,_0xa7292f++%0x4)?_0x35cbdf+=String['fromCharCode'](0xff&_0x578360>>(-0x2*_0xa7292f&0x6)):0x0){_0x21280e=_0x4a013c['indexOf'](_0x21280e);}for(let _0xabaffb=0x0,_0x126b94=_0x35cbdf['length'];_0xabaffb<_0x126b94;_0xabaffb++){_0x1bcd6f+='%'+('00'+_0x35cbdf['charCodeAt'](_0xabaffb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1bcd6f);};a0_0x312b['eJXOlh']=_0x31a45d,a0_0x312b['SuLOOX']={},a0_0x312b['ETUxQL']=!![];}const _0x35b813=_0x601bb9[0x0],_0x42b499=_0x330e42+_0x35b813,_0xc4e4ca=a0_0x312b['SuLOOX'][_0x42b499];return!_0xc4e4ca?(_0x312b52=a0_0x312b['eJXOlh'](_0x312b52),a0_0x312b['SuLOOX'][_0x42b499]=_0x312b52):_0x312b52=_0xc4e4ca,_0x312b52;}function a0_0x601b(){const _0x291628=['ig1LC3nHz2vZ','qundvvjbveu','Dg9Rzw5dB3vUDgLUz1nLCNzPy2u','C2XPy2u','yxnZAxn0yw50','mtK0ndm2mg1is0feCq','C2vUze1LC3nHz2u','CMvKDwn0Aw9UugvYy2vUDa','zxn0Aw1HDgvdB252zxjZyxrPB25uB2TLBNm','ic0G','y29UDgvUDa','x2nVBxbHy3rxAxrOu3vTBwfYAxPHDgLVBG','q29TCgfJDgLVBIbMywLSzwq','vg9VigzLDYbTzxnZywDLCW','quDhuKvtu0Lwrq','mZK3ndGZC2Tpru1W','C3vTBwfYEq','x2nYzwf0zuzHBgXIywnRu3vTBwfYEq','ww91igfYzsbHignVBNzLCNnHDgLVBIbZDw1TyxjPEMf0Aw9Uigv4CgvYDc4Gww91CIbNB2fSigLZihrVignVBxbYzxnZignVBNzLCNnHDgLVBNmGD2HPBguGChjLC2vYDMLUzYbJCML0AwnHBcbPBMzVCM1HDgLVBIbMB3iGy29UDgLUDwvKigLUDgvYywn0Aw9UlG','B3jPz2LUywWGBwvZC2fNzxmG','q0fdseve','BwLKzgXL','vfjvtKnbveLptL9cruDjtK5jtKDFuevsq0vovefhrq','zMLSDgvY','u2vNBwvUDhmGAwrLBNrPzMLLzcbMB3iGDhj1BMnHDgLVBG','C2vWyxjHDg9Y','x2DLBMvYyxrLu3vTBwfYEq','CMvWBgfJzq','twvZC2fNzxmGyxjYyxKGAxmGCMvXDwLYzwqGyw5KignHBM5VDcbIzsbLBxb0Eq','AxnszxrYEq','BwvZC2fNzq','mJa1mKD4wu9uua','y291BNruB2TLBNm','zxjYB3i','ig1LC3nHz2vZihn1Bw1HCML6zwqGlsa','C3rYyxrLz3K','D2fYBG','zw5K','zgvIDwC','AM9PBG','E2fNz3jLC3nPDMvFAw5ZDhj1y3rPB259','BgvUz3rO','mti0nwrts1PtzW','B3jPz2LUywXuB2TLBKnVDw50','quDhuKvtu0Lwrv9ftKrFuevsq0vovefhrq','yMvNAw5UAw5N','u2vNBwvUDhmGAwrLBNrPzMLLzcbMB3iGywDNCMvZC2L2zsbJB21Wywn0Aw9U','y29TCgfJDgvKtwvZC2fNzxm','vfjvtKnbveLptL9ftKrFuevsq0vovefhrq','ru5ex1nfr01ftLrFuevsq0vovefhrq','Aw5MBW','zxHLy3v0Aw9UvgLTzq','mta5ntq2mKvltgfYEG','Bg9Nz2vY','x2nYzwf0zvn1Bw1HCNLqCM9TChruzw1WBgf0zq','mJfju21Yy3q','BwLKzgXLu3rHCNrjBMrLEa','u3rHCNrPBMCGy29UDMvYC2f0Aw9UignVBxbHy3rPB24','nJm3mtCYALvzzLHu','BwLKzgXLrw5Ksw5KzxG','C3LZDgvT','y29TCgfJDenVBNzLCNnHDgLVBG','ywLtzxj2AwnL','vfjvtKnbveLptG','qKvhsu5osu5hx1nfr01ftLrFuevsq0vovefhrq','BM93','mJe2nJe1ze9mshHr','x2nVBxbHy3rxAxrOqwDNCMvZC2L2zvn1Bw1HCML6yxrPB24','q09nuefdveLptL9tvu1nqvjzx1nvrKzjwa','tw9KzwWGC3DPDgnOic0GBwLKzgXLihnLy3rPB24GCMvTB3zLzcb0BYbMAxqGDgfYz2v0ignVBNrLEhqGD2LUzg93','DgLTzxn0yw1W','u1vntufssvPbveLptG','x2nVBxbHy3rxAxrOvhj1BMnHDgLVBG','Dg9ju09tDhjPBMC','ywDNCMvZC2L2zq','mtu5otaXnLPZq3HbwG','BwfW'];a0_0x601b=function(){return _0x291628;};return a0_0x601b();}export default ConversationCompactionService;
1
+ const a0_0x1eeff3=a0_0x4587;(function(_0x512ffe,_0x15ea2a){const _0x3309dc=a0_0x4587,_0x10b02c=_0x512ffe();while(!![]){try{const _0x11c443=-parseInt(_0x3309dc(0x1c6))/0x1*(parseInt(_0x3309dc(0x1c3))/0x2)+parseInt(_0x3309dc(0x1cb))/0x3+-parseInt(_0x3309dc(0x1c5))/0x4+parseInt(_0x3309dc(0x206))/0x5+-parseInt(_0x3309dc(0x1e7))/0x6+-parseInt(_0x3309dc(0x1f6))/0x7+parseInt(_0x3309dc(0x1dd))/0x8;if(_0x11c443===_0x15ea2a)break;else _0x10b02c['push'](_0x10b02c['shift']());}catch(_0x51d932){_0x10b02c['push'](_0x10b02c['shift']());}}}(a0_0x12e1,0x21ae8));import{COMPACTION_CONFIG,COMPACTION_STRATEGIES,TOKEN_COUNTING_MODES}from'../utilities/constants.js';function a0_0x12e1(){const _0x242d60=['Aw5MBW','q0fdseve','qundvvjbveu','vfjvtKnbveLptL9cruDjtK5jtKDFuevsq0vovefhrq','Dg9ju09tDhjPBMC','BwLKzgXL','mti5nZGZmhjurgLiAW','zw5K','zxjYB3i','mtK2nZu2tuDYreTm','x2nVBxbHy3rxAxrOvhj1BMnHDgLVBG','ndC0ndqWzMj0EM5W','mvjJsvrYta','ywLtzxj2AwnL','CM9Szq','C2vZC2LVBKLK','vfjvtKnbveLptL9ftKrFuevsq0vovefhrq','mJi0odi5q1bpweDz','y29UDgvUDa','x2nVBxbHy3rxAxrOqwDNCMvZC2L2zvn1Bw1HCML6yxrPB24','x2nYzwf0zuzHBgXIywnRu3vTBwfYEq','ig1LC3nHz2vZ','CMvWBgfJzq','q09nuefdveLptL9tvu1nqvjzx1nvrKzjwa','AM9PBG','x2nVBxbHy3rxAxrOu3vTBwfYAxPHDgLVBG','x2DLBMvYyxrLu3vTBwfYEq','qKvhsu5osu5hx1nfr01ftLrFuevsq0vovefhrq','q29TCgfJDgLVBIbJB21WBgv0zwqGC3vJy2vZC2z1BgX5','u3vTBwfYEsbNzw5LCMf0Aw9UigzHAwXLzcb3AxrOig1VzgvSlcb0CNLPBMCGBMv4DcbMywXSyMfJAW','q09nuefdveLptL9tvu1nqvjzx1bsruzjwa','z2v0tw9KzwXdB250zxH0v2LUzg93','vfjvtKnbveLptG','DhjPBq','u1vntufssvPbveLptG','mte2mZKYofbvzePWDG','BgvUz3rO','C3vTBwfYEvbYB21WDfrLBxbSyxrL','q09nuefdveLptL9nt0rftf9gquXmqKfds1m','BwfW','x2LKzw50Awz5u2vNBwvUDhm','quDhuKvtu0Lwrq','BM93','BwvZC2fNzq','zxn0Aw1HDgvdB252zxjZyxrPB25uB2TLBNm','nJy1ndeYEMjMDhPX','quDhuKvtu0Lwrv9cruDjtK5jtKDFuevsq0vovefhrq','ywDNCMvZC2L2zq','AxnbCNjHEq','q29TCgfJDgLVBIbMywLSzwq','Bg9Nz2vY','u2vNBwvUDhmGAwrLBNrPzMLLzcbMB3iGDhj1BMnHDgLVBG','ic0G','B3jPz2LUywXuB2TLBKnVDw50','tuLox01fu1nbr0vtx0zpuL9dt01qqunusu9o','ihvZzxiGBwvZC2fNzxmSia','zMXVB3i','y291BNruB2TLBNm','quDhuKvtu0Lwrv9ftKrFuevsq0vovefhrq','C3vTBwfYEq','otKWntbfrKLuwuO','BwLKzgXLrw5Ksw5KzxG','x2nYzwf0zvn1Bw1HCNLqCM9TChruzw1WBgf0zq','xqOk','yMvNAw5UAw5N','BwLKzgXLu3rHCNrjBMrLEa','C3LZDgvT','CMvKDwn0Aw9UugvYy2vUDa','twvZC2fNzxmGyxjYyxKGAxmGCMvXDwLYzwqGyw5KignHBM5VDcbIzsbLBxb0Eq','Dg9Rzw5dB3vUDgLUz1nLCNzPy2u'];a0_0x12e1=function(){return _0x242d60;};return a0_0x12e1();}function a0_0x4587(_0x2d5a70,_0x364069){_0x2d5a70=_0x2d5a70-0x1c1;const _0x12e116=a0_0x12e1();let _0x458752=_0x12e116[_0x2d5a70];if(a0_0x4587['edbEkB']===undefined){var _0x2748c4=function(_0x58a240){const _0x2d6fcd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb2fb78='',_0x525fa4='';for(let _0x5a34e5=0x0,_0x228684,_0x543211,_0x1de646=0x0;_0x543211=_0x58a240['charAt'](_0x1de646++);~_0x543211&&(_0x228684=_0x5a34e5%0x4?_0x228684*0x40+_0x543211:_0x543211,_0x5a34e5++%0x4)?_0xb2fb78+=String['fromCharCode'](0xff&_0x228684>>(-0x2*_0x5a34e5&0x6)):0x0){_0x543211=_0x2d6fcd['indexOf'](_0x543211);}for(let _0x25279e=0x0,_0x4bf0ce=_0xb2fb78['length'];_0x25279e<_0x4bf0ce;_0x25279e++){_0x525fa4+='%'+('00'+_0xb2fb78['charCodeAt'](_0x25279e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x525fa4);};a0_0x4587['KGZzjr']=_0x2748c4,a0_0x4587['WyslYN']={},a0_0x4587['edbEkB']=!![];}const _0x15f71b=_0x12e116[0x0],_0x590497=_0x2d5a70+_0x15f71b,_0x2836a2=a0_0x4587['WyslYN'][_0x590497];return!_0x2836a2?(_0x458752=a0_0x4587['KGZzjr'](_0x458752),a0_0x4587['WyslYN'][_0x590497]=_0x458752):_0x458752=_0x2836a2,_0x458752;}class ConversationCompactionService{constructor(_0xb2fb78,_0x525fa4,_0x5a34e5){const _0x3ae544=a0_0x4587;this[_0x3ae544(0x1ff)]=_0xb2fb78,this[_0x3ae544(0x1c7)]=_0x525fa4,this['logger']=_0x5a34e5,this[_0x3ae544(0x1df)]=this[_0x3ae544(0x1f8)]();}async['compactConversation'](_0x228684,_0x543211,_0x1de646,_0x25279e={}){const _0x127618=a0_0x4587,_0x4bf0ce=Date['now']();try{if(!Array[_0x127618(0x1ea)](_0x228684)||_0x228684['length']===0x0)throw new Error(_0x127618(0x1fe));if(_0x228684['length']<COMPACTION_CONFIG[_0x127618(0x1f0)])return this['logger']['warn']('Too\x20few\x20messages\x20for\x20compaction',{'messageCount':_0x228684['length'],'minimum':COMPACTION_CONFIG['MIN_MESSAGES_FOR_COMPACTION']}),{'compactedMessages':_0x228684,'strategy':'none','originalTokenCount':0x0,'compactedTokenCount':0x0,'reductionPercent':0x0,'skipped':!![],'reason':'Too\x20few\x20messages'};const _0x380445=_0x543211!==_0x1de646,_0x277908=_0x25279e['isRetry']||![];let _0x4b9018;if(_0x380445)_0x4b9018=COMPACTION_STRATEGIES['TRUNCATION'];else _0x277908?_0x4b9018=COMPACTION_STRATEGIES['AGGRESSIVE']:_0x4b9018=_0x25279e['strategy']||COMPACTION_STRATEGIES[_0x127618(0x1dc)];this[_0x127618(0x1ec)][_0x127618(0x200)]('Starting\x20conversation\x20compaction',{'messageCount':_0x228684['length'],'currentModel':_0x543211,'targetModel':_0x1de646,'strategy':_0x4b9018,'isModelSwitch':_0x380445,'isRetry':_0x277908});let _0x1f107b;switch(_0x4b9018){case COMPACTION_STRATEGIES['SUMMARIZATION']:_0x1f107b=await this[_0x127618(0x1d3)](_0x228684,_0x543211,_0x25279e);break;case COMPACTION_STRATEGIES['TRUNCATION']:_0x1f107b=await this[_0x127618(0x1c4)](_0x228684,_0x1de646,_0x25279e);break;case COMPACTION_STRATEGIES[_0x127618(0x1e3)]:_0x1f107b=await this[_0x127618(0x1cd)](_0x228684,_0x543211,_0x25279e);break;default:throw new Error('Unknown\x20compaction\x20strategy:\x20'+_0x4b9018);}const _0x586361=Date[_0x127618(0x1e4)]()-_0x4bf0ce;return _0x1f107b['executionTime']=_0x586361,_0x1f107b['timestamp']=new Date()['toISOString'](),this['logger'][_0x127618(0x200)](_0x127618(0x1d6),{'strategy':_0x1f107b['strategy'],'originalMessages':_0x228684['length'],'compactedMessages':_0x1f107b['compactedMessages'][_0x127618(0x1de)],'originalTokens':_0x1f107b[_0x127618(0x1ef)],'compactedTokens':_0x1f107b['compactedTokenCount'],'reductionPercent':_0x1f107b[_0x127618(0x1fd)]['toFixed'](0x2),'executionTime':_0x586361+'ms'}),_0x1f107b;}catch(_0x313274){const _0x133689=Date[_0x127618(0x1e4)]()-_0x4bf0ce;this[_0x127618(0x1ec)]['error'](_0x127618(0x1eb),{'error':_0x313274[_0x127618(0x1e5)],'messageCount':_0x228684['length'],'currentModel':_0x543211,'targetModel':_0x1de646,'executionTime':_0x133689+'ms'});throw _0x313274;}}async[a0_0x1eeff3(0x1d3)](_0x2e9be0,_0x1dc656,_0x596168){const _0x4bd050=a0_0x1eeff3,_0x3913a5=COMPACTION_STRATEGIES['SUMMARIZATION'],_0x5793e3=await this['tokenCountingService'][_0x4bd050(0x1e6)](_0x2e9be0,_0x1dc656,TOKEN_COUNTING_MODES['ACCURATE']),_0x58e464=await this[_0x4bd050(0x1e2)](_0x2e9be0,_0x1dc656,COMPACTION_CONFIG[_0x4bd050(0x1d5)],COMPACTION_CONFIG['END_SEGMENT_PERCENTAGE']);this['logger']['debug']('Segments\x20identified\x20for\x20summarization',{'beginningMessages':_0x58e464[_0x4bd050(0x1fa)][_0x4bd050(0x1de)],'middleMessages':_0x58e464['middle']['length'],'endMessages':_0x58e464['end'][_0x4bd050(0x1de)],'middleStartIndex':_0x58e464[_0x4bd050(0x1fb)],'middleEndIndex':_0x58e464[_0x4bd050(0x1f7)],'totalMessages':_0x2e9be0['length']});const _0x24ab8d=await this[_0x4bd050(0x1d4)](_0x58e464[_0x4bd050(0x205)],_0x1dc656,{..._0x596168,'middleStartIndex':_0x58e464['middleStartIndex'],'middleEndIndex':_0x58e464['middleEndIndex']}),_0x27e692=[..._0x58e464['beginning'],_0x24ab8d,..._0x58e464[_0x4bd050(0x1c1)]],_0x3e26d3=await this['tokenCountingService']['estimateConversationTokens'](_0x27e692,_0x1dc656,TOKEN_COUNTING_MODES[_0x4bd050(0x202)]),_0x352f08=(_0x5793e3-_0x3e26d3)/_0x5793e3*0x64;return{'compactedMessages':_0x27e692,'strategy':_0x3913a5,'originalTokenCount':_0x5793e3,'compactedTokenCount':_0x3e26d3,'reductionPercent':_0x352f08,'segments':{'beginningCount':_0x58e464[_0x4bd050(0x1fa)]['length'],'middleCount':_0x58e464['middle'][_0x4bd050(0x1de)],'endCount':_0x58e464[_0x4bd050(0x1c1)]['length'],'summaryInserted':!![]}};}async['_compactWithTruncation'](_0x5d8767,_0x16d306,_0x333de2){const _0x2bd19c=a0_0x1eeff3,_0x49b182=COMPACTION_STRATEGIES[_0x2bd19c(0x1da)],_0x50c12d=this['tokenCountingService'][_0x2bd19c(0x1d9)](_0x16d306),_0x5b824a=Math['floor'](_0x50c12d*0.8),_0x5c2dc1=await this[_0x2bd19c(0x1ff)]['estimateConversationTokens'](_0x5d8767,_0x16d306,TOKEN_COUNTING_MODES[_0x2bd19c(0x202)]),_0x1df199=await this[_0x2bd19c(0x1e2)](_0x5d8767,_0x16d306,COMPACTION_CONFIG[_0x2bd19c(0x203)],COMPACTION_CONFIG[_0x2bd19c(0x1ca)]);this[_0x2bd19c(0x1ec)]['debug'](_0x2bd19c(0x1ed),{'beginningMessages':_0x1df199[_0x2bd19c(0x1fa)][_0x2bd19c(0x1de)],'middleMessages':_0x1df199[_0x2bd19c(0x205)][_0x2bd19c(0x1de)],'endMessages':_0x1df199['end'][_0x2bd19c(0x1de)],'targetTokenCount':_0x5b824a,'originalTokenCount':_0x5c2dc1});const _0x480e90={'role':'system','content':COMPACTION_CONFIG['COMPACTION_SEPARATOR_MESSAGE'],'type':'separator','timestamp':new Date()['toISOString'](),'metadata':{'truncatedMessages':_0x1df199['middle']['length'],'reason':'Model\x20switch\x20-\x20middle\x20section\x20removed\x20to\x20fit\x20target\x20context\x20window'}},_0xab76f7=[..._0x1df199[_0x2bd19c(0x1fa)],_0x480e90,..._0x1df199[_0x2bd19c(0x1c1)]],_0xc75031=await this[_0x2bd19c(0x1ff)][_0x2bd19c(0x1e6)](_0xab76f7,_0x16d306,TOKEN_COUNTING_MODES['ACCURATE']),_0x1e065a=(_0x5c2dc1-_0xc75031)/_0x5c2dc1*0x64;return{'compactedMessages':_0xab76f7,'strategy':_0x49b182,'originalTokenCount':_0x5c2dc1,'compactedTokenCount':_0xc75031,'reductionPercent':_0x1e065a,'segments':{'beginningCount':_0x1df199[_0x2bd19c(0x1fa)][_0x2bd19c(0x1de)],'middleCount':_0x1df199[_0x2bd19c(0x205)]['length'],'endCount':_0x1df199['end'][_0x2bd19c(0x1de)],'summaryInserted':![]}};}async['_compactWithAggressiveSummarization'](_0xb576c1,_0x1f6271,_0xc6f25f){const _0x41b53f=a0_0x1eeff3,_0xec3ded=COMPACTION_STRATEGIES[_0x41b53f(0x1e3)],_0x396097=await this[_0x41b53f(0x1ff)]['estimateConversationTokens'](_0xb576c1,_0x1f6271,TOKEN_COUNTING_MODES['ACCURATE']),_0x1d1621=await this[_0x41b53f(0x1e2)](_0xb576c1,_0x1f6271,COMPACTION_CONFIG[_0x41b53f(0x1e8)],COMPACTION_CONFIG[_0x41b53f(0x1f4)]);this[_0x41b53f(0x1ec)]['debug']('Segments\x20identified\x20for\x20aggressive\x20compaction',{'beginningMessages':_0x1d1621['beginning'][_0x41b53f(0x1de)],'middleMessages':_0x1d1621[_0x41b53f(0x205)]['length'],'endMessages':_0x1d1621['end'][_0x41b53f(0x1de)],'middleStartIndex':_0x1d1621[_0x41b53f(0x1fb)],'middleEndIndex':_0x1d1621[_0x41b53f(0x1f7)]});const _0x31411c=await this['_generateSummary'](_0x1d1621[_0x41b53f(0x205)],_0x1f6271,{..._0xc6f25f,'aggressive':!![],'middleStartIndex':_0x1d1621['middleStartIndex'],'middleEndIndex':_0x1d1621['middleEndIndex']}),_0x2e85fe=[..._0x1d1621[_0x41b53f(0x1fa)],_0x31411c,..._0x1d1621[_0x41b53f(0x1c1)]],_0x143f54=await this['tokenCountingService']['estimateConversationTokens'](_0x2e85fe,_0x1f6271,TOKEN_COUNTING_MODES['ACCURATE']),_0x2ea662=(_0x396097-_0x143f54)/_0x396097*0x64;return{'compactedMessages':_0x2e85fe,'strategy':_0xec3ded,'originalTokenCount':_0x396097,'compactedTokenCount':_0x143f54,'reductionPercent':_0x2ea662,'segments':{'beginningCount':_0x1d1621[_0x41b53f(0x1fa)]['length'],'middleCount':_0x1d1621[_0x41b53f(0x205)]['length'],'endCount':_0x1d1621[_0x41b53f(0x1c1)][_0x41b53f(0x1de)],'summaryInserted':!![]}};}async[a0_0x1eeff3(0x1e2)](_0x58ca83,_0x508f0b,_0xafacfd,_0x2f648f){const _0x4548ff=a0_0x1eeff3,_0x28964c=await this[_0x4548ff(0x1ff)][_0x4548ff(0x1e6)](_0x58ca83,_0x508f0b,TOKEN_COUNTING_MODES[_0x4548ff(0x202)]),_0x3bc927=Math[_0x4548ff(0x1f2)](_0x28964c*_0xafacfd),_0x512690=Math['floor'](_0x28964c*_0x2f648f);let _0xb8cd23=0x0,_0x2e78a=0x0;for(let _0xe88c09=0x0;_0xe88c09<_0x58ca83['length'];_0xe88c09++){const _0x5c2631=await this['tokenCountingService']['countTokens'](_0x58ca83[_0xe88c09]['content'],_0x508f0b,TOKEN_COUNTING_MODES['CACHED']);if(_0xb8cd23+_0x5c2631>_0x3bc927&&_0xe88c09>=0x2)break;_0xb8cd23+=_0x5c2631,_0x2e78a=_0xe88c09+0x1;}let _0x237910=0x0,_0x2d8fb3=_0x58ca83['length'];for(let _0x4f20e4=_0x58ca83[_0x4548ff(0x1de)]-0x1;_0x4f20e4>=0x0;_0x4f20e4--){const _0xe5e33a=await this[_0x4548ff(0x1ff)][_0x4548ff(0x1f3)](_0x58ca83[_0x4f20e4][_0x4548ff(0x1cc)],_0x508f0b,TOKEN_COUNTING_MODES[_0x4548ff(0x201)]);if(_0x237910+_0xe5e33a>_0x512690)break;_0x237910+=_0xe5e33a,_0x2d8fb3=_0x4f20e4;}_0x2d8fb3<_0x2e78a&&(_0x2d8fb3=_0x2e78a);const _0x42407c=_0x58ca83['slice'](0x0,_0x2e78a),_0x56ec94=_0x58ca83['slice'](_0x2e78a,_0x2d8fb3),_0x1dafe0=_0x58ca83['slice'](_0x2d8fb3);return{'beginning':_0x42407c,'middle':_0x56ec94,'end':_0x1dafe0,'middleStartIndex':_0x2e78a,'middleEndIndex':_0x2d8fb3-0x1};}async[a0_0x1eeff3(0x1d4)](_0x27de2e,_0x3bb20e,_0x4a5823={}){const _0x335ee7=a0_0x1eeff3;if(_0x27de2e[_0x335ee7(0x1de)]===0x0)return{'role':'system','content':COMPACTION_CONFIG['COMPACTION_SUMMARY_PREFIX']+'\x20No\x20messages\x20to\x20summarize.','type':_0x335ee7(0x1f5),'timestamp':new Date()[_0x335ee7(0x204)]()};const _0x53ab95=_0x27de2e['map'](_0x392aeb=>_0x392aeb['role']+':\x20'+_0x392aeb[_0x335ee7(0x1cc)])[_0x335ee7(0x1d2)]('\x0a\x0a'),_0xe6c133=this['summaryPromptTemplate']['replace']('{middle_segment}',_0x53ab95)[_0x335ee7(0x1d0)]('{aggressive_instruction}',_0x4a5823[_0x335ee7(0x1e9)]?'\x0a\x0aIMPORTANT:\x20Be\x20VERY\x20aggressive\x20in\x20compression.\x20Prioritize\x20only\x20the\x20most\x20critical\x20information.\x20Aim\x20for\x20maximum\x20brevity\x20while\x20maintaining\x20essential\x20context.':''),_0x3b0aab=[COMPACTION_CONFIG['COMPACTION_MODEL'],...COMPACTION_CONFIG[_0x335ee7(0x1e0)]];let _0x211ac9=null;for(const _0x3439d9 of _0x3b0aab){try{this['logger']['debug']('Generating\x20summary',{'compactionModel':_0x3439d9,'middleMessageCount':_0x27de2e['length'],'middleContentLength':_0x53ab95[_0x335ee7(0x1de)],'aggressive':_0x4a5823['aggressive']});const _0x1c316d=await this[_0x335ee7(0x1c7)]['sendMessage'](_0x3439d9,_0xe6c133,{'systemPrompt':'You\x20are\x20a\x20conversation\x20summarization\x20expert.\x20Your\x20goal\x20is\x20to\x20compress\x20conversations\x20while\x20preserving\x20critical\x20information\x20for\x20continued\x20interaction.','maxTokens':COMPACTION_CONFIG['MAX_SUMMARY_TOKENS'],'temperature':0.3,'sessionId':_0x4a5823[_0x335ee7(0x1c9)],'platformProvided':!![]}),_0x5e80f6=_0x1c316d['content'][_0x335ee7(0x1db)](),_0x47fb30=_0x4a5823['middleStartIndex']!==undefined&&_0x4a5823['middleEndIndex']!==undefined?'original\x20messages\x20'+_0x4a5823['middleStartIndex']+'-'+_0x4a5823['middleEndIndex']:_0x27de2e[_0x335ee7(0x1de)]+_0x335ee7(0x1cf);return this[_0x335ee7(0x1ec)]['info']('Summary\x20generated\x20successfully',{'compactionModel':_0x3439d9,'originalLength':_0x53ab95['length'],'summaryLength':_0x5e80f6[_0x335ee7(0x1de)],'compressionRatio':(_0x5e80f6['length']/_0x53ab95['length']*0x64)['toFixed'](0x2)+'%','indexRange':_0x47fb30}),{'role':'system','content':COMPACTION_CONFIG[_0x335ee7(0x1d8)]+_0x335ee7(0x1ee)+_0x47fb30+']\x0a\x0a'+_0x5e80f6+'\x0a\x0a'+COMPACTION_CONFIG['COMPACTION_SUMMARY_SUFFIX'],'type':_0x335ee7(0x1f5),'timestamp':new Date()[_0x335ee7(0x204)](),'metadata':{'originalMessageCount':_0x27de2e['length'],'originalStartIndex':_0x4a5823['middleStartIndex'],'originalEndIndex':_0x4a5823[_0x335ee7(0x1f7)],'compactionModel':_0x3439d9,'aggressive':_0x4a5823[_0x335ee7(0x1e9)]||![]}};}catch(_0x493b14){_0x211ac9=_0x493b14,this[_0x335ee7(0x1ec)]['warn'](_0x335ee7(0x1d7),{'compactionModel':_0x3439d9,'error':_0x493b14[_0x335ee7(0x1e5)],'middleMessageCount':_0x27de2e['length']});}}this['logger'][_0x335ee7(0x1c2)]('All\x20summary\x20generation\x20attempts\x20failed',{'modelsAttempted':_0x3b0aab[_0x335ee7(0x1de)],'lastError':_0x211ac9?.['message'],'middleMessageCount':_0x27de2e[_0x335ee7(0x1de)]});const _0x377f99=this[_0x335ee7(0x1ce)](_0x27de2e),_0x3dec89=_0x4a5823['middleStartIndex']!==undefined&&_0x4a5823['middleEndIndex']!==undefined?'original\x20messages\x20'+_0x4a5823['middleStartIndex']+'-'+_0x4a5823[_0x335ee7(0x1f7)]:_0x27de2e[_0x335ee7(0x1de)]+_0x335ee7(0x1cf);return{'role':_0x335ee7(0x1fc),'content':COMPACTION_CONFIG[_0x335ee7(0x1d8)]+_0x335ee7(0x1ee)+_0x3dec89+_0x335ee7(0x1f9)+_0x377f99+'\x0a\x0a'+COMPACTION_CONFIG[_0x335ee7(0x1d1)],'type':_0x335ee7(0x1f5),'timestamp':new Date()['toISOString'](),'metadata':{'originalMessageCount':_0x27de2e['length'],'originalStartIndex':_0x4a5823[_0x335ee7(0x1fb)],'originalEndIndex':_0x4a5823['middleEndIndex'],'fallback':!![],'error':_0x211ac9?.['message'],'modelsAttempted':_0x3b0aab}};}['_createFallbackSummary'](_0x37f938){const _0x571202=a0_0x1eeff3,_0x1a4b6c=_0x37f938[_0x571202(0x1de)],_0x2535e3=_0x37f938[_0x571202(0x1e1)](_0x130e85=>_0x130e85[_0x571202(0x1c8)]),_0x47db5f=_0x2535e3['filter'](_0xeb2389=>_0xeb2389==='user')['length'],_0x57b613=_0x2535e3['filter'](_0x2df2c6=>_0x2df2c6==='assistant')[_0x571202(0x1de)];return'['+_0x1a4b6c+'\x20messages\x20summarized\x20-\x20'+_0x47db5f+_0x571202(0x1f1)+_0x57b613+'\x20assistant\x20responses.\x20'+'Summary\x20generation\x20unavailable\x20-\x20middle\x20section\x20compressed\x20for\x20context\x20management.]';}['_createSummaryPromptTemplate'](){return'You\x20are\x20compacting\x20a\x20conversation\x20to\x20preserve\x20critical\x20information\x20while\x20reducing\x20token\x20count.\x0a\x0aCONTEXT:\x20This\x20is\x20part\x20of\x20a\x20longer\x20conversation\x20that\x20needs\x20compactization\x20for\x20continued\x20processing.\x0a\x0aPRESERVATION\x20GUIDELINES:\x0a\x0aHIGH\x20PRIORITY\x20(Always\x20Preserve):\x0a-\x20Future\x20reference\x20value:\x20Information\x20likely\x20to\x20be\x20referenced\x20again\x0a-\x20Decisions\x20and\x20reasoning:\x20WHY\x20things\x20were\x20decided,\x20not\x20just\x20what\x0a-\x20API\x20signatures\x20and\x20interfaces:\x20Function\x20definitions,\x20method\x20calls\x0a-\x20Active\x20dependencies:\x20Information\x20that\x20ongoing\x20work\x20relies\x20on\x0a-\x20Error\x20patterns\x20and\x20solutions:\x20What\x20failed\x20and\x20how\x20it\x20was\x20fixed\x0a-\x20Key\x20facts\x20and\x20data:\x20Specific\x20numbers,\x20names,\x20configurations\x0a\x0aMEDIUM\x20PRIORITY\x20(Compress\x20Intelligently):\x0a-\x20Code\x20blocks:\x20Keep\x20function\x20signatures\x20+\x20brief\x20description,\x20compress\x20implementation\x20details\x0a-\x20Working\x20solutions:\x20Essence\x20and\x20outcome,\x20not\x20every\x20implementation\x20step\x0a-\x20Failed\x20attempts:\x20Brief\x20mention\x20of\x20what\x20didn\x27t\x20work\x20and\x20why,\x20skip\x20detailed\x20troubleshooting\x0a-\x20Repetitive\x20content:\x20Consolidate\x20similar\x20examples\x20or\x20explanations\x0a\x0aLOW\x20PRIORITY\x20(Heavily\x20Compress/Remove):\x0a-\x20Completed\x20calculations:\x20Keep\x20results,\x20skip\x20intermediate\x20steps\x0a-\x20Verbose\x20explanations:\x20Summarize\x20well-known\x20concepts\x0a-\x20Debug\x20output:\x20Skip\x20terminal\x20logs\x20and\x20error\x20messages\x20that\x20served\x20their\x20purpose\x0a-\x20Trial-and-error\x20sequences:\x20Skip\x20multiple\x20failed\x20attempts\x20with\x20no\x20lasting\x20value\x0a-\x20Acknowledgments\x20and\x20pleasantries:\x20Skip\x20\x22thank\x20you\x22,\x20\x22sure\x22,\x20\x22okay\x22\x20type\x20exchanges\x0a\x0aCONVERSATION\x20SEGMENT\x20TO\x20SUMMARIZE:\x0a{middle_segment}\x0a\x0aTASK:\x20Create\x20a\x20concise\x20summary\x20that\x20preserves\x20logical\x20flow\x20and\x20critical\x20information.\x20Focus\x20on:\x0a1.\x20Key\x20decisions\x20and\x20their\x20reasoning\x0a2.\x20Important\x20facts,\x20data,\x20and\x20configurations\x0a3.\x20Active\x20context\x20needed\x20for\x20continuation\x0a4.\x20Problem-solving\x20outcomes\x20(skip\x20the\x20debugging\x20process)\x0a5.\x20Dependencies\x20and\x20interfaces\x20that\x20code/work\x20relies\x20on\x0a\x0aSomeone\x20reading\x20this\x20should\x20understand\x20the\x20conversation\x20progression\x20and\x20have\x20all\x20information\x20needed\x20for\x20effective\x20continuation.\x0a{aggressive_instruction}\x0a\x0aOUTPUT:\x20Provide\x20ONLY\x20the\x20summary\x20text\x20without\x20preamble,\x20explanation,\x20or\x20meta-commentary.';}}export default ConversationCompactionService;
@@ -1 +1 @@
1
- const a0_0x3044c4=a0_0x1328;(function(_0x2420eb,_0x2e4bdc){const _0x32f8ca=a0_0x1328,_0x5bf1c2=_0x2420eb();while(!![]){try{const _0x5a0024=parseInt(_0x32f8ca(0xd3))/0x1+-parseInt(_0x32f8ca(0xfd))/0x2+parseInt(_0x32f8ca(0x8f))/0x3+parseInt(_0x32f8ca(0xd9))/0x4+-parseInt(_0x32f8ca(0xd4))/0x5*(parseInt(_0x32f8ca(0xdd))/0x6)+parseInt(_0x32f8ca(0xdf))/0x7*(-parseInt(_0x32f8ca(0xe8))/0x8)+parseInt(_0x32f8ca(0xcb))/0x9;if(_0x5a0024===_0x2e4bdc)break;else _0x5bf1c2['push'](_0x5bf1c2['shift']());}catch(_0x59d8e1){_0x5bf1c2['push'](_0x5bf1c2['shift']());}}}(a0_0x2b66,0x4d4db));function a0_0x2b66(){const _0x27ac98=['qxr0zw1WDgLUzYbLCNjVCIbYzwnVDMvYEq','BMfTzq','q2fUBM90igfKANvZDcb0Aw1LB3v0','y29UzMLN','zxjYB3i','rKLmrv9ot1rFrK9vtKq','z2v0twf4uMv0CMLLCW','CMvJB3zLCNLtDhjHDgvNAwvZ','zNjVBuvUDhjPzxm','AgfZ','BM90Awz5u3vIC2nYAwjLCNm','C3vJy2vZCW','tM8GCMvJB3zLCNKGC3rYyxrLz3KGyxzHAwXHyMXL','z2v0rxjYB3jtDgf0CW','D2fPDgvKx2zVCL9YyxrLx2XPBwL0','BgvUz3rO','ywn0Aw9U','zMLSzv9VCgvYyxrPB24','rxjYB3iGC3vIC2nYAwjLCIbJywXSyMfJAYbMywLSzwq','AxnqCM9JzxnZAw5NuxvLDwu','ywDLBNrjza','D2fYBG','ChjVy2vZC0vYCM9Y','AgLNAa','zMLSzv9UB3rFzM91BMrFCMvJB3zLCNK','Dg9mB3DLCKnHC2u','zxjYB3jrDwv1zq','C2v0','zxjYxW','z2vUzxjHDgvfCNjVCKLK','rK9sqKLerevo','zxjYB3jZqNLbz2vUDa','Bwf4uMv0CMLLCW','zgvIDwC','B3bLCMf0Aw9Uswq','t3bLCMf0Aw9UihrPBwvVDxqGzgv0zwn0zwq','yxr0zw1WDfjLy292zxj5','v2fPDgLUzYbMB3iGCMf0zsbSAw1PDcbYzwnVDMvYEq','tM8GAw5WDxqGzgf0ysb0BYbZyw5PDgL6zq','y3jPDgLJywXfCNjVCNm','rxjYB3iGChjVy2vZC2LUzYbMywLSzwq','C3vIC3rY','y29UDgv4Da','Dg90ywXfCNjVCNm','y29UzMLNDxjHDgLVBG','uMvJB3zLCNKGyxr0zw1WDcbMywLSzwq','Aw52ywXPza','uKfurv9msu1jvf9fwenfrurfra','C2v2zxjPDhK','ndGXntG4mLr1quLPtG','C2HVDwXKuMv0CNK','y2XLyxjfCNjVCLn0yxrZ','rxjYB3iGCMvJB3zLCNKGC3vJy2vZC2z1Ba','ywDLBNrFy29TBxvUAwnHDgLVBG','BM93','z2v0','vw5Oyw5KBgvKifjLAMvJDgLVBJOG','mJK2ndi3EeX6wg9M','mtu1swHUwvvo','ChjVy2vZC0vYCM9YuxvLDwu','DhLWzq','t1bfuKfusu9ox1rjtuvpvvq','ChvZAa','nte0nJeYreD3wu5W','zgv0zxjTAw5LrxjYB3juExbL','AgfUzgXLuMf0zuXPBwL0rxHJzwvKzwq','y3jPDgLJywW','mtC4otHXCef5twe','Dg9tDhjPBMC','n1bqt0Xbsa','Bg9Nz2vY','C3vJy2vZC2z1BfjLy292zxjPzxm','Aw5PDgLHBgL6zvjLy292zxj5u3rYyxrLz2LLCW','y29Kzq','zw1PDa','BwvZC2fNzq','vKfmsurbveLptL9fuLjpuG','y2fSy3vSyxrLuMf0zuXPBwL0v2fPDa','ndKWnJmXmLnlBLLkEq','zxjYB3jZqNLuExbL','rufdq0vt','DxbKyxrLrxjYB3jtDgf0CW','Dg9VBeLK','Aw5JBhvKzxm','zgv0zxjTAw5Lu2v2zxjPDhK','CMvJB3zLCMfIBgu','AgfUzgXLqxv0AgvUDgLJyxrPB25gywLSDxjL','B3bLCMf0Aw9U','rxjYB3iGCxvLDwuGChjVy2vZC2LUzYbMywLSzwq','DgLTzw91Da','C2v0DxbfCNjVCLbYB2nLC3nPBMC','vu5bvvrit1jjwKve','yxbPx3jLCxvLC3q','Bg93','CMvJB3zLCNLbDhrLBxb0CW','rxjYB3iGAgfUzgXPBMCGzMfPBgvK','CMv0CNLdB3vUDa','zxjYB3jtDgf0CW','CMvHC29U','ntaWmda2tujNDMTI','uMvJB3zLCNKGyxr0zw1WDcbMywLSzwq6ia','qvvusevoveLdqvrjt05FrKfjteve','BwLU','y2fSy3vSyxrLuMv0CNLezwXHEq','Dw5Oyw5KBgvKx3jLAMvJDgLVBG','Bg9NrxjYB3i','uhjVy2vZC2LUzYbLCNjVCIbIyxrJAa','ve9px01btLLFuKvrvuvtvfm','C3rHDhvZ','otm2nJy2CNPvvhbw','AgfUzgXLr2vUzxjPy0nYAxrPy2fSrxjYB3i','DMfSAwrHDgLVBG','AgfUzgXLq3jPDgLJywXfCNjVCG','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','q3jPDgLJywWGzxjYB3iGAgfUzgXPBMCGzMfPBgvK','C3rHy2S','zxjYB3jtDwjZy3jPyMvYCW','vu5ltK9xtL9fuLjpuG','C3bSAwnL','rxjYB3iGCMvJB3zLCNKGzMfPBgvK'];a0_0x2b66=function(){return _0x27ac98;};return a0_0x2b66();}function a0_0x1328(_0x35ea0f,_0x264b38){_0x35ea0f=_0x35ea0f-0x87;const _0x2b66e7=a0_0x2b66();let _0x13289e=_0x2b66e7[_0x35ea0f];if(a0_0x1328['TSXqai']===undefined){var _0x4e375c=function(_0x3a4e76){const _0x16a5ff='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e84d0='',_0x56cc65='';for(let _0x3a8ec8=0x0,_0x5227c6,_0x5cbd13,_0x157dda=0x0;_0x5cbd13=_0x3a4e76['charAt'](_0x157dda++);~_0x5cbd13&&(_0x5227c6=_0x3a8ec8%0x4?_0x5227c6*0x40+_0x5cbd13:_0x5cbd13,_0x3a8ec8++%0x4)?_0x2e84d0+=String['fromCharCode'](0xff&_0x5227c6>>(-0x2*_0x3a8ec8&0x6)):0x0){_0x5cbd13=_0x16a5ff['indexOf'](_0x5cbd13);}for(let _0x27f448=0x0,_0x1e94e5=_0x2e84d0['length'];_0x27f448<_0x1e94e5;_0x27f448++){_0x56cc65+='%'+('00'+_0x2e84d0['charCodeAt'](_0x27f448)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56cc65);};a0_0x1328['wXsLFC']=_0x4e375c,a0_0x1328['kXCtLp']={},a0_0x1328['TSXqai']=!![];}const _0xa13463=_0x2b66e7[0x0],_0x4640d1=_0x35ea0f+_0xa13463,_0x588f42=a0_0x1328['kXCtLp'][_0x4640d1];return!_0x588f42?(_0x13289e=a0_0x1328['wXsLFC'](_0x13289e),a0_0x1328['kXCtLp'][_0x4640d1]=_0x13289e):_0x13289e=_0x588f42,_0x13289e;}import{ERROR_TYPES,HTTP_STATUS,AGENT_STATUS}from'../utilities/constants.js';export class ErrorHandler{constructor(_0x2e84d0,_0x56cc65){const _0x359ae6=a0_0x1328;this[_0x359ae6(0x9d)]=_0x2e84d0||{},this[_0x359ae6(0xe0)]=_0x56cc65,this[_0x359ae6(0xfb)]={'totalErrors':0x0,'errorsByType':new Map(),'errorsByAgent':new Map(),'recoveryAttempts':0x0,'successfulRecoveries':0x0,'criticalErrors':0x0},this['recoveryStrategies']=new Map(),this['errorSubscribers']=new Set(),this['errorQueue']=[],this['isProcessingQueue']=![],this[_0x359ae6(0xe2)](),this[_0x359ae6(0xf4)]();}async['handleError'](_0x3a8ec8,_0x5227c6={}){const _0x2e075f=a0_0x1328;try{const _0x5cbd13=this['classifyError'](_0x3a8ec8,_0x5227c6),_0x157dda=await this[_0x2e075f(0xb0)](_0x5cbd13);return this['updateErrorStats'](_0x5cbd13),this[_0x2e075f(0xa4)](_0x5cbd13,_0x157dda),_0x157dda;}catch(_0x27f448){return this['logger']['error'](_0x2e075f(0xf9),{'originalError':_0x3a8ec8[_0x2e075f(0xe5)],'handlingError':_0x27f448[_0x2e075f(0xe5)]}),{'success':![],'error':_0x27f448,'recovery':null,'severity':'critical'};}}['classifyError'](_0x1e94e5,_0x21ceab={}){const _0x375fc0=a0_0x1328,_0x161446={'id':this['generateErrorId'](),'timestamp':new Date()['toISOString'](),'message':_0x1e94e5['message']||_0x1e94e5[_0x375fc0(0xde)](),'stack':_0x1e94e5[_0x375fc0(0x95)]||null,'code':_0x1e94e5['code']||null,'type':this['determineErrorType'](_0x1e94e5,_0x21ceab),'severity':this[_0x375fc0(0xee)](_0x1e94e5,_0x21ceab),'context':{..._0x21ceab},'recoverable':!![],'retryCount':_0x21ceab[_0x375fc0(0xfa)]||0x0,'maxRetries':this['getMaxRetries'](_0x1e94e5,_0x21ceab)};return _0x21ceab[_0x375fc0(0xae)]&&(_0x161446[_0x375fc0(0xae)]=_0x21ceab['agentId']),_0x21ceab['toolId']&&(_0x161446[_0x375fc0(0xec)]=_0x21ceab[_0x375fc0(0xec)]),_0x21ceab[_0x375fc0(0xbc)]&&(_0x161446[_0x375fc0(0xbc)]=_0x21ceab['operationId']),_0x161446['recoverable']=this['isRecoverable'](_0x161446),_0x161446;}async[a0_0x3044c4(0xb0)](_0x124e8f){const _0x12566d=a0_0x3044c4;try{this[_0x12566d(0xe0)]['error']('Processing\x20error',{'errorId':_0x124e8f['id'],'type':_0x124e8f[_0x12566d(0xd6)],'severity':_0x124e8f['severity'],'agentId':_0x124e8f['agentId'],'message':_0x124e8f['message']});_0x124e8f['severity']===_0x12566d(0xdc)&&await this['handleCriticalError'](_0x124e8f);let _0x6f6797=null;return _0x124e8f[_0x12566d(0xef)]&&_0x124e8f[_0x12566d(0xfa)]<_0x124e8f['maxRetries']&&(_0x6f6797=await this[_0x12566d(0xbe)](_0x124e8f)),await this['logError'](_0x124e8f,_0x6f6797),{'success':_0x6f6797?.[_0x12566d(0xa5)]||![],'errorId':_0x124e8f['id'],'errorType':_0x124e8f[_0x12566d(0xd6)],'severity':_0x124e8f[_0x12566d(0xca)],'recovery':_0x6f6797,'shouldRetry':this['shouldRetry'](_0x124e8f,_0x6f6797),'retryDelay':this['calculateRetryDelay'](_0x124e8f)};}catch(processingError){return this['logger'][_0x12566d(0x9e)](_0x12566d(0xc2),{'errorId':_0x124e8f['id'],'processingError':processingError[_0x12566d(0xe5)]}),{'success':![],'errorId':_0x124e8f['id'],'errorType':_0x124e8f[_0x12566d(0xd6)],'severity':'critical','recovery':null,'shouldRetry':![]};}}async[a0_0x3044c4(0xbe)](_0x1405f9){const _0x3f3388=a0_0x3044c4;try{this['errorStats'][_0x3f3388(0xf8)]++;const _0x4919c6=this['recoveryStrategies']['get'](_0x1405f9[_0x3f3388(0xd6)])||this['recoveryStrategies'][_0x3f3388(0xd1)]('default');if(!_0x4919c6)return this[_0x3f3388(0xe0)][_0x3f3388(0xaf)]('No\x20recovery\x20strategy\x20found',{'errorType':_0x1405f9[_0x3f3388(0xd6)]}),{'success':![],'reason':_0x3f3388(0xa6)};this['logger']['info'](_0x3f3388(0x9a),{'errorId':_0x1405f9['id'],'errorType':_0x1405f9[_0x3f3388(0xd6)],'strategy':_0x4919c6[_0x3f3388(0x9b)],'retryCount':_0x1405f9[_0x3f3388(0xfa)]});const _0x6c7df8=await _0x4919c6['recover'](_0x1405f9);return _0x6c7df8[_0x3f3388(0xa5)]?(this['errorStats'][_0x3f3388(0xe1)]++,this[_0x3f3388(0xe0)]['info'](_0x3f3388(0xce),{'errorId':_0x1405f9['id'],'strategy':_0x4919c6['name']})):this[_0x3f3388(0xe0)]['warn'](_0x3f3388(0x99),{'errorId':_0x1405f9['id'],'strategy':_0x4919c6['name'],'reason':_0x6c7df8[_0x3f3388(0xfc)]}),_0x6c7df8;}catch(_0x1bd1d9){return this['logger'][_0x3f3388(0x9e)](_0x3f3388(0xc7),{'errorId':_0x1405f9['id'],'recoveryError':_0x1bd1d9[_0x3f3388(0xe5)]}),{'success':![],'reason':_0x3f3388(0xfe)+_0x1bd1d9['message']};}}async[a0_0x3044c4(0x92)](_0x27a88a){const _0xf5b593=a0_0x3044c4;try{this['errorStats']['criticalErrors']++,this['logger']['error']('Critical\x20error\x20detected',{'errorId':_0x27a88a['id'],'message':_0x27a88a['message'],'context':_0x27a88a[_0xf5b593(0xc4)]});typeof process!=='undefined'&&process[_0xf5b593(0xe4)]&&process['emit']('criticalError',_0x27a88a);switch(_0x27a88a[_0xf5b593(0xd6)]){case ERROR_TYPES['AUTHENTICATION_FAILED']:await this[_0xf5b593(0xf0)](_0x27a88a);break;case ERROR_TYPES[_0xf5b593(0xc9)]:await this[_0xf5b593(0xdb)](_0x27a88a);break;case ERROR_TYPES[_0xf5b593(0xd7)]:await this['handleOperationTimeout'](_0x27a88a);break;default:await this[_0xf5b593(0x90)](_0x27a88a);}}catch(_0xd2f030){this['logger']['error'](_0xf5b593(0x94),{'errorId':_0x27a88a['id'],'handlingError':_0xd2f030[_0xf5b593(0xe5)]});}}['determineErrorType'](_0x31a649,_0x2a26f0){const _0x3f95c9=a0_0x3044c4;if(_0x31a649['code']==='ENOENT'||_0x31a649[_0x3f95c9(0x8e)]===HTTP_STATUS['NOT_FOUND'])return ERROR_TYPES[_0x3f95c9(0x9f)];if(_0x31a649[_0x3f95c9(0xe3)]===_0x3f95c9(0xea)||_0x31a649['status']===HTTP_STATUS[_0x3f95c9(0xb8)])return ERROR_TYPES['PERMISSION_DENIED'];if(_0x31a649[_0x3f95c9(0x8e)]===HTTP_STATUS[_0x3f95c9(0xf5)])return ERROR_TYPES[_0x3f95c9(0x87)];if(_0x31a649['status']===HTTP_STATUS[_0x3f95c9(0x8d)])return ERROR_TYPES[_0x3f95c9(0xc9)];const _0x257f24=_0x31a649[_0x3f95c9(0xe5)]?.[_0x3f95c9(0xb3)]()||'';if(_0x257f24['includes']('timeout')||_0x257f24['includes']('timed\x20out'))return ERROR_TYPES['OPERATION_TIMEOUT'];if(_0x257f24[_0x3f95c9(0xed)](_0x3f95c9(0x91))||_0x257f24[_0x3f95c9(0xed)](_0x3f95c9(0xc8)))return ERROR_TYPES['VALIDATION_ERROR'];if(_0x257f24[_0x3f95c9(0xed)](_0x3f95c9(0x9d))||_0x257f24['includes'](_0x3f95c9(0xc6)))return ERROR_TYPES['CONFIGURATION_ERROR'];if(_0x2a26f0[_0x3f95c9(0xf1)]===_0x3f95c9(0xab))return ERROR_TYPES['FILE_NOT_FOUND'];if(_0x2a26f0['operation']===_0x3f95c9(0xf6))return ERROR_TYPES['RATE_LIMIT_EXCEEDED'];return ERROR_TYPES[_0x3f95c9(0x97)];}[a0_0x3044c4(0xee)](_0x178a4c,_0x4cbeac){const _0x4bb0f0=a0_0x3044c4,_0x6e3558=[ERROR_TYPES[_0x4bb0f0(0x87)],ERROR_TYPES['CONFIGURATION_ERROR']],_0x960506=[ERROR_TYPES[_0x4bb0f0(0xc9)],ERROR_TYPES['OPERATION_TIMEOUT'],ERROR_TYPES['PERMISSION_DENIED']],_0x53c108=this['determineErrorType'](_0x178a4c,_0x4cbeac);if(_0x6e3558[_0x4bb0f0(0xed)](_0x53c108))return'critical';if(_0x960506['includes'](_0x53c108))return _0x4bb0f0(0xb1);const _0xc846da=_0x4cbeac&&_0x4cbeac[_0x4bb0f0(0xfa)]||0x0;if(_0xc846da>=0x3)return _0x4bb0f0(0xb1);if(_0x4cbeac&&_0x4cbeac[_0x4bb0f0(0xae)]&&_0x4cbeac['operation']===_0x4bb0f0(0xcf))return'medium';return _0x4bb0f0(0xf7);}['isRecoverable'](_0x25e35f){const _0x5cf96a=a0_0x3044c4,_0x322d1b=[ERROR_TYPES['AUTHENTICATION_FAILED'],ERROR_TYPES['CONFIGURATION_ERROR']];if(_0x322d1b[_0x5cf96a(0xed)](_0x25e35f[_0x5cf96a(0xd6)]))return![];if(_0x25e35f['retryCount']>=_0x25e35f['maxRetries'])return![];if(_0x25e35f['severity']==='critical')return![];return!![];}[a0_0x3044c4(0xa0)](_0x185a03,_0xa5f43){const _0x1305b5=a0_0x3044c4,_0x5b46ea=this[_0x1305b5(0xda)](_0x185a03,_0xa5f43),_0x227c1b={[ERROR_TYPES[_0x1305b5(0xc9)]]:0x5,[ERROR_TYPES['OPERATION_TIMEOUT']]:0x3,[ERROR_TYPES['FILE_NOT_FOUND']]:0x2,[ERROR_TYPES['PERMISSION_DENIED']]:0x1,[ERROR_TYPES[_0x1305b5(0xe6)]]:0x2,[ERROR_TYPES[_0x1305b5(0x97)]]:0x3};return _0x227c1b[_0x5b46ea]||0x3;}[a0_0x3044c4(0xcc)](_0x205561,_0x43d241){const _0x1d9fba=a0_0x3044c4;if(!_0x205561['recoverable'])return![];if(_0x205561[_0x1d9fba(0xfa)]>=_0x205561[_0x1d9fba(0xba)])return![];if(_0x43d241&&_0x43d241[_0x1d9fba(0xa5)])return![];return!![];}[a0_0x3044c4(0x89)](_0x32936c){const _0xd5c3f5=a0_0x3044c4,_0x5bb76d=0x3e8,_0x3e2edd=0x7530,_0x2a287d=_0x5bb76d*Math['pow'](0x2,_0x32936c['retryCount']),_0x5acbcf=Math['random']()*0x3e8;return Math[_0xd5c3f5(0x88)](_0x2a287d+_0x5acbcf,_0x3e2edd);}['initializeRecoveryStrategies'](){const _0x21c961=a0_0x3044c4;this['recoveryStrategies']['set'](ERROR_TYPES['FILE_NOT_FOUND'],{'name':_0x21c961(0xb2),'recover':async _0x1a908a=>{const _0x566274=_0x21c961;if(_0x1a908a[_0x566274(0xc4)]['filePath'])return{'success':![],'reason':'File\x20recovery\x20not\x20implemented\x20yet','suggestion':'Check\x20file\x20path\x20and\x20permissions'};return{'success':![],'reason':'No\x20file\x20path\x20provided'};}}),this[_0x21c961(0xa1)][_0x21c961(0xb5)](ERROR_TYPES[_0x21c961(0xc9)],{'name':'rate_limit_recovery','recover':async _0x52ae42=>{const _0x43520c=_0x21c961,_0x8e1495=this[_0x43520c(0xe7)](_0x52ae42);return this[_0x43520c(0xe0)]['info'](_0x43520c(0xbf),{'waitTime':_0x8e1495}),await new Promise(_0x55141b=>setTimeout(_0x55141b,_0x8e1495)),{'success':!![],'action':_0x43520c(0xa8),'waitTime':_0x8e1495};}}),this['recoveryStrategies'][_0x21c961(0xb5)](ERROR_TYPES['OPERATION_TIMEOUT'],{'name':'timeout_recovery','recover':async _0x4b3ee9=>{const _0x49ceb5=_0x21c961;if(_0x4b3ee9[_0x49ceb5(0xc4)][_0x49ceb5(0xf3)]){const _0x3ebd23=Math['min'](_0x4b3ee9[_0x49ceb5(0xc4)]['timeout']*1.5,0x493e0);return{'success':!![],'action':'increased_timeout','newTimeout':_0x3ebd23};}return{'success':![],'reason':_0x49ceb5(0x9c)};}}),this['recoveryStrategies']['set'](ERROR_TYPES['PERMISSION_DENIED'],{'name':'permission_recovery','recover':async _0x5e36a6=>{return{'success':![],'reason':'Permission\x20errors\x20require\x20manual\x20intervention','suggestion':'Check\x20file/directory\x20permissions'};}}),this[_0x21c961(0xa1)][_0x21c961(0xb5)](ERROR_TYPES[_0x21c961(0xe6)],{'name':'validation_recovery','recover':async _0x21a0fc=>{const _0x3f7750=_0x21c961;if(_0x21a0fc[_0x3f7750(0xc4)]['inputData'])return{'success':!![],'action':'data_sanitization','suggestion':'Input\x20data\x20was\x20sanitized\x20for\x20retry'};return{'success':![],'reason':_0x3f7750(0xc0)};}}),this[_0x21c961(0xa1)]['set']('default',{'name':'default_recovery','recover':async _0x3d8977=>{const _0x380817=this['calculateRetryDelay'](_0x3d8977);return await new Promise(_0x39eb4b=>setTimeout(_0x39eb4b,_0x380817)),{'success':!![],'action':'delay_retry','delay':_0x380817};}});}async['handleAuthenticationFailure'](_0xbbb191){const _0x1037f2=a0_0x3044c4;this[_0x1037f2(0xe0)][_0x1037f2(0x9e)]('Authentication\x20failure\x20detected',{'errorId':_0xbbb191['id']});if(_0xbbb191['agentId']){}}async[a0_0x3044c4(0xdb)](_0x2987a5){const _0x43eacb=a0_0x3044c4,_0x38b22c=this[_0x43eacb(0xe7)](_0x2987a5);this['logger']['warn']('Rate\x20limit\x20exceeded,\x20implementing\x20backoff',{'errorId':_0x2987a5['id'],'waitTime':_0x38b22c,'agentId':_0x2987a5[_0x43eacb(0xae)]});if(_0x2987a5['agentId']){}}async[a0_0x3044c4(0x93)](_0x2cc138){const _0x49405d=a0_0x3044c4;this['logger'][_0x49405d(0x9e)](_0x49405d(0xbd),{'errorId':_0x2cc138['id'],'operation':_0x2cc138['context'][_0x49405d(0xf1)],'timeout':_0x2cc138['context']['timeout']});}async[a0_0x3044c4(0x90)](_0x278348){const _0x2f9c72=a0_0x3044c4;this['logger']['error']('Generic\x20critical\x20error',{'errorId':_0x278348['id'],'type':_0x278348['type'],'message':_0x278348['message']}),_0x278348['agentId']&&this['logger'][_0x2f9c72(0xaf)]('Considering\x20agent\x20pause\x20due\x20to\x20critical\x20error',{'agentId':_0x278348['agentId']});}['calculateRateLimitWait'](_0x1b3749){const _0x376a9c=0xea60,_0x2c15cf=Math['pow'](0x2,_0x1b3749['retryCount']),_0x7d7f63=0x493e0;return Math['min'](_0x376a9c*_0x2c15cf,_0x7d7f63);}async[a0_0x3044c4(0x8b)](_0x41c24f,_0x34e5f0){const _0x42b97b=a0_0x3044c4;try{const _0x146b7d={'errorId':_0x41c24f['id'],'timestamp':_0x41c24f['timestamp'],'type':_0x41c24f[_0x42b97b(0xd6)],'severity':_0x41c24f['severity'],'message':_0x41c24f['message'],'agentId':_0x41c24f['agentId'],'toolId':_0x41c24f[_0x42b97b(0xec)],'operationId':_0x41c24f['operationId'],'retryCount':_0x41c24f[_0x42b97b(0xfa)],'recoveryAttempted':!!_0x34e5f0,'recoverySuccess':_0x34e5f0?.['success']||![],'recoveryAction':_0x34e5f0?.[_0x42b97b(0xaa)]||null};this[_0x42b97b(0xb4)][_0x42b97b(0xd8)](_0x146b7d),!this['isProcessingQueue']&&this['processErrorQueue']();}catch(_0x4f9f62){this[_0x42b97b(0xe0)]['error']('Error\x20logging\x20failed',{'errorId':_0x41c24f['id'],'loggingError':_0x4f9f62['message']});}}async['processErrorQueue'](){const _0x55d127=a0_0x3044c4;if(this[_0x55d127(0xad)]||this[_0x55d127(0xb4)]['length']===0x0)return;this['isProcessingQueue']=!![];try{while(this['errorQueue']['length']>0x0){const _0x216547=this['errorQueue'][_0x55d127(0x98)](0x0,0xa);this[_0x55d127(0xe0)][_0x55d127(0xbb)](_0x55d127(0x8c),{'batchSize':_0x216547[_0x55d127(0xa9)]}),await new Promise(_0x443435=>setTimeout(_0x443435,0x64));}}catch(processingError){this[_0x55d127(0xe0)][_0x55d127(0x9e)](_0x55d127(0xf2),{'error':processingError[_0x55d127(0xe5)]});}finally{this['isProcessingQueue']=![];}}[a0_0x3044c4(0xf4)](){setInterval(()=>{const _0x36050a=a0_0x1328;this['errorQueue'][_0x36050a(0xa9)]>0x0&&this[_0x36050a(0xd5)]();},0x1388),typeof process!=='undefined'&&(process['on']('uncaughtException',_0x3f68fa=>{this['handleError'](_0x3f68fa,{'type':'uncaught_exception','severity':'critical'});}),process['on']('unhandledRejection',(_0x492532,_0x522409)=>{const _0x29cd65=a0_0x1328;this['handleError'](new Error(_0x29cd65(0xd2)+_0x492532),{'type':_0x29cd65(0x8a),'severity':'high','promise':_0x522409[_0x29cd65(0xde)]()});}));}[a0_0x3044c4(0xeb)](_0x37cc8a){const _0x11de56=a0_0x3044c4;this['errorStats'][_0x11de56(0xc5)]++,!this['errorStats'][_0x11de56(0xe9)][_0x11de56(0xa3)](_0x37cc8a[_0x11de56(0xd6)])&&this[_0x11de56(0xfb)][_0x11de56(0xe9)]['set'](_0x37cc8a['type'],0x0),this[_0x11de56(0xfb)][_0x11de56(0xe9)][_0x11de56(0xb5)](_0x37cc8a['type'],this[_0x11de56(0xfb)][_0x11de56(0xe9)]['get'](_0x37cc8a[_0x11de56(0xd6)])+0x1),_0x37cc8a['agentId']&&(!this[_0x11de56(0xfb)][_0x11de56(0xb9)][_0x11de56(0xa3)](_0x37cc8a[_0x11de56(0xae)])&&this[_0x11de56(0xfb)][_0x11de56(0xb9)][_0x11de56(0xb5)](_0x37cc8a['agentId'],0x0),this[_0x11de56(0xfb)]['errorsByAgent']['set'](_0x37cc8a[_0x11de56(0xae)],this['errorStats'][_0x11de56(0xb9)][_0x11de56(0xd1)](_0x37cc8a['agentId'])+0x1));}['subscribe'](_0x275b9c){const _0x5c00ed=a0_0x3044c4;return this[_0x5c00ed(0x96)]['add'](_0x275b9c),()=>this[_0x5c00ed(0x96)]['delete'](_0x275b9c);}['notifySubscribers'](_0x4476f8,_0x249a97){const _0x41b02f=a0_0x3044c4;this[_0x41b02f(0x96)]['forEach'](_0x21ed3b=>{const _0x18576a=_0x41b02f;try{_0x21ed3b(_0x4476f8,_0x249a97);}catch(_0x3b1332){this[_0x18576a(0xe0)]['error'](_0x18576a(0xac),{'error':_0x3b1332[_0x18576a(0xe5)]});}});}[a0_0x3044c4(0xb7)](){const _0x3489cc=a0_0x3044c4;return _0x3489cc(0xb6)+Date[_0x3489cc(0xd0)]()+'_'+Math['random']()['toString'](0x24)[_0x3489cc(0xc3)](0x2,0x9);}[a0_0x3044c4(0xa7)](){const _0x1e500f=a0_0x3044c4;return{'totalErrors':this[_0x1e500f(0xfb)]['totalErrors'],'errorsByType':Object[_0x1e500f(0xa2)](this[_0x1e500f(0xfb)][_0x1e500f(0xe9)]),'errorsByAgent':Object['fromEntries'](this['errorStats']['errorsByAgent']),'recoveryAttempts':this['errorStats']['recoveryAttempts'],'successfulRecoveries':this['errorStats'][_0x1e500f(0xe1)],'recoverySuccessRate':this['errorStats']['recoveryAttempts']>0x0?this[_0x1e500f(0xfb)][_0x1e500f(0xe1)]/this['errorStats'][_0x1e500f(0xf8)]:0x0,'criticalErrors':this[_0x1e500f(0xfb)][_0x1e500f(0xc1)],'queueLength':this[_0x1e500f(0xb4)]['length']};}[a0_0x3044c4(0xcd)](){const _0x4a3d3f=a0_0x3044c4;this[_0x4a3d3f(0xfb)]={'totalErrors':0x0,'errorsByType':new Map(),'errorsByAgent':new Map(),'recoveryAttempts':0x0,'successfulRecoveries':0x0,'criticalErrors':0x0},this['errorQueue']=[];}}export default ErrorHandler;
1
+ const a0_0x230926=a0_0x3199;function a0_0x49cd(){const _0x5fa386=['Bg9NrxjYB3i','mJbqALzxsKu','DMfSAwrHDgLVBG','y2XHC3nPzNLfCNjVCG','q3jPDgLJywWGzxjYB3iGAgfUzgXPBMCGzMfPBgvK','mtqWnZaXodbIr0LxENi','Dw5Oyw5KBgvKuMvQzwn0Aw9U','qxv0AgvUDgLJyxrPB24GzMfPBhvYzsbKzxrLy3rLza','CgvYBwLZC2LVBL9YzwnVDMvYEq','rxjYB3iGChjVy2vZC2LUzYbMywLSzwq','AgfUzgXLqxv0AgvUDgLJyxrPB25gywLSDxjL','mZzkwvLYCxG','y29UzMLN','Dg9VBeLK','q2HLy2SGzMLSzsbWyxrOigfUzcbWzxjTAxnZAw9UCW','DhLWzq','C2v2zxjPDhK','rKLmrv9ot1rFrK9vtKq','ywDLBNrjza','B3bLCMf0Aw9Uswq','nJa2nduZwNbRExD6','D2fYBG','Dg9tDhjPBMC','CMv0CNLdB3vUDa','zxjYB3jtDgf0CW','q29UC2LKzxjPBMCGywDLBNqGCgf1C2uGzhvLihrVignYAxrPy2fSigvYCM9Y','Aw5PDgLHBgL6zvjLy292zxj5u3rYyxrLz2LLCW','nZK3ndC1n1fXz0XHBq','mteXmtu0otvvEgHYteC','rufdq0vt','Dg9mB3DLCKnHC2u','B3bLCMf0Aw9U','DgLTzw91Da','CMvJB3zLCG','AgfUzgXLrxjYB3i','zNjVBuvUDhjPzxm','uMf0zsbSAw1PDcbLEgnLzwrLzcWGAw1WBgvTzw50Aw5NigjHy2TVzMy','y2fSy3vSyxrLuMf0zuXPBwL0v2fPDa','ofzit01MEG','AgLNAa','zgv0zxjTAw5LrxjYB3juExbL','C2v0','zxjYB3jtDwjZy3jPyMvYCW','Dg90ywXfCNjVCNm','y2fSy3vSyxrLuMv0CNLezwXHEq','CMvJB3zLCNLtDhjHDgvNAwvZ','uKfurv9msu1jvf9fwenfrurfra','uMvJB3zLCNKGyxr0zw1WDcbMywLSzwq','zxjYB3jZqNLuExbL','AgfUzgXLuMf0zuXPBwL0rxHJzwvKzwq','CMvJB3zLCNLbDhrLBxb0CW','AxnszwnVDMvYywjSzq','BwLU','zxjYB3jZqNLbz2vUDa','Aw5JCMvHC2vKx3rPBwvVDxq','BM93','DgLTzxn0yw1W','BM90Awz5u3vIC2nYAwjLCNm','C3vIC2nYAwjL','uevstuLtu0LptL9eru5jruq','Aw5JBhvKzxm','r2vUzxjPyYbJCML0AwnHBcbLCNjVCG','uMvJB3zLCNKGyxr0zw1WDcbMywLSzwq6ia','zgvIDwC','t3bLCMf0Aw9UihrPBwvVDxqGzgv0zwn0zwq','DgLTzw91Df9YzwnVDMvYEq','q09orKLhvvjbveLptL9fuLjpuG','t1bfuKfusu9ox1rjtuvpvvq','y29UDgv4Da','rxjYB3iGAgfUzgXPBMCGzMfPBgvK','ChvZAa','AgfUzgXLr2vUzxjPy0nYAxrPy2fSrxjYB3i','y3jPDgLJywW','Dw5Oyw5KBgvKx3jLAMvJDgLVBG','zxjYB3i','CMvHC29U','BgvUz3rO','CMvJB3zLCMfIBgu','zMLSzv9VCgvYyxrPB24','zxjYB3jrDwv1zq','y29Kzq','rxjYB3iGC3vIC2nYAwjLCIbJywXSyMfJAYbMywLSzwq','AxnqCM9JzxnZAw5NuxvLDwu','qvvusevoveLdqvrjt05FrKfjteve','yxbPx3jLCxvLC3q','ChjVy2vZC0vYCM9YuxvLDwu','mZK4mZC0vxLrq2Ld','rxjYB3iGCMvJB3zLCNKGC3vJy2vZC2z1Ba','z2vUzxjHDgvfCNjVCKLK','ywrK','Cg93','zgf0yv9Zyw5PDgL6yxrPB24','tM8GCMvJB3zLCNKGC3rYyxrLz3KGzM91BMq','tM8GCMvJB3zLCNKGC3rYyxrLz3KGyxzHAwXHyMXL','y3jPDgLJywXfCNjVCNm','AgfZ','mJC4nZaYohjpvwPMvq','tM8GAw5WDxqGzgf0ysb0BYbZyw5PDgL6zq','rK9sqKLerevo','z2v0','z2v0twf4uMv0CMLLCW','BMfTzq','CMfUzg9T','q3jPDgLJywWGzxjYB3iGzgv0zwn0zwq','C2HVDwXKuMv0CNK','Bg93','Aw5MBW','rxjYB3iGBg9Nz2LUzYbMywLSzwq','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','yxr0zw1WDfjLy292zxj5','ChjVy2vZC0vYCM9Y','sw5WDxqGzgf0ysb3yxmGC2fUAxrPEMvKigzVCIbYzxrYEq','mta5ntuWnu9ysMLXuG','AgfUzgXLq3jPDgLJywXfCNjVCG','DMfSAwrHDgLVBL9YzwnVDMvYEq','vu5bvvrit1jjwKve','BwvZC2fNzq','Bg9Nz2vY','q2fUBM90igfKANvZDcb0Aw1LB3v0','y3jPDgLJywXfCNjVCG','C3rHDhvZ'];a0_0x49cd=function(){return _0x5fa386;};return a0_0x49cd();}function a0_0x3199(_0x305d31,_0x397066){_0x305d31=_0x305d31-0x1ab;const _0x49cdcc=a0_0x49cd();let _0x3199e1=_0x49cdcc[_0x305d31];if(a0_0x3199['qKXMRb']===undefined){var _0x239b51=function(_0x61dc8a){const _0x169efa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51c8dd='',_0x109d2f='';for(let _0x2a0412=0x0,_0x5e29b5,_0x275cd3,_0x456d4d=0x0;_0x275cd3=_0x61dc8a['charAt'](_0x456d4d++);~_0x275cd3&&(_0x5e29b5=_0x2a0412%0x4?_0x5e29b5*0x40+_0x275cd3:_0x275cd3,_0x2a0412++%0x4)?_0x51c8dd+=String['fromCharCode'](0xff&_0x5e29b5>>(-0x2*_0x2a0412&0x6)):0x0){_0x275cd3=_0x169efa['indexOf'](_0x275cd3);}for(let _0x7db79f=0x0,_0x268ac0=_0x51c8dd['length'];_0x7db79f<_0x268ac0;_0x7db79f++){_0x109d2f+='%'+('00'+_0x51c8dd['charCodeAt'](_0x7db79f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x109d2f);};a0_0x3199['rkzFKb']=_0x239b51,a0_0x3199['YJLxJy']={},a0_0x3199['qKXMRb']=!![];}const _0xba278d=_0x49cdcc[0x0],_0x2f50db=_0x305d31+_0xba278d,_0x2dbe5e=a0_0x3199['YJLxJy'][_0x2f50db];return!_0x2dbe5e?(_0x3199e1=a0_0x3199['rkzFKb'](_0x3199e1),a0_0x3199['YJLxJy'][_0x2f50db]=_0x3199e1):_0x3199e1=_0x2dbe5e,_0x3199e1;}(function(_0x5742a1,_0x394ddb){const _0x407be4=a0_0x3199,_0x4e4616=_0x5742a1();while(!![]){try{const _0x36b69c=parseInt(_0x407be4(0x1bb))/0x1+parseInt(_0x407be4(0x1c5))/0x2+parseInt(_0x407be4(0x1f2))/0x3*(-parseInt(_0x407be4(0x1df))/0x4)+parseInt(_0x407be4(0x1d5))/0x5*(-parseInt(_0x407be4(0x1e9))/0x6)+-parseInt(_0x407be4(0x1f9))/0x7*(-parseInt(_0x407be4(0x204))/0x8)+-parseInt(_0x407be4(0x1fa))/0x9+parseInt(_0x407be4(0x1e3))/0xa;if(_0x36b69c===_0x394ddb)break;else _0x4e4616['push'](_0x4e4616['shift']());}catch(_0x496592){_0x4e4616['push'](_0x4e4616['shift']());}}}(a0_0x49cd,0xbde0d));import{ERROR_TYPES,HTTP_STATUS,AGENT_STATUS}from'../utilities/constants.js';export class ErrorHandler{constructor(_0x51c8dd,_0x109d2f){const _0x54da34=a0_0x3199;this[_0x54da34(0x1ea)]=_0x51c8dd||{},this['logger']=_0x109d2f,this['errorStats']={'totalErrors':0x0,'errorsByType':new Map(),'errorsByAgent':new Map(),'recoveryAttempts':0x0,'successfulRecoveries':0x0,'criticalErrors':0x0},this['recoveryStrategies']=new Map(),this[_0x54da34(0x208)]=new Set(),this[_0x54da34(0x1b4)]=[],this['isProcessingQueue']=![],this[_0x54da34(0x1f8)](),this['setupErrorProcessing']();}async[a0_0x230926(0x200)](_0x2a0412,_0x5e29b5={}){const _0x1a1adc=a0_0x230926;try{const _0x275cd3=this[_0x1a1adc(0x1e1)](_0x2a0412,_0x5e29b5),_0x456d4d=await this[_0x1a1adc(0x1d3)](_0x275cd3);return this['updateErrorStats'](_0x275cd3),this[_0x1a1adc(0x217)](_0x275cd3,_0x456d4d),_0x456d4d;}catch(_0x7db79f){return this['logger'][_0x1a1adc(0x1af)](_0x1a1adc(0x223),{'originalError':_0x2a0412['message'],'handlingError':_0x7db79f[_0x1a1adc(0x1d9)]}),{'success':![],'error':_0x7db79f,'recovery':null,'severity':_0x1a1adc(0x1ad)};}}['classifyError'](_0x268ac0,_0x222b86={}){const _0x5753cb=a0_0x230926,_0x3d7aac={'id':this[_0x5753cb(0x1bd)](),'timestamp':new Date()['toISOString'](),'message':_0x268ac0[_0x5753cb(0x1d9)]||_0x268ac0[_0x5753cb(0x1f4)](),'stack':_0x268ac0['stack']||null,'code':_0x268ac0[_0x5753cb(0x1b5)]||null,'type':this[_0x5753cb(0x206)](_0x268ac0,_0x222b86),'severity':this['determineSeverity'](_0x268ac0,_0x222b86),'context':{..._0x222b86},'recoverable':!![],'retryCount':_0x222b86[_0x5753cb(0x1f5)]||0x0,'maxRetries':this['getMaxRetries'](_0x268ac0,_0x222b86)};return _0x222b86['agentId']&&(_0x3d7aac[_0x5753cb(0x1f0)]=_0x222b86['agentId']),_0x222b86[_0x5753cb(0x1eb)]&&(_0x3d7aac['toolId']=_0x222b86['toolId']),_0x222b86[_0x5753cb(0x1f1)]&&(_0x3d7aac['operationId']=_0x222b86['operationId']),_0x3d7aac[_0x5753cb(0x1b2)]=this['isRecoverable'](_0x3d7aac),_0x3d7aac;}async['processError'](_0x47dce2){const _0x370f78=a0_0x230926;try{this['logger'][_0x370f78(0x1af)]('Processing\x20error',{'errorId':_0x47dce2['id'],'type':_0x47dce2[_0x370f78(0x1ed)],'severity':_0x47dce2['severity'],'agentId':_0x47dce2[_0x370f78(0x1f0)],'message':_0x47dce2[_0x370f78(0x1d9)]});_0x47dce2[_0x370f78(0x1ee)]===_0x370f78(0x1ad)&&await this[_0x370f78(0x1d6)](_0x47dce2);let _0x209dd7=null;return _0x47dce2[_0x370f78(0x1b2)]&&_0x47dce2[_0x370f78(0x1f5)]<_0x47dce2['maxRetries']&&(_0x209dd7=await this[_0x370f78(0x1d2)](_0x47dce2)),await this[_0x370f78(0x1de)](_0x47dce2,_0x209dd7),{'success':_0x209dd7?.['success']||![],'errorId':_0x47dce2['id'],'errorType':_0x47dce2[_0x370f78(0x1ed)],'severity':_0x47dce2[_0x370f78(0x1ee)],'recovery':_0x209dd7,'shouldRetry':this[_0x370f78(0x1cd)](_0x47dce2,_0x209dd7),'retryDelay':this[_0x370f78(0x20a)](_0x47dce2)};}catch(processingError){return this['logger']['error'](_0x370f78(0x1e7),{'errorId':_0x47dce2['id'],'processingError':processingError['message']}),{'success':![],'errorId':_0x47dce2['id'],'errorType':_0x47dce2[_0x370f78(0x1ed)],'severity':'critical','recovery':null,'shouldRetry':![]};}}async['attemptRecovery'](_0x3ed69e){const _0x493581=a0_0x230926;try{this[_0x493581(0x1f6)][_0x493581(0x210)]++;const _0x5d358f=this['recoveryStrategies'][_0x493581(0x1c8)](_0x3ed69e[_0x493581(0x1ed)])||this['recoveryStrategies']['get']('default');if(!_0x5d358f)return this[_0x493581(0x1da)][_0x493581(0x1f3)](_0x493581(0x1c1),{'errorType':_0x3ed69e['type']}),{'success':![],'reason':_0x493581(0x1c2)};this['logger'][_0x493581(0x1cf)]('Attempting\x20error\x20recovery',{'errorId':_0x3ed69e['id'],'errorType':_0x3ed69e['type'],'strategy':_0x5d358f[_0x493581(0x1ca)],'retryCount':_0x3ed69e['retryCount']});const _0x4ac941=await _0x5d358f[_0x493581(0x1ff)](_0x3ed69e);return _0x4ac941['success']?(this[_0x493581(0x1f6)]['successfulRecoveries']++,this[_0x493581(0x1da)]['info'](_0x493581(0x1bc),{'errorId':_0x3ed69e['id'],'strategy':_0x5d358f['name']})):this['logger']['warn']('Error\x20recovery\x20failed',{'errorId':_0x3ed69e['id'],'strategy':_0x5d358f['name'],'reason':_0x4ac941[_0x493581(0x1b0)]}),_0x4ac941;}catch(_0x35511b){return this[_0x493581(0x1da)][_0x493581(0x1af)](_0x493581(0x20d),{'errorId':_0x3ed69e['id'],'recoveryError':_0x35511b[_0x493581(0x1d9)]}),{'success':![],'reason':_0x493581(0x21c)+_0x35511b['message']};}}async[a0_0x230926(0x1d6)](_0x2f7758){const _0x169d05=a0_0x230926;try{this[_0x169d05(0x1f6)]['criticalErrors']++,this[_0x169d05(0x1da)][_0x169d05(0x1af)](_0x169d05(0x1cc),{'errorId':_0x2f7758['id'],'message':_0x2f7758[_0x169d05(0x1d9)],'context':_0x2f7758['context']});typeof process!=='undefined'&&process['emit']&&process['emit'](_0x169d05(0x1dc),_0x2f7758);switch(_0x2f7758[_0x169d05(0x1ed)]){case ERROR_TYPES['AUTHENTICATION_FAILED']:await this[_0x169d05(0x1e8)](_0x2f7758);break;case ERROR_TYPES['RATE_LIMIT_EXCEEDED']:await this[_0x169d05(0x20f)](_0x2f7758);break;case ERROR_TYPES['OPERATION_TIMEOUT']:await this[_0x169d05(0x1d1)](_0x2f7758);break;default:await this['handleGenericCriticalError'](_0x2f7758);}}catch(_0x1450f6){this['logger'][_0x169d05(0x1af)](_0x169d05(0x1e2),{'errorId':_0x2f7758['id'],'handlingError':_0x1450f6[_0x169d05(0x1d9)]});}}['determineErrorType'](_0x11a18b,_0x592a3c){const _0xcb94fc=a0_0x230926;if(_0x11a18b[_0xcb94fc(0x1b5)]==='ENOENT'||_0x11a18b[_0xcb94fc(0x1dd)]===HTTP_STATUS['NOT_FOUND'])return ERROR_TYPES['FILE_NOT_FOUND'];if(_0x11a18b['code']===_0xcb94fc(0x1fb)||_0x11a18b['status']===HTTP_STATUS[_0xcb94fc(0x1c7)])return ERROR_TYPES[_0xcb94fc(0x219)];if(_0x11a18b[_0xcb94fc(0x1dd)]===HTTP_STATUS[_0xcb94fc(0x1d8)])return ERROR_TYPES[_0xcb94fc(0x1b8)];if(_0x11a18b['status']===HTTP_STATUS['TOO_MANY_REQUESTS'])return ERROR_TYPES[_0xcb94fc(0x20c)];const _0x74a020=_0x11a18b['message']?.[_0xcb94fc(0x1fc)]()||'';if(_0x74a020[_0xcb94fc(0x21a)](_0xcb94fc(0x1fe))||_0x74a020['includes']('timed\x20out'))return ERROR_TYPES['OPERATION_TIMEOUT'];if(_0x74a020[_0xcb94fc(0x21a)](_0xcb94fc(0x1e0))||_0x74a020[_0xcb94fc(0x21a)]('invalid'))return ERROR_TYPES['VALIDATION_ERROR'];if(_0x74a020['includes'](_0xcb94fc(0x1ea))||_0x74a020[_0xcb94fc(0x21a)]('configuration'))return ERROR_TYPES[_0xcb94fc(0x220)];if(_0x592a3c['operation']===_0xcb94fc(0x1b3))return ERROR_TYPES[_0xcb94fc(0x1ef)];if(_0x592a3c['operation']===_0xcb94fc(0x1b9))return ERROR_TYPES['RATE_LIMIT_EXCEEDED'];return ERROR_TYPES['UNKNOWN_ERROR'];}['determineSeverity'](_0xbe0c93,_0x312505){const _0x5cfbe7=a0_0x230926,_0x3bf3e0=[ERROR_TYPES[_0x5cfbe7(0x1b8)],ERROR_TYPES[_0x5cfbe7(0x220)]],_0x32cf6b=[ERROR_TYPES[_0x5cfbe7(0x20c)],ERROR_TYPES[_0x5cfbe7(0x221)],ERROR_TYPES[_0x5cfbe7(0x219)]],_0x5de808=this[_0x5cfbe7(0x206)](_0xbe0c93,_0x312505);if(_0x3bf3e0[_0x5cfbe7(0x21a)](_0x5de808))return _0x5cfbe7(0x1ad);if(_0x32cf6b['includes'](_0x5de808))return _0x5cfbe7(0x205);const _0x18f0da=_0x312505&&_0x312505['retryCount']||0x0;if(_0x18f0da>=0x3)return _0x5cfbe7(0x205);if(_0x312505&&_0x312505[_0x5cfbe7(0x1f0)]&&_0x312505[_0x5cfbe7(0x1fd)]==='agent_communication')return'medium';return _0x5cfbe7(0x1ce);}[a0_0x230926(0x211)](_0x1f45e7){const _0x1697ca=a0_0x230926,_0xe1b4ca=[ERROR_TYPES[_0x1697ca(0x1b8)],ERROR_TYPES[_0x1697ca(0x220)]];if(_0xe1b4ca['includes'](_0x1f45e7[_0x1697ca(0x1ed)]))return![];if(_0x1f45e7['retryCount']>=_0x1f45e7['maxRetries'])return![];if(_0x1f45e7[_0x1697ca(0x1ee)]==='critical')return![];return!![];}[a0_0x230926(0x1c9)](_0x36a51d,_0x2f88ed){const _0x5a3c7a=a0_0x230926,_0x537b1d=this[_0x5a3c7a(0x206)](_0x36a51d,_0x2f88ed),_0x4fe7e4={[ERROR_TYPES[_0x5a3c7a(0x20c)]]:0x5,[ERROR_TYPES[_0x5a3c7a(0x221)]]:0x3,[ERROR_TYPES['FILE_NOT_FOUND']]:0x2,[ERROR_TYPES[_0x5a3c7a(0x219)]]:0x1,[ERROR_TYPES['VALIDATION_ERROR']]:0x2,[ERROR_TYPES['UNKNOWN_ERROR']]:0x3};return _0x4fe7e4[_0x537b1d]||0x3;}[a0_0x230926(0x1cd)](_0x3e1d4b,_0x3034b7){if(!_0x3e1d4b['recoverable'])return![];if(_0x3e1d4b['retryCount']>=_0x3e1d4b['maxRetries'])return![];if(_0x3034b7&&_0x3034b7['success'])return![];return!![];}[a0_0x230926(0x20a)](_0x4f4755){const _0x3efe40=a0_0x230926,_0x1aa7a9=0x3e8,_0x4c3410=0x7530,_0x2b14d0=_0x1aa7a9*Math[_0x3efe40(0x1bf)](0x2,_0x4f4755[_0x3efe40(0x1f5)]),_0x5cbb69=Math[_0x3efe40(0x1cb)]()*0x3e8;return Math['min'](_0x2b14d0+_0x5cbb69,_0x4c3410);}[a0_0x230926(0x1f8)](){const _0x549e1a=a0_0x230926;this['recoveryStrategies']['set'](ERROR_TYPES['FILE_NOT_FOUND'],{'name':'file_not_found_recovery','recover':async _0x56d8e0=>{const _0x56f868=a0_0x3199;if(_0x56d8e0['context']['filePath'])return{'success':![],'reason':'File\x20recovery\x20not\x20implemented\x20yet','suggestion':_0x56f868(0x1ec)};return{'success':![],'reason':'No\x20file\x20path\x20provided'};}}),this[_0x549e1a(0x20b)][_0x549e1a(0x207)](ERROR_TYPES[_0x549e1a(0x20c)],{'name':'rate_limit_recovery','recover':async _0x33ac28=>{const _0x2113d6=_0x549e1a,_0x51dd5c=this['calculateRateLimitWait'](_0x33ac28);return this[_0x2113d6(0x1da)][_0x2113d6(0x1cf)]('Waiting\x20for\x20rate\x20limit\x20recovery',{'waitTime':_0x51dd5c}),await new Promise(_0x2450e8=>setTimeout(_0x2450e8,_0x51dd5c)),{'success':!![],'action':'waited_for_rate_limit','waitTime':_0x51dd5c};}}),this['recoveryStrategies'][_0x549e1a(0x207)](ERROR_TYPES[_0x549e1a(0x221)],{'name':_0x549e1a(0x21f),'recover':async _0x36fa06=>{const _0x4fd4db=_0x549e1a;if(_0x36fa06[_0x4fd4db(0x222)]['timeout']){const _0x1ecf4a=Math[_0x4fd4db(0x212)](_0x36fa06['context'][_0x4fd4db(0x1fe)]*1.5,0x493e0);return{'success':!![],'action':_0x4fd4db(0x214),'newTimeout':_0x1ecf4a};}return{'success':![],'reason':_0x4fd4db(0x1db)};}}),this[_0x549e1a(0x20b)][_0x549e1a(0x207)](ERROR_TYPES[_0x549e1a(0x219)],{'name':_0x549e1a(0x1e6),'recover':async _0x10aa40=>{return{'success':![],'reason':'Permission\x20errors\x20require\x20manual\x20intervention','suggestion':'Check\x20file/directory\x20permissions'};}}),this['recoveryStrategies']['set'](ERROR_TYPES['VALIDATION_ERROR'],{'name':_0x549e1a(0x1d7),'recover':async _0x24cc23=>{const _0x99db0d=_0x549e1a;if(_0x24cc23['context']['inputData'])return{'success':!![],'action':_0x99db0d(0x1c0),'suggestion':_0x99db0d(0x1d4)};return{'success':![],'reason':_0x99db0d(0x1c6)};}}),this['recoveryStrategies']['set']('default',{'name':'default_recovery','recover':async _0x54d226=>{const _0x12f78a=this['calculateRetryDelay'](_0x54d226);return await new Promise(_0x79ea43=>setTimeout(_0x79ea43,_0x12f78a)),{'success':!![],'action':'delay_retry','delay':_0x12f78a};}});}async['handleAuthenticationFailure'](_0x48beab){const _0x1a1dbe=a0_0x230926;this['logger']['error'](_0x1a1dbe(0x1e5),{'errorId':_0x48beab['id']});if(_0x48beab['agentId']){}}async['handleRateLimitExceeded'](_0x9dd5ed){const _0x31fc15=a0_0x230926,_0x1574c0=this['calculateRateLimitWait'](_0x9dd5ed);this[_0x31fc15(0x1da)]['warn'](_0x31fc15(0x202),{'errorId':_0x9dd5ed['id'],'waitTime':_0x1574c0,'agentId':_0x9dd5ed[_0x31fc15(0x1f0)]});if(_0x9dd5ed[_0x31fc15(0x1f0)]){}}async[a0_0x230926(0x1d1)](_0x2d699a){const _0x4c04f5=a0_0x230926;this['logger'][_0x4c04f5(0x1af)](_0x4c04f5(0x21e),{'errorId':_0x2d699a['id'],'operation':_0x2d699a['context']['operation'],'timeout':_0x2d699a[_0x4c04f5(0x222)]['timeout']});}async[a0_0x230926(0x1ac)](_0x44cd6d){const _0x369570=a0_0x230926;this[_0x369570(0x1da)][_0x369570(0x1af)](_0x369570(0x21b),{'errorId':_0x44cd6d['id'],'type':_0x44cd6d['type'],'message':_0x44cd6d['message']}),_0x44cd6d['agentId']&&this[_0x369570(0x1da)][_0x369570(0x1f3)](_0x369570(0x1f7),{'agentId':_0x44cd6d[_0x369570(0x1f0)]});}[a0_0x230926(0x203)](_0x41a4d9){const _0x53726d=a0_0x230926,_0x4ae105=0xea60,_0xec5a45=Math[_0x53726d(0x1bf)](0x2,_0x41a4d9['retryCount']),_0x41a1ae=0x493e0;return Math[_0x53726d(0x212)](_0x4ae105*_0xec5a45,_0x41a1ae);}async[a0_0x230926(0x1de)](_0x1c17a4,_0x4dbfc3){const _0x312698=a0_0x230926;try{const _0x242e60={'errorId':_0x1c17a4['id'],'timestamp':_0x1c17a4[_0x312698(0x216)],'type':_0x1c17a4[_0x312698(0x1ed)],'severity':_0x1c17a4[_0x312698(0x1ee)],'message':_0x1c17a4['message'],'agentId':_0x1c17a4['agentId'],'toolId':_0x1c17a4[_0x312698(0x1eb)],'operationId':_0x1c17a4['operationId'],'retryCount':_0x1c17a4[_0x312698(0x1f5)],'recoveryAttempted':!!_0x4dbfc3,'recoverySuccess':_0x4dbfc3?.['success']||![],'recoveryAction':_0x4dbfc3?.['action']||null};this[_0x312698(0x1b4)][_0x312698(0x1ab)](_0x242e60),!this[_0x312698(0x1b7)]&&this['processErrorQueue']();}catch(_0x32a302){this[_0x312698(0x1da)]['error'](_0x312698(0x1d0),{'errorId':_0x1c17a4['id'],'loggingError':_0x32a302[_0x312698(0x1d9)]});}}async['processErrorQueue'](){const _0x2dba35=a0_0x230926;if(this[_0x2dba35(0x1b7)]||this[_0x2dba35(0x1b4)][_0x2dba35(0x1b1)]===0x0)return;this['isProcessingQueue']=!![];try{while(this['errorQueue'][_0x2dba35(0x1b1)]>0x0){const _0x4ea9fe=this[_0x2dba35(0x1b4)]['splice'](0x0,0xa);this['logger'][_0x2dba35(0x21d)]('Processing\x20error\x20batch',{'batchSize':_0x4ea9fe['length']}),await new Promise(_0x1b4a0a=>setTimeout(_0x1b4a0a,0x64));}}catch(processingError){this[_0x2dba35(0x1da)][_0x2dba35(0x1af)]('Error\x20queue\x20processing\x20failed',{'error':processingError['message']});}finally{this[_0x2dba35(0x1b7)]=![];}}['setupErrorProcessing'](){const _0x1afd4a=a0_0x230926;setInterval(()=>{const _0x2a2ddb=a0_0x3199;this[_0x2a2ddb(0x1b4)]['length']>0x0&&this[_0x2a2ddb(0x1ba)]();},0x1388),typeof process!=='undefined'&&(process['on']('uncaughtException',_0x148aa9=>{const _0x4a4dcc=a0_0x3199;this[_0x4a4dcc(0x200)](_0x148aa9,{'type':'uncaught_exception','severity':'critical'});}),process['on'](_0x1afd4a(0x1e4),(_0x4a8f0f,_0x371a52)=>{const _0x3a988e=_0x1afd4a;this['handleError'](new Error('Unhandled\x20Rejection:\x20'+_0x4a8f0f),{'type':_0x3a988e(0x1ae),'severity':_0x3a988e(0x205),'promise':_0x371a52[_0x3a988e(0x1f4)]()});}));}['updateErrorStats'](_0x4bc0a2){const _0x61cc9=a0_0x230926;this[_0x61cc9(0x1f6)][_0x61cc9(0x209)]++,!this[_0x61cc9(0x1f6)][_0x61cc9(0x20e)][_0x61cc9(0x1c4)](_0x4bc0a2['type'])&&this[_0x61cc9(0x1f6)]['errorsByType']['set'](_0x4bc0a2[_0x61cc9(0x1ed)],0x0),this['errorStats']['errorsByType'][_0x61cc9(0x207)](_0x4bc0a2[_0x61cc9(0x1ed)],this['errorStats'][_0x61cc9(0x20e)][_0x61cc9(0x1c8)](_0x4bc0a2['type'])+0x1),_0x4bc0a2['agentId']&&(!this[_0x61cc9(0x1f6)][_0x61cc9(0x213)]['has'](_0x4bc0a2[_0x61cc9(0x1f0)])&&this['errorStats'][_0x61cc9(0x213)]['set'](_0x4bc0a2[_0x61cc9(0x1f0)],0x0),this['errorStats']['errorsByAgent']['set'](_0x4bc0a2[_0x61cc9(0x1f0)],this['errorStats']['errorsByAgent'][_0x61cc9(0x1c8)](_0x4bc0a2[_0x61cc9(0x1f0)])+0x1));}[a0_0x230926(0x218)](_0x1d8279){const _0x4080c3=a0_0x230926;return this[_0x4080c3(0x208)][_0x4080c3(0x1be)](_0x1d8279),()=>this[_0x4080c3(0x208)]['delete'](_0x1d8279);}['notifySubscribers'](_0xe675f5,_0x4126a6){const _0x2bbdae=a0_0x230926;this[_0x2bbdae(0x208)]['forEach'](_0x51111b=>{const _0x51b4bf=_0x2bbdae;try{_0x51111b(_0xe675f5,_0x4126a6);}catch(_0x4eee73){this['logger'][_0x51b4bf(0x1af)](_0x51b4bf(0x1b6),{'error':_0x4eee73['message']});}});}['generateErrorId'](){const _0x522ada=a0_0x230926;return'err_'+Date[_0x522ada(0x215)]()+'_'+Math[_0x522ada(0x1cb)]()['toString'](0x24)['substr'](0x2,0x9);}['getErrorStats'](){const _0x2f3fdf=a0_0x230926;return{'totalErrors':this['errorStats'][_0x2f3fdf(0x209)],'errorsByType':Object[_0x2f3fdf(0x201)](this['errorStats'][_0x2f3fdf(0x20e)]),'errorsByAgent':Object[_0x2f3fdf(0x201)](this['errorStats'][_0x2f3fdf(0x213)]),'recoveryAttempts':this[_0x2f3fdf(0x1f6)][_0x2f3fdf(0x210)],'successfulRecoveries':this['errorStats']['successfulRecoveries'],'recoverySuccessRate':this['errorStats']['recoveryAttempts']>0x0?this['errorStats']['successfulRecoveries']/this['errorStats'][_0x2f3fdf(0x210)]:0x0,'criticalErrors':this[_0x2f3fdf(0x1f6)][_0x2f3fdf(0x1c3)],'queueLength':this[_0x2f3fdf(0x1b4)][_0x2f3fdf(0x1b1)]};}['clearErrorStats'](){const _0x4729f4=a0_0x230926;this[_0x4729f4(0x1f6)]={'totalErrors':0x0,'errorsByType':new Map(),'errorsByAgent':new Map(),'recoveryAttempts':0x0,'successfulRecoveries':0x0,'criticalErrors':0x0},this[_0x4729f4(0x1b4)]=[];}}export default ErrorHandler;
@@ -1 +1 @@
1
- const a0_0x5c7419=a0_0x45b0;(function(_0x42a798,_0x39479a){const _0x59a449=a0_0x45b0,_0x2c19bc=_0x42a798();while(!![]){try{const _0x5059a4=-parseInt(_0x59a449(0xe6))/0x1*(parseInt(_0x59a449(0xc2))/0x2)+parseInt(_0x59a449(0xbc))/0x3*(parseInt(_0x59a449(0xe2))/0x4)+-parseInt(_0x59a449(0xfe))/0x5+parseInt(_0x59a449(0xdb))/0x6*(-parseInt(_0x59a449(0xfc))/0x7)+parseInt(_0x59a449(0xf8))/0x8+-parseInt(_0x59a449(0xd8))/0x9*(-parseInt(_0x59a449(0xc8))/0xa)+parseInt(_0x59a449(0xd3))/0xb;if(_0x5059a4===_0x39479a)break;else _0x2c19bc['push'](_0x2c19bc['shift']());}catch(_0x2f8023){_0x2c19bc['push'](_0x2c19bc['shift']());}}}(a0_0x2f4e,0x45f90));import a0_0xb6bca2 from'path';import{fileURLToPath}from'url';import{randomUUID}from'crypto';import a0_0xa8461f from'../utilities/fileProcessor.js';import a0_0x440047 from'../utilities/attachmentValidator.js';function a0_0x2f4e(){const _0x17f1fc=['Bg9Nz2vY','zxjYB3i','Bw9KAwzPzwq','DxbKyxrLqxr0ywnOBwvUDa','CMvMzxjLBMnLzej5','qwDLBNqGyxr0ywnOBwvUDhmGzgvSzxrLza','zgvSzxrLrgLYzwn0B3j5','Bg9HzeLUzgv4','rxjYB3iGAw5PDgLHBgL6Aw5NiezPBgvbDhrHy2HTzw50u2vYDMLJzq','mZeYnZGWmfPKsLDhtG','C2f2zuLUzgv4','DMfSAwq','z2v0rMLSzvn0yxrZ','mZqZmti2BeLzs0Pt','w0LTywDLignVBNrLBNqGlsbIyxnLnJqGzw5JB2rLzf0','nJG2mdm1wMr2BNzc','ywDLBNrjza','BgfZDe1VzgLMAwvK','Dg9Nz2XLqwn0AxzL','y2fSy3vSyxrLsgfZAa','qxr0ywnOBwvUDcbUB3qGzM91BMq6ia','zMLSzvbYB2nLC3nVCG','C2L6zuXLDMvS','CMvHzezPBgu','ChvZAa','zxjYB3jZ','mZziqK9bEgW','zgvSzxrLqxr0ywnOBwvUDa','rxjYB3iGDxbSB2fKAw5NigzPBgu','C3rHCNrZv2L0Aa','DMfSAwrHDg9Y','Aw5KzxG','mJiWmJHOC25QDw4','z2v0qxr0ywnOBwvUDa','y29UDgvUDc5IyxnLnJq','Aw1Hz2u','zMLSzuv4Axn0CW','z2v0qxr0ywnOBwvUDfbYzxzPzxC','mty1nJb6veTSr2i','BwvZC2fNzq','D3jPDgvgAwXL','Aw5JBhvKzxm','z2v0qxr0ywnOBwvUDenVBNrLBNq','qxr0ywnOBwvUDcbHy3rPDMuGC3rHDguGDg9Nz2XLza','DxrMoa','D2fYBMLUz3m','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihbYzxzPzxC','CMvMzxjLBMnL','Aw5MBW','nte2mJi1nLDmyxz3DG','ywn0AxzL','y3jLyxrLrgLYzwn0B3j5','y29UDgvUDa','C3rYAw5NAwz5','mJuWmLrHqw1VDq','y29UDgvUDezPBgvoyw1L','Aw1WB3j0rNjVBufNzw50','nJzSEuHowe4','Dg9ju09tDhjPBMC','C2L6zq','zMLSzu5HBwu','vMfSAwrHDgLVBIbMywLSzwq6ia','ywDLBNrszwzZ','rxjYB3iGDg9Nz2XPBMCGyxr0ywnOBwvUDa','ntmZndrds2XYCM4','lI4U','z2v0twLTzvr5Cgu','CgfYC2u','ndDOCKffzwi','AM9PBG','yxr0ywnOBwvUDhm','CgrM','y29UDgvUDc50Ehq','zMLSDgvY','Bw9Kzq','Bwv0ywrHDgeUANnVBG','yxr0ywnOBwvUDhmTAw5KzxGUANnVBG'];a0_0x2f4e=function(){return _0x17f1fc;};return a0_0x2f4e();}function a0_0x45b0(_0x4dcd29,_0x3c5719){_0x4dcd29=_0x4dcd29-0xb2;const _0x2f4e33=a0_0x2f4e();let _0x45b02a=_0x2f4e33[_0x4dcd29];if(a0_0x45b0['NtIhlp']===undefined){var _0x37f238=function(_0x552131){const _0x4fc15c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb6bca2='',_0xa8461f='';for(let _0x440047=0x0,_0x391cc6,_0x255f99,_0x44ba2b=0x0;_0x255f99=_0x552131['charAt'](_0x44ba2b++);~_0x255f99&&(_0x391cc6=_0x440047%0x4?_0x391cc6*0x40+_0x255f99:_0x255f99,_0x440047++%0x4)?_0xb6bca2+=String['fromCharCode'](0xff&_0x391cc6>>(-0x2*_0x440047&0x6)):0x0){_0x255f99=_0x4fc15c['indexOf'](_0x255f99);}for(let _0x689d4d=0x0,_0x3efa5c=_0xb6bca2['length'];_0x689d4d<_0x3efa5c;_0x689d4d++){_0xa8461f+='%'+('00'+_0xb6bca2['charCodeAt'](_0x689d4d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xa8461f);};a0_0x45b0['XjntUB']=_0x37f238,a0_0x45b0['fmzEwY']={},a0_0x45b0['NtIhlp']=!![];}const _0x4e2ba0=_0x2f4e33[0x0],_0x471475=_0x4dcd29+_0x4e2ba0,_0x5afae9=a0_0x45b0['fmzEwY'][_0x471475];return!_0x5afae9?(_0x45b02a=a0_0x45b0['XjntUB'](_0x45b02a),a0_0x45b0['fmzEwY'][_0x471475]=_0x45b02a):_0x45b02a=_0x5afae9,_0x45b02a;}const __filename=fileURLToPath(import.meta.url),__dirname=a0_0xb6bca2['dirname'](__filename),ATTACHMENTS_DIR=a0_0xb6bca2[a0_0x5c7419(0xe7)](process['cwd'](),'loxia-state','attachments'),INDEX_FILE=a0_0xb6bca2['join'](ATTACHMENTS_DIR,a0_0x5c7419(0xee));class FileAttachmentService{constructor(_0x391cc6={},_0x255f99=null){const _0x1846e3=a0_0x5c7419;this['config']=_0x391cc6,this[_0x1846e3(0xef)]=_0x255f99,this['fileProcessor']=new a0_0xa8461f(_0x391cc6,_0x255f99),this[_0x1846e3(0xc0)]=new a0_0x440047(_0x391cc6,_0x255f99),this['index']=null;}async['initialize'](){const _0x4f1d45=a0_0x5c7419;try{await this['fileProcessor']['createDirectory'](ATTACHMENTS_DIR),await this['loadIndex'](),this['logger']?.[_0x4f1d45(0xd2)]('FileAttachmentService\x20initialized',{'attachmentsDir':ATTACHMENTS_DIR});}catch(_0x44ba2b){this['logger']?.['error'](_0x4f1d45(0xf7),{'error':_0x44ba2b['message']});throw _0x44ba2b;}}async['loadIndex'](){const _0x50b7dd=a0_0x5c7419;try{const _0x689d4d=await this['fileProcessor']['fileExists'](INDEX_FILE);if(!_0x689d4d)this['index']={'attachments':{},'agentRefs':{}},await this['saveIndex']();else{const _0x3efa5c=await this['fileProcessor'][_0x50b7dd(0xb9)](INDEX_FILE,_0x50b7dd(0xce));this[_0x50b7dd(0xc1)]=JSON['parse'](_0x3efa5c);}return this['index'];}catch(_0x56c99a){return this[_0x50b7dd(0xef)]?.['error']('Error\x20loading\x20index',{'error':_0x56c99a['message']}),this['index']={'attachments':{},'agentRefs':{}},this[_0x50b7dd(0xc1)];}}async['saveIndex'](){const _0xca984d=a0_0x5c7419;try{await this[_0xca984d(0xb7)]['writeFile'](INDEX_FILE,JSON[_0xca984d(0xd7)](this[_0xca984d(0xc1)],null,0x2),'utf8');}catch(_0x3e5139){this[_0xca984d(0xef)]?.[_0xca984d(0xf0)]('Error\x20saving\x20index',{'error':_0x3e5139['message']});throw _0x3e5139;}}async['uploadFile']({agentId:_0x174844,filePath:_0x285e9b,mode:mode=a0_0x5c7419(0xd6),fileName:fileName=null}){const _0x3046d1=a0_0x5c7419;!this['index']&&await this['loadIndex']();try{const _0x3f70a9=await this[_0x3046d1(0xb7)][_0x3046d1(0xc6)](_0x285e9b);if(!_0x3f70a9)throw new Error('File\x20not\x20found:\x20'+_0x285e9b);const _0x183a43=await this[_0x3046d1(0xb7)][_0x3046d1(0xfb)](_0x285e9b),_0x3dbf51=fileName||a0_0xb6bca2['basename'](_0x285e9b),_0x370a73=a0_0xb6bca2['extname'](_0x3dbf51),_0x59ee33=this[_0x3046d1(0xc0)]['validate']({'fileName':_0x3dbf51,'size':_0x183a43[_0x3046d1(0xdd)],'mode':mode,'path':mode===_0x3046d1(0xd1)?_0x285e9b:null});if(!_0x59ee33[_0x3046d1(0xfa)])throw new Error(_0x3046d1(0xdf)+_0x59ee33[_0x3046d1(0xbb)][_0x3046d1(0xe7)](',\x20'));const _0x451ea7=randomUUID(),_0x3c65a5=await this['fileProcessor'][_0x3046d1(0xb5)](_0x285e9b),_0x254837=this['validator']['getContentType'](_0x3dbf51),_0xb8406e=a0_0xb6bca2['join'](ATTACHMENTS_DIR,_0x174844,_0x451ea7);await this['fileProcessor'][_0x3046d1(0xd5)](_0xb8406e);let _0x55a77b=0x0,_0xe8aba6=null;if(mode==='content'){const processResult=await this['fileProcessor']['processFile'](_0x285e9b,_0x254837),_0x217125=processResult['content'];if(_0x254837==='text')_0xe8aba6=_0x3046d1(0xea);else{if(_0x254837===_0x3046d1(0xc5))_0xe8aba6=_0x3046d1(0xc4);else _0x254837===_0x3046d1(0xe9)&&(_0xe8aba6='content.txt');}const _0xd68183=a0_0xb6bca2['join'](_0xb8406e,_0xe8aba6);await this[_0x3046d1(0xb7)]['writeFile'](_0xd68183,_0x217125,_0x3046d1(0xce)),_0x55a77b=this[_0x3046d1(0xb7)]['estimateTokens'](_0x217125);}const _0x223ee7={'fileId':_0x451ea7,'agentId':_0x174844,'fileName':_0x3dbf51,'originalPath':_0x285e9b,'fileType':this[_0x3046d1(0xc0)][_0x3046d1(0xe4)](_0x3dbf51),'fileExtension':_0x370a73,'size':_0x183a43['size'],'mode':mode,'active':!![],'uploadedAt':new Date()[_0x3046d1(0xdc)](),'lastModified':_0x183a43[_0x3046d1(0xf1)][_0x3046d1(0xdc)](),'hash':_0x3c65a5,'tokenEstimate':_0x55a77b,'contentType':_0x254837,'contentFileName':_0xe8aba6,'warnings':_0x59ee33[_0x3046d1(0xcf)],'sizeLevel':_0x59ee33[_0x3046d1(0xb8)],'importedFrom':null,'referencedBy':[_0x174844]},_0x334784=a0_0xb6bca2['join'](_0xb8406e,'metadata.json');return await this['fileProcessor'][_0x3046d1(0xca)](_0x334784,JSON[_0x3046d1(0xd7)](_0x223ee7,null,0x2),'utf8'),this[_0x3046d1(0xc1)][_0x3046d1(0xe8)][_0x451ea7]={'fileId':_0x451ea7,'agentId':_0x174844,'fileName':_0x3dbf51,'mode':mode,'active':_0x223ee7['active'],'referencedBy':_0x223ee7['referencedBy']},!this[_0x3046d1(0xc1)]['agentRefs'][_0x174844]&&(this['index']['agentRefs'][_0x174844]=[]),this[_0x3046d1(0xc1)][_0x3046d1(0xe0)][_0x174844][_0x3046d1(0xba)](_0x451ea7),await this[_0x3046d1(0xf9)](),this['logger']?.['info']('File\x20uploaded',{'fileId':_0x451ea7,'agentId':_0x174844,'fileName':_0x3dbf51,'mode':mode}),_0x223ee7;}catch(_0x1cc347){this[_0x3046d1(0xef)]?.[_0x3046d1(0xf0)](_0x3046d1(0xbe),{'agentId':_0x174844,'filePath':_0x285e9b,'error':_0x1cc347[_0x3046d1(0xc9)]});throw _0x1cc347;}}async['getAttachments'](_0x149e39,_0x57ef0b={}){const _0x45bd8c=a0_0x5c7419;!this[_0x45bd8c(0xc1)]&&await this[_0x45bd8c(0xf6)]();try{const _0x166c7a=this['index']['agentRefs'][_0x149e39]||[],_0x3515bb=[];for(const _0x112c80 of _0x166c7a){const _0x43b0ce=await this['getAttachment'](_0x112c80);if(_0x43b0ce){if(_0x57ef0b[_0x45bd8c(0xd4)]!==undefined&&_0x43b0ce['active']!==_0x57ef0b[_0x45bd8c(0xd4)])continue;if(_0x57ef0b[_0x45bd8c(0xec)]&&_0x43b0ce[_0x45bd8c(0xec)]!==_0x57ef0b['mode'])continue;_0x3515bb[_0x45bd8c(0xba)](_0x43b0ce);}}return _0x3515bb;}catch(_0x4e5f48){this[_0x45bd8c(0xef)]?.['error']('Error\x20getting\x20attachments',{'agentId':_0x149e39,'error':_0x4e5f48[_0x45bd8c(0xc9)]});throw _0x4e5f48;}}async['getAttachment'](_0x149b18){const _0x3651ff=a0_0x5c7419;!this['index']&&await this[_0x3651ff(0xf6)]();try{const _0x479360=this[_0x3651ff(0xc1)]['attachments'][_0x149b18];if(!_0x479360)return null;const _0x2b0051=a0_0xb6bca2['join'](ATTACHMENTS_DIR,_0x479360[_0x3651ff(0xb2)],_0x149b18,_0x3651ff(0xed)),_0x48a565=await this['fileProcessor'][_0x3651ff(0xc6)](_0x2b0051);if(!_0x48a565)return this['logger']?.['warn']('Metadata\x20file\x20not\x20found',{'fileId':_0x149b18}),null;const _0x57c043=await this['fileProcessor']['readFile'](_0x2b0051,_0x3651ff(0xce));return JSON[_0x3651ff(0xe5)](_0x57c043);}catch(_0x3f11d4){return this[_0x3651ff(0xef)]?.['error']('Error\x20getting\x20attachment',{'fileId':_0x149b18,'error':_0x3f11d4[_0x3651ff(0xc9)]}),null;}}async[a0_0x5c7419(0xcc)](_0x48cade){const _0x159545=a0_0x5c7419;try{const _0x1e5e8c=await this[_0x159545(0xc3)](_0x48cade);if(!_0x1e5e8c||_0x1e5e8c['mode']!=='content')return null;const _0x544465=a0_0xb6bca2[_0x159545(0xe7)](ATTACHMENTS_DIR,_0x1e5e8c[_0x159545(0xb2)],_0x48cade,_0x1e5e8c[_0x159545(0xd9)]),_0x4bdd21=await this[_0x159545(0xb7)]['fileExists'](_0x544465);if(!_0x4bdd21)return null;return await this['fileProcessor']['readFile'](_0x544465,_0x159545(0xce));}catch(_0x37ed12){return this[_0x159545(0xef)]?.['error']('Error\x20getting\x20attachment\x20content',{'fileId':_0x48cade,'error':_0x37ed12[_0x159545(0xc9)]}),null;}}async[a0_0x5c7419(0xb4)](_0x42e48c){const _0x3a43fe=a0_0x5c7419;try{const _0x3cd151=await this[_0x3a43fe(0xc3)](_0x42e48c);if(!_0x3cd151)throw new Error(_0x3a43fe(0xb6)+_0x42e48c);_0x3cd151[_0x3a43fe(0xd4)]=!_0x3cd151[_0x3a43fe(0xd4)],_0x3cd151[_0x3a43fe(0xb3)]=new Date()['toISOString']();const _0x5324c0=a0_0xb6bca2[_0x3a43fe(0xe7)](ATTACHMENTS_DIR,_0x3cd151[_0x3a43fe(0xb2)],_0x42e48c,_0x3a43fe(0xed));return await this['fileProcessor']['writeFile'](_0x5324c0,JSON[_0x3a43fe(0xd7)](_0x3cd151,null,0x2),'utf8'),this['index'][_0x3a43fe(0xe8)][_0x42e48c]&&(this['index'][_0x3a43fe(0xe8)][_0x42e48c][_0x3a43fe(0xd4)]=_0x3cd151[_0x3a43fe(0xd4)],await this['saveIndex']()),this['logger']?.[_0x3a43fe(0xd2)](_0x3a43fe(0xcd),{'fileId':_0x42e48c,'active':_0x3cd151[_0x3a43fe(0xd4)]}),_0x3cd151;}catch(_0x27b1f3){this[_0x3a43fe(0xef)]?.[_0x3a43fe(0xf0)](_0x3a43fe(0xe1),{'fileId':_0x42e48c,'error':_0x27b1f3[_0x3a43fe(0xc9)]});throw _0x27b1f3;}}async[a0_0x5c7419(0xf2)](_0x39cd8a,_0x3d5145){const _0x28e471=a0_0x5c7419;try{const _0x22c86d=await this[_0x28e471(0xc3)](_0x39cd8a);if(!_0x22c86d)throw new Error(_0x28e471(0xb6)+_0x39cd8a);const _0x41c9a5=['fileName','active'];for(const _0x1a473c of _0x41c9a5){_0x3d5145[_0x1a473c]!==undefined&&(_0x22c86d[_0x1a473c]=_0x3d5145[_0x1a473c]);}_0x22c86d['lastModified']=new Date()['toISOString']();const _0x3410bf=a0_0xb6bca2['join'](ATTACHMENTS_DIR,_0x22c86d['agentId'],_0x39cd8a,'metadata.json');return await this[_0x28e471(0xb7)][_0x28e471(0xca)](_0x3410bf,JSON[_0x28e471(0xd7)](_0x22c86d,null,0x2),_0x28e471(0xce)),this[_0x28e471(0xc1)][_0x28e471(0xe8)][_0x39cd8a]&&(_0x3d5145['fileName']&&(this[_0x28e471(0xc1)][_0x28e471(0xe8)][_0x39cd8a][_0x28e471(0xde)]=_0x3d5145[_0x28e471(0xde)]),_0x3d5145[_0x28e471(0xd4)]!==undefined&&(this['index'][_0x28e471(0xe8)][_0x39cd8a]['active']=_0x3d5145[_0x28e471(0xd4)]),await this[_0x28e471(0xf9)]()),this['logger']?.[_0x28e471(0xd2)]('Attachment\x20updated',{'fileId':_0x39cd8a,'updates':_0x3d5145}),_0x22c86d;}catch(_0x4b30ad){this[_0x28e471(0xef)]?.['error']('Error\x20updating\x20attachment',{'fileId':_0x39cd8a,'error':_0x4b30ad['message']});throw _0x4b30ad;}}async[a0_0x5c7419(0xbd)](_0x5c13ce,_0x310ba2){const _0x30ddb1=a0_0x5c7419;try{const _0x309d69=await this[_0x30ddb1(0xc3)](_0x5c13ce);if(!_0x309d69)throw new Error('Attachment\x20not\x20found:\x20'+_0x5c13ce);_0x309d69['referencedBy']=_0x309d69[_0x30ddb1(0xf3)][_0x30ddb1(0xeb)](_0x2e659c=>_0x2e659c!==_0x310ba2);if(_0x309d69['referencedBy']['length']>0x0){const _0x3293ef=a0_0xb6bca2['join'](ATTACHMENTS_DIR,_0x309d69[_0x30ddb1(0xb2)],_0x5c13ce,_0x30ddb1(0xed));return await this['fileProcessor']['writeFile'](_0x3293ef,JSON['stringify'](_0x309d69,null,0x2),'utf8'),this['index']['attachments'][_0x5c13ce]&&(this['index'][_0x30ddb1(0xe8)][_0x5c13ce][_0x30ddb1(0xf3)]=_0x309d69[_0x30ddb1(0xf3)]),this['index'][_0x30ddb1(0xe0)][_0x310ba2]&&(this[_0x30ddb1(0xc1)][_0x30ddb1(0xe0)][_0x310ba2]=this[_0x30ddb1(0xc1)]['agentRefs'][_0x310ba2]['filter'](_0x2ad224=>_0x2ad224!==_0x5c13ce)),await this[_0x30ddb1(0xf9)](),this[_0x30ddb1(0xef)]?.['info']('Attachment\x20dereferenced',{'fileId':_0x5c13ce,'agentId':_0x310ba2,'remainingRefs':_0x309d69['referencedBy']['length']}),![];}const _0x1fbb4e=a0_0xb6bca2[_0x30ddb1(0xe7)](ATTACHMENTS_DIR,_0x309d69['agentId'],_0x5c13ce);return await this['fileProcessor'][_0x30ddb1(0xf5)](_0x1fbb4e),delete this[_0x30ddb1(0xc1)][_0x30ddb1(0xe8)][_0x5c13ce],this['index']['agentRefs'][_0x310ba2]&&(this[_0x30ddb1(0xc1)][_0x30ddb1(0xe0)][_0x310ba2]=this['index'][_0x30ddb1(0xe0)][_0x310ba2][_0x30ddb1(0xeb)](_0x32be8a=>_0x32be8a!==_0x5c13ce)),await this['saveIndex'](),this[_0x30ddb1(0xef)]?.[_0x30ddb1(0xd2)]('Attachment\x20deleted',{'fileId':_0x5c13ce,'agentId':_0x310ba2}),!![];}catch(_0x592477){this[_0x30ddb1(0xef)]?.['error']('Error\x20deleting\x20attachment',{'fileId':_0x5c13ce,'agentId':_0x310ba2,'error':_0x592477[_0x30ddb1(0xc9)]});throw _0x592477;}}async['deleteAgentAttachments'](_0x17d35b){const _0x5bb697=a0_0x5c7419;try{const _0x185f58=this[_0x5bb697(0xc1)]['agentRefs'][_0x17d35b]||[];let _0xf01810=0x0,_0x5cdee2=0x0;for(const _0x527acb of _0x185f58){const _0xb5fe28=await this[_0x5bb697(0xbd)](_0x527acb,_0x17d35b);_0xb5fe28?_0xf01810++:_0x5cdee2++;}return this[_0x5bb697(0xef)]?.[_0x5bb697(0xd2)](_0x5bb697(0xf4),{'agentId':_0x17d35b,'deleted':_0xf01810,'dereferenced':_0x5cdee2}),{'deleted':_0xf01810,'dereferenced':_0x5cdee2};}catch(_0x1e1889){this[_0x5bb697(0xef)]?.[_0x5bb697(0xf0)]('Error\x20deleting\x20agent\x20attachments',{'agentId':_0x17d35b,'error':_0x1e1889[_0x5bb697(0xc9)]});throw _0x1e1889;}}async[a0_0x5c7419(0xda)](_0x40d20d,_0x101827){const _0x245d93=a0_0x5c7419;try{const _0x46139d=await this['getAttachment'](_0x40d20d);if(!_0x46139d)throw new Error('Source\x20attachment\x20not\x20found:\x20'+_0x40d20d);!_0x46139d['referencedBy'][_0x245d93(0xcb)](_0x101827)&&_0x46139d['referencedBy']['push'](_0x101827);_0x46139d['lastModified']=new Date()['toISOString'](),_0x46139d['importedFrom']=_0x46139d[_0x245d93(0xb2)];const _0x4d294d=a0_0xb6bca2['join'](ATTACHMENTS_DIR,_0x46139d[_0x245d93(0xb2)],_0x40d20d,'metadata.json');return await this['fileProcessor'][_0x245d93(0xca)](_0x4d294d,JSON[_0x245d93(0xd7)](_0x46139d,null,0x2),_0x245d93(0xce)),this[_0x245d93(0xc1)][_0x245d93(0xe8)][_0x40d20d]&&(this[_0x245d93(0xc1)][_0x245d93(0xe8)][_0x40d20d]['referencedBy']=_0x46139d['referencedBy']),!this[_0x245d93(0xc1)][_0x245d93(0xe0)][_0x101827]&&(this['index']['agentRefs'][_0x101827]=[]),!this['index']['agentRefs'][_0x101827][_0x245d93(0xcb)](_0x40d20d)&&this[_0x245d93(0xc1)]['agentRefs'][_0x101827][_0x245d93(0xba)](_0x40d20d),await this[_0x245d93(0xf9)](),this['logger']?.['info']('Attachment imported',{'sourceFileId':_0x40d20d,'targetAgentId':_0x101827}),_0x46139d;}catch(_0x4903d8){this[_0x245d93(0xef)]?.[_0x245d93(0xf0)]('Error importing attachment',{'sourceFileId':_0x40d20d,'targetAgentId':_0x101827,'error':_0x4903d8['message']});throw _0x4903d8;}}async['getActiveAttachments'](_0x14f14d){return await this['getAttachments'](_0x14f14d,{'active':!![]});}async[a0_0x5c7419(0xc7)](_0xa886b5){const _0x326fe7=a0_0x5c7419;try{const _0x28f50b=await this['getAttachmentContent'](_0xa886b5);if(!_0x28f50b)return null;if(_0x28f50b[_0x326fe7(0xbf)]('data:image'))return _0x326fe7(0xfd);return _0x28f50b['length']>0x3e8?_0x28f50b['substring'](0x0,0x3e8)+_0x326fe7(0xe3):_0x28f50b;}catch(_0x42ae30){return this['logger']?.[_0x326fe7(0xf0)](_0x326fe7(0xd0),{'fileId':_0xa886b5,'error':_0x42ae30[_0x326fe7(0xc9)]}),null;}}}export default FileAttachmentService;
1
+ const a0_0x480bc1=a0_0x2963;function a0_0x2963(_0x19fa55,_0x54d6c0){_0x19fa55=_0x19fa55-0x142;const _0x2613cc=a0_0x2613();let _0x29631f=_0x2613cc[_0x19fa55];if(a0_0x2963['zntKzp']===undefined){var _0x479215=function(_0x1e76b9){const _0x4f0caf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1d005b='',_0xa18f27='';for(let _0x3500aa=0x0,_0x16a4bd,_0x49af2e,_0x13c0ab=0x0;_0x49af2e=_0x1e76b9['charAt'](_0x13c0ab++);~_0x49af2e&&(_0x16a4bd=_0x3500aa%0x4?_0x16a4bd*0x40+_0x49af2e:_0x49af2e,_0x3500aa++%0x4)?_0x1d005b+=String['fromCharCode'](0xff&_0x16a4bd>>(-0x2*_0x3500aa&0x6)):0x0){_0x49af2e=_0x4f0caf['indexOf'](_0x49af2e);}for(let _0x220d63=0x0,_0x5167ec=_0x1d005b['length'];_0x220d63<_0x5167ec;_0x220d63++){_0xa18f27+='%'+('00'+_0x1d005b['charCodeAt'](_0x220d63)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xa18f27);};a0_0x2963['eicSqn']=_0x479215,a0_0x2963['NuyHkf']={},a0_0x2963['zntKzp']=!![];}const _0x3924eb=_0x2613cc[0x0],_0x6a5f19=_0x19fa55+_0x3924eb,_0x269a75=a0_0x2963['NuyHkf'][_0x6a5f19];return!_0x269a75?(_0x29631f=a0_0x2963['eicSqn'](_0x29631f),a0_0x2963['NuyHkf'][_0x6a5f19]=_0x29631f):_0x29631f=_0x269a75,_0x29631f;}(function(_0x2a4149,_0x5313b0){const _0x42b3b=a0_0x2963,_0x18c342=_0x2a4149();while(!![]){try{const _0x256317=-parseInt(_0x42b3b(0x15a))/0x1*(parseInt(_0x42b3b(0x18d))/0x2)+-parseInt(_0x42b3b(0x145))/0x3*(-parseInt(_0x42b3b(0x16d))/0x4)+-parseInt(_0x42b3b(0x154))/0x5+parseInt(_0x42b3b(0x172))/0x6*(parseInt(_0x42b3b(0x178))/0x7)+parseInt(_0x42b3b(0x157))/0x8*(parseInt(_0x42b3b(0x188))/0x9)+parseInt(_0x42b3b(0x16a))/0xa+parseInt(_0x42b3b(0x153))/0xb*(-parseInt(_0x42b3b(0x184))/0xc);if(_0x256317===_0x5313b0)break;else _0x18c342['push'](_0x18c342['shift']());}catch(_0x42314d){_0x18c342['push'](_0x18c342['shift']());}}}(a0_0x2613,0xbe10b));import a0_0x1d005b from'path';import{randomUUID}from'crypto';import a0_0xa18f27 from'../utilities/fileProcessor.js';import a0_0x3500aa from'../utilities/attachmentValidator.js';import{getUserDataPaths}from'../utilities/userDataDir.js';function a0_0x2613(){const _0x101cb3=['rxjYB3iGBg9HzgLUzYbPBMrLEa','qxr0ywnOBwvUDcbUB3qGzM91BMq6ia','u291CMnLigf0DgfJAg1LBNqGBM90igzVDw5KoIa','m0Tjz0Psva','Bg9HzeLUzgv4','lI4U','DMfSAwrHDg9Y','Bg9Nz2vY','DxrMoa','y2fSy3vSyxrLsgfZAa','C3vIC3rYAw5N','qxr0ywnOBwvUDcb1CgrHDgvK','Aw5MBW','z2v0qxr0ywnOBwvUDenVBNrLBNq','yxr0ywnOBwvUDhm','zxjYB3i','DMfSAwq','mteXmuT0wvvsEG','nJqXmdq2mfP4sfHxsq','Dg9Nz2XLqwn0AxzL','D3jPDgvgAwXL','mZmWnZa4ogDSDunPwG','Bw9Kzq','qwDLBNqGyxr0ywnOBwvUDhmGzgvSzxrLza','mtm3mwL3CxnJAG','CMvMzxjLBMnL','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ignVBNrLBNq','Aw5KzxG','z2v0qxr0ywnOBwvUDa','CgfYC2u','Bw9KAwzPzwq','z2v0qxr0ywnOBwvUDhm','z2v0qxr0ywnOBwvUDfbYzxzPzxC','rxjYB3iGzgvSzxrPBMCGywDLBNqGyxr0ywnOBwvUDhm','rxjYB3iGAw5PDgLHBgL6Aw5NiezPBgvbDhrHy2HTzw50u2vYDMLJzq','ywn0AxzL','y29UDgvUDc50Ehq','C3rYAw5NAwz5','Aw5JBhvKzxm','BwvZC2fNzq','mJq3mdK3meHbzujVzq','CgrM','ChjVy2vZC0zPBgu','ndGXodK2nfPXExfkDq','CMvHzezPBgu','Dg9ju09tDhjPBMC','y29UDgvUDc5IyxnLnJq','ywDLBNrszwzZ','nLj2r1zgCW','zMLSzu5HBwu','zMLSzvbYB2nLC3nVCG','y29UDgvUDa','zxjYB3jZ','Bwv0ywrHDgeUANnVBG','ntq0nZq5mxbiqNrXBG','Aw1Hz2u','z2v0qwn0AxzLqxr0ywnOBwvUDhm','C3rHCNrZv2L0Aa','rMLSzuf0DgfJAg1LBNrtzxj2AwnLigLUAxrPywXPEMvK','ywDLBNrjza','D2fYBMLUz3m','y3jLyxrLrgLYzwn0B3j5','ChvZAa','qxr0ywnOBwvUDcbKzxjLzMvYzw5Jzwq','C2f2zuLUzgv4','z2v0twLTzvr5Cgu','nZa4odrUEgTozgO','zgvSzxrLqwDLBNrbDhrHy2HTzw50CW','CMvMzxjLBMnLzej5','zgvSzxrLqxr0ywnOBwvUDa','mJDcq1PIsuq','C2L6zq','BgfZDe1VzgLMAwvK','AM9PBG','zMLSzuv4Axn0CW','mte4nNf3wejIBW','zMLSDgvY','Aw5PDgLHBgL6zq'];a0_0x2613=function(){return _0x101cb3;};return a0_0x2613();}const userPaths=getUserDataPaths(),ATTACHMENTS_DIR=userPaths[a0_0x480bc1(0x150)],INDEX_FILE=a0_0x1d005b['join'](ATTACHMENTS_DIR,'attachments-index.json');class FileAttachmentService{constructor(_0x16a4bd={},_0x49af2e=null){const _0x4c6ed8=a0_0x480bc1;this['config']=_0x16a4bd,this['logger']=_0x49af2e,this[_0x4c6ed8(0x174)]=new a0_0xa18f27(_0x16a4bd,_0x49af2e),this['validator']=new a0_0x3500aa(_0x16a4bd,_0x49af2e),this[_0x4c6ed8(0x15d)]=null;}async[a0_0x480bc1(0x18f)](){const _0x29a2b1=a0_0x480bc1;try{await this['fileProcessor']['createDirectory'](ATTACHMENTS_DIR),await this['loadIndex'](),this[_0x29a2b1(0x149)]?.['info'](_0x29a2b1(0x17c),{'attachmentsDir':ATTACHMENTS_DIR});}catch(_0x13c0ab){this['logger']?.[_0x29a2b1(0x151)](_0x29a2b1(0x164),{'error':_0x13c0ab['message']});throw _0x13c0ab;}}async[a0_0x480bc1(0x146)](){const _0x5a0d1e=a0_0x480bc1;try{const _0x220d63=await this['fileProcessor'][_0x5a0d1e(0x18c)](INDEX_FILE);if(!_0x220d63)this['index']={'attachments':{},'agentRefs':{}},await this['saveIndex']();else{const _0x5167ec=await this[_0x5a0d1e(0x174)]['readFile'](INDEX_FILE,'utf8');this['index']=JSON['parse'](_0x5167ec);}return this['index'];}catch(_0x232429){return this[_0x5a0d1e(0x149)]?.[_0x5a0d1e(0x151)](_0x5a0d1e(0x142),{'error':_0x232429['message']}),this[_0x5a0d1e(0x15d)]={'attachments':{},'agentRefs':{}},this[_0x5a0d1e(0x15d)];}}async['saveIndex'](){const _0x10021c=a0_0x480bc1;try{await this['fileProcessor']['writeFile'](INDEX_FILE,JSON['stringify'](this[_0x10021c(0x15d)],null,0x2),_0x10021c(0x14a));}catch(_0x21be81){this['logger']?.['error']('Error\x20saving\x20index',{'error':_0x21be81['message']});throw _0x21be81;}}async['uploadFile']({agentId:_0x30627e,filePath:_0xe68977,mode:mode=a0_0x480bc1(0x175),fileName:fileName=null}){const _0x1addbb=a0_0x480bc1;!this['index']&&await this[_0x1addbb(0x146)]();try{const _0x537390=await this[_0x1addbb(0x174)][_0x1addbb(0x18c)](_0xe68977);if(!_0x537390)throw new Error('File\x20not\x20found:\x20'+_0xe68977);const _0x4a134b=await this['fileProcessor']['getFileStats'](_0xe68977),_0x12818e=fileName||a0_0x1d005b['basename'](_0xe68977),_0x14cd70=a0_0x1d005b['extname'](_0x12818e),_0x13f2a8=this[_0x1addbb(0x148)]['validate']({'fileName':_0x12818e,'size':_0x4a134b[_0x1addbb(0x189)],'mode':mode,'path':mode===_0x1addbb(0x15b)?_0xe68977:null});if(!_0x13f2a8[_0x1addbb(0x152)])throw new Error('Validation\x20failed:\x20'+_0x13f2a8[_0x1addbb(0x176)]['join'](',\x20'));const _0x22d313=randomUUID(),_0x5c0b3d=await this[_0x1addbb(0x174)][_0x1addbb(0x14b)](_0xe68977),_0x562c70=this[_0x1addbb(0x148)]['getContentType'](_0x12818e),_0x582c87=a0_0x1d005b[_0x1addbb(0x18b)](ATTACHMENTS_DIR,_0x30627e,_0x22d313);await this['fileProcessor'][_0x1addbb(0x17f)](_0x582c87);let _0x41a50f=0x0,_0x3e5a47=null;if(mode==='content'){const processResult=await this[_0x1addbb(0x174)][_0x1addbb(0x16c)](_0xe68977,_0x562c70),_0x1e7c7c=processResult[_0x1addbb(0x175)];if(_0x562c70==='text')_0x3e5a47='content.txt';else{if(_0x562c70===_0x1addbb(0x179))_0x3e5a47=_0x1addbb(0x170);else _0x562c70===_0x1addbb(0x16b)&&(_0x3e5a47=_0x1addbb(0x166));}const _0x2e35ac=a0_0x1d005b['join'](_0x582c87,_0x3e5a47);await this[_0x1addbb(0x174)][_0x1addbb(0x156)](_0x2e35ac,_0x1e7c7c,_0x1addbb(0x14a)),_0x41a50f=this[_0x1addbb(0x174)]['estimateTokens'](_0x1e7c7c);}const _0x505b4d={'fileId':_0x22d313,'agentId':_0x30627e,'fileName':_0x12818e,'originalPath':_0xe68977,'fileType':this['validator'][_0x1addbb(0x183)](_0x12818e),'fileExtension':_0x14cd70,'size':_0x4a134b[_0x1addbb(0x189)],'mode':mode,'active':!![],'uploadedAt':new Date()[_0x1addbb(0x16f)](),'lastModified':_0x4a134b[_0x1addbb(0x160)][_0x1addbb(0x16f)](),'hash':_0x5c0b3d,'tokenEstimate':_0x41a50f,'contentType':_0x562c70,'contentFileName':_0x3e5a47,'warnings':_0x13f2a8[_0x1addbb(0x17e)],'sizeLevel':_0x13f2a8['sizeLevel'],'importedFrom':null,'referencedBy':[_0x30627e]},_0x44bfad=a0_0x1d005b[_0x1addbb(0x18b)](_0x582c87,'metadata.json');return await this[_0x1addbb(0x174)]['writeFile'](_0x44bfad,JSON[_0x1addbb(0x167)](_0x505b4d,null,0x2),'utf8'),this[_0x1addbb(0x15d)]['attachments'][_0x22d313]={'fileId':_0x22d313,'agentId':_0x30627e,'fileName':_0x12818e,'mode':mode,'active':_0x505b4d['active'],'referencedBy':_0x505b4d['referencedBy']},!this['index']['agentRefs'][_0x30627e]&&(this['index']['agentRefs'][_0x30627e]=[]),this['index']['agentRefs'][_0x30627e][_0x1addbb(0x180)](_0x22d313),await this['saveIndex'](),this[_0x1addbb(0x149)]?.[_0x1addbb(0x14e)]('File\x20uploaded',{'fileId':_0x22d313,'agentId':_0x30627e,'fileName':_0x12818e,'mode':mode}),_0x505b4d;}catch(_0x375c42){this['logger']?.[_0x1addbb(0x151)]('Error\x20uploading\x20file',{'agentId':_0x30627e,'filePath':_0xe68977,'error':_0x375c42[_0x1addbb(0x169)]});throw _0x375c42;}}async['getAttachments'](_0xd8c023,_0x4506d4={}){const _0x1510b7=a0_0x480bc1;!this[_0x1510b7(0x15d)]&&await this['loadIndex']();try{const _0x2527e1=this[_0x1510b7(0x15d)][_0x1510b7(0x171)][_0xd8c023]||[],_0x400092=[];for(const _0x5f0bc4 of _0x2527e1){const _0x1c6606=await this[_0x1510b7(0x15e)](_0x5f0bc4);if(_0x1c6606){if(_0x4506d4[_0x1510b7(0x165)]!==undefined&&_0x1c6606[_0x1510b7(0x165)]!==_0x4506d4[_0x1510b7(0x165)])continue;if(_0x4506d4['mode']&&_0x1c6606[_0x1510b7(0x158)]!==_0x4506d4['mode'])continue;_0x400092[_0x1510b7(0x180)](_0x1c6606);}}return _0x400092;}catch(_0x25dfa8){this['logger']?.['error']('Error\x20getting\x20attachments',{'agentId':_0xd8c023,'error':_0x25dfa8['message']});throw _0x25dfa8;}}async[a0_0x480bc1(0x15e)](_0x4a46db){const _0x222da3=a0_0x480bc1;!this['index']&&await this[_0x222da3(0x146)]();try{const _0x565abc=this[_0x222da3(0x15d)]['attachments'][_0x4a46db];if(!_0x565abc)return null;const _0x2f0a50=a0_0x1d005b[_0x222da3(0x18b)](ATTACHMENTS_DIR,_0x565abc[_0x222da3(0x17d)],_0x4a46db,_0x222da3(0x177)),_0x5e432f=await this['fileProcessor'][_0x222da3(0x18c)](_0x2f0a50);if(!_0x5e432f)return this['logger']?.['warn']('Metadata\x20file\x20not\x20found',{'fileId':_0x4a46db}),null;const _0xe46e86=await this['fileProcessor'][_0x222da3(0x16e)](_0x2f0a50,_0x222da3(0x14a));return JSON[_0x222da3(0x15f)](_0xe46e86);}catch(_0x4fc5d5){return this[_0x222da3(0x149)]?.[_0x222da3(0x151)]('Error\x20getting\x20attachment',{'fileId':_0x4a46db,'error':_0x4fc5d5[_0x222da3(0x169)]}),null;}}async['getAttachmentContent'](_0x2cd71e){const _0x11ac26=a0_0x480bc1;try{const _0x253321=await this['getAttachment'](_0x2cd71e);if(!_0x253321||_0x253321['mode']!=='content')return null;const _0x6f02de=a0_0x1d005b[_0x11ac26(0x18b)](ATTACHMENTS_DIR,_0x253321[_0x11ac26(0x17d)],_0x2cd71e,_0x253321['contentFileName']),_0x2a3b52=await this['fileProcessor']['fileExists'](_0x6f02de);if(!_0x2a3b52)return null;return await this['fileProcessor']['readFile'](_0x6f02de,'utf8');}catch(_0x4671ba){return this['logger']?.['error'](_0x11ac26(0x15c),{'fileId':_0x2cd71e,'error':_0x4671ba['message']}),null;}}async[a0_0x480bc1(0x155)](_0xb85e11){const _0x5ead54=a0_0x480bc1;try{const _0x4d3dfb=await this[_0x5ead54(0x15e)](_0xb85e11);if(!_0x4d3dfb)throw new Error(_0x5ead54(0x143)+_0xb85e11);_0x4d3dfb[_0x5ead54(0x165)]=!_0x4d3dfb[_0x5ead54(0x165)],_0x4d3dfb[_0x5ead54(0x18a)]=new Date()[_0x5ead54(0x16f)]();const _0x144180=a0_0x1d005b[_0x5ead54(0x18b)](ATTACHMENTS_DIR,_0x4d3dfb[_0x5ead54(0x17d)],_0xb85e11,_0x5ead54(0x177));return await this[_0x5ead54(0x174)][_0x5ead54(0x156)](_0x144180,JSON[_0x5ead54(0x167)](_0x4d3dfb,null,0x2),_0x5ead54(0x14a)),this[_0x5ead54(0x15d)]['attachments'][_0xb85e11]&&(this['index']['attachments'][_0xb85e11][_0x5ead54(0x165)]=_0x4d3dfb[_0x5ead54(0x165)],await this[_0x5ead54(0x182)]()),this[_0x5ead54(0x149)]?.[_0x5ead54(0x14e)]('Attachment\x20active\x20state\x20toggled',{'fileId':_0xb85e11,'active':_0x4d3dfb[_0x5ead54(0x165)]}),_0x4d3dfb;}catch(_0x577860){this[_0x5ead54(0x149)]?.[_0x5ead54(0x151)]('Error\x20toggling\x20attachment',{'fileId':_0xb85e11,'error':_0x577860[_0x5ead54(0x169)]});throw _0x577860;}}async['updateAttachment'](_0x23a77f,_0x54e312){const _0x254d2c=a0_0x480bc1;try{const _0x3728bb=await this['getAttachment'](_0x23a77f);if(!_0x3728bb)throw new Error('Attachment\x20not\x20found:\x20'+_0x23a77f);const _0x2b572f=['fileName',_0x254d2c(0x165)];for(const _0x332fc2 of _0x2b572f){_0x54e312[_0x332fc2]!==undefined&&(_0x3728bb[_0x332fc2]=_0x54e312[_0x332fc2]);}_0x3728bb['lastModified']=new Date()['toISOString']();const _0xfbd055=a0_0x1d005b[_0x254d2c(0x18b)](ATTACHMENTS_DIR,_0x3728bb['agentId'],_0x23a77f,_0x254d2c(0x177));return await this[_0x254d2c(0x174)]['writeFile'](_0xfbd055,JSON[_0x254d2c(0x167)](_0x3728bb,null,0x2),'utf8'),this[_0x254d2c(0x15d)]['attachments'][_0x23a77f]&&(_0x54e312[_0x254d2c(0x173)]&&(this[_0x254d2c(0x15d)]['attachments'][_0x23a77f]['fileName']=_0x54e312['fileName']),_0x54e312[_0x254d2c(0x165)]!==undefined&&(this['index'][_0x254d2c(0x150)][_0x23a77f][_0x254d2c(0x165)]=_0x54e312[_0x254d2c(0x165)]),await this[_0x254d2c(0x182)]()),this['logger']?.[_0x254d2c(0x14e)](_0x254d2c(0x14d),{'fileId':_0x23a77f,'updates':_0x54e312}),_0x3728bb;}catch(_0x113fab){this[_0x254d2c(0x149)]?.[_0x254d2c(0x151)]('Error\x20updating\x20attachment',{'fileId':_0x23a77f,'error':_0x113fab['message']});throw _0x113fab;}}async[a0_0x480bc1(0x187)](_0x39ec98,_0x40b447){const _0x556a63=a0_0x480bc1;try{const _0x5153d1=await this[_0x556a63(0x15e)](_0x39ec98);if(!_0x5153d1)throw new Error('Attachment\x20not\x20found:\x20'+_0x39ec98);_0x5153d1[_0x556a63(0x186)]=_0x5153d1['referencedBy']['filter'](_0x6a892e=>_0x6a892e!==_0x40b447);if(_0x5153d1['referencedBy']['length']>0x0){const _0x26512e=a0_0x1d005b[_0x556a63(0x18b)](ATTACHMENTS_DIR,_0x5153d1['agentId'],_0x39ec98,_0x556a63(0x177));return await this['fileProcessor'][_0x556a63(0x156)](_0x26512e,JSON[_0x556a63(0x167)](_0x5153d1,null,0x2),_0x556a63(0x14a)),this[_0x556a63(0x15d)]['attachments'][_0x39ec98]&&(this[_0x556a63(0x15d)][_0x556a63(0x150)][_0x39ec98][_0x556a63(0x186)]=_0x5153d1[_0x556a63(0x186)]),this[_0x556a63(0x15d)]['agentRefs'][_0x40b447]&&(this['index'][_0x556a63(0x171)][_0x40b447]=this[_0x556a63(0x15d)]['agentRefs'][_0x40b447][_0x556a63(0x18e)](_0x1c550c=>_0x1c550c!==_0x39ec98)),await this[_0x556a63(0x182)](),this[_0x556a63(0x149)]?.['info'](_0x556a63(0x181),{'fileId':_0x39ec98,'agentId':_0x40b447,'remainingRefs':_0x5153d1[_0x556a63(0x186)]['length']}),![];}const _0x42781c=a0_0x1d005b['join'](ATTACHMENTS_DIR,_0x5153d1[_0x556a63(0x17d)],_0x39ec98);return await this['fileProcessor']['deleteDirectory'](_0x42781c),delete this['index']['attachments'][_0x39ec98],this[_0x556a63(0x15d)][_0x556a63(0x171)][_0x40b447]&&(this['index'][_0x556a63(0x171)][_0x40b447]=this['index']['agentRefs'][_0x40b447][_0x556a63(0x18e)](_0x1ada10=>_0x1ada10!==_0x39ec98)),await this['saveIndex'](),this[_0x556a63(0x149)]?.['info']('Attachment\x20deleted',{'fileId':_0x39ec98,'agentId':_0x40b447}),!![];}catch(_0x4841a4){this['logger']?.['error']('Error\x20deleting\x20attachment',{'fileId':_0x39ec98,'agentId':_0x40b447,'error':_0x4841a4[_0x556a63(0x169)]});throw _0x4841a4;}}async[a0_0x480bc1(0x185)](_0x7bc5d1){const _0x18d827=a0_0x480bc1;try{const _0x37ce08=this['index'][_0x18d827(0x171)][_0x7bc5d1]||[];let _0x591bf5=0x0,_0x2bf43b=0x0;for(const _0x25c69a of _0x37ce08){const _0x59cad1=await this['deleteAttachment'](_0x25c69a,_0x7bc5d1);_0x59cad1?_0x591bf5++:_0x2bf43b++;}return this['logger']?.[_0x18d827(0x14e)](_0x18d827(0x159),{'agentId':_0x7bc5d1,'deleted':_0x591bf5,'dereferenced':_0x2bf43b}),{'deleted':_0x591bf5,'dereferenced':_0x2bf43b};}catch(_0x5b9054){this[_0x18d827(0x149)]?.['error'](_0x18d827(0x163),{'agentId':_0x7bc5d1,'error':_0x5b9054[_0x18d827(0x169)]});throw _0x5b9054;}}async['importFromAgent'](_0x3024ca,_0x3042c6){const _0x26d6b5=a0_0x480bc1;try{const _0x1d083f=await this['getAttachment'](_0x3024ca);if(!_0x1d083f)throw new Error(_0x26d6b5(0x144)+_0x3024ca);!_0x1d083f[_0x26d6b5(0x186)][_0x26d6b5(0x168)](_0x3042c6)&&_0x1d083f[_0x26d6b5(0x186)]['push'](_0x3042c6);_0x1d083f[_0x26d6b5(0x18a)]=new Date()['toISOString'](),_0x1d083f['importedFrom']=_0x1d083f['agentId'];const _0x242318=a0_0x1d005b[_0x26d6b5(0x18b)](ATTACHMENTS_DIR,_0x1d083f[_0x26d6b5(0x17d)],_0x3024ca,_0x26d6b5(0x177));return await this[_0x26d6b5(0x174)]['writeFile'](_0x242318,JSON['stringify'](_0x1d083f,null,0x2),'utf8'),this['index'][_0x26d6b5(0x150)][_0x3024ca]&&(this[_0x26d6b5(0x15d)][_0x26d6b5(0x150)][_0x3024ca]['referencedBy']=_0x1d083f['referencedBy']),!this['index'][_0x26d6b5(0x171)][_0x3042c6]&&(this[_0x26d6b5(0x15d)]['agentRefs'][_0x3042c6]=[]),!this['index']['agentRefs'][_0x3042c6][_0x26d6b5(0x168)](_0x3024ca)&&this[_0x26d6b5(0x15d)]['agentRefs'][_0x3042c6]['push'](_0x3024ca),await this[_0x26d6b5(0x182)](),this['logger']?.[_0x26d6b5(0x14e)]('Attachment imported',{'sourceFileId':_0x3024ca,'targetAgentId':_0x3042c6}),_0x1d083f;}catch(_0x5193cf){this['logger']?.['error']('Error importing attachment',{'sourceFileId':_0x3024ca,'targetAgentId':_0x3042c6,'error':_0x5193cf[_0x26d6b5(0x169)]});throw _0x5193cf;}}async[a0_0x480bc1(0x17a)](_0x480e2f){const _0x37acfa=a0_0x480bc1;return await this[_0x37acfa(0x161)](_0x480e2f,{'active':!![]});}async[a0_0x480bc1(0x162)](_0x24dc1a){const _0x5cfffd=a0_0x480bc1;try{const _0x305dc3=await this[_0x5cfffd(0x14f)](_0x24dc1a);if(!_0x305dc3)return null;if(_0x305dc3[_0x5cfffd(0x17b)]('data:image'))return'[Image\x20content\x20-\x20base64\x20encoded]';return _0x305dc3['length']>0x3e8?_0x305dc3[_0x5cfffd(0x14c)](0x0,0x3e8)+_0x5cfffd(0x147):_0x305dc3;}catch(_0x2bedaf){return this['logger']?.[_0x5cfffd(0x151)]('Error\x20getting\x20attachment\x20preview',{'fileId':_0x24dc1a,'error':_0x2bedaf[_0x5cfffd(0x169)]}),null;}}}export default FileAttachmentService;
@@ -1 +1 @@
1
- const a0_0x45022a=a0_0x1fd8;function a0_0x1fd8(_0x166ce6,_0x6bf690){_0x166ce6=_0x166ce6-0x129;const _0x1ba5ab=a0_0x1ba5();let _0x1fd84a=_0x1ba5ab[_0x166ce6];if(a0_0x1fd8['jAaLwE']===undefined){var _0x5a1251=function(_0x141d0a){const _0x2dbe23='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x32e146='',_0x4b6bbd='';for(let _0xe7fe0a=0x0,_0x380aaf,_0x37af4b,_0xdaaaa1=0x0;_0x37af4b=_0x141d0a['charAt'](_0xdaaaa1++);~_0x37af4b&&(_0x380aaf=_0xe7fe0a%0x4?_0x380aaf*0x40+_0x37af4b:_0x37af4b,_0xe7fe0a++%0x4)?_0x32e146+=String['fromCharCode'](0xff&_0x380aaf>>(-0x2*_0xe7fe0a&0x6)):0x0){_0x37af4b=_0x2dbe23['indexOf'](_0x37af4b);}for(let _0x253b95=0x0,_0x57be9e=_0x32e146['length'];_0x253b95<_0x57be9e;_0x253b95++){_0x4b6bbd+='%'+('00'+_0x32e146['charCodeAt'](_0x253b95)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b6bbd);};a0_0x1fd8['PGkVHI']=_0x5a1251,a0_0x1fd8['CbfZKg']={},a0_0x1fd8['jAaLwE']=!![];}const _0x4fbefc=_0x1ba5ab[0x0],_0x125e58=_0x166ce6+_0x4fbefc,_0x58c9c0=a0_0x1fd8['CbfZKg'][_0x125e58];return!_0x58c9c0?(_0x1fd84a=a0_0x1fd8['PGkVHI'](_0x1fd84a),a0_0x1fd8['CbfZKg'][_0x125e58]=_0x1fd84a):_0x1fd84a=_0x58c9c0,_0x1fd84a;}(function(_0x300a34,_0x4447bb){const _0x1fa5c8=a0_0x1fd8,_0x36df8f=_0x300a34();while(!![]){try{const _0x345848=-parseInt(_0x1fa5c8(0x175))/0x1*(parseInt(_0x1fa5c8(0x17a))/0x2)+parseInt(_0x1fa5c8(0x12d))/0x3*(parseInt(_0x1fa5c8(0x13a))/0x4)+-parseInt(_0x1fa5c8(0x161))/0x5+-parseInt(_0x1fa5c8(0x156))/0x6*(parseInt(_0x1fa5c8(0x159))/0x7)+parseInt(_0x1fa5c8(0x167))/0x8*(parseInt(_0x1fa5c8(0x13f))/0x9)+parseInt(_0x1fa5c8(0x179))/0xa+parseInt(_0x1fa5c8(0x12c))/0xb;if(_0x345848===_0x4447bb)break;else _0x36df8f['push'](_0x36df8f['shift']());}catch(_0x55c837){_0x36df8f['push'](_0x36df8f['shift']());}}}(a0_0x1ba5,0xd7a8a));function a0_0x1ba5(){const _0x2b99a2=['mJq3nJjXyLfiDwO','x3bHCNnLuM91DgLUz1jLC3bVBNnL','yMvUy2HTyxjRu2vYDMLJzq','nJC5v2jOtMDX','ihWGu3rYzw5NDgHZoIa','CMvHC29UAw5N','zw50CMLLCW','y29UDgv4De1LC3nHz2vZq291BNq','cGOJiYbszwnLBNqGq29UDMvYC2f0Aw9UienVBNrLEhqk','y29UDgv4DfjLzMvYzw5Jzxm','z2v0qMvUy2HTyxjRvgfIBgu','ndG1ndC0mgryqvbMCG','cImJiYbnB2rLBcbezxrHAwXZcG','C2vSzwn0zwrnB2rLBa','kIOGka','z2v0u3rHDhvZ','zgvIDwC','oejUrNjhAa','uM91DgvYihrLC3qGzMfPBgvK','qu5usfjpueLdx09qvvm','uM91DgvYihrLC3qGy29TCgXLDgvK','ww91igfYzsbHig1VzgvSihjVDxrPBMCGzxHWzxj0lIbbBMfSExPLignVBNzLCNnHDgLVBNmGyw5KihnLBgvJDcbVChrPBwfSiefjig1VzgvSCY4GqwX3yxLZihjLC3bVBMqGD2L0Acb2ywXPzcbku09oig9UBhKU','zM9YrwfJAa','tw9KzwWGCM91DgLUzYbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbJDxjYzw50ig1VzgvS','BwfW','y29UDgvUDa','rMfPBgvKihrVihbHCNnLihjVDxrPBMCGCMvZCg9UC2u','DgfZA1r5Cgu','AgfZq29UDgv4DfjLzMvYzw5Jzxm','tM8GCMvHC29UAw5NihbYB3zPzgvK','kIPdB250zxH0ifr5CgvZkIO6ia','mvvcA1nxyq','tM8GCMvJzw50ig1LC3nHz2vZigf2ywLSywjSzs4','CMvXDwvZDfrPBwvVDxq','BwvZC2fNzq','nZm4nJK0mhD4DxvytG','nZKYodK4zhjIC2Hh','tI9b','twLZC2LUzYbZzwXLy3rLze1VzgvSigLUigf1Dg9WAwXVDc1TB2rLBc1YB3v0zxiGCMvZCg9UC2u','DhLWzq','Dw5RBM93BG','qu5usfjpueLdx1nptK5fva','cGOJiYbsB3v0Aw5NierLy2LZAw9UcKfUywX5EMuGDgHLign1CNjLBNqGBwvZC2fNzsbHBMqGy29UDMvYC2f0Aw9UignVBNrLEhqGDg8GC2vSzwn0ihrOzsbIzxn0ig1VzgvSlIbdB25ZAwrLCJOkcJeUicOQvgfZAYbuExbLkIO6ieLUzMvYigzYB20Gy29UDMvYC2f0Aw9UignVBNrLBNqGlsbPCYb0AgLZignVzgLUzYWGyw5HBhLZAxmSignYzwf0AxzLihDYAxrPBMCSig9YigeGCxvPy2SGDgfZAZ8kmI4GkIPdB21WBgv4Axr5kIO6ierVzxmGAxqGCMvXDwLYzsbKzwvWihjLyxnVBMLUzYbVCIbPCYbPDcbZDhjHAwDODgzVCNDHCMq/cJmUicOQq29UDgv4DcOQoIbbCMuGDgHLCMuGy29KzsbMAwXLCYbVCIb0zwnOBMLJywWGCMvMzxjLBMnLCZ8knc4GkIPdB252zxjZyxrPB24GrMXVDYOQoIbxAgf0igHHCYbIzwvUigrPC2n1C3nLzcbYzwnLBNrSEsb0BYb1BMrLCNn0yw5KihrOzsbVDMvYywXSihrHC2S/cJuUicOQrwzMAwnPzw5JEsOQoIbcywXHBMnLihbLCMzVCM1HBMnLihDPDgGGy29ZDc9ZCgvLzcbUzwvKCWOkuMvZCg9Uzcb3AxrOiePtt04GB25SEtOkEWOGicjZzwXLy3rLze1VzgvSiJOGiM1VzgvSlw5HBwuIlaOGicj0yxnRvhLWzsi6icjJB2rPBMD8yw5HBhLZAxn8y3jLyxrPDMv8CxvPy2STDgfZA3mIlaOGicjJB25MAwrLBMnLiJOGmc44nsWkicaICMvHC29UAw5NiJOGiKjYAwvMigv4CgXHBMf0Aw9Uig9MihDOEsb0AgLZig1VzgvSihDHCYbJAg9Zzw4IlaOGicjMywn0B3jZiJOGwYjMywn0B3iXiIWGiMzHy3rVCJiIlcaIzMfJDg9YmYjDcN0','uKvrvuvtvf9usu1ft1vu','Bwf0y2G','CM9Szq','AM9PBG','mtC2mduZnZLcEfzArgS','otiYogfMBLLjAa','CgfYC2u','x2fZA0zVCLjVDxrPBMC','C2XPy2u','lIaQkG','y3vYCMvUDe1LC3nHz2u','BwvZC2fNzunVDw50','Bg9Nz2vY','Dg9Wtw9KzwXZ','Aw5JBhvKzxm','y29UzMLN','ktOG','x2zVCM1HDejLBMnOBwfYA0rHDge','odb3rLfICxm','C3vIC3rYAw5N','cGOJiYbnB2rLBcbczw5JAg1HCMSGrgf0yqO','Bw9KzwWTCM91DgvY','yxv0B3bPBg90lw1VzgvSlxjVDxrLCIbYB3v0Aw5NihjLCxvLC3qGzMfPBgvK','mJi1mZe1ovrxAKffra','C2nVCMu','y3vYCMvUDe1VzgvS','zMfJDg9YCW','y29UzMLKzw5Jzq','x2nYzwf0zvjVDxrPBMDqCM9TChq','C2vZC2LVBKLK','y29UDgv4Dfr5CgvZ','zxjYB3i','cI0GkIPnzxnZywDLienVDw50kIO6ia','CM91DgvYtw9KzwW','q2fUihLVDsbOzwXWig1LigrLyNvNihrOAxmGsMf2yvnJCMLWDcbMDw5JDgLVBJ8','uM91DgvYihnLBgvJDgvKihvUyxzHAwXHyMXLig1VzgvSlcb1C2LUzYbJDxjYzw50ig1VzgvS','tM8Gzgf0yq','uM91DgLUzYbMywLSzwqSihvZAw5NigzHBgXIywnRig1VzgvS','DxnLCG','q09ovevyvf9nrvntquDfu19dt1vova','DgfZA3m','revfufnfruTFuJe','BgvUz3rO','D2fYBG','DgvZDfjVDxrLCG','CM91DgvnzxnZywDL'];a0_0x1ba5=function(){return _0x2b99a2;};return a0_0x1ba5();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS,MODELS}from'../utilities/constants.js';class ModelRouterService{constructor(_0x32e146,_0x4b6bbd,_0xe7fe0a,_0x380aaf){const _0x35432b=a0_0x1fd8;this[_0x35432b(0x137)]=_0x32e146,this[_0x35432b(0x134)]=_0x4b6bbd,this[_0x35432b(0x158)]=_0xe7fe0a,this['aiService']=_0x380aaf,this['routerModel']=MODEL_ROUTER_CONFIG['ROUTER_MODEL'],this['contextMessagesCount']=MODEL_ROUTER_CONFIG[_0x35432b(0x14f)],this['requestTimeout']=MODEL_ROUTER_CONFIG[_0x35432b(0x181)];}async[a0_0x45022a(0x155)](_0x37af4b,_0xdaaaa1=[],_0x253b95='',_0x57be9e=[],_0x5f47ef={}){const _0x2fa3f1=a0_0x45022a;try{this['logger'][_0x2fa3f1(0x166)]('Starting\x20model\x20routing\x20analysis',{'messageLength':_0x37af4b['content']?.[_0x2fa3f1(0x152)]||0x0,'recentMessagesCount':_0xdaaaa1[_0x2fa3f1(0x152)],'currentModel':_0x253b95,'availableModelsCount':_0x57be9e[_0x2fa3f1(0x152)]});const _0x511b60=this['_buildRoutingContext'](_0x37af4b,_0xdaaaa1,_0x253b95,_0x57be9e),_0x5684cc=this['benchmarkService'][_0x2fa3f1(0x160)](),_0x5d9807=this[_0x2fa3f1(0x144)](_0x511b60,_0x5684cc),_0xa3a787=await this[_0x2fa3f1(0x12f)](_0x5d9807,_0x5f47ef),_0x5411d7=this['_validateModelSelection'](_0xa3a787,_0x57be9e,_0x253b95);return this['logger']['info']('Model\x20routing\x20completed',{'selectedModel':_0x5411d7,'previousModel':_0x253b95,'changed':_0x5411d7!==_0x253b95,'reasoning':_0xa3a787['reasoning']?.[_0x2fa3f1(0x13b)](0x0,0x64)||_0x2fa3f1(0x173)}),{'selectedModel':_0x5411d7,'previousModel':_0x253b95,'changed':_0x5411d7!==_0x253b95,'reasoning':_0xa3a787['reasoning']||_0x2fa3f1(0x173)};}catch(_0x38a5cb){this[_0x2fa3f1(0x134)][_0x2fa3f1(0x147)](_0x2fa3f1(0x16d),{'error':_0x38a5cb['message'],'currentModel':_0x253b95});const _0x486808=_0x253b95||_0x57be9e[0x0]||MODELS['ANTHROPIC_SONNET'];return{'selectedModel':_0x486808,'previousModel':_0x253b95,'changed':![],'reasoning':_0x2fa3f1(0x14d)};}}['_buildRoutingContext'](_0xfb7b24,_0x2f43fb,_0x13a975,_0x307225){const _0x3af325=a0_0x45022a,_0x5d3513=_0x2f43fb[_0x3af325(0x130)](-this[_0x3af325(0x15d)])[_0x3af325(0x16e)](_0xd15f72=>({'role':_0xd15f72['role'],'content':_0xd15f72['content']?.['substring'](0x0,0x1f4)||'','timestamp':_0xd15f72['timestamp']}));return{'currentMessage':{'content':_0xfb7b24[_0x3af325(0x16f)]?.['substring'](0x0,0x3e8)||'','role':_0xfb7b24['role']||_0x3af325(0x14e),'hasContextReferences':!!_0xfb7b24[_0x3af325(0x15f)]?.[_0x3af325(0x152)],'contextTypes':_0xfb7b24[_0x3af325(0x15f)]?.['map'](_0x5996b9=>_0x5996b9[_0x3af325(0x17d)])||[]},'recentMessages':_0x5d3513,'currentModel':_0x13a975,'availableModels':_0x307225['map'](_0x4855b2=>({'name':_0x4855b2,'isCurrentModel':_0x4855b2===_0x13a975})),'messageCount':_0x2f43fb[_0x3af325(0x152)]+0x1,'timestamp':new Date()['toISOString']()};}['_createRoutingPrompt'](_0x5c8607,_0x3473cf){const _0x10ca28=a0_0x45022a;return'You\x20are\x20a\x20model\x20routing\x20assistant.\x20Your\x20job\x20is\x20to\x20analyze\x20a\x20conversation\x20and\x20select\x20the\x20optimal\x20AI\x20model\x20for\x20the\x20next\x20response.\x0a\x0a##\x20Current\x20Situation\x0a-\x20**Current\x20Model**:\x20'+(_0x5c8607[_0x10ca28(0x141)]||'None')+_0x10ca28(0x148)+_0x5c8607[_0x10ca28(0x133)]+'\x0a-\x20**Available\x20Models**:\x20'+_0x5c8607['availableModels'][_0x10ca28(0x16e)](_0x544062=>_0x544062['name'])[_0x10ca28(0x12b)](',\x20')+_0x10ca28(0x15e)+this['_formatRecentMessages'](_0x5c8607['recentMessages'])+'\x0a\x0a##\x20Current\x20Message\x20to\x20Route\x0a**Role**:\x20'+_0x5c8607[_0x10ca28(0x132)][_0x10ca28(0x12a)]+'\x0a**Content**:\x20'+_0x5c8607[_0x10ca28(0x132)]['content']+'\x0a**Has\x20Context\x20References**:\x20'+_0x5c8607[_0x10ca28(0x132)][_0x10ca28(0x172)]+'\x0a'+(_0x5c8607[_0x10ca28(0x132)][_0x10ca28(0x146)][_0x10ca28(0x152)]>0x0?_0x10ca28(0x174)+_0x5c8607['currentMessage']['contextTypes']['join'](',\x20'):'')+_0x10ca28(0x13c)+this[_0x10ca28(0x139)](_0x3473cf)+_0x10ca28(0x180);}['_formatRecentMessages'](_0x389589){const _0x32f666=a0_0x45022a;if(!_0x389589['length'])return _0x32f666(0x176);return _0x389589[_0x32f666(0x16e)]((_0x44168b,_0x842813)=>_0x842813+0x1+_0x32f666(0x131)+_0x44168b['role']+'**:\x20'+_0x44168b['content'])[_0x32f666(0x12b)]('\x0a');}['_formatBenchmarkData'](_0x3ee5f5){const _0x2057a4=a0_0x45022a,_0x1df18d=_0x3ee5f5['models']||[],_0x2acc9b=_0x3ee5f5[_0x2057a4(0x150)]||{},_0x49b613=_0x3ee5f5['summary']||{};let _0x1f5bdf='###\x20Model\x20Performance\x20Summary\x0a';return Object[_0x2057a4(0x15c)](_0x2acc9b)['forEach'](([_0x354139,_0x2f6492])=>{const _0x28926f=_0x2057a4;_0x1f5bdf+='**'+_0x354139['toUpperCase']()+_0x28926f(0x164)+_0x2f6492['description']+_0x28926f(0x138)+(_0x2f6492[_0x28926f(0x135)]?.['join'](',\x20')||_0x28926f(0x14c))+'\x0a';}),_0x1f5bdf+=_0x2057a4(0x162),_0x1df18d['slice'](0x0,0x8)[_0x2057a4(0x16c)](_0x5ba876=>{const _0xd029d9=_0x2057a4;_0x1f5bdf+='**'+_0x5ba876['name']+'**:\x20';const _0x211882=Object[_0xd029d9(0x15c)](_0x5ba876[_0xd029d9(0x150)]||{})['map'](([_0x15d406,_0x1a4e92])=>_0x15d406+'('+_0x1a4e92[_0xd029d9(0x140)]+')')['join'](',\x20');_0x1f5bdf+=_0x211882+_0xd029d9(0x15a)+(_0x5ba876['strengths']?.['join'](',\x20')||_0xd029d9(0x17b))+'\x0a';}),_0x1f5bdf;}async[a0_0x45022a(0x12f)](_0x257c7b,_0x529a8b={}){const _0x337349=a0_0x45022a;try{const _0x30277f=await this['aiService']['sendMessage'](this['routerModel'],_0x257c7b,{'agentId':_0x337349(0x13d),'systemPrompt':_0x337349(0x16b),'temperature':0.3,'maxTokens':0x1f4,'timeout':this['requestTimeout'],'sessionId':_0x529a8b[_0x337349(0x145)],'apiKey':_0x529a8b['apiKey']||this[_0x337349(0x137)]['apiKey'],'customApiKeys':_0x529a8b['customApiKeys'],'platformProvided':!![]});if(!_0x30277f['content'])throw new Error('No response content from autopilot-model-router');const _0x1dfe1d=this[_0x337349(0x157)](_0x30277f['content']);return _0x1dfe1d;}catch(_0x3d762b){this['logger']['error'](_0x337349(0x13e),{'error':_0x3d762b['message'],'routerModel':this[_0x337349(0x149)]});throw _0x3d762b;}}[a0_0x45022a(0x157)](_0x539fdd){const _0xcdb496=a0_0x45022a;try{const _0xb3a84c=_0x539fdd[_0xcdb496(0x129)](/\{[\s\S]*\}/);if(!_0xb3a84c)throw new Error('No\x20JSON\x20found\x20in\x20autopilot-model-router\x20response');const _0x4b6dad=JSON[_0xcdb496(0x12e)](_0xb3a84c[0x0]);if(!_0x4b6dad['selectedModel'])throw new Error(_0xcdb496(0x17c));return{'selectedModel':_0x4b6dad[_0xcdb496(0x163)],'taskType':_0x4b6dad[_0xcdb496(0x171)]||'unknown','confidence':_0x4b6dad[_0xcdb496(0x143)]||0.5,'reasoning':_0x4b6dad[_0xcdb496(0x15b)]||'No\x20reasoning\x20provided','factors':_0x4b6dad[_0xcdb496(0x142)]||[]};}catch(_0x184ad4){return this[_0xcdb496(0x134)][_0xcdb496(0x153)]('Failed\x20to\x20parse\x20autopilot-model-router\x20routing\x20response',{'error':_0x184ad4[_0xcdb496(0x178)],'content':_0x539fdd['substring'](0x0,0xc8)}),{'selectedModel':null,'taskType':_0xcdb496(0x17e),'confidence':0x0,'reasoning':_0xcdb496(0x170),'factors':['parsing-error']};}}['_validateModelSelection'](_0x2dbed5,_0x2a75d8,_0x1f0597){const _0x19b69b=a0_0x45022a,{selectedModel:_0x43436f}=_0x2dbed5;if(!_0x43436f)return this['logger']['debug']('No\x20model\x20selected\x20by\x20router,\x20using\x20current\x20model'),_0x1f0597;if(!_0x2a75d8[_0x19b69b(0x136)](_0x43436f))return this[_0x19b69b(0x134)][_0x19b69b(0x153)](_0x19b69b(0x14b),{'selectedModel':_0x43436f,'availableModels':_0x2a75d8}),_0x1f0597;return _0x43436f;}[a0_0x45022a(0x165)](){const _0xe60af0=a0_0x45022a;return{'routerModel':this['routerModel'],'contextMessagesCount':this[_0xe60af0(0x15d)],'requestTimeout':this[_0xe60af0(0x177)],'benchmarkServiceStatus':this[_0xe60af0(0x158)][_0xe60af0(0x165)](),'isAvailable':!![]};}async[a0_0x45022a(0x154)](){const _0x52e906=a0_0x45022a;try{const _0x52cddd={'content':_0x52e906(0x14a),'role':_0x52e906(0x14e)},_0x507eca=await this['routeMessage'](_0x52cddd,[],MODELS[_0x52e906(0x17f)],[MODELS['ANTHROPIC_SONNET'],MODELS[_0x52e906(0x169)],MODELS['GPT_4'],MODELS[_0x52e906(0x151)]],{'apiKey':'test-key'});return this[_0x52e906(0x134)]['info'](_0x52e906(0x16a),{'selectedModel':_0x507eca}),{'success':!![],'selectedModel':_0x507eca};}catch(_0xc69098){return this[_0x52e906(0x134)][_0x52e906(0x147)](_0x52e906(0x168),{'error':_0xc69098[_0x52e906(0x178)]}),{'success':![],'error':_0xc69098[_0x52e906(0x178)]};}}}export default ModelRouterService;
1
+ const a0_0x6c9969=a0_0x2e3b;(function(_0x5653c0,_0x29ff6e){const _0x3f719e=a0_0x2e3b,_0x429c3f=_0x5653c0();while(!![]){try{const _0x2c1251=-parseInt(_0x3f719e(0x10b))/0x1+parseInt(_0x3f719e(0xf5))/0x2+parseInt(_0x3f719e(0xce))/0x3+-parseInt(_0x3f719e(0x103))/0x4*(-parseInt(_0x3f719e(0xf7))/0x5)+-parseInt(_0x3f719e(0xf3))/0x6*(-parseInt(_0x3f719e(0xcb))/0x7)+-parseInt(_0x3f719e(0xfe))/0x8*(-parseInt(_0x3f719e(0xdd))/0x9)+-parseInt(_0x3f719e(0xde))/0xa;if(_0x2c1251===_0x29ff6e)break;else _0x429c3f['push'](_0x429c3f['shift']());}catch(_0x3b5b50){_0x429c3f['push'](_0x429c3f['shift']());}}}(a0_0x448e,0x97123));function a0_0x448e(){const _0x4c25e8=['mJmZndq4oeTItNb5rW','Bwf0y2G','mta4mZa1rLfdvgDy','CMvJzw50twvZC2fNzxm','y29UDgv4De1LC3nHz2vZq291BNq','uM91DgvYihrLC3qGzMfPBgvK','cIOQq29UDgvUDcOQoIa','y3vYCMvUDe1LC3nHz2u','CgfYC2u','mtzvr1LYzuK','ww91igfYzsbHig1VzgvSihjVDxrPBMCGyxnZAxn0yw50lIbzB3vYigPVyIbPCYb0BYbHBMfSExPLigeGy29UDMvYC2f0Aw9UigfUzcbZzwXLy3qGDgHLig9WDgLTywWGquKGBw9KzwWGzM9YihrOzsbUzxH0ihjLC3bVBNnLlGOkiYmGq3vYCMvUDcbtAxr1yxrPB24klsaQkKn1CNjLBNqGtw9KzwWQkJOG','uKvrvuvtvf9usu1ft1vu','yMvUy2HTyxjRu2vYDMLJzq','BgvUz3rO','odbRwwvmthq','zMfJDg9YCW','DgfZA1r5Cgu','zM9YrwfJAa','zgvIDwC','tI9b','y29UzMLN','CM91DgvnzxnZywDL','ndG5mZq4yvnAsxzk','DxnLCG','zxjYB3i','CM9Szq','kIO6ia','BMfTzq','BwvZC2fNzunVDw50','y29UzMLKzw5Jzq','C2vUze1LC3nHz2u','BwfW','CMvHC29UAw5N','CM91DgvYtw9KzwW','lIaQkG','cImJiYbnB2rLBcbezxrHAwXZcG','qu5usfjpueLdx09qvvm','C3rYzw5NDgHZ','rMfPBgvKihrVihbHCNnLigf1Dg9WAwXVDc1TB2rLBc1YB3v0zxiGCM91DgLUzYbYzxnWB25Zzq','iYmJie1VzgvSifbLCMzVCM1HBMnLifn1Bw1HCNKk','n1LJuLfhAW','Dg9vChbLCKnHC2u','Aw5MBW','mZe2mtC0ofnvBLztwG','x2zVCM1HDejLBMnOBwfYA0rHDge','revfufnfruTFuJe','CMvXDwvZDfrPBwvVDxq','C3vIC3rYAw5N','tM8GsLnptIbMB3vUzcbPBIbHDxrVCgLSB3qTBw9KzwWTCM91DgvYihjLC3bVBNnL','CgfYC2LUzY1LCNjVCG','yxv0B3bPBg90lw1VzgvSlxjVDxrLCIbYB3v0Aw5NihjLCxvLC3qGzMfPBgvK','Dg9Wtw9KzwXZ','x2nYzwf0zvjVDxrPBMDqCM9TChq','y29UDgvUDa','ww91igfYzsbHig1VzgvSihjVDxrPBMCGzxHWzxj0lIbbBMfSExPLignVBNzLCNnHDgLVBNmGyw5KihnLBgvJDcbVChrPBwfSiefjig1VzgvSCY4GqwX3yxLZihjLC3bVBMqGD2L0Acb2ywXPzcbku09oig9UBhKU','Bw9KzwXZ','cI0GkIPnzxnZywDLienVDw50kIO6ia','y29UDgv4Dfr5CgvZ','mtq3nJq1owvnDfHKDq','mJiZmZC5ndbfugvpzvK','BwvZC2fNzq','z2v0u3rHDhvZ','zw50CMLLCW','DgfZA3m','D2fYBG','Aw5JBhvKzxm','tM8GCMvHC29UAw5NihbYB3zPzgvK','C2nVCMu','y3vZDg9TqxbPs2v5CW','x3bHCNnLuM91DgLUz1jLC3bVBNnL','cGOJiYbszwnLBNqGq29UDMvYC2f0Aw9UienVBNrLEhqk','z2v0qMvUy2HTyxjRvgfIBgu','AM9PBG','tM8Gzgf0yq','x2zVCM1HDfjLy2vUDe1LC3nHz2vZ','Bg9Nz2vY','uM91DgvYihrLC3qGy29TCgXLDgvK','uM91DgLUzYbMywLSzwqSihvZAw5NigzHBgXIywnRig1VzgvS','x2j1AwXKuM91DgLUz0nVBNrLEhq','qu5usfjpueLdx1nptK5fva','mJe1nJy4mNnVqM16uW','twLZC2LUzYbZzwXLy3rLze1VzgvSigLUigf1Dg9WAwXVDc1TB2rLBc1YB3v0zxiGCMvZCg9UC2u'];a0_0x448e=function(){return _0x4c25e8;};return a0_0x448e();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS,MODELS}from'../utilities/constants.js';function a0_0x2e3b(_0xc244da,_0x4141ff){_0xc244da=_0xc244da-0xc2;const _0x448eaf=a0_0x448e();let _0x2e3bc8=_0x448eaf[_0xc244da];if(a0_0x2e3b['helYVT']===undefined){var _0x559fb2=function(_0x4d04ec){const _0x402930='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x25234c='',_0x1f8cf2='';for(let _0x36dd21=0x0,_0x283381,_0x2a57a,_0x450734=0x0;_0x2a57a=_0x4d04ec['charAt'](_0x450734++);~_0x2a57a&&(_0x283381=_0x36dd21%0x4?_0x283381*0x40+_0x2a57a:_0x2a57a,_0x36dd21++%0x4)?_0x25234c+=String['fromCharCode'](0xff&_0x283381>>(-0x2*_0x36dd21&0x6)):0x0){_0x2a57a=_0x402930['indexOf'](_0x2a57a);}for(let _0x4c8c67=0x0,_0x191cd8=_0x25234c['length'];_0x4c8c67<_0x191cd8;_0x4c8c67++){_0x1f8cf2+='%'+('00'+_0x25234c['charCodeAt'](_0x4c8c67)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f8cf2);};a0_0x2e3b['YZVZnj']=_0x559fb2,a0_0x2e3b['fvqYFJ']={},a0_0x2e3b['helYVT']=!![];}const _0x53c375=_0x448eaf[0x0],_0x1f41f5=_0xc244da+_0x53c375,_0x2e01fb=a0_0x2e3b['fvqYFJ'][_0x1f41f5];return!_0x2e01fb?(_0x2e3bc8=a0_0x2e3b['YZVZnj'](_0x2e3bc8),a0_0x2e3b['fvqYFJ'][_0x1f41f5]=_0x2e3bc8):_0x2e3bc8=_0x2e01fb,_0x2e3bc8;}class ModelRouterService{constructor(_0x25234c,_0x1f8cf2,_0x36dd21,_0x283381){const _0x59ddfa=a0_0x2e3b;this[_0x59ddfa(0x109)]=_0x25234c,this[_0x59ddfa(0xee)]=_0x1f8cf2,this['benchmarkService']=_0x36dd21,this['aiService']=_0x283381,this[_0x59ddfa(0xc4)]=MODEL_ROUTER_CONFIG['ROUTER_MODEL'],this['contextMessagesCount']=MODEL_ROUTER_CONFIG['CONTEXT_MESSAGES_COUNT'],this[_0x59ddfa(0xd1)]=MODEL_ROUTER_CONFIG[_0x59ddfa(0x100)];}async['routeMessage'](_0x2a57a,_0x450734=[],_0x4c8c67='',_0x191cd8=[],_0x2a3505={}){const _0x46943a=a0_0x2e3b;try{this[_0x46943a(0xee)]['debug']('Starting\x20model\x20routing\x20analysis',{'messageLength':_0x2a57a[_0x46943a(0xd8)]?.[_0x46943a(0x102)]||0x0,'recentMessagesCount':_0x450734['length'],'currentModel':_0x4c8c67,'availableModelsCount':_0x191cd8[_0x46943a(0x102)]});const _0x4b810a=this[_0x46943a(0xf1)](_0x2a57a,_0x450734,_0x4c8c67,_0x191cd8),_0x39bab7=this[_0x46943a(0x101)][_0x46943a(0xea)](),_0x4b085d=this[_0x46943a(0xd7)](_0x4b810a,_0x39bab7),_0xf05776=await this['_askForRouting'](_0x4b085d,_0x2a3505),_0x286a33=this['_validateModelSelection'](_0xf05776,_0x191cd8,_0x4c8c67);return this[_0x46943a(0xee)][_0x46943a(0xcd)]('Model\x20routing\x20completed',{'selectedModel':_0x286a33,'previousModel':_0x4c8c67,'changed':_0x286a33!==_0x4c8c67,'reasoning':_0xf05776[_0x46943a(0xc3)]?.['substring'](0x0,0x64)||'No\x20reasoning\x20provided'}),{'selectedModel':_0x286a33,'previousModel':_0x4c8c67,'changed':_0x286a33!==_0x4c8c67,'reasoning':_0xf05776[_0x46943a(0xc3)]||'No\x20reasoning\x20provided'};}catch(_0x430756){this[_0x46943a(0xee)][_0x46943a(0x10d)]('Model\x20routing\x20failed,\x20falling\x20back\x20to\x20current\x20model',{'error':_0x430756[_0x46943a(0xdf)],'currentModel':_0x4c8c67});const _0x32f16e=_0x4c8c67||_0x191cd8[0x0]||MODELS[_0x46943a(0xf2)];return{'selectedModel':_0x32f16e,'previousModel':_0x4c8c67,'changed':![],'reasoning':_0x46943a(0xf0)};}}[a0_0x6c9969(0xf1)](_0xbf2a1,_0x1ddd0b,_0xc4f934,_0x3885d6){const _0xbf3646=a0_0x6c9969,_0x360921=_0x1ddd0b['slice'](-this[_0xbf3646(0xf9)])['map'](_0x2c40ed=>({'role':_0x2c40ed['role'],'content':_0x2c40ed[_0xbf3646(0xd8)]?.['substring'](0x0,0x1f4)||'','timestamp':_0x2c40ed['timestamp']}));return{'currentMessage':{'content':_0xbf2a1['content']?.[_0xbf3646(0xd2)](0x0,0x3e8)||'','role':_0xbf2a1[_0xbf3646(0x10e)]||_0xbf3646(0x10c),'hasContextReferences':!!_0xbf2a1['contextReferences']?.['length'],'contextTypes':_0xbf2a1['contextReferences']?.['map'](_0x542cd5=>_0x542cd5['type'])||[]},'recentMessages':_0x360921,'currentModel':_0xc4f934,'availableModels':_0x3885d6['map'](_0x5f20fe=>({'name':_0x5f20fe,'isCurrentModel':_0x5f20fe===_0xc4f934})),'messageCount':_0x1ddd0b[_0xbf3646(0x102)]+0x1,'timestamp':new Date()['toISOString']()};}['_createRoutingPrompt'](_0xd9f2d1,_0x15b201){const _0x22370e=a0_0x6c9969;return _0x22370e(0xff)+(_0xd9f2d1['currentModel']||'None')+_0x22370e(0xdb)+_0xd9f2d1[_0x22370e(0x111)]+'\x0a-\x20**Available\x20Models**:\x20'+_0xd9f2d1['availableModels'][_0x22370e(0xc2)](_0x17b1e8=>_0x17b1e8[_0x22370e(0x110)])['join'](',\x20')+_0x22370e(0xe9)+this['_formatRecentMessages'](_0xd9f2d1[_0x22370e(0xf8)])+'\x0a\x0a##\x20Current\x20Message\x20to\x20Route\x0a**Role**:\x20'+_0xd9f2d1[_0x22370e(0xfc)]['role']+_0x22370e(0xfb)+_0xd9f2d1['currentMessage']['content']+'\x0a**Has\x20Context\x20References**:\x20'+_0xd9f2d1[_0x22370e(0xfc)]['hasContextReferences']+'\x0a'+(_0xd9f2d1['currentMessage']['contextTypes']['length']>0x0?'**Context\x20Types**:\x20'+_0xd9f2d1['currentMessage'][_0x22370e(0xdc)][_0x22370e(0xeb)](',\x20'):'')+'\x0a\x0a##\x20Model\x20Benchmark\x20Data\x0a'+this[_0x22370e(0xcf)](_0x15b201)+'\x0a\x0a##\x20Routing\x20Decision\x0aAnalyze\x20the\x20current\x20message\x20and\x20conversation\x20context\x20to\x20select\x20the\x20best\x20model.\x20Consider:\x0a\x0a1.\x20**Task\x20Type**:\x20Infer\x20from\x20conversation\x20content\x20-\x20is\x20this\x20coding,\x20analysis,\x20creative\x20writing,\x20or\x20a\x20quick\x20task?\x0a2.\x20**Complexity**:\x20Does\x20it\x20require\x20deep\x20reasoning\x20or\x20is\x20it\x20straightforward?\x0a3.\x20**Context**:\x20Are\x20there\x20code\x20files\x20or\x20technical\x20references?\x0a4.\x20**Conversation\x20Flow**:\x20What\x20has\x20been\x20discussed\x20recently\x20to\x20understand\x20the\x20overall\x20task?\x0a5.\x20**Efficiency**:\x20Balance\x20performance\x20with\x20cost/speed\x20needs\x0a\x0aRespond\x20with\x20JSON\x20only:\x0a{\x0a\x20\x20\x22selectedModel\x22:\x20\x22model-name\x22,\x0a\x20\x20\x22taskType\x22:\x20\x22coding|analysis|creative|quick-tasks\x22,\x0a\x20\x20\x22confidence\x22:\x200.85,\x0a\x20\x20\x22reasoning\x22:\x20\x22Brief\x20explanation\x20of\x20why\x20this\x20model\x20was\x20chosen\x22,\x0a\x20\x20\x22factors\x22:\x20[\x22factor1\x22,\x20\x22factor2\x22,\x20\x22factor3\x22]\x0a}';}[a0_0x6c9969(0xed)](_0x27a691){const _0x273e35=a0_0x6c9969;if(!_0x27a691[_0x273e35(0x102)])return'No\x20recent\x20messages\x20available.';return _0x27a691['map']((_0x246c3e,_0x3055c6)=>_0x3055c6+0x1+_0x273e35(0xc5)+_0x246c3e[_0x273e35(0x10e)]+_0x273e35(0x10f)+_0x246c3e[_0x273e35(0xd8)])[_0x273e35(0xeb)]('\x0a');}['_formatBenchmarkData'](_0x551b59){const _0x47b8b2=a0_0x6c9969,_0x39f85f=_0x551b59[_0x47b8b2(0xda)]||[],_0x316e22=_0x551b59[_0x47b8b2(0xe2)]||{},_0x3916d=_0x551b59['summary']||{};let _0x43a5b6=_0x47b8b2(0xca);return Object['entries'](_0x316e22)['forEach'](([_0x4d6e7c,_0x1329d9])=>{const _0x26d498=_0x47b8b2;_0x43a5b6+='**'+_0x4d6e7c[_0x26d498(0xcc)]()+'**\x20('+_0x1329d9['description']+'):\x20'+(_0x1329d9[_0x26d498(0xd6)]?.['join'](',\x20')||_0x26d498(0xec))+'\x0a';}),_0x43a5b6+=_0x47b8b2(0xc6),_0x39f85f['slice'](0x0,0x8)[_0x47b8b2(0x106)](_0x201625=>{const _0x1c5b0a=_0x47b8b2;_0x43a5b6+='**'+_0x201625['name']+_0x1c5b0a(0x10f);const _0x232884=Object[_0x1c5b0a(0xe1)](_0x201625['tasks']||{})['map'](([_0xa747b9,_0x1b82bb])=>_0xa747b9+'('+_0x1b82bb[_0x1c5b0a(0xe6)]+')')['join'](',\x20');_0x43a5b6+=_0x232884+'\x20|\x20Strengths:\x20'+(_0x201625[_0x1c5b0a(0xc8)]?.[_0x1c5b0a(0xeb)](',\x20')||_0x1c5b0a(0x108))+'\x0a';}),_0x43a5b6;}async['_askForRouting'](_0x318432,_0x7ffb49={}){const _0x3eb444=a0_0x6c9969;try{const _0x28673b=await this['aiService'][_0x3eb444(0x113)](this['routerModel'],_0x318432,{'agentId':'model-router','systemPrompt':_0x3eb444(0xd9),'temperature':0.3,'maxTokens':0x1f4,'timeout':this['requestTimeout'],'sessionId':_0x7ffb49['sessionId'],'apiKey':_0x7ffb49['apiKey']||this[_0x3eb444(0x109)]['apiKey'],'customApiKeys':_0x7ffb49[_0x3eb444(0xe7)],'platformProvided':!![]});if(!_0x28673b[_0x3eb444(0xd8)])throw new Error('No response content from autopilot-model-router');const _0x15729b=this[_0x3eb444(0xe8)](_0x28673b[_0x3eb444(0xd8)]);return _0x15729b;}catch(_0x11cda4){this['logger']['error'](_0x3eb444(0xd5),{'error':_0x11cda4[_0x3eb444(0xdf)],'routerModel':this['routerModel']});throw _0x11cda4;}}[a0_0x6c9969(0xe8)](_0x37f82c){const _0x5e690f=a0_0x6c9969;try{const _0x527e2f=_0x37f82c[_0x5e690f(0xf6)](/\{[\s\S]*\}/);if(!_0x527e2f)throw new Error(_0x5e690f(0xd3));const _0x2e983e=JSON[_0x5e690f(0xfd)](_0x527e2f[0x0]);if(!_0x2e983e['selectedModel'])throw new Error(_0x5e690f(0xf4));return{'selectedModel':_0x2e983e['selectedModel'],'taskType':_0x2e983e[_0x5e690f(0x105)]||'unknown','confidence':_0x2e983e[_0x5e690f(0x112)]||0.5,'reasoning':_0x2e983e[_0x5e690f(0xc3)]||_0x5e690f(0xe5),'factors':_0x2e983e[_0x5e690f(0x104)]||[]};}catch(_0x4f8cf7){return this['logger'][_0x5e690f(0xe3)](_0x5e690f(0xc9),{'error':_0x4f8cf7['message'],'content':_0x37f82c[_0x5e690f(0xd2)](0x0,0xc8)}),{'selectedModel':null,'taskType':'unknown','confidence':0x0,'reasoning':'Failed\x20to\x20parse\x20routing\x20response','factors':[_0x5e690f(0xd4)]};}}['_validateModelSelection'](_0xfbf4c5,_0x135284,_0x339b98){const _0x1e7a4f=a0_0x6c9969,{selectedModel:_0x5e6f58}=_0xfbf4c5;if(!_0x5e6f58)return this['logger'][_0x1e7a4f(0x107)]('No\x20model\x20selected\x20by\x20router,\x20using\x20current\x20model'),_0x339b98;if(!_0x135284[_0x1e7a4f(0xe4)](_0x5e6f58))return this['logger'][_0x1e7a4f(0xe3)]('Router\x20selected\x20unavailable\x20model,\x20using\x20current\x20model',{'selectedModel':_0x5e6f58,'availableModels':_0x135284}),_0x339b98;return _0x5e6f58;}[a0_0x6c9969(0xe0)](){const _0x495a19=a0_0x6c9969;return{'routerModel':this[_0x495a19(0xc4)],'contextMessagesCount':this['contextMessagesCount'],'requestTimeout':this[_0x495a19(0xd1)],'benchmarkServiceStatus':this[_0x495a19(0x101)][_0x495a19(0xe0)](),'isAvailable':!![]};}async['testRouter'](){const _0xa8696d=a0_0x6c9969;try{const _0x2ec5f1={'content':'Can\x20you\x20help\x20me\x20debug\x20this\x20JavaScript\x20function?','role':_0xa8696d(0x10c)},_0xfa17bc=await this[_0xa8696d(0x10a)](_0x2ec5f1,[],MODELS[_0xa8696d(0xf2)],[MODELS[_0xa8696d(0xf2)],MODELS[_0xa8696d(0xc7)],MODELS['GPT_4'],MODELS[_0xa8696d(0xd0)]],{'apiKey':'test-key'});return this[_0xa8696d(0xee)][_0xa8696d(0xcd)](_0xa8696d(0xef),{'selectedModel':_0xfa17bc}),{'success':!![],'selectedModel':_0xfa17bc};}catch(_0x219b1b){return this['logger']['error'](_0xa8696d(0xfa),{'error':_0x219b1b['message']}),{'success':![],'error':_0x219b1b[_0xa8696d(0xdf)]};}}}export default ModelRouterService;
@@ -1 +1 @@
1
- const a0_0x1295c4=a0_0x1279;(function(_0x37f7e1,_0x4f2ba9){const _0x12d678=a0_0x1279,_0x595486=_0x37f7e1();while(!![]){try{const _0xdb6c1b=-parseInt(_0x12d678(0x1b1))/0x1+-parseInt(_0x12d678(0x1a5))/0x2*(-parseInt(_0x12d678(0x1c5))/0x3)+parseInt(_0x12d678(0x1b0))/0x4+parseInt(_0x12d678(0x1b7))/0x5*(-parseInt(_0x12d678(0x1c7))/0x6)+-parseInt(_0x12d678(0x1b4))/0x7*(-parseInt(_0x12d678(0x1b2))/0x8)+parseInt(_0x12d678(0x1a1))/0x9*(-parseInt(_0x12d678(0x1bb))/0xa)+parseInt(_0x12d678(0x1bd))/0xb*(parseInt(_0x12d678(0x1ab))/0xc);if(_0xdb6c1b===_0x4f2ba9)break;else _0x595486['push'](_0x595486['shift']());}catch(_0x50ae7a){_0x595486['push'](_0x595486['shift']());}}}(a0_0x3e57,0x194b4));class ModelsService{constructor(_0x51985c,_0x1f8101){const _0x204528=a0_0x1279;this[_0x204528(0x1c1)]=_0x51985c,this[_0x204528(0x1cb)]=_0x1f8101,this[_0x204528(0x1c6)]=null,this['lastFetched']=null,this['isLoading']=![],this['cacheExpiry']=0x5*0x3c*0x3e8,this['backendUrl']=_0x51985c[_0x204528(0x1c3)]||_0x204528(0x1a3),this['retryAttempts']=0x0,this[_0x204528(0x1ba)]=0x3,this[_0x204528(0x1be)]=0x7d0,this['retryTimer']=null,this['lastError']=null,this[_0x204528(0x1d0)]=null;}['setApiKeyManager'](_0x27264e){const _0x290ecd=a0_0x1279;this['apiKeyManager']=_0x27264e,this['logger']?.[_0x290ecd(0x1c4)]('API\x20key\x20manager\x20set\x20for\x20models\x20service',{'hasManager':!!_0x27264e});}async['initialize'](){const _0x204ff7=a0_0x1279;try{await this['fetchModels'](),this['logger'][_0x204ff7(0x1c4)](_0x204ff7(0x1c0),{'modelCount':this[_0x204ff7(0x1c6)]?.['length']||0x0});}catch(_0x1abfd6){this[_0x204ff7(0x1b6)]=_0x1abfd6['message'],this['logger'][_0x204ff7(0x1af)]('Failed\x20to\x20initialize\x20models\x20service\x20-\x20NO\x20FALLBACK\x20AVAILABLE',{'error':_0x1abfd6['message'],'endpoint':this['backendUrl']+_0x204ff7(0x1a8),'willRetry':!![]}),this[_0x204ff7(0x1bc)]();}}[a0_0x1295c4(0x1ca)](){const _0x29999c=a0_0x1295c4;if(!this[_0x29999c(0x1c6)]||this[_0x29999c(0x1c6)]['length']===0x0)return this['logger'][_0x29999c(0x1af)]('No\x20models\x20available\x20-\x20API\x20fetch\x20failed',{'lastError':this[_0x29999c(0x1b6)],'endpoint':this['backendUrl']+'/api/llm/models','retryAttempt':this['retryAttempts'],'maxRetries':this['maxRetries']}),[];return this[_0x29999c(0x1c6)][_0x29999c(0x1ce)](_0x1cdd99=>_0x1cdd99['name']);}[a0_0x1295c4(0x1ac)](){const _0x5119d7=a0_0x1295c4;if(!this['models']||this[_0x5119d7(0x1c6)]['length']===0x0)return this[_0x5119d7(0x1cb)]['error'](_0x5119d7(0x1b5),{'lastError':this[_0x5119d7(0x1b6)],'endpoint':this['backendUrl']+'/api/llm/models'}),[];return this[_0x5119d7(0x1c6)];}async['fetchModels'](_0x19713c=null){const _0x305aff=a0_0x1295c4;if(this['isLoading']){this['logger'][_0x305aff(0x1aa)](_0x305aff(0x1a2));return;}this['isLoading']=!![];try{const _0x5aaac7=this[_0x305aff(0x1c3)]+'/api/llm/models';let _0x5a5013=null;if(this[_0x305aff(0x1d0)]&&_0x19713c&&_0x19713c[_0x305aff(0x1cd)]){const _0x11bde5=this[_0x305aff(0x1d0)]['getKeysForRequest'](_0x19713c[_0x305aff(0x1cd)],{'platformProvided':!![],'vendor':null});_0x5a5013=_0x11bde5[_0x305aff(0x1a6)],this['logger']?.[_0x305aff(0x1c4)]('Retrieved API key from session manager for models fetch',{'sessionId':_0x19713c[_0x305aff(0x1cd)],'hasLoxiaKey':!!_0x5a5013});}if(!_0x5a5013&&_0x19713c&&_0x19713c['apiKey'])_0x5a5013=_0x19713c[_0x305aff(0x1bf)];else{if(!_0x5a5013&&this[_0x305aff(0x1c1)][_0x305aff(0x1bf)])_0x5a5013=this['config'][_0x305aff(0x1bf)];else!_0x5a5013&&process[_0x305aff(0x1cf)]['LOXIA_API_KEY']&&(_0x5a5013=process['env'][_0x305aff(0x1b9)]);}const _0xed6af1={'method':'GET','headers':{'Content-Type':_0x305aff(0x1c9),..._0x5a5013&&{'Authorization':'Bearer\x20'+_0x5a5013}},'timeout':0x2710};this['logger'][_0x305aff(0x1aa)]('Fetching models from backend',{'url':_0x5aaac7,'hasApiKey':!!_0x5a5013,'apiKeySource':_0x19713c?.['apiKey']?'context':this[_0x305aff(0x1c1)]['apiKey']?'config':process[_0x305aff(0x1cf)][_0x305aff(0x1b9)]?_0x305aff(0x1cf):'none'});const _0x597108=await fetch(_0x5aaac7,_0xed6af1);if(!_0x597108['ok'])throw new Error('HTTP\x20'+_0x597108[_0x305aff(0x1b3)]+':\x20'+_0x597108['statusText']);const _0x313361=await _0x597108[_0x305aff(0x1d1)]();if(_0x313361['models']&&Array['isArray'](_0x313361[_0x305aff(0x1c6)]))this[_0x305aff(0x1c6)]=_0x313361[_0x305aff(0x1c6)],this['lastFetched']=new Date(),this[_0x305aff(0x1a9)]=![],this['logger']['info']('Models fetched from backend',{'modelCount':this['models'][_0x305aff(0x19f)],'models':this['models'][_0x305aff(0x1ce)](_0x58cad1=>_0x58cad1['name'])});else throw new Error('Invalid response format from models API');}catch(_0xa9fb85){this['lastError']=_0xa9fb85[_0x305aff(0x1d2)],this[_0x305aff(0x1cb)][_0x305aff(0x1af)]('Failed to fetch models from backend - NO FALLBACK',{'error':_0xa9fb85['message'],'endpoint':url,'retryAttempt':this['retryAttempts'],'maxRetries':this['maxRetries']}),this['_scheduleRetry'](_0x19713c);if(!this[_0x305aff(0x1c6)])throw _0xa9fb85;}finally{this['isLoading']=![];}}['needsRefresh'](){const _0x39589d=a0_0x1295c4;if(!this['lastFetched'])return!![];const _0x2b6d0e=Date[_0x39589d(0x1c8)]()-this[_0x39589d(0x1b8)][_0x39589d(0x19b)]();return _0x2b6d0e>this['cacheExpiry'];}async[a0_0x1295c4(0x1a0)](_0x1a0432=null){const _0x5b0b42=a0_0x1295c4;this[_0x5b0b42(0x1cb)][_0x5b0b42(0x1c4)]('Force\x20refreshing\x20models'),await this[_0x5b0b42(0x1ae)](_0x1a0432);}async['refreshWithContext'](_0x20412e){const _0x52d95=a0_0x1295c4;(this['needsRefresh']||!this[_0x52d95(0x1b8)])&&(this[_0x52d95(0x1cb)]['debug']('Refreshing\x20models\x20with\x20API\x20key\x20context'),await this[_0x52d95(0x1ae)](_0x20412e));}['_scheduleRetry'](_0x244269=null){const _0x59b98b=a0_0x1295c4;this['retryTimer']&&(clearTimeout(this[_0x59b98b(0x19c)]),this['retryTimer']=null);if(this[_0x59b98b(0x19e)]>=this['maxRetries']){this['logger'][_0x59b98b(0x1af)]('Max\x20retry\x20attempts\x20reached\x20for\x20model\x20fetch',{'attempts':this['retryAttempts'],'maxRetries':this['maxRetries'],'lastError':this[_0x59b98b(0x1b6)]});return;}const _0x3827ab=this[_0x59b98b(0x1be)]*Math[_0x59b98b(0x1c2)](0x2,this[_0x59b98b(0x19e)]);this['retryAttempts']++,this['logger']['info'](_0x59b98b(0x19d),{'attempt':this[_0x59b98b(0x19e)],'maxRetries':this[_0x59b98b(0x1ba)],'delayMs':_0x3827ab}),this['retryTimer']=setTimeout(async()=>{const _0x414baa=_0x59b98b;this['logger'][_0x414baa(0x1c4)]('Executing\x20scheduled\x20model\x20fetch\x20retry',{'attempt':this['retryAttempts']});try{await this['fetchModels'](_0x244269),this[_0x414baa(0x19e)]=0x0,this['lastError']=null;}catch(_0x5918b1){this['logger'][_0x414baa(0x1d3)](_0x414baa(0x1ad),{'attempt':this[_0x414baa(0x19e)],'error':_0x5918b1['message']});}},_0x3827ab);}['_cancelRetry'](){const _0x1937ea=a0_0x1295c4;this['retryTimer']&&(clearTimeout(this['retryTimer']),this[_0x1937ea(0x19c)]=null,this['logger'][_0x1937ea(0x1aa)](_0x1937ea(0x1cc)));}['getStatus'](){const _0xbf4f8f=a0_0x1295c4;return{'initialized':!!this[_0xbf4f8f(0x1c6)],'lastFetched':this[_0xbf4f8f(0x1b8)]?.[_0xbf4f8f(0x1a7)]()||null,'modelCount':this[_0xbf4f8f(0x1c6)]?.['length']||0x0,'isLoading':this[_0xbf4f8f(0x1a4)],'needsRefresh':this['needsRefresh'](),'error':this['lastError']||null,'retryAttempts':this['retryAttempts'],'maxRetries':this[_0xbf4f8f(0x1ba)],'hasError':!!this[_0xbf4f8f(0x1b6)]};}}function a0_0x1279(_0x4965c1,_0x235a83){_0x4965c1=_0x4965c1-0x19b;const _0x3e575a=a0_0x3e57();let _0x12793a=_0x3e575a[_0x4965c1];if(a0_0x1279['HfTifT']===undefined){var _0x397129=function(_0x2a149c){const _0x436f6e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51985c='',_0x1f8101='';for(let _0x27264e=0x0,_0x1abfd6,_0x1cdd99,_0x19713c=0x0;_0x1cdd99=_0x2a149c['charAt'](_0x19713c++);~_0x1cdd99&&(_0x1abfd6=_0x27264e%0x4?_0x1abfd6*0x40+_0x1cdd99:_0x1cdd99,_0x27264e++%0x4)?_0x51985c+=String['fromCharCode'](0xff&_0x1abfd6>>(-0x2*_0x27264e&0x6)):0x0){_0x1cdd99=_0x436f6e['indexOf'](_0x1cdd99);}for(let _0x5aaac7=0x0,_0x5a5013=_0x51985c['length'];_0x5aaac7<_0x5a5013;_0x5aaac7++){_0x1f8101+='%'+('00'+_0x51985c['charCodeAt'](_0x5aaac7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f8101);};a0_0x1279['GsAbaf']=_0x397129,a0_0x1279['MnpfZm']={},a0_0x1279['HfTifT']=!![];}const _0x52bf01=_0x3e575a[0x0],_0x4b82d8=_0x4965c1+_0x52bf01,_0x306c8c=a0_0x1279['MnpfZm'][_0x4b82d8];return!_0x306c8c?(_0x12793a=a0_0x1279['GsAbaf'](_0x12793a),a0_0x1279['MnpfZm'][_0x4b82d8]=_0x12793a):_0x12793a=_0x306c8c,_0x12793a;}export default ModelsService;function a0_0x3e57(){const _0x19cfea=['zgvIDwC','mtjorNLnrK0','z2v0tw9KzwXZ','uMv0CNKGyxr0zw1WDcbMywLSzwq','zMv0y2HnB2rLBhm','zxjYB3i','ndq1nJmYrwDZv3Lg','mti0mty0vgLmrxnh','ofHHEKjLAG','C3rHDhvZ','mJy2mZe1sNbmufPN','tM8GBw9KzwXZigf2ywLSywjSzsaTiefqssbMzxrJAcbMywLSzwq','BgfZDevYCM9Y','mtGWodvSq0LwALq','BgfZDezLDgnOzwq','te9ysufFqvbjx0Tfwq','Bwf4uMv0CMLLCW','mZbov1DMsMS','x3nJAgvKDwXLuMv0CNK','mZqXnte5mNL2tNPnuW','CMv0CNLezwXHEq','yxbPs2v5','tw9KzwXZihnLCNzPy2uGAw5PDgLHBgL6zwq','y29UzMLN','Cg93','yMfJA2vUzfvYBa','Aw5MBW','ntm3EMDlwgX2','Bw9KzwXZ','mJq2EvfRzvrg','BM93','yxbWBgLJyxrPB24VANnVBG','z2v0qxzHAwXHyMXLtw9KzwXoyw1LCW','Bg9Nz2vY','q2fUy2vSBgvKihbLBMrPBMCGBw9KzwWGzMv0y2GGCMv0CNK','C2vZC2LVBKLK','BwfW','zw52','yxbPs2v5twfUywDLCG','ANnVBG','BwvZC2fNzq','D2fYBG','z2v0vgLTzq','CMv0CNLuAw1LCG','u2nOzwr1BgLUzYbTB2rLBcbMzxrJAcbYzxrYEq','CMv0CNLbDhrLBxb0CW','BgvUz3rO','CMvMCMvZAa','nduXodGXC2Xtt0rv','tw9KzwXZigzLDgnOigfSCMvHzhKGAw4GChjVz3jLC3m','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','AxnmB2fKAw5N','nZq2zg5VsKDn','Bg94AwfbCgLlzxK','Dg9ju09tDhjPBMC','l2fWAs9SBg0VBw9KzwXZ','BMvLzhnszwzYzxnO'];a0_0x3e57=function(){return _0x19cfea;};return a0_0x3e57();}
1
+ function a0_0x3e86(){const _0x44685e=['mJG4nJm1tercD2Hk','BgfZDezLDgnOzwq','te9ysufFqvbjx0Tfwq','zw52','mJK1mZaYmeXevMvJrG','BwfW','Bw9KzwXZ','rxHLy3v0Aw5NihnJAgvKDwXLzcbTB2rLBcbMzxrJAcbYzxrYEq','zxjYB3i','CMv0CNLuAw1LCG','tw9KzwXZigzLDgnOigfSCMvHzhKGAw4GChjVz3jLC3m','mte5mti4nfviBLfRBW','CMvMCMvZAa','Aw5MBW','yxbPs2v5','Dg9ju09tDhjPBMC','yxbPs2v5twfUywDLCG','z2v0qxzHAwXHyMXLtw9KzwXoyw1LCW','BM9Uzq','y29UzMLN','odmXnte2wg9szgP0','mK5yvNfTwG','mtuYodfYEvbbtfK','Bwf4uMv0CMLLCW','x3nJAgvKDwXLuMv0CNK','zgvIDwC','odm0v1bLzg1m','CMvMCMvZAfDPDgHdB250zxH0','z2v0vgLTzq','l2fWAs9SBg0VBw9KzwXZ','qMvHCMvYia','rMfPBgvKihrVigLUAxrPywXPEMuGBw9KzwXZihnLCNzPy2uGlsbotYbgquXmqKfdsYbbvKfjtefcteu','C2vZC2LVBKLK','BMvLzhnszwzYzxnO','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGBw9KzwXZihnLCNzPy2u','mJG2odG4oejIBvDUsq','AxnmB2fKAw5N','mJDkvuPKwxK','CMv0CNLezwXHEq','tM8GBw9KzwXZigf2ywLSywjSzsaTiefqssbMzxrJAcbMywLSzwq','C2v0qxbPs2v5twfUywDLCG','z2v0tw9KzwXZ','Bg9Nz2vY','C3rHDhvZ','CMv0CNLbDhrLBxb0CW','BgvUz3rO','odq1mtmWweHVAvrs','yMfJA2vUzfvYBa','D2fYBG','nurJsg9qsq','BwvZC2fNzq','BgfZDevYCM9Y'];a0_0x3e86=function(){return _0x44685e;};return a0_0x3e86();}function a0_0xdd7e(_0x26cc16,_0x75784e){_0x26cc16=_0x26cc16-0x1d8;const _0x3e86ac=a0_0x3e86();let _0xdd7eb7=_0x3e86ac[_0x26cc16];if(a0_0xdd7e['IYIKMI']===undefined){var _0x66758d=function(_0x4a6720){const _0x3c612f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xffbceb='',_0x4a7436='';for(let _0x512f04=0x0,_0x6a4780,_0x3042ff,_0x107b9b=0x0;_0x3042ff=_0x4a6720['charAt'](_0x107b9b++);~_0x3042ff&&(_0x6a4780=_0x512f04%0x4?_0x6a4780*0x40+_0x3042ff:_0x3042ff,_0x512f04++%0x4)?_0xffbceb+=String['fromCharCode'](0xff&_0x6a4780>>(-0x2*_0x512f04&0x6)):0x0){_0x3042ff=_0x3c612f['indexOf'](_0x3042ff);}for(let _0x23c4af=0x0,_0x5927e8=_0xffbceb['length'];_0x23c4af<_0x5927e8;_0x23c4af++){_0x4a7436+='%'+('00'+_0xffbceb['charCodeAt'](_0x23c4af)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a7436);};a0_0xdd7e['EcuhNG']=_0x66758d,a0_0xdd7e['mURtRd']={},a0_0xdd7e['IYIKMI']=!![];}const _0xf49d4d=_0x3e86ac[0x0],_0x43b5c8=_0x26cc16+_0xf49d4d,_0x1f1613=a0_0xdd7e['mURtRd'][_0x43b5c8];return!_0x1f1613?(_0xdd7eb7=a0_0xdd7e['EcuhNG'](_0xdd7eb7),a0_0xdd7e['mURtRd'][_0x43b5c8]=_0xdd7eb7):_0xdd7eb7=_0x1f1613,_0xdd7eb7;}const a0_0x531ecd=a0_0xdd7e;(function(_0x51ca93,_0x160397){const _0x1a94a6=a0_0xdd7e,_0x24b5cd=_0x51ca93();while(!![]){try{const _0x3ac1fd=parseInt(_0x1a94a6(0x1f3))/0x1*(-parseInt(_0x1a94a6(0x208))/0x2)+-parseInt(_0x1a94a6(0x207))/0x3+parseInt(_0x1a94a6(0x1fe))/0x4*(-parseInt(_0x1a94a6(0x1f0))/0x5)+-parseInt(_0x1a94a6(0x1d9))/0x6*(-parseInt(_0x1a94a6(0x209))/0x7)+parseInt(_0x1a94a6(0x1e2))/0x8+-parseInt(_0x1a94a6(0x1e4))/0x9*(-parseInt(_0x1a94a6(0x1f7))/0xa)+-parseInt(_0x1a94a6(0x1ed))/0xb;if(_0x3ac1fd===_0x160397)break;else _0x24b5cd['push'](_0x24b5cd['shift']());}catch(_0x4bc6b0){_0x24b5cd['push'](_0x24b5cd['shift']());}}}(a0_0x3e86,0x94508));class ModelsService{constructor(_0xffbceb,_0x4a7436){const _0x4f8237=a0_0xdd7e;this['config']=_0xffbceb,this[_0x4f8237(0x1e9)]=_0x4a7436,this['models']=null,this['lastFetched']=null,this[_0x4f8237(0x1e3)]=![],this['cacheExpiry']=0x5*0x3c*0x3e8,this['backendUrl']=_0xffbceb[_0x4f8237(0x1ee)]||'http://localhost:8080',this['retryAttempts']=0x0,this[_0x4f8237(0x20a)]=0x3,this['retryDelay']=0x7d0,this['retryTimer']=null,this[_0x4f8237(0x1f2)]=null,this['apiKeyManager']=null;}[a0_0x531ecd(0x1e7)](_0x512f04){const _0x132bbc=a0_0x531ecd;this['apiKeyManager']=_0x512f04,this['logger']?.[_0x132bbc(0x200)](_0x132bbc(0x1e1),{'hasManager':!!_0x512f04});}async['initialize'](){const _0x15180c=a0_0x531ecd;try{await this['fetchModels'](),this[_0x15180c(0x1e9)]['info']('Models\x20service\x20initialized',{'modelCount':this['models']?.['length']||0x0});}catch(_0x6a4780){this[_0x15180c(0x1f2)]=_0x6a4780[_0x15180c(0x1f1)],this['logger']['error'](_0x15180c(0x1de),{'error':_0x6a4780[_0x15180c(0x1f1)],'endpoint':this['backendUrl']+_0x15180c(0x1dc),'willRetry':!![]}),this[_0x15180c(0x20b)]();}}[a0_0x531ecd(0x204)](){const _0x2b5575=a0_0x531ecd;if(!this['models']||this['models'][_0x2b5575(0x1ec)]===0x0)return this['logger'][_0x2b5575(0x1fb)](_0x2b5575(0x1e6),{'lastError':this[_0x2b5575(0x1f2)],'endpoint':this['backendUrl']+_0x2b5575(0x1dc),'retryAttempt':this[_0x2b5575(0x1eb)],'maxRetries':this['maxRetries']}),[];return this[_0x2b5575(0x1f9)][_0x2b5575(0x1f8)](_0x3042ff=>_0x3042ff['name']);}[a0_0x531ecd(0x1e8)](){const _0x33da4a=a0_0x531ecd;if(!this[_0x33da4a(0x1f9)]||this[_0x33da4a(0x1f9)]['length']===0x0)return this[_0x33da4a(0x1e9)]['error']('No\x20models\x20available\x20-\x20API\x20fetch\x20failed',{'lastError':this['lastError'],'endpoint':this['backendUrl']+_0x33da4a(0x1dc)}),[];return this[_0x33da4a(0x1f9)];}async['fetchModels'](_0x107b9b=null){const _0xbf3a75=a0_0x531ecd;if(this['isLoading']){this['logger']['debug'](_0xbf3a75(0x1fd));return;}this['isLoading']=!![];try{const _0x23c4af=this['backendUrl']+'/api/llm/models';let _0x5927e8=null;if(this['apiKeyManager']&&_0x107b9b&&_0x107b9b['sessionId']){const _0x9aeb03=this[_0xbf3a75(0x203)]['getKeysForRequest'](_0x107b9b['sessionId'],{'platformProvided':!![],'vendor':null});_0x5927e8=_0x9aeb03['loxiaApiKey'],this['logger']?.[_0xbf3a75(0x200)]('Retrieved API key from session manager for models fetch',{'sessionId':_0x107b9b[_0xbf3a75(0x1df)],'hasLoxiaKey':!!_0x5927e8});}if(!_0x5927e8&&_0x107b9b&&_0x107b9b[_0xbf3a75(0x201)])_0x5927e8=_0x107b9b[_0xbf3a75(0x201)];else{if(!_0x5927e8&&this['config']['apiKey'])_0x5927e8=this[_0xbf3a75(0x206)]['apiKey'];else!_0x5927e8&&process['env']['LOXIA_API_KEY']&&(_0x5927e8=process[_0xbf3a75(0x1f6)][_0xbf3a75(0x1f5)]);}const _0x42b4b9={'method':'GET','headers':{'Content-Type':'application/json',..._0x5927e8&&{'Authorization':_0xbf3a75(0x1dd)+_0x5927e8}},'timeout':0x2710};this['logger'][_0xbf3a75(0x1d8)]('Fetching models from backend',{'url':_0x23c4af,'hasApiKey':!!_0x5927e8,'apiKeySource':_0x107b9b?.[_0xbf3a75(0x201)]?'context':this['config']['apiKey']?'config':process[_0xbf3a75(0x1f6)]['LOXIA_API_KEY']?_0xbf3a75(0x1f6):_0xbf3a75(0x205)});const _0x5e85bf=await fetch(_0x23c4af,_0x42b4b9);if(!_0x5e85bf['ok'])throw new Error('HTTP\x20'+_0x5e85bf[_0xbf3a75(0x1ea)]+':\x20'+_0x5e85bf['statusText']);const _0x5d21c0=await _0x5e85bf['json']();if(_0x5d21c0[_0xbf3a75(0x1f9)]&&Array['isArray'](_0x5d21c0[_0xbf3a75(0x1f9)]))this['models']=_0x5d21c0['models'],this['lastFetched']=new Date(),this[_0xbf3a75(0x1e0)]=![],this['logger']['info']('Models fetched from backend',{'modelCount':this['models'][_0xbf3a75(0x1ec)],'models':this[_0xbf3a75(0x1f9)]['map'](_0x44da45=>_0x44da45['name'])});else throw new Error('Invalid response format from models API');}catch(_0x2e8631){this['lastError']=_0x2e8631[_0xbf3a75(0x1f1)],this[_0xbf3a75(0x1e9)][_0xbf3a75(0x1fb)]('Failed to fetch models from backend - NO FALLBACK',{'error':_0x2e8631[_0xbf3a75(0x1f1)],'endpoint':url,'retryAttempt':this['retryAttempts'],'maxRetries':this['maxRetries']}),this['_scheduleRetry'](_0x107b9b);if(!this['models'])throw _0x2e8631;}finally{this[_0xbf3a75(0x1e3)]=![];}}['needsRefresh'](){const _0x47c758=a0_0x531ecd;if(!this['lastFetched'])return!![];const _0x171295=Date['now']()-this[_0x47c758(0x1f4)][_0x47c758(0x1db)]();return _0x171295>this['cacheExpiry'];}async[a0_0x531ecd(0x1ff)](_0x293ac6=null){const _0x289035=a0_0x531ecd;this[_0x289035(0x1e9)]['info']('Force\x20refreshing\x20models'),await this['fetchModels'](_0x293ac6);}async[a0_0x531ecd(0x1da)](_0x55963b){const _0x35b53b=a0_0x531ecd;(this['needsRefresh']||!this[_0x35b53b(0x1f4)])&&(this[_0x35b53b(0x1e9)]['debug']('Refreshing\x20models\x20with\x20API\x20key\x20context'),await this['fetchModels'](_0x55963b));}['_scheduleRetry'](_0x35b093=null){const _0x53333e=a0_0x531ecd;this['retryTimer']&&(clearTimeout(this['retryTimer']),this['retryTimer']=null);if(this[_0x53333e(0x1eb)]>=this[_0x53333e(0x20a)]){this['logger'][_0x53333e(0x1fb)]('Max\x20retry\x20attempts\x20reached\x20for\x20model\x20fetch',{'attempts':this['retryAttempts'],'maxRetries':this['maxRetries'],'lastError':this['lastError']});return;}const _0x3ed085=this[_0x53333e(0x1e5)]*Math['pow'](0x2,this['retryAttempts']);this[_0x53333e(0x1eb)]++,this['logger'][_0x53333e(0x200)]('Scheduling\x20model\x20fetch\x20retry',{'attempt':this[_0x53333e(0x1eb)],'maxRetries':this['maxRetries'],'delayMs':_0x3ed085}),this['retryTimer']=setTimeout(async()=>{const _0x2e74e1=_0x53333e;this[_0x2e74e1(0x1e9)]['info'](_0x2e74e1(0x1fa),{'attempt':this['retryAttempts']});try{await this['fetchModels'](_0x35b093),this[_0x2e74e1(0x1eb)]=0x0,this[_0x2e74e1(0x1f2)]=null;}catch(_0xd46854){this['logger'][_0x2e74e1(0x1ef)]('Retry\x20attempt\x20failed',{'attempt':this['retryAttempts'],'error':_0xd46854['message']});}},_0x3ed085);}['_cancelRetry'](){const _0x3e71d9=a0_0x531ecd;this[_0x3e71d9(0x1fc)]&&(clearTimeout(this[_0x3e71d9(0x1fc)]),this[_0x3e71d9(0x1fc)]=null,this['logger'][_0x3e71d9(0x1d8)]('Cancelled\x20pending\x20model\x20fetch\x20retry'));}['getStatus'](){const _0x56a829=a0_0x531ecd;return{'initialized':!!this[_0x56a829(0x1f9)],'lastFetched':this['lastFetched']?.[_0x56a829(0x202)]()||null,'modelCount':this['models']?.['length']||0x0,'isLoading':this['isLoading'],'needsRefresh':this['needsRefresh'](),'error':this['lastError']||null,'retryAttempts':this[_0x56a829(0x1eb)],'maxRetries':this[_0x56a829(0x20a)],'hasError':!!this['lastError']};}}export default ModelsService;