@cubiczan/chp
v0.1.1
Published
Consensus Hardening Protocol — Profile B capital gate, canonical JSON, and signed audit ledger for TypeScript
Maintainers
Readme
@cubiczan/chp
Consensus Hardening Protocol for TypeScript — Profile B capital gate, canonical JSON, and signed audit ledger.
npm install @cubiczan/chpPairs with the Python package consensus-hardening-protocol
(Profile A deliberation + the normative spec). This package is the installable
TypeScript surface for spend/mandate gates — the same channel shape as
@cubiczan/codesentinel-mcp.
Quick start
import { evaluateGate, approveHuman } from "@cubiczan/chp";
const policy = {
max_notional: 500,
daily_cap: 2500,
hitl_threshold: 250,
min_confidence: 0.55,
allowed_actions: ["LONG", "SHORT"],
};
const decision = evaluateGate(
{ action: "LONG", asset: "ETH", notional: 300, confidence: 0.9 },
policy,
);
// → { state: "HITL_REQUIRED", requires_human: true, ... }
const locked = approveHuman(
{ action: "LONG", asset: "ETH", notional: 300, confidence: 0.9 },
policy,
"[email protected]",
);
// → { state: "LOCKED", allowed: true, ... }Hard rule failures (max_notional, daily_cap, min_confidence, …) are
collected before the HITL threshold test. A human may cross the threshold;
they may not approve a policy violation (spec §6.3 / §6.5).
Cross-language hashes
CHP content hashes are SHA-256 over canonical JSON
(spec §3.1). Python emits whole floats as 100.0; JavaScript's JSON.stringify
emits 100. This package formats Profile B hashed field sets the Python way so
audit digests match the golden vectors and the Python reference.
Conformance adapter
npm run build
python3 path/to/spec/conformance/run_conformance.py \
--adapter-cmd "node dist/adapter.js" \
--profile BProfile A ops are reported unsupported (SKIP), not FAIL.
Licence
MIT.
