2026-06-23 07:12:45 +00:00
|
|
|
[package]
|
|
|
|
|
name = "mvp-system"
|
|
|
|
|
version = "0.1.0"
|
|
|
|
|
edition = "2024"
|
|
|
|
|
publish = false
|
2026-07-07 10:40:02 +00:00
|
|
|
autobins = false
|
2026-06-23 07:12:45 +00:00
|
|
|
|
2026-06-24 09:30:29 +00:00
|
|
|
[features]
|
|
|
|
|
default = []
|
2026-06-25 12:30:18 +00:00
|
|
|
local-e2e = ["dep:dashboard"]
|
feat(mvp): implement mvp-system modules and in-crate tests
Implement arena_manager, device_bridge, driver_pumps, edge_establisher, gpu_worker
ctl/egress/ingress/process-adapter, orchestrator run-fsm and token-endpoint, run_plan,
stage_controller, tx_rx_edge_actor, weight_lifecycle, and the remaining modules. Move
guarantee tests from tests/mvp_system into crates/mvp-system/src/tests; add the
tinygrad device-bridge backend helper.
Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-06-23 13:51:34 +00:00
|
|
|
|
|
|
|
|
[dependencies]
|
2026-06-24 09:30:29 +00:00
|
|
|
datastream = { path = "../datastream" }
|
2026-06-25 12:30:18 +00:00
|
|
|
dashboard = { path = "../dashboard", optional = true }
|
feat(mvp): implement mvp-system modules and in-crate tests
Implement arena_manager, device_bridge, driver_pumps, edge_establisher, gpu_worker
ctl/egress/ingress/process-adapter, orchestrator run-fsm and token-endpoint, run_plan,
stage_controller, tx_rx_edge_actor, weight_lifecycle, and the remaining modules. Move
guarantee tests from tests/mvp_system into crates/mvp-system/src/tests; add the
tinygrad device-bridge backend helper.
Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-06-23 13:51:34 +00:00
|
|
|
serde_json = "1"
|
2026-06-24 09:30:29 +00:00
|
|
|
serde = { version = "1", features = ["derive"] }
|
2026-06-25 12:30:18 +00:00
|
|
|
swactor = { path = "../..", features = ["serde", "transport"] }
|
|
|
|
|
swactor-transport = { path = "../transport" }
|
|
|
|
|
distribution = { path = "../distribution" }
|
|
|
|
|
iroh-driver = { path = "../iroh-driver" }
|
|
|
|
|
iroh = "0.98"
|
2026-07-09 08:53:53 +00:00
|
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "process", "io-util", "sync", "time", "net"] }
|
feat(mvp-chat): local e2e chat on cuda gpu
Stand up an interactive end-to-end chat over a CUDA GPU, provisioning a Dockerized node that loads a GGUF model and serves prompts over TCP.
- prompt_rpc: add the newline-JSON prompt protocol (`SubmitPrompt` + `PromptEvent::{TextDelta,Done,Fault}`) carried over TCP
- mvp_chat: add an interactive REPL client connecting to the prompt RPC port (default 127.0.0.1:19777)
- mvp_orch_one_node / mvp_one_node_chat: add the single-node orchestrator that provisions a `LocalDockerPlugin` node, loads `bartowski/Llama-3.2-1B-Instruct-GGUF` (Q4_K_M), and exposes the prompt RPC listener with boot/route/weight timeouts
- mvp_node: add the GPU worker binary that spawns `tinygrad_worker.py` (default device CUDA) and ships runtime telemetry via a `ClusterFrameSink`
- vastai_provisioning / bootstrap_datastream: add the vast.ai provider adapter (`VastAiProvisioningConfig`, `VastAiLeaseClient`) wrapping `swactor_vastai`, plus a bridge that folds provision stdout onto a per-node datastream
- apps/mvp-node: add CUDA base/runtime Dockerfiles (nvidia/cuda 12.6.3, tinygrad 0.12.0, sshd), `mvp_entrypoint.sh` (sshd + mvp-node, held for postmortem), `local_docker_e2e.sh`, the GGUF tinygrad worker, and one-node-chat/bootstrap/vastai guarantee tests
Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-07-01 08:44:25 +00:00
|
|
|
swactor-vastai = { path = "../../tools/vastai" }
|
|
|
|
|
parking_lot = "0.12"
|
2026-07-05 09:59:51 +00:00
|
|
|
blake3 = "1"
|
2026-07-07 10:40:02 +00:00
|
|
|
toml = "0.8"
|
2026-06-24 09:30:29 +00:00
|
|
|
|
2026-06-23 07:12:45 +00:00
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
|
|
|
libc = "0.2"
|
feat(mvp): implement mvp-system modules and in-crate tests
Implement arena_manager, device_bridge, driver_pumps, edge_establisher, gpu_worker
ctl/egress/ingress/process-adapter, orchestrator run-fsm and token-endpoint, run_plan,
stage_controller, tx_rx_edge_actor, weight_lifecycle, and the remaining modules. Move
guarantee tests from tests/mvp_system into crates/mvp-system/src/tests; add the
tinygrad device-bridge backend helper.
Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-06-23 13:51:34 +00:00
|
|
|
|
2026-07-09 08:53:53 +00:00
|
|
|
[dev-dependencies]
|
|
|
|
|
iroh-relay = { version = "0.98", features = ["server", "test-utils"] }
|
|
|
|
|
|
feat(mvp-chat): local e2e chat on cuda gpu
Stand up an interactive end-to-end chat over a CUDA GPU, provisioning a Dockerized node that loads a GGUF model and serves prompts over TCP.
- prompt_rpc: add the newline-JSON prompt protocol (`SubmitPrompt` + `PromptEvent::{TextDelta,Done,Fault}`) carried over TCP
- mvp_chat: add an interactive REPL client connecting to the prompt RPC port (default 127.0.0.1:19777)
- mvp_orch_one_node / mvp_one_node_chat: add the single-node orchestrator that provisions a `LocalDockerPlugin` node, loads `bartowski/Llama-3.2-1B-Instruct-GGUF` (Q4_K_M), and exposes the prompt RPC listener with boot/route/weight timeouts
- mvp_node: add the GPU worker binary that spawns `tinygrad_worker.py` (default device CUDA) and ships runtime telemetry via a `ClusterFrameSink`
- vastai_provisioning / bootstrap_datastream: add the vast.ai provider adapter (`VastAiProvisioningConfig`, `VastAiLeaseClient`) wrapping `swactor_vastai`, plus a bridge that folds provision stdout onto a per-node datastream
- apps/mvp-node: add CUDA base/runtime Dockerfiles (nvidia/cuda 12.6.3, tinygrad 0.12.0, sshd), `mvp_entrypoint.sh` (sshd + mvp-node, held for postmortem), `local_docker_e2e.sh`, the GGUF tinygrad worker, and one-node-chat/bootstrap/vastai guarantee tests
Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-07-01 08:44:25 +00:00
|
|
|
[[bin]]
|
2026-07-07 10:40:02 +00:00
|
|
|
name = "mvp-worker-node"
|
|
|
|
|
path = "src/bin/worker_node.rs"
|
feat(mvp-chat): local e2e chat on cuda gpu
Stand up an interactive end-to-end chat over a CUDA GPU, provisioning a Dockerized node that loads a GGUF model and serves prompts over TCP.
- prompt_rpc: add the newline-JSON prompt protocol (`SubmitPrompt` + `PromptEvent::{TextDelta,Done,Fault}`) carried over TCP
- mvp_chat: add an interactive REPL client connecting to the prompt RPC port (default 127.0.0.1:19777)
- mvp_orch_one_node / mvp_one_node_chat: add the single-node orchestrator that provisions a `LocalDockerPlugin` node, loads `bartowski/Llama-3.2-1B-Instruct-GGUF` (Q4_K_M), and exposes the prompt RPC listener with boot/route/weight timeouts
- mvp_node: add the GPU worker binary that spawns `tinygrad_worker.py` (default device CUDA) and ships runtime telemetry via a `ClusterFrameSink`
- vastai_provisioning / bootstrap_datastream: add the vast.ai provider adapter (`VastAiProvisioningConfig`, `VastAiLeaseClient`) wrapping `swactor_vastai`, plus a bridge that folds provision stdout onto a per-node datastream
- apps/mvp-node: add CUDA base/runtime Dockerfiles (nvidia/cuda 12.6.3, tinygrad 0.12.0, sshd), `mvp_entrypoint.sh` (sshd + mvp-node, held for postmortem), `local_docker_e2e.sh`, the GGUF tinygrad worker, and one-node-chat/bootstrap/vastai guarantee tests
Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-07-01 08:44:25 +00:00
|
|
|
|
|
|
|
|
[[bin]]
|
2026-07-07 10:40:02 +00:00
|
|
|
name = "mvp-orchestrator"
|
|
|
|
|
path = "src/bin/orchestrator.rs"
|
feat(mvp-chat): local e2e chat on cuda gpu
Stand up an interactive end-to-end chat over a CUDA GPU, provisioning a Dockerized node that loads a GGUF model and serves prompts over TCP.
- prompt_rpc: add the newline-JSON prompt protocol (`SubmitPrompt` + `PromptEvent::{TextDelta,Done,Fault}`) carried over TCP
- mvp_chat: add an interactive REPL client connecting to the prompt RPC port (default 127.0.0.1:19777)
- mvp_orch_one_node / mvp_one_node_chat: add the single-node orchestrator that provisions a `LocalDockerPlugin` node, loads `bartowski/Llama-3.2-1B-Instruct-GGUF` (Q4_K_M), and exposes the prompt RPC listener with boot/route/weight timeouts
- mvp_node: add the GPU worker binary that spawns `tinygrad_worker.py` (default device CUDA) and ships runtime telemetry via a `ClusterFrameSink`
- vastai_provisioning / bootstrap_datastream: add the vast.ai provider adapter (`VastAiProvisioningConfig`, `VastAiLeaseClient`) wrapping `swactor_vastai`, plus a bridge that folds provision stdout onto a per-node datastream
- apps/mvp-node: add CUDA base/runtime Dockerfiles (nvidia/cuda 12.6.3, tinygrad 0.12.0, sshd), `mvp_entrypoint.sh` (sshd + mvp-node, held for postmortem), `local_docker_e2e.sh`, the GGUF tinygrad worker, and one-node-chat/bootstrap/vastai guarantee tests
Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-07-01 08:44:25 +00:00
|
|
|
|
|
|
|
|
[[bin]]
|
2026-07-12 06:14:34 +00:00
|
|
|
name = "mvp-chat"
|
|
|
|
|
path = "src/bin/mvp_chat.rs"
|
2026-06-24 09:30:29 +00:00
|
|
|
|
|
|
|
|
[[test]]
|
|
|
|
|
name = "local_unmocked_mvp_e2e"
|
|
|
|
|
path = "tests/local_unmocked_mvp_e2e.rs"
|
2026-07-07 10:40:02 +00:00
|
|
|
harness = false
|
2026-06-24 09:30:29 +00:00
|
|
|
required-features = ["local-e2e"]
|
|
|
|
|
|
|
|
|
|
[[test]]
|
|
|
|
|
name = "gpu_worker_node_e2e"
|
|
|
|
|
path = "tests/gpu_worker_node_e2e.rs"
|
|
|
|
|
required-features = ["local-e2e"]
|
2026-06-25 07:29:16 +00:00
|
|
|
|
|
|
|
|
[[test]]
|
|
|
|
|
name = "local-e2e-cluster"
|
|
|
|
|
path = "tests/local_e2e_cluster.rs"
|
2026-07-07 10:40:02 +00:00
|
|
|
harness = false
|
2026-06-25 07:29:16 +00:00
|
|
|
required-features = ["local-e2e"]
|