Restructure: move src to core/ crate, move cmd/supervisor.rs to core/src/bin/supervisor.rs, create workspace

This commit is contained in:
Timur Gordon
2025-11-06 23:30:18 +01:00
parent 0a617ad359
commit 6d518599b8
39 changed files with 824 additions and 140 deletions

810
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,69 +1,8 @@
[package] [workspace]
name = "hero-supervisor" members = ["core", "client", "ui"]
resolver = "2"
[workspace.package]
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"
[dependencies]
# Job types
# hero-job = { path = "../job/rust" }
hero-job = { git = "https://git.ourworld.tf/herocode/job.git" }
# hero-job-client = { path = "../job/rust/client" }
hero-job-client = { git = "https://git.ourworld.tf/herocode/job.git" }
# Async runtime
tokio = { version = "1.0", features = ["full"] }
# Async trait support
async-trait = "0.1"
# Redis client
redis = { version = "0.25", features = ["aio", "tokio-comp"] }
# Job module dependencies (now integrated)
uuid = { version = "1.0", features = ["v4"] }
# Logging
log = "0.4"
thiserror = "1.0"
chrono = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
env_logger = "0.10"
# CLI argument parsing
clap = { version = "4.0", features = ["derive"] }
toml = "0.8"
# OpenRPC dependencies (now always included)
jsonrpsee = { version = "0.24", features = ["server", "macros"] }
anyhow = "1.0"
# CORS support for OpenRPC server
tower-http = { version = "0.5", features = ["cors"] }
tower = "0.4"
hyper = { version = "1.0", features = ["full"] }
hyper-util = { version = "0.1", features = ["tokio"] }
# Mycelium integration (optional)
base64 = { version = "0.22", optional = true }
rand = { version = "0.8", optional = true }
reqwest = { version = "0.12", features = ["json"], optional = true }
[dev-dependencies]
tokio-test = "0.4"
hero-supervisor-openrpc-client = { path = "client" }
escargot = "0.5"
[features]
default = ["cli"]
cli = []
mycelium = ["base64", "rand", "reqwest"]
[[bin]]
name = "supervisor"
path = "cmd/supervisor.rs"
# Examples
[[example]]
name = "osiris_openrpc"
path = "examples/osiris_openrpc/main.rs"

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "hero-supervisor-openrpc-client" name = "hero-supervisor-openrpc-client"
version = "0.1.0" version.workspace = true
edition = "2021" edition.workspace = true
description = "OpenRPC client for Hero Supervisor" description = "OpenRPC client for Hero Supervisor"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
@@ -25,7 +25,7 @@ hero-job = { git = "https://git.ourworld.tf/herocode/job.git" }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies] [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
jsonrpsee = { version = "0.24", features = ["http-client", "macros"] } jsonrpsee = { version = "0.24", features = ["http-client", "macros"] }
tokio = { version = "1.0", features = ["full"] } tokio = { version = "1.0", features = ["full"] }
hero-supervisor = { git = "https://git.ourworld.tf/herocode/supervisor.git" } hero-supervisor = { path = "../core" }
hero-job-client = { git = "https://git.ourworld.tf/herocode/job.git" } hero-job-client = { git = "https://git.ourworld.tf/herocode/job.git" }
env_logger = "0.11" env_logger = "0.11"

71
core/Cargo.toml Normal file
View File

@@ -0,0 +1,71 @@
[package]
name = "hero-supervisor"
version = "0.1.0"
edition = "2021"
[lib]
name = "hero_supervisor"
path = "src/lib.rs"
[[bin]]
name = "supervisor"
path = "src/bin/supervisor.rs"
[dependencies]
# Job types
hero-job = { git = "https://git.ourworld.tf/herocode/job.git" }
hero-job-client = { git = "https://git.ourworld.tf/herocode/job.git" }
# Async runtime
tokio = { version = "1.0", features = ["full"] }
# Async trait support
async-trait = "0.1"
# Redis client
redis = { version = "0.25", features = ["aio", "tokio-comp"] }
# Job module dependencies (now integrated)
uuid = { version = "1.0", features = ["v4"] }
# Logging
log = "0.4"
thiserror = "1.0"
chrono = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
env_logger = "0.10"
# CLI argument parsing
clap = { version = "4.0", features = ["derive"] }
toml = "0.8"
# OpenRPC dependencies (now always included)
jsonrpsee = { version = "0.24", features = ["server", "macros"] }
anyhow = "1.0"
# CORS support for OpenRPC server
tower-http = { version = "0.5", features = ["cors"] }
tower = "0.4"
hyper = { version = "1.0", features = ["full"] }
hyper-util = { version = "0.1", features = ["tokio"] }
# Mycelium integration (optional)
base64 = { version = "0.22", optional = true }
rand = { version = "0.8", optional = true }
reqwest = { version = "0.12", features = ["json"], optional = true }
[dev-dependencies]
tokio-test = "0.4"
hero-supervisor-openrpc-client = { path = "../client" }
escargot = "0.5"
[features]
default = ["cli"]
cli = []
mycelium = ["base64", "rand", "reqwest"]
# Examples
[[example]]
name = "osiris_openrpc"
path = "examples/osiris_openrpc/main.rs"

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "supervisor-admin-ui" name = "supervisor-admin-ui"
version = "0.1.0" version.workspace = true
edition = "2021" edition.workspace = true
[lib] [lib]
crate-type = ["cdylib"] crate-type = ["cdylib"]
@@ -32,4 +32,4 @@ wasm-logger = "0.2"
uuid = { version = "1.0", features = ["v4", "js"] } uuid = { version = "1.0", features = ["v4", "js"] }
# Use our new WASM OpenRPC client # Use our new WASM OpenRPC client
hero-supervisor-openrpc-client = { path = "../openrpc" } hero-supervisor-openrpc-client = { path = "../client" }