Jev directory
CommunityJev Repos & SDKs
Typesafer
An unofficial R client for the TypeSafe AI API covering model discovery and evaluation. It provides constructors for Noul, Choice, and Score questions plus a synchronous client with timeouts, bounded retries, and preserved server response fields.
- Stars
- 0
- Reading time
- 2 min
- Published by
- Community
- Added
- Oct 2026
Highlights
- Unofficial, in-development R package installed from GitHub with remotes::install_github("reisfe/typesafer").
- Implements model discovery through GET /v1/models and evaluation through POST /v1/systemone.
- Ships create_noul_question, create_choice_question and create_score_question constructors, including mixed questions in one request.
- Defaults to a 10-second timeout per attempt, two retries after the initial attempt, and a 30-second total request budget.
- Only HTTP 429 and 529 are retried; redirects are not followed and the base URL must be HTTPS.
Questions about this entry
Short answers drawn from the linked project or page.
Install the development version from GitHub with `remotes::install_github("reisfe/typesafer")`, after installing remotes if needed. R 4.1.0 or later is required. Installing from GitHub needs Internet access, and using the API also requires a TypeSafe API key.
Two: model discovery through `GET /v1/models`, exposed as `list_models(client)`, and evaluation through `POST /v1/systemone`, exposed as `evaluate_questions(client, state, questions, model)`. Both return nested lists with API field names unchanged.
Set `TYPESAFE_API_KEY` in your `.Renviron` and restart R before calling `create_typesafe_client()`. The client reads the session environment and does not read or modify `.Renviron` itself. Configuration precedence is explicit arguments, then environment variables, then package defaults.
Client settings default to a 10-second timeout per attempt (`timeout`), two retries after the initial attempt (`max_retries`), and a 30-second total request budget (`retry_timeout`). Each attempt is limited by the remaining budget, and timeouts and budgets must be at least 0.001 seconds.
No. Endpoint functions return nested lists that preserve answers, model information and token usage, with API field names unchanged and unknown response fields kept. Data-frame workflows, vectorised evaluation, asynchronous execution, caching, classification helpers and statistical summaries are deferred to a later interface.
It is an unofficial R package in development by reisfe, not an official TypeSafe client. Regression review is complete and a GitHub Actions workflow runs offline package checks on Linux, Windows and macOS, but the package remains in development with only offline tests described.
Avoid it if you need vectorised evaluation, asynchronous execution, caching, classification helpers or statistical summaries, since those are deferred. It also does not recompute confidence, round scores, renumber rubric levels or convert responses into data frames, so anything relying on that behaviour must be done by the caller.
From the Jev guides
Original write-ups on what this entry is for.
From the Jev AI model community
Posts from builders shipping with Jev right now.