1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//! Foundation Deployment Platform — VM/container orchestration.
//!
//! # Quick Start (VM)
//!
//! The VM surface (`config`, `qemu`, …) is gated behind the `vms` feature, so
//! this example is `ignore`d in the default (Docker-only) build — build with
//! `--features vms` to use it.
//!
//! ```ignore
//! use foundation_deployment_platform::config::{get_profile, DisplayMode};
//! use foundation_deployment_platform::qemu::QemuConfig;
//!
//! let profile = get_profile("windows-build").unwrap();
//! let vm = QemuConfig::new(profile.clone(), DisplayMode::Headless)
//! .launch()
//! .unwrap();
//! ```
//!
//! # Architecture
//!
//! - **config** — VM profiles, guest OS types, display modes, error types
//! - **docker** — Container lifecycle (ContainerHandle, ContainerConfig, WaitFor)
//! - **qemu** — Process management, disk operations, networking, snapshots, downloads
//! - **providers** — Provider trait + Docker/QEMU/UTM backends
//! - **ssh** — SSH connections and command execution on guests
//! - **winrm** — WinRM SOAP client for Windows guest bootstrapping
//! - **import** — Image download, cache management, Vagrant Cloud integration
//! - **bootstrap** — VM bootstrapping with mise + nushell
//! - **build** — Build pipeline, code sync, artifact retrieval
//! - **runner** — Binary launcher, screenshots, logs, file transfer, UI automation
//! - **state** — Persistent VM state management
//! - **doctor** — Host and VM health checks
//! - **init** — Project scaffolding (testbed init, scripts, .gitignore)
//! - **host_bootstrap** — Host prerequisites (mise, nushell, pitchfork)
// ── Core types (always available — used by Docker provider) ──────────────
// ── VM types (available with vms) ────────────────────────────────────────
// ── Docker runtime (always enabled) ───────────────────────────────────────
// ── VM infrastructure (moved from foundation_testbed, gated on vms) ───────
// Re-export futures_lite::block_on for sync callers
pub use block_on;
// Re-export the proc macro from foundation_macros
pub use docker_container;