@nova-mcp/mcp-nova
Version:
AI Memory System for Claude & Cursor - Stop losing context. Start saving tokens.
317 lines (250 loc) • 8.11 kB
JavaScript
/**
* Nova Memory Configuration File
*
* NOTE: In v0.3.0, project configuration is now supported!
* You can customize project paths and database locations.
*/
module.exports = {
// Project Configuration - NOW SUPPORTED IN v0.3.0!
project: {
// Project path (defaults to current working directory)
// You can set this to any absolute or relative path
projectPath: __dirname,
// Project name (optional - defaults to directory name)
projectName: null,
// Future features (coming in v1.0)
enableWorkspaceScanning: false,
workspaceRoot: null,
maxScanDepth: 3
},
// Memory Storage Configuration
memory: {
// Database location (relative to project root or absolute path)
// You can now customize where the database is stored!
databasePath: '.nova/memory.db',
// Maximum number of memories to store (0 = unlimited)
maxMemories: 0,
// Memory retention period in days (0 = keep forever)
retentionDays: 0,
// Auto-cleanup interval in hours (0 = disabled)
cleanupInterval: 24,
// Default confidence score for new memories
defaultConfidence: 0.8,
// NEW: Global maximum memories allowed (1 million)
globalMaxMemories: 1000000,
// NEW: Type-specific retention policies
typeRetention: {
error: {
protect: true, // Never delete errors
maxAgeDays: 0, // Keep forever
maxCount: 0 // No limit
},
context: {
protect: true, // Never delete context
maxAgeDays: 0, // Keep forever
versioning: true // Track versions
},
observation: {
maxAgeDays: 90, // Delete after 90 days
maxCount: 100000, // Max 100k observations
consolidate: true // Consolidate similar
},
action: {
maxAgeDays: 30, // Delete after 30 days
maxCount: 50000 // Max 50k actions
},
result: {
maxAgeDays: 60, // Delete after 60 days
maxCount: 50000, // Max 50k results
consolidate: true // Consolidate similar
},
general: {
maxAgeDays: 30, // Delete after 30 days
maxCount: 100000, // Max 100k general
consolidate: true // Consolidate similar
}
},
// NEW: Version tracking settings
versioning: {
enabled: true, // Enable versioning
trackEntities: true, // Track entity versions
maxVersionsPerEntity: 10 // Keep last 10 versions
},
// NEW: Consolidation settings
consolidation: {
enabled: true, // Enable consolidation
onStore: true, // Consolidate during storage
threshold: 5 // Consolidate when >5 similar
},
// NEW: Cleanup settings
cleanup: {
enabled: true, // Enable auto-cleanup
interval: 24, // Run every 24 hours
batchSize: 1000 // Process 1000 at a time
},
// NEW: Export settings
export: {
warningThreshold: 900000, // Warn at 900k memories
autoExport: true, // Auto-export when near limit
format: 'json', // Export format
location: '.nova/exports' // Export directory
}
},
// AI Features Configuration - NEW in v0.3.0!
ai: {
// Enable proactive search triggers
proactive_search: true,
// Enable automatic entity detection
entity_detection: true,
// Enable silent operations for AI
silent_operations: true
},
// Database Configuration
database: {
// Database path (can also be set in memory.databasePath)
path: ".nova/memory.db",
// Backup retention in days
backup_retention: 30,
// Enable auto-cleanup
auto_cleanup: true
},
// Search Configuration
search: {
// Default search mode: 'smart', 'precise', 'fast', or 'balanced'
defaultMode: 'smart',
// Maximum search results to return
maxResults: 20,
// Minimum confidence score for results
minConfidence: 0.5,
// Enable semantic search (requires more memory)
enableSemantic: true,
// Cache search results for performance
cacheResults: true,
// Cache TTL in seconds
cacheTTL: 300
},
// Entity Extraction Configuration
entities: {
// Enable automatic entity extraction
autoExtract: true,
// Minimum entity confidence
minConfidence: 0.7,
// Maximum entities per memory
maxPerMemory: 10,
// Entity types to extract
types: ['person', 'company', 'location', 'concept', 'event', 'product'],
// Custom entity patterns (regex)
customPatterns: {
// Example: email: /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g
}
},
// Relationship Configuration
relationships: {
// Enable automatic relationship extraction
autoExtract: true,
// Maximum relationship depth for traversal
maxTraversalDepth: 5,
// Relationship confidence threshold
minConfidence: 0.6,
// Relationship types to track
types: ['uses', 'implements', 'extends', 'imports', 'calls', 'references']
},
// File Watching Configuration
fileWatching: {
// Enable file watching
enabled: true,
// Directories to watch (relative to project root)
directories: ['src', 'lib', 'app'],
// File extensions to watch
extensions: ['.js', '.ts', '.jsx', '.tsx', '.py', '.java', '.go'],
// Ignore patterns
ignore: ['node_modules', '.git', 'dist', 'build', '*.test.*'],
// Debounce delay in milliseconds
debounceDelay: 1000
},
// Logging Configuration
logging: {
// Log level: 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE'
level: process.env.LOG_LEVEL || 'INFO',
// Enable file logging
fileLogging: process.env.LOG_TO_FILE === 'true',
// Log directory
logDir: process.env.LOG_DIR || '.nova/logs',
// Maximum log file size in MB
maxFileSize: 10,
// Maximum number of log files to keep
maxFiles: 7
},
// Performance Configuration
performance: {
// Maximum concurrent operations
maxConcurrency: 10,
// Database connection pool size
connectionPoolSize: 5,
// Query timeout in milliseconds
queryTimeout: 5000,
// Enable performance monitoring
monitoring: true,
// Performance data retention in days
metricsRetention: 7
},
// MCP Server Configuration
mcp: {
// Server name for MCP
serverName: 'nova-memory',
// Enable MCP server
enabled: true,
// Tool visibility (which tools to expose)
exposedTools: [
'store_memory',
'query_memory',
'search_memory',
'get_memory_stats',
'advanced_search',
'traverse_graph',
'generate_memory_map',
'analyze_memory'
],
// Response size limit in KB
maxResponseSize: 900,
// Enable tool usage analytics
analytics: false
},
// Export Configuration
export: {
// Default export format: 'json', 'csv', 'markdown'
defaultFormat: 'json',
// Export directory
exportDir: '.nova/exports',
// Include metadata in exports
includeMetadata: true,
// Compress large exports
compress: true
},
// Security Configuration
security: {
// Enable encryption at rest
encryptionEnabled: false,
// Encryption key (use environment variable in production)
encryptionKey: process.env.NOVA_ENCRYPTION_KEY,
// Sanitize inputs
sanitizeInputs: true,
// Maximum input length
maxInputLength: 10000,
// Blocked patterns (regex)
blockedPatterns: []
},
// Advanced Configuration
advanced: {
// Enable debug mode
debug: process.env.NODE_ENV === 'development',
// Custom plugins directory
pluginsDir: '.nova/plugins',
// Enable experimental features
experimental: {
graphVisualization: true,
mlAnalysis: false,
autoTagging: true
}
}
};