[package] name = "agent_mei_panel" version = "0.1.0" edition.workspace = true publish.workspace = true license = "GPL-3.0-or-later" [lints] workspace = true [lib] path = "src/agent_mei_panel.rs" [dependencies] # The GPUI-free engine, shared with the headless `joule-coded` worker. The GUI # always uses the on-device L3 model tier, so enable its `l3` feature. joule_core = { workspace = true, features = ["l3"] } acp_thread.workspace = true agent-client-protocol.workspace = true agent_servers.workspace = true anyhow.workspace = true edit_prediction_types.workspace = true futures.workspace = true icons.workspace = true log.workspace = true serde.workspace = true serde_json.workspace = true text.workspace = true editor.workspace = true gpui.workspace = true language.workspace = true menu.workspace = true multi_buffer.workspace = true project.workspace = true ui.workspace = true util.workspace = true workspace.workspace = true # The session signs its spec, ops, and citations with a per-workspace identity # so the methodology tracker holds real signed artifacts (not placeholders). ed25519-dalek = "2" # must match the open-standards crates (SigningKey crosses the boundary) # Joule Code standard reference library. agent-mei is the standard's reference # consumer; the joule meter emits a real joule-code-receipt::Receipt per session. # Git deps against the public open-standards repo, pinned to a commit so a bare # clone of agent-mei builds standalone (no sibling checkout required). Bump the # rev to adopt a newer standard release. See JOULE_CODE.md. joule-code-schema = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } joule-code-cargo = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } joule-code-receipt = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } joule-code-cascade = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } # JCP gate: each cascade tier (l0..l4) is a granted, energy-budgeted, sealed # action. A session grant names the tiers the editor may consult and a joule # ceiling; omit "l4" and the remote frontier agent is structurally unreachable. joule-code-review = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } joule-code-identity = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } # Per-op contract frame check: an op's edits must stay within the footprint # the human declared in .joule/spec.json. Structural (frame_check), no proof. # JCP bridge: gate the local agent loop's tool calls. Each tool (read_file, # grep, run, edit_file, mcp…) is a content-addressed capability under a joule # budget; a call to an ungranted tool — including one an injected tool result # coaxed the model into — is denied before it executes, and sealed. # JouleClaw is the Joule Code agent schema. Its energy crate is the honest, # multi-platform source of the receipt's energy reading: RAPL/NVML = HwShunt # (measured), Apple Silicon = IOReport ModelBased (measured). Light (no ML deps), # reads unprivileged. jouleclaw-energy = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c", features = ["ioreport"] } # JouleClaw's from-scratch GGUF tensor runtime — the editor's L3 tier. An on-device # model generates the change in-process (no daemon, no network) before any cloud # agent is consulted, metered by jouleclaw-energy. Set JOULECLAW_L3_MODEL to a # .gguf path to enable; absent, the cascade falls straight through to L4 (ACP). # `accelerate` routes f32 matmul through Apple AMX (macOS aarch64; no-op cfg # stub elsewhere); `rayon` fans matmul across cores. Both speed the in-process # Runtime engine and the opt-in in-process Mellum decoder (JOULE_CODE_L3_ENGINE=mellum). jouleclaw-loader-gguf = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c", features = ["accelerate", "rayon"] } [dev-dependencies] # The standard's own conformance harness (SPEC §8). agent-mei runs the C1–C4 # wire vectors (vendored under tests/conformance/v1) against the pinned standard # version it builds on, so "reference consumer" is a tested claim, not a label. joule-code-conformance = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c" } # GPUI fixtures for the end-to-end steering test (a real workspace + window # driving control_dispatch over a real on-disk git repo via RealFs). The first # four are also base deps; re-declared here to switch on their test-support. gpui = { workspace = true, features = ["test-support"] } project = { workspace = true, features = ["test-support"] } workspace = { workspace = true, features = ["test-support"] } editor = { workspace = true, features = ["test-support"] } settings = { workspace = true, features = ["test-support"] } db = { workspace = true, features = ["test-support"] } theme.workspace = true theme_settings.workspace = true fs.workspace = true # Linux measured-energy counters: RAPL (Intel/AMD package energy via sysfs # powercap) and NVML (NVIDIA GPU shunt) — both report HwShunt. Added here (a # per-target table after all base [dependencies]) so it doesn't swallow the # entries below it. nvml-wrapper loads libnvidia-ml at runtime, so this builds # without CUDA/NVIDIA present and degrades to "unavailable" when the GPU/driver # is absent. Verified live on an AWS c5.metal (Xeon 8275CL): RAPL HwShunt, ~98 J # over a 2 s window. [target.'cfg(target_os = "linux")'.dependencies] jouleclaw-energy = { git = "https://git.transaction.science/Transaction-Science/open-standards.git", rev = "6cdc92381361890c1e6bdd79ac82e23236063a2c", features = ["rapl", "nvml"] } # macOS Seatbelt (`sandbox-exec`) for the local agent's `run` tool: build/test # commands run with the network denied and writes confined to the worktree. [target.'cfg(target_os = "macos")'.dependencies] sandbox.workspace = true