@jkudish/jev-mcp 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0
4
+
5
+ - New `jev_classify` tool: assign up to 64 items to a shared catalog of up to 250 classes in one batched request (catalog sent once, one Choice per item). Per-item distribution, confidence, winner margin, and an auto-versus-review decision gated on both top probability (default 0.85) and margin (default 0.5). Caller IDs are preserved verbatim (opaque internal keys on the wire); the catalog is sent once in shared state with each item in its own question; malformed responses surface as invalid_response rather than uncertainty; batches are capped at an 8,000 item-class budget.
6
+
7
+ ## 0.3.0
8
+
9
+ - Cloudflare Workers AI support: with `CLOUDFLARE_API_TOKEN` (or `JEV_CLOUDFLARE_API_TOKEN`) and `CLOUDFLARE_ACCOUNT_ID` set, judgments run through Cloudflare at the `typesafe/jev` alias; `JEV_PROVIDER=cloudflare` forces it. Usage tokens are reported on every call.
10
+ - Vercel AI Gateway support: with `AI_GATEWAY_API_KEY` set, judgments run through the AI SDK evaluate API at `typesafe-ai/jev`; `JEV_PROVIDER=vercel` forces it. Noul, choice, and score answers are adapted back to this package's shapes, with TypeSafe confidence included.
11
+ - Provider resolution order: TypeSafe direct, OpenRouter, Cloudflare, Vercel.
12
+ - Internal fix: transport branches are explicitly guarded per provider.
13
+
3
14
  ## 0.2.0
4
15
 
5
16
  - OpenRouter support: with only an `OPENROUTER_API_KEY`, all judgments route through OpenRouter's Decisions API (alpha) at the same pricing; `JEV_PROVIDER` forces `typesafe` or `openrouter`. `jev-latest` maps to `typesafe/jev-1.13` there.
package/README.md CHANGED
@@ -180,6 +180,41 @@ Rank candidates against a plain-language query. No embeddings, no index to maint
180
180
  - Up to 250 candidates per call. Candidate texts are truncated at 2,000 characters.
