proofread-mcp 0.1.2 → 0.1.3
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/dist/client.d.ts +1 -1
- package/dist/client.js +1 -1
- package/dist/resolve_format.js +55 -11
- package/dist/resolve_format.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +1 -1
- package/dist/types.d.ts +3 -0
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Config } from "./config.js";
|
|
2
2
|
import type { CheckoutLink, Coverage, Report, ResolveBatch, ResolveResult, Row, SignupResult } from "./types.js";
|
|
3
|
-
export declare const USER_AGENT = "proofread-mcp/0.1.
|
|
3
|
+
export declare const USER_AGENT = "proofread-mcp/0.1.3 (+https://github.com/Data-Alchemy-Labs/proofread-mcp)";
|
|
4
4
|
export declare const MAX_UPLOAD_BYTES: number;
|
|
5
5
|
export declare const MAX_BATCH_CITES = 500;
|
|
6
6
|
export type FetchLike = (input: string | URL, init?: RequestInit) => Promise<Response>;
|
package/dist/client.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ProofreadError } from "./errors.js";
|
|
2
2
|
import { readSseReport } from "./sse.js";
|
|
3
|
-
export const USER_AGENT = "proofread-mcp/0.1.
|
|
3
|
+
export const USER_AGENT = "proofread-mcp/0.1.3 (+https://github.com/Data-Alchemy-Labs/proofread-mcp)";
|
|
4
4
|
export const MAX_UPLOAD_BYTES = 10 * 1024 * 1024;
|
|
5
5
|
export const MAX_BATCH_CITES = 500;
|
|
6
6
|
/** A default check answers in seconds; a deep check runs 1 to 2 s per citation, four in parallel, up to 15 minutes server-side. */
|
package/dist/resolve_format.js
CHANGED
|
@@ -40,14 +40,14 @@ export function formatResolveLine(r) {
|
|
|
40
40
|
case "ambiguous":
|
|
41
41
|
return `- AMBIGUOUS: ${cite} ${matches(r)}; best: ${r.case ? caseLine(r.case) : "none"}`;
|
|
42
42
|
case "not_found":
|
|
43
|
-
return `-
|
|
43
|
+
return `- ${label(r)}: ${cite}; ${why(r)}`;
|
|
44
44
|
case "known_cite":
|
|
45
45
|
return `- KNOWN CITATION: ${cite} is not held as an opinion, but other opinions cite it as ${knownAs(r)}`;
|
|
46
46
|
case "unresolvable":
|
|
47
47
|
return `- CANNOT VERIFY: ${cite} is a Westlaw/Lexis identifier; open registers cannot resolve it`;
|
|
48
48
|
case "beyond_register":
|
|
49
49
|
case "unverifiable":
|
|
50
|
-
return `-
|
|
50
|
+
return `- ${label(r)}: ${cite}; ${why(r)}`;
|
|
51
51
|
case "unparsed":
|
|
52
52
|
return `- NO CITATION RECOGNISED: ${JSON.stringify(r.cite)}`;
|
|
53
53
|
default:
|
|
@@ -82,15 +82,14 @@ function headline(r) {
|
|
|
82
82
|
case "ambiguous":
|
|
83
83
|
return `AMBIGUOUS: ${cite} ${matches(r)}; the best match is ${c ? caseLine(c) : "unclear"}. Candidates:`;
|
|
84
84
|
case "not_found":
|
|
85
|
-
return
|
|
86
|
-
"A missing entry is a register fact with a coverage qualifier (below), not proof that the case does not exist; check the citation in another source.";
|
|
85
|
+
return `${label(r)}: ${cite}. ${why(r)}`;
|
|
87
86
|
case "known_cite":
|
|
88
87
|
return `KNOWN CITATION: ${cite} is not held as an opinion, but other opinions cite it as ${knownAs(r)}. The register cannot show the opinion itself; check it in another source.`;
|
|
89
88
|
case "unresolvable":
|
|
90
89
|
return `CANNOT VERIFY: ${cite} is a Westlaw/Lexis identifier. Open registers cannot resolve it; check it in Westlaw or Lexis.`;
|
|
91
90
|
case "beyond_register":
|
|
92
91
|
case "unverifiable":
|
|
93
|
-
return
|
|
92
|
+
return `${label(r)}: ${cite}. ${why(r)}`;
|
|
94
93
|
case "unparsed":
|
|
95
94
|
return `NO CITATION RECOGNISED in ${JSON.stringify(r.cite)}. Reporter citations look like '590 U.S. 644' (volume, reporter, page).`;
|
|
96
95
|
default:
|
|
@@ -130,14 +129,55 @@ function volumeHeld(cov) {
|
|
|
130
129
|
return `no part of ${cov.reporter} volume ${cov.volume} is held`;
|
|
131
130
|
return `${cov.reporter} volume ${cov.volume} is held${n}`;
|
|
132
131
|
}
|
|
133
|
-
|
|
132
|
+
/** The API's reason for an unverifiable / beyond_register / not_found answer, as a short label after the status word. */
|
|
133
|
+
const REASON_LABEL = {
|
|
134
|
+
recent: "recent, unverified",
|
|
135
|
+
volume_thin: "held only in part",
|
|
136
|
+
volume_newer_than_register: "newer than the register",
|
|
137
|
+
reporter_absent: "reporter not held",
|
|
138
|
+
page_absent: "not in the register",
|
|
139
|
+
};
|
|
140
|
+
function label(r) {
|
|
141
|
+
const word = STATUS_WORD[r.status] ?? String(r.status).toUpperCase();
|
|
142
|
+
const extra = r.reason ? REASON_LABEL[r.reason] ?? r.reason.replace(/_/g, " ") : undefined;
|
|
143
|
+
return extra && extra.toUpperCase() !== word ? `${word} (${extra})` : word;
|
|
144
|
+
}
|
|
145
|
+
const NOT_A_VERDICT = "This is a register fact with a coverage qualifier, not proof that the case does not exist; check the citation in another source.";
|
|
146
|
+
/** The API's `note` verbatim when it sends one; else a sentence from `reason`; else (older API) from the coverage block alone. */
|
|
147
|
+
function why(r) {
|
|
148
|
+
if (r.note)
|
|
149
|
+
return sentence(r.note);
|
|
150
|
+
const cov = r.coverage;
|
|
151
|
+
const vol = cov?.reporter && cov.volume ? `${cov.reporter} volume ${cov.volume}` : "this volume";
|
|
152
|
+
const n = cov?.volume_n !== undefined ? ` (${cov.volume_n} case${cov.volume_n === 1 ? "" : "s"})` : "";
|
|
153
|
+
switch (r.reason) {
|
|
154
|
+
case "recent":
|
|
155
|
+
return "The citation is recent; the register may hold the case without this citation attached. Resolve with the case name and court, or check at the source.";
|
|
156
|
+
case "volume_thin":
|
|
157
|
+
return `${vol} is held only in part${n}, so a missing page is a weak claim. ${NOT_A_VERDICT}`;
|
|
158
|
+
case "volume_newer_than_register":
|
|
159
|
+
return `${vol} is newer than the register${cov?.max_volume !== undefined ? `, which runs to volume ${cov.max_volume}` : ""}. ${NOT_A_VERDICT}`;
|
|
160
|
+
case "reporter_absent":
|
|
161
|
+
return `The register does not hold ${cov?.reporter ? `the ${cov.reporter} reporter` : "this reporter"}. ${NOT_A_VERDICT}`;
|
|
162
|
+
case "page_absent":
|
|
163
|
+
return `${vol} is held${n} but has no case at this page. ${NOT_A_VERDICT}`;
|
|
164
|
+
default:
|
|
165
|
+
return `${legacyWhy(r)} ${NOT_A_VERDICT}`;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/** Older API answers (no reason, no note): say only what the coverage block supports. */
|
|
169
|
+
function legacyWhy(r) {
|
|
170
|
+
const cov = r.coverage;
|
|
134
171
|
if (!cov?.reporter)
|
|
135
|
-
return "this reporter is not
|
|
172
|
+
return "The register cannot see this citation: the reporter is not held.";
|
|
173
|
+
const vol = `${cov.reporter} volume ${cov.volume ?? "?"}`;
|
|
136
174
|
if (cov.beyond_max && cov.max_volume !== undefined)
|
|
137
|
-
return `${
|
|
138
|
-
if (cov.
|
|
139
|
-
return `
|
|
140
|
-
|
|
175
|
+
return `${vol} is newer than the register, which runs to volume ${cov.max_volume}.`;
|
|
176
|
+
if (cov.register_coverage === "volume_absent")
|
|
177
|
+
return `No part of ${vol} is held.`;
|
|
178
|
+
if (r.status === "not_found")
|
|
179
|
+
return `${vol} is held but has no case at this page.`;
|
|
180
|
+
return `${vol} is held, but this citation could not be attached to a case.`;
|
|
141
181
|
}
|
|
142
182
|
/** The coverage of the volume that was asked for, so a not_found inside a thin volume reads as the weak claim it is. */
|
|
143
183
|
function describeCoverage(cov) {
|
|
@@ -147,4 +187,8 @@ function describeCoverage(cov) {
|
|
|
147
187
|
const runs = cov.max_volume !== undefined ? `; the register runs to ${cov.reporter} volume ${cov.max_volume}` : "";
|
|
148
188
|
return held ? `Register coverage: ${held}${runs}.` : undefined;
|
|
149
189
|
}
|
|
190
|
+
function sentence(text) {
|
|
191
|
+
const t = text.trim();
|
|
192
|
+
return /[.!?]$/.test(t) ? t : `${t}.`;
|
|
193
|
+
}
|
|
150
194
|
//# sourceMappingURL=resolve_format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve_format.js","sourceRoot":"","sources":["../src/resolve_format.ts"],"names":[],"mappings":"AAEA,8IAA8I;AAC9I,MAAM,CAAC,MAAM,WAAW,GAAkC;IACxD,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,qBAAqB;IAChC,YAAY,EAAE,eAAe;IAC7B,eAAe,EAAE,eAAe;IAChC,UAAU,EAAE,gBAAgB;IAC5B,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,wBAAwB;CACnC,CAAC;AAEF,4HAA4H;AAC5H,MAAM,UAAU,aAAa,CAAC,CAAgB;IAC5C,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACjB,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,CAAC,CAAC,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC,kBAAkB;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,iBAAiB,CAAC,CAAgB;IAChD,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,YAAY,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,IAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,WAAW,CAAC,CAAC,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAChL,KAAK,WAAW;YACd,OAAO,gBAAgB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3F,KAAK,WAAW;YACd,OAAO,
|
|
1
|
+
{"version":3,"file":"resolve_format.js","sourceRoot":"","sources":["../src/resolve_format.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { type Client } from "./client.js";
|
|
3
3
|
import { type Config } from "./config.js";
|
|
4
4
|
export declare const SERVER_NAME = "proofread-mcp";
|
|
5
|
-
export declare const SERVER_VERSION = "0.1.
|
|
5
|
+
export declare const SERVER_VERSION = "0.1.3";
|
|
6
6
|
export declare const INSTRUCTIONS: string;
|
|
7
7
|
export interface ServerOptions {
|
|
8
8
|
config?: Config;
|
package/dist/server.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createClient } from "./client.js";
|
|
|
3
3
|
import { configFromEnv } from "./config.js";
|
|
4
4
|
import { tools } from "./tools/index.js";
|
|
5
5
|
export const SERVER_NAME = "proofread-mcp";
|
|
6
|
-
export const SERVER_VERSION = "0.1.
|
|
6
|
+
export const SERVER_VERSION = "0.1.3";
|
|
7
7
|
export const INSTRUCTIONS = "proofread.law checks US case citations against an open register of about 10 million court opinions. " +
|
|
8
8
|
"Tiers: red = check this (the register holds something concrete that disagrees), orange = cannot verify (nothing to check against; not evidence either way), " +
|
|
9
9
|
"green = found, white = deep check (does the opinion support the sentence; a review queue, not a verdict). " +
|
package/dist/types.d.ts
CHANGED
|
@@ -115,6 +115,9 @@ export interface ResolveResult {
|
|
|
115
115
|
candidates: ResolveCase[];
|
|
116
116
|
coverage: ResolveCoverage | null;
|
|
117
117
|
match?: "exact" | "pincite";
|
|
118
|
+
/** On unverifiable, beyond_register and not_found: why, and a ready sentence. Older API answers carry neither. */
|
|
119
|
+
reason?: "recent" | "volume_thin" | "reporter_absent" | "volume_newer_than_register" | "page_absent" | string;
|
|
120
|
+
note?: string;
|
|
118
121
|
known_as?: {
|
|
119
122
|
name: string;
|
|
120
123
|
year?: number;
|
package/package.json
CHANGED