[package]
name = "feagi-evolutionary"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Evolution and Genome Management - Genotype operations for FEAGI"

[lib]
crate-type = ["rlib"]
name = "feagi_evolutionary"

[dependencies]
# Core types from existing FEAGI crates  
feagi-npu-neural = { version = "0.0.7", path = "../feagi-npu/neural" }
feagi-structures = { workspace = true }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# Observability
feagi-observability = { workspace = true }
tracing = "0.1"  # Required for tracing macros

# Error handling
thiserror = { workspace = true }

# Logging (replaced by feagi-observability)
# log = "0.4"  # Removed - use feagi-observability instead

# Hashing for genome signatures
sha2 = "0.10"

# Timestamp generation for genome IDs
chrono = "0.4"

# Random number generation - platform-specific
# Desktop/server: use rand crate
[target.'cfg(not(target_family = "wasm"))'.dependencies]
rand = "0.8"
tokio = { version = "1.48.0", optional = true, features = ["fs"] }

# WASM/browser: use JavaScript crypto APIs
[target.'cfg(target_family = "wasm")'.dependencies]
wasm-bindgen = "0.2"
js-sys = "0.3"
web-sys = { version = "0.3", features = ["Window", "Crypto"] }

[features]
default = []
async-tokio = ["tokio"]

[dev-dependencies]
# Testing
env_logger = "0.11"
tempfile = "3.10"

# Profile configuration is inherited from workspace root
