Agent tooling

jev-model-router

@Mandrilsquad14411TypeScriptMITupdated 2026-09-18runnable

Pick the best AI model and reasoning effort for any task in ~1s. Plugin for Claude Code, Claude Desktop and Codex, powered by TypeSafe's Jev decision model and live OpenRouter pricing. Balance intelligence, speed and cost, or choose your priority.

Mandrilsquad1441/jev-model-router

Where it calls Jev

const typesafeBaseUrl = (clean(env.TYPESAFE_BASE_URL) ?? 'https://api.typesafe.ai').replace(/\/+$/, '');

src/config.ts:156

The link points at the commit we read, so the line number still holds.

What it asks Jev

These question sets are lifted from this project's source exactly as written.

from src/jev/analyze.ts:65

  1. needs_visiontrue/false

    Does the work in `task` require viewing an image or visual file, such as a screenshot, photo, UI mockup, diagram image, video, or scanned PDF? Code, logs, text files, and data dumps are not images. ${SCOPE}

  2. needs_toolstrue/false

    Is `task` a long autonomous job in which the model must use tools over many steps, such as editing many files, running commands, and re-running tests until they pass? A single question or one focused change does not count.

Run it on your own text

The code
import { experimental_evaluate as evaluate } from 'ai';

const { answers } = await evaluate({
  model: 'typesafe-ai/jev',
  state,
  questions: {
    needs_vision: { type: 'boolean', instructions: 'Does the work in `task` require viewing an image or visual file, such as a screenshot, photo, UI mockup, diagram image, video, or scanned PDF? Code, logs, text files, and data dumps are not images. ${SCOPE}' },
    needs_tools: { type: 'boolean', instructions: 'Is `task` a long autonomous job in which the model must use tools over many steps, such as editing many files, running commands, and re-running tests until they pass? A single question or one focused change does not count.' },
  },
});

from src/router.ts:360

  1. is_codetrue/false

    Does `task` ask for code?

Run it on your own text

The code
import { experimental_evaluate as evaluate } from 'ai';

const { answers } = await evaluate({
  model: 'typesafe-ai/jev',
  state,
  questions: {
    is_code: { type: 'boolean', instructions: 'Does `task` ask for code?' },
  },
});

Other projects in this category