Distribute only each stage's GGUF layer slice over HTTP, add sampler and weight-load health telemetry, and harden node-image build, orchestrator provisioning, and the VastAI lease/search path. - gguf_shard (new): StageShardPlan and plan_stage_shard parse the GGUF directory and compute coalesced per-stage tensor byte ranges; materialize_stage_shard_http fetches only those ranges (plus the header) to build a stage-local GGUF, with planned_fetch_bytes accounting. - orchestrator_app: build a BTreeMap<u32, StageShardPlan> from the run plan for HuggingFace sources, thread stage_shard_plan through StageProvisionWire and weight-load, emit stage_shard_plan summaries, and add liveness phases (prefetching/fetching_stage_shard, cache_ready, stage_shard_ready). - worker_node: add a stage-shard-fetcher subcommand and materialize_stage_shard_with_process that spawns the fetcher, streams its stdout/stderr as stage_shard_fetch events (StageShardCacheReady/StageShardReady), caches under MVP_MODEL_CACHE_DIR, and feeds the local shard path into load_weights. - worker_node: add NODE_SAMPLER_CHANNEL and SamplerHealth telemetry (gpu/cpu/net samplers emit started/waiting/ready/failed) plus structured helper stdout/stderr streaming (wait_for_helper_event/drain_worker_stderr). - node_image: expand node-image build/push handling for the deploy path. - tools/vastai: extend lease, search, and types and drop unused pricing code. Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
48 lines
1.1 KiB
TOML
48 lines
1.1 KiB
TOML
[package]
|
|
name = "mvp-system"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
publish = false
|
|
autobins = false
|
|
|
|
[features]
|
|
default = []
|
|
dashboard = []
|
|
|
|
[dependencies]
|
|
datastream = { path = "../datastream" }
|
|
dashboard = { path = "../dashboard" }
|
|
serde_json = "1"
|
|
serde = { version = "1", features = ["derive"] }
|
|
swactor = { path = "../..", features = ["serde", "transport"] }
|
|
swactor-transport = { path = "../transport" }
|
|
distribution = { path = "../distribution" }
|
|
iroh-driver = { path = "../iroh-driver" }
|
|
iroh = "0.98"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "process", "io-util", "sync", "time", "net", "signal"] }
|
|
swactor-vastai = { path = "../../tools/vastai" }
|
|
parking_lot = "0.12"
|
|
blake3 = "1"
|
|
toml = "0.8"
|
|
ureq = "2"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
libc = "0.2"
|
|
signal-hook = "0.3"
|
|
|
|
[[bin]]
|
|
name = "mvp-worker-node"
|
|
path = "src/bin/worker_node.rs"
|
|
|
|
[[bin]]
|
|
name = "mvp-orchestrator"
|
|
path = "src/bin/orchestrator.rs"
|
|
|
|
[[bin]]
|
|
name = "mvp-chat"
|
|
path = "src/bin/mvp_chat.rs"
|
|
|
|
[[test]]
|
|
name = "mvp_chat_mock"
|
|
path = "tests/mvp_chat_mock.rs"
|
|
harness = false
|