Files
clawhdf5/crates/clawhdf5-agent/Cargo.toml
T
ClawHDF5 PlannerandClaude Sonnet 4.6 87039e926c feat: implement INT-11 AES-256-GCM encryption, INT-12 Ed25519 signing, INT-13 HNSW batch insert
INT-11 (clawhdf5-agent/src/encryption.rs):
- AES-256-GCM seal/open with PBKDF2-HMAC-SHA256 key derivation (200k iters)
- Passphrase-based and raw-key APIs; envelope format with magic+version+salt+nonce
- `encryption` feature gate (ring 0.17); 9 unit tests covering roundtrips,
  wrong-key, tampered-data, malformed-envelope, and empty-plaintext cases

INT-12 (clawhdf5-agent/src/signing.rs):
- Ed25519 keypair generation, in-memory sign/verify, and file-level sidecar API
- `.sig` sidecar format: magic + version + public-key + signature
- `sign_file` / `verify_file` helpers for .brain file trust verification
- `signing` feature gate (ring 0.17); 8 unit tests including file-level tamper detection

INT-13 (clawhdf5-ann/src/hnsw.rs):
- `HnswIndex::batch_insert`: parallel neighbor search (rayon) + serial edge wiring
- `find_neighbors_for` standalone helper (also used by the `parallel` cfg path)
- Parallelism via existing `parallel` feature; degrades to serial without it
- 5 new tests: empty noop, sequential IDs, existing-index append, quality, save/load

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-08-12 12:15:22 +00:00

66 lines
2.3 KiB
TOML

[package]
name = "clawhdf5-agent"
version = "2.1.0"
edition = "2024"
description = "HDF5-backed persistent memory store for on-device AI agents"
license = "MIT"
repository = "https://github.com/redclawsystems/clawhdf5"
readme = "README.md"
keywords = ["agent", "memory", "hdf5", "vector-search", "embedding"]
categories = ["database", "science", "algorithms"]
[dependencies]
clawhdf5-format = { path = "../clawhdf5-format", version = "2.1.0", features = ["parallel", "fast-checksum"] }
clawhdf5 = { path = "../clawhdf5", version = "2.1.0" }
clawhdf5-io = { path = "../clawhdf5-io", version = "2.1.0", features = ["mmap"] }
clawhdf5-accel = { path = "../clawhdf5-accel", version = "2.1.0" }
clawhdf5-ann = { path = "../clawhdf5-ann", version = "2.1.0", optional = true }
clawhdf5-gpu = { path = "../clawhdf5-gpu", version = "2.1.0", optional = true, default-features = false }
serde = { workspace = true }
byteorder = "1"
half = { workspace = true, optional = true }
rayon = { version = "1", optional = true }
matrixmultiply = { version = "0.3", optional = true }
cblas-sys = { version = "0.1", optional = true }
tokio = { version = "1", features = ["rt", "sync", "macros", "time"], optional = true }
ring = { version = "0.17", optional = true }
[target.'cfg(target_os = "macos")'.dependencies]
accelerate-src = { version = "0.3", optional = true }
[target.'cfg(not(target_os = "macos"))'.dependencies]
openblas-src = { version = "0.10", optional = true, features = ["cblas"] }
[dev-dependencies]
tempfile = { workspace = true }
criterion = { workspace = true }
rayon = "1"
tokio = { version = "1", features = ["rt-multi-thread", "sync", "macros"] }
[[bench]]
name = "bench"
harness = false
[[bench]]
name = "memory_bench"
harness = false
[features]
default = ["float16", "hnsw"]
float16 = ["half"]
parallel = ["rayon"]
# HNSW approximate-nearest-neighbour acceleration for the vector stage of
# hybrid_search. On by default; the index is rebuilt from the cache on demand
# and stays self-consistent with the persisted memory store. Disable with
# `--no-default-features` (plus re-enabling other defaults) to force the exact
# linear cosine scan.
hnsw = ["clawhdf5-ann"]
agent = []
gpu = ["clawhdf5-gpu/gpu-wgpu"]
fast-math = ["matrixmultiply"]
accelerate = ["accelerate-src", "cblas-sys"]
openblas = ["openblas-src", "cblas-sys"]
async = ["tokio"]
encryption = ["ring"]
signing = ["ring"]