@yrpri/api 9.0.101 → 9.0.103

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 (638) hide show
  1. package/active-citizen/engine/allOurIdeas/explainAnswersAssistant.js +11 -1
  2. package/active-citizen/llms/baseChatBot.js +8 -75
  3. package/active-citizen/llms/imageGeneration/chatGptImageGenerator.js +56 -0
  4. package/active-citizen/llms/imageGeneration/collectionImageGenerator.js +6 -0
  5. package/agents/assistants/agentAssistant.js +3 -2
  6. package/agents/assistants/baseAssistant.js +7 -30
  7. package/agents/assistants/baseAssistantWithVoice.js +3 -3
  8. package/agents/assistants/voiceAssistant.js +2 -2
  9. package/agents/controllers/agentProductController.js +2 -1
  10. package/agents/controllers/agentSubscriptionController.js +20 -11
  11. package/agents/controllers/assistantsController.js +171 -127
  12. package/agents/controllers/policySynthAgents.js +33 -12
  13. package/agents/managers/newAiModelSetup.js +96 -0
  14. package/agents/managers/subscriptionManager.js +2 -2
  15. package/app.js +12 -12
  16. package/authorization.cjs +4 -0
  17. package/controllers/allOurIdeas.js +2 -1
  18. package/controllers/communities.cjs +47 -1
  19. package/controllers/groups.cjs +67 -4
  20. package/controllers/index.cjs +7 -7
  21. package/controllers/nonSpa.cjs +1 -1
  22. package/dist/active-citizen/controllers/activities.cjs +174 -0
  23. package/dist/active-citizen/controllers/news_feeds.cjs +96 -0
  24. package/dist/active-citizen/controllers/notifications.cjs +243 -0
  25. package/dist/active-citizen/controllers/recommendations.cjs +280 -0
  26. package/dist/active-citizen/engine/allOurIdeas/aiHelper.js +204 -0
  27. package/dist/active-citizen/engine/allOurIdeas/explainAnswersAssistant.js +66 -0
  28. package/dist/active-citizen/engine/allOurIdeas/iconGenerator.js +38 -0
  29. package/dist/active-citizen/engine/analytics/export_anon_community_activities.js +334 -0
  30. package/dist/active-citizen/engine/analytics/importer.js +308 -0
  31. package/dist/active-citizen/engine/analytics/manager.cjs +377 -0
  32. package/dist/active-citizen/engine/analytics/plausible/manager.cjs +500 -0
  33. package/dist/active-citizen/engine/analytics/statsCalc.cjs +194 -0
  34. package/dist/active-citizen/engine/analytics/utils.cjs +369 -0
  35. package/dist/active-citizen/engine/marketing/campaign.cjs +90 -0
  36. package/dist/active-citizen/engine/moderation/fraud/CreateFraudAuditReport.cjs +313 -0
  37. package/dist/active-citizen/engine/moderation/fraud/FraudBase.cjs +239 -0
  38. package/dist/active-citizen/engine/moderation/fraud/FraudDeleteBase.cjs +211 -0
  39. package/dist/active-citizen/engine/moderation/fraud/FraudDeleteEndorsements.cjs +120 -0
  40. package/dist/active-citizen/engine/moderation/fraud/FraudDeletePointQualities.cjs +114 -0
  41. package/dist/active-citizen/engine/moderation/fraud/FraudDeletePoints.cjs +101 -0
  42. package/dist/active-citizen/engine/moderation/fraud/FraudDeletePosts.cjs +84 -0
  43. package/dist/active-citizen/engine/moderation/fraud/FraudDeleteRatings.cjs +15 -0
  44. package/dist/active-citizen/engine/moderation/fraud/FraudGetBase.cjs +133 -0
  45. package/dist/active-citizen/engine/moderation/fraud/FraudGetEndorsements.cjs +185 -0
  46. package/dist/active-citizen/engine/moderation/fraud/FraudGetPointQualities.cjs +184 -0
  47. package/dist/active-citizen/engine/moderation/fraud/FraudGetPoints.cjs +170 -0
  48. package/dist/active-citizen/engine/moderation/fraud/FraudGetPosts.cjs +109 -0
  49. package/dist/active-citizen/engine/moderation/fraud/FraudGetRatings.cjs +140 -0
  50. package/dist/active-citizen/engine/moderation/fraud/FraudScannerNotifier.cjs +279 -0
  51. package/dist/active-citizen/engine/moderation/get_moderation_items.cjs +386 -0
  52. package/dist/active-citizen/engine/moderation/image_labeling/CommunityLabeling.cjs +49 -0
  53. package/dist/active-citizen/engine/moderation/image_labeling/GroupLabeling.cjs +68 -0
  54. package/dist/active-citizen/engine/moderation/image_labeling/ImageLabelingBase.cjs +288 -0
  55. package/dist/active-citizen/engine/moderation/image_labeling/PointLabeling.cjs +33 -0
  56. package/dist/active-citizen/engine/moderation/image_labeling/PostLabeling.cjs +56 -0
  57. package/dist/active-citizen/engine/moderation/perspective_api_client.cjs +106 -0
  58. package/dist/active-citizen/engine/moderation/process_moderation_items.cjs +344 -0
  59. package/dist/active-citizen/engine/moderation/toxicity_analysis.cjs +810 -0
  60. package/dist/active-citizen/engine/news_feeds/activity_and_item_index_definitions.cjs +15 -0
  61. package/dist/active-citizen/engine/news_feeds/generate_dynamically.cjs +362 -0
  62. package/dist/active-citizen/engine/news_feeds/generate_from_notifications.cjs +268 -0
  63. package/dist/active-citizen/engine/news_feeds/news_feeds_utils.cjs +439 -0
  64. package/dist/active-citizen/engine/notifications/emails_utils.cjs +569 -0
  65. package/dist/active-citizen/engine/notifications/generate_point_notifications.cjs +233 -0
  66. package/dist/active-citizen/engine/notifications/generate_post_notifications.cjs +118 -0
  67. package/dist/active-citizen/engine/notifications/generate_post_status_change_notifications.cjs +41 -0
  68. package/dist/active-citizen/engine/notifications/notifications_utils.cjs +148 -0
  69. package/dist/active-citizen/engine/notifications/point_delivery.cjs +54 -0
  70. package/dist/active-citizen/engine/notifications/post_delivery.cjs +31 -0
  71. package/dist/active-citizen/engine/notifications/process_delayed_notifications.cjs +471 -0
  72. package/dist/active-citizen/engine/notifications/process_general_notifications.cjs +212 -0
  73. package/dist/active-citizen/engine/old/exporters/categories_dataset.js +153 -0
  74. package/dist/active-citizen/engine/old/exporters/dataset_tools.js +80 -0
  75. package/dist/active-citizen/engine/old/exporters/sentiment_dataset.js +157 -0
  76. package/dist/active-citizen/engine/recommendations/events_importer.cjs +139 -0
  77. package/dist/active-citizen/engine/recommendations/events_manager.cjs +212 -0
  78. package/dist/active-citizen/engine/reports/add_points_to_sheet.cjs +83 -0
  79. package/dist/active-citizen/engine/reports/commonUtils.js +75 -0
  80. package/dist/active-citizen/engine/reports/common_utils.cjs +740 -0
  81. package/dist/active-citizen/engine/reports/docx_group_report.cjs +596 -0
  82. package/dist/active-citizen/engine/reports/xlsAllOurIdeasExport.js +232 -0
  83. package/dist/active-citizen/engine/reports/xls_community_users_report.cjs +277 -0
  84. package/dist/active-citizen/engine/reports/xls_group_report.cjs +718 -0
  85. package/dist/active-citizen/llms/baseChatBot.js +183 -0
  86. package/dist/active-citizen/llms/imageGeneration/chatGptImageGenerator.js +56 -0
  87. package/dist/active-citizen/llms/imageGeneration/collectionImageGenerator.js +109 -0
  88. package/dist/active-citizen/llms/imageGeneration/dalleImageGenerator.js +84 -0
  89. package/dist/active-citizen/llms/imageGeneration/fluxImageGenerator.js +49 -0
  90. package/dist/active-citizen/llms/imageGeneration/imageProcessorService.js +64 -0
  91. package/dist/active-citizen/llms/imageGeneration/imagenImageGenerator.js +107 -0
  92. package/dist/active-citizen/llms/imageGeneration/s3Service.js +110 -0
  93. package/dist/active-citizen/llms/llmTranslation.js +472 -0
  94. package/dist/active-citizen/models/ac_activity.cjs +216 -0
  95. package/dist/active-citizen/models/ac_background_job.cjs +109 -0
  96. package/dist/active-citizen/models/ac_campaign.cjs +97 -0
  97. package/dist/active-citizen/models/ac_client_activity.cjs +23 -0
  98. package/dist/active-citizen/models/ac_delayed_notification.cjs +43 -0
  99. package/dist/active-citizen/models/ac_following.cjs +43 -0
  100. package/dist/active-citizen/models/ac_list.cjs +68 -0
  101. package/dist/active-citizen/models/ac_list_users.cjs +19 -0
  102. package/dist/active-citizen/models/ac_mute.cjs +27 -0
  103. package/dist/active-citizen/models/ac_news_feed_item.cjs +57 -0
  104. package/dist/active-citizen/models/ac_news_feed_processed_range.cjs +59 -0
  105. package/dist/active-citizen/models/ac_notification.cjs +292 -0
  106. package/dist/active-citizen/models/ac_translation_cache.cjs +750 -0
  107. package/dist/active-citizen/models/ac_watching.cjs +31 -0
  108. package/dist/active-citizen/scripts/analytics/setup_all_plausible_goals.cjs +13 -0
  109. package/dist/active-citizen/scripts/fix_old_delayed_notifications.js +63 -0
  110. package/dist/active-citizen/scripts/kue_status.js +31 -0
  111. package/dist/active-citizen/scripts/kue_watch_stuck_jobs.js +24 -0
  112. package/dist/active-citizen/scripts/translation_clear_language.js +117 -0
  113. package/dist/active-citizen/scripts/translation_delete.js +27 -0
  114. package/dist/active-citizen/scripts/translation_replace_text_from_url.js +180 -0
  115. package/dist/active-citizen/scripts/translation_update.js +28 -0
  116. package/dist/active-citizen/scripts/translations_list.js +27 -0
  117. package/{active-citizen/utils/airbrake.js → dist/active-citizen/utils/airbrake.cjs} +1 -1
  118. package/dist/active-citizen/utils/get_anonymous_system_user.cjs +21 -0
  119. package/dist/active-citizen/utils/i18n.cjs +3 -0
  120. package/dist/active-citizen/utils/logger.cjs +25 -0
  121. package/dist/active-citizen/utils/redisConnection.cjs +29 -0
  122. package/dist/active-citizen/utils/to_json.cjs +9 -0
  123. package/dist/active-citizen/utils/translation_cloning.cjs +171 -0
  124. package/dist/active-citizen/utils/translation_helpers.cjs +534 -0
  125. package/dist/active-citizen/utils/truncate_text.cjs +21 -0
  126. package/dist/active-citizen/utils/updateAllLocalesFromEn.js +253 -0
  127. package/dist/active-citizen/utils/updateLocaleFolders.js +34 -0
  128. package/dist/active-citizen/workers/activity.cjs +189 -0
  129. package/dist/active-citizen/workers/anonymizations.cjs +734 -0
  130. package/dist/active-citizen/workers/bulk_status_update.cjs +458 -0
  131. package/dist/active-citizen/workers/delayed_jobs.cjs +244 -0
  132. package/dist/active-citizen/workers/deletions.cjs +1911 -0
  133. package/dist/active-citizen/workers/email.cjs +9 -0
  134. package/dist/active-citizen/workers/fraud_management.cjs +109 -0
  135. package/dist/active-citizen/workers/generativeAi.js +56 -0
  136. package/dist/active-citizen/workers/main.cjs +89 -0
  137. package/dist/active-citizen/workers/marketing.cjs +25 -0
  138. package/dist/active-citizen/workers/moderation.cjs +73 -0
  139. package/dist/active-citizen/workers/notification_delivery.cjs +368 -0
  140. package/dist/active-citizen/workers/notification_news_feed.cjs +142 -0
  141. package/dist/active-citizen/workers/queue.cjs +99 -0
  142. package/dist/active-citizen/workers/recount.cjs +74 -0
  143. package/dist/active-citizen/workers/reports.cjs +42 -0
  144. package/dist/active-citizen/workers/similarities.cjs +21 -0
  145. package/dist/active-citizen/workers/speech_to_text.cjs +482 -0
  146. package/dist/agents/assistants/agentAssistant.js +88 -0
  147. package/dist/agents/assistants/baseAssistant.js +888 -0
  148. package/dist/agents/assistants/baseAssistantWithVoice.js +150 -0
  149. package/dist/agents/assistants/modes/agentDirectConnection.js +84 -0
  150. package/dist/agents/assistants/modes/agentSelectionMode.js +44 -0
  151. package/dist/agents/assistants/modes/baseAssistantMode.js +54 -0
  152. package/dist/agents/assistants/modes/tools/agentTools.js +447 -0
  153. package/dist/agents/assistants/modes/tools/baseTools.js +58 -0
  154. package/dist/agents/assistants/modes/tools/loginTools.js +156 -0
  155. package/dist/agents/assistants/modes/tools/models/agents.js +146 -0
  156. package/dist/agents/assistants/modes/tools/models/subscriptions.js +332 -0
  157. package/dist/agents/assistants/modes/tools/models/users.js +11 -0
  158. package/dist/agents/assistants/modes/tools/navigationTools.js +166 -0
  159. package/{agents/assistants/modes/tools/workflowConversationTools.js → dist/agents/assistants/modes/tools/subscriptionTools.js} +1 -4
  160. package/{agents/assistants/modes/tools/workflowTools.js → dist/agents/assistants/modes/tools/workflowConverstationTools.js} +1 -1
  161. package/dist/agents/assistants/voiceAssistant.js +619 -0
  162. package/dist/agents/controllers/agentProductController.js +103 -0
  163. package/dist/agents/controllers/agentSubscriptionController.js +261 -0
  164. package/dist/agents/controllers/assistantsController.js +511 -0
  165. package/dist/agents/controllers/policySynthAgents.js +395 -0
  166. package/{agents → dist/agents/managers}/agentProductManager.js +2 -2
  167. package/dist/agents/managers/emailInvitesManager.js +55 -0
  168. package/dist/agents/managers/emailTemplateRenderer.js +362 -0
  169. package/dist/agents/managers/newAiModelSetup.js +650 -0
  170. package/dist/agents/managers/notificationAgentQueueManager.js +510 -0
  171. package/dist/agents/managers/subscriptionManager.js +535 -0
  172. package/dist/agents/managers/workflowConversationManager.js +79 -0
  173. package/dist/agents/models/agentProduct.js +116 -0
  174. package/dist/agents/models/agentProductBoosterPurchase.js +58 -0
  175. package/dist/agents/models/agentProductBundle.js +68 -0
  176. package/dist/agents/models/agentProductRun.js +52 -0
  177. package/dist/agents/models/discount.js +88 -0
  178. package/dist/agents/models/subscription.js +79 -0
  179. package/dist/agents/models/subscriptionPlan.js +46 -0
  180. package/dist/agents/models/subscriptionUser.js +27 -0
  181. package/dist/agents/models/testData/createEvolyAgentProduct.js +477 -0
  182. package/dist/agents/models/testData/old/updateAgentWorkflowConfiguration.js +230 -0
  183. package/dist/agents/models/testData/setupEvolyAgentProductConfig.js +233 -0
  184. package/dist/agents/models/testData/updateAgentWorkflowConfiguration.js +230 -0
  185. package/{agents/models/workflowConverstation.js → dist/agents/models/workflowConversation.js} +1 -1
  186. package/{agents/tools/updateTemplateWorkflow.js → dist/agents/tools/setTemplateWorkflowCommunityId.js} +1 -0
  187. package/dist/app.js +943 -0
  188. package/dist/authorization.cjs +1860 -0
  189. package/dist/bot_control.js +1930 -0
  190. package/dist/config/config.cjs +14 -0
  191. package/dist/config/config.js +14 -0
  192. package/dist/controllers/allOurIdeas.js +696 -0
  193. package/dist/controllers/audios.cjs +100 -0
  194. package/dist/controllers/bulkStatusUpdates.cjs +202 -0
  195. package/dist/controllers/categories.cjs +199 -0
  196. package/dist/controllers/communities.cjs +2996 -0
  197. package/dist/controllers/domains.cjs +1341 -0
  198. package/dist/controllers/externalIds.cjs +223 -0
  199. package/dist/controllers/groups.cjs +4309 -0
  200. package/dist/controllers/images.cjs +499 -0
  201. package/dist/controllers/index.cjs +449 -0
  202. package/dist/controllers/legacyPages.cjs +35 -0
  203. package/dist/controllers/legacyPosts.cjs +56 -0
  204. package/dist/controllers/legacyUsers.cjs +36 -0
  205. package/dist/controllers/nonSpa.cjs +574 -0
  206. package/dist/controllers/organizations.cjs +250 -0
  207. package/dist/controllers/points.cjs +1137 -0
  208. package/dist/controllers/posts.cjs +2036 -0
  209. package/dist/controllers/ratings.cjs +234 -0
  210. package/dist/controllers/users.cjs +2255 -0
  211. package/dist/controllers/videos.cjs +226 -0
  212. package/dist/deleteUnwantedDeclerations.cjs +55 -0
  213. package/dist/migrations/agentAuditLogs.cjs +46 -0
  214. package/dist/migrations/agentClasses.cjs +60 -0
  215. package/dist/migrations/agentConnectorClasses.cjs +61 -0
  216. package/dist/migrations/agentConnectors.cjs +50 -0
  217. package/dist/migrations/agentEvals.cjs +45 -0
  218. package/dist/migrations/agentRegistries.cjs +40 -0
  219. package/dist/migrations/agents.cjs +54 -0
  220. package/dist/migrations/aiModels.cjs +49 -0
  221. package/dist/migrations/apiUsage.cjs +47 -0
  222. package/dist/migrations/apis.cjs +49 -0
  223. package/dist/migrations/groupPrivateData.cjs +30 -0
  224. package/dist/migrations/modelUsage.cjs +60 -0
  225. package/dist/migrations/oldMigrations/2019/20181030020612-AddActivitiesIndex.js +23 -0
  226. package/dist/migrations/oldMigrations/2019/20181102210612-AddFirstVideoFeatures.js +360 -0
  227. package/dist/migrations/oldMigrations/2019/20181212210612-ModerationFeatures.js +29 -0
  228. package/dist/migrations/oldMigrations/2019/2019010610612-CommunityFolders.js +43 -0
  229. package/dist/migrations/oldMigrations/2019/20190117020612-AddMissingIndexes.js +24 -0
  230. package/dist/migrations/oldMigrations/2019/20190117020612-RemoveUnusedIndexes.js +29 -0
  231. package/dist/migrations/oldMigrations/2019/20190127020612-RemoveUnusedIndexesPartThree.js +22 -0
  232. package/dist/migrations/oldMigrations/2019/20190127020612-RemoveUnusedIndexesPartTwo.js +23 -0
  233. package/{migrations/200824_create_embeddings_and_org_update.cjs → dist/migrations/oldMigrations/2019/20190223020612-AddPrivateProfileDataToUsers.js} +6 -3
  234. package/dist/migrations/oldMigrations/2019/20190706210612-AddCustomRatings.js +43 -0
  235. package/dist/migrations/oldMigrations/2019/20190829210612-AddGeneralStore.js +36 -0
  236. package/dist/migrations/oldMigrations/2019/20192811210612-AddAcClientActivities.js +41 -0
  237. package/dist/migrations/oldMigrations/2020/20190527020612-WorkOnIndexes.js +88 -0
  238. package/dist/migrations/oldMigrations/2020/20200409020612-AddBackgroundJob.js +33 -0
  239. package/dist/migrations/oldMigrations/2020/20200716210612-AddDataToCollections.js +38 -0
  240. package/dist/migrations/oldMigrations/2022/20220215100612-AddDataToEndorsements.js +19 -0
  241. package/dist/migrations/oldMigrations/2022/20220220100612-AddDataForFraudDetection.js +19 -0
  242. package/dist/migrations/oldMigrations/2022/20220903100612-AddPromotionFeatures.js +127 -0
  243. package/dist/migrations/oldMigrations/2022/onHold/20200527020612-AddCampaigns.js +68 -0
  244. package/dist/migrations/oldMigrations/2024/20241304175112-AddMediaSupportForHtmlGroups.cjs +63 -0
  245. package/dist/migrations/oldMigrations/older/20160511172514-AddNotificationFeatures.js +14 -0
  246. package/dist/migrations/oldMigrations/older/20161030020612-AddBulkStatusUpdate.js +71 -0
  247. package/dist/migrations/oldMigrations/older/20170514035258-add-metadata-to-invites.js +12 -0
  248. package/dist/migrations/oldMigrations/older/20180216020612-AddTranslationCaches.js +46 -0
  249. package/dist/migrations/oldMigrations/older/20180218210612-AddTranslationAndLanguages.js +46 -0
  250. package/dist/migrations/privateAccessStore.cjs +55 -0
  251. package/dist/migrations/zzz_associations.cjs +154 -0
  252. package/dist/migrations/zzzzz_create_agent_runs.cjs +606 -0
  253. package/dist/migrations/zzzzzz_create_agent_runs_fix.cjs +11 -0
  254. package/dist/migrations/zzzzzzz_create_trees.cjs +81 -0
  255. package/dist/models/audio.cjs +430 -0
  256. package/dist/models/bulk_status_update.cjs +58 -0
  257. package/dist/models/campaign.cjs +78 -0
  258. package/dist/models/category.cjs +94 -0
  259. package/dist/models/community.cjs +337 -0
  260. package/dist/models/domain.cjs +486 -0
  261. package/dist/models/endorsement.cjs +39 -0
  262. package/dist/models/general_data_store.cjs +20 -0
  263. package/dist/models/group.cjs +728 -0
  264. package/dist/models/image.cjs +579 -0
  265. package/dist/models/index.cjs +186 -0
  266. package/dist/models/invite.cjs +48 -0
  267. package/dist/models/iso_country.cjs +16 -0
  268. package/dist/models/organization.cjs +122 -0
  269. package/dist/models/page.cjs +273 -0
  270. package/dist/models/point.cjs +622 -0
  271. package/dist/models/point_quality.cjs +39 -0
  272. package/dist/models/point_revision.cjs +47 -0
  273. package/dist/models/post.cjs +680 -0
  274. package/dist/models/post_revision.cjs +38 -0
  275. package/dist/models/post_status_change.cjs +35 -0
  276. package/dist/models/promotion.cjs +34 -0
  277. package/dist/models/rating.cjs +51 -0
  278. package/dist/models/relationship.cjs +19 -0
  279. package/dist/models/request_to_join.cjs +20 -0
  280. package/dist/models/user.cjs +604 -0
  281. package/dist/models/user_legacy_password.cjs +13 -0
  282. package/dist/models/video.cjs +1137 -0
  283. package/dist/publish.js +40 -0
  284. package/dist/repack.js +53 -0
  285. package/dist/scripts/addRatingUsersToGroup.js +51 -0
  286. package/dist/scripts/addUserToOrganization.js +71 -0
  287. package/dist/scripts/analyseRatingsForCommunity.js +150 -0
  288. package/dist/scripts/analyzeAndFixBrokenPointUsers.js +28 -0
  289. package/dist/scripts/analyzeEndorsementsByCountry.js +70 -0
  290. package/dist/scripts/analyzePostsForCommunity.js +185 -0
  291. package/dist/scripts/bulkStatusUpdates/listUpdates.js +14 -0
  292. package/dist/scripts/bulkStatusUpdates/mergeLatestPostsToUpdate.js +110 -0
  293. package/dist/scripts/bulkStatusUpdates/performUpdate.js +116 -0
  294. package/{scripts/bulkStatusUpdates/performUpdateForGroup.js → dist/scripts/bulkStatusUpdates/performUpdateForGroup.cjs} +1 -2
  295. package/dist/scripts/bulkStatusUpdates/performUpdateForStatus.js +141 -0
  296. package/dist/scripts/change/changeVideoAspectTo.js +34 -0
  297. package/dist/scripts/change/setUseNewVersion.cjs +22 -0
  298. package/dist/scripts/changeCommunityGroupcount.js +30 -0
  299. package/dist/scripts/changeCommunityPostCount.js +30 -0
  300. package/dist/scripts/changeGroupPostCount.js +30 -0
  301. package/dist/scripts/changeLanguage.js +50 -0
  302. package/dist/scripts/changeOfficalStatus.js +30 -0
  303. package/{scripts/cleanups/deleteAnonNotifications.js → dist/scripts/cleanups/deleteAnonNotifications.cjs} +1 -1
  304. package/dist/scripts/cleanups/deleteLinkGroupsWithDeletedCommunities.js +62 -0
  305. package/dist/scripts/cleanups/deleteYearOldNotifications.cjs +72 -0
  306. package/dist/scripts/cleanups/removeAllUsersFromHiddenPublicGroup.js +43 -0
  307. package/dist/scripts/clearAllEndorsementInGroup.js +50 -0
  308. package/dist/scripts/cloning/clearUsersForCommunitiesFromUrl.js +129 -0
  309. package/dist/scripts/cloning/cloneFromUrlScript.js +65 -0
  310. package/dist/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.js +140 -0
  311. package/dist/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.js +140 -0
  312. package/dist/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.js +131 -0
  313. package/dist/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.js +173 -0
  314. package/dist/scripts/cloning/copyCommunityOneGroupToDomainNoUsersNoEndorsements.js +18 -0
  315. package/dist/scripts/cloning/copyCommunityToDomainNoUsersNoEndorsements.js +17 -0
  316. package/dist/scripts/cloning/copyCommunityToDomainWithEverything.js +17 -0
  317. package/dist/scripts/cloning/copyCommunityToDomainWithOnlyGroups.js +26 -0
  318. package/dist/scripts/cloning/copyGroupConfigAndTranslationsFromURL.js +205 -0
  319. package/dist/scripts/cloning/copyPostToGroupOld.js +397 -0
  320. package/dist/scripts/cloning/copyPostVideosFromURL.js +236 -0
  321. package/dist/scripts/cloning/copyPostWithOutAnyVotingOrActivities.js +17 -0
  322. package/dist/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.js +131 -0
  323. package/dist/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.js +139 -0
  324. package/dist/scripts/cloning/setAdminsFromURL.js +161 -0
  325. package/dist/scripts/cloning/setExternalIdsFromURL.js +129 -0
  326. package/dist/scripts/countCommunity.js +291 -0
  327. package/dist/scripts/countCommunityUsers.js +152 -0
  328. package/dist/scripts/countDelayedNotifications.js +18 -0
  329. package/dist/scripts/countGroup.js +246 -0
  330. package/dist/scripts/countStuff.js +67 -0
  331. package/dist/scripts/countUniqueVotersInAGroup.js +48 -0
  332. package/dist/scripts/createInvitesAndShow.js +75 -0
  333. package/dist/scripts/database/sync_database.js +14 -0
  334. package/dist/scripts/database/sync_dev_database.js +17 -0
  335. package/dist/scripts/debugNotifications.js +58 -0
  336. package/dist/scripts/deleteAllNewsFeeds.js +10 -0
  337. package/dist/scripts/deleteCategory.js +13 -0
  338. package/dist/scripts/deleteOldAppActivities.js +40 -0
  339. package/dist/scripts/deletePostContactDataForCommunity.js +53 -0
  340. package/dist/scripts/destroy/destroy_all_but_one_domain.js +1026 -0
  341. package/dist/scripts/displayAuthorForPost.js +16 -0
  342. package/dist/scripts/endorsementFraudDetection/analyseEndorsementsForCommunity.js +183 -0
  343. package/dist/scripts/endorsementFraudDetection/bulkDeleteDuplicateEndorsmentsFromUrl.js +208 -0
  344. package/dist/scripts/exportAllStatusChanges.js +36 -0
  345. package/dist/scripts/exportClientAcitivity.js +36 -0
  346. package/dist/scripts/exportEndorsementsForCommunity.js +79 -0
  347. package/dist/scripts/exportPointQualitiesForCommunity.js +84 -0
  348. package/dist/scripts/exportPostsAndPointsForCommunity.js +147 -0
  349. package/dist/scripts/exportPostsDataSetForDomain.js +244 -0
  350. package/dist/scripts/exportPostsForGroup.js +173 -0
  351. package/dist/scripts/exportRatingsForPost.js +15 -0
  352. package/dist/scripts/exportUserEndorsementsWithUserAnalysis.js +123 -0
  353. package/dist/scripts/exportUsersForCommunity.js +24 -0
  354. package/dist/scripts/exportUsersForDomain.js +24 -0
  355. package/dist/scripts/exportUsersForGroup.js +24 -0
  356. package/dist/scripts/exports/ratingDistribution.js +71 -0
  357. package/dist/scripts/exports/whoEndorsedWhatByCommunity.js +56 -0
  358. package/dist/scripts/findUnusedClientImports.js +56 -0
  359. package/dist/scripts/fixAllPostPointCounts.js +22 -0
  360. package/dist/scripts/fixAnonNotificationsSettings.js +48 -0
  361. package/dist/scripts/fixCountKopavogur.js +9 -0
  362. package/dist/scripts/fixEndorsementsAfterCopyPostToGroup.js +190 -0
  363. package/dist/scripts/fixExternalUserId.js +24 -0
  364. package/dist/scripts/fixGroupAccess.js +16 -0
  365. package/dist/scripts/fixGroupIdeasAndPointsCount.js +49 -0
  366. package/dist/scripts/fixNotificationSettings.js +39 -0
  367. package/dist/scripts/fixSurveyRadioBakedInSubCodes.js +64 -0
  368. package/dist/scripts/fixWrongUserIdForStatusUpdates.js +49 -0
  369. package/dist/scripts/gallery/exportGalleryData.js +40 -0
  370. package/dist/scripts/gallery/importGalleryForCommunity.js +168 -0
  371. package/dist/scripts/gallery/readJsonAndDownloadImagesVersion2.js +55 -0
  372. package/dist/scripts/gallery/refreshAcApiPostIdsForCommunity.js +58 -0
  373. package/dist/scripts/genderAnalysis.js +63 -0
  374. package/dist/scripts/genderAnalysisByStatus.js +62 -0
  375. package/dist/scripts/importAllLocalesFromLocalFolders.js +55 -0
  376. package/dist/scripts/importDomain.js +1652 -0
  377. package/dist/scripts/keys/addOidcToDomain.cjs +61 -0
  378. package/dist/scripts/landUseGame/export3Ddata.js +162 -0
  379. package/dist/scripts/listLanguagesForGroup.js +54 -0
  380. package/dist/scripts/loadTestCreateDummyContentForGroup.js +27 -0
  381. package/dist/scripts/makeRecursiveMapData.js +103 -0
  382. package/dist/scripts/mapping/community_map_csv.js +145 -0
  383. package/dist/scripts/moveCommunityToDomain.js +22 -0
  384. package/dist/scripts/moveGroupToCommunity.js +23 -0
  385. package/dist/scripts/movePostToGroup.js +101 -0
  386. package/dist/scripts/movePostsToGroupsRecountGroupFromUrl.js +297 -0
  387. package/dist/scripts/oldMovePostToGroup.js +153 -0
  388. package/dist/scripts/processCsvForPdfUrls.js +37 -0
  389. package/dist/scripts/processCsvForTranslationAndToxicity.js +125 -0
  390. package/dist/scripts/recount/recount_recursive_communities.js +125 -0
  391. package/dist/scripts/recountALLCommunityGroupCounts.js +37 -0
  392. package/dist/scripts/recountAll.js +97 -0
  393. package/dist/scripts/recountCommunitesFromUrl.js +58 -0
  394. package/dist/scripts/recountCommunity.js +19 -0
  395. package/dist/scripts/recountGroup.js +218 -0
  396. package/dist/scripts/recountGroupNoUserChange.js +219 -0
  397. package/dist/scripts/resetAllEndorsementsForGroup.js +57 -0
  398. package/dist/scripts/resetEnTranslationForGroup.js +45 -0
  399. package/dist/scripts/setAdminOnAll.cjs +107 -0
  400. package/{scripts/change → dist/scripts}/setDomainAdmin.cjs +0 -2
  401. package/dist/scripts/setDomainLocales.js +33 -0
  402. package/dist/scripts/setEarlQuestionIdOnGroup.cjs +29 -0
  403. package/dist/scripts/setLanguageOnGroupCommunitesFromUrl.js +86 -0
  404. package/dist/scripts/setMemberOfAll.js +101 -0
  405. package/dist/scripts/setNewUserForContentOfCommunity.js +189 -0
  406. package/dist/scripts/setOfficialStatusOnAllPostsForCommunity.js +35 -0
  407. package/dist/scripts/setUserOnAll.js +101 -0
  408. package/dist/scripts/showCategoryForGroup.js +18 -0
  409. package/dist/scripts/showOldActivityTypes.js +14 -0
  410. package/dist/scripts/showPostsMissingCategoryForGroup.js +17 -0
  411. package/dist/scripts/showStatuses.js +17 -0
  412. package/dist/scripts/showUniqueVotersInCommunity.js +61 -0
  413. package/dist/scripts/showUserAgentsAndIpsForEmails.js +66 -0
  414. package/dist/scripts/simpleExportForGroupsForCommunity.js +46 -0
  415. package/dist/scripts/simpleExportForPointsForCommunity.js +82 -0
  416. package/dist/scripts/simpleExportForPostsForCommunity.js +61 -0
  417. package/dist/scripts/testForEndorsments.js +21 -0
  418. package/dist/scripts/undeleteGroupAndAllContent.js +151 -0
  419. package/dist/scripts/undeletePost.js +135 -0
  420. package/dist/scripts/unlinkSsn.js +23 -0
  421. package/dist/scripts/updateFromAlthingi.js +303 -0
  422. package/dist/server.js +3 -0
  423. package/dist/utils/airbrake.cjs +17 -0
  424. package/dist/utils/cjsCodeReview.js +99 -0
  425. package/dist/utils/community_mapping_tools.cjs +124 -0
  426. package/dist/utils/copy_utils.cjs +1399 -0
  427. package/dist/utils/docx_utils.cjs +464 -0
  428. package/dist/utils/export_utils.cjs +491 -0
  429. package/dist/utils/i18n.cjs +17 -0
  430. package/dist/utils/is_valid_db_id.cjs +28 -0
  431. package/dist/utils/logger.cjs +25 -0
  432. package/dist/utils/loggerTs.js +26 -0
  433. package/dist/utils/manifest_generator.cjs +104 -0
  434. package/dist/utils/parse_domain.cjs +16 -0
  435. package/dist/utils/recount_utils.cjs +415 -0
  436. package/dist/utils/sharing_parameters.cjs +111 -0
  437. package/dist/utils/sitemap_generator.cjs +286 -0
  438. package/dist/utils/to_json.cjs +14 -0
  439. package/dist/utils/ypLanguages.js +747 -0
  440. package/dist/webSockets.js +77 -0
  441. package/package.json +46 -44
  442. package/server.d.ts +104 -2
  443. package/utils/copy_utils.cjs +7 -1
  444. package/active-citizen/engine/allOurIdeas/aiHelper.d.ts +0 -21
  445. package/active-citizen/engine/allOurIdeas/aiHelper.d.ts.map +0 -1
  446. package/active-citizen/engine/allOurIdeas/explainAnswersAssistant.d.ts.map +0 -1
  447. package/active-citizen/engine/allOurIdeas/iconGenerator.d.ts +0 -12
  448. package/active-citizen/engine/allOurIdeas/iconGenerator.d.ts.map +0 -1
  449. package/active-citizen/engine/analytics/export_anon_community_activities.d.ts.map +0 -1
  450. package/active-citizen/engine/analytics/importer.d.ts.map +0 -1
  451. package/active-citizen/engine/old/exporters/categories_dataset.d.ts.map +0 -1
  452. package/active-citizen/engine/old/exporters/dataset_tools.d.ts.map +0 -1
  453. package/active-citizen/engine/old/exporters/sentiment_dataset.d.ts.map +0 -1
  454. package/active-citizen/engine/reports/xls_all_our_ideas_export.js +0 -141
  455. package/active-citizen/llms/baseChatBot.d.ts +0 -51
  456. package/active-citizen/llms/baseChatBot.d.ts.map +0 -1
  457. package/active-citizen/llms/collectionImageGenerator.js +0 -357
  458. package/active-citizen/llms/llmTranslation.d.ts +0 -24
  459. package/active-citizen/llms/llmTranslation.d.ts.map +0 -1
  460. package/active-citizen/scripts/fix_old_delayed_notifications.d.ts.map +0 -1
  461. package/active-citizen/scripts/kue_status.d.ts.map +0 -1
  462. package/active-citizen/scripts/kue_watch_stuck_jobs.d.ts.map +0 -1
  463. package/active-citizen/scripts/translation_clear_language.d.ts.map +0 -1
  464. package/active-citizen/scripts/translation_delete.d.ts.map +0 -1
  465. package/active-citizen/scripts/translation_replace_text_from_url.d.ts.map +0 -1
  466. package/active-citizen/scripts/translation_update.d.ts.map +0 -1
  467. package/active-citizen/scripts/translations_list.d.ts.map +0 -1
  468. package/active-citizen/utils/airbrake.d.ts.map +0 -1
  469. package/active-citizen/utils/updateAllLocalesFromEn.d.ts +0 -21
  470. package/active-citizen/utils/updateAllLocalesFromEn.d.ts.map +0 -1
  471. package/active-citizen/utils/updateLocaleFolders.d.ts +0 -2
  472. package/active-citizen/utils/updateLocaleFolders.d.ts.map +0 -1
  473. package/active-citizen/workers/cloudflare/voiceSession/worker.js +0 -213
  474. package/active-citizen/workers/generativeAi.d.ts.map +0 -1
  475. package/agents/assistants/agentAssistantOld.js +0 -863
  476. package/agents/assistants/modes/agentConfigurationMode.js +0 -63
  477. package/agents/assistants/modes/agentOperationsMode.js +0 -195
  478. package/agents/assistants/modes/commonTools.js +0 -58
  479. package/agents/assistants/modes/directConversationMode.js +0 -14
  480. package/agents/assistants/modes/toolHandlers/accountHandlers.js +0 -46
  481. package/agents/assistants/modes/toolHandlers/commonHandlers.js +0 -57
  482. package/agents/assistants/modes/toolHandlers/commonTools.js +0 -58
  483. package/agents/assistants/modes/toolHandlers/loginHandlers.js +0 -46
  484. package/agents/assistants/modes/toolHandlers/subscriptionHandlers.js +0 -469
  485. package/agents/assistants/modes/tools/agentConnectionTools.js +0 -326
  486. package/agents/assistants/modes/tools/commonHandlers.js +0 -57
  487. package/agents/assistants/modes/tools/loginHandlers.js +0 -46
  488. package/agents/assistants/modes/tools/subscriptionHandlers.js +0 -469
  489. package/agents/controllers/assistantController.js +0 -243
  490. package/agents/managers/workflowManager.js +0 -76
  491. package/agents/models/testData/setupConfig.js +0 -140
  492. package/agents/models/workflow.js +0 -53
  493. package/agents/subscriptionManager.js +0 -218
  494. package/app.d.ts +0 -40
  495. package/app.d.ts.map +0 -1
  496. package/bot_control.d.ts.map +0 -1
  497. package/publish.d.ts.map +0 -1
  498. package/repack.d.ts.map +0 -1
  499. package/scripts/addRatingUsersToGroup.d.ts.map +0 -1
  500. package/scripts/addUserToOrganization.d.ts.map +0 -1
  501. package/scripts/analyseRatingsForCommunity.d.ts.map +0 -1
  502. package/scripts/analyzeAndFixBrokenPointUsers.d.ts.map +0 -1
  503. package/scripts/analyzeEndorsementsByCountry.d.ts.map +0 -1
  504. package/scripts/analyzePostsForCommunity.d.ts.map +0 -1
  505. package/scripts/bulkStatusUpdates/listUpdates.d.ts.map +0 -1
  506. package/scripts/bulkStatusUpdates/mergeLatestPostsToUpdate.d.ts.map +0 -1
  507. package/scripts/bulkStatusUpdates/performUpdate.d.ts.map +0 -1
  508. package/scripts/bulkStatusUpdates/performUpdateForGroup.d.ts.map +0 -1
  509. package/scripts/bulkStatusUpdates/performUpdateForStatus.d.ts.map +0 -1
  510. package/scripts/change/changeVideoAspectTo.d.ts.map +0 -1
  511. package/scripts/changeCommunityGroupcount.d.ts.map +0 -1
  512. package/scripts/changeCommunityPostCount.d.ts.map +0 -1
  513. package/scripts/changeGroupPostCount.d.ts.map +0 -1
  514. package/scripts/changeLanguage.d.ts.map +0 -1
  515. package/scripts/changeOfficalStatus.d.ts.map +0 -1
  516. package/scripts/cleanups/deleteAnonNotifications.d.ts.map +0 -1
  517. package/scripts/cleanups/deleteLinkGroupsWithDeletedCommunities.d.ts.map +0 -1
  518. package/scripts/cleanups/removeAllUsersFromHiddenPublicGroup.d.ts.map +0 -1
  519. package/scripts/clearAllEndorsementInGroup.d.ts.map +0 -1
  520. package/scripts/cloning/clearUsersForCommunitiesFromUrl.d.ts.map +0 -1
  521. package/scripts/cloning/cloneFromUrlScript.d.ts.map +0 -1
  522. package/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.d.ts.map +0 -1
  523. package/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.d.ts.map +0 -1
  524. package/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.d.ts.map +0 -1
  525. package/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.d.ts.map +0 -1
  526. package/scripts/cloning/copyCommunityOneGroupToDomainNoUsersNoEndorsements.d.ts.map +0 -1
  527. package/scripts/cloning/copyCommunityToDomainNoUsersNoEndorsements.d.ts.map +0 -1
  528. package/scripts/cloning/copyCommunityToDomainWithEverything.d.ts.map +0 -1
  529. package/scripts/cloning/copyCommunityToDomainWithOnlyGroups.d.ts.map +0 -1
  530. package/scripts/cloning/copyGroupConfigAndTranslationsFromURL.d.ts.map +0 -1
  531. package/scripts/cloning/copyPostToGroupOld.d.ts.map +0 -1
  532. package/scripts/cloning/copyPostVideosFromURL.d.ts.map +0 -1
  533. package/scripts/cloning/copyPostWithOutAnyVotingOrActivities.d.ts.map +0 -1
  534. package/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.d.ts.map +0 -1
  535. package/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.d.ts.map +0 -1
  536. package/scripts/cloning/setAdminsFromURL.d.ts.map +0 -1
  537. package/scripts/cloning/setExternalIdsFromURL.d.ts.map +0 -1
  538. package/scripts/countCommunity.d.ts.map +0 -1
  539. package/scripts/countCommunityUsers.d.ts.map +0 -1
  540. package/scripts/countDelayedNotifications.d.ts.map +0 -1
  541. package/scripts/countGroup.d.ts.map +0 -1
  542. package/scripts/countStuff.d.ts.map +0 -1
  543. package/scripts/countUniqueVotersInAGroup.d.ts.map +0 -1
  544. package/scripts/createInvitesAndShow.d.ts.map +0 -1
  545. package/scripts/database/seedTestAiModels.js +0 -64
  546. package/scripts/database/sync_database.d.ts.map +0 -1
  547. package/scripts/database/sync_dev_database.d.ts.map +0 -1
  548. package/scripts/debugNotifications.d.ts.map +0 -1
  549. package/scripts/deleteAllNewsFeeds.d.ts.map +0 -1
  550. package/scripts/deleteCategory.d.ts.map +0 -1
  551. package/scripts/deleteOldAppActivities.d.ts.map +0 -1
  552. package/scripts/deletePostContactDataForCommunity.d.ts.map +0 -1
  553. package/scripts/destroy/destroy_all_but_one_domain.d.ts.map +0 -1
  554. package/scripts/displayAuthorForPost.d.ts.map +0 -1
  555. package/scripts/endorsementFraudDetection/analyseEndorsementsForCommunity.d.ts.map +0 -1
  556. package/scripts/endorsementFraudDetection/bulkDeleteDuplicateEndorsmentsFromUrl.d.ts.map +0 -1
  557. package/scripts/exportAllStatusChanges.d.ts.map +0 -1
  558. package/scripts/exportClientAcitivity.d.ts.map +0 -1
  559. package/scripts/exportEndorsementsForCommunity.d.ts.map +0 -1
  560. package/scripts/exportPointQualitiesForCommunity.d.ts.map +0 -1
  561. package/scripts/exportPostsAndPointsForCommunity.d.ts.map +0 -1
  562. package/scripts/exportPostsDataSetForDomain.d.ts.map +0 -1
  563. package/scripts/exportPostsForGroup.d.ts.map +0 -1
  564. package/scripts/exportRatingsForPost.d.ts.map +0 -1
  565. package/scripts/exportUserEndorsementsWithUserAnalysis.d.ts.map +0 -1
  566. package/scripts/exportUsersForCommunity.d.ts.map +0 -1
  567. package/scripts/exportUsersForDomain.d.ts.map +0 -1
  568. package/scripts/exportUsersForGroup.d.ts.map +0 -1
  569. package/scripts/exports/ratingDistribution.d.ts.map +0 -1
  570. package/scripts/exports/whoEndorsedWhatByCommunity.d.ts.map +0 -1
  571. package/scripts/findUnusedClientImports.d.ts.map +0 -1
  572. package/scripts/fixAllPostPointCounts.d.ts.map +0 -1
  573. package/scripts/fixAnonNotificationsSettings.d.ts.map +0 -1
  574. package/scripts/fixCountKopavogur.d.ts.map +0 -1
  575. package/scripts/fixEndorsementsAfterCopyPostToGroup.d.ts.map +0 -1
  576. package/scripts/fixExternalUserId.d.ts.map +0 -1
  577. package/scripts/fixGroupAccess.d.ts.map +0 -1
  578. package/scripts/fixGroupIdeasAndPointsCount.d.ts.map +0 -1
  579. package/scripts/fixNotificationSettings.d.ts.map +0 -1
  580. package/scripts/fixSurveyRadioBakedInSubCodes.d.ts.map +0 -1
  581. package/scripts/fixWrongUserIdForStatusUpdates.d.ts.map +0 -1
  582. package/scripts/gallery/exportGalleryData.d.ts.map +0 -1
  583. package/scripts/gallery/importGalleryForCommunity.d.ts.map +0 -1
  584. package/scripts/gallery/readJsonAndDownloadImagesVersion2.d.ts.map +0 -1
  585. package/scripts/gallery/refreshAcApiPostIdsForCommunity.d.ts.map +0 -1
  586. package/scripts/genderAnalysis.d.ts.map +0 -1
  587. package/scripts/genderAnalysisByStatus.d.ts.map +0 -1
  588. package/scripts/importAllLocalesFromLocalFolders.d.ts.map +0 -1
  589. package/scripts/importDomain.d.ts.map +0 -1
  590. package/scripts/landUseGame/export3Ddata.d.ts.map +0 -1
  591. package/scripts/listLanguagesForGroup.d.ts.map +0 -1
  592. package/scripts/loadTestCreateDummyContentForGroup.d.ts.map +0 -1
  593. package/scripts/makeRecursiveMapData.d.ts.map +0 -1
  594. package/scripts/mapping/community_map_csv.d.ts.map +0 -1
  595. package/scripts/moveCommunityToDomain.d.ts.map +0 -1
  596. package/scripts/moveGroupToCommunity.d.ts.map +0 -1
  597. package/scripts/movePostToGroup.d.ts.map +0 -1
  598. package/scripts/movePostsToGroupsRecountGroupFromUrl.d.ts.map +0 -1
  599. package/scripts/oldMovePostToGroup.d.ts.map +0 -1
  600. package/scripts/processCsvForPdfUrls.d.ts.map +0 -1
  601. package/scripts/processCsvForTranslationAndToxicity.d.ts.map +0 -1
  602. package/scripts/recount/recount_recursive_communities.d.ts.map +0 -1
  603. package/scripts/recountALLCommunityGroupCounts.d.ts.map +0 -1
  604. package/scripts/recountAll.d.ts.map +0 -1
  605. package/scripts/recountCommunitesFromUrl.d.ts.map +0 -1
  606. package/scripts/recountCommunity.d.ts.map +0 -1
  607. package/scripts/recountGroup.d.ts.map +0 -1
  608. package/scripts/recountGroupNoUserChange.d.ts.map +0 -1
  609. package/scripts/resetAllEndorsementsForGroup.d.ts.map +0 -1
  610. package/scripts/resetEnTranslationForGroup.d.ts.map +0 -1
  611. package/scripts/setDomainLocales.d.ts.map +0 -1
  612. package/scripts/setLanguageOnGroupCommunitesFromUrl.d.ts.map +0 -1
  613. package/scripts/setMemberOfAll.d.ts.map +0 -1
  614. package/scripts/setNewUserForContentOfCommunity.d.ts.map +0 -1
  615. package/scripts/setOfficialStatusOnAllPostsForCommunity.d.ts.map +0 -1
  616. package/scripts/setUserOnAll.d.ts.map +0 -1
  617. package/scripts/showCategoryForGroup.d.ts.map +0 -1
  618. package/scripts/showOldActivityTypes.d.ts.map +0 -1
  619. package/scripts/showPostsMissingCategoryForGroup.d.ts.map +0 -1
  620. package/scripts/showStatuses.d.ts.map +0 -1
  621. package/scripts/showUniqueVotersInCommunity.d.ts.map +0 -1
  622. package/scripts/showUserAgentsAndIpsForEmails.d.ts.map +0 -1
  623. package/scripts/simpleExportForGroupsForCommunity.d.ts.map +0 -1
  624. package/scripts/simpleExportForPointsForCommunity.d.ts.map +0 -1
  625. package/scripts/simpleExportForPostsForCommunity.d.ts.map +0 -1
  626. package/scripts/testForEndorsments.d.ts.map +0 -1
  627. package/scripts/undeleteGroupAndAllContent.d.ts.map +0 -1
  628. package/scripts/undeletePost.d.ts.map +0 -1
  629. package/scripts/unlinkSsn.d.ts.map +0 -1
  630. package/scripts/updateFromAlthingi.d.ts.map +0 -1
  631. package/server.d.ts.map +0 -1
  632. package/utils/copyGroup.js +0 -246
  633. package/utils/loggerTs.d.ts +0 -4
  634. package/utils/loggerTs.d.ts.map +0 -1
  635. package/utils/ypLanguages.d.ts +0 -18
  636. package/utils/ypLanguages.d.ts.map +0 -1
  637. /package/{agents/tools/updateCommunityWorkflow.js → dist/active-citizen/llms/imageGeneration/iImageGenerator.js} +0 -0
  638. /package/{migrations/270724_createUsersAndAdminsForClasses.cjs → dist/migrations/zzzz_createUsersAndAdminsForClasses.cjs} +0 -0
