[package] name = "joule_coded" version = "0.1.0" edition.workspace = true publish.workspace = true license = "GPL-3.0-or-later" [lints] workspace = true # The headless agent-mei worker: it owns the same `joule_core` engine the GUI # panel drives, answers the same control protocol over a Unix socket, and runs # real on-device coding ops (the L3 cascade tier via JouleClaw's GGUF runtime) # into a worktree-isolated, signed session ledger — no window, no cloud. [lib] path = "src/lib.rs" [[bin]] name = "joule-coded" path = "src/main.rs" [dependencies] # joule_core's `l3` model tier is opt-in; the worker enables it via its own `l3` # feature (default on), so a `--no-default-features` build drops it for Windows. joule_core.workspace = true anyhow.workspace = true futures.workspace = true log.workspace = true env_logger.workspace = true serde.workspace = true serde_json.workspace = true clap.workspace = true tokio = { workspace = true, features = ["rt-multi-thread", "macros", "sync", "time"] } ed25519-dalek = "2" # must match the open-standards crates (SigningKey crosses the boundary) # Tier tag for recorded ops. The L3 on-device model tier and host energy # metering come through `joule_core` (one engine, shared with the GUI editor) — # the daemon no longer depends on jouleclaw directly. joule-code-schema = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } # The Sandbox standard's own S5 (microVM) executor + runtime/grant/receipt types. # The fabric routes untrusted, highest-isolation work to this — a Firecracker # (or supervised-VMM) driver with real per-device RAPL energy metering and a # signed JCR-1 receipt — booting our own JouleOS PVH guest, not a borrowed kernel. sandbox-exec-microvm = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } sandbox-runtime = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } sandbox-capability = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } sandbox-meter = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } sandbox-schema = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } sandbox-attest = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } # The standard's S2 (Sandbox/WASM) executor — deterministic, fuel→joule metered, # with a per-run replay journal. Heavy (wasmtime), so it is the optional # `sandbox-wasm` feature (on by default; a --no-default-features worker drops it). sandbox-exec-wasm = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c", optional = true } # The standard's S6 (Confidential) TEE layer: SEV-SNP/TDX report parsing + policy # + real ECDSA verification, with a configfs-tsm hardware provider and a # software-grounded test provider — so the S6 seal path is exercisable anywhere. sandbox-tee = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } # Federation transport: CommunicationOS's MoQT-over-QUIC reference impl. We use # its QuicEndpoint (quinn + a self-signed/pinned cert) to carry the control # protocol over real QUIC cross-machine — the same proven transport as the # standard's lockstep-quic. Optional (the `quic` feature, on by default) so the # daemon can build with no C dependencies (quinn → aws-lc/ring need cmake + a C # toolchain) on hosts that lack them — e.g. a stock Windows box: build with # `--no-default-features`, and the worker serves over the Unix socket / TCP. joule-moq = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c", features = ["quic"], optional = true } quinn = { version = "0.11", optional = true } rustls = { version = "0.23", features = ["ring", "std"], optional = true } # BFT consensus: signed ops (joule-code-cargo SignedOp) committed by a # supermajority of fleet members via joule-code-collab's proven LockstepCluster # rule. The QUIC/TCP/socket transport carries the signed proposals between nodes. joule-code-cargo = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } joule-code-collab = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } blake3 = "1" hex.workspace = true # Serve the worker's on-device inference as an OpenAI-compatible endpoint # (/v1/chat/completions + /v1/responses) whose usage.energy carries the sealed # mesh/1 receipt — the Mesh standard's own serving stack, reused unchanged. mesh-openai = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c", features = ["server"] } mesh-core = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } mesh-engine = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } mesh-meter = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } mesh-router = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } mesh-schema = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } [dev-dependencies] # Compile WAT → WASM in the S2 cell's tests. wat = "1" [features] default = ["quic", "l3", "sandbox-wasm"] # Real-QUIC federation transport (pulls quinn/rustls and their C crypto deps). quic = ["dep:joule-moq", "dep:quinn", "dep:rustls"] # The on-device L3 model tier (forwards to joule_core's `l3` feature). l3 = ["joule_core/l3"] # The S2 (Sandbox/WASM) executor tier — pulls wasmtime via sandbox-exec-wasm. sandbox-wasm = ["dep:sandbox-exec-wasm"]