Skip to main content

Create a decision client

import { AvertaDecisionClient } from "@averta-security/sdk-core";

const client = new AvertaDecisionClient({
  avertaApiKey: process.env.AVERTA_API_KEY!,
  clientMetadata: {
    name: "my-custom-adapter",
    version: "0.1.0",
  },
});

Send a request checkpoint

const decision = await client.preflight({
  provider: {
    name: "anthropic",
    operation: "messages.create",
    model: "claude-sonnet-4-5",
  },
  payload: {
    text: "Summarize this document.",
  },
  requestContext: {
    conversationId: "conversation_123",
    requestId: "request_456",
    traceId: "trace_789",
  },
});

Handle the decision

if (decision.decision === "block") {
  throw new Error(decision.reasons[0]?.message ?? "Request blocked");
}

const blockedTools = decision.blockedTools ?? [];
For request checkpoints, valid decisions are allow, block, and restrict_tools.