JevT++
C++20 library for typed routing, classification and scoring with compile-time enum schemas, local Laya and optional System One.
Overview
JevT++ turns runtime text, JSON or application objects into enums, booleans and scores that C++ code can use directly. You define answer vocabularies once as compile-time schemas with enum rubrics and explicit abstention, then supply new context on every call. Local Laya backends run inference in-process through ONNX Runtime or native ggml on CPU or CUDA, and an opt-in remote backend uses the same API against TypeSafe's System One. Several fields can be evaluated in one Laya batch.
Answers include full distributions, P(true), fractional scores and confidence, and the runtime exposes latency percentiles, JSON and Prometheus metrics and an optional dashboard. An optional decision-graph layer composes observations, judgments and action proposals from versioned JSON at runtime. A research demo has a local Laya model ranking candidate plans to play NES Mario on an RTX 4090, explicitly not a completed-game run. Remote tests use mocks and loopback HTTP rather than live-provider calls. It is unofficial.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which enum value applies to this context (with abstention)? | — |
| Yes / no | Is this boolean field true? | — |
| Score | Where does this context fall on the rubric? | — |
How it works
- Declare enum schemas and rubrics at compile time
- Provide context per call
- Laya (local) or System One (remote) scores the options
- Code reads distributions, abstains when unsure, and acts
- Metrics record latency and outcomes
Strengths
- In-process local inference without Python
- Compile-time typed vocabularies
- Built-in metrics and dashboard
Caveats
- Remote backend not validated against the live provider in tests
- Decision graphs do not guarantee safe actions
- Mario demo needs a high-end GPU and is not a full run
Getting started
See the Build and test section and docs/LAYA.md for ONNX setup; the runnable demo is examples/laya_routing_demo.cpp.At a glance
- Type
- Library
- Status
- beta
- Language
- C++
- Runtime
- C++20 library (ONNX Runtime / ggml, optional HTTP)
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
C++ integration: independent C++20 library with compile-time enum schemas, typed Choice/Noul/Score results and abstention, local Laya inference through ONNX Runtime or ggml, and an opt-in TypeSafe System One HTTP backend tested with mocks and loopback HTTP rather than live-provider calls.
yibie/awesome-jevUnofficial C++20 library with compile-time enum schemas, typed decisions and abstention, local Laya backends, and an optional TypeSafe System One HTTP client; remote tests use mocks and loopback HTTP, not live-provider validation
AnotiaWang/awesome-decision-models
Frequently asked questions
Does it need TypeSafe?
No. Local Laya backends run in-process; the TypeSafe backend is optional.
Can it abstain?
Yes, schemas support explicit abstention.
Is the remote backend tested?
With mocks and loopback HTTP, not live provider calls.
Related projects
48-requirement spec and conformance suite for Jev-compatible servers, with a normalising proxy; shows confidence is not portable.
CLIbetaPythonPython library for one-line judgment calls (likely, classify, rate) returning YES, NO or UNSURE, built for Jev and other small models.
ModelbetaPythonRust CLI and library that asks Jev typed questions via OpenRouter and combines the probabilities with fuzzy-logic rules into decisions.
CLIbetaRustGo harness for System One models: hosted Jev, open Kev in-process via llama.cpp, and Cloudflare Clef, with typed helpers and a CLI.
ServicebetaGoTypeScript library for one-line local decisions with open models (kev-0.6b, kev-4b, open-jev), no API keys or cloud.
ProjectbetaTypeScriptUnofficial standard-library Go client for Jev with generic typed Choice values and local confidence thresholds.
ProjectbetaGo