@yrpri/api 9.0.103 → 9.0.105

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 (422) hide show
  1. package/package.json +1 -2
  2. package/dist/active-citizen/controllers/activities.cjs +0 -174
  3. package/dist/active-citizen/controllers/news_feeds.cjs +0 -96
  4. package/dist/active-citizen/controllers/notifications.cjs +0 -243
  5. package/dist/active-citizen/controllers/recommendations.cjs +0 -280
  6. package/dist/active-citizen/engine/allOurIdeas/aiHelper.js +0 -204
  7. package/dist/active-citizen/engine/allOurIdeas/explainAnswersAssistant.js +0 -66
  8. package/dist/active-citizen/engine/allOurIdeas/iconGenerator.js +0 -38
  9. package/dist/active-citizen/engine/analytics/export_anon_community_activities.js +0 -334
  10. package/dist/active-citizen/engine/analytics/importer.js +0 -308
  11. package/dist/active-citizen/engine/analytics/manager.cjs +0 -377
  12. package/dist/active-citizen/engine/analytics/plausible/manager.cjs +0 -500
  13. package/dist/active-citizen/engine/analytics/statsCalc.cjs +0 -194
  14. package/dist/active-citizen/engine/analytics/utils.cjs +0 -369
  15. package/dist/active-citizen/engine/marketing/campaign.cjs +0 -90
  16. package/dist/active-citizen/engine/moderation/fraud/CreateFraudAuditReport.cjs +0 -313
  17. package/dist/active-citizen/engine/moderation/fraud/FraudBase.cjs +0 -239
  18. package/dist/active-citizen/engine/moderation/fraud/FraudDeleteBase.cjs +0 -211
  19. package/dist/active-citizen/engine/moderation/fraud/FraudDeleteEndorsements.cjs +0 -120
  20. package/dist/active-citizen/engine/moderation/fraud/FraudDeletePointQualities.cjs +0 -114
  21. package/dist/active-citizen/engine/moderation/fraud/FraudDeletePoints.cjs +0 -101
  22. package/dist/active-citizen/engine/moderation/fraud/FraudDeletePosts.cjs +0 -84
  23. package/dist/active-citizen/engine/moderation/fraud/FraudDeleteRatings.cjs +0 -15
  24. package/dist/active-citizen/engine/moderation/fraud/FraudGetBase.cjs +0 -133
  25. package/dist/active-citizen/engine/moderation/fraud/FraudGetEndorsements.cjs +0 -185
  26. package/dist/active-citizen/engine/moderation/fraud/FraudGetPointQualities.cjs +0 -184
  27. package/dist/active-citizen/engine/moderation/fraud/FraudGetPoints.cjs +0 -170
  28. package/dist/active-citizen/engine/moderation/fraud/FraudGetPosts.cjs +0 -109
  29. package/dist/active-citizen/engine/moderation/fraud/FraudGetRatings.cjs +0 -140
  30. package/dist/active-citizen/engine/moderation/fraud/FraudScannerNotifier.cjs +0 -279
  31. package/dist/active-citizen/engine/moderation/get_moderation_items.cjs +0 -386
  32. package/dist/active-citizen/engine/moderation/image_labeling/CommunityLabeling.cjs +0 -49
  33. package/dist/active-citizen/engine/moderation/image_labeling/GroupLabeling.cjs +0 -68
  34. package/dist/active-citizen/engine/moderation/image_labeling/ImageLabelingBase.cjs +0 -288
  35. package/dist/active-citizen/engine/moderation/image_labeling/PointLabeling.cjs +0 -33
  36. package/dist/active-citizen/engine/moderation/image_labeling/PostLabeling.cjs +0 -56
  37. package/dist/active-citizen/engine/moderation/perspective_api_client.cjs +0 -106
  38. package/dist/active-citizen/engine/moderation/process_moderation_items.cjs +0 -344
  39. package/dist/active-citizen/engine/moderation/toxicity_analysis.cjs +0 -810
  40. package/dist/active-citizen/engine/news_feeds/activity_and_item_index_definitions.cjs +0 -15
  41. package/dist/active-citizen/engine/news_feeds/generate_dynamically.cjs +0 -362
  42. package/dist/active-citizen/engine/news_feeds/generate_from_notifications.cjs +0 -268
  43. package/dist/active-citizen/engine/news_feeds/news_feeds_utils.cjs +0 -439
  44. package/dist/active-citizen/engine/notifications/emails_utils.cjs +0 -569
  45. package/dist/active-citizen/engine/notifications/generate_point_notifications.cjs +0 -233
  46. package/dist/active-citizen/engine/notifications/generate_post_notifications.cjs +0 -118
  47. package/dist/active-citizen/engine/notifications/generate_post_status_change_notifications.cjs +0 -41
  48. package/dist/active-citizen/engine/notifications/notifications_utils.cjs +0 -148
  49. package/dist/active-citizen/engine/notifications/point_delivery.cjs +0 -54
  50. package/dist/active-citizen/engine/notifications/post_delivery.cjs +0 -31
  51. package/dist/active-citizen/engine/notifications/process_delayed_notifications.cjs +0 -471
  52. package/dist/active-citizen/engine/notifications/process_general_notifications.cjs +0 -212
  53. package/dist/active-citizen/engine/old/exporters/categories_dataset.js +0 -153
  54. package/dist/active-citizen/engine/old/exporters/dataset_tools.js +0 -80
  55. package/dist/active-citizen/engine/old/exporters/sentiment_dataset.js +0 -157
  56. package/dist/active-citizen/engine/recommendations/events_importer.cjs +0 -139
  57. package/dist/active-citizen/engine/recommendations/events_manager.cjs +0 -212
  58. package/dist/active-citizen/engine/reports/add_points_to_sheet.cjs +0 -83
  59. package/dist/active-citizen/engine/reports/commonUtils.js +0 -75
  60. package/dist/active-citizen/engine/reports/common_utils.cjs +0 -740
  61. package/dist/active-citizen/engine/reports/docx_group_report.cjs +0 -596
  62. package/dist/active-citizen/engine/reports/xlsAllOurIdeasExport.js +0 -232
  63. package/dist/active-citizen/engine/reports/xls_community_users_report.cjs +0 -277
  64. package/dist/active-citizen/engine/reports/xls_group_report.cjs +0 -718
  65. package/dist/active-citizen/llms/baseChatBot.js +0 -183
  66. package/dist/active-citizen/llms/imageGeneration/chatGptImageGenerator.js +0 -56
  67. package/dist/active-citizen/llms/imageGeneration/collectionImageGenerator.js +0 -109
  68. package/dist/active-citizen/llms/imageGeneration/dalleImageGenerator.js +0 -84
  69. package/dist/active-citizen/llms/imageGeneration/fluxImageGenerator.js +0 -49
  70. package/dist/active-citizen/llms/imageGeneration/iImageGenerator.js +0 -1
  71. package/dist/active-citizen/llms/imageGeneration/imageProcessorService.js +0 -64
  72. package/dist/active-citizen/llms/imageGeneration/imagenImageGenerator.js +0 -107
  73. package/dist/active-citizen/llms/imageGeneration/s3Service.js +0 -110
  74. package/dist/active-citizen/llms/llmTranslation.js +0 -472
  75. package/dist/active-citizen/models/ac_activity.cjs +0 -216
  76. package/dist/active-citizen/models/ac_background_job.cjs +0 -109
  77. package/dist/active-citizen/models/ac_campaign.cjs +0 -97
  78. package/dist/active-citizen/models/ac_client_activity.cjs +0 -23
  79. package/dist/active-citizen/models/ac_delayed_notification.cjs +0 -43
  80. package/dist/active-citizen/models/ac_following.cjs +0 -43
  81. package/dist/active-citizen/models/ac_list.cjs +0 -68
  82. package/dist/active-citizen/models/ac_list_users.cjs +0 -19
  83. package/dist/active-citizen/models/ac_mute.cjs +0 -27
  84. package/dist/active-citizen/models/ac_news_feed_item.cjs +0 -57
  85. package/dist/active-citizen/models/ac_news_feed_processed_range.cjs +0 -59
  86. package/dist/active-citizen/models/ac_notification.cjs +0 -292
  87. package/dist/active-citizen/models/ac_translation_cache.cjs +0 -750
  88. package/dist/active-citizen/models/ac_watching.cjs +0 -31
  89. package/dist/active-citizen/scripts/analytics/setup_all_plausible_goals.cjs +0 -13
  90. package/dist/active-citizen/scripts/fix_old_delayed_notifications.js +0 -63
  91. package/dist/active-citizen/scripts/kue_status.js +0 -31
  92. package/dist/active-citizen/scripts/kue_watch_stuck_jobs.js +0 -24
  93. package/dist/active-citizen/scripts/translation_clear_language.js +0 -117
  94. package/dist/active-citizen/scripts/translation_delete.js +0 -27
  95. package/dist/active-citizen/scripts/translation_replace_text_from_url.js +0 -180
  96. package/dist/active-citizen/scripts/translation_update.js +0 -28
  97. package/dist/active-citizen/scripts/translations_list.js +0 -27
  98. package/dist/active-citizen/utils/airbrake.cjs +0 -17
  99. package/dist/active-citizen/utils/get_anonymous_system_user.cjs +0 -21
  100. package/dist/active-citizen/utils/i18n.cjs +0 -3
  101. package/dist/active-citizen/utils/logger.cjs +0 -25
  102. package/dist/active-citizen/utils/redisConnection.cjs +0 -29
  103. package/dist/active-citizen/utils/to_json.cjs +0 -9
  104. package/dist/active-citizen/utils/translation_cloning.cjs +0 -171
  105. package/dist/active-citizen/utils/translation_helpers.cjs +0 -534
  106. package/dist/active-citizen/utils/truncate_text.cjs +0 -21
  107. package/dist/active-citizen/utils/updateAllLocalesFromEn.js +0 -253
  108. package/dist/active-citizen/utils/updateLocaleFolders.js +0 -34
  109. package/dist/active-citizen/workers/activity.cjs +0 -189
  110. package/dist/active-citizen/workers/anonymizations.cjs +0 -734
  111. package/dist/active-citizen/workers/bulk_status_update.cjs +0 -458
  112. package/dist/active-citizen/workers/delayed_jobs.cjs +0 -244
  113. package/dist/active-citizen/workers/deletions.cjs +0 -1911
  114. package/dist/active-citizen/workers/email.cjs +0 -9
  115. package/dist/active-citizen/workers/fraud_management.cjs +0 -109
  116. package/dist/active-citizen/workers/generativeAi.js +0 -56
  117. package/dist/active-citizen/workers/main.cjs +0 -89
  118. package/dist/active-citizen/workers/marketing.cjs +0 -25
  119. package/dist/active-citizen/workers/moderation.cjs +0 -73
  120. package/dist/active-citizen/workers/notification_delivery.cjs +0 -368
  121. package/dist/active-citizen/workers/notification_news_feed.cjs +0 -142
  122. package/dist/active-citizen/workers/queue.cjs +0 -99
  123. package/dist/active-citizen/workers/recount.cjs +0 -74
  124. package/dist/active-citizen/workers/reports.cjs +0 -42
  125. package/dist/active-citizen/workers/similarities.cjs +0 -21
  126. package/dist/active-citizen/workers/speech_to_text.cjs +0 -482
  127. package/dist/agents/assistants/agentAssistant.js +0 -88
  128. package/dist/agents/assistants/baseAssistant.js +0 -888
  129. package/dist/agents/assistants/baseAssistantWithVoice.js +0 -150
  130. package/dist/agents/assistants/modes/agentDirectConnection.js +0 -84
  131. package/dist/agents/assistants/modes/agentSelectionMode.js +0 -44
  132. package/dist/agents/assistants/modes/baseAssistantMode.js +0 -54
  133. package/dist/agents/assistants/modes/tools/agentTools.js +0 -447
  134. package/dist/agents/assistants/modes/tools/baseTools.js +0 -58
  135. package/dist/agents/assistants/modes/tools/loginTools.js +0 -156
  136. package/dist/agents/assistants/modes/tools/models/agents.js +0 -146
  137. package/dist/agents/assistants/modes/tools/models/subscriptions.js +0 -332
  138. package/dist/agents/assistants/modes/tools/models/users.js +0 -11
  139. package/dist/agents/assistants/modes/tools/navigationTools.js +0 -166
  140. package/dist/agents/assistants/modes/tools/subscriptionTools.js +0 -323
  141. package/dist/agents/assistants/modes/tools/workflowConverstationTools.js +0 -112
  142. package/dist/agents/assistants/voiceAssistant.js +0 -619
  143. package/dist/agents/controllers/agentProductController.js +0 -103
  144. package/dist/agents/controllers/agentSubscriptionController.js +0 -261
  145. package/dist/agents/controllers/assistantsController.js +0 -511
  146. package/dist/agents/controllers/policySynthAgents.js +0 -395
  147. package/dist/agents/managers/agentProductManager.js +0 -91
  148. package/dist/agents/managers/emailInvitesManager.js +0 -55
  149. package/dist/agents/managers/emailTemplateRenderer.js +0 -362
  150. package/dist/agents/managers/newAiModelSetup.js +0 -650
  151. package/dist/agents/managers/notificationAgentQueueManager.js +0 -510
  152. package/dist/agents/managers/subscriptionManager.js +0 -535
  153. package/dist/agents/managers/workflowConversationManager.js +0 -79
  154. package/dist/agents/models/agentProduct.js +0 -116
  155. package/dist/agents/models/agentProductBoosterPurchase.js +0 -58
  156. package/dist/agents/models/agentProductBundle.js +0 -68
  157. package/dist/agents/models/agentProductRun.js +0 -52
  158. package/dist/agents/models/discount.js +0 -88
  159. package/dist/agents/models/subscription.js +0 -79
  160. package/dist/agents/models/subscriptionPlan.js +0 -46
  161. package/dist/agents/models/subscriptionUser.js +0 -27
  162. package/dist/agents/models/testData/createEvolyAgentProduct.js +0 -477
  163. package/dist/agents/models/testData/old/updateAgentWorkflowConfiguration.js +0 -230
  164. package/dist/agents/models/testData/setupEvolyAgentProductConfig.js +0 -233
  165. package/dist/agents/models/testData/updateAgentWorkflowConfiguration.js +0 -230
  166. package/dist/agents/models/workflowConversation.js +0 -53
  167. package/dist/agents/tools/setTemplateWorkflowCommunityId.js +0 -46
  168. package/dist/app.js +0 -943
  169. package/dist/authorization.cjs +0 -1860
  170. package/dist/bot_control.js +0 -1930
  171. package/dist/config/config.cjs +0 -14
  172. package/dist/config/config.js +0 -14
  173. package/dist/controllers/allOurIdeas.js +0 -696
  174. package/dist/controllers/audios.cjs +0 -100
  175. package/dist/controllers/bulkStatusUpdates.cjs +0 -202
  176. package/dist/controllers/categories.cjs +0 -199
  177. package/dist/controllers/communities.cjs +0 -2996
  178. package/dist/controllers/domains.cjs +0 -1341
  179. package/dist/controllers/externalIds.cjs +0 -223
  180. package/dist/controllers/groups.cjs +0 -4309
  181. package/dist/controllers/images.cjs +0 -499
  182. package/dist/controllers/index.cjs +0 -449
  183. package/dist/controllers/legacyPages.cjs +0 -35
  184. package/dist/controllers/legacyPosts.cjs +0 -56
  185. package/dist/controllers/legacyUsers.cjs +0 -36
  186. package/dist/controllers/nonSpa.cjs +0 -574
  187. package/dist/controllers/organizations.cjs +0 -250
  188. package/dist/controllers/points.cjs +0 -1137
  189. package/dist/controllers/posts.cjs +0 -2036
  190. package/dist/controllers/ratings.cjs +0 -234
  191. package/dist/controllers/users.cjs +0 -2255
  192. package/dist/controllers/videos.cjs +0 -226
  193. package/dist/deleteUnwantedDeclerations.cjs +0 -55
  194. package/dist/migrations/agentAuditLogs.cjs +0 -46
  195. package/dist/migrations/agentClasses.cjs +0 -60
  196. package/dist/migrations/agentConnectorClasses.cjs +0 -61
  197. package/dist/migrations/agentConnectors.cjs +0 -50
  198. package/dist/migrations/agentEvals.cjs +0 -45
  199. package/dist/migrations/agentRegistries.cjs +0 -40
  200. package/dist/migrations/agents.cjs +0 -54
  201. package/dist/migrations/aiModels.cjs +0 -49
  202. package/dist/migrations/apiUsage.cjs +0 -47
  203. package/dist/migrations/apis.cjs +0 -49
  204. package/dist/migrations/groupPrivateData.cjs +0 -30
  205. package/dist/migrations/modelUsage.cjs +0 -60
  206. package/dist/migrations/oldMigrations/2019/20181030020612-AddActivitiesIndex.js +0 -23
  207. package/dist/migrations/oldMigrations/2019/20181102210612-AddFirstVideoFeatures.js +0 -360
  208. package/dist/migrations/oldMigrations/2019/20181212210612-ModerationFeatures.js +0 -29
  209. package/dist/migrations/oldMigrations/2019/2019010610612-CommunityFolders.js +0 -43
  210. package/dist/migrations/oldMigrations/2019/20190117020612-AddMissingIndexes.js +0 -24
  211. package/dist/migrations/oldMigrations/2019/20190117020612-RemoveUnusedIndexes.js +0 -29
  212. package/dist/migrations/oldMigrations/2019/20190127020612-RemoveUnusedIndexesPartThree.js +0 -22
  213. package/dist/migrations/oldMigrations/2019/20190127020612-RemoveUnusedIndexesPartTwo.js +0 -23
  214. package/dist/migrations/oldMigrations/2019/20190223020612-AddPrivateProfileDataToUsers.js +0 -18
  215. package/dist/migrations/oldMigrations/2019/20190706210612-AddCustomRatings.js +0 -43
  216. package/dist/migrations/oldMigrations/2019/20190829210612-AddGeneralStore.js +0 -36
  217. package/dist/migrations/oldMigrations/2019/20192811210612-AddAcClientActivities.js +0 -41
  218. package/dist/migrations/oldMigrations/2020/20190527020612-WorkOnIndexes.js +0 -88
  219. package/dist/migrations/oldMigrations/2020/20200409020612-AddBackgroundJob.js +0 -33
  220. package/dist/migrations/oldMigrations/2020/20200716210612-AddDataToCollections.js +0 -38
  221. package/dist/migrations/oldMigrations/2022/20220215100612-AddDataToEndorsements.js +0 -19
  222. package/dist/migrations/oldMigrations/2022/20220220100612-AddDataForFraudDetection.js +0 -19
  223. package/dist/migrations/oldMigrations/2022/20220903100612-AddPromotionFeatures.js +0 -127
  224. package/dist/migrations/oldMigrations/2022/onHold/20200527020612-AddCampaigns.js +0 -68
  225. package/dist/migrations/oldMigrations/2024/20241304175112-AddMediaSupportForHtmlGroups.cjs +0 -63
  226. package/dist/migrations/oldMigrations/older/20160511172514-AddNotificationFeatures.js +0 -14
  227. package/dist/migrations/oldMigrations/older/20161030020612-AddBulkStatusUpdate.js +0 -71
  228. package/dist/migrations/oldMigrations/older/20170514035258-add-metadata-to-invites.js +0 -12
  229. package/dist/migrations/oldMigrations/older/20180216020612-AddTranslationCaches.js +0 -46
  230. package/dist/migrations/oldMigrations/older/20180218210612-AddTranslationAndLanguages.js +0 -46
  231. package/dist/migrations/privateAccessStore.cjs +0 -55
  232. package/dist/migrations/zzz_associations.cjs +0 -154
  233. package/dist/migrations/zzzz_createUsersAndAdminsForClasses.cjs +0 -100
  234. package/dist/migrations/zzzzz_create_agent_runs.cjs +0 -606
  235. package/dist/migrations/zzzzzz_create_agent_runs_fix.cjs +0 -11
  236. package/dist/migrations/zzzzzzz_create_trees.cjs +0 -81
  237. package/dist/models/audio.cjs +0 -430
  238. package/dist/models/bulk_status_update.cjs +0 -58
  239. package/dist/models/campaign.cjs +0 -78
  240. package/dist/models/category.cjs +0 -94
  241. package/dist/models/community.cjs +0 -337
  242. package/dist/models/domain.cjs +0 -486
  243. package/dist/models/endorsement.cjs +0 -39
  244. package/dist/models/general_data_store.cjs +0 -20
  245. package/dist/models/group.cjs +0 -728
  246. package/dist/models/image.cjs +0 -579
  247. package/dist/models/index.cjs +0 -186
  248. package/dist/models/invite.cjs +0 -48
  249. package/dist/models/iso_country.cjs +0 -16
  250. package/dist/models/organization.cjs +0 -122
  251. package/dist/models/page.cjs +0 -273
  252. package/dist/models/point.cjs +0 -622
  253. package/dist/models/point_quality.cjs +0 -39
  254. package/dist/models/point_revision.cjs +0 -47
  255. package/dist/models/post.cjs +0 -680
  256. package/dist/models/post_revision.cjs +0 -38
  257. package/dist/models/post_status_change.cjs +0 -35
  258. package/dist/models/promotion.cjs +0 -34
  259. package/dist/models/rating.cjs +0 -51
  260. package/dist/models/relationship.cjs +0 -19
  261. package/dist/models/request_to_join.cjs +0 -20
  262. package/dist/models/user.cjs +0 -604
  263. package/dist/models/user_legacy_password.cjs +0 -13
  264. package/dist/models/video.cjs +0 -1137
  265. package/dist/publish.js +0 -40
  266. package/dist/repack.js +0 -53
  267. package/dist/scripts/addRatingUsersToGroup.js +0 -51
  268. package/dist/scripts/addUserToOrganization.js +0 -71
  269. package/dist/scripts/analyseRatingsForCommunity.js +0 -150
  270. package/dist/scripts/analyzeAndFixBrokenPointUsers.js +0 -28
  271. package/dist/scripts/analyzeEndorsementsByCountry.js +0 -70
  272. package/dist/scripts/analyzePostsForCommunity.js +0 -185
  273. package/dist/scripts/bulkStatusUpdates/listUpdates.js +0 -14
  274. package/dist/scripts/bulkStatusUpdates/mergeLatestPostsToUpdate.js +0 -110
  275. package/dist/scripts/bulkStatusUpdates/performUpdate.js +0 -116
  276. package/dist/scripts/bulkStatusUpdates/performUpdateForGroup.cjs +0 -124
  277. package/dist/scripts/bulkStatusUpdates/performUpdateForStatus.js +0 -141
  278. package/dist/scripts/change/changeVideoAspectTo.js +0 -34
  279. package/dist/scripts/change/setUseNewVersion.cjs +0 -22
  280. package/dist/scripts/changeCommunityGroupcount.js +0 -30
  281. package/dist/scripts/changeCommunityPostCount.js +0 -30
  282. package/dist/scripts/changeGroupPostCount.js +0 -30
  283. package/dist/scripts/changeLanguage.js +0 -50
  284. package/dist/scripts/changeOfficalStatus.js +0 -30
  285. package/dist/scripts/cleanups/deleteAnonNotifications.cjs +0 -91
  286. package/dist/scripts/cleanups/deleteLinkGroupsWithDeletedCommunities.js +0 -62
  287. package/dist/scripts/cleanups/deleteYearOldNotifications.cjs +0 -72
  288. package/dist/scripts/cleanups/removeAllUsersFromHiddenPublicGroup.js +0 -43
  289. package/dist/scripts/clearAllEndorsementInGroup.js +0 -50
  290. package/dist/scripts/cloning/clearUsersForCommunitiesFromUrl.js +0 -129
  291. package/dist/scripts/cloning/cloneFromUrlScript.js +0 -65
  292. package/dist/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.js +0 -140
  293. package/dist/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.js +0 -140
  294. package/dist/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.js +0 -131
  295. package/dist/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.js +0 -173
  296. package/dist/scripts/cloning/copyCommunityOneGroupToDomainNoUsersNoEndorsements.js +0 -18
  297. package/dist/scripts/cloning/copyCommunityToDomainNoUsersNoEndorsements.js +0 -17
  298. package/dist/scripts/cloning/copyCommunityToDomainWithEverything.js +0 -17
  299. package/dist/scripts/cloning/copyCommunityToDomainWithOnlyGroups.js +0 -26
  300. package/dist/scripts/cloning/copyGroupConfigAndTranslationsFromURL.js +0 -205
  301. package/dist/scripts/cloning/copyPostToGroupOld.js +0 -397
  302. package/dist/scripts/cloning/copyPostVideosFromURL.js +0 -236
  303. package/dist/scripts/cloning/copyPostWithOutAnyVotingOrActivities.js +0 -17
  304. package/dist/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.js +0 -131
  305. package/dist/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.js +0 -139
  306. package/dist/scripts/cloning/setAdminsFromURL.js +0 -161
  307. package/dist/scripts/cloning/setExternalIdsFromURL.js +0 -129
  308. package/dist/scripts/countCommunity.js +0 -291
  309. package/dist/scripts/countCommunityUsers.js +0 -152
  310. package/dist/scripts/countDelayedNotifications.js +0 -18
  311. package/dist/scripts/countGroup.js +0 -246
  312. package/dist/scripts/countStuff.js +0 -67
  313. package/dist/scripts/countUniqueVotersInAGroup.js +0 -48
  314. package/dist/scripts/createInvitesAndShow.js +0 -75
  315. package/dist/scripts/database/sync_database.js +0 -14
  316. package/dist/scripts/database/sync_dev_database.js +0 -17
  317. package/dist/scripts/debugNotifications.js +0 -58
  318. package/dist/scripts/deleteAllNewsFeeds.js +0 -10
  319. package/dist/scripts/deleteCategory.js +0 -13
  320. package/dist/scripts/deleteOldAppActivities.js +0 -40
  321. package/dist/scripts/deletePostContactDataForCommunity.js +0 -53
  322. package/dist/scripts/destroy/destroy_all_but_one_domain.js +0 -1026
  323. package/dist/scripts/displayAuthorForPost.js +0 -16
  324. package/dist/scripts/endorsementFraudDetection/analyseEndorsementsForCommunity.js +0 -183
  325. package/dist/scripts/endorsementFraudDetection/bulkDeleteDuplicateEndorsmentsFromUrl.js +0 -208
  326. package/dist/scripts/exportAllStatusChanges.js +0 -36
  327. package/dist/scripts/exportClientAcitivity.js +0 -36
  328. package/dist/scripts/exportEndorsementsForCommunity.js +0 -79
  329. package/dist/scripts/exportPointQualitiesForCommunity.js +0 -84
  330. package/dist/scripts/exportPostsAndPointsForCommunity.js +0 -147
  331. package/dist/scripts/exportPostsDataSetForDomain.js +0 -244
  332. package/dist/scripts/exportPostsForGroup.js +0 -173
  333. package/dist/scripts/exportRatingsForPost.js +0 -15
  334. package/dist/scripts/exportUserEndorsementsWithUserAnalysis.js +0 -123
  335. package/dist/scripts/exportUsersForCommunity.js +0 -24
  336. package/dist/scripts/exportUsersForDomain.js +0 -24
  337. package/dist/scripts/exportUsersForGroup.js +0 -24
  338. package/dist/scripts/exports/ratingDistribution.js +0 -71
  339. package/dist/scripts/exports/whoEndorsedWhatByCommunity.js +0 -56
  340. package/dist/scripts/findUnusedClientImports.js +0 -56
  341. package/dist/scripts/fixAllPostPointCounts.js +0 -22
  342. package/dist/scripts/fixAnonNotificationsSettings.js +0 -48
  343. package/dist/scripts/fixCountKopavogur.js +0 -9
  344. package/dist/scripts/fixEndorsementsAfterCopyPostToGroup.js +0 -190
  345. package/dist/scripts/fixExternalUserId.js +0 -24
  346. package/dist/scripts/fixGroupAccess.js +0 -16
  347. package/dist/scripts/fixGroupIdeasAndPointsCount.js +0 -49
  348. package/dist/scripts/fixNotificationSettings.js +0 -39
  349. package/dist/scripts/fixSurveyRadioBakedInSubCodes.js +0 -64
  350. package/dist/scripts/fixWrongUserIdForStatusUpdates.js +0 -49
  351. package/dist/scripts/gallery/exportGalleryData.js +0 -40
  352. package/dist/scripts/gallery/importGalleryForCommunity.js +0 -168
  353. package/dist/scripts/gallery/readJsonAndDownloadImagesVersion2.js +0 -55
  354. package/dist/scripts/gallery/refreshAcApiPostIdsForCommunity.js +0 -58
  355. package/dist/scripts/genderAnalysis.js +0 -63
  356. package/dist/scripts/genderAnalysisByStatus.js +0 -62
  357. package/dist/scripts/importAllLocalesFromLocalFolders.js +0 -55
  358. package/dist/scripts/importDomain.js +0 -1652
  359. package/dist/scripts/keys/addOidcToDomain.cjs +0 -61
  360. package/dist/scripts/landUseGame/export3Ddata.js +0 -162
  361. package/dist/scripts/listLanguagesForGroup.js +0 -54
  362. package/dist/scripts/loadTestCreateDummyContentForGroup.js +0 -27
  363. package/dist/scripts/makeRecursiveMapData.js +0 -103
  364. package/dist/scripts/mapping/community_map_csv.js +0 -145
  365. package/dist/scripts/moveCommunityToDomain.js +0 -22
  366. package/dist/scripts/moveGroupToCommunity.js +0 -23
  367. package/dist/scripts/movePostToGroup.js +0 -101
  368. package/dist/scripts/movePostsToGroupsRecountGroupFromUrl.js +0 -297
  369. package/dist/scripts/oldMovePostToGroup.js +0 -153
  370. package/dist/scripts/processCsvForPdfUrls.js +0 -37
  371. package/dist/scripts/processCsvForTranslationAndToxicity.js +0 -125
  372. package/dist/scripts/recount/recount_recursive_communities.js +0 -125
  373. package/dist/scripts/recountALLCommunityGroupCounts.js +0 -37
  374. package/dist/scripts/recountAll.js +0 -97
  375. package/dist/scripts/recountCommunitesFromUrl.js +0 -58
  376. package/dist/scripts/recountCommunity.js +0 -19
  377. package/dist/scripts/recountGroup.js +0 -218
  378. package/dist/scripts/recountGroupNoUserChange.js +0 -219
  379. package/dist/scripts/resetAllEndorsementsForGroup.js +0 -57
  380. package/dist/scripts/resetEnTranslationForGroup.js +0 -45
  381. package/dist/scripts/setAdminOnAll.cjs +0 -107
  382. package/dist/scripts/setDomainAdmin.cjs +0 -43
  383. package/dist/scripts/setDomainLocales.js +0 -33
  384. package/dist/scripts/setEarlQuestionIdOnGroup.cjs +0 -29
  385. package/dist/scripts/setLanguageOnGroupCommunitesFromUrl.js +0 -86
  386. package/dist/scripts/setMemberOfAll.js +0 -101
  387. package/dist/scripts/setNewUserForContentOfCommunity.js +0 -189
  388. package/dist/scripts/setOfficialStatusOnAllPostsForCommunity.js +0 -35
  389. package/dist/scripts/setUserOnAll.js +0 -101
  390. package/dist/scripts/showCategoryForGroup.js +0 -18
  391. package/dist/scripts/showOldActivityTypes.js +0 -14
  392. package/dist/scripts/showPostsMissingCategoryForGroup.js +0 -17
  393. package/dist/scripts/showStatuses.js +0 -17
  394. package/dist/scripts/showUniqueVotersInCommunity.js +0 -61
  395. package/dist/scripts/showUserAgentsAndIpsForEmails.js +0 -66
  396. package/dist/scripts/simpleExportForGroupsForCommunity.js +0 -46
  397. package/dist/scripts/simpleExportForPointsForCommunity.js +0 -82
  398. package/dist/scripts/simpleExportForPostsForCommunity.js +0 -61
  399. package/dist/scripts/testForEndorsments.js +0 -21
  400. package/dist/scripts/undeleteGroupAndAllContent.js +0 -151
  401. package/dist/scripts/undeletePost.js +0 -135
  402. package/dist/scripts/unlinkSsn.js +0 -23
  403. package/dist/scripts/updateFromAlthingi.js +0 -303
  404. package/dist/server.js +0 -3
  405. package/dist/utils/airbrake.cjs +0 -17
  406. package/dist/utils/cjsCodeReview.js +0 -99
  407. package/dist/utils/community_mapping_tools.cjs +0 -124
  408. package/dist/utils/copy_utils.cjs +0 -1399
  409. package/dist/utils/docx_utils.cjs +0 -464
  410. package/dist/utils/export_utils.cjs +0 -491
  411. package/dist/utils/i18n.cjs +0 -17
  412. package/dist/utils/is_valid_db_id.cjs +0 -28
  413. package/dist/utils/logger.cjs +0 -25
  414. package/dist/utils/loggerTs.js +0 -26
  415. package/dist/utils/manifest_generator.cjs +0 -104
  416. package/dist/utils/parse_domain.cjs +0 -16
  417. package/dist/utils/recount_utils.cjs +0 -415
  418. package/dist/utils/sharing_parameters.cjs +0 -111
  419. package/dist/utils/sitemap_generator.cjs +0 -286
  420. package/dist/utils/to_json.cjs +0 -14
  421. package/dist/utils/ypLanguages.js +0 -747
  422. package/dist/webSockets.js +0 -77
