UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and

49 lines (48 loc) 1.78 kB
/** * Message Builder Utility * Centralized logic for building message arrays from TextGenerationOptions */ import { CONVERSATION_INSTRUCTIONS } from "../config/conversationMemoryConfig.js"; /** * Build a properly formatted message array for AI providers * Combines system prompt, conversation history, and current user prompt * Supports both TextGenerationOptions and StreamOptions */ export function buildMessagesArray(options) { const messages = []; // Check if conversation history exists const hasConversationHistory = options.conversationMessages && options.conversationMessages.length > 0; // Build enhanced system prompt let systemPrompt = options.systemPrompt?.trim() || ""; // Add conversation-aware instructions when history exists if (hasConversationHistory) { systemPrompt = `${systemPrompt.trim()}${CONVERSATION_INSTRUCTIONS}`; } // Add system message if we have one if (systemPrompt.trim()) { messages.push({ role: "system", content: systemPrompt.trim(), }); } // Add conversation history if available if (hasConversationHistory && options.conversationMessages) { messages.push(...options.conversationMessages); } // Add current user prompt (required) // Handle both TextGenerationOptions (prompt field) and StreamOptions (input.text field) let currentPrompt; if ("prompt" in options && options.prompt) { currentPrompt = options.prompt; } else if ("input" in options && options.input?.text) { currentPrompt = options.input.text; } if (currentPrompt?.trim()) { messages.push({ role: "user", content: currentPrompt.trim(), }); } return messages; }