Agent tooling
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.
const typesafeBaseUrl = (clean(env.TYPESAFE_BASE_URL) ?? 'https://api.typesafe.ai').replace(/\/+$/, '');The link points at the commit we read, so the line number still holds.
These question sets are lifted from this project's source exactly as written.
needs_visiontrue/falseDoes 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_toolstrue/falseIs `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.
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
is_codetrue/falseDoes `task` ask for 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?' },
},
});