Schémas
Le schéma JSON de chaque message du protocole, où ils sont servis et comment un SDK tient sa copie à jour.
Chaque message de nestor.satellite/1 a un schéma JSON (draft 2020-12). Le cœur les génère à
partir de ses classes de messages, et chacun est servi là où pointe son $id :
https://nestorhome.dev/schemas/satellite/1/<message>.json
Le site est construit avec les schémas de la version du serveur qu’il épingle : la version dans l’adresse est celle que les schémas déclarent.
Messages
L’appairage, en HTTP :
| Schéma | Corps de |
|---|---|
pairing.request |
POST /satellites/pairings |
pairing.ticket |
sa réponse 201 |
pairing.enrollment |
POST /satellites/pairings/{pairing_id}/enrollment |
pairing.state |
GET /satellites/pairings/{pairing_id} et la réponse à l’enrôlement |
pairing.error |
tout refus |
manifest |
le manifeste de l’appareil, dans une demande et dans hello |
Sur le canal de données nestor :
| Schéma | Envoyé par | Sens |
|---|---|---|
hello |
appareil | son manifeste, en premier sur le canal |
welcome |
cœur | la pièce et les capacités autorisées |
intent.expression |
cœur | montrer une émotion |
intent.behavior |
cœur | une attitude : écoute, réflexion, parole… |
intent.beat |
cœur | un mot est joué : un léger accent de la parole |
intent.identify |
cœur | se faire remarquer |
ack |
appareil | une intention a été reçue |
observation.speech.activity |
appareil | quelqu’un commence ou arrête de parler |
observation.person.detected |
appareil | une personne est vue |
Garder une copie dans un SDK
Un SDK garde les schémas dans son dépôt et teste avec eux chaque message qu’il envoie. Pour rafraîchir la copie, écrivez les schémas d’une version du serveur dans le dossier du SDK :
uvx --from nestor-home==<version> nestor satellites schemas --out schemas/
<version> est la version du serveur que vise le SDK (0.0.2 ou plus récente). Adaptez ensuite le code jusqu’à ce que ses tests passent. Le SDK
Python les garde dans src/nestor_satellite/schemas/, les SDK TypeScript et Rust dans schemas/.