@jkudish/jev-mcp 0.1.0 → 0.3.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,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0
4
+
5
+ - 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.
6
+ - 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.
7
+ - Provider resolution order: TypeSafe direct, OpenRouter, Cloudflare, Vercel.
8
+ - Internal fix: transport branches are explicitly guarded per provider.
9
+
10
+ ## 0.2.0
11
+
12
+ - 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.
13
+ - Results now report the transport used (`provider`, resolved `model`).
14
+
3
15
  ## 0.1.0
4
16
 
5
17
  Initial release, published to npm as `@jkudish/jev-mcp` (the unscoped `jev-mcp` name belongs to another project).
package/README.md CHANGED
@@ -194,9 +194,33 @@ Jev is TypeSafe's System One model: it returns typed answers with calibrated pro
194
194
 
195
195
  | Env var | Default | Purpose |
196
196
  | --- | --- | --- |
197
- | `TYPESAFE_API_KEY` | none | Required. |
198
- | `JEV_MCP_MODEL` | `jev-latest` | Pin a Jev version, e.g. `jev-1.12`. |
199
- | `TYPESAFE_BASE_URL` | none | Custom API endpoint. |
197
+ | `TYPESAFE_API_KEY` | none | TypeSafe direct. Default provider when set. |
198
+ | `OPENROUTER_API_KEY` | none | OpenRouter `sk-or-` key; used when `TYPESAFE_API_KEY` is absent. |
199
+ | `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. |
200
+ | `AI_GATEWAY_API_KEY` | none | Vercel AI Gateway; used when no other provider key is present. |
201
+ | `JEV_PROVIDER` | `auto` | Force `typesafe`, `openrouter`, `cloudflare`, or `vercel` instead of auto-detection. |
202
+ | `JEV_MCP_MODEL` | `jev-latest` | Pin a Jev version, e.g. `jev-1.12`, or `typesafe/jev-1.13` on OpenRouter. |
203
+ | `TYPESAFE_BASE_URL` | none | Custom direct endpoint (origin only; the SDK appends its route). |
204
+
205
+ ### Vercel
206
+
207
+ 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.
208
+
209
+ ### Cloudflare
210
+
211
+ 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.
212
+
213
+ ### OpenRouter
214
+
215
+ 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.
216
+
217
+ ## Also in the family
218
+
219
+ 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).
220
+
221
+ ## Sponsoring
222
+
223
+ If you find Jev MCP useful, consider becoming a [sponsor](https://github.com/sponsors/jkudish) or [donating](https://stripe.com/@jkudish).
200
224
 
201
225
  ## Development
202
226
 
package/dist/index.js CHANGED
@@ -9,22 +9,14 @@
9
9
  // jev_find — semantic search over candidates, no embeddings required
10
10
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
11
11
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
12
- import { choice, noul, TypeSafeClient } from "@typesafe-ai/sdk";
12
+ import { choice, noul } from "@typesafe-ai/sdk";
13
13
  import { z } from "zod";
14
14
  import { ensureUniqueIds, existsVerdict, 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
- // The TypeSafe client reads TYPESAFE_API_KEY from the environment.
18
- const client = new TypeSafeClient(process.env.TYPESAFE_BASE_URL ? { baseURL: process.env.TYPESAFE_BASE_URL } : undefined);
17
+ import { askJev as askProvider } from "./provider.js";
19
18
  async function askJev(state, questions) {
20
- const response = await client.systemOne({ state, questions, model: MODEL });
21
- return {
22
- answers: response.answers,
23
- usage: {
24
- input_tokens: response.usage?.input_tokens ?? 0,
25
- output_tokens: response.usage?.output_tokens ?? 0,
26
- },
27
- };
19
+ return askProvider(state, questions, MODEL);
28
20
  }
29
21
  const text = (payload) => ({
30
22
  content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
@@ -100,7 +92,7 @@ server.registerTool("jev_verify", {
100
92
  claims: claimItems,
101
93
  evidence,
102
94
  };
103
- const { answers, usage } = await askJev(state, questions);
95
+ const { answers, usage, provider, model } = await askJev(state, questions);
104
96
  const results = claimItems.map((claim) => {
105
97
  const relation = answers[`relation_${claim.id}`];
106
98
  const source = answers[`source_${claim.id}`];
@@ -118,7 +110,8 @@ server.registerTool("jev_verify", {
118
110
  });
119
111
  return text({
120
112
  tool: "jev_verify",
121
- model: MODEL,
113
+ model: model,
114
+ provider,
122
115
  auto_accept: autoAccept,
123
116
  summary: {
124
117
  verified: results.filter((r) => r.verdict === "verified").length,
@@ -168,14 +161,15 @@ server.registerTool("jev_screen", {
168
161
  });
169
162
  }
170
163
  const state = { content, purpose: purpose ?? null };
171
- const { answers, usage } = await askJev(state, questions);
164
+ const { answers, usage, provider, model } = await askJev(state, questions);
172
165
  const injection = answers.injection?.noul ?? 0;
173
166
  const substance = answers.substance?.noul ?? undefined;
174
167
  const relevance = purpose ? (answers.relevance?.noul ?? undefined) : undefined;
175
168
  const recommendation = screenRecommendation({ injection, relevance, substance, blockAt, reviewAt });
176
169
  return text({
177
170
  tool: "jev_screen",
178
- model: MODEL,
171
+ model: model,
172
+ provider,
179
173
  probabilities: { injection, substance, relevance: relevance ?? null },
180
174
  thresholds: { block_at: blockAt, review_at: reviewAt },
181
175
  recommendation,
@@ -209,13 +203,14 @@ server.registerTool("jev_find", {
209
203
  }),
210
204
  };
211
205
  const state = { query, candidates };
212
- const { answers, usage } = await askJev(state, questions);
206
+ const { answers, usage, provider, model } = await askJev(state, questions);
213
207
  const probabilities = answers.best?.probabilities ?? {};
214
208
  const ranked = rankCandidates(candidates, probabilities).slice(0, topK);
215
209
  const exists = answers.exists?.noul ?? 0;
216
210
  return text({
217
211
  tool: "jev_find",
218
- model: MODEL,
212
+ model: model,
213
+ provider,
219
214
  query,
220
215
  exists,
221
216
  exists_verdict: existsVerdict(exists),
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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"}
@@ -0,0 +1,11 @@
1
+ export type JevProvider = "typesafe" | "openrouter" | "cloudflare" | "vercel";
2
+ export interface AskResult {
3
+ answers: Record<string, any>;
4
+ usage: {
5
+ input_tokens: number;
6
+ output_tokens: number;
7
+ };
8
+ provider: JevProvider;
9
+ model: string;
10
+ }
11
+ export declare function askJev(state: unknown, questions: Record<string, unknown>, model: string, signal?: AbortSignal): Promise<AskResult>;
@@ -0,0 +1,160 @@
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";
6
+ import { TypeSafeClient } from "@typesafe-ai/sdk";
7
+ const X_TITLE = "jev-mcp";
8
+ const REFERER = "https://github.com/jkudish/jev-mcp";
9
+ let typesafeClient = null;
10
+ function resolve(env) {
11
+ const explicit = (env.JEV_PROVIDER ?? "auto").toLowerCase();
12
+ const hasTypesafe = Boolean(env.TYPESAFE_API_KEY);
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);
16
+ if (explicit === "typesafe") {
17
+ if (!hasTypesafe)
18
+ throw new Error("JEV_PROVIDER=typesafe but TYPESAFE_API_KEY is not set.");
19
+ return "typesafe";
20
+ }
21
+ if (explicit === "openrouter") {
22
+ if (!hasOpenRouter)
23
+ throw new Error("JEV_PROVIDER=openrouter but OPENROUTER_API_KEY is not set or not an sk-or- key.");
24
+ return "openrouter";
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
+ }
36
+ if (hasTypesafe)
37
+ return "typesafe";
38
+ if (hasOpenRouter)
39
+ return "openrouter";
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.");
45
+ }
46
+ export async function askJev(state, questions, model, signal) {
47
+ const provider = resolve(process.env);
48
+ if (provider === "typesafe") {
49
+ typesafeClient ??= new TypeSafeClient(process.env.TYPESAFE_BASE_URL ? { baseURL: process.env.TYPESAFE_BASE_URL } : undefined);
50
+ const response = await typesafeClient.systemOne({ state, questions, model }, { signal });
51
+ return {
52
+ answers: response.answers,
53
+ usage: { input_tokens: response.usage?.input_tokens ?? 0, output_tokens: response.usage?.output_tokens ?? 0 },
54
+ provider,
55
+ model,
56
+ };
57
+ }
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`, {
135
+ method: "POST",
136
+ headers: {
137
+ Authorization: `Bearer ${process.env.JEV_CLOUDFLARE_API_TOKEN || process.env.CLOUDFLARE_API_TOKEN}`,
138
+ "Content-Type": "application/json",
139
+ },
140
+ body: JSON.stringify({ model: cfSlug, input: { state, questions } }),
141
+ signal,
142
+ });
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)}`);
151
+ }
152
+ const cfPayload = cfOuter?.result ?? cfOuter ?? cfBody;
153
+ return {
154
+ answers: cfPayload.answers ?? {},
155
+ usage: { input_tokens: cfPayload.usage?.input_tokens ?? 0, output_tokens: cfPayload.usage?.output_tokens ?? 0 },
156
+ provider,
157
+ model: cfPayload.model ?? cfSlug,
158
+ };
159
+ }
160
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,8EAA8E;AAC9E,0EAA0E;AAC1E,mCAAmC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlD,MAAM,OAAO,GAAG,SAAS,CAAC;AAC1B,MAAM,OAAO,GAAG,oCAAoC,CAAC;AAErD,IAAI,cAAc,GAA0B,IAAI,CAAC;AAEjD,SAAS,OAAO,CAAC,GAAsB;IACrC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,oBAAoB,CAAC;IACzE,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEpE,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5F,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACvH,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,kBAAkB;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACvG,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,mJAAmJ,CAAC,CAAC;QACzL,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,WAAW;QAAE,OAAO,UAAU,CAAC;IACnC,IAAI,aAAa;QAAE,OAAO,YAAY,CAAC;IACvC,IAAI,aAAa;QAAE,OAAO,YAAY,CAAC;IACvC,IAAI,GAAG,CAAC,kBAAkB;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,IAAI,KAAK,CACb,qJAAqJ,CACtJ,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAc,EACd,SAAkC,EAClC,KAAa,EACb,MAAoB;IAEpB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,cAAc,KAAK,IAAI,cAAc,CACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CACvF,CAAC;QACF,MAAM,QAAQ,GAAG,MACf,cAAc,CAAC,SAIhB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,KAAK,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,EAAE;YAC7G,QAAQ;YACR,KAAK;SACN,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,iBAAiB,GAAG,UAAU,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;QACrE,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,SAAS,EAAE,CAAC;QACrF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,2CAA2C,EAAE;YACxE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;gBACzD,cAAc,EAAE,kBAAkB;gBAClC,cAAc,EAAE,OAAO;gBACvB,SAAS,EAAE,OAAO;gBAClB,oBAAoB,EAAE,OAAO;aAC9B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACvD,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,4EAA4E;YAC5E,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,EAAE;YACrG,QAAQ;YACR,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC5B,2EAA2E;QAC3E,2EAA2E;QAC3E,kEAAkE;QAClE,MAAM,eAAe,GAAwB,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,QAAwE,CAAC;YACnF,eAAe,CAAC,EAAE,CAAC,GAAG;gBACpB,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC5C,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;YACzC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB;YACnE,KAAK,EAAE,KAAY;YACnB,SAAS,EAAE,eAAsB;YACjC,WAAW,EAAE,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,CAAE,MAAc,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAU,IAAI,EAAE,CAA2B,CAAC;QAC5G,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAA8B,CAAC,EAAE,CAAC;YACjF,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3D,CAAC;iBAAM,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YACzI,CAAC;iBAAM,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;gBACpC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YACtI,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,EAAE;YACvG,QAAQ;YACR,KAAK,EAAE,iBAAiB;SACzB,CAAC;IACJ,CAAC;IAEC,0EAA0E;IAC1E,mEAAmE;IACnE,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5G,MAAM,UAAU,GAAG,MAAM,KAAK,CAC5B,iDAAiD,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,EAC3F;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE;YACnG,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;QACpE,MAAM;KACP,CACF,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACtH,CAAC;IACD,2EAA2E;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAClF,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;IACvD,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,EAAE;QAChC,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,EAAE;QAC/G,QAAQ;QACR,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,MAAM;KACjC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jkudish/jev-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.3.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",