open-standards/jouleclaw/jouleclaw-rs/crates/jouleclaw-edge-cli/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science d8ba701449 jouleclaw Phase 6: Edge-First v6 ports + 4 net-new standard-defining crates
12 crates landed (8 ports + 4 fresh designs). All 866 tests pass
across Phase 1-6; 0 failures; 52 ignored (39 inherited from
efficient-genai as hardware-gated, 12 in deberta as model-file-gated,
1 in sana_wm pre-existing efficient-genai input-size bug).

Phase 6a — Edge-First v6 surface (ported from pattern-lang)

  jouleclaw-schema       ~2137 LOC. QueryPlan, RetrievedItem,
                         KnowledgeAxes, EpistemicMode, AtomicClaim,
                         EntailmentResult, VerificationReport, Answer,
                         RAP, SystemCapabilities, AnytimeResult,
                         Invariants — the type vocabulary the rest of
                         the v6 surface is written against.

  jouleclaw-plan         ~1484 LOC. Query planner — picks the cascade
                         walk for a given input.

  jouleclaw-execute      ~2780 LOC. Plan executor with retry, anytime,
                         and budget primitives.

  jouleclaw-compose      ~1467 LOC. Verified-answer composer.

  jouleclaw-deberta      ~4801 LOC. DeBERTa-v3 forward pass for NLI
                         (used by jouleclaw-diagnose). Apple Accelerate
                         cblas_sgemm FFI gained `unsafe extern "C"` for
                         Rust 2024. Tests that require a real model on
                         disk now skip gracefully (`eprintln!("[skip]")`
                         + early return) instead of panicking — they
                         remain in-tree as integration tests and run
                         automatically when the model is present at
                         `models/deberta-v3-large-mnli/`.

  jouleclaw-diagnose     ~2353 LOC. Verification stage — runs NLI
                         against retrieved claims to certify the
                         answer.

  jouleclaw-edge-cli     ~2876 LOC. CLI binary that wires
                         schema/plan/execute/diagnose/compose/deberta
                         into a single edge agent surface.

  jouleclaw-edge-client  ~224 LOC. Thin stdin/stdout RPC client.

  Deferred: joule-edge (server) — its workspace depends on joule-l1 +
  lean-bridge + synth, which are OpenIE IP that do not port into the
  public open standard. Will land when the thin LawfulTier trait
  surface in jouleclaw-cascade ships in a follow-on commit.

Phase 6b-e — net-new (the standard-defining moat)

  jouleclaw-prov   Receipt-per-resolution emitter. CascadeTier (L0–L4
                   with stable wire tags + named tags),
                   ClaimProvenance (PROV-O compatible Entity shape),
                   ToolTouch (per-tool joule accounting),
                   ReceiptBuilder with worst-counter-floor provenance
                   semantics. Smart-Byte-envelope shaped so receipts
                   seal cleanly into the sibling standard's signed
                   transport. 6 tests passing.

  jouleclaw-fresh  L3.5 cascade stage — fresh retrieval with
                   provenance. SearchProvider trait (Brave / Tavily /
                   Exa / Serper plug in here), Transport trait (keeps
                   reqwest out of the standard), TrustTable
                   (bootstrap from Wikipedia perennial-sources;
                   normalises `www.` prefix), FreshFetch orchestrator,
                   `provenance_envelope()` that wraps a RetrievedClaim
                   into a jouleclaw-prov ClaimProvenance ready to
                   embed in a cascade receipt. 6 tests passing.

  jouleclaw-mcp    MCP tool surface with joule metering. MeteredTool
                   trait + `dispatch_metered()` brackets every tool
                   call with energy counter reads and emits a
                   ToolTouch into the running receipt. WireEncoding
                   (JsonRpc / Cbor) + `negotiate()` defines the
                   `joule-mcp` capability profile —
                   `x-jouleclaw/joule-mcp@1` is the canonical
                   negotiation tag; both endpoints advertise it to
                   opt into CBOR, otherwise stays JSON-RPC for
                   compat. 5 tests passing.

  jouleclaw-cli    `jclaw` binary — the Pi-class minimal harness.
                   v0.1 ships `version`, `tier-walk`, `receipt`,
                   `meter` subcommands plus a heuristic router that
                   picks a tier from input shape. Receipt builder is
                   live; energy counter binding is a deployment
                   choice (feature-gated per platform). Hot-reload +
                   tree-forked sessions + full MCP client land
                   later — v0.1 proves the type vocabulary and the
                   end-to-end receipt emission. 4 tests passing.

Phase 6 cumulative

  17 → 29 crates in the workspace.
  ~155k → ~170k LOC.
  440 → 866 tests passing.
  Net-new code surface: ~1500 LOC of standard-defining moat
  (jouleclaw-prov + fresh + mcp + cli).

Next: SPEC.md + CHARTER + conformance/v1 wire vectors + the
memory entry. Then promote to a public release tag.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
2026-05-26 18:44:46 -04:00
..
end_to_end.rs jouleclaw Phase 6: Edge-First v6 ports + 4 net-new standard-defining crates 2026-05-26 18:44:46 -04:00