@yrpri/api 9.0.139 → 9.0.140
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/agents/assistants/agentAssistant.js +4 -3
- package/agents/assistants/baseAssistant.js +72 -71
- package/agents/assistants/baseAssistantWithVoice.js +6 -5
- package/agents/assistants/modes/agentDirectConnection.js +8 -7
- package/agents/assistants/modes/agentSelectionMode.js +2 -1
- package/agents/assistants/modes/baseAssistantMode.js +3 -2
- package/agents/assistants/modes/tools/agentTools.js +11 -10
- package/agents/assistants/modes/tools/loginTools.js +7 -6
- package/agents/assistants/modes/tools/models/agents.js +6 -5
- package/agents/assistants/modes/tools/models/subscriptions.js +7 -6
- package/agents/assistants/modes/tools/navigationTools.js +7 -6
- package/agents/assistants/modes/tools/subscriptionTools.js +12 -11
- package/agents/assistants/modes/tools/workflowConverstationTools.js +7 -6
- package/agents/assistants/voiceAssistant.js +45 -44
- package/agents/controllers/agentProductController.js +8 -7
- package/agents/controllers/agentSubscriptionController.js +13 -12
- package/agents/controllers/assistantsController.js +45 -44
- package/agents/controllers/policySynthAgents.js +33 -32
- package/agents/managers/emailInvitesManager.js +4 -3
- package/agents/managers/newAiModelSetup.js +45 -44
- package/agents/managers/notificationAgentQueueManager.js +55 -54
- package/agents/managers/subscriptionManager.js +24 -23
- package/agents/models/agentProduct.js +2 -1
- package/agents/models/agentProductBoosterPurchase.js +2 -1
- package/agents/models/testData/createEvolyAgentProduct.js +7 -6
- package/agents/models/testData/old/updateAgentWorkflowConfiguration.js +5 -4
- package/agents/models/testData/updateAgentWorkflowConfiguration.js +5 -4
- package/agents/tools/setTemplateWorkflowCommunityId.js +6 -5
- package/app.d.ts +2 -1
- package/app.js +60 -34
- package/authorization.cjs +4 -4
- package/controllers/allOurIdeas.js +45 -44
- package/controllers/groups.cjs +4 -9
- package/controllers/images.cjs +8 -8
- package/controllers/index.cjs +1 -1
- package/controllers/points.cjs +1 -1
- package/controllers/posts.cjs +3 -3
- package/deleteUnwantedDeclerations.cjs +5 -5
- package/models/community.cjs +1 -1
- package/models/domain.cjs +7 -7
- package/models/image.cjs +2 -2
- package/models/index.cjs +8 -4
- package/models/post.cjs +10 -10
- package/models/user.cjs +1 -1
- package/models/video.cjs +4 -4
- package/package.json +5 -5
- package/scripts/addRatingUsersToGroup.js +1 -1
- package/scripts/addUserToOrganization.js +8 -8
- package/scripts/agents/changeModelForWorkflowGroupTemplate.js +13 -12
- package/scripts/agents/generateAgentWorkflowTemplateFromAgentClass.js +5 -4
- package/scripts/analyseRatingsForCommunity.js +2 -2
- package/scripts/analyzeAndFixBrokenPointUsers.js +3 -3
- package/scripts/analyzeEndorsementsByCountry.js +7 -7
- package/scripts/analyzePostsForCommunity.js +1 -1
- package/scripts/bulkStatusUpdates/listUpdates.js +2 -2
- package/scripts/bulkStatusUpdates/mergeLatestPostsToUpdate.js +5 -5
- package/scripts/bulkStatusUpdates/performUpdate.js +9 -9
- package/scripts/bulkStatusUpdates/performUpdateForGroup.cjs +11 -11
- package/scripts/bulkStatusUpdates/performUpdateForStatus.js +15 -15
- package/scripts/change/changeVideoAspectTo.js +3 -3
- package/scripts/change/setUseNewVersion.cjs +4 -4
- package/scripts/changeCommunityGroupcount.js +3 -3
- package/scripts/changeCommunityPostCount.js +3 -3
- package/scripts/changeGroupPostCount.js +3 -3
- package/scripts/changeLanguage.js +4 -4
- package/scripts/changeOfficalStatus.js +3 -3
- package/scripts/cleanups/deleteAnonNotifications.cjs +7 -7
- package/scripts/cleanups/deleteLinkGroupsWithDeletedCommunities.js +8 -8
- package/scripts/cleanups/deleteYearOldNotifications.cjs +5 -5
- package/scripts/cleanups/removeAllUsersFromHiddenPublicGroup.js +5 -5
- package/scripts/clearAllEndorsementInGroup.js +5 -5
- package/scripts/cloning/clearUsersForCommunitiesFromUrl.js +3 -3
- package/scripts/cloning/cloneFromUrlScript.js +4 -4
- package/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.js +6 -6
- package/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.js +6 -6
- package/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.js +6 -6
- package/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.js +3 -3
- package/scripts/cloning/copyCommunityOneGroupToDomainNoUsersNoEndorsements.js +2 -2
- package/scripts/cloning/copyCommunityToDomainNoUsersNoEndorsements.js +2 -2
- package/scripts/cloning/copyCommunityToDomainWithEverything.js +2 -2
- package/scripts/cloning/copyCommunityToDomainWithOnlyGroups.js +3 -3
- package/scripts/cloning/copyGroupConfigAndTranslationsFromURL.js +3 -3
- package/scripts/cloning/copyPostToGroupOld.js +12 -12
- package/scripts/cloning/copyPostVideosFromURL.js +3 -3
- package/scripts/cloning/copyPostWithOutAnyVotingOrActivities.js +2 -2
- package/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.js +7 -7
- package/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.js +6 -6
- package/scripts/cloning/setAdminsFromURL.js +5 -5
- package/scripts/cloning/setExternalIdsFromURL.js +3 -3
- package/scripts/countCommunity.js +11 -11
- package/scripts/countCommunityUsers.js +4 -4
- package/scripts/countDelayedNotifications.js +3 -3
- package/scripts/countGroup.js +11 -11
- package/scripts/countStuff.js +3 -3
- package/scripts/countUniqueVotersInAGroup.js +3 -3
- package/scripts/createInvitesAndShow.js +2 -2
- package/scripts/database/sync_database.js +2 -2
- package/scripts/database/sync_dev_database.js +3 -3
- package/scripts/debugNotifications.js +5 -5
- package/scripts/deleteAllNewsFeeds.js +2 -2
- package/scripts/deleteCategory.js +1 -1
- package/scripts/deleteOldAppActivities.js +5 -4
- package/scripts/deletePostContactDataForCommunity.js +5 -4
- package/scripts/destroy/destroy_all_but_one_domain.js +59 -59
- package/scripts/displayAuthorForPost.js +1 -1
- package/scripts/domains/createDomain.js +5 -4
- package/scripts/domains/importDomainsFromXls.js +7 -6
- package/scripts/endorsementFraudDetection/analyseEndorsementsForCommunity.js +2 -2
- package/scripts/endorsementFraudDetection/bulkDeleteDuplicateEndorsmentsFromUrl.js +9 -9
- package/scripts/exportAllStatusChanges.js +5 -5
- package/scripts/exportEndorsementsForCommunity.js +5 -5
- package/scripts/exportPointQualitiesForCommunity.js +5 -5
- package/scripts/exportPostsAndPointsForCommunity.js +9 -9
- package/scripts/exportPostsDataSetForDomain.js +12 -12
- package/scripts/exportPostsForGroup.js +7 -7
- package/scripts/exportRatingsForPost.js +2 -2
- package/scripts/exportUserEndorsementsWithUserAnalysis.js +6 -6
- package/scripts/exportUsersForCommunity.js +3 -3
- package/scripts/exportUsersForDomain.js +3 -3
- package/scripts/exportUsersForGroup.js +3 -3
- package/scripts/exports/ratingDistribution.js +6 -6
- package/scripts/exports/whoEndorsedWhatByCommunity.js +2 -2
- package/scripts/findUnusedClientImports.js +2 -2
- package/scripts/fixAllPostPointCounts.js +1 -1
- package/scripts/fixAnonNotificationsSettings.js +5 -5
- package/scripts/fixCountKopavogur.js +1 -1
- package/scripts/fixEndorsementsAfterCopyPostToGroup.js +10 -10
- package/scripts/fixExternalUserId.js +2 -2
- package/scripts/fixGroupAccess.js +3 -3
- package/scripts/fixGroupIdeasAndPointsCount.js +2 -2
- package/scripts/fixNotificationSettings.js +4 -4
- package/scripts/fixSurveyRadioBakedInSubCodes.js +6 -6
- package/scripts/fixWrongUserIdForStatusUpdates.js +6 -5
- package/scripts/gallery/exportGalleryData.js +2 -2
- package/scripts/gallery/importGalleryForCommunity.js +14 -14
- package/scripts/gallery/readJsonAndDownloadImagesVersion2.js +6 -6
- package/scripts/gallery/refreshAcApiPostIdsForCommunity.js +5 -5
- package/scripts/genderAnalysis.js +10 -10
- package/scripts/genderAnalysisByStatus.js +4 -4
- package/scripts/importAllLocalesFromLocalFolders.js +7 -7
- package/scripts/importDomain.js +131 -131
- package/scripts/keys/addOidcToDomain.cjs +9 -9
- package/scripts/landUseGame/export3Ddata.js +15 -15
- package/scripts/listLanguagesForGroup.js +6 -6
- package/scripts/loadTestCreateDummyContentForGroup.js +2 -2
- package/scripts/makeRecursiveMapData.js +4 -4
- package/scripts/mapping/community_map_csv.js +5 -5
- package/scripts/moveCommunityToDomain.js +3 -3
- package/scripts/moveGroupToCommunity.js +3 -3
- package/scripts/movePostToGroup.js +5 -5
- package/scripts/movePostsToGroupsRecountGroupFromUrl.js +6 -6
- package/scripts/oldMovePostToGroup.js +9 -9
- package/scripts/processCsvForPdfUrls.js +2 -2
- package/scripts/processCsvForTranslationAndToxicity.js +10 -10
- package/scripts/recount/recount_recursive_communities.js +6 -6
- package/scripts/recountALLCommunityGroupCounts.js +4 -4
- package/scripts/recountAll.js +3 -3
- package/scripts/recountCommunitesFromUrl.js +3 -3
- package/scripts/recountCommunity.js +2 -2
- package/scripts/recountGroup.js +5 -5
- package/scripts/recountGroupNoUserChange.js +5 -5
- package/scripts/resetAllEndorsementsForGroup.js +3 -3
- package/scripts/resetEnTranslationForGroup.js +5 -5
- package/scripts/setAdminOnAll.cjs +14 -14
- package/scripts/setDomainAdmin.cjs +6 -6
- package/scripts/setDomainLocales.js +2 -2
- package/scripts/setEarlQuestionIdOnGroup.cjs +4 -4
- package/scripts/setLanguageOnGroupCommunitesFromUrl.js +3 -3
- package/scripts/setMemberOfAll.js +14 -14
- package/scripts/setNewUserForContentOfCommunity.js +9 -9
- package/scripts/setOfficialStatusOnAllPostsForCommunity.js +1 -1
- package/scripts/setUserOnAll.js +14 -14
- package/scripts/showCategoryForGroup.js +1 -1
- package/scripts/showOldActivityTypes.js +3 -3
- package/scripts/showPostsMissingCategoryForGroup.js +2 -2
- package/scripts/showStatuses.js +4 -4
- package/scripts/showUniqueVotersInCommunity.js +4 -4
- package/scripts/showUserAgentsAndIpsForEmails.js +4 -4
- package/scripts/simpleExportForGroupsForCommunity.js +5 -5
- package/scripts/simpleExportForPointsForCommunity.js +5 -5
- package/scripts/simpleExportForPostsForCommunity.js +5 -5
- package/scripts/testForEndorsments.js +4 -4
- package/scripts/undeleteGroupAndAllContent.js +8 -8
- package/scripts/undeletePost.js +7 -7
- package/scripts/unlinkSsn.js +4 -4
- package/scripts/updateFromAlthingi.js +8 -8
- package/scripts/users/createUserAddDomain.js +6 -5
- package/scripts/users/importUsersForDomainsFromXls.js +4 -3
- package/scripts/users/listDomainUsersWithSsn.js +6 -5
- package/scripts/users/removeUserFromDomain.js +6 -5
- package/scripts/users/updatePasswordFromSsn.js +5 -4
- package/scripts/users/updateUserSsnFromEmail.js +5 -4
- package/services/controllers/activities.cjs +1 -1
- package/services/controllers/news_feeds.cjs +1 -1
- package/services/controllers/notifications.cjs +1 -1
- package/services/controllers/recommendations.cjs +1 -1
- package/services/engine/allOurIdeas/aiHelper.js +10 -9
- package/services/engine/analytics/export_anon_community_activities.js +3 -3
- package/services/engine/analytics/importer.js +10 -10
- package/services/engine/analytics/plausible/manager.cjs +4 -4
- package/services/engine/analytics/statsCalc.cjs +1 -1
- package/services/engine/analytics/utils.cjs +10 -10
- package/services/engine/moderation/fraud/CreateFraudAuditReport.cjs +2 -1
- package/services/engine/moderation/fraud/FraudBase.cjs +2 -2
- package/services/engine/moderation/fraud/FraudDeleteBase.cjs +4 -4
- package/services/engine/moderation/fraud/FraudGetBase.cjs +1 -1
- package/services/engine/moderation/fraud/FraudGetEndorsements.cjs +1 -1
- package/services/engine/moderation/fraud/FraudGetPointQualities.cjs +1 -1
- package/services/engine/moderation/fraud/FraudGetPoints.cjs +1 -1
- package/services/engine/moderation/fraud/FraudGetPosts.cjs +1 -1
- package/services/engine/moderation/fraud/FraudGetRatings.cjs +1 -1
- package/services/engine/moderation/fraud/FraudScannerNotifier.cjs +9 -9
- package/services/engine/moderation/get_moderation_items.cjs +1 -1
- package/services/engine/moderation/image_labeling/ImageLabelingBase.cjs +1 -1
- package/services/engine/moderation/process_moderation_items.cjs +1 -1
- package/services/engine/moderation/toxicity_analysis.cjs +1 -1
- package/services/engine/news_feeds/generate_dynamically.cjs +1 -1
- package/services/engine/news_feeds/generate_from_notifications.cjs +1 -1
- package/services/engine/notifications/emails_utils.cjs +2 -2
- package/services/engine/notifications/generate_point_notifications.cjs +1 -1
- package/services/engine/notifications/generate_post_notifications.cjs +1 -1
- package/services/engine/notifications/process_delayed_notifications.cjs +38 -38
- package/services/engine/old/exporters/categories_dataset.js +11 -11
- package/services/engine/old/exporters/sentiment_dataset.js +12 -12
- package/services/engine/recommendations/events_importer.cjs +5 -5
- package/services/engine/recommendations/events_manager.cjs +1 -1
- package/services/engine/reports/add_points_to_sheet.cjs +2 -2
- package/services/engine/reports/commonUtils.js +3 -2
- package/services/engine/reports/common_utils.cjs +8 -8
- package/services/engine/reports/docx_group_report.cjs +1 -1
- package/services/engine/reports/xlsAllOurIdeasExport.js +16 -15
- package/services/engine/reports/xls_community_users_report.cjs +2 -2
- package/services/engine/reports/xls_group_report.cjs +1 -1
- package/services/llms/baseChatBot.js +12 -11
- package/services/llms/imageGeneration/chatGptImageGenerator.js +3 -2
- package/services/llms/imageGeneration/collectionImageGenerator.js +7 -6
- package/services/llms/imageGeneration/dalleImageGenerator.js +6 -5
- package/services/llms/imageGeneration/fluxImageGenerator.js +5 -4
- package/services/llms/imageGeneration/imageProcessorService.js +2 -1
- package/services/llms/imageGeneration/imagenImageGenerator.js +8 -7
- package/services/llms/imageGeneration/s3Service.js +12 -11
- package/services/llms/llmTranslation.js +30 -29
- package/services/models/ac_activity.cjs +1 -1
- package/services/models/ac_notification.cjs +1 -1
- package/services/models/ac_translation_cache.cjs +11 -11
- package/services/scripts/analytics/setup_all_plausible_goals.cjs +2 -2
- package/services/scripts/fix_old_delayed_notifications.js +3 -3
- package/services/scripts/kue_status.js +11 -11
- package/services/scripts/kue_watch_stuck_jobs.js +6 -6
- package/services/scripts/translation_clear_language.js +21 -21
- package/services/scripts/translation_delete.js +4 -4
- package/services/scripts/translation_replace_text_from_url.js +4 -4
- package/services/scripts/translation_update.js +4 -4
- package/services/scripts/translations_list.js +5 -5
- package/services/utils/airbrake.cjs +2 -1
- package/services/utils/redisConnection.cjs +6 -5
- package/services/utils/translation_helpers.cjs +3 -2
- package/services/utils/updateAllLocalesFromEn.js +20 -19
- package/services/utils/updateLocaleFolders.js +7 -6
- package/services/workers/activity.cjs +1 -1
- package/services/workers/anonymizations.cjs +1 -1
- package/services/workers/bulk_status_update.cjs +2 -2
- package/services/workers/delayed_jobs.cjs +1 -1
- package/services/workers/deletions.cjs +1 -1
- package/services/workers/email.cjs +1 -1
- package/services/workers/fraud_management.cjs +3 -3
- package/services/workers/generativeAi.js +6 -5
- package/services/workers/main.cjs +1 -1
- package/services/workers/marketing.cjs +1 -1
- package/services/workers/moderation.cjs +1 -1
- package/services/workers/notification_delivery.cjs +1 -1
- package/services/workers/notification_news_feed.cjs +1 -1
- package/services/workers/queue.cjs +2 -2
- package/services/workers/recount.cjs +1 -1
- package/services/workers/reports.cjs +1 -1
- package/services/workers/similarities.cjs +4 -2
- package/services/workers/speech_to_text.cjs +1 -1
- package/utils/airbrake.cjs +1 -1
- package/utils/cjsCodeReview.js +7 -6
- package/utils/community_mapping_tools.cjs +2 -2
- package/utils/copy_utils.cjs +31 -31
- package/utils/export_utils.cjs +7 -7
- package/utils/generateDocumentation.js +10 -9
- package/utils/logger.cjs +2 -23
- package/utils/logger.d.cts +1 -1
- package/utils/loggerAirbrakeTransport.cjs +52 -0
- package/utils/loggerAirbrakeTransport.d.cts +15 -0
- package/utils/loggerAirbrakeTransportTs.d.ts +15 -0
- package/utils/loggerAirbrakeTransportTs.js +45 -0
- package/utils/loggerCore.cjs +29 -0
- package/utils/loggerCore.d.cts +2 -0
- package/utils/loggerCoreTs.d.ts +2 -0
- package/utils/loggerCoreTs.js +23 -0
- package/utils/loggerTs.d.ts +1 -2
- package/utils/loggerTs.js +2 -25
- package/utils/recount_utils.cjs +5 -5
- package/utils/seedModels.js +50 -49
- package/utils/sitemap_generator.cjs +4 -4
- package/utils/ypLanguages.js +2 -2
- package/webSockets.js +8 -7
- package/services/utils/logger.cjs +0 -25
- package/services/utils/logger.d.cts +0 -2
- package/src/agents/assistants/assistant.d.ts +0 -156
- package/src/controllers/audios.d.ts +0 -5
- package/src/controllers/categories.d.ts +0 -5
- package/src/controllers/communities.d.ts +0 -5
- package/src/controllers/domains.d.ts +0 -5
- package/src/controllers/groups.d.ts +0 -5
- package/src/controllers/images.d.ts +0 -5
- package/src/controllers/points.d.ts +0 -5
- package/src/controllers/posts.d.ts +0 -5
- package/src/controllers/ratings.d.ts +0 -5
- package/src/controllers/users.d.ts +0 -5
- package/src/controllers/videos.d.ts +0 -5
- package/src/models/index.d.ts +0 -84
- package/src/services/controllers/activities.d.ts +0 -5
- package/src/services/controllers/notifications.d.ts +0 -5
- package/src/utils/copy_utils.d.ts +0 -4
- package/src/utils/manifest_generator.d.ts +0 -18
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const async = require("async");
|
|
3
3
|
const models = require("../../models/index.cjs");
|
|
4
|
-
const log = require('
|
|
4
|
+
const log = require('../../utils/logger.cjs');
|
|
5
5
|
const queue = require('./queue.cjs');
|
|
6
6
|
const i18n = require('../utils/i18n.cjs');
|
|
7
7
|
const toJson = require('../utils/to_json.cjs');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// https://gist.github.com/mojodna/1251812
|
|
3
3
|
var async = require("async");
|
|
4
4
|
var models = require("../../models/index.cjs");
|
|
5
|
-
var log = require('
|
|
5
|
+
var log = require('../../utils/logger.cjs');
|
|
6
6
|
var queue = require('./queue.cjs');
|
|
7
7
|
var i18n = require('../utils/i18n.cjs');
|
|
8
8
|
var toJson = require('../utils/to_json.cjs');
|
|
@@ -202,7 +202,7 @@ var createStatusUpdateForPostId = function (postId, official_status, content, us
|
|
|
202
202
|
});
|
|
203
203
|
}
|
|
204
204
|
else {
|
|
205
|
-
|
|
205
|
+
log.info("Not changing status, only verifying");
|
|
206
206
|
verifiedStatusChangedPostsCount += 1;
|
|
207
207
|
}
|
|
208
208
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const async = require("async");
|
|
3
3
|
const models = require("../../models/index.cjs");
|
|
4
|
-
const log = require("
|
|
4
|
+
const log = require("../../utils/logger.cjs");
|
|
5
5
|
const queue = require("./queue.cjs");
|
|
6
6
|
const i18n = require("../utils/i18n.cjs");
|
|
7
7
|
const toJson = require("../utils/to_json.cjs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const async = require("async");
|
|
3
3
|
const models = require("../../models/index.cjs");
|
|
4
|
-
const log = require('
|
|
4
|
+
const log = require('../../utils/logger.cjs');
|
|
5
5
|
const queue = require('./queue.cjs');
|
|
6
6
|
const i18n = require('../utils/i18n.cjs');
|
|
7
7
|
const toJson = require('../utils/to_json.cjs');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const async = require("async");
|
|
3
3
|
const models = require("../../models/index.cjs");
|
|
4
|
-
const log = require('
|
|
4
|
+
const log = require('../../utils/logger.cjs');
|
|
5
5
|
const queue = require('./queue.cjs');
|
|
6
6
|
const i18n = require('../utils/i18n.cjs');
|
|
7
7
|
const toJson = require('../utils/to_json.cjs');
|
|
@@ -54,7 +54,7 @@ const ProcessFraudGet = async (workPackage, done) => {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
catch (error) {
|
|
57
|
-
|
|
57
|
+
log.error(error);
|
|
58
58
|
await models.AcBackgroundJob.updateErrorAsync(workPackage.jobId, error);
|
|
59
59
|
done(error);
|
|
60
60
|
}
|
|
@@ -88,7 +88,7 @@ const ProcessFraudDelete = async (workPackage, done) => {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
catch (error) {
|
|
91
|
-
|
|
91
|
+
log.error(error);
|
|
92
92
|
await models.AcBackgroundJob.updateErrorAsync(workPackage.jobId, error.toString());
|
|
93
93
|
done(error);
|
|
94
94
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { AoiIconGenerator } from "../engine/allOurIdeas/iconGenerator.js";
|
|
2
2
|
import models from "../../models/index.cjs";
|
|
3
3
|
import { CollectionImageGenerator } from "../llms/imageGeneration/collectionImageGenerator.js";
|
|
4
|
+
import log from "../../utils/loggerTs.js";
|
|
4
5
|
const dbModels = models;
|
|
5
6
|
const Image = dbModels.Image;
|
|
6
7
|
const AcBackgroundJob = dbModels.AcBackgroundJob;
|
|
7
8
|
export class GenerativeAiWorker {
|
|
8
9
|
async process(workPackage, callback) {
|
|
9
|
-
|
|
10
|
+
log.info(`Processing workPackage: ${JSON.stringify(workPackage)}`);
|
|
10
11
|
switch (workPackage.type) {
|
|
11
12
|
case "collection-image":
|
|
12
13
|
try {
|
|
@@ -18,13 +19,13 @@ export class GenerativeAiWorker {
|
|
|
18
19
|
generator = new CollectionImageGenerator();
|
|
19
20
|
}
|
|
20
21
|
const { imageId, imageUrl } = await generator.createCollectionImage(workPackage);
|
|
21
|
-
|
|
22
|
+
log.info(`Created imageId: ${imageId} imageUrl: ${imageUrl}`);
|
|
22
23
|
if (imageId) {
|
|
23
24
|
await AcBackgroundJob.updateDataAsync(workPackage.jobId, {
|
|
24
25
|
imageId,
|
|
25
26
|
imageUrl,
|
|
26
27
|
});
|
|
27
|
-
|
|
28
|
+
log.debug(`Updated job ${workPackage.jobId} with imageId: ${imageId} imageUrl: ${imageUrl}`);
|
|
28
29
|
}
|
|
29
30
|
else {
|
|
30
31
|
await AcBackgroundJob.update({
|
|
@@ -36,7 +37,7 @@ export class GenerativeAiWorker {
|
|
|
36
37
|
callback();
|
|
37
38
|
}
|
|
38
39
|
catch (error) {
|
|
39
|
-
|
|
40
|
+
log.error(error);
|
|
40
41
|
if (typeof error !== "string") {
|
|
41
42
|
error = JSON.stringify(error);
|
|
42
43
|
}
|
|
@@ -44,7 +45,7 @@ export class GenerativeAiWorker {
|
|
|
44
45
|
await AcBackgroundJob.updateErrorAsync(workPackage.jobId, error);
|
|
45
46
|
}
|
|
46
47
|
catch (error) {
|
|
47
|
-
|
|
48
|
+
log.error(error);
|
|
48
49
|
}
|
|
49
50
|
callback(error);
|
|
50
51
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var i18n = require('../utils/i18n.cjs');
|
|
3
3
|
var Backend = require('i18next-fs-backend');
|
|
4
|
-
var log = require('
|
|
4
|
+
var log = require('../../utils/logger.cjs');
|
|
5
5
|
var path = require('path');
|
|
6
6
|
var activity = require('./activity.cjs');
|
|
7
7
|
var notification_delivery = require('./notification_delivery.cjs');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const async = require("async");
|
|
3
3
|
const models = require("../../models/index.cjs");
|
|
4
|
-
const log = require('
|
|
4
|
+
const log = require('../../utils/logger.cjs');
|
|
5
5
|
const queue = require('./queue.cjs');
|
|
6
6
|
const i18n = require('../utils/i18n.cjs');
|
|
7
7
|
const toJson = require('../utils/to_json.cjs');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const async = require("async");
|
|
3
3
|
const models = require("../../models/index.cjs");
|
|
4
|
-
const log = require('
|
|
4
|
+
const log = require('../../utils/logger.cjs');
|
|
5
5
|
const queue = require('./queue.cjs');
|
|
6
6
|
const i18n = require('../utils/i18n.cjs');
|
|
7
7
|
const toJson = require('../utils/to_json.cjs');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// https://gist.github.com/mojodna/1251812
|
|
3
3
|
var async = require("async");
|
|
4
4
|
var models = require("../../models/index.cjs");
|
|
5
|
-
var log = require('
|
|
5
|
+
var log = require('../../utils/logger.cjs');
|
|
6
6
|
var queue = require('./queue.cjs');
|
|
7
7
|
var i18n = require('../utils/i18n.cjs');
|
|
8
8
|
var toJson = require('../utils/to_json.cjs');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// https://gist.github.com/mojodna/1251812
|
|
3
3
|
var async = require("async");
|
|
4
4
|
var models = require("../../models/index.cjs");
|
|
5
|
-
var log = require('
|
|
5
|
+
var log = require('../../utils/logger.cjs');
|
|
6
6
|
var queue = require('./queue.cjs');
|
|
7
7
|
var i18n = require('../utils/i18n.cjs');
|
|
8
8
|
var toJson = require('../utils/to_json.cjs');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const log = require('
|
|
2
|
+
const log = require('../../utils/logger.cjs');
|
|
3
3
|
const url = require('url');
|
|
4
4
|
var airbrake = null;
|
|
5
5
|
if (process.env.AIRBRAKE_PROJECT_ID) {
|
|
@@ -20,7 +20,7 @@ const redissOptions = {
|
|
|
20
20
|
log.info("Starting app access to Bull Queue", { redis_url: redisUrl });
|
|
21
21
|
class YpQueue {
|
|
22
22
|
constructor() {
|
|
23
|
-
|
|
23
|
+
log.info("Create YpQueue");
|
|
24
24
|
this.createQueues();
|
|
25
25
|
}
|
|
26
26
|
get defaultQueueOptions() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const async = require("async");
|
|
3
3
|
const models = require("../../models/index.cjs");
|
|
4
|
-
const log = require('
|
|
4
|
+
const log = require('../../utils/logger.cjs');
|
|
5
5
|
const queue = require('./queue.cjs');
|
|
6
6
|
const i18n = require('../utils/i18n.cjs');
|
|
7
7
|
const toJson = require('../utils/to_json.cjs');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const async = require("async");
|
|
3
3
|
const models = require("../../models/index.cjs");
|
|
4
|
-
const log = require('
|
|
4
|
+
const log = require('../../utils/logger.cjs');
|
|
5
5
|
const queue = require('./queue.cjs');
|
|
6
6
|
const i18n = require('../utils/i18n.cjs');
|
|
7
7
|
const toJson = require('../utils/to_json.cjs');
|
|
@@ -21,8 +21,10 @@ function SimilaritiesWorker() { }
|
|
|
21
21
|
*/
|
|
22
22
|
SimilaritiesWorker.prototype.process = function (workPackage, callback) {
|
|
23
23
|
switch (workPackage.type) {
|
|
24
|
+
//TODO: This is disabled until our new similarities backend is ready
|
|
24
25
|
case 'update-collection':
|
|
25
|
-
updateSimilaritiesCollection(workPackage, callback);
|
|
26
|
+
// updateSimilaritiesCollection(workPackage, callback);
|
|
27
|
+
callback();
|
|
26
28
|
break;
|
|
27
29
|
default:
|
|
28
30
|
callback("Unknown type for workPackage: " + workPackage.type);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const async = require("async");
|
|
3
3
|
const models = require("../../models/index.cjs");
|
|
4
|
-
const log = require('
|
|
4
|
+
const log = require('../../utils/logger.cjs');
|
|
5
5
|
const queue = require('./queue.cjs');
|
|
6
6
|
const i18n = require('../utils/i18n.cjs');
|
|
7
7
|
const toJson = require('../utils/to_json.cjs');
|
package/utils/airbrake.cjs
CHANGED
package/utils/cjsCodeReview.js
CHANGED
|
@@ -2,6 +2,7 @@ import { OpenAI } from "openai";
|
|
|
2
2
|
import * as fs from "fs";
|
|
3
3
|
import * as path from "path";
|
|
4
4
|
import { promisify } from "util";
|
|
5
|
+
import log from "./loggerTs.js";
|
|
5
6
|
const readFilePromise = promisify(fs.readFile);
|
|
6
7
|
export class YpCjsCodeReview {
|
|
7
8
|
constructor() {
|
|
@@ -36,10 +37,10 @@ export class YpCjsCodeReview {
|
|
|
36
37
|
async reviewCjsFiles() {
|
|
37
38
|
const files = await this.readFilesRecursively("./");
|
|
38
39
|
for (const file of files) {
|
|
39
|
-
|
|
40
|
+
log.info(`Reviewing file: ${file}`);
|
|
40
41
|
const content = await readFilePromise(file, "utf8");
|
|
41
42
|
const review = await this.callLlm(content);
|
|
42
|
-
|
|
43
|
+
log.info(`\n-----------------\nReview for file ${file}:\n${review}\n-----------------\n\n`);
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
renderSystemPrompt() {
|
|
@@ -69,22 +70,22 @@ Your review results:`;
|
|
|
69
70
|
let running = true;
|
|
70
71
|
while (running) {
|
|
71
72
|
try {
|
|
72
|
-
//
|
|
73
|
+
//log.info(`Messages ${retries}:`, messages);
|
|
73
74
|
const results = await this.openaiClient.chat.completions.create({
|
|
74
75
|
model: this.modelName,
|
|
75
76
|
messages,
|
|
76
77
|
max_tokens: this.maxTokens,
|
|
77
78
|
temperature: this.temperature,
|
|
78
79
|
});
|
|
79
|
-
//
|
|
80
|
+
//log.info("Results:", results);
|
|
80
81
|
const textReview = results.choices[0].message.content;
|
|
81
82
|
return textReview;
|
|
82
83
|
}
|
|
83
84
|
catch (error) {
|
|
84
|
-
|
|
85
|
+
log.error("Error:", error);
|
|
85
86
|
retries++;
|
|
86
87
|
if (retries > maxRetries) {
|
|
87
|
-
|
|
88
|
+
log.error("Max retries reached");
|
|
88
89
|
running = false;
|
|
89
90
|
return undefined;
|
|
90
91
|
}
|
|
@@ -8,7 +8,7 @@ async function getTranslationForMap(textType, model, targetLanguage) {
|
|
|
8
8
|
}
|
|
9
9
|
else {
|
|
10
10
|
resolve();
|
|
11
|
-
|
|
11
|
+
log.info("No translation");
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
14
|
});
|
|
@@ -89,7 +89,7 @@ const getCommunityMap = async (communityId, map, options) => {
|
|
|
89
89
|
resolve();
|
|
90
90
|
}
|
|
91
91
|
else {
|
|
92
|
-
|
|
92
|
+
log.error("Cant find community " + communityId);
|
|
93
93
|
map.children.push({ name: "Not found community id " + communityId, children: [] });
|
|
94
94
|
resolve();
|
|
95
95
|
}
|
package/utils/copy_utils.cjs
CHANGED
|
@@ -132,7 +132,7 @@ const copyPost = (fromPostId, toGroupId, options, done) => {
|
|
|
132
132
|
}).then(function (postIn) {
|
|
133
133
|
oldPost = postIn;
|
|
134
134
|
if (!postIn) {
|
|
135
|
-
|
|
135
|
+
log.error("No post in");
|
|
136
136
|
callback("no post");
|
|
137
137
|
}
|
|
138
138
|
else {
|
|
@@ -371,7 +371,7 @@ const copyPost = (fromPostId, toGroupId, options, done) => {
|
|
|
371
371
|
}
|
|
372
372
|
},
|
|
373
373
|
], function (error) {
|
|
374
|
-
|
|
374
|
+
log.info("Have copied post to group id");
|
|
375
375
|
callback(error);
|
|
376
376
|
});
|
|
377
377
|
})
|
|
@@ -527,7 +527,7 @@ const copyPost = (fromPostId, toGroupId, options, done) => {
|
|
|
527
527
|
newActivity
|
|
528
528
|
.save()
|
|
529
529
|
.then(function (results) {
|
|
530
|
-
|
|
530
|
+
log.info("Have changed group and all activity: " +
|
|
531
531
|
newActivity.id);
|
|
532
532
|
activitesSeriesCallback();
|
|
533
533
|
})
|
|
@@ -548,7 +548,7 @@ const copyPost = (fromPostId, toGroupId, options, done) => {
|
|
|
548
548
|
});
|
|
549
549
|
});
|
|
550
550
|
}, function (error) {
|
|
551
|
-
|
|
551
|
+
log.info("Have changed group and all for point");
|
|
552
552
|
callback();
|
|
553
553
|
});
|
|
554
554
|
});
|
|
@@ -578,7 +578,7 @@ const copyPost = (fromPostId, toGroupId, options, done) => {
|
|
|
578
578
|
newActivity
|
|
579
579
|
.save()
|
|
580
580
|
.then(function (results) {
|
|
581
|
-
|
|
581
|
+
log.info("Have changed group and all activity: " + newActivity.id);
|
|
582
582
|
innerSeriesCallback();
|
|
583
583
|
})
|
|
584
584
|
.catch((error) => {
|
|
@@ -597,9 +597,9 @@ const copyPost = (fromPostId, toGroupId, options, done) => {
|
|
|
597
597
|
}
|
|
598
598
|
},
|
|
599
599
|
], function (error) {
|
|
600
|
-
|
|
600
|
+
log.info("Done copying post id " + fromPostId);
|
|
601
601
|
if (error)
|
|
602
|
-
|
|
602
|
+
log.error(error);
|
|
603
603
|
done(error, newPost);
|
|
604
604
|
});
|
|
605
605
|
};
|
|
@@ -959,7 +959,7 @@ const copyGroup = (fromGroupId, toCommunityIn, toDomainId, options, done) => {
|
|
|
959
959
|
}
|
|
960
960
|
},
|
|
961
961
|
], function (error) {
|
|
962
|
-
|
|
962
|
+
log.info("Have copied post to group id");
|
|
963
963
|
callback(error);
|
|
964
964
|
});
|
|
965
965
|
});
|
|
@@ -969,9 +969,9 @@ const copyGroup = (fromGroupId, toCommunityIn, toDomainId, options, done) => {
|
|
|
969
969
|
});
|
|
970
970
|
},
|
|
971
971
|
], function (error) {
|
|
972
|
-
|
|
972
|
+
log.info("Done copying group");
|
|
973
973
|
if (error)
|
|
974
|
-
|
|
974
|
+
log.error(error);
|
|
975
975
|
done(error, newGroup);
|
|
976
976
|
});
|
|
977
977
|
};
|
|
@@ -1206,7 +1206,7 @@ const copyCommunity = (fromCommunityId, toDomainId, options, linkFromOptions, do
|
|
|
1206
1206
|
}
|
|
1207
1207
|
},
|
|
1208
1208
|
], function (error) {
|
|
1209
|
-
|
|
1209
|
+
log.info("Have copied community");
|
|
1210
1210
|
callback(error);
|
|
1211
1211
|
});
|
|
1212
1212
|
});
|
|
@@ -1216,9 +1216,9 @@ const copyCommunity = (fromCommunityId, toDomainId, options, linkFromOptions, do
|
|
|
1216
1216
|
});
|
|
1217
1217
|
},
|
|
1218
1218
|
], function (error) {
|
|
1219
|
-
|
|
1219
|
+
log.info("Done copying community", newCommunity);
|
|
1220
1220
|
if (error) {
|
|
1221
|
-
|
|
1221
|
+
log.error(error);
|
|
1222
1222
|
done(error);
|
|
1223
1223
|
}
|
|
1224
1224
|
else {
|
|
@@ -1253,13 +1253,13 @@ const copyCommunityWithEverything = (communityId, toDomainId, options, done) =>
|
|
|
1253
1253
|
copyPoints: true,
|
|
1254
1254
|
}, null, (error, newCommunity) => {
|
|
1255
1255
|
if (newCommunity)
|
|
1256
|
-
|
|
1256
|
+
log.info(newCommunity.id);
|
|
1257
1257
|
if (error) {
|
|
1258
|
-
|
|
1258
|
+
log.error(error);
|
|
1259
1259
|
done(error, newCommunity);
|
|
1260
1260
|
}
|
|
1261
1261
|
else {
|
|
1262
|
-
//
|
|
1262
|
+
//log.info("Done for new community "+ńewCommunity.id);
|
|
1263
1263
|
done(null, newCommunity);
|
|
1264
1264
|
}
|
|
1265
1265
|
});
|
|
@@ -1277,13 +1277,13 @@ const deepCopyCommunityOnlyStructureWithAdminsAndPosts = (communityId, toDomainI
|
|
|
1277
1277
|
skipActivities: true,
|
|
1278
1278
|
}, null, (error, newCommunity) => {
|
|
1279
1279
|
if (newCommunity)
|
|
1280
|
-
|
|
1280
|
+
log.info(newCommunity.id);
|
|
1281
1281
|
if (error) {
|
|
1282
|
-
|
|
1282
|
+
log.error(error);
|
|
1283
1283
|
done(error, newCommunity);
|
|
1284
1284
|
}
|
|
1285
1285
|
else {
|
|
1286
|
-
//
|
|
1286
|
+
//log.info("Done for new community "+ńewCommunity.id);
|
|
1287
1287
|
done(null, newCommunity);
|
|
1288
1288
|
}
|
|
1289
1289
|
});
|
|
@@ -1299,15 +1299,15 @@ const copyCommunityNoUsersNoEndorsementsNoPoints = (communityId, toDomainId, don
|
|
|
1299
1299
|
skipActivities: true,
|
|
1300
1300
|
}, null, (error, newCommunity) => {
|
|
1301
1301
|
if (newCommunity)
|
|
1302
|
-
|
|
1302
|
+
log.info(newCommunity.id);
|
|
1303
1303
|
if (error) {
|
|
1304
|
-
|
|
1304
|
+
log.error(error);
|
|
1305
1305
|
done(error, newCommunity);
|
|
1306
1306
|
}
|
|
1307
1307
|
else {
|
|
1308
1308
|
recountCommunity(newCommunity.id, (recountError) => {
|
|
1309
1309
|
if (recountError) {
|
|
1310
|
-
|
|
1310
|
+
log.error(error);
|
|
1311
1311
|
done(recountError, newCommunity);
|
|
1312
1312
|
}
|
|
1313
1313
|
else {
|
|
@@ -1328,13 +1328,13 @@ const copyCommunityNoUsersNoEndorsements = (communityId, toDomainId, done) => {
|
|
|
1328
1328
|
skipActivities: true,
|
|
1329
1329
|
}, null, (error, newCommunity) => {
|
|
1330
1330
|
if (newCommunity)
|
|
1331
|
-
|
|
1331
|
+
log.info(newCommunity.id);
|
|
1332
1332
|
if (error) {
|
|
1333
|
-
|
|
1333
|
+
log.error(error);
|
|
1334
1334
|
done(error, newCommunity);
|
|
1335
1335
|
}
|
|
1336
1336
|
else {
|
|
1337
|
-
//
|
|
1337
|
+
//log.info("Done for new community "+ńewCommunity.id);
|
|
1338
1338
|
done(null, newCommunity);
|
|
1339
1339
|
}
|
|
1340
1340
|
});
|
|
@@ -1350,13 +1350,13 @@ const copyCommunityNoUsersNoEndorsementsOneGroup = (communityId, groupId, toDoma
|
|
|
1350
1350
|
skipActivities: true,
|
|
1351
1351
|
}, null, (error, newCommunity) => {
|
|
1352
1352
|
if (newCommunity)
|
|
1353
|
-
|
|
1353
|
+
log.info(newCommunity.id);
|
|
1354
1354
|
if (error) {
|
|
1355
|
-
|
|
1355
|
+
log.error(error);
|
|
1356
1356
|
done(error, newCommunity);
|
|
1357
1357
|
}
|
|
1358
1358
|
else {
|
|
1359
|
-
//
|
|
1359
|
+
//log.info("Done for new community "+ńewCommunity.id);
|
|
1360
1360
|
done(null, newCommunity);
|
|
1361
1361
|
}
|
|
1362
1362
|
});
|
|
@@ -1373,13 +1373,13 @@ const copyCommunityOnlyGroups = (communityId, toDomainId, done) => {
|
|
|
1373
1373
|
skipActivities: true,
|
|
1374
1374
|
}, null, (error, newCommunity) => {
|
|
1375
1375
|
if (newCommunity)
|
|
1376
|
-
|
|
1376
|
+
log.info(newCommunity.id);
|
|
1377
1377
|
if (error) {
|
|
1378
|
-
|
|
1378
|
+
log.error(error);
|
|
1379
1379
|
done(error, newCommunity);
|
|
1380
1380
|
}
|
|
1381
1381
|
else {
|
|
1382
|
-
//
|
|
1382
|
+
//log.info("Done for new community "+ńewCommunity.id);
|
|
1383
1383
|
done(null, newCommunity);
|
|
1384
1384
|
}
|
|
1385
1385
|
});
|
package/utils/export_utils.cjs
CHANGED
|
@@ -22,15 +22,15 @@ const getUserEmail = function (post) {
|
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
const clean = function (text) {
|
|
25
|
-
//
|
|
25
|
+
//log.info("Before: "+ text);
|
|
26
26
|
var newText = text.replace('"', "'").replace('\n', '').replace('\r', '').replace(/(\r\n|\n|\r)/gm, "").replace(/"/gm, "'").replace(/,/, ';').trim();
|
|
27
|
-
//
|
|
27
|
+
//log.info("After:" + newText);
|
|
28
28
|
return newText.replace(/´/g, '');
|
|
29
29
|
};
|
|
30
30
|
const cleanDescription = function (text) {
|
|
31
|
-
//
|
|
31
|
+
//log.info("Before: "+ text);
|
|
32
32
|
var newText = text.replace('"', "'").replace(/"/gm, "'").replace(/,/, ';').trim();
|
|
33
|
-
//
|
|
33
|
+
//log.info("After:" + newText);
|
|
34
34
|
return newText.replace(/´/g, '');
|
|
35
35
|
};
|
|
36
36
|
const getLocation = function (post) {
|
|
@@ -49,7 +49,7 @@ const getPoints = function (points) {
|
|
|
49
49
|
if (content.startsWith(",")) {
|
|
50
50
|
content = content.substr(1);
|
|
51
51
|
}
|
|
52
|
-
//
|
|
52
|
+
//log.info("content: "+content);
|
|
53
53
|
totalContent += content;
|
|
54
54
|
});
|
|
55
55
|
return totalContent;
|
|
@@ -84,7 +84,7 @@ const getPointsUpOrDown = function (post, value) {
|
|
|
84
84
|
if (pointsText.startsWith(",")) {
|
|
85
85
|
pointsText = pointsText.substr(1);
|
|
86
86
|
}
|
|
87
|
-
//
|
|
87
|
+
//log.info("PointText: "+pointsText);
|
|
88
88
|
return pointsText;
|
|
89
89
|
};
|
|
90
90
|
var getPointsUp = function (post) {
|
|
@@ -349,7 +349,7 @@ var getExportFileDataForGroup = function (group, hostName, callback) {
|
|
|
349
349
|
if (group.configuration && group.configuration.customRatings) {
|
|
350
350
|
customRatings = group.configuration.customRatings;
|
|
351
351
|
}
|
|
352
|
-
//
|
|
352
|
+
//log.info(posts.length);
|
|
353
353
|
outFileContent += "Nr, Post id,email,User Name,Post Name," + getDescriptionHeaders(group) + ",Url,Category,Latitude,Longitude,Up Votes,Down Votes,Points Count,Points For,Points Against,Images,Contact Name,Contact Email,Contact telephone,Attachment URL,Attachment filename,Media URLs,Post transcript" + getRatingHeaders(customRatings) + "\n";
|
|
354
354
|
let postCounter = 0;
|
|
355
355
|
async.eachSeries(posts, function (post, seriesCallback) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import log from "./loggerTs.js";
|
|
1
2
|
const systemPromptServerApi = `
|
|
2
3
|
You are a meticulous API documentation generator. Your output should be in standard Markdown API documentation format. Focus on documenting key components of an Express.js application, including routes, middleware, controllers, services, models, and important utility functions/modules.
|
|
3
4
|
|
|
@@ -138,7 +139,7 @@ function buildDirectoryTree(dir, basePath = '', isSrc = false) {
|
|
|
138
139
|
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
139
140
|
entries.forEach((entry) => {
|
|
140
141
|
if (IGNORED_PATTERNS.some(pattern => entry.name.includes(pattern) || entry.name.startsWith('.'))) {
|
|
141
|
-
|
|
142
|
+
log.info(`Skipping ${entry.name} in buildDirectoryTree`);
|
|
142
143
|
return;
|
|
143
144
|
}
|
|
144
145
|
const relativePath = isSrc ? entry.name : path.join(basePath, entry.name);
|
|
@@ -183,7 +184,7 @@ function generateMarkdownFromTree(tree, depth = 0) {
|
|
|
183
184
|
}
|
|
184
185
|
function generateDocsReadme() {
|
|
185
186
|
const tree = buildDirectoryTree(docsDir);
|
|
186
|
-
|
|
187
|
+
log.info(JSON.stringify(tree, null, 2));
|
|
187
188
|
const markdown = generateMarkdownFromTree(tree);
|
|
188
189
|
const readmePath = path.join(docsDir, 'README.md');
|
|
189
190
|
const apiHeader = '## API Documentation';
|
|
@@ -212,7 +213,7 @@ function findSourceFiles(dir, fileList = []) {
|
|
|
212
213
|
for (const entry of entries) {
|
|
213
214
|
if (IGNORED_PATTERNS.some(pattern => entry.name.includes(pattern) || entry.name.startsWith('.'))) {
|
|
214
215
|
if (entry.name !== ".env") { // Explicitly allow .env if it's not otherwise ignored by a broader pattern
|
|
215
|
-
|
|
216
|
+
log.info(`Skipping ${path.join(dir, entry.name)} due to ignore patterns.`);
|
|
216
217
|
continue;
|
|
217
218
|
}
|
|
218
219
|
}
|
|
@@ -244,7 +245,7 @@ async function generateDocumentation(fileList, systemPrompt) {
|
|
|
244
245
|
}
|
|
245
246
|
if (checksum !== existingChecksum) {
|
|
246
247
|
try {
|
|
247
|
-
|
|
248
|
+
log.info(`${file}:`);
|
|
248
249
|
const completion = await openaiClient.chat.completions.create({
|
|
249
250
|
model: 'gpt-4.1',
|
|
250
251
|
temperature: 0.0,
|
|
@@ -255,7 +256,7 @@ async function generateDocumentation(fileList, systemPrompt) {
|
|
|
255
256
|
],
|
|
256
257
|
});
|
|
257
258
|
let docContent = completion.choices[0].message.content;
|
|
258
|
-
|
|
259
|
+
log.info(docContent);
|
|
259
260
|
docContent = docContent.replace(/```markdown\s+/g, '');
|
|
260
261
|
const sourceDir = path.join(rootDir, 'src');
|
|
261
262
|
const relativePathInSrc = path.relative(sourceDir, file);
|
|
@@ -266,15 +267,15 @@ async function generateDocumentation(fileList, systemPrompt) {
|
|
|
266
267
|
}
|
|
267
268
|
fs.writeFileSync(docFilePath, docContent);
|
|
268
269
|
fs.writeFileSync(checksumFile, checksum); // Save the new checksum
|
|
269
|
-
|
|
270
|
+
log.info(`Documentation generated for ${file}`);
|
|
270
271
|
}
|
|
271
272
|
catch (error) {
|
|
272
|
-
|
|
273
|
+
log.error(`Error generating documentation for ${file}:`, error);
|
|
273
274
|
process.exit(1);
|
|
274
275
|
}
|
|
275
276
|
}
|
|
276
277
|
else {
|
|
277
|
-
|
|
278
|
+
log.info(`Skipping documentation generation for ${file}, no changes detected.`);
|
|
278
279
|
}
|
|
279
280
|
}
|
|
280
281
|
}
|
|
@@ -284,4 +285,4 @@ async function main() {
|
|
|
284
285
|
await generateDocumentation(sourceFiles, systemPromptServerApi);
|
|
285
286
|
generateDocsReadme();
|
|
286
287
|
}
|
|
287
|
-
main().then(() =>
|
|
288
|
+
main().then(() => log.info('Documentation generation complete.'));
|