Ga naar hoofdinhoud
Audact
Bekijk het aanbod

TypeScript SDK

Officieel TypeScript-SDK voor Audact. Een slanke, afhankelijkheidsvrije wrapper (alleen Node ≥18 fetch/FormData/AbortSignal/URLSearchParams) om de HTTP-diensten van Audact — Validator, Evidence Layer, LLM Proxy, Tenant Management, Voice Gateway, Agent Worker, Aggregator, Policy Engine, Audio Validator en Org Management.

Installatie

bash

npm install @audactcore/sdk

Snelstart

ts

import { AudactClient } from "@audactcore/sdk";

const client = new AudactClient({ apiKey: "aud_live_..." });

const result = await client.validator.validate({
  call_id: "a1b2c3d4-...",
  tenant_id: "t1t2t3...",
  config_id: "c1c2c3...",
  turn: 1,
  content: "Hello, I am an AI assistant.",
  context: {
    previous_turns: [],
    call_state: { disclosure_delivered: false },
  },
});

if (result.verdict === "ALLOW") {
  console.log("Content approved:", result.content);
}

Basis-URL

In productie bevindt elke dienst zich achter één publieke host, via paden gerouteerd onder /v1. Eenmalig doorgeven:

ts

const client = new AudactClient({ apiKey: "aud_live_...", baseUrl: "https://api.audact.ai" });

Een afsluitende / of /v1 in baseUrl wordt verwijderd; verzoeken gaan naar https://api.audact.ai/v1/.... serviceUrls (dienstspecifieke overschrijvingen die voorrang krijgen op baseUrl) zijn alleen nodig voor aangepaste implementaties.

Dekking

Het SDK dekt de gedocumenteerde API volledig af: 209 van 211 operaties zijn gedekt (de resterende 2 zijn ontvangstzijdige webhooks van aanbieder naar platform — POST /telnyx/webhook en POST /webhooks/livekit — dit zijn inkomende eindpunten die Audact ontvangt, maar nooit aanroept).

SubclientDienstAuthenticatieDekking
client.validatorValidatorAPI-sleutelACVF-validatie per gesprekbeurt, gespreksscore afronden
client.evidenceEvidence LayerAPI-sleutelBewijsgebeurtenissen, ketens, verificatie/reconstructie, gesprekken, overtredingen, Artikel 50-rapporten/-exports, C2PA, bonnen, levering, transcriptafstemming
client.llmProxyLLM ProxyAPI-sleutelCompliance-gevalideerde LLM-chatafronding (synchroon + streaming)
client.tenantsTenant ManagementAPI-sleutelTenant-CRUD, gebruik, API-sleutels, configuraties
client.numbersVoice GatewayAPI-sleutelKYC-documenten/-sets, nummerprovisioning-levenscyclus (bestellen, toewijzen, opschorten, hervatten, vrijgeven, trunk)
client.callsVoice GatewayAPI-sleutelSIP-gesprek-levenscyclus (uitgaand/inkomend/browser, ophangen, status, overdracht, doorverbinden), trunks, verzendregels, admission-URL, WS-tickets
client.webhooksTenant ManagementAPI-sleutelWebhook-eindpunt-CRUD, testping, aflevergeschiedenis/-herhaling, gebeurtenistype/-schemadetectie, geheimstatus/-rotatie
client.agentsAgent WorkerAPI-sleutelAgent-CRUD + dupliceren, TTS-spraakcatalogus-CRUD, pipelinestatus
client.toolsAgent WorkerAPI-sleutelFunction-calling-tool-CRUD/-test, agent-tool koppelen/ontkoppelen
client.integrationsAgent WorkerAPI-sleutelCal.com-verbindings-CRUD, statuscontrole, gebeurtenistypedetectie
client.knowledgeBasesTenant ManagementAPI-sleutelKennisbasis (RAG)-CRUD, bronnen (url/tekst JSON + multipart bestandsupload, opnieuw inlezen), agentgekoppelde retrieval-afstemming, crawluitsluitingen, retrieval-testomgeving
client.aggregationAggregatorAPI-sleutel (openbaar: getMetachain, verifyInclusion)Merkle-aggregatiebewijzen, openbare meta-chain, offline inclusiebevestiging
client.policyPolicy EngineAPI-sleutelPolicy-evaluatie, jurisdictie-policydocumenten, aanroeprtijdige voorafgaande controle
client.audioAudio ValidatorAPI-sleutelSynchrone audiovalidatie per gesprekbeurt, nabewerking audio-naar-transcriptafstemming
client.authTenant ManagementAPI-sleutelAPI-sleutel ↔ JWT-sessiebrug (uitwisselen, vernieuwen)
client.orgOrg ManagementOrgBearer (JWT)Org-selfservice: registreren/aanmelden/vernieuwen/afmelden, profiel, KYC
client.org (tenants)Org ManagementOrgBearer (JWT)Door org beheerde tenantlevenscyclus: weergeven/aanmaken/ophalen, zachte verwijdering/inschakelen/uitschakelen/herstellen, initialiseren, sleutel uitgeven, imiteren
client.piiEvidence LayerAPI-sleutelPII-vault wissen op identiteit (shred, shredCall), gespreksidentiteiten (listCallIdentities, linkCallIdentity), vault-tokens ontsleutelen (decrypt), gewiste-keyset-status (listErasedKeysets), versleutelingsinstellingen (settings)

