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
JavaScript
/**
* 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