@@ -1,535 +0,0 @@
1
- // SubscriptionManager.ts
2
- import { YpSubscriptionPlan } from "../models/subscriptionPlan.js";
3
- import { YpSubscription } from "../models/subscription.js";
4
- import { YpAgentProduct } from "../models/agentProduct.js";
5
- import { YpAgentProductRun } from "../models/agentProductRun.js";
6
- import { sequelize } from "@policysynth/agents/dbModels/sequelize.js";
7
- import { copyCommunity } from "../../utils/copy_utils.cjs";
8
- import Stripe from "stripe";
9
- import { YpAgentProductBundle } from "../models/agentProductBundle.js";
10
- import { PsAgentConnector } from "@policysynth/agents/dbModels/agentConnector.js";
11
- import { PsAgent } from "@policysynth/agents/dbModels/agent.js";
12
- import { PsAgentClass, PsAiModel } from "@policysynth/agents/dbModels/index.js";
13
- import { NotificationAgentQueueManager } from "./notificationAgentQueueManager.js";
14
- import models from "../../models/index.cjs";
15
- const dbModels = models;
16
- const YpGroup = dbModels.Group;
17
- export class SubscriptionManager {
18
- constructor() {
19
- // Initialize if necessary
20
- }
21
- // Get available subscription plans
22
- async getPlans() {
23
- try {
24
- const plans = await YpSubscriptionPlan.findAll({
25
- attributes: {
26
- exclude: ["created_at", "updated_at"],
27
- },
28
- include: [
29
- {
30
- model: YpAgentProduct,
31
- as: "AgentProduct",
32
- attributes: {
33
- exclude: ["created_at", "updated_at"],
34
- },
35
- include: [
36
- {
37
- model: YpAgentProductBundle,
38
- as: "AgentBundles",
39
- attributes: {
40
- exclude: ["created_at", "updated_at"],
41
- },
42
- },
43
- ],
44
- },
45
- ],
46
- });
47
- return plans;
48
- }
49
- catch (error) {
50
- throw new Error(`Error fetching subscription plans: ${error.message}`);
51
- }
52
- }
53
- async cloneCommunityTemplate(communityTemplateId, toDomainId) {
54
- console.log("cloneCommunityTemplate", communityTemplateId, toDomainId);
55
- return new Promise((resolve, reject) => {
56
- copyCommunity(communityTemplateId, toDomainId, {
57
- copyGroups: true,
58
- copyPosts: false,
59
- copyPoints: false,
60
- skipUsers: true,
61
- recountGroupPosts: true,
62
- skipEndorsementQualitiesAndRatings: true,
63
- resetEndorsementCounters: true,
64
- skipActivities: true,
65
- }, null, (error, newCommunity) => {
66
- if (error) {
67
- reject(error);
68
- }
69
- else {
70
- resolve(newCommunity);
71
- }
72
- });
73
- });
74
- }
75
- async cloneCommunityWorkflowTemplate(agentProduct, domainId, currentUser) {
76
- console.log("cloneCommunityWorkflowTemplate", agentProduct, domainId);
77
- let newCommunity = await this.cloneCommunityTemplate(agentProduct.configuration.templateWorkflowCommunityId, domainId);
78
- console.log("newCommunity", newCommunity);
79
- const groups = await YpGroup.findAll({
80
- where: {
81
- community_id: newCommunity.id
82
- }
83
- });
84
- console.log("groups", groups);
85
- // Find the workflow group
86
- const workflowGroup = groups.find((group) => group.configuration.groupType == 3);
87
- if (!workflowGroup) {
88
- throw new Error("Workflow group not found");
89
- }
90
- // Get the top level agent ID from the workflow group configuration
91
- const topLevelAgentId = workflowGroup.configuration.agents?.topLevelAgentId;
92
- if (!topLevelAgentId) {
93
- throw new Error("Top level agent ID not found in workflow group configuration");
94
- }
95
- const dbModels = models;
96
- const UserModel = dbModels.User; // Ensure you're using the same User model from dbModels
97
- const userInstance = await UserModel.findByPk(currentUser.id);
98
- if (!userInstance) {
99
- throw new Error("User not found");
100
- }
101
- const hasCommunityUser = await newCommunity.hasCommunityUsers(userInstance);
102
- if (!hasCommunityUser) {
103
- await newCommunity.addCommunityUsers(userInstance);
104
- console.log("Added current user as community user", userInstance.id);
105
- }
106
- else {
107
- console.log("Community already has the user as user", userInstance.id);
108
- }
109
- for (const group of groups) {
110
- const hasGroupAdmin = await group.hasGroupAdmins(userInstance);
111
- if (!hasGroupAdmin) {
112
- await group.addGroupAdmins(userInstance);
113
- console.log("Added current user as group admin", userInstance.id);
114
- }
115
- else {
116
- console.log("Group already has the user as admin", userInstance.id);
117
- }
118
- const hasGroupUser = await group.hasGroupUsers(userInstance);
119
- if (!hasGroupUser) {
120
- await group.addGroupUsers(userInstance);
121
- console.log("Added current user as group user", userInstance.id);
122
- }
123
- else {
124
- console.log("Group already has the user as user", userInstance.id);
125
- }
126
- }
127
- // Create a map of old group IDs to new group IDs
128
- const groupIdMap = newCommunity.groupMapping;
129
- console.log("groupIdMap", groupIdMap);
130
- // Get the original top level agent and all its sub-agents
131
- const originalTopLevelAgent = await PsAgent.findByPk(topLevelAgentId, {
132
- include: [
133
- {
134
- model: PsAgentClass,
135
- as: "Class",
136
- attributes: {
137
- exclude: ["created_at", "updated_at"],
138
- },
139
- },
140
- {
141
- model: PsAgent,
142
- as: "SubAgents",
143
- include: [
144
- {
145
- model: PsAgentClass,
146
- as: "Class",
147
- attributes: {
148
- exclude: ["created_at", "updated_at"],
149
- },
150
- },
151
- {
152
- model: PsAiModel,
153
- as: "AiModels",
154
- },
155
- {
156
- model: PsAgentConnector,
157
- as: "InputConnectors",
158
- },
159
- {
160
- model: PsAgentConnector,
161
- as: "OutputConnectors",
162
- },
163
- ],
164
- },
165
- ],
166
- });
167
- if (!originalTopLevelAgent) {
168
- throw new Error("Original top level agent not found");
169
- }
170
- // Create a map to store agentClassUuid to new agent ID mappings
171
- const agentUuidMap = new Map();
172
- const { uuid, user_id, class_id, configuration } = originalTopLevelAgent;
173
- // Clone the top level agent and store its mapping
174
- const clonedTopLevelAgent = await PsAgent.create({
175
- user_id,
176
- class_id,
177
- configuration,
178
- group_id: workflowGroup.id,
179
- parent_agent_id: undefined
180
- });
181
- console.log("clonedTopLevelAgent", clonedTopLevelAgent);
182
- if (originalTopLevelAgent.Class?.class_base_id) {
183
- console.log("Setting agentUuidMap", originalTopLevelAgent.Class.class_base_id, clonedTopLevelAgent.id);
184
- agentUuidMap.set(originalTopLevelAgent.Class.class_base_id, clonedTopLevelAgent.id);
185
- }
186
- const agentInputConnectorGroupsIds = new Map();
187
- const agentOutputConnectorGroupsIds = new Map();
188
- // Clone sub-agents and their connectors
189
- for (const subAgent of originalTopLevelAgent.SubAgents ?? []) {
190
- const { uuid, user_id, class_id, configuration } = subAgent;
191
- const clonedSubAgent = await PsAgent.create({
192
- user_id,
193
- class_id,
194
- configuration,
195
- group_id: workflowGroup.id,
196
- parent_agent_id: clonedTopLevelAgent.id,
197
- });
198
- // Store the mapping of agentClassUuid to new agent ID
199
- if (subAgent.Class?.class_base_id) {
200
- agentUuidMap.set(subAgent.Class.class_base_id, clonedSubAgent.id);
201
- }
202
- console.log("agentUuidMap", agentUuidMap);
203
- const subAgentAiModels = await subAgent.getAiModels();
204
- if (subAgentAiModels && subAgentAiModels.length > 0) {
205
- await clonedSubAgent.setAiModels(subAgentAiModels);
206
- }
207
- // Clone input connectors and update group IDs
208
- for (const connector of (subAgent.InputConnectors ??
209
- [])) {
210
- const connectorConfig = { ...connector.configuration };
211
- console.log("connectorConfig", connectorConfig);
212
- // Update the group ID if it exists in the map
213
- if (connectorConfig.groupId &&
214
- groupIdMap.has(connectorConfig.groupId)) {
215
- connectorConfig.groupId = groupIdMap.get(connectorConfig.groupId);
216
- agentInputConnectorGroupsIds.set(clonedSubAgent.id, connectorConfig.groupId);
217
- }
218
- const { user_id, group_id, configuration, class_id } = connector;
219
- const clonedConnector = await PsAgentConnector.create({
220
- user_id: clonedSubAgent.user_id,
221
- group_id: workflowGroup.id,
222
- class_id,
223
- configuration: connectorConfig,
224
- });
225
- await sequelize.models.AgentInputConnectors.create({
226
- agent_id: clonedSubAgent.id,
227
- connector_id: clonedConnector.id,
228
- });
229
- }
230
- // Clone output connectors and update group IDs
231
- for (const connector of (subAgent.OutputConnectors ??
232
- [])) {
233
- const connectorConfig = { ...connector.configuration };
234
- console.log("connectorConfig", connectorConfig);
235
- // Update the group ID if it exists in the map
236
- if (connectorConfig.groupId &&
237
- groupIdMap.has(connectorConfig.groupId)) {
238
- connectorConfig.groupId = groupIdMap.get(connectorConfig.groupId);
239
- agentOutputConnectorGroupsIds.set(clonedSubAgent.id, connectorConfig.groupId);
240
- }
241
- const { user_id, group_id, configuration, class_id } = connector;
242
- const clonedConnector = await PsAgentConnector.create({
243
- user_id: clonedSubAgent.user_id,
244
- group_id: workflowGroup.id,
245
- class_id,
246
- configuration: connectorConfig,
247
- });
248
- await sequelize.models.AgentOutputConnectors.create({
249
- agent_id: clonedSubAgent.id,
250
- connector_id: clonedConnector.id,
251
- });
252
- }
253
- }
254
- // Update the workflow group configuration
255
- workflowGroup.configuration.agents.topLevelAgentId = clonedTopLevelAgent.id;
256
- console.log(`Set top level agent id to ${clonedTopLevelAgent.id} for workflow group ${workflowGroup.id}`);
257
- workflowGroup.changed('configuration', true);
258
- await workflowGroup.save();
259
- if (agentProduct.configuration.structuredAnswersOverride) {
260
- for (const override of agentProduct.configuration
261
- .structuredAnswersOverride) {
262
- // Apply overrides to all agents in the workflow
263
- for (const agent of [
264
- ...(originalTopLevelAgent.SubAgents ?? []),
265
- originalTopLevelAgent,
266
- ]) {
267
- console.log("update answers for agent", agent);
268
- if (agent.configuration?.answers) {
269
- const answerIndex = agent.configuration.answers.findIndex((a) => a.uniqueId === override.uniqueId);
270
- if (answerIndex !== -1) {
271
- console.log("update answers for agent", agent.configuration.answers[answerIndex], override);
272
- agent.configuration.answers[answerIndex] = {
273
- ...agent.configuration.answers[answerIndex],
274
- ...override,
275
- };
276
- }
277
- }
278
- }
279
- }
280
- }
281
- // Update workflow steps with new agent IDs
282
- const updatedWorkflow = { ...agentProduct.configuration.workflow };
283
- updatedWorkflow.steps = agentProduct.configuration.workflow.steps.map((step) => {
284
- const newStep = { ...step };
285
- if (step.agentClassUuid && agentUuidMap.has(step.agentClassUuid)) {
286
- newStep.agentId = agentUuidMap.get(step.agentClassUuid);
287
- }
288
- else if (step.agentClassUuid) {
289
- console.error("agentClassUuid not found in agentUuidMap", step.agentClassUuid);
290
- }
291
- if (newStep.type === "engagmentFromInputConnector" && newStep.agentId) {
292
- newStep.groupId = agentInputConnectorGroupsIds.get(newStep.agentId);
293
- }
294
- else if (newStep.type === "engagmentFromOutputConnector" && newStep.agentId) {
295
- newStep.groupId = agentOutputConnectorGroupsIds.get(newStep.agentId);
296
- }
297
- return newStep;
298
- });
299
- updatedWorkflow.workflowGroupId = workflowGroup.id;
300
- console.log("updatedWorkflow", updatedWorkflow);
301
- return {
302
- workflow: updatedWorkflow,
303
- requiredQuestions: agentProduct.configuration.requiredStructuredQuestions,
304
- };
305
- }
306
- // Create subscriptions for a user
307
- async createSubscriptions(userId, planIds, paymentMethodId) {
308
- try {
309
- let totalAmount = 0;
310
- const currency = "usd";
311
- // Calculate total amount to charge
312
- for (let i = 0; i < planIds.length; i++) {
313
- const plan = await YpSubscriptionPlan.findByPk(planIds[i]);
314
- if (!plan) {
315
- throw new Error(`Subscription plan with ID ${planIds[i]} not found`);
316
- }
317
- totalAmount += Number(plan.configuration.amount) * 100;
318
- }
319
- // If total amount is 0, return early indicating free subscription
320
- if (totalAmount === 0) {
321
- return { freeSubscription: true };
322
- }
323
- const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, {
324
- apiVersion: "2025-01-27.acacia",
325
- });
326
- // Create a PaymentIntent with Stripe
327
- const paymentIntent = await stripe.paymentIntents.create({
328
- amount: totalAmount,
329
- currency: currency,
330
- payment_method: paymentMethodId ?? undefined,
331
- confirmation_method: "manual",
332
- confirm: false,
333
- payment_method_types: ["card"],
334
- description: "Subscription Purchase",
335
- metadata: {
336
- userId: userId.toString(),
337
- planIds: planIds.join(","),
338
- },
339
- });
340
- // Return the client secret for frontend confirmation
341
- return {
342
- clientSecret: paymentIntent.client_secret,
343
- subscriptionId: paymentIntent.id,
344
- };
345
- }
346
- catch (error) {
347
- if (error instanceof Stripe.errors.StripeCardError) {
348
- throw new Error(`Payment failed: ${error.message}`);
349
- }
350
- else if (error instanceof Stripe.errors.StripeInvalidRequestError) {
351
- throw new Error(`Invalid payment request: ${error.message}`);
352
- }
353
- else {
354
- throw new Error(`Error creating subscriptions: ${error.message}`);
355
- }
356
- }
357
- }
358
- // Add a new method to handle successful payments
359
- async handleSuccessfulPayment(paymentIntentId) {
360
- try {
361
- const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, {
362
- apiVersion: "2025-01-27.acacia",
363
- });
364
- const paymentIntent = await stripe.paymentIntents.retrieve(paymentIntentId);
365
- if (paymentIntent.status !== "succeeded") {
366
- throw new Error("Payment not successful");
367
- }
368
- const userId = Number(paymentIntent.metadata.userId);
369
- const agentProductIds = paymentIntent.metadata.agentProductIds
370
- .split(",")
371
- .map(Number);
372
- const planIds = paymentIntent.metadata.planIds.split(",").map(Number);
373
- const subscriptions = [];
374
- // Create subscriptions after successful payment
375
- for (let i = 0; i < agentProductIds.length; i++) {
376
- const nextBillingDate = await this.calculateNextBillingDate(planIds[i]);
377
- const subscription = await YpSubscription.create({
378
- user_id: userId,
379
- agent_product_id: agentProductIds[i],
380
- subscription_plan_id: planIds[i],
381
- start_date: new Date(),
382
- next_billing_date: nextBillingDate,
383
- status: "active",
384
- payment_method: "stripe",
385
- transaction_id: paymentIntentId,
386
- });
387
- subscriptions.push(subscription);
388
- }
389
- return subscriptions;
390
- }
391
- catch (error) {
392
- throw new Error(`Error processing successful payment: ${error.message}`);
393
- }
394
- }
395
- // Start an agent run
396
- async startAgentRun(subscriptionId, wsClients, wsClientId, currentUser) {
397
- try {
398
- // Check if the subscription is active
399
- const subscription = await YpSubscription.findByPk(subscriptionId, {
400
- attributes: {
401
- exclude: ["created_at", "updated_at"],
402
- },
403
- include: [
404
- {
405
- model: YpSubscriptionPlan,
406
- as: "Plan",
407
- attributes: {
408
- exclude: ["created_at", "updated_at"],
409
- },
410
- },
411
- {
412
- model: YpAgentProduct,
413
- as: "AgentProduct",
414
- attributes: {
415
- exclude: ["created_at", "updated_at"],
416
- },
417
- },
418
- ],
419
- });
420
- if (!subscription || subscription.status !== "active") {
421
- throw new Error("Subscription is not active");
422
- }
423
- // Check runs limit
424
- //TODO: Activate this again !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
425
- //await this.checkRunsLimit(subscription);
426
- const workflowAndRequiredQuestions = await this.cloneCommunityWorkflowTemplate(subscription.AgentProduct, subscription.domain_id, currentUser);
427
- // Create a new agent product run
428
- const agentRun = await YpAgentProductRun.create({
429
- subscription_id: subscription.id,
430
- start_time: new Date(),
431
- workflow: workflowAndRequiredQuestions.workflow,
432
- status: "ready",
433
- });
434
- // Update runs used
435
- await this.incrementRunsUsed(subscription);
436
- return { agentRun, subscription };
437
- }
438
- catch (error) {
439
- throw new Error(`Error starting agent run: ${error.message}`);
440
- }
441
- }
442
- async startFirstAgent(agentProductRun, wsClients, wsClientId) {
443
- const workflow = agentProductRun.workflow;
444
- if (!workflow) {
445
- throw new Error("Workflow not found");
446
- }
447
- const firstStep = workflow.steps[0];
448
- const agentId = firstStep.agentId;
449
- if (!agentId) {
450
- throw new Error("Agent ID not found in the first step");
451
- }
452
- const agentQueueManager = new NotificationAgentQueueManager(wsClients);
453
- try {
454
- const success = await agentQueueManager.startAgentProcessingWithWsClient(agentId, agentProductRun.id, wsClientId);
455
- if (success) {
456
- return true;
457
- }
458
- else {
459
- return false;
460
- }
461
- }
462
- catch (error) {
463
- console.error("Error starting agent processing:", error);
464
- return false;
465
- }
466
- }
467
- // Stop an agent run
468
- async stopAgentRun(agentProductRunId) {
469
- try {
470
- const agentProductRun = await YpAgentProductRun.findByPk(agentProductRunId);
471
- if (!agentProductRun || agentProductRun.status !== "running") {
472
- throw new Error("Agent run is not running");
473
- }
474
- agentProductRun.end_time = new Date();
475
- agentProductRun.status = "completed";
476
- agentProductRun.duration = Math.floor((agentProductRun.end_time.getTime() -
477
- agentProductRun.start_time.getTime()) /
478
- 1000); // Duration in seconds
479
- await agentProductRun.save();
480
- }
481
- catch (error) {
482
- throw new Error(`Error stopping agent run: ${error.message}`);
483
- }
484
- }
485
- // Additional helper methods
486
- async calculateNextBillingDate(planId) {
487
- const plan = await YpSubscriptionPlan.findByPk(planId);
488
- if (!plan) {
489
- throw new Error("Subscription plan not found");
490
- }
491
- const nextBillingDate = new Date();
492
- switch (plan.configuration.billing_cycle) {
493
- case "monthly":
494
- nextBillingDate.setMonth(nextBillingDate.getMonth() + 1);
495
- break;
496
- case "yearly":
497
- nextBillingDate.setFullYear(nextBillingDate.getFullYear() + 1);
498
- break;
499
- case "weekly":
500
- nextBillingDate.setDate(nextBillingDate.getDate() + 7);
501
- break;
502
- default:
503
- throw new Error("Invalid billing cycle");
504
- }
505
- return nextBillingDate;
506
- }
507
- async incrementRunsUsed(subscription) {
508
- // Increment runs used in the subscription
509
- // Also check if runs limit is reached
510
- const plan = await YpSubscriptionPlan.findByPk(subscription.subscription_plan_id);
511
- if (!plan) {
512
- throw new Error("Subscription plan not found");
513
- }
514
- // For simplicity, we can assume runs_used is stored in subscription metadata
515
- let runsUsed = subscription.metadata?.runs_used || 0;
516
- runsUsed += 1;
517
- if (runsUsed > plan.configuration.max_runs_per_cycle) {
518
- console.error("Maximum runs per cycle exceeded");
519
- //TODO: Look into activating this again !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
520
- //throw new Error("Maximum runs per cycle exceeded");
521
- }
522
- subscription.metadata = { ...subscription.metadata, runs_used: runsUsed };
523
- await subscription.save();
524
- }
525
- async checkRunsLimit(subscription) {
526
- const plan = await YpSubscriptionPlan.findByPk(subscription.subscription_plan_id);
527
- if (!plan) {
528
- throw new Error("Subscription plan not found");
529
- }
530
- const runsUsed = subscription.metadata?.runs_used || 0;
531
- if (runsUsed >= plan.configuration.max_runs_per_cycle) {
532
- throw new Error("Maximum runs per cycle reached");
533
- }
534
- }
535
- }
@@ -1,79 +0,0 @@
1
- import { YpWorkflowConversation } from "../models/workflowConversation.js";
2
- export class WorkflowConversationManager {
3
- constructor() { }
4
- async createWorkflowConversation(data) {
5
- try {
6
- const workflow = await YpWorkflowConversation.create({
7
- agentProductId: data.agentProductId,
8
- userId: data.userId || null,
9
- configuration: data.configuration || {},
10
- });
11
- return workflow;
12
- }
13
- catch (error) {
14
- throw new Error(`Error creating workflow conversation: ${error.message}`);
15
- }
16
- }
17
- async getWorkflowConversation(workflowConversationId) {
18
- try {
19
- const workflowConversation = await YpWorkflowConversation.findByPk(workflowConversationId);
20
- return workflowConversation;
21
- }
22
- catch (error) {
23
- throw new Error(`Error retrieving workflow conversation: ${error.message}`);
24
- }
25
- }
26
- async updateWorkflowConversation(workflowConversationId, updates) {
27
- try {
28
- const workflowConversation = await YpWorkflowConversation.findByPk(workflowConversationId);
29
- if (!workflowConversation) {
30
- throw new Error("Workflow conversation not found");
31
- }
32
- Object.assign(workflowConversation, updates);
33
- await workflowConversation.save();
34
- return workflowConversation;
35
- }
36
- catch (error) {
37
- throw new Error(`Error updating workflow conversation: ${error.message}`);
38
- }
39
- }
40
- async connectToWorkflowConversation(workflowConversationId, connectionData) {
41
- try {
42
- const workflowConversation = await YpWorkflowConversation.findByPk(workflowConversationId);
43
- if (!workflowConversation) {
44
- throw new Error("Workflow conversation not found");
45
- }
46
- workflowConversation.configuration = {
47
- ...workflowConversation.configuration,
48
- ...connectionData,
49
- };
50
- await workflowConversation.save();
51
- return workflowConversation;
52
- }
53
- catch (error) {
54
- throw new Error(`Error connecting to workflow: ${error.message}`);
55
- }
56
- }
57
- async getWorkflowConversationsForUser(userId) {
58
- try {
59
- const workflowConversations = await YpWorkflowConversation.findAll({ where: { userId } });
60
- return workflowConversations;
61
- }
62
- catch (error) {
63
- throw new Error(`Error retrieving workflow conversations for user ${userId}: ${error.message}`);
64
- }
65
- }
66
- async getRunningWorkflowConversationsForUser(userId) {
67
- try {
68
- const allWorkflowConversations = await this.getWorkflowConversationsForUser(userId);
69
- const runningWorkflowConversations = allWorkflowConversations.filter((workflowConversation) => {
70
- return (workflowConversation.configuration &&
71
- workflowConversation.configuration.running === true);
72
- });
73
- return runningWorkflowConversations;
74
- }
75
- catch (error) {
76
- throw new Error(`Error retrieving running workflows for user ${userId}: ${error.message}`);
77
- }
78
- }
79
- }