181
181
  - Pattern from the [semantic-find cookbook](https://docs.typesafe.ai/cookbooks/semantic_find).
182
182
 
183
+ ### jev_classify
184
+
185
+ Assign each item to one class from a shared catalog, in one batched request: the catalog is sent once and every item becomes an independent Choice question. Designed for labeling many documents, messages, or records against a stable label set.
186
+
187
+ ```jsonc
188
+ // arguments
189
+ {
190
+ "purpose": "Route support messages",
191
+ "items": [
192
+ { "id": "m1", "text": "I was charged twice for my subscription this month." },
193
+ { "id": "m3", "text": "Do you have a student discount?" }
194
+ ],
195
+ "classes": [
196
+ { "id": "billing", "description": "Payments, invoices, refunds, subscription charges" },
197
+ { "id": "sales", "description": "Pricing questions, discounts, upgrade inquiries" }
198
+ ]
199
+ }
200
+ ```
201
+
202
+ ```jsonc
203
+ // live result, abridged: 4 items classified in one call for 669 input tokens
204
+ {
205
+ "summary": { "items": 4, "auto": 4, "review": 0, "by_class": { "billing": 1, "technical": 2, "sales": 1 } },
206
+ "results": [
207
+ { "id": "m1", "classification": "billing", "margin": 1.0, "confidence": 1, "decision": "auto" }
208
+ ]
209
+ }
210
+ ```
211
+
212
+ - Auto-acceptance requires both a top probability at or above `auto_accept` (default `0.85`) and a winner-to-runner-up `margin` at or above `minimum_margin` (default `0.5`); conservative by design, based on classification spike testing where choice wording swayed uncertain cases.
213
+ - Include a `manual_review` class in your catalog if you want an explicit escape hatch; the tool never invents one.
214
+ - Class descriptions carry the decision. Strong ones state a precise definition, what belongs, what does not, precedence over overlapping classes, and a short example.
215
+ - Up to 250 classes and 64 items per call, with an 8,000 item-class budget per batch (split larger waves into multiple calls); item text is truncated at 2,000 characters.
216
+ - A malformed or incomplete model response is reported as `status: invalid_response` on that item, never as model uncertainty.
217
+
183
218
  ## How the answers work
184
219
 
185
220
  Jev is TypeSafe's System One model: it returns typed answers with calibrated probability distributions, not generated text. A verify call is a Choice over supports / contradicts / says_nothing, so you see the whole distribution, not one label. A screen call is a set of yes/no probabilities. A find call is a Choice over your candidate ids plus an existence check. Code maps the answers to verdicts and actions; policy stays with you.
@@ -196,10 +231,20 @@ Jev is TypeSafe's System One model: it returns typed answers with calibrated pro
196
231
  | --- | --- | --- |
197
232
  | `TYPESAFE_API_KEY` | none | TypeSafe direct. Default provider when set. |
198
233
  | `OPENROUTER_API_KEY` | none | OpenRouter `sk-or-` key; used when `TYPESAFE_API_KEY` is absent. |
199
- | `JEV_PROVIDER` | `auto` | Force `typesafe` or `openrouter` instead of auto-detection. |
234
+ | `CLOUDFLARE_API_TOKEN` + `CLOUDFLARE_ACCOUNT_ID` | none | Cloudflare Workers AI; used when no other provider key is present. `JEV_CLOUDFLARE_API_TOKEN` is honored first for separate credentials. |
235
+ | `AI_GATEWAY_API_KEY` | none | Vercel AI Gateway; used when no other provider key is present. |
236
+ | `JEV_PROVIDER` | `auto` | Force `typesafe`, `openrouter`, `cloudflare`, or `vercel` instead of auto-detection. |
200
237
  | `JEV_MCP_MODEL` | `jev-latest` | Pin a Jev version, e.g. `jev-1.12`, or `typesafe/jev-1.13` on OpenRouter. |
201
238
  | `TYPESAFE_BASE_URL` | none | Custom direct endpoint (origin only; the SDK appends its route). |
202
239
 
240
+ ### Vercel
241
+
242
+ With `AI_GATEWAY_API_KEY` set, judgments run through the Vercel AI Gateway at `typesafe-ai/jev`, using the AI SDK's evaluate API. Answers are adapted back to this package's shapes, including TypeSafe's confidence statistic. Gateway calls appear in Vercel logs and budgets.
243
+
244
+ ### Cloudflare
245
+
246
+ With `CLOUDFLARE_API_TOKEN` and `CLOUDFLARE_ACCOUNT_ID` set (and no other provider key), judgments run through Cloudflare Workers AI at `typesafe/jev`, the single always-current alias. Usage tokens come back on every call. Cloudflare serves one alias rather than pinned versions, and pricing is listed in the Cloudflare dashboard. Direct TypeSafe remains the recommended default when you have several keys.
247
+
203
248
  ### OpenRouter
204
249
 
205
250
  If you already have an OpenRouter key, that is all you need: with no `TYPESAFE_API_KEY` present, every call goes through OpenRouter's Decisions API at identical pricing. The endpoint is alpha and adds a hop, and OpenRouter serves pinned versions rather than a `latest` alias, so the default `jev-latest` maps to `typesafe/jev-1.13` there. Direct TypeSafe remains the recommended default when you have both keys.
@@ -208,6 +253,10 @@ If you already have an OpenRouter key, that is all you need: with no `TYPESAFE_A
208
253
 
209
254
  Need those judgments to drive a real browser? [Jev Browser](https://github.com/jkudish/jev-browser) gives an agent a task and a URL and lets Jev pick the actions: click, type, select, stop. It uses the same judgment style this server exposes. The npm package is [@jkudish/jev-browser](https://www.npmjs.com/package/@jkudish/jev-browser).
210
255
 
256
+ ## Sponsoring
257
+
258
+ If you find Jev MCP useful, consider becoming a [sponsor](https://github.com/sponsors/jkudish) or [donating](https://stripe.com/@jkudish).
259
+
211
260
  ## Development
212
261
 
213
262
  ```bash
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
11
11
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
12
12
  import { choice, noul } from "@typesafe-ai/sdk";
13
13
  import { z } from "zod";
14
- import { ensureUniqueIds, existsVerdict, MAX_CANDIDATES, MAX_CANDIDATE_CHARS, rankCandidates, RELATION_TO_VERDICT, screenRecommendation, truncate, verifyAction, } from "./lib.js";
14
+ import { classificationDecision, ensureUniqueIds, existsVerdict, MAX_CLASSES, MAX_ITEM_CHARS, MAX_ITEMS, MAX_CANDIDATES, MAX_CANDIDATE_CHARS, rankCandidates, RELATION_TO_VERDICT, screenRecommendation, truncate, verifyAction, } from "./lib.js";
15
15
  const MODEL = process.env.JEV_MCP_MODEL ?? "jev-latest";
16
16
  const server = new McpServer({ name: "jev-mcp", version: "0.1.0" });
17
17
  import { askJev as askProvider } from "./provider.js";
@@ -219,6 +219,142 @@ server.registerTool("jev_find", {
219
219
  });
220
220
  });
