## New Skill: video-comparer v1.0.0 - Compare original and compressed videos with interactive HTML reports - Calculate quality metrics (PSNR, SSIM) for compression analysis - Generate frame-by-frame visual comparisons (slider, side-by-side, grid) - Extract video metadata (codec, resolution, bitrate, duration) - Multi-platform FFmpeg support with security features ## transcript-fixer Enhancements - Add async AI processor for parallel processing - Add connection pool management for database operations - Add concurrency manager and rate limiter - Add audit log retention and database migrations - Add health check and metrics monitoring - Add comprehensive test suite (8 new test files) - Enhance security with domain and path validators ## Marketplace Updates - Update marketplace version from 1.8.0 to 1.9.0 - Update skills count from 15 to 16 - Update documentation (README.md, CLAUDE.md, CHANGELOG.md) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
"""
|
|
Core Module - Business Logic and Data Access
|
|
|
|
This module contains the core business logic for transcript correction:
|
|
- CorrectionRepository: Data access layer with ACID transactions
|
|
- CorrectionService: Business logic layer with validation
|
|
- DictionaryProcessor: Stage 1 dictionary-based corrections
|
|
- AIProcessor: Stage 2 AI-powered corrections
|
|
- LearningEngine: Pattern detection and learning
|
|
"""
|
|
|
|
# Core SQLite-based components (always available)
|
|
from .correction_repository import CorrectionRepository, Correction, DatabaseError, ValidationError
|
|
from .correction_service import CorrectionService, ValidationRules
|
|
|
|
# Processing components (imported lazily to avoid dependency issues)
|
|
def _lazy_import(name: str) -> object:
|
|
"""Lazy import to avoid loading heavy dependencies."""
|
|
if name == 'DictionaryProcessor':
|
|
from .dictionary_processor import DictionaryProcessor
|
|
return DictionaryProcessor
|
|
elif name == 'AIProcessor':
|
|
# Use async processor by default for 5-10x speedup on large files
|
|
from .ai_processor_async import AIProcessorAsync
|
|
return AIProcessorAsync
|
|
elif name == 'LearningEngine':
|
|
from .learning_engine import LearningEngine
|
|
return LearningEngine
|
|
raise ImportError(f"Unknown module: {name}")
|
|
|
|
# Export main classes
|
|
__all__ = [
|
|
'CorrectionRepository',
|
|
'CorrectionService',
|
|
'Correction',
|
|
'DatabaseError',
|
|
'ValidationError',
|
|
'ValidationRules',
|
|
]
|
|
|
|
# Make lazy imports available via __getattr__
|
|
def __getattr__(name):
|
|
if name in ['DictionaryProcessor', 'AIProcessor', 'LearningEngine']:
|
|
return _lazy_import(name)
|
|
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|