PyxGrant / Evidence

Evidence you can rerun.

These are our own tests, run on our own hardware, and published with the command that produces them. They are not a customer result and not a third-party audit. Run npm run evidence on your machine and compare.

Loading results…

Attack suite

15 of 15 incident classes refused.

Each case replays the shape of a publicly reported attack against the seeded demo organization. The signal column says where the evidence of the attack comes from, because a rule that fires only when someone else flags the attack is weaker than one that finds it.

  • RequestPyxGrant finds the attack in the call itself.
  • ComponentA PyxGrant part reports it: a tool digest, a collector finding, a budget.
  • Caller flagThe rule refuses it only if the caller sets a flag. Nothing in PyxGrant raises that flag yet.
AttackIncidentSignalExpectedGot
Loading…
Decision time

How long a decision takes, measured two ways.

A fixed mix of three requests (an allowed test run, a refused secret read, and a redacted prompt) runs through the full decision path, after a warm-up. Each request gets a fresh session.

MeasuredWhat it includesMedian95th99thSlowest
Loading…

What these numbers don't show

  • They are our tests on our hardware, not an independent audit or a customer deployment.
  • Timing is in-process. The network hop from the agent to PyxGrant is not included.
  • Requests run one at a time. Throughput under concurrent load has not been measured.
  • The attack suite checks that known attack shapes are refused. It does not measure how often a novel attack gets through.
  • Three cases pass only because the caller supplies the signal. Detecting those attacks inside PyxGrant is not built yet.

Check it yourself

  • npm run evidence reruns both, writes the results file this page reads, and prints a summary.
  • npm test includes a check that the live demo's verdicts match the server's.
  • On a live appliance, every receipt records its own decision time, so you can measure your own traffic.

Raw results (JSON) →