221
221
  // ─────────────────────────────────────────────────────────────────────────────
222
+ // jev_classify
223
+ // ─────────────────────────────────────────────────────────────────────────────
224
+ server.registerTool("jev_classify", {
225
+ title: "Classify items against a shared label set",
226
+ description: "Assign each item to one class from a shared catalog with TypeSafe Jev, in one batched request: " +
227
+ "the class catalog is sent once and every item becomes an independent Choice question. " +
228
+ "Returns per item: the chosen class, the full distribution, confidence, winner-to-runner-up margin, " +
229
+ "and an auto-versus-review decision. Auto requires both a high top probability (default 0.85) and a " +
230
+ "clear margin (default 0.50); everything else is flagged for review. Include a manual_review class " +
231
+ "in the catalog if you want an explicit escape hatch; the tool never invents one.",
232
+ inputSchema: {
233
+ items: z
234
+ .array(z.object({ id: z.string().optional(), text: z.string() }))
235
+ .min(1)
236
+ .max(MAX_ITEMS)
237
+ .describe(`Items to classify. Text is truncated at ${MAX_ITEM_CHARS} characters; send bounded excerpts, not whole documents.`),
238
+ classes: z
239
+ .array(z.object({ id: z.string().optional(), description: z.string() }))
240
+ .min(2)
241
+ .max(MAX_CLASSES)
242
+ .describe("Shared class catalog. Strong descriptions carry the decision: a precise definition, " +
243
+ "what belongs, what does not, precedence over overlapping classes, and a short example."),
244
+ purpose: z.string().optional().describe("What this classification is for; shared across all items."),
245
+ context: z
246
+ .union([z.string(), z.record(z.any())])
247
+ .optional()
248
+ .describe("Shared context available to every item's judgment: policies, catalogs, anything stable."),
249
+ auto_accept: z.number().min(0).max(1).optional().describe("Minimum top probability for auto. Default 0.85."),
250
+ minimum_margin: z.number().min(0).max(1).optional().describe("Minimum winner-to-runner-up gap for auto. Default 0.5."),
251
+ },
252
+ }, async ({ items: rawItems, classes: rawClasses, purpose, context, auto_accept, minimum_margin }) => {
253
+ const autoAccept = auto_accept ?? 0.85;
254
+ const minMargin = minimum_margin ?? 0.5;
255
+ // Preserve caller IDs exactly; use opaque internal keys (i0/c0) for the
256
+ // wire so sanitization can never rename or collide externally, and
257
+ // reject duplicate supplied IDs rather than silently suffixing them.
258
+ const seenItemIds = new Set();
259
+ const items = rawItems.map((it, i) => {
260
+ const external = it.id ?? `item${i}`;
261
+ if (it.id != null) {
262
+ if (seenItemIds.has(it.id))
263
+ throw new Error(`Duplicate item id: ${it.id}`);
264
+ seenItemIds.add(it.id);
265
+ }
266
+ return { external, key: `i${i}`, text: truncate(it.text, MAX_ITEM_CHARS) };
267
+ });
268
+ const seenClassIds = new Set();
269
+ const classes = rawClasses.map((c, i) => {
270
+ const external = c.id ?? `class${i}`;
271
+ if (c.id != null) {
272
+ if (seenClassIds.has(c.id))
273
+ throw new Error(`Duplicate class id: ${c.id}`);
274
+ seenClassIds.add(c.id);
275
+ }
276
+ return { external, key: `c${i}`, description: truncate(c.description, MAX_ITEM_CHARS) };
277
+ });
278
+ if (items.length * classes.length > 8_000) {
279
+ throw new Error(`Batch too large: ${items.length} items x ${classes.length} classes exceeds the 8,000 item-class budget. Split the batch.`);
280
+ }
281
+ // The catalog lives once in shared state; each question carries only its
282
+ // own item text in its instructions, and criteria are bare keys. Request
283
+ // size scales with items + catalog, not items x catalog.
284
+ const state = {
285
+ purpose: purpose ?? "Assign each item to exactly one class.",
286
+ context: context ?? null,
287
+ classes: classes.map((c) => ({ id: c.key, description: c.description })),
288
+ };
289
+ const criteria = Object.create(null);
290
+ for (const c of classes)
291
+ criteria[c.key] = null;
292
+ const questions = {};
293
+ for (const item of items) {
294
+ questions[item.key] = choice({ task: "Which class does this item belong to?", item: { id: item.key, text: item.text } }, criteria);
295
+ }
296
+ const { answers, usage, provider, model } = await askJev(state, questions);
297
+ const keyToExternal = new Map(classes.map((c) => [c.key, c.external]));
298
+ const results = items.map((item) => {
299
+ const answer = answers[item.key];
300
+ const expected = new Set(classes.map((c) => c.key));
301
+ const probabilities = answer?.probabilities ?? {};
302
+ const keys = Object.keys(probabilities);
303
+ const values = Object.values(probabilities);
304
+ const sum = values.reduce((a, b) => a + b, 0);
305
+ const valid = answer &&
306
+ typeof answer.choice === "string" &&
307
+ expected.has(answer.choice) &&
308
+ keys.length >= expected.size &&
309
+ keys.every((k) => expected.has(k)) &&
310
+ values.every((p) => Number.isFinite(p) && p >= 0 && p <= 1) &&
311
+ Math.abs(sum - 1) <= 0.01;
312
+ if (!valid) {
313
+ return {
314
+ id: item.external,
315
+ status: "invalid_response",
316
+ classification: null,
317
+ probabilities: null,
318
+ confidence: null,
319
+ margin: null,
320
+ decision: "review",
321
+ };
322
+ }
323
+ const ranked = values.slice().sort((a, b) => b - a);
324
+ const margin = ranked.length >= 2 ? ranked[0] - ranked[1] : 0;
325
+ const topProbability = probabilities[answer.choice];
326
+ return {
327
+ id: item.external,
328
+ classification: keyToExternal.get(answer.choice) ?? answer.choice,
329
+ probabilities: Object.fromEntries(classes.map((c) => [c.external, probabilities[c.key] ?? 0])),
330
+ confidence: answer.confidence ?? null,
331
+ margin,
332
+ top_probability: topProbability,
333
+ decision: classificationDecision(topProbability, margin, autoAccept, minMargin),
334
+ };
335
+ });
336
+ const byClass = {};
337
+ for (const r of results) {
338
+ if (r.classification !== null)
339
+ byClass[r.classification] = (byClass[r.classification] ?? 0) + 1;
340
+ }
341
+ return text({
342
+ tool: "jev_classify",
343
+ model: model,
344
+ provider,
345
+ summary: {
346
+ items: results.length,
347
+ auto: results.filter((r) => r.decision === "auto").length,
348
+ review: results.filter((r) => r.decision === "review" && r.status !== "invalid_response").length,
349
+ invalid_response: results.filter((r) => r.status === "invalid_response").length,
350
+ by_class: byClass,
351
+ },
352
+ thresholds: { auto_accept: autoAccept, minimum_margin: minMargin },
353
+ results,
354
+ usage,
355
+ });
356
+ });
357
+ // ─────────────────────────────────────────────────────────────────────────────
222
358
  // Boot
