UNPKG

create-ai-chat-context-experimental

Version:

Phase 2: TypeScript rewrite - AI Chat Context & Memory System with conversation extraction and AICF format support (powered by aicf-core v2.1.0).

73 lines 1.97 kB
/** * This file is part of create-ai-chat-context-experimental. * Licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). * See LICENSE file for details. */ /** * Message Builder * Consistent message creation across all parsers * October 2025 */ import { randomUUID } from 'crypto'; /** * Build messages consistently */ export class MessageBuilder { /** * Create a message with standard structure */ static create(options) { const message = { id: options.id || this.generateId(options.prefix, options.index), conversationId: options.conversationId, timestamp: options.timestamp || new Date().toISOString(), role: options.role, content: options.content, }; if (options.metadata) { message.metadata = options.metadata; } return message; } /** * Add or merge metadata to a message */ static withMetadata(message, metadata) { return { ...message, metadata: { ...message.metadata, ...metadata, }, }; } /** * Generate consistent ID */ static generateId(prefix, index) { if (prefix && index !== undefined) { return `${prefix}-${index}`; } if (prefix) { return `${prefix}-${randomUUID()}`; } return randomUUID(); } /** * Create message with platform metadata */ static createWithPlatform(options) { const metadata = { platform: options.platform, extractedFrom: options.extractedFrom, messageType: options.messageType, rawLength: options.rawLength || 0, ...options.metadata, }; return this.create({ ...options, metadata, }); } } //# sourceMappingURL=MessageBuilder.js.map