@@ -53,28 +53,33 @@ export class AssistantController {
53
53
  const { agentId } = req.params;
54
54
  let lastStatusMessage = await this.getLastStatusMessageFromDB(parseInt(agentId));
55
55
  if (!lastStatusMessage) {
56
- return res.status(404).send("No status message found.");
56
+ res.status(404).send("No status message found.");
57
57
  }
58
58
  const regex = /<markdownReport>([\s\S]*?)<\/markdownReport>/i;
59
- const match = lastStatusMessage.match(regex);
59
+ const match = lastStatusMessage ? lastStatusMessage.match(regex) : null;
60
60
  console.debug(`match: ${JSON.stringify(match, null, 2)}`);
61
61
  if (!match || match.length < 2) {
62
62
  console.error("No <markdownReport>...</markdownReport> content found.");
63
- return res
63
+ res
64
64
  .status(400)
65
65
  .send("No <markdownReport>...</markdownReport> content found.");
66
66
  }
67
- const markdownContent = match[1];
67
+ const markdownContent = match ? match[1] : null;
68
+ if (!markdownContent) {
69
+ console.error("No markdown content found.");
70
+ res.status(400).send("No markdown content found.");
71
+ return;
72
+ }
68
73
  const htmlContent = await marked(markdownContent);
69
74
  const docxBuffer = (await HTMLtoDOCX(htmlContent));
70
75
  console.debug(`docxBuffer: ${docxBuffer.length}`);
71
76
  res.setHeader("Content-Type", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
72
77
  res.setHeader("Content-disposition", 'attachment; filename="converted.docx"');
73
- return res.send(docxBuffer);
78
+ res.send(docxBuffer);
74
79
  }
75
80
  catch (error) {
76
81
  console.error("Error converting Markdown to DOCX:", error);
77
- return res.status(500).send("Server error");
82
+ res.status(500).send("Server error");
78
83
  }
79
84
  };
