@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.
- package/active-citizen/engine/allOurIdeas/explainAnswersAssistant.js +11 -1
- package/active-citizen/llms/baseChatBot.js +8 -75
- package/active-citizen/llms/imageGeneration/chatGptImageGenerator.js +56 -0
- package/active-citizen/llms/imageGeneration/collectionImageGenerator.js +6 -0
- package/agents/assistants/agentAssistant.js +3 -2
- package/agents/assistants/baseAssistant.js +7 -30
- package/agents/assistants/baseAssistantWithVoice.js +3 -3
- package/agents/assistants/voiceAssistant.js +2 -2
- package/agents/controllers/agentProductController.js +2 -1
- package/agents/controllers/agentSubscriptionController.js +20 -11
- package/agents/controllers/assistantsController.js +171 -127
- package/agents/controllers/policySynthAgents.js +33 -12
- package/agents/managers/newAiModelSetup.js +96 -0
- package/agents/managers/subscriptionManager.js +2 -2
- package/app.js +12 -12
- package/authorization.cjs +4 -0
- package/controllers/allOurIdeas.js +2 -1
- package/controllers/communities.cjs +47 -1
- package/controllers/groups.cjs +67 -4
- package/controllers/index.cjs +7 -7
- package/controllers/nonSpa.cjs +1 -1
- package/dist/active-citizen/controllers/activities.cjs +174 -0
- package/dist/active-citizen/controllers/news_feeds.cjs +96 -0
- package/dist/active-citizen/controllers/notifications.cjs +243 -0
- package/dist/active-citizen/controllers/recommendations.cjs +280 -0
- package/dist/active-citizen/engine/allOurIdeas/aiHelper.js +204 -0
- package/dist/active-citizen/engine/allOurIdeas/explainAnswersAssistant.js +66 -0
- package/dist/active-citizen/engine/allOurIdeas/iconGenerator.js +38 -0
- package/dist/active-citizen/engine/analytics/export_anon_community_activities.js +334 -0
- package/dist/active-citizen/engine/analytics/importer.js +308 -0
- package/dist/active-citizen/engine/analytics/manager.cjs +377 -0
- package/dist/active-citizen/engine/analytics/plausible/manager.cjs +500 -0
- package/dist/active-citizen/engine/analytics/statsCalc.cjs +194 -0
- package/dist/active-citizen/engine/analytics/utils.cjs +369 -0
- package/dist/active-citizen/engine/marketing/campaign.cjs +90 -0
- package/dist/active-citizen/engine/moderation/fraud/CreateFraudAuditReport.cjs +313 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudBase.cjs +239 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudDeleteBase.cjs +211 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudDeleteEndorsements.cjs +120 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudDeletePointQualities.cjs +114 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudDeletePoints.cjs +101 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudDeletePosts.cjs +84 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudDeleteRatings.cjs +15 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudGetBase.cjs +133 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudGetEndorsements.cjs +185 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudGetPointQualities.cjs +184 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudGetPoints.cjs +170 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudGetPosts.cjs +109 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudGetRatings.cjs +140 -0
- package/dist/active-citizen/engine/moderation/fraud/FraudScannerNotifier.cjs +279 -0
- package/dist/active-citizen/engine/moderation/get_moderation_items.cjs +386 -0
- package/dist/active-citizen/engine/moderation/image_labeling/CommunityLabeling.cjs +49 -0
- package/dist/active-citizen/engine/moderation/image_labeling/GroupLabeling.cjs +68 -0
- package/dist/active-citizen/engine/moderation/image_labeling/ImageLabelingBase.cjs +288 -0
- package/dist/active-citizen/engine/moderation/image_labeling/PointLabeling.cjs +33 -0
- package/dist/active-citizen/engine/moderation/image_labeling/PostLabeling.cjs +56 -0
- package/dist/active-citizen/engine/moderation/perspective_api_client.cjs +106 -0
- package/dist/active-citizen/engine/moderation/process_moderation_items.cjs +344 -0
- package/dist/active-citizen/engine/moderation/toxicity_analysis.cjs +810 -0
- package/dist/active-citizen/engine/news_feeds/activity_and_item_index_definitions.cjs +15 -0
- package/dist/active-citizen/engine/news_feeds/generate_dynamically.cjs +362 -0
- package/dist/active-citizen/engine/news_feeds/generate_from_notifications.cjs +268 -0
- package/dist/active-citizen/engine/news_feeds/news_feeds_utils.cjs +439 -0
- package/dist/active-citizen/engine/notifications/emails_utils.cjs +569 -0
- package/dist/active-citizen/engine/notifications/generate_point_notifications.cjs +233 -0
- package/dist/active-citizen/engine/notifications/generate_post_notifications.cjs +118 -0
- package/dist/active-citizen/engine/notifications/generate_post_status_change_notifications.cjs +41 -0
- package/dist/active-citizen/engine/notifications/notifications_utils.cjs +148 -0
- package/dist/active-citizen/engine/notifications/point_delivery.cjs +54 -0
- package/dist/active-citizen/engine/notifications/post_delivery.cjs +31 -0
- package/dist/active-citizen/engine/notifications/process_delayed_notifications.cjs +471 -0
- package/dist/active-citizen/engine/notifications/process_general_notifications.cjs +212 -0
- package/dist/active-citizen/engine/old/exporters/categories_dataset.js +153 -0
- package/dist/active-citizen/engine/old/exporters/dataset_tools.js +80 -0
- package/dist/active-citizen/engine/old/exporters/sentiment_dataset.js +157 -0
- package/dist/active-citizen/engine/recommendations/events_importer.cjs +139 -0
- package/dist/active-citizen/engine/recommendations/events_manager.cjs +212 -0
- package/dist/active-citizen/engine/reports/add_points_to_sheet.cjs +83 -0
- package/dist/active-citizen/engine/reports/commonUtils.js +75 -0
- package/dist/active-citizen/engine/reports/common_utils.cjs +740 -0
- package/dist/active-citizen/engine/reports/docx_group_report.cjs +596 -0
- package/dist/active-citizen/engine/reports/xlsAllOurIdeasExport.js +232 -0
- package/dist/active-citizen/engine/reports/xls_community_users_report.cjs +277 -0
- package/dist/active-citizen/engine/reports/xls_group_report.cjs +718 -0
- package/dist/active-citizen/llms/baseChatBot.js +183 -0
- package/dist/active-citizen/llms/imageGeneration/chatGptImageGenerator.js +56 -0
- package/dist/active-citizen/llms/imageGeneration/collectionImageGenerator.js +109 -0
- package/dist/active-citizen/llms/imageGeneration/dalleImageGenerator.js +84 -0
- package/dist/active-citizen/llms/imageGeneration/fluxImageGenerator.js +49 -0
- package/dist/active-citizen/llms/imageGeneration/imageProcessorService.js +64 -0
- package/dist/active-citizen/llms/imageGeneration/imagenImageGenerator.js +107 -0
- package/dist/active-citizen/llms/imageGeneration/s3Service.js +110 -0
- package/dist/active-citizen/llms/llmTranslation.js +472 -0
- package/dist/active-citizen/models/ac_activity.cjs +216 -0
- package/dist/active-citizen/models/ac_background_job.cjs +109 -0
- package/dist/active-citizen/models/ac_campaign.cjs +97 -0
- package/dist/active-citizen/models/ac_client_activity.cjs +23 -0
- package/dist/active-citizen/models/ac_delayed_notification.cjs +43 -0
- package/dist/active-citizen/models/ac_following.cjs +43 -0
- package/dist/active-citizen/models/ac_list.cjs +68 -0
- package/dist/active-citizen/models/ac_list_users.cjs +19 -0
- package/dist/active-citizen/models/ac_mute.cjs +27 -0
- package/dist/active-citizen/models/ac_news_feed_item.cjs +57 -0
- package/dist/active-citizen/models/ac_news_feed_processed_range.cjs +59 -0
- package/dist/active-citizen/models/ac_notification.cjs +292 -0
- package/dist/active-citizen/models/ac_translation_cache.cjs +750 -0
- package/dist/active-citizen/models/ac_watching.cjs +31 -0
- package/dist/active-citizen/scripts/analytics/setup_all_plausible_goals.cjs +13 -0
- package/dist/active-citizen/scripts/fix_old_delayed_notifications.js +63 -0
- package/dist/active-citizen/scripts/kue_status.js +31 -0
- package/dist/active-citizen/scripts/kue_watch_stuck_jobs.js +24 -0
- package/dist/active-citizen/scripts/translation_clear_language.js +117 -0
- package/dist/active-citizen/scripts/translation_delete.js +27 -0
- package/dist/active-citizen/scripts/translation_replace_text_from_url.js +180 -0
- package/dist/active-citizen/scripts/translation_update.js +28 -0
- package/dist/active-citizen/scripts/translations_list.js +27 -0
- package/{active-citizen/utils/airbrake.js → dist/active-citizen/utils/airbrake.cjs} +1 -1
- package/dist/active-citizen/utils/get_anonymous_system_user.cjs +21 -0
- package/dist/active-citizen/utils/i18n.cjs +3 -0
- package/dist/active-citizen/utils/logger.cjs +25 -0
- package/dist/active-citizen/utils/redisConnection.cjs +29 -0
- package/dist/active-citizen/utils/to_json.cjs +9 -0
- package/dist/active-citizen/utils/translation_cloning.cjs +171 -0
- package/dist/active-citizen/utils/translation_helpers.cjs +534 -0
- package/dist/active-citizen/utils/truncate_text.cjs +21 -0
- package/dist/active-citizen/utils/updateAllLocalesFromEn.js +253 -0
- package/dist/active-citizen/utils/updateLocaleFolders.js +34 -0
- package/dist/active-citizen/workers/activity.cjs +189 -0
- package/dist/active-citizen/workers/anonymizations.cjs +734 -0
- package/dist/active-citizen/workers/bulk_status_update.cjs +458 -0
- package/dist/active-citizen/workers/delayed_jobs.cjs +244 -0
- package/dist/active-citizen/workers/deletions.cjs +1911 -0
- package/dist/active-citizen/workers/email.cjs +9 -0
- package/dist/active-citizen/workers/fraud_management.cjs +109 -0
- package/dist/active-citizen/workers/generativeAi.js +56 -0
- package/dist/active-citizen/workers/main.cjs +89 -0
- package/dist/active-citizen/workers/marketing.cjs +25 -0
- package/dist/active-citizen/workers/moderation.cjs +73 -0
- package/dist/active-citizen/workers/notification_delivery.cjs +368 -0
- package/dist/active-citizen/workers/notification_news_feed.cjs +142 -0
- package/dist/active-citizen/workers/queue.cjs +99 -0
- package/dist/active-citizen/workers/recount.cjs +74 -0
- package/dist/active-citizen/workers/reports.cjs +42 -0
- package/dist/active-citizen/workers/similarities.cjs +21 -0
- package/dist/active-citizen/workers/speech_to_text.cjs +482 -0
- package/dist/agents/assistants/agentAssistant.js +88 -0
- package/dist/agents/assistants/baseAssistant.js +888 -0
- package/dist/agents/assistants/baseAssistantWithVoice.js +150 -0
- package/dist/agents/assistants/modes/agentDirectConnection.js +84 -0
- package/dist/agents/assistants/modes/agentSelectionMode.js +44 -0
- package/dist/agents/assistants/modes/baseAssistantMode.js +54 -0
- package/dist/agents/assistants/modes/tools/agentTools.js +447 -0
- package/dist/agents/assistants/modes/tools/baseTools.js +58 -0
- package/dist/agents/assistants/modes/tools/loginTools.js +156 -0
- package/dist/agents/assistants/modes/tools/models/agents.js +146 -0
- package/dist/agents/assistants/modes/tools/models/subscriptions.js +332 -0
- package/dist/agents/assistants/modes/tools/models/users.js +11 -0
- package/dist/agents/assistants/modes/tools/navigationTools.js +166 -0
- package/{agents/assistants/modes/tools/workflowConversationTools.js → dist/agents/assistants/modes/tools/subscriptionTools.js} +1 -4
- package/{agents/assistants/modes/tools/workflowTools.js → dist/agents/assistants/modes/tools/workflowConverstationTools.js} +1 -1
- package/dist/agents/assistants/voiceAssistant.js +619 -0
- package/dist/agents/controllers/agentProductController.js +103 -0
- package/dist/agents/controllers/agentSubscriptionController.js +261 -0
- package/dist/agents/controllers/assistantsController.js +511 -0
- package/dist/agents/controllers/policySynthAgents.js +395 -0
- package/{agents → dist/agents/managers}/agentProductManager.js +2 -2
- package/dist/agents/managers/emailInvitesManager.js +55 -0
- package/dist/agents/managers/emailTemplateRenderer.js +362 -0
- package/dist/agents/managers/newAiModelSetup.js +650 -0
- package/dist/agents/managers/notificationAgentQueueManager.js +510 -0
- package/dist/agents/managers/subscriptionManager.js +535 -0
- package/dist/agents/managers/workflowConversationManager.js +79 -0
- package/dist/agents/models/agentProduct.js +116 -0
- package/dist/agents/models/agentProductBoosterPurchase.js +58 -0
- package/dist/agents/models/agentProductBundle.js +68 -0
- package/dist/agents/models/agentProductRun.js +52 -0
- package/dist/agents/models/discount.js +88 -0
- package/dist/agents/models/subscription.js +79 -0
- package/dist/agents/models/subscriptionPlan.js +46 -0
- package/dist/agents/models/subscriptionUser.js +27 -0
- package/dist/agents/models/testData/createEvolyAgentProduct.js +477 -0
- package/dist/agents/models/testData/old/updateAgentWorkflowConfiguration.js +230 -0
- package/dist/agents/models/testData/setupEvolyAgentProductConfig.js +233 -0
- package/dist/agents/models/testData/updateAgentWorkflowConfiguration.js +230 -0
- package/{agents/models/workflowConverstation.js → dist/agents/models/workflowConversation.js} +1 -1
- package/{agents/tools/updateTemplateWorkflow.js → dist/agents/tools/setTemplateWorkflowCommunityId.js} +1 -0
- package/dist/app.js +943 -0
- package/dist/authorization.cjs +1860 -0
- package/dist/bot_control.js +1930 -0
- package/dist/config/config.cjs +14 -0
- package/dist/config/config.js +14 -0
- package/dist/controllers/allOurIdeas.js +696 -0
- package/dist/controllers/audios.cjs +100 -0
- package/dist/controllers/bulkStatusUpdates.cjs +202 -0
- package/dist/controllers/categories.cjs +199 -0
- package/dist/controllers/communities.cjs +2996 -0
- package/dist/controllers/domains.cjs +1341 -0
- package/dist/controllers/externalIds.cjs +223 -0
- package/dist/controllers/groups.cjs +4309 -0
- package/dist/controllers/images.cjs +499 -0
- package/dist/controllers/index.cjs +449 -0
- package/dist/controllers/legacyPages.cjs +35 -0
- package/dist/controllers/legacyPosts.cjs +56 -0
- package/dist/controllers/legacyUsers.cjs +36 -0
- package/dist/controllers/nonSpa.cjs +574 -0
- package/dist/controllers/organizations.cjs +250 -0
- package/dist/controllers/points.cjs +1137 -0
- package/dist/controllers/posts.cjs +2036 -0
- package/dist/controllers/ratings.cjs +234 -0
- package/dist/controllers/users.cjs +2255 -0
- package/dist/controllers/videos.cjs +226 -0
- package/dist/deleteUnwantedDeclerations.cjs +55 -0
- package/dist/migrations/agentAuditLogs.cjs +46 -0
- package/dist/migrations/agentClasses.cjs +60 -0
- package/dist/migrations/agentConnectorClasses.cjs +61 -0
- package/dist/migrations/agentConnectors.cjs +50 -0
- package/dist/migrations/agentEvals.cjs +45 -0
- package/dist/migrations/agentRegistries.cjs +40 -0
- package/dist/migrations/agents.cjs +54 -0
- package/dist/migrations/aiModels.cjs +49 -0
- package/dist/migrations/apiUsage.cjs +47 -0
- package/dist/migrations/apis.cjs +49 -0
- package/dist/migrations/groupPrivateData.cjs +30 -0
- package/dist/migrations/modelUsage.cjs +60 -0
- package/dist/migrations/oldMigrations/2019/20181030020612-AddActivitiesIndex.js +23 -0
- package/dist/migrations/oldMigrations/2019/20181102210612-AddFirstVideoFeatures.js +360 -0
- package/dist/migrations/oldMigrations/2019/20181212210612-ModerationFeatures.js +29 -0
- package/dist/migrations/oldMigrations/2019/2019010610612-CommunityFolders.js +43 -0
- package/dist/migrations/oldMigrations/2019/20190117020612-AddMissingIndexes.js +24 -0
- package/dist/migrations/oldMigrations/2019/20190117020612-RemoveUnusedIndexes.js +29 -0
- package/dist/migrations/oldMigrations/2019/20190127020612-RemoveUnusedIndexesPartThree.js +22 -0
- package/dist/migrations/oldMigrations/2019/20190127020612-RemoveUnusedIndexesPartTwo.js +23 -0
- package/{migrations/200824_create_embeddings_and_org_update.cjs → dist/migrations/oldMigrations/2019/20190223020612-AddPrivateProfileDataToUsers.js} +6 -3
- package/dist/migrations/oldMigrations/2019/20190706210612-AddCustomRatings.js +43 -0
- package/dist/migrations/oldMigrations/2019/20190829210612-AddGeneralStore.js +36 -0
- package/dist/migrations/oldMigrations/2019/20192811210612-AddAcClientActivities.js +41 -0
- package/dist/migrations/oldMigrations/2020/20190527020612-WorkOnIndexes.js +88 -0
- package/dist/migrations/oldMigrations/2020/20200409020612-AddBackgroundJob.js +33 -0
- package/dist/migrations/oldMigrations/2020/20200716210612-AddDataToCollections.js +38 -0
- package/dist/migrations/oldMigrations/2022/20220215100612-AddDataToEndorsements.js +19 -0
- package/dist/migrations/oldMigrations/2022/20220220100612-AddDataForFraudDetection.js +19 -0
- package/dist/migrations/oldMigrations/2022/20220903100612-AddPromotionFeatures.js +127 -0
- package/dist/migrations/oldMigrations/2022/onHold/20200527020612-AddCampaigns.js +68 -0
- package/dist/migrations/oldMigrations/2024/20241304175112-AddMediaSupportForHtmlGroups.cjs +63 -0
- package/dist/migrations/oldMigrations/older/20160511172514-AddNotificationFeatures.js +14 -0
- package/dist/migrations/oldMigrations/older/20161030020612-AddBulkStatusUpdate.js +71 -0
- package/dist/migrations/oldMigrations/older/20170514035258-add-metadata-to-invites.js +12 -0
- package/dist/migrations/oldMigrations/older/20180216020612-AddTranslationCaches.js +46 -0
- package/dist/migrations/oldMigrations/older/20180218210612-AddTranslationAndLanguages.js +46 -0
- package/dist/migrations/privateAccessStore.cjs +55 -0
- package/dist/migrations/zzz_associations.cjs +154 -0
- package/dist/migrations/zzzzz_create_agent_runs.cjs +606 -0
- package/dist/migrations/zzzzzz_create_agent_runs_fix.cjs +11 -0
- package/dist/migrations/zzzzzzz_create_trees.cjs +81 -0
- package/dist/models/audio.cjs +430 -0
- package/dist/models/bulk_status_update.cjs +58 -0
- package/dist/models/campaign.cjs +78 -0
- package/dist/models/category.cjs +94 -0
- package/dist/models/community.cjs +337 -0
- package/dist/models/domain.cjs +486 -0
- package/dist/models/endorsement.cjs +39 -0
- package/dist/models/general_data_store.cjs +20 -0
- package/dist/models/group.cjs +728 -0
- package/dist/models/image.cjs +579 -0
- package/dist/models/index.cjs +186 -0
- package/dist/models/invite.cjs +48 -0
- package/dist/models/iso_country.cjs +16 -0
- package/dist/models/organization.cjs +122 -0
- package/dist/models/page.cjs +273 -0
- package/dist/models/point.cjs +622 -0
- package/dist/models/point_quality.cjs +39 -0
- package/dist/models/point_revision.cjs +47 -0
- package/dist/models/post.cjs +680 -0
- package/dist/models/post_revision.cjs +38 -0
- package/dist/models/post_status_change.cjs +35 -0
- package/dist/models/promotion.cjs +34 -0
- package/dist/models/rating.cjs +51 -0
- package/dist/models/relationship.cjs +19 -0
- package/dist/models/request_to_join.cjs +20 -0
- package/dist/models/user.cjs +604 -0
- package/dist/models/user_legacy_password.cjs +13 -0
- package/dist/models/video.cjs +1137 -0
- package/dist/publish.js +40 -0
- package/dist/repack.js +53 -0
- package/dist/scripts/addRatingUsersToGroup.js +51 -0
- package/dist/scripts/addUserToOrganization.js +71 -0
- package/dist/scripts/analyseRatingsForCommunity.js +150 -0
- package/dist/scripts/analyzeAndFixBrokenPointUsers.js +28 -0
- package/dist/scripts/analyzeEndorsementsByCountry.js +70 -0
- package/dist/scripts/analyzePostsForCommunity.js +185 -0
- package/dist/scripts/bulkStatusUpdates/listUpdates.js +14 -0
- package/dist/scripts/bulkStatusUpdates/mergeLatestPostsToUpdate.js +110 -0
- package/dist/scripts/bulkStatusUpdates/performUpdate.js +116 -0
- package/{scripts/bulkStatusUpdates/performUpdateForGroup.js → dist/scripts/bulkStatusUpdates/performUpdateForGroup.cjs} +1 -2
- package/dist/scripts/bulkStatusUpdates/performUpdateForStatus.js +141 -0
- package/dist/scripts/change/changeVideoAspectTo.js +34 -0
- package/dist/scripts/change/setUseNewVersion.cjs +22 -0
- package/dist/scripts/changeCommunityGroupcount.js +30 -0
- package/dist/scripts/changeCommunityPostCount.js +30 -0
- package/dist/scripts/changeGroupPostCount.js +30 -0
- package/dist/scripts/changeLanguage.js +50 -0
- package/dist/scripts/changeOfficalStatus.js +30 -0
- package/{scripts/cleanups/deleteAnonNotifications.js → dist/scripts/cleanups/deleteAnonNotifications.cjs} +1 -1
- package/dist/scripts/cleanups/deleteLinkGroupsWithDeletedCommunities.js +62 -0
- package/dist/scripts/cleanups/deleteYearOldNotifications.cjs +72 -0
- package/dist/scripts/cleanups/removeAllUsersFromHiddenPublicGroup.js +43 -0
- package/dist/scripts/clearAllEndorsementInGroup.js +50 -0
- package/dist/scripts/cloning/clearUsersForCommunitiesFromUrl.js +129 -0
- package/dist/scripts/cloning/cloneFromUrlScript.js +65 -0
- package/dist/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.js +140 -0
- package/dist/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.js +140 -0
- package/dist/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.js +131 -0
- package/dist/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.js +173 -0
- package/dist/scripts/cloning/copyCommunityOneGroupToDomainNoUsersNoEndorsements.js +18 -0
- package/dist/scripts/cloning/copyCommunityToDomainNoUsersNoEndorsements.js +17 -0
- package/dist/scripts/cloning/copyCommunityToDomainWithEverything.js +17 -0
- package/dist/scripts/cloning/copyCommunityToDomainWithOnlyGroups.js +26 -0
- package/dist/scripts/cloning/copyGroupConfigAndTranslationsFromURL.js +205 -0
- package/dist/scripts/cloning/copyPostToGroupOld.js +397 -0
- package/dist/scripts/cloning/copyPostVideosFromURL.js +236 -0
- package/dist/scripts/cloning/copyPostWithOutAnyVotingOrActivities.js +17 -0
- package/dist/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.js +131 -0
- package/dist/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.js +139 -0
- package/dist/scripts/cloning/setAdminsFromURL.js +161 -0
- package/dist/scripts/cloning/setExternalIdsFromURL.js +129 -0
- package/dist/scripts/countCommunity.js +291 -0
- package/dist/scripts/countCommunityUsers.js +152 -0
- package/dist/scripts/countDelayedNotifications.js +18 -0
- package/dist/scripts/countGroup.js +246 -0
- package/dist/scripts/countStuff.js +67 -0
- package/dist/scripts/countUniqueVotersInAGroup.js +48 -0
- package/dist/scripts/createInvitesAndShow.js +75 -0
- package/dist/scripts/database/sync_database.js +14 -0
- package/dist/scripts/database/sync_dev_database.js +17 -0
- package/dist/scripts/debugNotifications.js +58 -0
- package/dist/scripts/deleteAllNewsFeeds.js +10 -0
- package/dist/scripts/deleteCategory.js +13 -0
- package/dist/scripts/deleteOldAppActivities.js +40 -0
- package/dist/scripts/deletePostContactDataForCommunity.js +53 -0
- package/dist/scripts/destroy/destroy_all_but_one_domain.js +1026 -0
- package/dist/scripts/displayAuthorForPost.js +16 -0
- package/dist/scripts/endorsementFraudDetection/analyseEndorsementsForCommunity.js +183 -0
- package/dist/scripts/endorsementFraudDetection/bulkDeleteDuplicateEndorsmentsFromUrl.js +208 -0
- package/dist/scripts/exportAllStatusChanges.js +36 -0
- package/dist/scripts/exportClientAcitivity.js +36 -0
- package/dist/scripts/exportEndorsementsForCommunity.js +79 -0
- package/dist/scripts/exportPointQualitiesForCommunity.js +84 -0
- package/dist/scripts/exportPostsAndPointsForCommunity.js +147 -0
- package/dist/scripts/exportPostsDataSetForDomain.js +244 -0
- package/dist/scripts/exportPostsForGroup.js +173 -0
- package/dist/scripts/exportRatingsForPost.js +15 -0
- package/dist/scripts/exportUserEndorsementsWithUserAnalysis.js +123 -0
- package/dist/scripts/exportUsersForCommunity.js +24 -0
- package/dist/scripts/exportUsersForDomain.js +24 -0
- package/dist/scripts/exportUsersForGroup.js +24 -0
- package/dist/scripts/exports/ratingDistribution.js +71 -0
- package/dist/scripts/exports/whoEndorsedWhatByCommunity.js +56 -0
- package/dist/scripts/findUnusedClientImports.js +56 -0
- package/dist/scripts/fixAllPostPointCounts.js +22 -0
- package/dist/scripts/fixAnonNotificationsSettings.js +48 -0
- package/dist/scripts/fixCountKopavogur.js +9 -0
- package/dist/scripts/fixEndorsementsAfterCopyPostToGroup.js +190 -0
- package/dist/scripts/fixExternalUserId.js +24 -0
- package/dist/scripts/fixGroupAccess.js +16 -0
- package/dist/scripts/fixGroupIdeasAndPointsCount.js +49 -0
- package/dist/scripts/fixNotificationSettings.js +39 -0
- package/dist/scripts/fixSurveyRadioBakedInSubCodes.js +64 -0
- package/dist/scripts/fixWrongUserIdForStatusUpdates.js +49 -0
- package/dist/scripts/gallery/exportGalleryData.js +40 -0
- package/dist/scripts/gallery/importGalleryForCommunity.js +168 -0
- package/dist/scripts/gallery/readJsonAndDownloadImagesVersion2.js +55 -0
- package/dist/scripts/gallery/refreshAcApiPostIdsForCommunity.js +58 -0
- package/dist/scripts/genderAnalysis.js +63 -0
- package/dist/scripts/genderAnalysisByStatus.js +62 -0
- package/dist/scripts/importAllLocalesFromLocalFolders.js +55 -0
- package/dist/scripts/importDomain.js +1652 -0
- package/dist/scripts/keys/addOidcToDomain.cjs +61 -0
- package/dist/scripts/landUseGame/export3Ddata.js +162 -0
- package/dist/scripts/listLanguagesForGroup.js +54 -0
- package/dist/scripts/loadTestCreateDummyContentForGroup.js +27 -0
- package/dist/scripts/makeRecursiveMapData.js +103 -0
- package/dist/scripts/mapping/community_map_csv.js +145 -0
- package/dist/scripts/moveCommunityToDomain.js +22 -0
- package/dist/scripts/moveGroupToCommunity.js +23 -0
- package/dist/scripts/movePostToGroup.js +101 -0
- package/dist/scripts/movePostsToGroupsRecountGroupFromUrl.js +297 -0
- package/dist/scripts/oldMovePostToGroup.js +153 -0
- package/dist/scripts/processCsvForPdfUrls.js +37 -0
- package/dist/scripts/processCsvForTranslationAndToxicity.js +125 -0
- package/dist/scripts/recount/recount_recursive_communities.js +125 -0
- package/dist/scripts/recountALLCommunityGroupCounts.js +37 -0
- package/dist/scripts/recountAll.js +97 -0
- package/dist/scripts/recountCommunitesFromUrl.js +58 -0
- package/dist/scripts/recountCommunity.js +19 -0
- package/dist/scripts/recountGroup.js +218 -0
- package/dist/scripts/recountGroupNoUserChange.js +219 -0
- package/dist/scripts/resetAllEndorsementsForGroup.js +57 -0
- package/dist/scripts/resetEnTranslationForGroup.js +45 -0
- package/dist/scripts/setAdminOnAll.cjs +107 -0
- package/{scripts/change → dist/scripts}/setDomainAdmin.cjs +0 -2
- package/dist/scripts/setDomainLocales.js +33 -0
- package/dist/scripts/setEarlQuestionIdOnGroup.cjs +29 -0
- package/dist/scripts/setLanguageOnGroupCommunitesFromUrl.js +86 -0
- package/dist/scripts/setMemberOfAll.js +101 -0
- package/dist/scripts/setNewUserForContentOfCommunity.js +189 -0
- package/dist/scripts/setOfficialStatusOnAllPostsForCommunity.js +35 -0
- package/dist/scripts/setUserOnAll.js +101 -0
- package/dist/scripts/showCategoryForGroup.js +18 -0
- package/dist/scripts/showOldActivityTypes.js +14 -0
- package/dist/scripts/showPostsMissingCategoryForGroup.js +17 -0
- package/dist/scripts/showStatuses.js +17 -0
- package/dist/scripts/showUniqueVotersInCommunity.js +61 -0
- package/dist/scripts/showUserAgentsAndIpsForEmails.js +66 -0
- package/dist/scripts/simpleExportForGroupsForCommunity.js +46 -0
- package/dist/scripts/simpleExportForPointsForCommunity.js +82 -0
- package/dist/scripts/simpleExportForPostsForCommunity.js +61 -0
- package/dist/scripts/testForEndorsments.js +21 -0
- package/dist/scripts/undeleteGroupAndAllContent.js +151 -0
- package/dist/scripts/undeletePost.js +135 -0
- package/dist/scripts/unlinkSsn.js +23 -0
- package/dist/scripts/updateFromAlthingi.js +303 -0
- package/dist/server.js +3 -0
- package/dist/utils/airbrake.cjs +17 -0
- package/dist/utils/cjsCodeReview.js +99 -0
- package/dist/utils/community_mapping_tools.cjs +124 -0
- package/dist/utils/copy_utils.cjs +1399 -0
- package/dist/utils/docx_utils.cjs +464 -0
- package/dist/utils/export_utils.cjs +491 -0
- package/dist/utils/i18n.cjs +17 -0
- package/dist/utils/is_valid_db_id.cjs +28 -0
- package/dist/utils/logger.cjs +25 -0
- package/dist/utils/loggerTs.js +26 -0
- package/dist/utils/manifest_generator.cjs +104 -0
- package/dist/utils/parse_domain.cjs +16 -0
- package/dist/utils/recount_utils.cjs +415 -0
- package/dist/utils/sharing_parameters.cjs +111 -0
- package/dist/utils/sitemap_generator.cjs +286 -0
- package/dist/utils/to_json.cjs +14 -0
- package/dist/utils/ypLanguages.js +747 -0
- package/dist/webSockets.js +77 -0
- package/package.json +46 -44
- package/server.d.ts +104 -2
- package/utils/copy_utils.cjs +7 -1
- package/active-citizen/engine/allOurIdeas/aiHelper.d.ts +0 -21
- package/active-citizen/engine/allOurIdeas/aiHelper.d.ts.map +0 -1
- package/active-citizen/engine/allOurIdeas/explainAnswersAssistant.d.ts.map +0 -1
- package/active-citizen/engine/allOurIdeas/iconGenerator.d.ts +0 -12
- package/active-citizen/engine/allOurIdeas/iconGenerator.d.ts.map +0 -1
- package/active-citizen/engine/analytics/export_anon_community_activities.d.ts.map +0 -1
- package/active-citizen/engine/analytics/importer.d.ts.map +0 -1
- package/active-citizen/engine/old/exporters/categories_dataset.d.ts.map +0 -1
- package/active-citizen/engine/old/exporters/dataset_tools.d.ts.map +0 -1
- package/active-citizen/engine/old/exporters/sentiment_dataset.d.ts.map +0 -1
- package/active-citizen/engine/reports/xls_all_our_ideas_export.js +0 -141
- package/active-citizen/llms/baseChatBot.d.ts +0 -51
- package/active-citizen/llms/baseChatBot.d.ts.map +0 -1
- package/active-citizen/llms/collectionImageGenerator.js +0 -357
- package/active-citizen/llms/llmTranslation.d.ts +0 -24
- package/active-citizen/llms/llmTranslation.d.ts.map +0 -1
- package/active-citizen/scripts/fix_old_delayed_notifications.d.ts.map +0 -1
- package/active-citizen/scripts/kue_status.d.ts.map +0 -1
- package/active-citizen/scripts/kue_watch_stuck_jobs.d.ts.map +0 -1
- package/active-citizen/scripts/translation_clear_language.d.ts.map +0 -1
- package/active-citizen/scripts/translation_delete.d.ts.map +0 -1
- package/active-citizen/scripts/translation_replace_text_from_url.d.ts.map +0 -1
- package/active-citizen/scripts/translation_update.d.ts.map +0 -1
- package/active-citizen/scripts/translations_list.d.ts.map +0 -1
- package/active-citizen/utils/airbrake.d.ts.map +0 -1
- package/active-citizen/utils/updateAllLocalesFromEn.d.ts +0 -21
- package/active-citizen/utils/updateAllLocalesFromEn.d.ts.map +0 -1
- package/active-citizen/utils/updateLocaleFolders.d.ts +0 -2
- package/active-citizen/utils/updateLocaleFolders.d.ts.map +0 -1
- package/active-citizen/workers/cloudflare/voiceSession/worker.js +0 -213
- package/active-citizen/workers/generativeAi.d.ts.map +0 -1
- package/agents/assistants/agentAssistantOld.js +0 -863
- package/agents/assistants/modes/agentConfigurationMode.js +0 -63
- package/agents/assistants/modes/agentOperationsMode.js +0 -195
- package/agents/assistants/modes/commonTools.js +0 -58
- package/agents/assistants/modes/directConversationMode.js +0 -14
- package/agents/assistants/modes/toolHandlers/accountHandlers.js +0 -46
- package/agents/assistants/modes/toolHandlers/commonHandlers.js +0 -57
- package/agents/assistants/modes/toolHandlers/commonTools.js +0 -58
- package/agents/assistants/modes/toolHandlers/loginHandlers.js +0 -46
- package/agents/assistants/modes/toolHandlers/subscriptionHandlers.js +0 -469
- package/agents/assistants/modes/tools/agentConnectionTools.js +0 -326
- package/agents/assistants/modes/tools/commonHandlers.js +0 -57
- package/agents/assistants/modes/tools/loginHandlers.js +0 -46
- package/agents/assistants/modes/tools/subscriptionHandlers.js +0 -469
- package/agents/controllers/assistantController.js +0 -243
- package/agents/managers/workflowManager.js +0 -76
- package/agents/models/testData/setupConfig.js +0 -140
- package/agents/models/workflow.js +0 -53
- package/agents/subscriptionManager.js +0 -218
- package/app.d.ts +0 -40
- package/app.d.ts.map +0 -1
- package/bot_control.d.ts.map +0 -1
- package/publish.d.ts.map +0 -1
- package/repack.d.ts.map +0 -1
- package/scripts/addRatingUsersToGroup.d.ts.map +0 -1
- package/scripts/addUserToOrganization.d.ts.map +0 -1
- package/scripts/analyseRatingsForCommunity.d.ts.map +0 -1
- package/scripts/analyzeAndFixBrokenPointUsers.d.ts.map +0 -1
- package/scripts/analyzeEndorsementsByCountry.d.ts.map +0 -1
- package/scripts/analyzePostsForCommunity.d.ts.map +0 -1
- package/scripts/bulkStatusUpdates/listUpdates.d.ts.map +0 -1
- package/scripts/bulkStatusUpdates/mergeLatestPostsToUpdate.d.ts.map +0 -1
- package/scripts/bulkStatusUpdates/performUpdate.d.ts.map +0 -1
- package/scripts/bulkStatusUpdates/performUpdateForGroup.d.ts.map +0 -1
- package/scripts/bulkStatusUpdates/performUpdateForStatus.d.ts.map +0 -1
- package/scripts/change/changeVideoAspectTo.d.ts.map +0 -1
- package/scripts/changeCommunityGroupcount.d.ts.map +0 -1
- package/scripts/changeCommunityPostCount.d.ts.map +0 -1
- package/scripts/changeGroupPostCount.d.ts.map +0 -1
- package/scripts/changeLanguage.d.ts.map +0 -1
- package/scripts/changeOfficalStatus.d.ts.map +0 -1
- package/scripts/cleanups/deleteAnonNotifications.d.ts.map +0 -1
- package/scripts/cleanups/deleteLinkGroupsWithDeletedCommunities.d.ts.map +0 -1
- package/scripts/cleanups/removeAllUsersFromHiddenPublicGroup.d.ts.map +0 -1
- package/scripts/clearAllEndorsementInGroup.d.ts.map +0 -1
- package/scripts/cloning/clearUsersForCommunitiesFromUrl.d.ts.map +0 -1
- package/scripts/cloning/cloneFromUrlScript.d.ts.map +0 -1
- package/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.d.ts.map +0 -1
- package/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.d.ts.map +0 -1
- package/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.d.ts.map +0 -1
- package/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.d.ts.map +0 -1
- package/scripts/cloning/copyCommunityOneGroupToDomainNoUsersNoEndorsements.d.ts.map +0 -1
- package/scripts/cloning/copyCommunityToDomainNoUsersNoEndorsements.d.ts.map +0 -1
- package/scripts/cloning/copyCommunityToDomainWithEverything.d.ts.map +0 -1
- package/scripts/cloning/copyCommunityToDomainWithOnlyGroups.d.ts.map +0 -1
- package/scripts/cloning/copyGroupConfigAndTranslationsFromURL.d.ts.map +0 -1
- package/scripts/cloning/copyPostToGroupOld.d.ts.map +0 -1
- package/scripts/cloning/copyPostVideosFromURL.d.ts.map +0 -1
- package/scripts/cloning/copyPostWithOutAnyVotingOrActivities.d.ts.map +0 -1
- package/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.d.ts.map +0 -1
- package/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.d.ts.map +0 -1
- package/scripts/cloning/setAdminsFromURL.d.ts.map +0 -1
- package/scripts/cloning/setExternalIdsFromURL.d.ts.map +0 -1
- package/scripts/countCommunity.d.ts.map +0 -1
- package/scripts/countCommunityUsers.d.ts.map +0 -1
- package/scripts/countDelayedNotifications.d.ts.map +0 -1
- package/scripts/countGroup.d.ts.map +0 -1
- package/scripts/countStuff.d.ts.map +0 -1
- package/scripts/countUniqueVotersInAGroup.d.ts.map +0 -1
- package/scripts/createInvitesAndShow.d.ts.map +0 -1
- package/scripts/database/seedTestAiModels.js +0 -64
- package/scripts/database/sync_database.d.ts.map +0 -1
- package/scripts/database/sync_dev_database.d.ts.map +0 -1
- package/scripts/debugNotifications.d.ts.map +0 -1
- package/scripts/deleteAllNewsFeeds.d.ts.map +0 -1
- package/scripts/deleteCategory.d.ts.map +0 -1
- package/scripts/deleteOldAppActivities.d.ts.map +0 -1
- package/scripts/deletePostContactDataForCommunity.d.ts.map +0 -1
- package/scripts/destroy/destroy_all_but_one_domain.d.ts.map +0 -1
- package/scripts/displayAuthorForPost.d.ts.map +0 -1
- package/scripts/endorsementFraudDetection/analyseEndorsementsForCommunity.d.ts.map +0 -1
- package/scripts/endorsementFraudDetection/bulkDeleteDuplicateEndorsmentsFromUrl.d.ts.map +0 -1
- package/scripts/exportAllStatusChanges.d.ts.map +0 -1
- package/scripts/exportClientAcitivity.d.ts.map +0 -1
- package/scripts/exportEndorsementsForCommunity.d.ts.map +0 -1
- package/scripts/exportPointQualitiesForCommunity.d.ts.map +0 -1
- package/scripts/exportPostsAndPointsForCommunity.d.ts.map +0 -1
- package/scripts/exportPostsDataSetForDomain.d.ts.map +0 -1
- package/scripts/exportPostsForGroup.d.ts.map +0 -1
- package/scripts/exportRatingsForPost.d.ts.map +0 -1
- package/scripts/exportUserEndorsementsWithUserAnalysis.d.ts.map +0 -1
- package/scripts/exportUsersForCommunity.d.ts.map +0 -1
- package/scripts/exportUsersForDomain.d.ts.map +0 -1
- package/scripts/exportUsersForGroup.d.ts.map +0 -1
- package/scripts/exports/ratingDistribution.d.ts.map +0 -1
- package/scripts/exports/whoEndorsedWhatByCommunity.d.ts.map +0 -1
- package/scripts/findUnusedClientImports.d.ts.map +0 -1
- package/scripts/fixAllPostPointCounts.d.ts.map +0 -1
- package/scripts/fixAnonNotificationsSettings.d.ts.map +0 -1
- package/scripts/fixCountKopavogur.d.ts.map +0 -1
- package/scripts/fixEndorsementsAfterCopyPostToGroup.d.ts.map +0 -1
- package/scripts/fixExternalUserId.d.ts.map +0 -1
- package/scripts/fixGroupAccess.d.ts.map +0 -1
- package/scripts/fixGroupIdeasAndPointsCount.d.ts.map +0 -1
- package/scripts/fixNotificationSettings.d.ts.map +0 -1
- package/scripts/fixSurveyRadioBakedInSubCodes.d.ts.map +0 -1
- package/scripts/fixWrongUserIdForStatusUpdates.d.ts.map +0 -1
- package/scripts/gallery/exportGalleryData.d.ts.map +0 -1
- package/scripts/gallery/importGalleryForCommunity.d.ts.map +0 -1
- package/scripts/gallery/readJsonAndDownloadImagesVersion2.d.ts.map +0 -1
- package/scripts/gallery/refreshAcApiPostIdsForCommunity.d.ts.map +0 -1
- package/scripts/genderAnalysis.d.ts.map +0 -1
- package/scripts/genderAnalysisByStatus.d.ts.map +0 -1
- package/scripts/importAllLocalesFromLocalFolders.d.ts.map +0 -1
- package/scripts/importDomain.d.ts.map +0 -1
- package/scripts/landUseGame/export3Ddata.d.ts.map +0 -1
- package/scripts/listLanguagesForGroup.d.ts.map +0 -1
- package/scripts/loadTestCreateDummyContentForGroup.d.ts.map +0 -1
- package/scripts/makeRecursiveMapData.d.ts.map +0 -1
- package/scripts/mapping/community_map_csv.d.ts.map +0 -1
- package/scripts/moveCommunityToDomain.d.ts.map +0 -1
- package/scripts/moveGroupToCommunity.d.ts.map +0 -1
- package/scripts/movePostToGroup.d.ts.map +0 -1
- package/scripts/movePostsToGroupsRecountGroupFromUrl.d.ts.map +0 -1
- package/scripts/oldMovePostToGroup.d.ts.map +0 -1
- package/scripts/processCsvForPdfUrls.d.ts.map +0 -1
- package/scripts/processCsvForTranslationAndToxicity.d.ts.map +0 -1
- package/scripts/recount/recount_recursive_communities.d.ts.map +0 -1
- package/scripts/recountALLCommunityGroupCounts.d.ts.map +0 -1
- package/scripts/recountAll.d.ts.map +0 -1
- package/scripts/recountCommunitesFromUrl.d.ts.map +0 -1
- package/scripts/recountCommunity.d.ts.map +0 -1
- package/scripts/recountGroup.d.ts.map +0 -1
- package/scripts/recountGroupNoUserChange.d.ts.map +0 -1
- package/scripts/resetAllEndorsementsForGroup.d.ts.map +0 -1
- package/scripts/resetEnTranslationForGroup.d.ts.map +0 -1
- package/scripts/setDomainLocales.d.ts.map +0 -1
- package/scripts/setLanguageOnGroupCommunitesFromUrl.d.ts.map +0 -1
- package/scripts/setMemberOfAll.d.ts.map +0 -1
- package/scripts/setNewUserForContentOfCommunity.d.ts.map +0 -1
- package/scripts/setOfficialStatusOnAllPostsForCommunity.d.ts.map +0 -1
- package/scripts/setUserOnAll.d.ts.map +0 -1
- package/scripts/showCategoryForGroup.d.ts.map +0 -1
- package/scripts/showOldActivityTypes.d.ts.map +0 -1
- package/scripts/showPostsMissingCategoryForGroup.d.ts.map +0 -1
- package/scripts/showStatuses.d.ts.map +0 -1
- package/scripts/showUniqueVotersInCommunity.d.ts.map +0 -1
- package/scripts/showUserAgentsAndIpsForEmails.d.ts.map +0 -1
- package/scripts/simpleExportForGroupsForCommunity.d.ts.map +0 -1
- package/scripts/simpleExportForPointsForCommunity.d.ts.map +0 -1
- package/scripts/simpleExportForPostsForCommunity.d.ts.map +0 -1
- package/scripts/testForEndorsments.d.ts.map +0 -1
- package/scripts/undeleteGroupAndAllContent.d.ts.map +0 -1
- package/scripts/undeletePost.d.ts.map +0 -1
- package/scripts/unlinkSsn.d.ts.map +0 -1
- package/scripts/updateFromAlthingi.d.ts.map +0 -1
- package/server.d.ts.map +0 -1
- package/utils/copyGroup.js +0 -246
- package/utils/loggerTs.d.ts +0 -4
- package/utils/loggerTs.d.ts.map +0 -1
- package/utils/ypLanguages.d.ts +0 -18
- package/utils/ypLanguages.d.ts.map +0 -1
- /package/{agents/tools/updateCommunityWorkflow.js → dist/active-citizen/llms/imageGeneration/iImageGenerator.js} +0 -0
- /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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
78
|
+
res.send(docxBuffer);
|
|
74
79
|
}
|
|
75
80
|
catch (error) {
|
|
76
81
|
console.error("Error converting Markdown to DOCX:", error);
|
|
77
|
-
|
|
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
|
-
|
|
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
|
-
|
|
135
|
+
res.status(404).json({ error: "Subscription not found" });
|
|
130
136
|
}
|
|
131
137
|
// Extract the requiredQuestionsAnswered from subscription.configuration
|
|
132
|
-
const answers = subscription
|
|
133
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
217
|
-
|
|
218
|
-
|
|
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
|
-
|
|
240
|
-
|
|
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
|
-
|
|
244
|
-
|
|
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
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
if (memory) {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
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(
|
|
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
|
-
|
|
298
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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)
|
|
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)
|
|
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
|
-
|
|
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
|
-
|
|
33
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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) {
|