@jungjaehoon/mama-core
v1.4.0
Published
MAMA Core - Shared modules for Memory-Augmented MCP Assistant
Maintainers
Readme
@jungjaehoon/mama-core
Shared core modules for MAMA (Memory-Augmented MCP Assistant).
What is MAMA Core?
MAMA Core is a shared package containing the fundamental modules used by all MAMA packages:
- mcp-server: MCP protocol server
- claude-code-plugin: Claude Code plugin
- standalone: Standalone HTTP server
This package provides embedding generation, database management, decision tracking, and other core functionality without the transport layer (MCP/HTTP).
Installation
npm install @jungjaehoon/mama-core
# or
pnpm add @jungjaehoon/mama-coreUsage
Import Everything
const mama = require('@jungjaehoon/mama-core');
// Access all exported functions
const embedding = await mama.generateEmbedding('your text');
await mama.initDB();Import Specific Modules
const { generateEmbedding } = require('@jungjaehoon/mama-core/embeddings');
const { initDB, getDB } = require('@jungjaehoon/mama-core/db-manager');
const mamaApi = require('@jungjaehoon/mama-core/mama-api');Available Modules
Embedding Modules
embeddings - Generate embeddings using Transformers.js
generateEmbedding(text)- Single text embeddinggenerateBatchEmbeddings(texts)- Batch embedding generationcosineSimilarity(a, b)- Similarity calculation
embedding-cache - In-memory embedding cache
embeddingCache.get(key)- Retrieve cached embeddingembeddingCache.set(key, value)- Store embeddingembeddingCache.clear()- Clear cache
embedding-client - HTTP client for embedding server
isServerRunning()- Check server availabilitygetEmbeddingFromServer(text)- Get embedding via HTTPgetServerStatus()- Server health check
Database Modules
db-manager - SQLite database initialization
initDB()- Initialize database with migrationsgetDB()- Get database connectioncloseDB()- Close connection
db-adapter - Database adapter interface
createAdapter(type)- Create SQLite adapter- Supports prepared statements and transactions
memory-store - Decision storage operations
- CRUD operations for decisions
- Vector similarity search
Memory API
memory/api - Scoped memory operations
saveMemory(input)- Save typed memory with scopes and optional event_date (preference, fact, decision, lesson, constraint)recallMemory(query, options)- Truth-aware recall with scope filteringbuildProfile(scopes)- Build memory profile (static/dynamic/evidence)ingestMemory(input)- Ingest raw content as memoryingestConversation(input)- Decompose conversations into typed memory units via optional LLM extractionevolveMemory(input)- Resolve graph edges between memoriesbuildMemoryBootstrap(params)- Build memory agent bootstrap contextcreateAuditAck(input)- Create audit acknowledgmentrecordMemoryAudit(input)- Record channel audit with state management
memory/truth-store - Truth projection layer
projectMemoryTruth(row)- Write truth projectionqueryRelevantTruth(params)- Query current truth with scope/query filteringqueryTruthByTopic(topic)- Get truth rows for a topic
memory/evolution-engine - Graph edge resolution
resolveMemoryEvolution(input)- Determine supersedes/builds_on edges
memory/extraction-prompt - LLM extraction for conversation ingestion
buildExtractionPrompt(messages)- Build structured prompt for memory extractionparseExtractionResponse(response)- Parse LLM JSON response into typed units
memory/channel-summary-state-store - Channel state management
recordChannelAudit(input)- Accumulate audit outcomes into channel state
Core API (Legacy)
mama-api - High-level API interface (wraps memory API)
save(decision)- Save decisionrecall(topic)- Retrieve decision historysuggest(query)- Semantic search with hybrid FTS5 + vector + recencyupdateOutcome(id, outcome)- Update decision outcome
decision-tracker - Decision graph management
learnDecision(decision)- Learn from decisioncreateEdgesFromReasoning(reasoning)- Parse decision links
relevance-scorer - Semantic similarity scoring
scoreRelevance(query, decisions)- Score decision relevance- Combines vector, graph, and recency signals
Configuration
- config-loader - Configuration management
loadConfig()- Load MAMA configurationgetModelName()- Get embedding model namegetEmbeddingDim()- Get embedding dimensionsupdateConfig(config)- Update configuration
Environment Variables
MAMA_DB_PATH- Database file path (default:~/.claude/mama-memory.db)MAMA_EMBEDDING_PORT- Embedding server port (default:3849)MAMA_HTTP_PORT- Backward-compatible alias for embedding server port
Dependencies
- @huggingface/transformers - Local embedding generation
- node:sqlite - Built-in SQLite runtime (Node.js 22+)
- Pure-TS cosine similarity - Vector search (no native extensions)
Development
# Install dependencies
pnpm install
# Run tests
pnpm test
# Watch mode
pnpm test:watchTest Coverage
- 72 unit tests across 17 test files
- 100% passing
- Tests cover:
- Config loader, database initialization, module exports
- Memory API (save, recall, profile)
- Truth store, evolution engine, scope schema
- Channel summary, channel summary state
- Event store, finding store, bootstrap builder
- Legacy shim compatibility
Architecture
MAMA Core uses CommonJS modules and is designed to be shared across multiple packages:
packages/mama-core/
├── src/
│ ├── index.ts # Main exports
│ ├── embeddings.ts # Embedding generation
│ ├── db-manager.ts # Database management
│ ├── mama-api.ts # High-level API (wraps memory API)
│ ├── db-adapter/ # Database adapter (SQLite)
│ └── memory/ # Memory infrastructure
│ ├── types.ts # MemoryRecord, MemoryScopeRef, RecallBundle, etc.
│ ├── api.ts # saveMemory, recallMemory, buildProfile, etc.
│ ├── truth-store.ts # Truth projection layer
│ ├── extraction-prompt.ts # LLM extraction prompt + parser
│ ├── evolution-engine.ts # Graph edge resolution
│ ├── scope-store.ts # Scope management
│ ├── event-store.ts # Audit event persistence
│ ├── finding-store.ts # Audit finding persistence
│ ├── channel-summary-store.ts # Channel summaries
│ ├── channel-summary-state-store.ts # Channel state reducer
│ ├── bootstrap-builder.ts # Memory agent bootstrap
│ └── profile-builder.ts # Profile classification
├── db/migrations/ # SQLite migrations (001-023)
└── tests/ # 16 test files, 59 testsMigration Files
Database migrations are included in db/migrations/ (001-023):
- 001-013: Core schema (decisions, embeddings, graph edges)
- 014: Add is_static column
- 015: FTS5 full-text search index
- 016: Memory kind/status/summary columns
- 017-018: Memory scopes and scope bindings
- 019-020: Memory events and audit findings
- 021: Memory truth projection
- 022-023: Channel summaries and state
License
MIT - see LICENSE file for details
Links
Part of the MAMA monorepo - Memory-Augmented MCP Assistant
