@yrpri/api 9.0.139 → 9.0.141

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 (322) hide show
  1. package/agents/assistants/agentAssistant.js +4 -3
  2. package/agents/assistants/baseAssistant.js +72 -71
  3. package/agents/assistants/baseAssistantWithVoice.js +6 -5
  4. package/agents/assistants/modes/agentDirectConnection.js +8 -7
  5. package/agents/assistants/modes/agentSelectionMode.js +2 -1
  6. package/agents/assistants/modes/baseAssistantMode.js +3 -2
  7. package/agents/assistants/modes/tools/agentTools.js +11 -10
  8. package/agents/assistants/modes/tools/loginTools.js +7 -6
  9. package/agents/assistants/modes/tools/models/agents.js +6 -5
  10. package/agents/assistants/modes/tools/models/subscriptions.js +7 -6
  11. package/agents/assistants/modes/tools/navigationTools.js +7 -6
  12. package/agents/assistants/modes/tools/subscriptionTools.js +12 -11
  13. package/agents/assistants/modes/tools/workflowConverstationTools.js +7 -6
  14. package/agents/assistants/voiceAssistant.js +45 -44
  15. package/agents/controllers/agentProductController.js +8 -7
  16. package/agents/controllers/agentSubscriptionController.js +13 -12
  17. package/agents/controllers/assistantsController.js +45 -44
  18. package/agents/controllers/policySynthAgents.js +33 -32
  19. package/agents/managers/emailInvitesManager.js +4 -3
  20. package/agents/managers/newAiModelSetup.js +46 -45
  21. package/agents/managers/notificationAgentQueueManager.js +55 -54
  22. package/agents/managers/subscriptionManager.js +24 -23
  23. package/agents/models/agentProduct.js +2 -1
  24. package/agents/models/agentProductBoosterPurchase.js +2 -1
  25. package/agents/models/testData/createEvolyAgentProduct.js +7 -6
  26. package/agents/models/testData/old/updateAgentWorkflowConfiguration.js +5 -4
  27. package/agents/models/testData/updateAgentWorkflowConfiguration.js +5 -4
  28. package/agents/tools/setTemplateWorkflowCommunityId.js +6 -5
  29. package/app.d.ts +2 -1
  30. package/app.js +60 -34
  31. package/authorization.cjs +4 -4
  32. package/controllers/allOurIdeas.js +45 -44
  33. package/controllers/groups.cjs +4 -9
  34. package/controllers/images.cjs +8 -8
  35. package/controllers/index.cjs +1 -1
  36. package/controllers/points.cjs +1 -1
  37. package/controllers/posts.cjs +3 -3
  38. package/deleteUnwantedDeclerations.cjs +6 -5
  39. package/models/community.cjs +1 -1
  40. package/models/domain.cjs +7 -7
  41. package/models/image.cjs +2 -2
  42. package/models/index.cjs +8 -4
  43. package/models/post.cjs +10 -10
  44. package/models/user.cjs +1 -1
  45. package/models/video.cjs +4 -4
  46. package/package.json +5 -5
  47. package/scripts/addRatingUsersToGroup.js +1 -1
  48. package/scripts/addUserToOrganization.js +8 -8
  49. package/scripts/agents/changeModelForWorkflowGroupTemplate.js +13 -12
  50. package/scripts/agents/generateAgentWorkflowTemplateFromAgentClass.js +5 -4
  51. package/scripts/analyseRatingsForCommunity.js +2 -2
  52. package/scripts/analyzeAndFixBrokenPointUsers.js +3 -3
  53. package/scripts/analyzeEndorsementsByCountry.js +7 -7
  54. package/scripts/analyzePostsForCommunity.js +1 -1
  55. package/scripts/bulkStatusUpdates/listUpdates.js +2 -2
  56. package/scripts/bulkStatusUpdates/mergeLatestPostsToUpdate.js +5 -5
  57. package/scripts/bulkStatusUpdates/performUpdate.js +9 -9
  58. package/scripts/bulkStatusUpdates/performUpdateForGroup.cjs +12 -11
  59. package/scripts/bulkStatusUpdates/performUpdateForStatus.js +15 -15
  60. package/scripts/change/changeVideoAspectTo.js +3 -3
  61. package/scripts/change/setUseNewVersion.cjs +5 -4
  62. package/scripts/changeCommunityGroupcount.js +3 -3
  63. package/scripts/changeCommunityPostCount.js +3 -3
  64. package/scripts/changeGroupPostCount.js +3 -3
  65. package/scripts/changeLanguage.js +4 -4
  66. package/scripts/changeOfficalStatus.js +3 -3
  67. package/scripts/cleanups/deleteAnonNotifications.cjs +8 -7
  68. package/scripts/cleanups/deleteLinkGroupsWithDeletedCommunities.js +8 -8
  69. package/scripts/cleanups/deleteYearOldNotifications.cjs +6 -5
  70. package/scripts/cleanups/removeAllUsersFromHiddenPublicGroup.js +5 -5
  71. package/scripts/clearAllEndorsementInGroup.js +5 -5
  72. package/scripts/cloning/clearUsersForCommunitiesFromUrl.js +3 -3
  73. package/scripts/cloning/cloneFromUrlScript.js +4 -4
  74. package/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.js +6 -6
  75. package/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.js +6 -6
  76. package/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.js +6 -6
  77. package/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.js +3 -3
  78. package/scripts/cloning/copyCommunityOneGroupToDomainNoUsersNoEndorsements.js +2 -2
  79. package/scripts/cloning/copyCommunityToDomainNoUsersNoEndorsements.js +2 -2
  80. package/scripts/cloning/copyCommunityToDomainWithEverything.js +2 -2
  81. package/scripts/cloning/copyCommunityToDomainWithOnlyGroups.js +3 -3
  82. package/scripts/cloning/copyGroupConfigAndTranslationsFromURL.js +3 -3
  83. package/scripts/cloning/copyPostToGroupOld.js +12 -12
  84. package/scripts/cloning/copyPostVideosFromURL.js +3 -3
  85. package/scripts/cloning/copyPostWithOutAnyVotingOrActivities.js +2 -2
  86. package/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.js +7 -7
  87. package/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.js +6 -6
  88. package/scripts/cloning/setAdminsFromURL.js +5 -5
  89. package/scripts/cloning/setExternalIdsFromURL.js +3 -3
  90. package/scripts/countCommunity.js +11 -11
  91. package/scripts/countCommunityUsers.js +4 -4
  92. package/scripts/countDelayedNotifications.js +3 -3
  93. package/scripts/countGroup.js +11 -11
  94. package/scripts/countStuff.js +3 -3
  95. package/scripts/countUniqueVotersInAGroup.js +3 -3
  96. package/scripts/createInvitesAndShow.js +2 -2
  97. package/scripts/database/sync_database.js +2 -2
  98. package/scripts/database/sync_dev_database.js +3 -3
  99. package/scripts/debugNotifications.js +5 -5
  100. package/scripts/deleteAllNewsFeeds.js +2 -2
  101. package/scripts/deleteCategory.js +1 -1
  102. package/scripts/deleteOldAppActivities.js +5 -4
  103. package/scripts/deletePostContactDataForCommunity.js +5 -4
  104. package/scripts/destroy/destroy_all_but_one_domain.js +59 -59
  105. package/scripts/displayAuthorForPost.js +1 -1
  106. package/scripts/domains/createDomain.js +5 -4
  107. package/scripts/domains/importDomainsFromXls.js +7 -6
  108. package/scripts/endorsementFraudDetection/analyseEndorsementsForCommunity.js +2 -2
  109. package/scripts/endorsementFraudDetection/bulkDeleteDuplicateEndorsmentsFromUrl.js +9 -9
  110. package/scripts/exportAllStatusChanges.js +5 -5
  111. package/scripts/exportEndorsementsForCommunity.js +5 -5
  112. package/scripts/exportPointQualitiesForCommunity.js +5 -5
  113. package/scripts/exportPostsAndPointsForCommunity.js +9 -9
  114. package/scripts/exportPostsDataSetForDomain.js +12 -12
  115. package/scripts/exportPostsForGroup.js +7 -7
  116. package/scripts/exportRatingsForPost.js +2 -2
  117. package/scripts/exportUserEndorsementsWithUserAnalysis.js +6 -6
  118. package/scripts/exportUsersForCommunity.js +3 -3
  119. package/scripts/exportUsersForDomain.js +3 -3
  120. package/scripts/exportUsersForGroup.js +3 -3
  121. package/scripts/exports/ratingDistribution.js +6 -6
  122. package/scripts/exports/whoEndorsedWhatByCommunity.js +2 -2
  123. package/scripts/findUnusedClientImports.js +2 -2
  124. package/scripts/fixAllPostPointCounts.js +1 -1
  125. package/scripts/fixAnonNotificationsSettings.js +5 -5
  126. package/scripts/fixCountKopavogur.js +1 -1
  127. package/scripts/fixEndorsementsAfterCopyPostToGroup.js +10 -10
  128. package/scripts/fixExternalUserId.js +2 -2
  129. package/scripts/fixGroupAccess.js +3 -3
  130. package/scripts/fixGroupIdeasAndPointsCount.js +2 -2
  131. package/scripts/fixNotificationSettings.js +4 -4
  132. package/scripts/fixSurveyRadioBakedInSubCodes.js +6 -6
  133. package/scripts/fixWrongUserIdForStatusUpdates.js +6 -5
  134. package/scripts/gallery/exportGalleryData.js +2 -2
  135. package/scripts/gallery/importGalleryForCommunity.js +14 -14
  136. package/scripts/gallery/readJsonAndDownloadImagesVersion2.js +6 -6
  137. package/scripts/gallery/refreshAcApiPostIdsForCommunity.js +5 -5
  138. package/scripts/genderAnalysis.js +10 -10
  139. package/scripts/genderAnalysisByStatus.js +4 -4
  140. package/scripts/importAllLocalesFromLocalFolders.js +7 -7
  141. package/scripts/importDomain.js +131 -131
  142. package/scripts/keys/addOidcToDomain.cjs +10 -9
  143. package/scripts/landUseGame/export3Ddata.js +15 -15
  144. package/scripts/listLanguagesForGroup.js +6 -6
  145. package/scripts/loadTestCreateDummyContentForGroup.js +2 -2
  146. package/scripts/makeRecursiveMapData.js +4 -4
  147. package/scripts/mapping/community_map_csv.js +5 -5
  148. package/scripts/moveCommunityToDomain.js +3 -3
  149. package/scripts/moveGroupToCommunity.js +3 -3
  150. package/scripts/movePostToGroup.js +5 -5
  151. package/scripts/movePostsToGroupsRecountGroupFromUrl.js +6 -6
  152. package/scripts/oldMovePostToGroup.js +9 -9
  153. package/scripts/processCsvForPdfUrls.js +2 -2
  154. package/scripts/processCsvForTranslationAndToxicity.js +10 -10
  155. package/scripts/recount/recount_recursive_communities.js +6 -6
  156. package/scripts/recountALLCommunityGroupCounts.js +4 -4
  157. package/scripts/recountAll.js +3 -3
  158. package/scripts/recountCommunitesFromUrl.js +3 -3
  159. package/scripts/recountCommunity.js +2 -2
  160. package/scripts/recountGroup.js +5 -5
  161. package/scripts/recountGroupNoUserChange.js +5 -5
  162. package/scripts/resetAllEndorsementsForGroup.js +3 -3
  163. package/scripts/resetEnTranslationForGroup.js +5 -5
  164. package/scripts/setAdminOnAll.cjs +15 -14
  165. package/scripts/setDomainAdmin.cjs +7 -6
  166. package/scripts/setDomainLocales.js +2 -2
  167. package/scripts/setEarlQuestionIdOnGroup.cjs +5 -4
  168. package/scripts/setLanguageOnGroupCommunitesFromUrl.js +3 -3
  169. package/scripts/setMemberOfAll.js +14 -14
  170. package/scripts/setNewUserForContentOfCommunity.js +9 -9
  171. package/scripts/setOfficialStatusOnAllPostsForCommunity.js +1 -1
  172. package/scripts/setUserOnAll.js +14 -14
  173. package/scripts/showCategoryForGroup.js +1 -1
  174. package/scripts/showOldActivityTypes.js +3 -3
  175. package/scripts/showPostsMissingCategoryForGroup.js +2 -2
  176. package/scripts/showStatuses.js +4 -4
  177. package/scripts/showUniqueVotersInCommunity.js +4 -4
  178. package/scripts/showUserAgentsAndIpsForEmails.js +4 -4
  179. package/scripts/simpleExportForGroupsForCommunity.js +5 -5
  180. package/scripts/simpleExportForPointsForCommunity.js +5 -5
  181. package/scripts/simpleExportForPostsForCommunity.js +5 -5
  182. package/scripts/testForEndorsments.js +4 -4
  183. package/scripts/undeleteGroupAndAllContent.js +8 -8
  184. package/scripts/undeletePost.js +7 -7
  185. package/scripts/unlinkSsn.js +4 -4
  186. package/scripts/updateFromAlthingi.js +8 -8
  187. package/scripts/users/createUserAddDomain.js +6 -5
  188. package/scripts/users/importUsersForDomainsFromXls.js +4 -3
  189. package/scripts/users/listDomainUsersWithSsn.js +6 -5
  190. package/scripts/users/removeUserFromDomain.js +6 -5
  191. package/scripts/users/updatePasswordFromSsn.js +5 -4
  192. package/scripts/users/updateUserSsnFromEmail.js +5 -4
  193. package/services/controllers/activities.cjs +1 -1
  194. package/services/controllers/news_feeds.cjs +1 -1
  195. package/services/controllers/notifications.cjs +1 -1
  196. package/services/controllers/recommendations.cjs +1 -1
  197. package/services/engine/allOurIdeas/aiHelper.js +10 -9
  198. package/services/engine/analytics/export_anon_community_activities.js +3 -3
  199. package/services/engine/analytics/importer.js +10 -10
  200. package/services/engine/analytics/plausible/manager.cjs +4 -4
  201. package/services/engine/analytics/statsCalc.cjs +1 -1
  202. package/services/engine/analytics/utils.cjs +11 -10
  203. package/services/engine/marketing/campaign.cjs +1 -0
  204. package/services/engine/moderation/fraud/CreateFraudAuditReport.cjs +2 -1
  205. package/services/engine/moderation/fraud/FraudBase.cjs +3 -2
  206. package/services/engine/moderation/fraud/FraudDeleteBase.cjs +5 -4
  207. package/services/engine/moderation/fraud/FraudGetBase.cjs +2 -1
  208. package/services/engine/moderation/fraud/FraudGetEndorsements.cjs +2 -1
  209. package/services/engine/moderation/fraud/FraudGetPointQualities.cjs +2 -1
  210. package/services/engine/moderation/fraud/FraudGetPoints.cjs +2 -1
  211. package/services/engine/moderation/fraud/FraudGetPosts.cjs +2 -1
  212. package/services/engine/moderation/fraud/FraudGetRatings.cjs +2 -1
  213. package/services/engine/moderation/fraud/FraudScannerNotifier.cjs +10 -9
  214. package/services/engine/moderation/get_moderation_items.cjs +1 -1
  215. package/services/engine/moderation/image_labeling/ImageLabelingBase.cjs +1 -1
  216. package/services/engine/moderation/process_moderation_items.cjs +1 -1
  217. package/services/engine/moderation/toxicity_analysis.cjs +1 -1
  218. package/services/engine/news_feeds/generate_dynamically.cjs +1 -1
  219. package/services/engine/news_feeds/generate_from_notifications.cjs +1 -1
  220. package/services/engine/notifications/emails_utils.cjs +2 -2
  221. package/services/engine/notifications/generate_point_notifications.cjs +1 -1
  222. package/services/engine/notifications/generate_post_notifications.cjs +1 -1
  223. package/services/engine/notifications/process_delayed_notifications.cjs +38 -38
  224. package/services/engine/notifications/process_general_notifications.cjs +1 -0
  225. package/services/engine/old/exporters/categories_dataset.js +11 -11
  226. package/services/engine/old/exporters/sentiment_dataset.js +12 -12
  227. package/services/engine/recommendations/events_importer.cjs +5 -5
  228. package/services/engine/recommendations/events_manager.cjs +1 -1
  229. package/services/engine/reports/add_points_to_sheet.cjs +3 -2
  230. package/services/engine/reports/commonUtils.js +3 -2
  231. package/services/engine/reports/common_utils.cjs +8 -8
  232. package/services/engine/reports/docx_group_report.cjs +1 -1
  233. package/services/engine/reports/xlsAllOurIdeasExport.js +16 -15
  234. package/services/engine/reports/xls_community_users_report.cjs +2 -2
  235. package/services/engine/reports/xls_group_report.cjs +1 -1
  236. package/services/llms/baseChatBot.js +12 -11
  237. package/services/llms/imageGeneration/chatGptImageGenerator.js +3 -2
  238. package/services/llms/imageGeneration/collectionImageGenerator.js +7 -6
  239. package/services/llms/imageGeneration/dalleImageGenerator.js +6 -5
  240. package/services/llms/imageGeneration/fluxImageGenerator.js +5 -4
  241. package/services/llms/imageGeneration/imageProcessorService.js +2 -1
  242. package/services/llms/imageGeneration/imagenImageGenerator.js +8 -7
  243. package/services/llms/imageGeneration/s3Service.js +12 -11
  244. package/services/llms/llmTranslation.js +30 -29
  245. package/services/models/ac_activity.cjs +1 -1
  246. package/services/models/ac_notification.cjs +1 -1
  247. package/services/models/ac_translation_cache.cjs +11 -11
  248. package/services/scripts/analytics/setup_all_plausible_goals.cjs +3 -2
  249. package/services/scripts/fix_old_delayed_notifications.js +3 -3
  250. package/services/scripts/kue_status.js +11 -11
  251. package/services/scripts/kue_watch_stuck_jobs.js +6 -6
  252. package/services/scripts/translation_clear_language.js +21 -21
  253. package/services/scripts/translation_delete.js +4 -4
  254. package/services/scripts/translation_replace_text_from_url.js +4 -4
  255. package/services/scripts/translation_update.js +4 -4
  256. package/services/scripts/translations_list.js +5 -5
  257. package/services/utils/airbrake.cjs +2 -1
  258. package/services/utils/redisConnection.cjs +6 -5
  259. package/services/utils/translation_helpers.cjs +3 -2
  260. package/services/utils/updateAllLocalesFromEn.js +20 -19
  261. package/services/utils/updateLocaleFolders.js +7 -6
  262. package/services/workers/activity.cjs +1 -1
  263. package/services/workers/anonymizations.cjs +1 -1
  264. package/services/workers/bulk_status_update.cjs +2 -2
  265. package/services/workers/delayed_jobs.cjs +1 -1
  266. package/services/workers/deletions.cjs +1 -1
  267. package/services/workers/email.cjs +1 -1
  268. package/services/workers/fraud_management.cjs +3 -3
  269. package/services/workers/generativeAi.js +6 -5
  270. package/services/workers/main.cjs +1 -1
  271. package/services/workers/marketing.cjs +1 -1
  272. package/services/workers/moderation.cjs +1 -1
  273. package/services/workers/notification_delivery.cjs +1 -1
  274. package/services/workers/notification_news_feed.cjs +1 -1
  275. package/services/workers/queue.cjs +2 -2
  276. package/services/workers/recount.cjs +1 -1
  277. package/services/workers/reports.cjs +1 -1
  278. package/services/workers/similarities.cjs +4 -2
  279. package/services/workers/speech_to_text.cjs +1 -1
  280. package/utils/airbrake.cjs +2 -1
  281. package/utils/cjsCodeReview.js +7 -6
  282. package/utils/community_mapping_tools.cjs +3 -2
  283. package/utils/copy_utils.cjs +32 -31
  284. package/utils/export_utils.cjs +7 -7
  285. package/utils/generateDocumentation.js +10 -9
  286. package/utils/logger.cjs +2 -23
  287. package/utils/logger.d.cts +1 -1
  288. package/utils/loggerAirbrakeTransport.cjs +52 -0
  289. package/utils/loggerAirbrakeTransport.d.cts +15 -0
  290. package/utils/loggerAirbrakeTransportTs.d.ts +15 -0
  291. package/utils/loggerAirbrakeTransportTs.js +45 -0
  292. package/utils/loggerCore.cjs +29 -0
  293. package/utils/loggerCore.d.cts +2 -0
  294. package/utils/loggerCoreTs.d.ts +2 -0
  295. package/utils/loggerCoreTs.js +23 -0
  296. package/utils/loggerTs.d.ts +1 -2
  297. package/utils/loggerTs.js +2 -25
  298. package/utils/manifest_generator.cjs +1 -0
  299. package/utils/recount_utils.cjs +6 -5
  300. package/utils/seedModels.js +50 -49
  301. package/utils/sitemap_generator.cjs +4 -4
  302. package/utils/ypLanguages.js +2 -2
  303. package/webSockets.js +8 -7
  304. package/services/utils/logger.cjs +0 -25
  305. package/services/utils/logger.d.cts +0 -2
  306. package/src/agents/assistants/assistant.d.ts +0 -156
  307. package/src/controllers/audios.d.ts +0 -5
  308. package/src/controllers/categories.d.ts +0 -5
  309. package/src/controllers/communities.d.ts +0 -5
  310. package/src/controllers/domains.d.ts +0 -5
  311. package/src/controllers/groups.d.ts +0 -5
  312. package/src/controllers/images.d.ts +0 -5
  313. package/src/controllers/points.d.ts +0 -5
  314. package/src/controllers/posts.d.ts +0 -5
  315. package/src/controllers/ratings.d.ts +0 -5
  316. package/src/controllers/users.d.ts +0 -5
  317. package/src/controllers/videos.d.ts +0 -5
  318. package/src/models/index.d.ts +0 -84
  319. package/src/services/controllers/activities.d.ts +0 -5
  320. package/src/services/controllers/notifications.d.ts +0 -5
  321. package/src/utils/copy_utils.d.ts +0 -4
  322. package/src/utils/manifest_generator.d.ts +0 -18
