shipwithjev

Catalog / Tools & apps

0095GitHub

Laravel TypeSafe Jev

An unofficial Laravel package for Jev, with typed responses and test fakes.

butochnikov/laravel-typesafe-jevREADME ↗
# Laravel TypeSafe Jev

[Русская документация](README.ru.md)

Unofficial, community-maintained Laravel integration for [`butochnikov/typesafe-sdk-php`](https://github.com/Butochnikov/typesafe-sdk-php). It is not affiliated with Laravel or TypeSafe.

This package keeps the SDK's typed DTOs, promises, and exceptions while adding Laravel package discovery, scoped lazy DI, configuration, a facade, and a recording fake. Jev `Noul` and `Score` are probability/score questions; this package is not a text-generation or chat client.

## Requirements

| Package | Supported versions |
| --- | --- |
| Laravel 12 | PHP 8.2–8.5 |
| Laravel 13 | PHP 8.3–8.5 |
| TypeSafe SDK | `butochnikov/typesafe-sdk-php:^0.1` |

## Install

```bash
composer require butochnikov/laravel-typesafe-jev
php artisan vendor:publish --tag=jev-config
```

The provider is auto-discovered. Manual registration is also supported with `Butochnikov\LaravelTypeSafeJev\JevServiceProvider::class`. The package does not register a global `Jev` alias.

Set the key in `.env`:

```dotenv
TYPESAFE_API_KEY=your-key
TYPESAFE_DEFAULT_MODEL=jev-latest
TYPESAFE_BASE_URL=https://api.typesafe.ai
TYPESAFE_TIMEOUT=10
```

The key is validated only when a real SDK client is first used, so package discovery, `artisan list`, and `config:cache` work without a key. Config values are the source of truth after caching; the adapter passes these connection settings explicitly to the SDK. Logging has the exception described below. Numeric env values are validated and normalized when the lazy client is resolved. Invalid configuration fails then with a descriptive exception, not during provider registration.

## Use the facade or DI

```php
use Butochnikov\LaravelTypeSafeJev\Facades\Jev;
use TypeSafe\Choice;
use TypeSafe\Noul;
use TypeSafe\Score

Also filed under Tools & apps

  1. 0616

    Jevstiller: distill Jev calls into a local model

    A self-hosted proxy that trains a local model on Jev's answers. It served 72% of Banking77 locally at 15 ms, with a 2% audit and a bound on disagreement.

    tomerglick57 · Tools & apps · 15 ms local

  2. 0611

    Scruple: code checks for what linters miss

    Semantic-aware linting with System One models: rules you can state in a sentence, checked against your code by Jev.

    @nalexpeae · Tools & apps

  3. 0606

    Algolia-style Postgres search with a Jev reranker

    Typo tolerance, typeahead, barcodes and facet counts in plain Postgres SQL, plus an optional Jev step that asks one question per top-10 result.

    @alex_forman1 · Tools & apps

  4. 0604

    Virtual Closet: outfits from closet videos

    built a virtual closet & outfit generator from raw closet videos. classification + semantic search thanks to jev 🥰. clueless closet dreams finally coming to life

    @maitreemervana · Tools & apps