codestate-core
v1.5.1
Published
Core domain models, use cases, and services for CodeState
Maintainers
Readme
CodeState Core
The core domain models, use cases, and services for CodeState - a developer context engine for saving and resuming your full development environment.
Version 1.4.6 Updates
What's New
- Interface Improvements: Enhanced
IScriptServiceinterface with better method organization - Code Quality: Removed unused methods and improved interface consistency
- Type Safety: Better TypeScript interface alignment across services
- Build System: Improved build process and dependency management
Changes from v1.4.2
- 🔧 Interface Cleanup: Streamlined
IScriptServiceinterface methods for better maintainability - 🏗️ Build Improvements: Enhanced build system with better dependency resolution
- 📦 Package Updates: Updated to v1.4.5 with improved stability
Overview
CodeState Core provides the foundational building blocks for managing development context, including:
- Domain Models: Scripts, Sessions, Configurations, Git state, IDE integrations
- Use Cases: Business logic for all CodeState operations
- Services: Core services for configuration, git management, IDE integration, and more
- Type Safety: Full TypeScript support with Zod validation schemas
Features
Domain Models
- Script Management: Create, update, and manage development scripts
- Session Persistence: Save and resume development sessions
- Configuration System: Flexible configuration management with validation
- Git Integration: Track repository state and changes
- IDE Support: Multi-IDE integration capabilities
Core Services
- ConfigurableLogger: Logging service with multiple sinks
- GitService: Git repository state management
- Terminal: Terminal command execution and spawning
- IDEService: IDE integration and file management
- FileStorage: File storage with encryption support
Use Cases
- CreateScript: Create new development scripts
- GetScripts: Retrieve and manage scripts
- SaveSession: Save development sessions
- ListSessions: List and filter sessions
- ExportConfig/ImportConfig: Configuration backup and restore
Type Safety
- Full TypeScript definitions
- Zod validation schemas for all data models
- Comprehensive error handling with typed error registry
Installation
npm install codestate-coreUsage
import {
ConfigurableLogger,
GitService,
Terminal,
IDEService,
FileStorage,
CreateScript,
GetScripts,
SaveSession,
ListSessions
} from 'codestate-core';
// Initialize services
const logger = new ConfigurableLogger({ level: 'LOG', sinks: ['console'] });
const gitService = new GitService();
const terminal = new Terminal();
const ideService = new IDEService();
// Create a new script using use case
const createScript = new CreateScript();
const scriptResult = await createScript.execute({
name: 'setup-project',
script: 'npm install && npm run build',
rootPath: '/path/to/project'
});
// Get scripts using use case
const getScripts = new GetScripts();
const scripts = await getScripts.execute();
// Save session using use case
const saveSession = new SaveSession();
const session = await saveSession.execute({
name: 'feature-development',
projectRoot: '/path/to/project',
notes: 'Working on new feature'
});API Reference
Core Services
Use Cases
Script Management
CreateScript.execute(scriptData)- Create new scriptGetScripts.execute()- Get all scriptsGetScriptsByRootPath.execute(rootPath)- Get scripts for specific projectUpdateScript.execute(id, updates)- Update existing scriptDeleteScript.execute(id)- Delete scriptExportScripts.execute()- Export scripts to JSONImportScripts.execute(json)- Import scripts from JSON
Session Management
SaveSession.execute(sessionData)- Save current development sessionResumeSession.execute(id)- Resume saved sessionListSessions.execute(filter)- List all saved sessionsUpdateSession.execute(id, updates)- Update session metadataDeleteSession.execute(id)- Delete session
Configuration Management
GetConfig.execute()- Retrieve current configurationUpdateConfig.execute(updates)- Update configurationExportConfig.execute(outputPath)- Export configuration to fileImportConfig.execute(filePath)- Import configuration from fileResetConfig.execute()- Reset to default configuration
Services
GitService
getGitStatus()- Get current git repository statusgetDirtyData()- Get uncommitted changescommitChanges(message)- Commit changescreateStash(message)- Create git stashapplyStash(id)- Apply git stashlistStashes()- List all stashesdeleteStash(id)- Delete stash
IDEService
getAvailableIDEs()- Get list of available IDEsopenIDE(ideName, projectRoot)- Open project in specific IDEopenFiles(request)- Open specific files in IDEisIDEInstalled(ideName)- Check if IDE is installed
Terminal
execute(command, options)- Execute terminal commandspawnTerminal(command, options)- Spawn new terminal windowspawnApplication(command, options)- Launch applicationisCommandAvailable(command)- Check if command is available
TypeScript Support
Full TypeScript definitions are included:
import type {
Script,
Session,
Config,
GitStatus,
IDE
} from 'codestate-core';Validation
All data models use Zod schemas for runtime validation:
import { SchemaRegistry } from 'codestate-core';
// Validate script data
const scriptSchema = SchemaRegistry.getSchema('Script');
const validatedScript = scriptSchema.parse(scriptData);Error Handling
Comprehensive error handling with typed errors:
import { ErrorRegistry, ErrorTypes } from 'codestate-core';
try {
await scriptService.createScript(scriptData);
} catch (error) {
if (error instanceof ErrorRegistry.getError(ErrorTypes.SCRIPT_CREATION_FAILED)) {
// Handle script creation error
}
}Development
This package is part of the CodeState monorepo. For development setup, see the main CodeState repository.
License
MIT