Toegevoegd in 0.3.0

MethodeRoute
client.pii.listErasedKeysets(callId, keysetIds)GET /v1/calls/{call_id}/pii/erased-keysets
client.evidence.listComplianceEvents(opts?)GET /v1/compliance/events

Foutafhandeling

Mislukte verzoeken gooien AudactError, gevuld vanuit de {"error": {...}}-envelop van de API:

ts

import { AudactError } from "@audactcore/sdk";

try {
  await client.evidence.getCallDetail("missing");
} catch (err) {
  if (err instanceof AudactError) {
    console.error(err.status, err.code, err.message);
    console.error("request id:", err.requestId); // quote this to support
    if (err.hint) console.error("hint:", err.hint);
    if (err.status === 429) console.error("retry in", err.retryAfter, "s");
  }
}

hint, details en retryAfter kunnen undefined zijn.

Authenticatiestromen

De meeste subclients sturen Authorization: Bearer <apiKey> met de apiKey die aan de AudactClient-constructor is doorgegeven. Twee oppervlakken gebruiken een andere Bearer-token (org en platform), ingesteld via setAuthToken() (of vooraf opgegeven in AudactClientOptions):

  • OrgBearer — een JWT verkregen via client.org.login(). Het SDK slaat hem automatisch op in de org-subclient; elk volgend client.org.*-aanroep (inclusief de tenantlevenscyclusmethoden) stuurt hem in plaats van de API-sleutel.

Org-aanmeldstroom

ts

import { AudactClient } from "@audactcore/sdk";

const client = new AudactClient({ apiKey: "aud_live_..." });

// login() is public (no bearer required) and stores the returned access
// token on client.org automatically.
await client.org.login({ email: "admin@example.com", password: "hunter2" });

// Subsequent calls send `Authorization: Bearer <jwt>`.
const profile = await client.org.getProfile();
const tenants = await client.org.listTenants();

// Rotate the token before it expires, then clear it when done.
await client.org.refresh();
await client.org.logout();

U kunt ook starten met een vooraf geverifieerde aanmelding:

ts

const client = new AudactClient({
  apiKey: "aud_live_...",
  orgToken: "<jwt from a prior login>",
});

Een nieuwe client: webhooks

ts

const endpoint = await client.webhooks.createWebhook({
  url: "https://example.com/hooks/audact",
  events: ["call_ended", "compliance.violation_detected"],
  scope: "account",
});

await client.webhooks.testWebhook(endpoint.id);

const deliveries = await client.webhooks.listWebhookDeliveries(endpoint.id);

Ontwikkeling

bash

npm install
npx tsc --noEmit   # typecheck
npm run build      # emit dist/esm + dist/cjs
npm run test       # vitest

Bron bijgewerkt: 19 oktober 2026