UNPKG

dspy.ts

Version:

DSPy.ts - Declarative Self-Learning TypeScript: A framework for compositional LM pipelines with self-improving prompt strategies.

78 lines (62 loc) 2.65 kB
# Phase 2: Core DSL & Module Infrastructure Implementation Log ## Implementation Date 2/22/2025 ## Components Implemented ### 1. Core Types and Interfaces (signature.ts) - Implemented `FieldDefinition` interface for input/output field definitions - Implemented `Signature` interface for module signatures - Added type guard `isValidFieldDefinition` for field validation - Test Coverage: 100% ### 2. Base Module Class (module.ts) - Implemented abstract `Module` class with generic input/output types - Added input/output validation with type checking - Implemented support for different execution strategies (Predict, ChainOfThought, ReAct) - Added prompt template handling - Test Coverage: 95.34% - Uncovered Lines: 8489 (minor edge cases in validation) ### 3. Pipeline Executor (pipeline.ts) - Implemented `runPipeline` function for sequential module execution - Added pipeline configuration options (stopOnError, debug) - Implemented error handling with configurable behavior - Added debug logging support - Test Coverage: 100% ## Test Coverage Summary - Overall Coverage: 97.1% - Branch Coverage: 95.34% - Function Coverage: 100% - Statement Coverage: 97.1% ## Key Decisions 1. **Module Validation Methods** - Initially made validation methods protected - Changed to public for better testability - Allows modules to call validation directly when needed 2. **Pipeline Error Handling** - Implemented configurable error handling with stopOnError option - Added error logging for non-stopping errors - Ensures pipeline can continue even if individual modules fail 3. **Type Safety** - Used TypeScript generics for type-safe module input/output - Added runtime type validation to complement static typing - Ensures both compile-time and runtime type safety ## Files Created - src/core/signature.ts - src/core/module.ts - src/core/pipeline.ts - tests/core/signature.spec.ts - tests/core/module.spec.ts - tests/core/pipeline.spec.ts ## Commits 1. "Implement core signature types and validation with 100% test coverage" 2. "Implement base Module class with comprehensive tests" 3. "Implement pipeline executor with comprehensive tests" 4. "Export core components from index file" ## Dependencies Added ### 1. ML Dependencies - Added onnxruntime-web for ONNX model support - Added js-pytorch for PyTorch model support - Updated install.sh to include required system dependencies: - Added libgl1-mesa-dev for OpenGL support - Created separate ML dependencies installation step - Verified successful installation and compilation ## Next Steps Ready to proceed with Phase 3: LM Driver & DummyLM implementation