@tindalabs/scent-engine
v0.1.0
Published
Scent core engine — signal collection, identity clustering, drift detection, confidence scoring, and risk assessment. Framework-agnostic and platform-independent.
Maintainers
Readme
@tindalabs/scent-engine
The framework-agnostic core of Scent — signal weighting, SimHash, similarity matching, drift detection, confidence scoring, and risk primitives.
This is the pure-logic layer shared by the SDK and the server. It has no browser or DB dependencies, so you can run the same scoring offline, in tests, or in your own pipeline.
npm install @tindalabs/scent-engineWhat's inside
import {
computeSimHash, hammingDistance, // locality-sensitive signal hashing
weightedJaccard, // drift-tolerant similarity (0–1)
diffSnapshots, // classify drift between two snapshots
scoreToConfidenceBand, // 0–1 → confirmed/probable/uncertain/unknown
detectAutomation, // headless/bot signal detector
compositeRiskScore, scoreToRiskBand, // probabilistic-OR risk aggregation
weightOf, // per-signal stability weight
} from '@tindalabs/scent-engine';It also exports the canonical domain types shared across the stack: ScentIdentity, ScentSnapshot, ScentDrift, RiskFlag, SignalMap, ConfidenceBand, RiskBand, and more.
Example
import { weightedJaccard, scoreToConfidenceBand } from '@tindalabs/scent-engine';
const score = weightedJaccard(previousSignals, currentSignals);
const band = scoreToConfidenceBand(score.confidence); // "confirmed"Part of Scent. MIT licensed.
