chat, decide, or both. Nodes reach models only through providers, and the core library knows no vendor. Jev is one adapter among several and is never required.
LLM-backed decisions ask the model for a confidence value. It is the model’s own estimate, not a calibrated probability. Use
typesafe or a trained classifier when you need real probabilities.
Common options
string
required
Name that nodes refer to.
string
required
One of the types above.
string[]
Provider ids to try, in order, when this provider returns an error.
{ failures, resetMs }
Opens after
failures consecutive errors. While open, calls fail immediately, so a fallback provider takes over without waiting for a timeout. After resetMs, one trial call decides whether the circuit closes. Calls cancelled by the run do not count as failures.{ perSecond, burst? }
Caps outgoing calls with a token bucket. Calls over the limit wait their turn, and stop waiting when the run is aborted.
burst defaults to perSecond. A batched decideMany call counts as one call.openai
string
Sent as a bearer token. Optional for local servers.
string
default:"https://api.openai.com/v1"
Base URL, for example a Groq or local endpoint.
string
Default model. A node’s
model overrides it.anthropic
string
required
API key.
string
default:"https://api.anthropic.com"
Base URL.
string
Default model.
number
default:"1024"
Maximum output tokens.
typesafe
string
required
API key.
string
default:"https://api.typesafe.ai"
Base URL.
string
default:"jev-latest"
Model.
http
Sends a templated JSON request and maps the response with JSONPath expressions.object
Body template. Variables:
kind, prompt, state, options, model. A value that is exactly "{{options}}" keeps its list type.object
JSONPath expressions (
$.a.b[0].c): choice, probabilities, confidence, score, noul, text. probabilities is an object of option to probability, or an array aligned with the request options. Without choice, the highest probability wins. Without confidence, the winning probability is used.url (required), headers, and capabilities (default ["decide"]).
Fallback and local-first
A rate limit sits inside the circuit breaker, and the fallback chain sits on top of both.fallback lets a flow prefer a local provider and fall back to a cloud one, or the reverse. When a provider has decideMany and fails, the engine retries each decision through the fallback chain.
Add your own provider
Register a factory that returns aProvider. Return an error result for an invalid config.