80
85
  this.advanceOrStopCurrentWorkflowStep = async (req, res) => {
@@ -115,7 +120,8 @@ export class AssistantController {
115
120
  this.getAgentConfigurationAnswers = async (req, res) => {
116
121
  try {
117
122
  if (!req.user) {
118
- return res.status(401).json({ error: "Unauthorized" });
123
+ res.status(401).json({ error: "Unauthorized" });
124
+ return;
119
125
  }
120
126
  const subscriptionId = parseInt(req.params.subscriptionId);
121
127
  // Make sure the user can only fetch their own subscription
@@ -126,25 +132,26 @@ export class AssistantController {
126
132
  },
127
133
  });
128
134
  if (!subscription) {
129
- return res.status(404).json({ error: "Subscription not found" });
135
+ res.status(404).json({ error: "Subscription not found" });
130
136
  }
131
137
  // Extract the requiredQuestionsAnswered from subscription.configuration
132
- const answers = subscription.configuration?.requiredQuestionsAnswered || [];
133
- return res.status(200).json({
138
+ const answers = subscription?.configuration?.requiredQuestionsAnswered || [];
139
+ res.status(200).json({
134
140
  success: true,
135
141
  data: answers,
136
142
  });
137
143
  }
138
144
  catch (error) {
139
145
  console.error("Error retrieving subscription agent configuration:", error);
140
- return res.status(500).json({ error: error.message });
146
+ res.status(500).json({ error: error.message });
141
147
  }
142
148
  };
143
149
  this.getUpdatedWorkflow = async (req, res) => {
144
150
  const { runId } = req.params;
145
151
  const userId = req.user?.id;
146
152
  if (!userId) {
147
- return res.status(401).json({ error: "Unauthorized" });
153
+ res.status(401).json({ error: "Unauthorized" });
154
+ return;
148
155
  }
149
156
  try {
150
157
  const agentRun = await YpAgentProductRun.findOne({
@@ -188,7 +195,7 @@ export class AssistantController {
188
195
  const { requiredQuestionsAnswers } = req.body;
189
196
  const subscriptionId = parseInt(req.params.subscriptionId);
190
197
  try {
191
- const memoryId = this.getMemoryUserId(req);
198
+ const memoryId = this.getMemoryRedisKey(req);
192
199
  // Get subscription
193
200
  const subscription = await YpSubscription.findOne({
194
201
  where: {
@@ -208,85 +215,62 @@ export class AssistantController {
208
215
  catch (error) {
209
216
  console.error("Error saving subscription:", error);
210
217
  res.sendStatus(500);
211
- return;
212
218
  }
213
219
  res.sendStatus(200);
214
220
  };
215
221
  this.updateAssistantMemoryLoginStatus = async (req, res) => {
216
- if (req.user && req.params.domainId) {
217
- try {
218
- let memoryId = this.getMemoryUserId(req);
219
- let redisKey = YpAgentAssistant.getRedisKey(memoryId);
220
- console.log(`Starting to update login status for memoryId: ${memoryId} with user: ${req.user?.name}`);
221
- let memory = (await YpAgentAssistant.loadMemoryFromRedis(memoryId));
222
- if (memory) {
223
- memory.currentUser = req.user;
224
- await req.redisClient.set(redisKey, JSON.stringify(memory));
225
- //TODO: Check if needed, wait for 300ms to make sure redis is saved
226
- await new Promise((resolve) => setTimeout(resolve, 300));
227
- console.log(`Updated login status for memoryId: ${memoryId} with user: ${req.user?.name}`);
228
- }
229
- else {
230
- console.error(`No memory found to update login status for id ${memoryId}`);
231
- }
232
- res.sendStatus(200);
233
- }
234
- catch (error) {
235
- console.error("Error updating login status:", error);
236
- res.sendStatus(500);
237
- }
222
+ if (!req.user) {
223
+ res.status(401).json({ error: "Unauthorized" });
224
+ return;
238
225
  }
239
- else {
240
- res.sendStatus(401);
226
+ try {
227
+ const memory = await this.loadMemoryWithOwnership(req, res);
228
+ if (!memory)
229
+ return; // already 401/403 if not allowed
230
+ // Now memory is either newly created or already owned by this user (or still guest if you didn't upgrade)
231
+ memory.currentUser = req.user;
232
+ await req.redisClient.set(memory.redisKey, JSON.stringify(memory));
233
+ res.sendStatus(200);
241
234
  }
242
- };
243
- this.defaultStartAgentMode = "agent_selection_mode";
244
- this.getMemoryUserId = (req) => {
245
- const userIdentifier = req.body.clientMemoryUuid || req.query.clientMemoryUuid;
246
- if (!userIdentifier) {
247
- throw new Error("No user identifier found");
235
+ catch (error) {
236
+ console.error("Error updating login status:", error);
237
+ res.sendStatus(500);
248
238
  }
249
- return `${req.params.domainId}-${userIdentifier}`;
250
239
  };
240
+ this.defaultStartAgentMode = "agent_selection_mode";
251
241
  this.clearChatLog = async (req, res) => {
252
242
  try {
253
- const memoryId = this.getMemoryUserId(req);
254
- console.log(`Clearing chat log for memoryId: ${memoryId}`);
255
- const redisKey = YpAgentAssistant.getRedisKey(memoryId);
256
- const memory = (await YpAgentAssistant.loadMemoryFromRedis(memoryId));
257
- if (memory) {
258
- if (!memory.allChatLogs) {
259
- memory.allChatLogs = [];
260
- }
261
- if (memory.chatLog) {
262
- memory.allChatLogs = [...memory.allChatLogs, ...memory.chatLog];
263
- }
264
- memory.chatLog = [];
265
- memory.currentMode = this.defaultStartAgentMode;
266
- memory.haveShownConfigurationWidget = false;
267
- memory.haveShownLoginWidget = false;
268
- memory.currentAgentStatus = undefined;
269
- if (!req.user) {
270
- memory.currentUser = undefined;
271
- }
272
- await req.redisClient.set(redisKey, JSON.stringify(memory));
273
- if (req.user) {
274
- //TODO: REMOVE THIS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
275
- await YpSubscription.destroy({
276
- where: {
277
- user_id: req.user?.id,
278
- },
279
- });
280
- }
281
- else {
282
- console.warn("No user found to clear runs for");
283
- }
284
- res.sendStatus(200);
243
+ const memory = await this.loadMemoryWithOwnership(req, res);
244
+ if (!memory)
245
+ return; // loadMemoryWithOwnership has already sent 401/403 if needed
246
+ // Now we know this request is allowed to see/modify the memory
247
+ if (!memory.allChatLogs) {
248
+ memory.allChatLogs = [];
249
+ }
250
+ if (memory.chatLog) {
251
+ memory.allChatLogs = [...memory.allChatLogs, ...memory.chatLog];
252
+ }
253
+ memory.chatLog = [];
254
+ memory.currentMode = this.defaultStartAgentMode;
255
+ memory.haveShownConfigurationWidget = false;
256
+ memory.haveShownLoginWidget = false;
257
+ memory.currentAgentStatus = undefined;
258
+ if (!req.user && memory.ownerUserId === null) {
259
+ memory.currentUser = undefined;
260
+ }
261
+ await req.redisClient.set(memory.redisKey, JSON.stringify(memory));
262
+ if (req.user) {
263
+ //TODO: REMOVE THIS when we have multi workflows
264
+ await YpSubscription.destroy({
265
+ where: {
266
+ user_id: req.user?.id,
267
+ },
268
+ });
285
269
  }
286
270
  else {
287
- console.warn(`No memory found to clear for id ${memoryId}`);
288
- res.sendStatus(200);
271
+ console.warn("No user found to clear runs for");
289
272
  }
273
+ res.sendStatus(200);
290
274
  }
291
275
  catch (error) {
292
276
  console.error("Error clearing chat log:", error);
@@ -294,52 +278,17 @@ export class AssistantController {
294
278
  }
295
279
  };
296
280
  this.getMemory = async (req, res) => {
297
- let memory;
298
- let memoryId;
299
- try {
300
- memoryId = this.getMemoryUserId(req);
301
- console.log(`Getting memory for memoryId: ${memoryId}`);
302
- if (memoryId) {
303
- memory = (await YpAgentAssistant.loadMemoryFromRedis(memoryId));
304
- if (!memory) {
305
- console.log(`memory not found for id ${memoryId}`);
306
- memory = {
307
- redisKey: YpAgentAssistant.getRedisKey(memoryId),
308
- chatLog: [],
309
- currentMode: this.defaultStartAgentMode,
310
- modeHistory: [],
311
- modeData: undefined,
312
- };
313
- await req.redisClient.set(memory.redisKey, JSON.stringify(memory));
314
- }
315
- else {
316
- if (req.user && !memory.currentUser) {
317
- memory.currentUser = req.user;
318
- }
319
- else if (!req.user && memory.currentUser) {
320
- memory.currentUser = undefined;
321
- }
322
- await req.redisClient.set(memory.redisKey, JSON.stringify(memory));
323
- }
324
- }
325
- }
326
- catch (error) {
327
- console.log(error);
328
- res.sendStatus(500);
281
+ const memory = await this.loadMemoryWithOwnership(req, res);
282
+ if (!memory)
329
283
  return;
330
- }
331
- if (memory) {
332
- res.send(memory);
333
- }
334
- else {
335
- console.error(`No memory found for memoryId: ${memoryId}`);
336
- res.send({});
337
- }
284
+ console.log(`Getting memory at key: ${memory.redisKey}`);
285
+ res.json(memory);
338
286
  };
339
287
  // New API endpoints for workflow management
340
288
  this.getRunningWorkflowConversations = async (req, res) => {
341
289
  if (!req.user || !req.user.id) {
342
- return res.status(401).json({ error: "Unauthorized" });
290
+ res.status(401).json({ error: "Unauthorized" });
291
+ return;
343
292
  }
344
293
  try {
345
294
  const workflows = await this.workflowConversationManager.getRunningWorkflowConversationsForUser(req.user.id);
@@ -356,7 +305,8 @@ export class AssistantController {
356
305
  };
357
306
  this.getAllWorkflowConversations = async (req, res) => {
358
307
  if (!req.user || !req.user.id) {
359
- return res.status(401).json({ error: "Unauthorized" });
308
+ res.status(401).json({ error: "Unauthorized" });
309
+ return;
360
310
  }
361
311
  try {
362
312
  const workflows = await this.workflowConversationManager.getWorkflowConversationsForUser(req.user.id);
@@ -373,7 +323,8 @@ export class AssistantController {
373
323
  };
374
324
  this.connectToWorkflowConversation = async (req, res) => {
375
325
  if (!req.user || !req.user.id) {
376
- return res.status(401).json({ error: "Unauthorized" });
326
+ res.status(401).json({ error: "Unauthorized" });
327
+ return;
377
328
  }
378
329
  try {
379
330
  const { workflowConversationId, connectionData } = req.body;
@@ -418,10 +369,102 @@ export class AssistantController {
418
369
  const status = await this.agentQueueManager.getAgentStatus(agentId);
419
370
  return status ? status.messages[status.messages.length - 1] : null;
420
371
  }
372
+ getMemoryRedisKey(req) {
373
+ const userIdentifier = req.body.clientMemoryUuid || req.query.clientMemoryUuid;
374
+ return `assistant:${ /*req.params.domainId*/1}:${userIdentifier}`;
375
+ }
376
+ async loadMemoryWithOwnership(req, res) {
377
+ // Get the calling function name from the stack trace
378
+ const stackTrace = new Error().stack;
379
+ const callerLine = stackTrace?.split("\n")[2]; // First line is Error, second is current function, third is caller
380
+ const callerMatch = callerLine?.match(/at\s+(.*)\s+\(/);
381
+ const caller = callerMatch ? callerMatch[1] : "unknown";
382
+ console.debug(`loadMemoryWithOwnership called by: ${caller}`);
383
+ console.debug(`loadMemoryWithOwnership: ${JSON.stringify(req.body, null, 2)}`);
384
+ const redisKey = this.getMemoryRedisKey(req);
385
+ console.debug(`loadMemoryWithOwnership: redisKey: ${redisKey}`);
386
+ try {
387
+ const rawMemory = await req.redisClient.get(redisKey);
388
+ let memory = rawMemory
389
+ ? JSON.parse(rawMemory)
390
+ : null;
391
+ // If no memory, create new
392
+ if (!memory) {
393
+ console.debug(`loadMemoryWithOwnership: creating new memory`);
394
+ memory = {
395
+ redisKey,
396
+ chatLog: [],
397
+ completeChatLog: [],
398
+ currentMode: this.defaultStartAgentMode,
399
+ modeHistory: [],
400
+ modeData: undefined,
401
+ ownerUserId: null,
402
+ };
403
+ if (req.user) {
404
+ console.debug(`loadMemoryWithOwnership: setting ownerUserId to ${req.user.id}`);
405
+ memory.ownerUserId = req.user.id;
406
+ }
407
+ else {
408
+ console.debug(`loadMemoryWithOwnership: no user in request`);
409
+ }
410
+ await req.redisClient.set(redisKey, JSON.stringify(memory));
411
+ const rawAfterSet = await req.redisClient.get(redisKey);
412
+ console.log("loadMemoryWithOwnership: After set, raw in Redis is:", rawAfterSet);
413
+ console.debug(`loadMemoryWithOwnership: returning new memory`);
414
+ return memory;
415
+ }
416
+ else {
417
+ console.debug(`loadMemoryWithOwnership: memory already exists`);
418
+ console.debug(`loadMemoryWithOwnership: memory: ${JSON.stringify(memory, null, 2)}`);
419
+ }
420
+ // If memory is owned by someone
421
+ if (memory.ownerUserId !== null) {
422
+ console.debug(`loadMemoryWithOwnership: memory is owned by ${memory.ownerUserId}`);
423
+ if (!req.user) {
424
+ console.debug(`loadMemoryWithOwnership: no user in request`);
425
+ res.status(401).json({ error: "Unauthorized" });
426
+ return;
427
+ }
428
+ else {
429
+ console.debug(`loadMemoryWithOwnership: user in request`);
430
+ }
431
+ if (memory.ownerUserId !== req.user.id) {
432
+ console.debug(`loadMemoryWithOwnership: ownerUserId does not match ${memory.ownerUserId} !== ${req.user.id}`);
433
+ res.status(403).json({ error: "Forbidden" });
434
+ return;
435
+ }
436
+ else {
437
+ console.debug(`loadMemoryWithOwnership: ownerUserId matches ${memory.ownerUserId} === ${req.user.id}`);
438
+ }
439
+ // Same user => fine
440
+ return memory;
441
+ }
442
+ else {
443
+ // memory is guest
444
+ if (req.user) {
445
+ // optionally upgrade
446
+ memory.ownerUserId = req.user.id;
447
+ await req.redisClient.set(redisKey, JSON.stringify(memory));
448
+ console.debug(`loadMemoryWithOwnership: returning memory with ownerUserId ${memory.ownerUserId}`);
449
+ }
450
+ else {
451
+ console.debug(`loadMemoryWithOwnership: returning memory with ownerUserId null`);
452
+ }
453
+ return memory;
454
+ }
455
+ }
456
+ catch (error) {
457
+ console.error("Error loading memory:", error);
458
+ res.status(500).json({ error: "Internal server error" });
459
+ return;
460
+ }
461
+ }
421
462
  async startVoiceSession(req, res) {
422
463
  try {
423
464
  const { wsClientId, currentMode } = req.body;
424
- const memoryId = this.getMemoryUserId(req);
465
+ const memory = await this.loadMemoryWithOwnership(req, res);
466
+ if (!memory)
467
+ return;
425
468
  console.log(`Starting chat session for client: ${wsClientId}`);
426
469
  let oldVoiceAssistant = this.voiceAssistantInstances.get("voiceAssistant");
427
470
  if (oldVoiceAssistant) {
@@ -433,7 +476,7 @@ export class AssistantController {
433
476
  oldChatAssistant.destroy();
434
477
  this.chatAssistantInstances.delete("mainAssistant");
435
478
  }
436
- const assistant = new YpAgentAssistant(wsClientId, this.wsClients, req.redisClient, true, parseInt(req.params.domainId), memoryId);
479
+ const assistant = new YpAgentAssistant(wsClientId, this.wsClients, req.redisClient, true, memory.redisKey, parseInt(req.params.domainId));
437
480
  this.voiceAssistantInstances.set("voiceAssistant", assistant);
438
481
  await assistant.initialize();
439
482
  res.status(200).json({
@@ -448,9 +491,10 @@ export class AssistantController {
448
491
  }
449
492
  async sendChatMessage(req, res) {
450
493
  try {
494
+ const memory = await this.loadMemoryWithOwnership(req, res);
495
+ if (!memory)
496
+ return; // ends early if 401/403
451
497
  const { wsClientId, chatLog, currentMode } = req.body;
452
- const memoryId = this.getMemoryUserId(req);
453
- console.log(`Starting chat session for client: ${wsClientId} with currentMode: ${currentMode}`);
454
498
  const oldVoiceAssistant = this.voiceAssistantInstances.get("voiceAssistant");
455
499
  if (oldVoiceAssistant) {
456
500
  oldVoiceAssistant.destroy();
@@ -461,7 +505,7 @@ export class AssistantController {
461
505
  oldAssistant.destroy();
462
506
  this.chatAssistantInstances.delete("mainAssistant");
463
507
  }
464
- const assistant = new YpAgentAssistant(wsClientId, this.wsClients, req.redisClient, false, parseInt(req.params.domainId), memoryId);
508
+ const assistant = new YpAgentAssistant(wsClientId, this.wsClients, req.redisClient, false, memory.redisKey, parseInt(req.params.domainId));
465
509
  this.chatAssistantInstances.set("mainAssistant", assistant);
466
510
  assistant.conversation(chatLog);
467
511
  res.status(200).json({
@@ -22,23 +22,24 @@ export class PolicySynthAgentsController {
22
22
  console.log(`Attempting to replace memory for agent ${agentId} in group ${groupId}`);
23
23
  if (!memory || Object.keys(memory).length === 0) {
24
24
  console.log(`Received empty memory for agent ${agentId}`);
25
- return res.status(400).json({ error: "Cannot save empty memory" });
25
+ res.status(400).json({ error: "Cannot save empty memory" });
26
+ return;
26
27
  }
27
28
  try {
28
29
  JSON.parse(JSON.stringify(memory));
29
30
  }
30
31
  catch (jsonError) {
31
32
  console.log(`Received invalid JSON for agent ${agentId}`);
32
- return res
33
- .status(400)
34
- .json({ error: "Invalid JSON format for memory" });
33
+ res.status(400).json({ error: "Invalid JSON format for memory" });
34
+ return;
35
35
  }
36
36
  const memoryKey = await this.agentManager.getSubAgentMemoryKey(groupId, parseInt(agentId));
37
37
  if (!memoryKey) {
38
38
  console.log(`Memory key not found for agent ${agentId}`);
39
- return res
39
+ res
40
40
  .status(404)
41
41
  .json({ error: "Memory key not found for the specified agent" });
42
+ return;
42
43
  }
43
44
  console.log(`Memory key found: ${memoryKey}`);
44
45
  await req.redisClient.set(memoryKey, JSON.stringify(memory));
@@ -53,15 +54,29 @@ export class PolicySynthAgentsController {
53
54
  else {
54
55
  res.status(500).json({ error: "An unexpected error occurred" });
55
56
  }
57
+ return;
56
58
  }
57
59
  };
58
60
  this.addExistingConnector = async (req, res) => {
59
- const { groupId, agentId, type } = req.params;
61
+ const { groupId, agentId } = req.params;
60
62
  const { connectorId } = req.body;
63
+ let type;
64
+ if (req.path.includes("/inputConnectors/")) {
65
+ type = "input";
66
+ }
67
+ else if (req.path.includes("/outputConnectors/")) {
68
+ type = "output";
69
+ }
70
+ else {
71
+ // This case should ideally not be reached if routes are set up correctly
72
+ res.status(400).send("Could not determine connector type from path");
73
+ return;
74
+ }
61
75
  if (!groupId || !agentId || !connectorId) {
62
- return res
76
+ res
63
77
  .status(400)
64
78
  .send("Group ID, agent ID and connector ID (input/output) are required");
79
+ return;
65
80
  }
66
81
  try {
67
82
  await this.agentConnectorManager.addExistingConnector(parseInt(groupId), parseInt(agentId), parseInt(connectorId), type);
@@ -86,15 +101,17 @@ export class PolicySynthAgentsController {
86
101
  const memoryKey = await this.agentManager.getSubAgentMemoryKey(groupId, parseInt(agentId));
87
102
  if (!memoryKey) {
88
103
  console.log(`Memory key not found for agent ${agentId}`);
89
- return res
104
+ res
90
105
  .status(404)
91
106
  .json({ error: "Memory key not found for the specified agent" });
107
+ return;
92
108
  }
93
109
  console.log(`Memory key found: ${memoryKey}`);
94
110
  const memoryContents = await req.redisClient.get(memoryKey);
95
111
  if (!memoryContents) {
96
112
  console.log(`Memory contents not found for key ${memoryKey}`);
97
- return res.status(404).json({ error: "Memory contents not found" });
113
+ res.status(404).json({ error: "Memory contents not found" });
114
+ return;
98
115
  }
99
116
  console.log(`Memory contents retrieved successfully`);
100
117
  const parsedMemoryContents = JSON.parse(memoryContents);
@@ -108,6 +125,7 @@ export class PolicySynthAgentsController {
108
125
  else {
109
126
  res.status(500).json({ error: "An unexpected error occurred" });
110
127
  }
128
+ return;
111
129
  }
112
130
  };
113
131
  this.getAgent = async (req, res) => {
@@ -118,6 +136,7 @@ export class PolicySynthAgentsController {
118
136
  catch (error) {
119
137
  console.error("Error in getAgent:", error);
120
138
  res.status(500).send("Internal Server Error");
139
+ return;
121
140
  }
122
141
  };
123
142
  this.getAgentAiModels = async (req, res) => {
@@ -163,13 +182,15 @@ export class PolicySynthAgentsController {
163
182
  await this.agentConnectorManager.updateConnectorConfiguration(nodeId, updatedConfig);
164
183
  }
165
184
  else {
166
- return res.status(400).send("Invalid node type");
185
+ res.status(400).send("Invalid node type");
186
+ return;
167
187
  }
168
188
  res.json({ message: `${nodeType} configuration updated successfully` });
169
189
  }
170
190
  catch (error) {
171
191
  console.error(`Error updating ${nodeType} configuration:`, error);
172
192
  res.status(500).send("Internal Server Error");
193
+ return;
173
194
  }
174
195
  };
175
196
  this.createInputConnector = async (req, res) => {
@@ -388,8 +409,8 @@ export class PolicySynthAgentsController {
388
409
  this.router.get("/:groupId/:id/ai-models", auth.can("view group"), this.getAgentAiModels);
389
410
  this.router.delete("/:groupId/:agentId/ai-models/:modelId", auth.can("edit group"), this.removeAgentAiModel);
390
411
  this.router.post("/:groupId/:agentId/ai-models", auth.can("edit group"), this.addAgentAiModel);
391
- this.router.get("/:groupId/:agentId/memory", auth.can("view group"), this.getAgentMemory);
392
412
  this.router.put("/:groupId/:agentId/memory", auth.can("edit group"), this.replaceAgentMemory);
393
- this.router.post("/:groupId/:agentId/:type(input|output)Connectors/existing", auth.can("edit group"), this.addExistingConnector);
413
+ this.router.post("/:groupId/:agentId/inputConnectors/existing", auth.can("edit group"), this.addExistingConnector);
414
+ this.router.post("/:groupId/:agentId/outputConnectors/existing", auth.can("edit group"), this.addExistingConnector);
394
415
  }
395
416
  }
@@ -336,6 +336,99 @@ export class NewAiModelSetup {
336
336
  else {
337
337
  console.log("OpenAI model already exists: GPT-4.5 Preview updating");
338
338
  }
339
+ const openAio3 = await PsAiModel.findOne({
340
+ where: { name: "o3" },
341
+ });
342
+ const openAio3Config = {
343
+ type: PsAiModelType.TextReasoning,
344
+ modelSize: PsAiModelSize.Medium,
345
+ provider: "openai",
346
+ prices: {
347
+ costInTokensPerMillion: 10.0,
348
+ costOutTokensPerMillion: 40.0,
349
+ cacheCostInTokensPerMillion: 2.5,
350
+ currency: "USD",
351
+ },
352
+ maxTokensOut: 100000,
353
+ defaultTemperature: 0.0,
354
+ model: "o3",
355
+ active: true,
356
+ };
357
+ if (!openAio3) {
358
+ await PsAiModel.create({
359
+ name: "o3",
360
+ organization_id: 1,
361
+ user_id: userId,
362
+ configuration: openAio3Config,
363
+ });
364
+ console.log("Created OpenAI model: o3");
365
+ }
366
+ else {
367
+ console.log("OpenAI model already exists: o3 updating");
368
+ openAio3.set("configuration", openAio3Config);
369
+ openAio3.changed("configuration", true);
370
+ await openAio3.save();
371
+ }
372
+ const openAio4mini = await PsAiModel.findOne({
373
+ where: { name: "o4 mini" },
374
+ });
375
+ const openAio4miniConfig = {
376
+ type: PsAiModelType.TextReasoning,
377
+ modelSize: PsAiModelSize.Small,
378
+ provider: "openai",
379
+ prices: {
380
+ costInTokensPerMillion: 1.1,
381
+ costOutTokensPerMillion: 4.4,
382
+ cacheCostInTokensPerMillion: 0.275,
383
+ currency: "USD",
384
+ },
385
+ maxTokensOut: 100000,
386
+ defaultTemperature: 0.0,
387
+ model: "o4-mini",
388
+ active: true,
389
+ };
390
+ if (!openAio4mini) {
391
+ await PsAiModel.create({
392
+ name: "o4 mini",
393
+ organization_id: 1,
394
+ user_id: userId,
395
+ configuration: openAio4miniConfig,
396
+ });
397
+ console.log("Created OpenAI model: o4 mini");
398
+ }
399
+ else {
400
+ console.log("OpenAI model already exists: o4 mini");
401
+ }
402
+ const openAiGpt41 = await PsAiModel.findOne({
403
+ where: { name: "GPT-4.1" },
404
+ });
405
+ const openAiGpt41Config = {
406
+ type: PsAiModelType.Text,
407
+ modelSize: PsAiModelSize.Medium,
408
+ provider: "openai",
409
+ prices: {
410
+ costInTokensPerMillion: 2,
411
+ costOutTokensPerMillion: 8,
412
+ currency: "USD",
413
+ cacheCostInTokensPerMillion: 0.5
414
+ },
415
+ maxTokensOut: 100000,
416
+ defaultTemperature: 0.7,
417
+ model: "gpt-4.1",
418
+ active: true,
419
+ };
420
+ if (!openAiGpt41) {
421
+ await PsAiModel.create({
422
+ name: "GPT-4.1",
423
+ organization_id: 1,
424
+ user_id: userId,
425
+ configuration: openAiGpt41Config,
426
+ });
427
+ console.log("Created OpenAI model: GPT-4.1");
428
+ }
429
+ else {
430
+ console.log("OpenAI model already exists: GPT-4.1");
431
+ }
339
432
  }
340
433
  /**
341
434
  * Seeds Google models.
@@ -533,6 +626,9 @@ export class NewAiModelSetup {
533
626
  { name: "Gemini 2.0 Flash", envKey: "GEMINI_API_KEY" },
534
627
  { name: "o1 24", envKey: "OPENAI_API_KEY" },
535
628
  { name: "o3 mini", envKey: "OPENAI_API_KEY" },
629
+ { name: "o4 mini", envKey: "OPENAI_API_KEY" },
630
+ { name: "GPT-4.1", envKey: "OPENAI_API_KEY" },
631
+ { name: "o3", envKey: "OPENAI_API_KEY" },
536
632
  ];
537
633
  const groupAccessConfig = [];
538
634
  for (const { name, envKey } of modelsMapping) {