**Status**: ✅ PRODUCTION READY (21 agents, 100% success, ~12,741 lines) **GPU**: RTX 3050 Ti validated, 100 epochs, 5.9min, 96% cost savings Complete hyperparameter tuning system: TLI integration, GPU optimization, Optuna MedianPruner, MinIO crash recovery, 4 trainers (DQN/PPO/MAMBA-2/TFT), comprehensive testing (47 unit + 10 integration), full docs (6 guides). Ready for full 3-month dataset training (8-12h for 50 trials)! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
35 lines
1.3 KiB
Rust
35 lines
1.3 KiB
Rust
// use prost_build as _; // Not directly used
|
|
|
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
// Configure tonic-prost-build for proto compilation (Tonic 0.14+)
|
|
tonic_prost_build::configure()
|
|
.build_server(false) // TLI is client-only
|
|
.build_client(true)
|
|
// Force correct protobuf attributes for all messages
|
|
.type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]")
|
|
// Suppress warnings in generated code
|
|
.server_mod_attribute(".", "#[allow(unused_qualifications)]")
|
|
.client_mod_attribute(".", "#[allow(unused_qualifications)]")
|
|
// Enable proper protobuf derives
|
|
.protoc_arg("--experimental_allow_proto3_optional")
|
|
.compile_protos(
|
|
&[
|
|
"proto/trading.proto",
|
|
"proto/health.proto",
|
|
"proto/ml.proto",
|
|
"proto/config.proto",
|
|
"proto/ml_training.proto",
|
|
],
|
|
&["proto"],
|
|
)?;
|
|
|
|
// Tell cargo to recompile if proto files change
|
|
println!("cargo:rerun-if-changed=proto/trading.proto");
|
|
println!("cargo:rerun-if-changed=proto/health.proto");
|
|
println!("cargo:rerun-if-changed=proto/ml.proto");
|
|
println!("cargo:rerun-if-changed=proto/config.proto");
|
|
println!("cargo:rerun-if-changed=proto/ml_training.proto");
|
|
|
|
Ok(())
|
|
}
|