223
359
  // ─────────────────────────────────────────────────────────────────────────────
224
360
  await server.connect(new StdioServerTransport());
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/lib.d.ts CHANGED
@@ -48,3 +48,16 @@ export declare function rankCandidates<T extends {
48
48
  }>(candidates: T[], probabilities: Record<string, number>): Array<T & {
49
49
  probability: number;
50
50
  }>;
51
+ /** Max classes per jev_classify call, bounded by the Choice option limit. */
52
+ export declare const MAX_CLASSES = 250;
53
+ /** Max items per jev_classify call; each becomes one Choice question in one request. */
54
+ export declare const MAX_ITEMS = 64;
55
+ /** Item text cap; classification works on bounded excerpts, not whole documents. */
56
+ export declare const MAX_ITEM_CHARS = 2000;
57
+ /** Winner-to-runner-up gap; a lone probability has no runner-up, so its margin is 0. */
58
+ export declare function marginOf(probabilities: Record<string, number> | undefined | null): number;
59
+ /**
60
+ * Auto-accept requires BOTH a high top probability and a clear margin, per the
61
+ * conservative thresholds recommended after classification spike testing.
62
+ */
63
+ export declare function classificationDecision(topProbability: number, margin: number, autoAccept: number, minimumMargin: number): "auto" | "review";
package/dist/lib.js CHANGED
@@ -77,4 +77,24 @@ export function rankCandidates(candidates, probabilities) {
77
77
  .sort((a, b) => b.candidate.probability - a.candidate.probability || a.index - b.index)
78
78
  .map(({ candidate }) => candidate);
79
79
  }
