System One client
For the complete documentation index, see llms.txt.
Use Jev System One when a voice or messaging scenario needs structured decisions (urgency, category, severity, and similar fields) rather than open-ended chat or TTS playback. From VoxEngine, use the Jev module and a Jev.SystemOneClient to call TypeSafe System One.
Store your TypeSafe API key in an application secret (for example, TYPESAFE_API_KEY) and pass it to Jev.createSystemOneClient. Do not hardcode secrets in scenario source.
Usage
- Require the
Modules.Jevmodule in your VoxEngine scenario. - Create a Jev.SystemOneClient with Jev.createSystemOneClient, and your SystemOneClientParameters (
apiKey, optionalbaseUrl, optionallongContext). - Wait for Jev.SystemOneEvents.ConnectorInformation, then call systemOne with a SystemOneRequest (
bodywithstateandquestions, optionalrequestIdandmodel). - Handle each result via the returned promise and/or Jev.SystemOneEvents.Result. Handle failures with Jev.SystemOneEvents.Error; a failed request does not close the client, so you can send another
systemOneon the same connection. - Close the client or terminate the scenario when finished.
Build question objects with helpers such as Jev.noul, Jev.choice, Jev.score, and Jev.box (see System One questions in the API reference). Question and answer shapes follow the TypeSafe System One documentation.
When model is omitted in the request body, the platform uses the jev-latest alias unless you choose jev-preview (for example, when using Jev.box).
Here is a complete scenario that runs two System One requests on one connection:
When to use System One vs voice AI clients
System One does not replace VoxEngine.sendMediaBetween voice pipelines; combine it with your call flow (answer the call, run decisions, then route or speak via TTS/Avatar as needed).