Aller au contenu principal

SDK TypeScript

SDK TypeScript: Est-ce construit
Est-ce construitOpérationnel aujourd’hui
SDK TypeScript: Puis-je y accéder
Puis-je y accéderEarly Customer Program
Pourquoi cet état
Affirmation
Opérationnel aujourd’hui · Early Customer Program
Périmètre
La bibliothèque cliente TypeScript documentée à /docs/sdks/typescript. Pas les SDK Python et Go, qui ont leur propre entrée.
Fondement
Le SDK TypeScript est publié sur npm sous le nom @audactcore/sdk 0.4.0 (mesuré le 22 octobre 2026) ; des tests de parité couvrent 209 des 211 opérations documentées.
Ce que cela n’établit pas
Que chaque opération documentée a été exécutée via le SDK en production.
Ce que vous pouvez obtenir aujourd’hui
Inclus dans un contrat payant.
Dernière vérification
21 octobre 2026
Où le vérifier
/docs/sdks/typescript

SDK TypeScript officiel pour Audact. Une surcouche fine, sans dépendance (uniquement fetch/FormData/AbortSignal/URLSearchParams de Node ≥18) autour des services HTTP d’Audact — Validator, Evidence Layer, LLM Proxy, Tenant Management, Voice Gateway, Agent Worker, Aggregator, Policy Engine, Audio Validator et Org Management.

Installation

bash

npm install @audactcore/sdk

Démarrage rapide

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);
}

URL de base

En production, tous les services se trouvent derrière un seul hôte public, avec un routage par chemin sous /v1. Indiquez-le une seule fois :

ts

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

Un / ou un /v1 final dans baseUrl est supprimé ; les requêtes vont vers https://api.audact.ai/v1/.... serviceUrls (remplacements par service, qui l’emportent sur baseUrl) ne sont nécessaires que pour des déploiements personnalisés.

Couverture

Le SDK est à parité complète avec l’API documentée : 209 des 211 opérations sont couvertes (les 2 restantes sont des webhooks côté réception, du fournisseur vers la plateforme — POST /telnyx/webhook et POST /webhooks/livekit — qui sont des points d’entrée qu’Audact reçoit, sans jamais les appeler).

Sous-clientServiceAuthentificationCe qu’il couvre
client.validatorValidatorClé APIValidation ACVF à chaque tour, finalisation du score d’appel
client.evidenceEvidence LayerClé APIÉvénements de preuve, chaînes, vérification/reconstruction, appels, violations, rapports et exports de l’article 50, C2PA, reçus, livraison, rapprochement des transcriptions
client.llmProxyLLM ProxyClé APIComplétion de chat LLM validée par les contrôles de conformité (synchrone + streaming)
client.tenantsTenant ManagementClé APICRUD des tenants, utilisation, clés API, configurations
client.numbersVoice GatewayClé APIDocuments/ensembles KYC, cycle de vie du provisionnement des numéros (commande, affectation, suspension, reprise, libération, trunk)
client.callsVoice GatewayClé APICycle de vie des appels SIP (sortant/entrant/navigateur, raccrochage, état, reprise en main, transfert), trunks, règles de distribution, URL d’admission, tickets WS
client.webhooksTenant ManagementClé APICRUD des points de terminaison de webhooks, ping de test, historique des livraisons/renvoi, découverte des types d’événements/schémas, état/rotation des secrets
client.agentsAgent WorkerClé APICRUD des agents + duplication, CRUD du catalogue de voix TTS, état du pipeline
client.toolsAgent WorkerClé APICRUD/test des outils d’appel de fonctions, rattachement/détachement d’outils aux agents
client.integrationsAgent WorkerClé APICRUD des connexions Cal.com, contrôle d’état, découverte des types d’événements
client.knowledgeBasesTenant ManagementClé APICRUD des bases de connaissances (RAG), sources (url/texte JSON + envoi de fichier multipart, réingestion), liens avec les agents et réglage de la récupération, exclusions d’exploration, banc de test de la récupération
client.aggregationAggregatorClé API (public : getMetachain, verifyInclusion)Preuves d’agrégation de Merkle, méta-chaîne publique, vérification hors ligne des preuves d’inclusion
client.policyPolicy EngineClé APIÉvaluation des règles, documents de règles par juridiction, contrôle préalable des plages horaires d’appel
client.audioAudio ValidatorClé APIValidation audio synchrone à chaque tour, rapprochement audio-transcription après l’appel
client.authTenant ManagementClé APIPasserelle clé API ↔ session JWT (échange, rafraîchissement)
client.orgOrg ManagementOrgBearer (JWT)Libre-service de l’organisation : inscription/connexion/rafraîchissement/déconnexion, profil, KYC
client.org (tenants)Org ManagementOrgBearer (JWT)Cycle de vie des tenants rattachés à l’organisation : liste/création/lecture, suppression logique/activation/désactivation/restauration, initialisation, émission de clé, impersonation
client.piiEvidence LayerClé APIEffacement du coffre PII par identité (shred, shredCall), identités d’appel (listCallIdentities, linkCallIdentity), déchiffrement des jetons du coffre (decrypt), état des jeux de clés effacés (listErasedKeysets), paramètres de chiffrement (settings)

Ajouté dans la version 0.3.0

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

Gestion des erreurs

Les requêtes en échec lèvent AudactError, renseignée à partir de l’enveloppe {"error": {...}} de l’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 et retryAfter peuvent valoir undefined.

Flux d’authentification

La plupart des sous-clients envoient Authorization: Bearer <apiKey> avec la apiKey transmise au constructeur AudactClient. Deux surfaces utilisent un autre jeton Bearer (organisation et plateforme), défini via setAuthToken() (ou fourni d’emblée dans AudactClientOptions) :

  • OrgBearer — un JWT obtenu auprès de client.org.login(). Le SDK le conserve automatiquement sur le sous-client org ; chaque appel client.org.* suivant (y compris les méthodes de cycle de vie des tenants) l’envoie à la place de la clé API.

Flux de connexion de l’organisation

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();

Vous pouvez aussi démarrer déjà authentifié :

ts

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

Un nouveau client : les 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);

Développement

bash

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

Source mise à jour: 19 octobre 2026