Skip to content

Jev directory

Laravel TypeSafe Jev

An unofficial Laravel integration for the PHP TypeSafe SDK that keeps typed DTOs and promises while adding package discovery, scoped lazy DI, config, a facade, and a recording fake.
Stars
3
Language
PHP
License
MIT
Reading time
3 min
Published by
Community
Author
Butochnikov
Last verified
Sep 2026

Unofficial Laravel integration for TypeSafe Jev AI with typed responses, async requests, scoped dependency injection, and testing fakes.

Forks
2
Last pushed
Updated Sep 2026

Repo stats from the GitHub API, cached Oct 2026.

About this project

Unofficial, community-maintained Laravel integration for 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.

Quoted from the project's README. Read the full README.

Highlights

  • Supports Laravel 12 on PHP 8.2-8.5 and Laravel 13 on PHP 8.3-8.5, built on butochnikov/typesafe-sdk-php ^0.1.
  • Jev::fake() swaps in a recording fake for the current scope and never makes network requests, with assertSent and calls helpers.
  • Async methods return Guzzle promises, the binding is scoped per request or job, and close() cancels pending work.
  • The API key is validated only when a real SDK client is first used, so artisan list and config:cache work without one.

Quickstart

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

$response = Jev::systemOne(
    state: ['document' => 'Two charges appeared on my card.'],
    questions: [
        'billing' => new Noul(instructions: 'Is this about billing?'),
        'tone' => new Choice(criteria: ['calm' => null, 'angry' => null]),
    ],
);

Watch out

MIT-licensed. Not affiliated with Laravel or TypeSafe, requires PHP 8.2+ and a TYPESAFE_API_KEY, and deliberately adds no retry, caching, or multi-tenant layer of its own.

Questions about this entry

Short answers drawn from the linked project or page.

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.

Follow @typesafeai