Commit graph

4 commits

Author SHA1 Message Date
bedc0cc9ec
feat: add networkx dependency graph construction
- build_graph() creates a DAG from project config with validation
- get_build_order() wraps topological_generations() for parallel batches
- get_subgraph_for_target() extracts transitive deps for single-target builds
- Validates missing dependencies and cycle detection
2026-02-13 20:08:53 +01:00
ce2160bd6c
feat: add incremental build state tracking
- TargetState/BuildState pydantic models for .bulkgen.state.yaml
- SHA-256 hashing for files and strings
- is_target_dirty() checks output existence, input hashes, prompt, model, and extra params
- record_target_state() persists hashes after successful builds
- load_state()/save_state() for YAML serialization
2026-02-13 20:08:16 +01:00
bda2b8c8e7
feat: add pydantic config models for YAML parsing
- TargetType enum with IMAGE/TEXT variants
- Defaults, TargetConfig, ProjectConfig pydantic models
- infer_target_type() for extension-based type dispatch
- resolve_model() for default/override model resolution
- load_config() using yaml.safe_load + model_validate
2026-02-13 20:07:44 +01:00
53e402b119
feat: scaffold project structure with package dirs and mistralai dependency
- Create bulkgen/ package with __init__.py
- Create bulkgen/providers/ subpackage with __init__.py
- Add mistralai>=1.0.0 to dependencies
- Add [project.scripts] entry point and [build-system] with hatchling
- Add .bulkgen.state.yaml to .gitignore
2026-02-13 20:07:08 +01:00