# FAQ

> Short answers to the questions that come up first.

Section: Reference · HTML: https://jevascript.org/docs/faq · Markdown: https://jevascript.org/docs/faq.md

## Is this an LLM SDK?

No. There is no completion, chat, streaming or prompt template. The runtime asks a decision model to score propositions and returns probabilities as booleans, numbers and choices. If you need generated text, use a text model alongside it; the [RAG gate](https://jevascript.org/docs/scenarios/rag-gate) scenario shows the two working together.

## Does it generate any text?

No. The Jev provider declares `generatesText: false`. Nothing the model returns is parsed from prose, which is also why there is no instruction channel to hijack. See [Not a security boundary](https://jevascript.org/docs/not-a-security-boundary).

## What is a decision model?

A model trained to answer "is this proposition true of this text?" with a calibrated probability, rather than to continue text. It is smaller, faster and cheaper than a generative model for that task, and it returns a distribution instead of a sentence.

## Does it work in languages other than English?

Yes. The state can be in any language the model reads. The one English-specific piece is the default frame that turns `score("urgency")` into `"This has high urgency."`; replace it with `scoreFrame` in [Configuration](https://jevascript.org/docs/configuration), or write full propositions with `asProposition: true`.

## Are results deterministic?

No. Providers are not deterministic, and the same input can land on either side of a threshold on two calls. Three tools address that: [`allowUnknown`](https://jevascript.org/docs/uncertainty#bands-beat-thresholds) so the middle is not forced, [caching](https://jevascript.org/docs/caching) so a re-evaluated record returns the same answer, and [`minConfidence`](https://jevascript.org/docs/uncertainty#measured-confidence) so unstable answers are measured rather than trusted.

## How much does a call cost?

A request is priced on input tokens; there is no output text. The state travels once per request, so [batching](https://jevascript.org/docs/batching) is the main lever: seven questions in one request cost close to one. Every evaluation reports `usage.inputTokens` through [observability](https://jevascript.org/docs/observability) so you can measure your own workload. Pricing itself is set by the provider, not by this package.

## How fast is it?

A batched request on a short ticket returned in well under a second in the recorded measurements. Latency scales with state size, not with the number of questions.

## Can I use OpenAI, Anthropic or a local model?

Not out of the box. The provider interface is public and small, so you can [write a provider](https://jevascript.org/docs/providers#write-a-provider) that wraps any model able to return probabilities. An OpenAI-compatible provider is on the roadmap. Expect a text model to be worse calibrated than a purpose-built decision model.

## Can I run it in the browser?

No. The API key must stay on the server. Put a route handler or server action in front of it. See [Frameworks](https://jevascript.org/docs/frameworks).

## Does it support CommonJS?

The package is ESM only. From CommonJS, use `await import("jevascript")`. See [Installation](https://jevascript.org/docs/installation#esm-only).

## Which Node versions?

Node 22.6 or newer, because the package relies on `AbortSignal.any` and has no polyfills. Bun and Deno work.

## Is it safe to use for authentication, moderation or fraud decisions on its own?

No. It is a review and risk layer. Authorisation, limits and exact validation stay deterministic, and a deterministic gate should sit in front of any consequence. The [moderation](https://jevascript.org/docs/scenarios/moderation) and [fraud review](https://jevascript.org/docs/scenarios/fraud-review) scenarios show the pattern.

## How stable is the API?

The package is `0.x`. The public API may change between minor versions before 1.0; each change is listed in the [changelog](https://jevascript.org/docs/changelog). Pin a minor version.

## Where does the name come from?

"Jev" is the decision model behind the first provider. jevascript is the TypeScript runtime around it. The public API never names the vendor, so a different provider needs no changes at your call sites.

## Where do I report a problem?

[GitHub issues](https://github.com/hakantapanyigit/jevascript/issues). Include the question, a minimal state, and the `detailed: true` result if the problem is an answer rather than an error.
