Référence API
Référence rapide pour le SDK JavaScript Optave. Pour des exemples détaillés, voir Exemples d'Utilisation.
Constructeur
new OptaveJavaScriptSDK(options)
Crée une nouvelle instance du SDK.
Options Principales:
websocketUrl(string, requis): URL du serveur WebSockettokenProvider(function, navigateur): Fonction asynchrone retournant un token WebSocketauthenticationUrl(string, serveur): Endpoint d'authentification OAuth2clientId(string, serveur): ID client OAuth2clientSecret(string, serveur): Secret client OAuth2 (serveur uniquement!)authTransport(string):'subprotocol'(par défaut) ou'query'connectionTimeoutMs(number): Timeout de connexion (par défaut: 30000ms)requestTimeoutMs(number): Timeout de requête (par défaut: 30000ms)strictValidation(boolean): Activer la validation du payload (par défaut: true en dev)logger(object): Logger personnalisé avec méthodes debug/info/warn/error
Exemple:
const client = new OptaveJavaScriptSDK({
websocketUrl: 'wss://ws-{{tenant}}.oco.optave.{{tld}}',
authTransport: 'subprotocol',
tokenProvider: async () => {
// Remplacez '/api/optave-token' par votre véritable endpoint backend
const res = await fetch('/api/optave-token', { method: 'POST' });
const { token } = await res.json();
return token;
}
});
Méthodes de Connexion
authenticate()
Authentifie en utilisant les identifiants client OAuth2 (serveur uniquement).
- Retourne:
Promise<string>- Token d'accès - Note: Non disponible dans les builds navigateur
openConnection(bearerToken?)
Établit la connexion WebSocket.
- Paramètres:
bearerToken(string, optionnel) - Token pré-obtenu - Retourne:
Promise<Event>- Se résout quand connecté
closeConnection()
Ferme la connexion WebSocket.
cleanup()
Nettoyage complet de toutes les ressources (connexion, listeners, requêtes en attente).
Méthodes d'Action (Basées sur Événements)
Envoyer des messages sans attendre de réponses. Écouter les réponses via événements.
interaction(params): Envoyer une interaction clientreception(params): Envoyer un message de réceptionelevate(params): Demander une élévation de réponseadjust(params): Demander un ajustement de réponsesummarize(params): Demander un résumé de conversationtranslate(params): Demander une traductionrecommend(params): Demander des recommandationsinsights(params): Demander des insights analytiques
Événements
Événements de Connexion
'open': Connexion établie'close': Connexion fermée'error': Erreur de connexion (obsolète, utiliser'superpower.error')
Événements de Message
'superpower.response': Réponse reçue (recommandé)'superpower.error': Erreur survenue (recommandé)'message': Événement de réponse hérité (obsolète)'response': Événement de réponse alternatif'message.{action}': Événements spécifiques à l'action (ex:'message.summarize')
Exemple:
client.on('superpower.response', (response) => {
console.log('Reçu:', response.payload);
});
client.on('superpower.error', (error) => {
console.error('Erreur:', error.message);
});
Structure d'Erreur
Toutes les erreurs utilisent un format structuré:
{
category: 'AUTHENTICATION' | 'VALIDATION' | 'WEBSOCKET' | 'ORCHESTRATOR',
code: string,
message: string,
details: any,
correlationId?: string,
timestamp: string
}
Codes d'Erreur Courants:
CONNECTION_TIMEOUT: La connexion a pris trop de tempsREQUEST_TIMEOUT: La requête a expiréREQUIRED_FIELDS_MISSING: Champs requis manquants dans le payloadPAYLOAD_TOO_LARGE: Le payload dépasse la limite de 128KBWEBSOCKET_NOT_IN_OPEN_STATE: Non connecté