Brings over the uncommitted agent-mei work (Mac checkout, Sep 22) plus box follow-ups (Oct 17: agent_mei action namespace in keymap/zed.rs, MEI_BRIDGE.md, RENAME_AGENT_MEI.md, unmetered receipts report 0 uJ). joule_core, JOULE_CODE_* and JouleDB names unchanged. *.bak.* scratch files excluded.
100 lines
6.4 KiB
TOML
100 lines
6.4 KiB
TOML
[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"]
|