
Company News
AWS Security Hub Adds Socket for Supply Chain Security
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.
@usekaval/kaval
Advanced tools
The freshness gate for AI — verify a belief your system already holds is still true.
The freshness gate for AI. Give kaval a belief your system already holds — a cached fact, a CRM
field, an agent memory — and it checks the live world and returns a typed verdict: current,
stale, contradicted, unsupported, conflicting, or insufficient.
npm install @usekaval/kaval
This package is ESM-first ("type": "module"). Use import in ESM projects, or dynamic import
in CommonJS:
const { Kaval } = await import("@usekaval/kaval");
CJS require("@usekaval/kaval") needs Node ≥20.19 or ≥22.12 (Node’s native
require(esm) support). On Node 18, use import / await import() instead — engines.node is
>=18 for ESM + fetch, not for CJS require.
import { Kaval } from "@usekaval/kaval";
const kaval = new Kaval({ apiKey: process.env.KAVAL_API_KEY });
const decision = await kaval.verify("Acme's CEO is Jane Doe");
if (!decision.act) {
// stale / contradicted — re-fetch before relying on it
}
verify() returns the verdict plus act — true only when the belief is current and confident
(≥ 0.7 by default; override with minConfidence).
const decision = await kaval.verify({ belief: "Acme's CEO is Jane Doe", mode: "deep" });
decision.tier; // "deep" — the tier that ran (echoes your `mode`)
decision.explanation?.content; // deep only: a cited, markdown rationale with [n] citations
decision.explanation?.citations; // [{ url, title? }] — drawn only from the gathered evidence
decision.explanation?.confidence; // "high" | "medium" | "low"
mode selects the tier (default auto):
instant — cache / graph-prior only, no fetch or LLM; fastest, answers from what's already known.fast — a cheap model, origin-only.auto — balanced (the default).deep — the strongest model + a synthesized, inline-cited explanation for audit/human review.const report = await kaval.scanStore({
beliefs: ["Acme is on the Enterprise plan", "Jane Doe is VP Eng at Acme"],
});
report.riskiest.forEach((r) => console.log(r.belief, "→", r.status));
// …or get pushed the newly-stale ones:
await kaval.monitor({ beliefs, webhook: "https://your-app.com/hooks/stale" });
verify · check · extractAndCheck · scanStore · monitor · reportOutcome · kaval ·
kavalBatch · health. Construct with { apiKey, baseUrl?, fetch? } — baseUrl defaults to
https://api.usekaval.com. Works in Node 18+, browsers, and edge runtimes (uses the global fetch).
Env vars: this package does not read KAVAL_BASE_URL from the environment — pass
baseUrl in the constructor (Python SDK and MCP use KAVAL_BASE_URL; the marketing-site proxy
uses KAVAL_API_URL). See the clients README.
The Python client mirrors this surface: pip install kaval.
FAQs
Before an AI agent acts, Kaval verifies the facts the action depends on and returns ALLOW, REVIEW, or BLOCK with an Ed25519-signed receipt.
The npm package @usekaval/kaval receives a total of 240 weekly downloads. As such, @usekaval/kaval popularity was classified as not popular.
We found that @usekaval/kaval demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.

Research
/Security News
Popular npm packages keyv and cacheable compromised.

Security News
A misconfiguration gave three Anthropic models internet access, and one, believing it was in a simulation, shipped a credential-stealing package to PyPI.