80
+ /** Max classes per jev_classify call, bounded by the Choice option limit. */
81
+ export const MAX_CLASSES = 250;
82
+ /** Max items per jev_classify call; each becomes one Choice question in one request. */
83
+ export const MAX_ITEMS = 64;
84
+ /** Item text cap; classification works on bounded excerpts, not whole documents. */
85
+ export const MAX_ITEM_CHARS = 2000;
86
+ /** Winner-to-runner-up gap; a lone probability has no runner-up, so its margin is 0. */
87
+ export function marginOf(probabilities) {
88
+ const ranked = Object.values(probabilities ?? {}).sort((a, b) => b - a);
89
+ if (ranked.length < 2)
90
+ return 0;
91
+ return ranked[0] - ranked[1];
92
+ }
93
+ /**
94
+ * Auto-accept requires BOTH a high top probability and a clear margin, per the
95
+ * conservative thresholds recommended after classification spike testing.
96
+ */
97
+ export function classificationDecision(topProbability, margin, autoAccept, minimumMargin) {
98
+ return topProbability >= autoAccept && margin >= minimumMargin ? "auto" : "review";
99
+ }
80
100
  //# sourceMappingURL=lib.js.map
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type JevProvider = "typesafe" | "openrouter";
1
+ export type JevProvider = "typesafe" | "openrouter" | "cloudflare" | "vercel";
2
2
  export interface AskResult {
3
3
  answers: Record<string, any>;
4
4
  usage: {
package/dist/provider.js CHANGED
@@ -1,7 +1,8 @@
1
- // Jev transport: TypeSafe direct (default) or OpenRouter's Decisions API.
2
- // Both speak the same {state, questions} / answers contract; only the URL,
3
- // auth, and model slug differ. OpenRouter is an alpha endpoint and adds a
4
- // hop, so direct TypeSafe remains the recommended default.
1
+ // Jev transport: TypeSafe direct (default), OpenRouter Decisions, or
2
+ // Cloudflare Workers AI. All speak the {state, questions} / answers contract;
3
+ // URL, auth, and model slugs differ. Proxies add hops, so direct TypeSafe
4
+ // remains the recommended default.
5
+ import { experimental_evaluate } from "ai";
5
6
  import { TypeSafeClient } from "@typesafe-ai/sdk";
6
7
  const X_TITLE = "jev-mcp";
7
8
  const REFERER = "https://github.com/jkudish/jev-mcp";
@@ -10,6 +11,8 @@ function resolve(env) {
10
11
  const explicit = (env.JEV_PROVIDER ?? "auto").toLowerCase();
11
12
  const hasTypesafe = Boolean(env.TYPESAFE_API_KEY);
12
13
  const hasOpenRouter = /^sk-or-/.test(env.OPENROUTER_API_KEY ?? "");
14
+ const cfToken = env.JEV_CLOUDFLARE_API_TOKEN || env.CLOUDFLARE_API_TOKEN;
15
+ const hasCloudflare = Boolean(cfToken && env.CLOUDFLARE_ACCOUNT_ID);
13
16
  if (explicit === "typesafe") {
14
17
  if (!hasTypesafe)
15
18
  throw new Error("JEV_PROVIDER=typesafe but TYPESAFE_API_KEY is not set.");
@@ -20,11 +23,25 @@ function resolve(env) {
20
23
  throw new Error("JEV_PROVIDER=openrouter but OPENROUTER_API_KEY is not set or not an sk-or- key.");
21
24
  return "openrouter";
22
25
  }
26
+ if (explicit === "vercel") {
27
+ if (!env.AI_GATEWAY_API_KEY)
28
+ throw new Error("JEV_PROVIDER=vercel but AI_GATEWAY_API_KEY is not set.");
29
+ return "vercel";
30
+ }
31
+ if (explicit === "cloudflare") {
32
+ if (!hasCloudflare)
33
+ throw new Error("JEV_PROVIDER=cloudflare but a Cloudflare API token (CLOUDFLARE_API_TOKEN or JEV_CLOUDFLARE_API_TOKEN) and CLOUDFLARE_ACCOUNT_ID are not both set.");
34
+ return "cloudflare";
35
+ }
23
36
  if (hasTypesafe)
24
37
  return "typesafe";
25
38
  if (hasOpenRouter)
26
39
  return "openrouter";
27
- throw new Error("No TYPESAFE_API_KEY or OPENROUTER_API_KEY (sk-or-) found. Set one, or JEV_PROVIDER to choose explicitly.");
40
+ if (hasCloudflare)
41
+ return "cloudflare";
42
+ if (env.AI_GATEWAY_API_KEY)
43
+ return "vercel";
44
+ throw new Error("No TYPESAFE_API_KEY, OPENROUTER_API_KEY (sk-or-), or Cloudflare token + CLOUDFLARE_ACCOUNT_ID found. Set one, or JEV_PROVIDER to choose explicitly.");
28
45
  }
29
46
  export async function askJev(state, questions, model, signal) {
30
47
  const provider = resolve(process.env);
@@ -38,34 +55,106 @@ export async function askJev(state, questions, model, signal) {
38
55
  model,
39
56
  };
40
57
  }
41
- // OpenRouter has no redirecting "latest" slug; map it to the current release.
42
- // Pin exact versions with the model env var when that matters.
43
- const OPENROUTER_LATEST = "jev-1.13";
44
- const effective = model === "jev-latest" ? OPENROUTER_LATEST : model;
45
- const slug = effective.startsWith("typesafe/") ? effective : `typesafe/${effective}`;
46
- const response = await fetch("https://openrouter.ai/api/alpha/decisions", {
58
+ if (provider === "openrouter") {
59
+ // OpenRouter has no redirecting "latest" slug; map it to the current
60
+ // release. Pin exact versions with the model env var when that matters.
61
+ const OPENROUTER_LATEST = "jev-1.13";
62
+ const effective = model === "jev-latest" ? OPENROUTER_LATEST : model;
63
+ const slug = effective.startsWith("typesafe/") ? effective : `typesafe/${effective}`;
64
+ const response = await fetch("https://openrouter.ai/api/alpha/decisions", {
65
+ method: "POST",
66
+ headers: {
67
+ Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`,
68
+ "Content-Type": "application/json",
69
+ "HTTP-Referer": REFERER,
70
+ "X-Title": X_TITLE,
71
+ "X-OpenRouter-Title": X_TITLE,
72
+ },
73
+ body: JSON.stringify({ model: slug, state, questions }),
74
+ signal,
75
+ });
76
+ if (!response.ok) {
77
+ const body = await response.text().catch(() => "");
78
+ throw new Error(`OpenRouter decisions API ${response.status}: ${body.slice(0, 200)}`);
79
+ }
80
+ const body = await response.json();
81
+ return {
82
+ answers: body.answers ?? {},
83
+ // The decisions endpoint does not document a usage block; tolerate absence.
84
+ usage: { input_tokens: body.usage?.input_tokens ?? 0, output_tokens: body.usage?.output_tokens ?? 0 },
85
+ provider,
86
+ model: slug,
87
+ };
88
+ }
89
+ if (provider === "vercel") {
90
+ // Vercel AI Gateway exposes Jev through the AI SDK's experimental evaluate
91
+ // API: "noul" questions become "boolean", answers return as probabilities,
92
+ // and Choice/Score confidence lives in providerMetadata.typesafe.
93
+ const vercelQuestions = {};
94
+ for (const [id, question] of Object.entries(questions)) {
95
+ const q = question;
96
+ vercelQuestions[id] = {
97
+ type: q.type === "noul" ? "boolean" : q.type,
98
+ instructions: q.instructions,
99
+ criteria: q.criteria,
100
+ };
101
+ }
102
+ const result = await experimental_evaluate({
103
+ model: model.startsWith("typesafe-ai/") ? model : "typesafe-ai/jev",
104
+ state: state,
105
+ questions: vercelQuestions,
106
+ abortSignal: signal,
107
+ });
108
+ const confidence = (result.providerMetadata?.typesafe?.confidence ?? {});
109
+ const adapted = {};
110
+ for (const [id, answer] of Object.entries(result.answers)) {
111
+ if (answer?.type === "boolean") {
112
+ adapted[id] = { type: "noul", noul: answer.probability };
113
+ }
114
+ else if (answer?.type === "choice") {
115
+ adapted[id] = { type: "choice", choice: answer.choice, probabilities: answer.probabilities ?? {}, confidence: confidence[id] ?? null };
116
+ }
117
+ else if (answer?.type === "score") {
118
+ adapted[id] = { type: "score", score: answer.score, probabilities: answer.probabilities ?? {}, confidence: confidence[id] ?? null };
119
+ }
120
+ else {
121
+ adapted[id] = answer;
122
+ }
123
+ }
124
+ return {
125
+ answers: adapted,
126
+ usage: { input_tokens: result.usage?.inputTokens ?? 0, output_tokens: result.usage?.outputTokens ?? 0 },
127
+ provider,
128
+ model: "typesafe-ai/jev",
129
+ };
130
+ }
131
+ // Cloudflare Workers AI wraps the same contract in {model, input} and the
132
+ // v4 {result, success} envelope. Single alias; no version pinning.
133
+ const cfSlug = model.startsWith("typesafe/") ? model : `typesafe/${model === "jev-latest" ? "jev" : model}`;
134
+ const cfResponse = await fetch(`https://api.cloudflare.com/client/v4/accounts/${process.env.CLOUDFLARE_ACCOUNT_ID}/ai/run`, {
47
135
  method: "POST",
48
136
  headers: {
49
- Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`,
137
+ Authorization: `Bearer ${process.env.JEV_CLOUDFLARE_API_TOKEN || process.env.CLOUDFLARE_API_TOKEN}`,
50
138
  "Content-Type": "application/json",
51
- "HTTP-Referer": REFERER,
52
- "X-Title": X_TITLE,
53
- "X-OpenRouter-Title": X_TITLE,
54
139
  },
55
- body: JSON.stringify({ model: slug, state, questions }),
140
+ body: JSON.stringify({ model: cfSlug, input: { state, questions } }),
56
141
  signal,
57
142
  });
58
- if (!response.ok) {
59
- const body = await response.text().catch(() => "");
60
- throw new Error(`OpenRouter decisions API ${response.status}: ${body.slice(0, 200)}`);
143
+ const cfBody = await cfResponse.json().catch(() => ({}));
144
+ if (!cfResponse.ok || cfBody.success === false) {
145
+ throw new Error(`Cloudflare AI run ${cfResponse.status}: ${JSON.stringify(cfBody.errors ?? cfBody).slice(0, 200)}`);
146
+ }
147
+ // The v4 envelope double-nests: body.result.result holds the model output.
148
+ const cfOuter = cfBody.result;
149
+ if (cfOuter && typeof cfOuter.state === "string" && cfOuter.state !== "Completed") {
150
+ throw new Error(`Cloudflare AI run state ${cfOuter.state}: ${JSON.stringify(cfBody.errors ?? []).slice(0, 200)}`);
61
151
  }
62
- const body = await response.json();
152
+ const cfPayload = cfOuter?.result ?? cfOuter ?? cfBody;
63
153
  return {
64
- answers: body.answers ?? {},
65
- // The decisions endpoint does not document a usage block; tolerate absence.
66
- usage: { input_tokens: body.usage?.input_tokens ?? 0, output_tokens: body.usage?.output_tokens ?? 0 },
154
+ answers: cfPayload.answers ?? {},
155
+ usage: { input_tokens: cfPayload.usage?.input_tokens ?? 0, output_tokens: cfPayload.usage?.output_tokens ?? 0 },
67
156
  provider,
68
- model: slug,
157
+ model: cfPayload.model ?? cfSlug,
69
158
  };
70
159
  }
71
160
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jkudish/jev-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "MCP server exposing TypeSafe's Jev (System One) as purpose-built judgment tools: verify claims against evidence, screen content for injection, find semantically without embeddings.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -43,7 +43,8 @@
43
43
  "dependencies": {
44
44
  "@modelcontextprotocol/sdk": "^1.17.0",
45
45
  "@typesafe-ai/sdk": "^0.6.0",
46
- "zod": "^3.25.0"
46
+ "zod": "^3.25.0",
47
+ "ai": "^7.0.105"
47
48
  },
48
49
  "devDependencies": {
49
50
  "@types/node": "^22.0.0",