EVE + Generic TypeScript (Supported)
Compatibility: SUPPORTED — the generic TypeScript client is the validated integration surface for Node and the browser verifier. It governs tool calls via hosted mode and ships a browser-safe offline evidence verifier. The TypeScript SDK never signs and holds no secrets.
Use the generic TypeScript client when you control the tool call site in a Node service and can route the call through governance before the side effect.
What you get
- Deterministic policy decision (ALLOW / BLOCK / MODIFY) before the tool executes, computed by deterministic policy code with no LLM in the decision path.
- Offline, independent evidence verification in Node or the browser — verify a signed record without trusting the EVE server (Ed25519 public key required for asymmetric verification).
- Fail-closed behavior: a service error results in BLOCK, never a silent permissive fallback.
Install (pilot / private)
The package @eve/coreguard (version 0.1.0-rc1, ESM, Node >= 18) is unpublished on npm
(validated 2026-07-20; npm install @eve/coreguard does not resolve). During a pilot it is
distributed privately (a tarball or an internal registry). The primary entry point is:
import { EVE } from "@eve/coreguard";
The TypeScript client governs via hosted mode. Embedded in-process governance is
Python/service-only; the TS client throws SDK_TS_EMBEDDED_UNSUPPORTED if embedded mode is
requested.
Govern a tool call
import { EVE } from "@eve/coreguard";
const eve = new EVE({ /* hosted endpoint config */ });
const decision = await eve.governToolCall({
tool: "issue_refund",
arguments: { accountId: "acct_1042", amountCents: 5000 },
context: {
tenantId: "tenant_demo",
principalId: "agent_support_7",
sessionId: "sess_2f9a",
},
});
if (decision.action === "BLOCK") {
// the underlying tool is not called
console.log(decision.reasonCodes);
} else {
await issueRefund({ accountId: "acct_1042", amountCents: 5000 });
}
Verify the evidence
import { verifyEvidence } from "@eve/coreguard";
// The signed evidence record for the decision is carried in decision.certificate.
const report = verifyEvidence(decision.certificate, { publicKeyPem });
if (!report.valid) throw new Error("evidence rejected");
// report.signature === "ed25519-valid" on a genuine Ed25519 record
Verification confirms integrity, signature, and schema. It proves the record is authentic and unaltered — not that the decision was correct.
Readiness
- Generic TypeScript client
@eve/coreguard0.1.0-rc1: SUPPORTED for its client surface (govern via hosted mode, offline verify); the SDK core is RELEASE CANDIDATE WITH EXCLUSIONS. - Offline / cross-language evidence verification: SUPPORTED per the claims registry.
- CoreGuard deterministic evaluation: PILOT_READY.
Limitations
- ESM only; Node >= 18.
- Embedded mode is unsupported in TypeScript (
SDK_TS_EMBEDDED_UNSUPPORTED); embedded governance is the Python service. The TS client never signs and holds no secrets. - Hosted mode requires a reachable endpoint.
- The client governs the call site you route through it; a direct call to the underlying tool that bypasses the client is not intercepted. Server-side, use a gateway/sidecar or a restricted tool registry so tools are only reachable through the governed path.
- Independent verification requires the Ed25519 public key; the HMAC fallback is symmetric and not independently verifiable. Verification attests authenticity, not decision correctness.