Skip to content

jev-dsl

Early-alpha Haskell DSL that composes typed Jev questions over your data and decodes answers back to the original values.

LibraryprototypeMIT

Overview

jev-dsl is a Haskell library for typed semantic queries with Jev: asking whether evidence supports a claim, selecting a candidate, or routing a reply into a continuation. Answers keep the Haskell values you supplied, whether rows, domain values, functions or actions. Queries compose with Applicative and Traversable, assessments adapt with Star arrows, payloads are edited with optics, and evaluation strategies are chosen with Selective.

The library builds and validates requests, groups questions sharing an identical state into one request, and decodes responses against the original alternatives; you provide the HTTP transport and run any selected actions. It is version 0.2.0.0, early alpha, used by its examples and by Exomonad's hosted Haskell interface, with authoring and composition guides.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this evidence support this claim?—
ChoiceWhich candidate or continuation should be selected?—

How it works

  1. Define an assessment projecting data into evidence
  2. Compose queries with traversals and Star arrows
  3. runQuery groups questions by shared state and builds requests
  4. Your transport sends them; answers decode to the original values

Strengths

  • Answers stay attached to original Haskell values
  • Automatic grouping of questions per state
  • Inspect requests before sending

Caveats

  • Early alpha
  • No built-in HTTP transport

Getting started

Start with Jev.Operators (Aeson) or Jev.Core, and see docs/authoring.md and examples/Reflex.hs.

At a glance

Type
Library
Status
prototype
Language
Haskell
Runtime
Library
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • An early Haskell DSL that describes labeled Jev questions, renders requests and decodes matching answers.

    logicrw/awesome-jev-projects
  • Early-alpha Haskell DSL that encodes typed question packets and decodes answers; HTTP transport is left to the caller.

    cobanov/awesome-jev
  • Agent-first Haskell DSL for TypeSafe's Jev judgment model: typed packets, inferred types, answers under the same labels.

    hellogumbo/awesome-jev

Frequently asked questions

What does the DSL do?

Builds, groups and decodes typed Jev questions so answers map back to your Haskell values.

Does it make HTTP calls?

No, you supply the transport.

Is it stable?

No, it is early alpha at 0.2.0.0.

Related projects

  • Hack Club's lightweight LLM proxy, listed for adding a Jev forwarding endpoint behind its auth, limits and usage logging.

    MCP serverproductionTypeScript
  • Ax, a DSPy-style multi-language LLM framework, listed with a native TypeSafe provider for Boolean, Choice, Score and raw Jev questions.

    PluginproductionTypeScript
  • Effect TypeScript library whose @effect/ai-typesafe package maps classify, probability and rating operations to Jev questions.

    ProjectproductionTypeScript
  • PHP monorepo whose Polyglot module adds a TypeSafe driver for typed Noul, Choice and Score decisions alongside LLM inference.

    ProjectproductionPHP
  • Go MCP server giving any client typed Jev decisions via OpenRouter or TypeSafe, with validated answers and no paid retries.

    MCP serverproductionGo
  • Simon Willison's LLM plugin that adds Jev as a model for yes/no, choice and score questions from the command line.

    PluginproductionPython