Skip to main content
Glama
create-memory.ts1.75 kB
/** * Create Memory Use Case * Single responsibility: Orchestrate memory creation workflow */ import { Memory, MemoryValidator } from '../../domain/entities/memory'; import { MemoryRepository } from '../../domain/repositories/memory-repository'; import { EmbeddingService } from '../../infrastructure/services/embedding-service'; import { generateCompactId } from '../../id_generator'; export interface CreateMemoryRequest { name: string; memoryType: string; metadata?: Record<string, any>; observations?: string[]; } export class CreateMemoryUseCase { constructor( private memoryRepository: MemoryRepository, private embeddingService: EmbeddingService ) {} async execute(request: CreateMemoryRequest): Promise<Memory> { // Generate unique ID const id = generateCompactId(); // Generate name embedding for semantic search const nameEmbedding = await this.embeddingService.calculateEmbedding(request.name); // Create domain entity with validation const memory: Memory = { id, name: request.name, memoryType: request.memoryType, metadata: request.metadata || {}, createdAt: new Date(), modifiedAt: new Date(), lastAccessed: new Date() }; // Validate domain entity MemoryValidator.validate(memory); // Add nameEmbedding to memory object for persistence (memory as any).nameEmbedding = nameEmbedding; // Persist through repository const createdMemory = await this.memoryRepository.create(memory); // Add observations if provided if (request.observations && request.observations.length > 0) { await this.memoryRepository.addObservations(id, request.observations); } return createdMemory; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sylweriusz/mcp-neo4j-memory-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server