@peopl-health/nexus 3.2.9 → 3.2.11

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.
@@ -4,9 +4,9 @@ const predictionMetricsSchema = new mongoose.Schema({
4
4
  message_id: { type: String, required: true, index: true },
5
5
  numero: { type: String, required: true, index: true },
6
6
  assistant_id: { type: String, required: true, index: true },
7
- thread_id: { type: String, required: true },
8
- prediction_time_ms: { type: Number, required: true },
9
- retry_count: { type: Number, required: true, default: 1 },
7
+ thread_id: { type: String },
8
+ prediction_time_ms: { type: Number },
9
+ retry_count: { type: Number, default: 1 },
10
10
  completed: { type: Boolean, default: true },
11
11
  error: { type: String, default: null },
12
12
  timing_breakdown: { type: Object, default: {} }
@@ -1,10 +1,12 @@
1
1
  const { OpenAI } = require('openai');
2
+ const { Config_ID } = require('../config/airtableConfig');
2
3
  const { Thread } = require('../models/threadModel');
3
4
  const { retryWithBackoff } = require('../utils/retryHelper');
4
5
  const {
5
6
  handleFunctionCalls: handleFunctionCallsUtil,
6
7
  } = require('./OpenAIResponsesProviderTools');
7
8
  const { DefaultMemoryManager } = require('../memory/DefaultMemoryManager');
9
+ const { getRecordByFilter } = require('../services/airtableService');
8
10
  const { logger } = require('../utils/logger');
9
11
  const { getCurrentMexicoDateTime } = require('../utils/dateUtils');
10
12
 
@@ -285,11 +287,14 @@ class OpenAIResponsesProvider {
285
287
  promptVariables = null
286
288
  } = {}) {
287
289
  try {
288
- let input = context || this._convertItemsToApiFormat(additionalMessages);
289
- let allToolsExecuted = [];
290
290
  let totalRetries = 0;
291
+ let allToolsExecuted = [];
291
292
 
293
+ let input = context || this._convertItemsToApiFormat(additionalMessages);
292
294
  input = input.filter(item => item.type !== 'function_call' && item.type !== 'function_call_output');
295
+ let devMessage = await getRecordByFilter(Config_ID, 'responses', `{prompt_id} = "${assistantId}"`);
296
+ devMessage = devMessage?.[0]?.content || '';
297
+ input = [{ role: 'developer', content: devMessage }, ...input];
293
298
 
294
299
  const promptConfig = { id: assistantId };
295
300
  if (promptVariables) promptConfig.variables = promptVariables;
@@ -297,9 +302,9 @@ class OpenAIResponsesProvider {
297
302
  logger.info('[OpenAIResponsesProvider] Prompt config', { promptConfig });
298
303
 
299
304
  const baseInstructions = instructions || additionalInstructions || '';
300
- const fullInstructions = baseInstructions
301
- ? `${baseInstructions}\n\n${this.defaults.brevityInstruction}`
302
- : this.defaults.brevityInstruction;
305
+ const fullInstructions = baseInstructions;
306
+ //? `${baseInstructions}\n\n${this.defaults.brevityInstruction}`
307
+ //: this.defaults.brevityInstruction;
303
308
 
304
309
  const makeAPICall = (inputData) => retryWithBackoff(() =>
305
310
  this.client.responses.create({
@@ -271,7 +271,6 @@ const replyAssistantCore = async (code, message_ = null, thread_ = null, runOpti
271
271
  message_id: `${code}-${Date.now()}`,
272
272
  numero: code,
273
273
  assistant_id: finalThread.getAssistantId(),
274
- thread_id: finalThread.getConversationId(),
275
274
  prediction_time_ms: predictionTimeMs,
276
275
  retry_count: retries,
277
276
  completed: completed,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peopl-health/nexus",
3
- "version": "3.2.9",
3
+ "version": "3.2.11",
4
4
  "description": "Core messaging and assistant library for WhatsApp communication platforms",
5
5
  "keywords": [
6
6
  "whatsapp",