@calmhive/calmhive-cli
Version:
🐝 Intelligent Claude CLI wrapper with rule injection, AFk background processing, voice interface, and adaptive retry
198 lines (156 loc) • 7.12 kB
Markdown
# Calmhive v3 Library Architecture
The `lib/` directory contains the core business logic and utilities that power Calmhive's Claude CLI wrapper functionality. This modular architecture enables sophisticated background processing, session management, and quality-of-life improvements.
## Core Modules
### Session Management
- **`session-database.js`** - SQLite-based session persistence and retrieval
- **`process-manager.js`** - AFk session lifecycle orchestration with adaptive retry logic
- **`progress-tracker.js`** - Detailed iteration progress monitoring and reporting
- **`context-monitor.js`** - Real-time context usage analysis and /compact management
### Rule Injection & Interception
- **`rule-injector.js`** - CLAUDE.md rule injection for consistent behavior
- **`chat-interceptor.js`** - Network-level Claude API interception and enhancement
- **`stdin-interceptor.js`** - Process input stream monitoring
- **`stdout-interceptor.js`** - Process output stream analysis
### Configuration & Templates
- **`config-manager.js`** - Template resolution and configuration synchronization
- **`template-manager.js`** - CLAUDE.md template management
- **`template-version-manager.js`** - Version synchronization across templates
- **`path-manager.js`** - Cross-platform path resolution and project detection
### Utility Libraries
- **`string-utils.js`** - Comprehensive string manipulation with validation
- **`array-utils.js`** - Safe array operations with performance optimizations
- **`object-utils.js`** - Deep object manipulation and validation
- **`math-utils.js`** - Mathematical utilities with precision handling
- **`date-utils.js`** - Date formatting and relative time calculations
- **`file-utils.js`** - Filesystem operations with safety checks
- **`color-utils.js`** - Terminal color and formatting utilities
### Background Processing
- **`afk-worker.js`** - Detached worker process for background AFk sessions
- **`adaptive-retry.js`** - Exponential backoff and usage limit handling
- **`cleanup-engine.js`** - Automatic cleanup of stale sessions and orphan processes
### Tool Integration
- **`tool-manager.js`** - Claude tool configuration and management
- **`tool-selector.js`** - Intelligent tool selection for different scenarios
### Advanced Features
- **`scheduler/`** - Cron-based task scheduling with Claude integration
- **`tui/`** - Terminal user interface for session monitoring
- **`voice/`** - Voice recognition and command processing
- **`consciousness/`** - AI behavior modification and consciousness protocols
## Architecture Principles
### Modular Design
Each module has a single responsibility and well-defined interfaces. Dependencies are minimal and explicit.
### Error Resilience
All modules implement comprehensive error handling with graceful degradation. No single failure should crash the entire system.
### Performance Optimization
- Utility functions are optimized for common use cases
- Database operations use efficient queries and connection pooling
- Background processing minimizes resource consumption
### Production Ready
- Comprehensive logging with different levels
- Metrics collection for monitoring
- Clean shutdown handling
- Process isolation for stability
## Key Design Patterns
### Singleton Pattern
- `rule-injector.js` - Single instance for rule management
- `session-database.js` - Shared database connection
### Observer Pattern
- `context-monitor.js` - Event-driven context monitoring
- `progress-tracker.js` - Real-time progress updates
### Strategy Pattern
- `adaptive-retry.js` - Configurable retry strategies
- `tool-selector.js` - Dynamic tool selection
### Factory Pattern
- `process-manager.js` - Process creation and management
- `config-manager.js` - Template instantiation
## Integration Points
### Claude Code API
The library integrates with Claude Code through:
- Command line argument parsing
- Process spawning and monitoring
- Output stream analysis
- Tool configuration
### External Dependencies
- **SQLite3** - Session persistence
- **Node.js Child Process** - Process management
- **Node.js FS** - File system operations
- **Node.js HTTP/HTTPS** - Network interception
### Data Flow
```
User Command → AFk Command → Process Manager → Session Database
↓
Rule Injector → Chat Interceptor → Claude Process → Context Monitor
↓
Progress Tracker → Log Files → TUI Display
```
## Development Guidelines
### Adding New Modules
1. Follow the established naming convention (`kebab-case.js`)
2. Include comprehensive JSDoc documentation
3. Add unit tests in `test/unit/`
4. Update this README with module description
### Error Handling
- Use try/catch blocks for all async operations
- Log errors with appropriate severity levels
- Provide user-friendly error messages
- Implement graceful fallbacks where possible
### Testing
- Each module should have corresponding unit tests
- Integration tests should cover module interactions
- Performance tests for utility functions
- End-to-end tests for complete workflows
### Documentation
- All public methods must have JSDoc comments
- Complex algorithms need inline explanations
- Examples should be provided for non-obvious usage
- Architecture decisions should be documented
## Performance Considerations
### Database Operations
- Use prepared statements for repeated queries
- Implement connection pooling for high-load scenarios
- Index frequently queried columns
- Batch operations where possible
### Memory Management
- Avoid memory leaks in long-running processes
- Use streams for large file operations
- Implement proper cleanup in error scenarios
- Monitor memory usage in background workers
### CPU Optimization
- Cache expensive computations
- Use efficient algorithms in utility functions
- Minimize regex operations in hot paths
- Optimize string operations for performance
## Security Considerations
### Input Validation
- Sanitize all user inputs
- Validate file paths to prevent directory traversal
- Escape shell commands properly
- Validate configuration values
### Process Isolation
- Background workers run in separate processes
- Graceful handling of process termination
- Proper cleanup of orphaned processes
- Resource limits for long-running operations
### Data Protection
- No sensitive data in logs
- Secure storage of configuration
- Proper file permissions
- Safe temporary file handling
## Monitoring & Debugging
### Logging
- Structured logging with consistent formats
- Different log levels for different audiences
- Detailed error context for debugging
- Performance metrics collection
### Diagnostics
- Health check endpoints for critical modules
- Status reporting for background processes
- Resource usage monitoring
- Error rate tracking
### Troubleshooting
- Comprehensive error messages with context
- Debug modes for verbose output
- Log file analysis tools
- Performance profiling capabilities
---
For specific module documentation, see the JSDoc comments in each source file. For architecture decisions and detailed design notes, see `docs/ARCHITECTURE.md`.