jev_items
Ask Jev the SAME questions about many states in one call — nothing is written.
The shape for "decide, then act": you have just read a page of rows or a list of profiles to triage with the same rubric, and you want a verdict per item before writing them, enriching them, or spending anything on them. Each item is judged on its own — one item's answer never depends on another's.
⚠️ Each state is sent to a third party (OpenRouter, which passes it to TypeSafe): put in it only the fields the judgement needs.
Returns — {model, answers, usage, failed, retry}:
answers — one entry per item, in the ORDER SENT, each
{index, answers: {…}} exactly as jev_ask returns them, or
{index, error} for an item without an answer (a state the upstream
refused, a transient failure, or not sent in time). A failed item never
becomes a false verdict.
usage — {decided, failed, input_tokens, cost} for the whole call.
failed — the number of items without an answer.
retry — the indexes that were NOT SENT because the call ran out of time
(about 40 s): send exactly those again. [] when everything was sent.
A key problem (invalid key, no credits left) aborts the whole call rather than turning into N identical item errors; the answers already given are still billed, and the error says how many.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"items": "<items>",
"questions": "<questions>"
},
"name": "jev_items"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| _org | No | Org (id) de CET APPEL. `oto_list_orgs()`. | |
| items | Yes | the states to judge, at most 200 per call and 16 KB of JSON each. Either the raw states, or `{"key": <your id>, "state": {…}}` to get your own id back beside each answer (`key` is echoed, never sent). | |
| model | No | another model id (default: the pinned dated snapshot). | |
| _group | No | Équipe (id) de CET APPEL, sous son org parente. | |
| _run_id | No | OBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas. | |
| _project | No | Projet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`. | |
| parallel | No | how many items in flight (default 10, max 50). Raise it for a big batch that must finish inside one call. | |
| _instance | No | Instance de connecteur PRÉCISE (un credential exact). `oto_instance(op='list')`. | |
| questions | Yes | the rubric, same shape and same rules as `jev_ask`. |