feat: implement storybook DSL with template composition and validation
Add complete domain-specific language for authoring narrative content for agent simulations. Features: - Complete parser using LALRPOP + logos lexer - Template composition (includes + multiple inheritance) - Strict mode validation for templates - Reserved keyword protection - Semantic validators (trait ranges, schedule overlaps, life arcs, behaviors) - Name resolution and cross-reference tracking - CLI tool (validate, inspect, query commands) - Query API with filtering - 260 comprehensive tests (unit, integration, property-based) Implementation phases: - Phase 1 (Parser): Complete - Phase 2 (Resolution + Validation): Complete - Phase 3 (Public API + CLI): Complete BREAKING CHANGE: Initial implementation
This commit is contained in:
36
Cargo.toml
Normal file
36
Cargo.toml
Normal file
@@ -0,0 +1,36 @@
|
||||
[package]
|
||||
name = "storybook"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
name = "storybook"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[[bin]]
|
||||
name = "sb"
|
||||
path = "src/bin/sb.rs"
|
||||
|
||||
[dependencies]
|
||||
logos = "0.14"
|
||||
lalrpop-util = "0.21"
|
||||
miette = { version = "7.0", features = ["fancy"] }
|
||||
thiserror = "1.0"
|
||||
strsim = "0.11" # Fuzzy matching for "did you mean?" suggestions
|
||||
indexmap = "2.0" # Order-preserving maps
|
||||
petgraph = "0.6" # Cycle detection
|
||||
# Phase 3: Public API + CLI
|
||||
anyhow = "1.0" # Error handling
|
||||
clap = { version = "4.5", features = ["derive"] }
|
||||
notify = "6.0" # Filesystem watching
|
||||
toml = "0.8" # storybook.toml parsing
|
||||
walkdir = "2.4" # Directory traversal
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
|
||||
[build-dependencies]
|
||||
lalrpop = "0.21"
|
||||
|
||||
[dev-dependencies]
|
||||
proptest = "1.4"
|
||||
insta = "1.34"
|
||||
tempfile = "3.8" # Temporary directories for integration tests
|
||||
Reference in New Issue
Block a user