@@ -1,4 +1,5 @@
1
1
  import { OpenAI } from "openai";
2
+ import log from "../../utils/loggerTs.js";
2
3
  const DEBUG = false;
3
4
  const url = process.env.REDIS_MEMORY_URL ||
4
5
  process.env.REDIS_URL ||
@@ -13,19 +14,19 @@ export class YpBaseChatBot {
13
14
  loadMemory() {
14
15
  return new Promise(async (resolve, reject) => {
15
16
  try {
16
- console.log("loadMemoryWithOwnership loadMemory: redisKey: ", this.redisKey);
17
+ log.info("loadMemoryWithOwnership loadMemory: redisKey: ", this.redisKey);
17
18
  const memoryString = await this.redis.get(this.redisKey);
18
19
  if (memoryString) {
19
20
  const memory = JSON.parse(memoryString);
20
21
  resolve(memory);
21
22
  }
22
23
  else {
23
- console.error("loadMemoryWithOwnership loadMemory: no memory found");
24
+ log.error("loadMemoryWithOwnership loadMemory: no memory found");
24
25
  resolve(undefined);
25
26
  }
26
27
  }
27
28
  catch (error) {
28
- console.error("loadMemoryWithOwnership loadMemory: Can't load memory from redis", error);
29
+ log.error("loadMemoryWithOwnership loadMemory: Can't load memory from redis", error);
29
30
  resolve(undefined);
30
31
  }
31
32
  });
@@ -40,9 +41,9 @@ export class YpBaseChatBot {
40
41
  this.wsClientId = wsClientId;
41
42
  this.wsClientSocket = wsClients.get(this.wsClientId);
42
43
  this.wsClients = wsClients;
43
- console.log(`WebSockets: BaseChatBot constructor for ${this.wsClientId}`);
44
+ log.info(`WebSockets: BaseChatBot constructor for ${this.wsClientId}`);
44
45
  if (!this.wsClientSocket) {
45
- console.error(`WebSockets: WS Client ${this.wsClientId} not found in streamWebSocketResponses`);
46
+ log.error(`WebSockets: WS Client ${this.wsClientId} not found in streamWebSocketResponses`);
46
47
  }
47
48
  this.openaiClient = new OpenAI({
48
49
  apiKey: process.env.OPENAI_API_KEY,
@@ -52,14 +53,14 @@ export class YpBaseChatBot {
52
53
  if (this.memory) {
53
54
  try {
54
55
  await this.redis.set(this.redisKey, JSON.stringify(this.memory));
55
- console.log(`Saved memory to redis: ${this.redisKey}`);
56
+ log.info(`Saved memory to redis: ${this.redisKey}`);
56
57
  }
57
58
  catch (error) {
58
- console.log("Can't save memory to redis", error);
59
+ log.info("Can't save memory to redis", error);
59
60
  }
60
61
  }
61
62
  else {
62
- console.error("Memory is not initialized");
63
+ log.error("Memory is not initialized");
63
64
  }
64
65
  }
65
66
  renderSystemPrompt() {
@@ -102,7 +103,7 @@ export class YpBaseChatBot {
102
103
  sendToClient(sender, message, type = "stream", uniqueToken = undefined, hiddenContextMessage = false) {
103
104
  try {
104
105
  if (process.env.WS_DEBUG) {
105
- console.log(`sendToClient: ${JSON.stringify({ sender, type, message, hiddenContextMessage }, null, 2)}`);
106
+ log.info(`sendToClient: ${JSON.stringify({ sender, type, message, hiddenContextMessage }, null, 2)}`);
106
107
  }
107
108
  this.wsClientSocket.send(JSON.stringify({
108
109
  sender,
@@ -116,7 +117,7 @@ export class YpBaseChatBot {
116
117
  this.lastSentToUserAt = new Date();
117
118
  }
118
119
  catch (error) {
119
- console.error("Can't send message to client", error);
120
+ log.error("Can't send message to client", error);
120
121
  }
121
122
  }
122
123
  async streamWebSocketResponses(stream) {
@@ -138,7 +139,7 @@ export class YpBaseChatBot {
138
139
  }
139
140
  }
140
141
  catch (error) {
141
- console.error(error);
142
+ log.error(error);
142
143
  this.sendToClient("assistant", "There has been an error, please retry", "error");
143
144
  reject();
144
145
  }
@@ -1,5 +1,6 @@
1
1
  // chatGptImageGenerator.ts
2
2
  import { OpenAI } from "openai";
3
+ import log from "../../../utils/loggerTs.js";
3
4
  export class ChatGptImageGenerator {
4
5
  constructor(openAiKey) {
5
6
  this.maxRetryCount = 3;
@@ -35,7 +36,7 @@ export class ChatGptImageGenerator {
35
36
  n: 1,
36
37
  size,
37
38
  });
38
- console.log("res", JSON.stringify(res, null, 2));
39
+ log.info("res", JSON.stringify(res, null, 2));
39
40
  const b64Json = res?.data?.[0]?.b64_json;
40
41
  if (b64Json) {
41
42
  // Assuming the image is a PNG, adjust if another format is expected
@@ -46,7 +47,7 @@ export class ChatGptImageGenerator {
46
47
  catch (err) {
47
48
  retryCount += 1;
48
49
  if (retryCount >= this.maxRetryCount) {
49
- console.error(`ChatGptImageGenerator failed after ${retryCount} attempts`, err);
50
+ log.error(`ChatGptImageGenerator failed after ${retryCount} attempts`, err);
50
51
  return undefined;
51
52
  }
52
53
  // Exponential back-off – starts at 5 s and grows +5 s each retry
@@ -6,6 +6,7 @@ import { FluxImageGenerator } from "./fluxImageGenerator.js";
6
6
  import { DalleImageGenerator } from "./dalleImageGenerator.js";
7
7
  import { ImageProcessorService } from "./imageProcessorService.js";
8
8
  import { S3Service } from "./s3Service.js";
9
+ import log from "../../../utils/loggerTs.js";
9
10
  // Suppose these come from your codebase
10
11
  import models from "../../../models/index.cjs";
11
12
  import { ImagenImageGenerator } from "./imagenImageGenerator.js";
@@ -46,19 +47,19 @@ export class CollectionImageGenerator {
46
47
  // Decide which generator to use
47
48
  if (this.imagenImageGenerator) {
48
49
  imageGenerator = this.imagenImageGenerator;
49
- console.info("Using ImagenImageGenerator");
50
+ log.info("Using ImagenImageGenerator");
50
51
  }
51
52
  else if (this.fluxImageGenerator) {
52
53
  imageGenerator = this.fluxImageGenerator;
53
- console.info("Using FluxImageGenerator");
54
+ log.info("Using FluxImageGenerator");
54
55
  }
55
56
  else if (process.env.USE_CHATGPT_IMAGE_GENERATOR) {
56
57
  imageGenerator = this.chatGptImageGenerator;
57
- console.info("Using ChatGptImageGenerator");
58
+ log.info("Using ChatGptImageGenerator");
58
59
  }
59
60
  else {
60
61
  imageGenerator = this.dalleImageGenerator;
61
- console.info("Using DalleImageGenerator");
62
+ log.info("Using DalleImageGenerator");
62
63
  }
63
64
  // 1) Generate image
64
65
  const imageUrl = await imageGenerator.generateImageUrl(workPackage.prompt, workPackage.imageType);
@@ -77,11 +78,11 @@ export class CollectionImageGenerator {
77
78
  }
78
79
  const imageBuffer = Buffer.from(base64Data, "base64");
79
80
  fs.writeFileSync(imageFilePath, imageBuffer);
80
- console.debug("Data URI written to file successfully.");
81
+ log.debug("Data URI written to file successfully.");
81
82
  }
82
83
  else {
83
84
  await this.imageProcessorService.downloadImage(imageUrl, imageFilePath, axios);
84
- console.debug(fs.existsSync(imageFilePath)
85
+ log.debug(fs.existsSync(imageFilePath)
85
86
  ? "File downloaded successfully."
86
87
  : "File download failed.");
87
88
  }
@@ -1,4 +1,5 @@
1
1
  import { AzureOpenAI, OpenAI } from "openai";
2
+ import log from "../../../utils/loggerTs.js";
2
3
  export class DalleImageGenerator {
3
4
  constructor(azureOpenaAiBase, azureOpenAiApiKey, azureDalleDeployment, openAiKey) {
4
5
  this.maxRetryCount = 3;
@@ -61,15 +62,15 @@ export class DalleImageGenerator {
61
62
  retrying = false;
62
63
  }
63
64
  else {
64
- console.debug("Result: NONE");
65
+ log.debug("Result: NONE");
65
66
  }
66
67
  }
67
68
  catch (error) {
68
- console.warn("Error generating image with DALL·E, retrying...");
69
- console.warn(error.stack);
69
+ log.warn("Error generating image with DALL·E, retrying...");
70
+ log.warn(error.stack);
70
71
  retryCount++;
71
72
  const sleepingFor = 5000 + retryCount * 10000;
72
- console.debug(`Sleeping for ${sleepingFor} milliseconds`);
73
+ log.debug(`Sleeping for ${sleepingFor} milliseconds`);
73
74
  await new Promise((resolve) => setTimeout(resolve, sleepingFor));
74
75
  }
75
76
  }
@@ -77,7 +78,7 @@ export class DalleImageGenerator {
77
78
  return result.data[0].url;
78
79
  }
79
80
  else {
80
- console.error(`Error generating image after ${retryCount} retries`);
81
+ log.error(`Error generating image after ${retryCount} retries`);
81
82
  return undefined;
82
83
  }
83
84
  }
@@ -1,4 +1,5 @@
1
1
  import Replicate from "replicate";
2
+ import log from "../../../utils/loggerTs.js";
2
3
  export class FluxImageGenerator {
3
4
  constructor(replicateApiKey, fluxProModelName) {
4
5
  this.replicateApiKey = replicateApiKey;
@@ -33,16 +34,16 @@ export class FluxImageGenerator {
33
34
  }
34
35
  }
35
36
  catch (error) {
36
- console.warn("Error generating image with Flux, retrying...");
37
- console.warn(error.stack);
37
+ log.warn("Error generating image with Flux, retrying...");
38
+ log.warn(error.stack);
38
39
  retryCount++;
39
40
  const sleepingFor = 5000 + retryCount * 10000;
40
- console.debug(`Sleeping for ${sleepingFor} milliseconds`);
41
+ log.debug(`Sleeping for ${sleepingFor} milliseconds`);
41
42
  await new Promise((resolve) => setTimeout(resolve, sleepingFor));
42
43
  }
43
44
  }
44
45
  if (!result) {
45
- console.error(`Error generating image after ${retryCount} retries`);
46
+ log.error(`Error generating image after ${retryCount} retries`);
46
47
  }
47
48
  return undefined;
48
49
  }
@@ -2,6 +2,7 @@ import fs from "fs";
2
2
  import path from "path";
3
3
  import sharp from "sharp";
4
4
  import { v4 as uuidv4 } from "uuid";
5
+ import log from "../../../utils/loggerTs.js";
5
6
  export class ImageProcessorService {
6
7
  constructor() {
7
8
  this.validFormats = ["jpeg", "png", "webp", "gif", "tiff", "avif", "svg"];
@@ -54,7 +55,7 @@ export class ImageProcessorService {
54
55
  return resizedImageFilePath;
55
56
  }
56
57
  catch (err) {
57
- console.error("Error resizing image:", err);
58
+ log.error("Error resizing image:", err);
58
59
  if (fs.existsSync(resizedImageFilePath)) {
59
60
  fs.unlinkSync(resizedImageFilePath);
60
61
  }
@@ -3,6 +3,7 @@ import path from "path";
3
3
  import { v4 as uuidv4 } from "uuid";
4
4
  import { PredictionServiceClient } from "@google-cloud/aiplatform";
5
5
  import { helpers } from "@google-cloud/aiplatform";
6
+ import log from "../../../utils/loggerTs.js";
6
7
  export class ImagenImageGenerator {
7
8
  constructor(s3Service) {
8
9
  this.s3Service = s3Service;
@@ -14,10 +15,10 @@ export class ImagenImageGenerator {
14
15
  this.endpoint = `projects/${this.projectId}/locations/${this.location}/publishers/google/models/imagen-3.0-generate-002`;
15
16
  this.s3Bucket = process.env.S3_BUCKET || "";
16
17
  if (!this.projectId) {
17
- console.warn("Warning: GOOGLE_CLOUD_PROJECT_ID is not set. Vertex AI calls may fail.");
18
+ log.warn("Warning: GOOGLE_CLOUD_PROJECT_ID is not set. Vertex AI calls may fail.");
18
19
  }
19
20
  if (!this.s3Bucket) {
20
- console.warn("Warning: S3_BUCKET is not set. Image upload may fail.");
21
+ log.warn("Warning: S3_BUCKET is not set. Image upload may fail.");
21
22
  }
22
23
  }
23
24
  /**
@@ -61,7 +62,7 @@ export class ImagenImageGenerator {
61
62
  const [response] = await predictionServiceClient.predict(request);
62
63
  const predictions = response.predictions;
63
64
  if (!predictions || predictions.length === 0) {
64
- console.warn("No image was generated. Check the request parameters and prompt.");
65
+ log.warn("No image was generated. Check the request parameters and prompt.");
65
66
  }
66
67
  else {
67
68
  // 4) Extract base64 data from the first prediction
@@ -87,19 +88,19 @@ export class ImagenImageGenerator {
87
88
  }
88
89
  }
89
90
  catch (error) {
90
- console.warn("Error generating image with Vertex AI Imagen. Will retry...");
91
- console.warn(error?.message || error);
91
+ log.warn("Error generating image with Vertex AI Imagen. Will retry...");
92
+ log.warn(error?.message || error);
92
93
  }
93
94
  // Retry logic
94
95
  if (!finalUrl) {
95
96
  retryCount++;
96
97
  const sleepingFor = 5000 + retryCount * 10000;
97
- console.debug(`Sleeping for ${sleepingFor} ms before retry #${retryCount}...`);
98
+ log.debug(`Sleeping for ${sleepingFor} ms before retry #${retryCount}...`);
98
99
  await new Promise((resolve) => setTimeout(resolve, sleepingFor));
99
100
  }
100
101
  }
101
102
  if (!finalUrl) {
102
- console.error(`Failed to generate Imagen after ${retryCount} retries.`);
103
+ log.error(`Failed to generate Imagen after ${retryCount} retries.`);
103
104
  return undefined;
104
105
  }
105
106
  return finalUrl;
@@ -1,6 +1,7 @@
1
1
  import AWS from "aws-sdk";
2
2
  import fs from "fs";
3
3
  import axios from "axios";
4
+ import log from "../../../utils/loggerTs.js";
4
5
  export class S3Service {
5
6
  constructor(cloudflareApiKey, cloudflareZoneId) {
6
7
  this.cloudflareApiKey = cloudflareApiKey;
@@ -38,17 +39,17 @@ export class S3Service {
38
39
  Key: key,
39
40
  ACL: "private",
40
41
  };
41
- console.log(`Disabling/Deleting Key from S3: ${JSON.stringify(params)}`);
42
+ log.info(`Disabling/Deleting Key from S3: ${JSON.stringify(params)}`);
42
43
  return new Promise((resolve, reject) => {
43
44
  s3.putObjectAcl(params, (err, data) => {
44
45
  if (err) {
45
- console.error(`Error deleting image from S3: ${err}`);
46
+ log.error(`Error deleting image from S3: ${err}`);
46
47
  reject(err);
47
48
  }
48
49
  else {
49
- console.log(`Deleted image from S3: ${imageUrl}`, data);
50
+ log.info(`Deleted image from S3: ${imageUrl}`, data);
50
51
  if (this.cloudflareApiKey && this.cloudflareZoneId) {
51
- console.log("Purging Cloudflare cache for image:", imageUrl);
52
+ log.info("Purging Cloudflare cache for image:", imageUrl);
52
53
  axios
53
54
  .post(`https://api.cloudflare.com/client/v4/zones/${this.cloudflareZoneId}/purge_cache`, { files: [imageUrl] }, {
54
55
  headers: {
@@ -57,20 +58,20 @@ export class S3Service {
57
58
  },
58
59
  })
59
60
  .then((response) => {
60
- console.log("Cloudflare cache purged:", response.data);
61
+ log.info("Cloudflare cache purged:", response.data);
61
62
  resolve(data);
62
63
  })
63
64
  .catch((error) => {
64
65
  if (error.response) {
65
- console.error("Error purging Cloudflare cache:", error.response.data);
66
- console.error("Status code:", error.response.status);
67
- console.error("Headers:", error.response.headers);
66
+ log.error("Error purging Cloudflare cache:", error.response.data);
67
+ log.error("Status code:", error.response.status);
68
+ log.error("Headers:", error.response.headers);
68
69
  }
69
70
  else if (error.request) {
70
- console.error("No response received:", error.request);
71
+ log.error("No response received:", error.request);
71
72
  }
72
73
  else {
73
- console.error("Error setting up request:", error.message);
74
+ log.error("Error setting up request:", error.message);
74
75
  }
75
76
  resolve(data);
76
77
  });
@@ -104,7 +105,7 @@ export class S3Service {
104
105
  async deleteMediaFormatsUrls(formats) {
105
106
  for (const url of formats) {
106
107
  await this.deleteS3Url(url);
107
- console.log(`Deleted image from S3: ${url}`);
108
+ log.info(`Deleted image from S3: ${url}`);
108
109
  }
109
110
  }
110
111
  }
@@ -2,6 +2,7 @@ import { jsonrepair } from "jsonrepair";
2
2
  import { OpenAI } from "openai";
3
3
  import { YpLanguages } from "../../utils/ypLanguages.js";
4
4
  import * as cheerio from "cheerio";
5
+ import log from "../../utils/loggerTs.js";
5
6
  export class YpLlmTranslation {
6
7
  constructor() {
7
8
  this.modelName = "gpt-4o";
@@ -246,7 +247,7 @@ export class YpLlmTranslation {
246
247
  const moderationResponse = await this.openaiClient.moderations.create({
247
248
  input: content,
248
249
  });
249
- console.log("Moderation response:", moderationResponse);
250
+ log.info("Moderation response:", moderationResponse);
250
251
  const flagged = moderationResponse.results[0].flagged;
251
252
  return flagged;
252
253
  }
@@ -254,7 +255,7 @@ export class YpLlmTranslation {
254
255
  try {
255
256
  const originalStrings = this.extractHtmlStrings(htmlToTranslate);
256
257
  if (originalStrings.length === 0) {
257
- console.warn("No HTML strings to translate");
258
+ log.warn("No HTML strings to translate");
258
259
  return htmlToTranslate;
259
260
  }
260
261
  const batchSize = 10;
@@ -266,7 +267,7 @@ export class YpLlmTranslation {
266
267
  translatedStrings.push(...translatedBatch);
267
268
  }
268
269
  else {
269
- console.error("Failed to translate batch:", batch);
270
+ log.error("Failed to translate batch:", batch);
270
271
  return undefined;
271
272
  }
272
273
  }
@@ -275,27 +276,27 @@ export class YpLlmTranslation {
275
276
  return translatedHtml;
276
277
  }
277
278
  catch (error) {
278
- console.error("Error in getHtmlTranslation:", error);
279
+ log.error("Error in getHtmlTranslation:", error);
279
280
  return undefined;
280
281
  }
281
282
  }
282
283
  async getOneTranslation(languageIsoCode, stringToTranslate) {
283
284
  try {
284
- console.log(`getOneTranslation: ${stringToTranslate} ${languageIsoCode}`);
285
+ log.info(`getOneTranslation: ${stringToTranslate} ${languageIsoCode}`);
285
286
  const languageName = YpLanguages.getEnglishName(languageIsoCode) || languageIsoCode;
286
287
  return (await this.callSimpleLlm(languageName, stringToTranslate, false, this.renderOneTranslationSystemMessage, this.renderOneTranslationUserMessage));
287
288
  }
288
289
  catch (error) {
289
- console.error("Error in getAnswerIdeas:", error);
290
+ log.error("Error in getAnswerIdeas:", error);
290
291
  return undefined;
291
292
  }
292
293
  }
293
294
  async getListTranslation(languageIsoCode, stringsToTranslate) {
294
295
  try {
295
- console.log(`getOneTranslation: ${languageIsoCode}`);
296
+ log.info(`getOneTranslation: ${languageIsoCode}`);
296
297
  const languageName = YpLanguages.getEnglishName(languageIsoCode) || languageIsoCode;
297
298
  if (await this.getModerationFlag(stringsToTranslate.join(" "))) {
298
- console.error("Flagged:", stringsToTranslate);
299
+ log.error("Flagged:", stringsToTranslate);
299
300
  return null;
300
301
  }
301
302
  else {
@@ -303,16 +304,16 @@ export class YpLlmTranslation {
303
304
  }
304
305
  }
305
306
  catch (error) {
306
- console.error("Error in getAnswerIdeas:", error);
307
+ log.error("Error in getAnswerIdeas:", error);
307
308
  return undefined;
308
309
  }
309
310
  }
310
311
  async getChoiceTranslation(languageIsoCode, answerContent, maxCharactersInTranslation = 140) {
311
312
  try {
312
- console.log(`async getChoiceTranslation: ${answerContent}`);
313
+ log.info(`async getChoiceTranslation: ${answerContent}`);
313
314
  const languageName = YpLanguages.getEnglishName(languageIsoCode) || languageIsoCode;
314
315
  if (await this.getModerationFlag(answerContent)) {
315
- console.error("Flagged:", answerContent);
316
+ log.error("Flagged:", answerContent);
316
317
  return null;
317
318
  }
318
319
  else {
@@ -326,16 +327,16 @@ export class YpLlmTranslation {
326
327
  }
327
328
  }
328
329
  catch (error) {
329
- console.error("Error in getAnswerIdeas:", error);
330
+ log.error("Error in getAnswerIdeas:", error);
330
331
  return undefined;
331
332
  }
332
333
  }
333
334
  async getQuestionTranslation(languageIsoCode, question, maxCharactersInTranslation = 300) {
334
335
  try {
335
- console.log(`getQuestionTranslation: ${question} ${languageIsoCode}`);
336
+ log.info(`getQuestionTranslation: ${question} ${languageIsoCode}`);
336
337
  const languageName = YpLanguages.getEnglishName(languageIsoCode) || languageIsoCode;
337
338
  if (await this.getModerationFlag(question)) {
338
- console.error("Flagged:", question);
339
+ log.error("Flagged:", question);
339
340
  return null;
340
341
  }
341
342
  else {
@@ -349,7 +350,7 @@ export class YpLlmTranslation {
349
350
  }
350
351
  }
351
352
  catch (error) {
352
- console.error("Error in getAnswerIdeas:", error);
353
+ log.error("Error in getAnswerIdeas:", error);
353
354
  return undefined;
354
355
  }
355
356
  }
@@ -369,16 +370,16 @@ export class YpLlmTranslation {
369
370
  let running = true;
370
371
  while (running) {
371
372
  try {
372
- console.log(`Messages ${retries}:`, messages);
373
+ log.info(`Messages ${retries}:`, messages);
373
374
  const results = await this.openaiClient.chat.completions.create({
374
375
  model: this.modelName,
375
376
  messages,
376
377
  max_tokens: this.maxTokens,
377
378
  temperature: this.temperature,
378
379
  });
379
- console.log("Results:", results);
380
+ log.info("Results:", results);
380
381
  let llmOutput = results.choices[0].message.content;
381
- console.log("Return text:", llmOutput);
382
+ log.info("Return text:", llmOutput);
382
383
  if (parseJson) {
383
384
  if (llmOutput) {
384
385
  llmOutput = llmOutput.replace(/```json/g, "");
@@ -386,7 +387,7 @@ export class YpLlmTranslation {
386
387
  return JSON.parse(jsonrepair(llmOutput));
387
388
  }
388
389
  {
389
- console.error("No content in response");
390
+ log.error("No content in response");
390
391
  return undefined;
391
392
  }
392
393
  }
@@ -395,7 +396,7 @@ export class YpLlmTranslation {
395
396
  }
396
397
  }
397
398
  catch (error) {
398
- console.error("Error in getChoiceTranslation:", error);
399
+ log.error("Error in getChoiceTranslation:", error);
399
400
  retries++;
400
401
  if (retries > maxRetries) {
401
402
  running = false;
@@ -405,7 +406,7 @@ export class YpLlmTranslation {
405
406
  }
406
407
  }
407
408
  async callSchemaLlm(jsonInSchema, jsonOutSchema, lengthInfo, languageName, question, toTranslate, maxCharactersInTranslation, systemRenderer, userRenderer) {
408
- console.log("Call schema LLM:", jsonInSchema, jsonOutSchema, lengthInfo, languageName, question, toTranslate, maxCharactersInTranslation);
409
+ log.info("Call schema LLM:", jsonInSchema, jsonOutSchema, lengthInfo, languageName, question, toTranslate, maxCharactersInTranslation);
409
410
  const messages = [
410
411
  {
411
412
  role: "system",
@@ -421,16 +422,16 @@ export class YpLlmTranslation {
421
422
  let running = true;
422
423
  while (running) {
423
424
  try {
424
- console.log(`Messages ${retries}:`, messages);
425
+ log.info(`Messages ${retries}:`, messages);
425
426
  const results = await this.openaiClient.chat.completions.create({
426
427
  model: this.modelName,
427
428
  messages,
428
429
  max_tokens: this.maxTokens,
429
430
  temperature: this.temperature,
430
431
  });
431
- console.log("Results:", results);
432
+ log.info("Results:", results);
432
433
  let textJson = results.choices[0].message.content;
433
- console.log("Text JSON:", textJson);
434
+ log.info("Text JSON:", textJson);
434
435
  if (textJson) {
435
436
  textJson = textJson.replace(/```json/g, "");
436
437
  textJson = textJson.replace(/```/g, "");
@@ -439,28 +440,28 @@ export class YpLlmTranslation {
439
440
  if (maxCharactersInTranslation &&
440
441
  translationData.translatedContent.length >
441
442
  maxCharactersInTranslation) {
442
- console.log("Translation too long retrying:", translationData.translatedContent);
443
+ log.info("Translation too long retrying:", translationData.translatedContent);
443
444
  messages[0].content = this.renderSchemaTryAgainSystemMessage(jsonInSchema, jsonOutSchema, lengthInfo, translationData.translatedContent);
444
445
  throw new Error("Translation too long");
445
446
  }
446
447
  running = false;
447
- console.log("Return text " + translationData.translatedContent);
448
+ log.info("Return text " + translationData.translatedContent);
448
449
  return translationData.translatedContent;
449
450
  }
450
451
  else {
451
452
  this.temperature = Math.random() * 0.99;
452
- console.log("No content in response. Temperature set to: " + this.temperature);
453
+ log.info("No content in response. Temperature set to: " + this.temperature);
453
454
  throw new Error("No content in response");
454
455
  }
455
456
  }
456
457
  else {
457
458
  this.temperature = Math.random() * 0.99;
458
- console.log("No content in response. Temperature set to:" + this.temperature);
459
+ log.info("No content in response. Temperature set to:" + this.temperature);
459
460
  throw new Error("No content in response");
460
461
  }
461
462
  }
462
463
  catch (error) {
463
- console.error("Error in callSchemaLlm:", error);
464
+ log.error("Error in callSchemaLlm:", error);
464
465
  retries++;
465
466
  if (retries > maxRetries) {
466
467
  running = false;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const log = require('../utils/logger.cjs');
2
+ const log = require('../../utils/logger.cjs');
3
3
  const queue = require('../workers/queue.cjs');
4
4
  const toJson = require('../utils/to_json.cjs');
5
5
  const commonIndexForActivitiesAndNewsFeeds = require('../engine/news_feeds/activity_and_item_index_definitions.cjs').commonIndexForActivitiesAndNewsFeeds;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const async = require("async");
3
- const log = require('../utils/logger.cjs');
3
+ const log = require('../../utils/logger.cjs');
4
4
  const toJson = require('../utils/to_json.cjs');
5
5
  const _ = require('lodash');
6
6
  const queue = require('../workers/queue.cjs');