@peopl-health/nexus 2.4.6 → 2.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/examples/assistants/DoctorScheduleAssistant.js +3 -2
  2. package/lib/adapters/BaileysProvider.js +5 -4
  3. package/lib/adapters/TwilioProvider.js +20 -19
  4. package/lib/assistants/BaseAssistant.js +7 -6
  5. package/lib/config/awsConfig.js +14 -12
  6. package/lib/config/llmConfig.js +3 -2
  7. package/lib/config/mongoAuthConfig.js +5 -5
  8. package/lib/controllers/assistantController.js +12 -11
  9. package/lib/controllers/bugReportController.js +6 -5
  10. package/lib/controllers/conversationController.js +72 -71
  11. package/lib/controllers/interactionController.js +7 -6
  12. package/lib/controllers/mediaController.js +15 -13
  13. package/lib/controllers/messageController.js +7 -6
  14. package/lib/controllers/patientController.js +2 -1
  15. package/lib/controllers/qualityMessageController.js +5 -4
  16. package/lib/controllers/templateController.js +11 -9
  17. package/lib/controllers/uploadController.js +3 -1
  18. package/lib/core/NexusMessaging.js +18 -18
  19. package/lib/helpers/assistantHelper.js +8 -9
  20. package/lib/helpers/baileysHelper.js +4 -3
  21. package/lib/helpers/filesHelper.js +9 -8
  22. package/lib/helpers/llmsHelper.js +24 -9
  23. package/lib/helpers/mediaHelper.js +3 -2
  24. package/lib/helpers/messageHelper.js +12 -11
  25. package/lib/helpers/processHelper.js +24 -10
  26. package/lib/helpers/qrHelper.js +2 -1
  27. package/lib/helpers/twilioMediaProcessor.js +45 -35
  28. package/lib/helpers/whatsappHelper.js +3 -2
  29. package/lib/index.js +11 -14
  30. package/lib/interactive/index.js +11 -11
  31. package/lib/middleware/requestId.js +9 -14
  32. package/lib/models/messageModel.js +5 -4
  33. package/lib/providers/OpenAIAssistantsProvider.js +10 -9
  34. package/lib/providers/OpenAIResponsesProvider.js +18 -17
  35. package/lib/providers/OpenAIResponsesProviderTools.js +3 -5
  36. package/lib/providers/createProvider.js +2 -1
  37. package/lib/services/airtableService.js +39 -6
  38. package/lib/services/assistantService.js +20 -20
  39. package/lib/services/conversationService.js +16 -16
  40. package/lib/services/preprocessingHooks.js +3 -1
  41. package/lib/storage/MongoStorage.js +14 -14
  42. package/lib/utils/errorHandler.js +3 -1
  43. package/lib/utils/logger.js +35 -3
  44. package/lib/utils/sanitizer.js +0 -6
  45. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
+ const { logger } = require('../utils/logger');
2
+
1
3
  const handleApiError = (res, error, message) => {
2
- console.error(message, error);
4
+ logger.error(message, error);
3
5
  return res.status(500).json({ success: false, error: message });
4
6
  };
5
7
 
@@ -1,5 +1,5 @@
1
1
  const pino = require('pino');
2
- const { trace, context } = require('@opentelemetry/api');
2
+ const { trace } = require('@opentelemetry/api');
3
3
 
4
4
  const createLogger = (config = {}) => {
5
5
  const {
@@ -98,12 +98,44 @@ const createObservabilityLogger = (serviceName = 'nexus-assistant', config = {})
98
98
  };
99
99
 
100
100
  // Default logger instances
101
- const logger = createLogger();
101
+ const baseLogger = createLogger();
102
102
  const observabilityLogger = createObservabilityLogger();
103
103
 
104
+ let getRequestId = () => null;
105
+
106
+ function setRequestIdGetter(getter) {
107
+ getRequestId = getter;
108
+ }
109
+
110
+ const logger = {
111
+ info: (message, meta = {}) => {
112
+ const requestId = getRequestId();
113
+ baseLogger.info(requestId ? { requestId, ...meta } : meta, message);
114
+ },
115
+
116
+ error: (message, meta = {}) => {
117
+ const requestId = getRequestId();
118
+ baseLogger.error(requestId ? { requestId, ...meta } : meta, message);
119
+ },
120
+
121
+ warn: (message, meta = {}) => {
122
+ const requestId = getRequestId();
123
+ baseLogger.warn(requestId ? { requestId, ...meta } : meta, message);
124
+ },
125
+
126
+ debug: (message, meta = {}) => {
127
+ const requestId = getRequestId();
128
+ baseLogger.debug(requestId ? { requestId, ...meta } : meta, message);
129
+ },
130
+
131
+ child: (bindings) => baseLogger.child(bindings),
132
+ level: baseLogger.level
133
+ };
134
+
104
135
  module.exports = {
105
136
  logger,
106
137
  createLogger,
107
138
  observabilityLogger,
108
- createObservabilityLogger
139
+ createObservabilityLogger,
140
+ setRequestIdGetter
109
141
  };
@@ -39,8 +39,6 @@ function sanitizeLogMetadata(metadata) {
39
39
  delete safe.text;
40
40
  delete safe.content;
41
41
  delete safe.body;
42
- delete safe.phone;
43
- delete safe.numero;
44
42
 
45
43
  if (safe.message_id) {
46
44
  safe.message_id = safe.message_id.length > 8
@@ -48,10 +46,6 @@ function sanitizeLogMetadata(metadata) {
48
46
  : '***';
49
47
  }
50
48
 
51
- if (safe.code && safe.code.length > 8) {
52
- safe.code = `${safe.code.substring(0, 3)}***${safe.code.slice(-4)}`;
53
- }
54
-
55
49
  return safe;
56
50
  }
57
51
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peopl-health/nexus",
3
- "version": "2.4.6",
3
+ "version": "2.4.8",
4
4
  "description": "Core messaging and assistant library for WhatsApp communication platforms",
5
5
  "keywords": [
6
6
  "whatsapp",