feat(profiler): extract motor.digraph_simhash keystroke biometric

Per-session 64-bit SimHash of inter-keystroke digraph flight times:
walk single-char input events, accumulate flight time per (c1,c2),
bucket the median, Charikar-SimHash the bucketed pairs. Locality-
sensitive so the same typist is Hamming-close across sessions; pastes
and think-pauses break the chain; silent below the sample-size floor.

New shared decnet/util/simhash.py (simhash64/hamming64/bytes helpers).
Registered as a conditional Tier-A primitive (count 37->38); requires
behave-shell>=0.1.2.
This commit is contained in:
2026-06-16 16:59:57 -04:00
parent 372375194c
commit 66c73ce59d
12 changed files with 283 additions and 5 deletions

View File

@@ -59,7 +59,7 @@ dependencies = [
# bus event adapter consumed by decnet/profiler/behave_shell/. Pin
# range tracks BEHAVE-INTEGRATION.md §"Versioning".
"behave-core>=0.1.0,<0.2",
"behave-shell>=0.1.0,<0.2",
"behave-shell>=0.1.2,<0.2",
# STIX → MISP conversion: CIRCL-maintained reference converter used by
# MISP itself. Pulls pymisp transitively (needed for MISPEvent output).
"misp-stix>=2026.4",