Filter a closed catalog with one Jev boolean per item. Matches rise out of the pile when their probability clears a floor.
Use this when you want semantic search over a known catalog, such as emoji or icons, without building embeddings, scoring each item with a boolean.
Similar patterns, and when each one is the better fit.

Jev Email TagsUse this when you are multi-label tagging a known set of messages, such as an inbox, without writing a classifier prompt or allowing invented labels.
Jev Table QueryUse this when users type filter or sort requests over a fixed table, with column sorts run in code and other phrases scored by the model per row.
Jev Action GateFreeUse this when you are deciding whether to auto-approve one proposed action at a time, using a single Jev probability against a floor you control.
Jev Best-of-N JudgeUse this when you already have several candidate replies to one prompt and need one chosen, or none at all if the pick is too close to call.Requirements, wiring steps, and what this pattern adds to your project.
Pick how you want to pull this pattern in. Then wire env vars and routes the same way.
Download → Next.js app
Use Download → Next.js app in the preview toolbar. You get a zip scaffold (Pro downloads rewrite preview `/view/.../api/*` paths to `/api/*` automatically).
Extract the zip and install dependencies
Unzip the archive, then run `pnpm install` (or npm / yarn) in the project folder.
Fill .env.local
The download includes .env.local placeholders when needed. Add real values for: AI_GATEWAY_API_KEY.
Customize the agent and tool files
Adapt prompts, tools, and stop conditions in the generated project for your product.
Run the app and open the pattern route
Run `pnpm dev`, open the setup/checklist page if present, then navigate to the generated pattern route and verify responses.
AI_GATEWAY_API_KEYGet keyAI SDK APIs
experimental_evaluateProviders
External services
app/page.tsxapp/layout.tsxapp/api/search/route.tscomponents/search-filter-demo.tsxcomponents/catalog-pile.tsxcomponents/typesafe-ai.tsxhooks/use-search-filter.tslib/catalog.tslib/filter-questions.tslib/filter-policy.tslib/pile-layout.tslib/rate-limit.tslib/request-utils.tsREADME.mdnpm packages
6
Registry components
lib/filter-policy.tsPure decideFilter policy: keep a catalog id only when P(match) >= 0.70. A missing answer stays out. Do not call Jev from unit tests. Use Experimental_EvaluationMockModelV4.
lib/filter-questions.tsbuildFilterQuestions writes one boolean per catalog item. The item name and hint live in the instructions. MATCH_FLOOR is 0.70 and stays in application code.
lib/catalog.tsClosed emoji catalog. Jev may only answer these ids. Do not let the model invent items.
search/route.tsRate-limited experimental_evaluate call through AI Gateway model typesafe-ai/jev with zeroDataRetention. Returns decideFilter matches, never a free-text list.
Filter a closed catalog with one Jev boolean per item. Matches rise out of the pile when their probability clears a floor.
Use this when you want semantic search over a known catalog, such as emoji or icons, without building embeddings, scoring each item with a boolean.
Similar patterns, and when each one is the better fit.

Jev Email TagsUse this when you are multi-label tagging a known set of messages, such as an inbox, without writing a classifier prompt or allowing invented labels.
Jev Table QueryUse this when users type filter or sort requests over a fixed table, with column sorts run in code and other phrases scored by the model per row.
Jev Action GateFreeUse this when you are deciding whether to auto-approve one proposed action at a time, using a single Jev probability against a floor you control.
Jev Best-of-N JudgeUse this when you already have several candidate replies to one prompt and need one chosen, or none at all if the pick is too close to call.Requirements, wiring steps, and what this pattern adds to your project.
Pick how you want to pull this pattern in. Then wire env vars and routes the same way.
Download → Next.js app
Use Download → Next.js app in the preview toolbar. You get a zip scaffold (Pro downloads rewrite preview `/view/.../api/*` paths to `/api/*` automatically).
Extract the zip and install dependencies
Unzip the archive, then run `pnpm install` (or npm / yarn) in the project folder.
Fill .env.local
The download includes .env.local placeholders when needed. Add real values for: AI_GATEWAY_API_KEY.
Customize the agent and tool files
Adapt prompts, tools, and stop conditions in the generated project for your product.
Run the app and open the pattern route
Run `pnpm dev`, open the setup/checklist page if present, then navigate to the generated pattern route and verify responses.
AI_GATEWAY_API_KEYGet keyAI SDK APIs
experimental_evaluateProviders
External services
app/page.tsxapp/layout.tsxapp/api/search/route.tscomponents/search-filter-demo.tsxcomponents/catalog-pile.tsxcomponents/typesafe-ai.tsxhooks/use-search-filter.tslib/catalog.tslib/filter-questions.tslib/filter-policy.tslib/pile-layout.tslib/rate-limit.tslib/request-utils.tsREADME.mdnpm packages
6
Registry components
lib/filter-policy.tsPure decideFilter policy: keep a catalog id only when P(match) >= 0.70. A missing answer stays out. Do not call Jev from unit tests. Use Experimental_EvaluationMockModelV4.
lib/filter-questions.tsbuildFilterQuestions writes one boolean per catalog item. The item name and hint live in the instructions. MATCH_FLOOR is 0.70 and stays in application code.
lib/catalog.tsClosed emoji catalog. Jev may only answer these ids. Do not let the model invent items.
search/route.tsRate-limited experimental_evaluate call through AI Gateway model typesafe-ai/jev with zeroDataRetention. Returns decideFilter matches, never a free-text list.
Loading preview…


Open on desktop for the interactive preview.
Filter a closed catalog with one Jev boolean per item. Matches rise out of the pile when their probability clears a floor.
Loading preview…


Open on desktop for the interactive preview.
Filter a closed catalog with one Jev boolean per item. Matches rise out of the pile when their probability clears a floor.