@oomkapwn/enquire-mcp 2.10.0 → 2.12.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
package/dist/eval.d.ts ADDED
@@ -0,0 +1,117 @@
1
+ import type { FtsIndex } from "./fts5.js";
2
+ import type { Vault } from "./vault.js";
3
+ /** A single evaluation query — relevant doc paths are the ground truth. */
4
+ export interface EvalQuery {
5
+ /** Query text fed to obsidian_search. */
6
+ query: string;
7
+ /**
8
+ * Vault-relative paths considered relevant. Order doesn't matter — we
9
+ * only need the set membership. Paths are matched against
10
+ * `SearchHybridHit.path` exactly.
11
+ */
12
+ relevant: string[];
13
+ /** Optional human-readable id for logging / reports. */
14
+ id?: string;
15
+ }
16
+ /** Per-query scores. */
17
+ export interface EvalQueryScore {
18
+ id: string;
19
+ query: string;
20
+ /** Normalized Discounted Cumulative Gain @ K. */
21
+ ndcg_at_k: number;
22
+ /** Recall @ K — fraction of relevant docs in top-K. */
23
+ recall_at_k: number;
24
+ /** Mean Reciprocal Rank — 1/rank of first relevant; 0 if none in top-K. */
25
+ mrr: number;
26
+ /** Number of relevant docs found anywhere in the top-K. */
27
+ hits_relevant: number;
28
+ /** Total relevant docs in the ground truth. */
29
+ hits_total_relevant: number;
30
+ /** Latency for this query in milliseconds. */
31
+ latency_ms: number;
32
+ }
33
+ /** Aggregate evaluation result. */
34
+ export interface EvalResult {
35
+ /** Configuration label — useful for the matrix mode. */
36
+ label: string;
37
+ k: number;
38
+ query_count: number;
39
+ /** Per-query scores. */
40
+ per_query: EvalQueryScore[];
41
+ /** Mean NDCG@K across all queries. */
42
+ mean_ndcg: number;
43
+ /** Mean Recall@K across all queries. */
44
+ mean_recall: number;
45
+ /** Mean Reciprocal Rank across all queries. */
46
+ mean_mrr: number;
47
+ /** Mean latency in milliseconds. */
48
+ mean_latency_ms: number;
49
+ /** Total run wall time. */
50
+ total_wall_ms: number;
51
+ }
52
+ /**
53
+ * NDCG@K with binary relevance.
54
+ *
55
+ * DCG@K = sum_{i=1..K} rel_i / log2(i + 1)
56
+ * IdealDCG@K = sum_{i=1..min(K, |relevant|)} 1 / log2(i + 1)
57
+ * NDCG@K = DCG@K / IdealDCG@K
58
+ *
59
+ * Returns 0 when `relevant` is empty (no ground truth → undefined ratio).
60
+ */
61
+ export declare function ndcgAtK(retrievedPaths: string[], relevant: ReadonlySet<string>, k: number): number;
62
+ /** Recall @ K = |retrieved ∩ relevant| / |relevant|. */
63
+ export declare function recallAtK(retrievedPaths: string[], relevant: ReadonlySet<string>, k: number): number;
64
+ /** Mean Reciprocal Rank — 1/rank of first relevant; 0 if none in top-K. */
65
+ export declare function reciprocalRank(retrievedPaths: string[], relevant: ReadonlySet<string>, k: number): number;
66
+ /**
67
+ * Read a JSONL file of EvalQuery objects. Tolerates blank lines and
68
+ * comments (lines starting with `//`). Throws on invalid JSON or
69
+ * missing required fields.
70
+ */
71
+ export declare function readQueriesJsonl(file: string): Promise<EvalQuery[]>;
72
+ export interface RunEvalOptions {
73
+ vault: Vault;
74
+ queries: readonly EvalQuery[];
75
+ ftsIndex: FtsIndex | null;
76
+ embedFile: string;
77
+ k?: number;
78
+ /** Label for the result — useful when running multiple configurations. */
79
+ label?: string;
80
+ /** Pass-through to searchHybrid (e.g. graph_boost, min_signals). */
81
+ searchOpts?: {
82
+ graph_boost?: boolean;
83
+ min_signals?: number;
84
+ embedding_model?: string;
85
+ };
86
+ /** Optional reranker config — pass-through to searchHybrid. */
87
+ reranker?: {
88
+ alias?: string;
89
+ topN?: number;
90
+ };
91
+ /** Test-only DI for mocking the reranker. */
92
+ rerankerOverride?: {
93
+ score(query: string, passages: readonly string[]): Promise<number[]>;
94
+ };
95
+ }
96
+ /**
97
+ * Run obsidian_search across a set of evaluation queries and compute
98
+ * NDCG@K, Recall@K, MRR. Returns a fully-populated EvalResult.
99
+ *
100
+ * `embedFile` may be a non-existent path — embeddings simply won't
101
+ * contribute (graceful degradation matches `searchHybrid` behavior).
102
+ */
103
+ export declare function runEval(opts: RunEvalOptions): Promise<EvalResult>;
104
+ /**
105
+ * Render an EvalResult as a pretty CLI table. ANSI-colored when stdout
106
+ * is a TTY, plain text otherwise (so `enquire eval | tee report.txt`
107
+ * stays readable).
108
+ */
109
+ export declare function formatEvalResult(result: EvalResult, opts?: {
110
+ perQuery?: boolean;
111
+ }): string;
112
+ /**
113
+ * Render multiple EvalResults side-by-side as a comparison matrix. Used
114
+ * by `enquire eval --matrix` to A/B several configurations in one run.
115
+ */
116
+ export declare function formatEvalMatrix(results: readonly EvalResult[]): string;
117
+ //# sourceMappingURL=eval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,2EAA2E;AAC3E,MAAM,WAAW,SAAS;IACxB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wDAAwD;IACxD,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,wBAAwB;AACxB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,mCAAmC;AACnC,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAclG;AAED,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQpG;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzG;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA2BzE;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IAC9B,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,+DAA+D;IAC/D,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC;CAC7F;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CA0EvE;AAaD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAwB9F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CA2BvE"}
package/dist/eval.js ADDED
@@ -0,0 +1,266 @@
1
+ // Retrieval-quality evaluation harness for enquire-mcp.
2
+ //
3
+ // v2.12.0 — closes the "you can't tune what you can't measure" gap. Before
4
+ // this, anyone trying to A/B test retrieval changes (graph_boost on/off,
5
+ // reranker on/off, different limit / min_signals values) had to write a
6
+ // custom script. Now there's a first-class subcommand:
7
+ //
8
+ // enquire-mcp eval --vault <path> --queries <file>
9
+ // Reads JSONL queries with known-relevant doc paths, runs
10
+ // `obsidian_search` for each, computes NDCG@10 + Recall@10 + MRR,
11
+ // reports per-query + aggregate scores. Pretty table by default,
12
+ // `--json` for machine-readable output, `--matrix` to A/B several
13
+ // flag combinations side-by-side in one run.
14
+ //
15
+ // Standard IR metrics (Manning et al, "Introduction to Information
16
+ // Retrieval", Chapter 8):
17
+ // • NDCG@K (Normalized Discounted Cumulative Gain) — penalizes
18
+ // relevant docs found low in the ranking; 1.0 is perfect, 0.0 is
19
+ // worst. Best for graded relevance + position-aware comparison.
20
+ // • Recall@K — fraction of relevant docs found in top-K. Best for
21
+ // "did we surface ANY relevant content?" measurement.
22
+ // • MRR (Mean Reciprocal Rank) — 1/rank of the first relevant doc.
23
+ // Best for "did we put SOMETHING relevant near the top?"
24
+ //
25
+ // We treat the user's `relevant` paths as binary-relevance ground truth
26
+ // (each listed path is gain=1, others are gain=0) since most users won't
27
+ // label graded relevance. The DCG formula simplifies to
28
+ // sum(rel_i / log2(i + 1)) where rel_i ∈ {0, 1}. NDCG normalizes by the
29
+ // ideal DCG = sum(1 / log2(i + 1)) for i in [1, |relevant|].
30
+ //
31
+ // "Only enquire-mcp has this": no other Obsidian-MCP ships a built-in
32
+ // retrieval evaluation harness. This makes Karpathy-style LLM Wiki users
33
+ // systematically tune their hybrid retrieval — measure first, then
34
+ // adjust graph_boost / reranker / min_signals based on real numbers
35
+ // over their real corpus.
36
+ import { promises as fs } from "node:fs";
37
+ import { searchHybrid } from "./tools.js";
38
+ /**
39
+ * NDCG@K with binary relevance.
40
+ *
41
+ * DCG@K = sum_{i=1..K} rel_i / log2(i + 1)
42
+ * IdealDCG@K = sum_{i=1..min(K, |relevant|)} 1 / log2(i + 1)
43
+ * NDCG@K = DCG@K / IdealDCG@K
44
+ *
45
+ * Returns 0 when `relevant` is empty (no ground truth → undefined ratio).
46
+ */
47
+ export function ndcgAtK(retrievedPaths, relevant, k) {
48
+ if (relevant.size === 0)
49
+ return 0;
50
+ let dcg = 0;
51
+ for (let i = 0; i < Math.min(k, retrievedPaths.length); i++) {
52
+ const path = retrievedPaths[i];
53
+ if (path && relevant.has(path)) {
54
+ dcg += 1 / Math.log2(i + 2); // i+2 because i is 0-indexed; rank = i+1, log2(rank+1)
55
+ }
56
+ }
57
+ let idealDcg = 0;
58
+ for (let i = 0; i < Math.min(k, relevant.size); i++) {
59
+ idealDcg += 1 / Math.log2(i + 2);
60
+ }
61
+ return idealDcg > 0 ? dcg / idealDcg : 0;
62
+ }
63
+ /** Recall @ K = |retrieved ∩ relevant| / |relevant|. */
64
+ export function recallAtK(retrievedPaths, relevant, k) {
65
+ if (relevant.size === 0)
66
+ return 0;
67
+ let hits = 0;
68
+ for (let i = 0; i < Math.min(k, retrievedPaths.length); i++) {
69
+ const path = retrievedPaths[i];
70
+ if (path && relevant.has(path))
71
+ hits += 1;
72
+ }
73
+ return hits / relevant.size;
74
+ }
75
+ /** Mean Reciprocal Rank — 1/rank of first relevant; 0 if none in top-K. */
76
+ export function reciprocalRank(retrievedPaths, relevant, k) {
77
+ for (let i = 0; i < Math.min(k, retrievedPaths.length); i++) {
78
+ const path = retrievedPaths[i];
79
+ if (path && relevant.has(path))
80
+ return 1 / (i + 1);
81
+ }
82
+ return 0;
83
+ }
84
+ /**
85
+ * Read a JSONL file of EvalQuery objects. Tolerates blank lines and
86
+ * comments (lines starting with `//`). Throws on invalid JSON or
87
+ * missing required fields.
88
+ */
89
+ export async function readQueriesJsonl(file) {
90
+ const raw = await fs.readFile(file, "utf8");
91
+ const queries = [];
92
+ let lineNum = 0;
93
+ for (const line of raw.split("\n")) {
94
+ lineNum += 1;
95
+ const trimmed = line.trim();
96
+ if (trimmed.length === 0 || trimmed.startsWith("//"))
97
+ continue;
98
+ try {
99
+ const parsed = JSON.parse(trimmed);
100
+ if (typeof parsed.query !== "string" || parsed.query.length === 0) {
101
+ throw new Error(`line ${lineNum}: missing or empty 'query' field`);
102
+ }
103
+ if (!Array.isArray(parsed.relevant) || parsed.relevant.some((p) => typeof p !== "string")) {
104
+ throw new Error(`line ${lineNum}: 'relevant' must be an array of vault-relative path strings`);
105
+ }
106
+ queries.push({
107
+ query: parsed.query,
108
+ relevant: parsed.relevant,
109
+ ...(parsed.id ? { id: parsed.id } : {})
110
+ });
111
+ }
112
+ catch (err) {
113
+ const msg = err instanceof Error ? err.message : String(err);
114
+ throw new Error(`enquire eval: failed to parse queries file at line ${lineNum} — ${msg}`);
115
+ }
116
+ }
117
+ return queries;
118
+ }
119
+ /**
120
+ * Run obsidian_search across a set of evaluation queries and compute
121
+ * NDCG@K, Recall@K, MRR. Returns a fully-populated EvalResult.
122
+ *
123
+ * `embedFile` may be a non-existent path — embeddings simply won't
124
+ * contribute (graceful degradation matches `searchHybrid` behavior).
125
+ */
126
+ export async function runEval(opts) {
127
+ const k = opts.k ?? 10;
128
+ const totalT0 = Date.now();
129
+ const perQuery = [];
130
+ for (let i = 0; i < opts.queries.length; i++) {
131
+ const q = opts.queries[i];
132
+ if (!q)
133
+ continue;
134
+ const id = q.id ?? `q${i + 1}`;
135
+ const relevantSet = new Set(q.relevant);
136
+ const t0 = Date.now();
137
+ let hits = [];
138
+ try {
139
+ const result = await searchHybrid(opts.vault, {
140
+ query: q.query,
141
+ limit: k,
142
+ ...(opts.searchOpts?.graph_boost !== undefined ? { graph_boost: opts.searchOpts.graph_boost } : {}),
143
+ ...(opts.searchOpts?.min_signals !== undefined ? { min_signals: opts.searchOpts.min_signals } : {}),
144
+ ...(opts.searchOpts?.embedding_model ? { embedding_model: opts.searchOpts.embedding_model } : {})
145
+ }, {
146
+ ftsIndex: opts.ftsIndex,
147
+ embedFile: opts.embedFile,
148
+ ...(opts.reranker ? { reranker: opts.reranker } : {}),
149
+ ...(opts.rerankerOverride ? { rerankerOverride: opts.rerankerOverride } : {})
150
+ });
151
+ hits = result.matches;
152
+ }
153
+ catch (err) {
154
+ // Per-query isolation — one bad query doesn't sink the whole eval.
155
+ // The query's scores will all be 0 and we keep going.
156
+ process.stderr.write(`enquire eval: query "${q.query.slice(0, 60)}" failed — ${err instanceof Error ? err.message : String(err)}\n`);
157
+ }
158
+ const latency = Date.now() - t0;
159
+ const retrievedPaths = hits.map((h) => h.path);
160
+ const ndcg = ndcgAtK(retrievedPaths, relevantSet, k);
161
+ const recall = recallAtK(retrievedPaths, relevantSet, k);
162
+ const mrr = reciprocalRank(retrievedPaths, relevantSet, k);
163
+ let hitsRelevant = 0;
164
+ for (const p of retrievedPaths.slice(0, k)) {
165
+ if (relevantSet.has(p))
166
+ hitsRelevant += 1;
167
+ }
168
+ perQuery.push({
169
+ id,
170
+ query: q.query,
171
+ ndcg_at_k: round(ndcg),
172
+ recall_at_k: round(recall),
173
+ mrr: round(mrr),
174
+ hits_relevant: hitsRelevant,
175
+ hits_total_relevant: relevantSet.size,
176
+ latency_ms: latency
177
+ });
178
+ }
179
+ const meanNdcg = mean(perQuery.map((p) => p.ndcg_at_k));
180
+ const meanRecall = mean(perQuery.map((p) => p.recall_at_k));
181
+ const meanMrr = mean(perQuery.map((p) => p.mrr));
182
+ const meanLatency = mean(perQuery.map((p) => p.latency_ms));
183
+ return {
184
+ label: opts.label ?? "default",
185
+ k,
186
+ query_count: perQuery.length,
187
+ per_query: perQuery,
188
+ mean_ndcg: round(meanNdcg),
189
+ mean_recall: round(meanRecall),
190
+ mean_mrr: round(meanMrr),
191
+ mean_latency_ms: Math.round(meanLatency),
192
+ total_wall_ms: Date.now() - totalT0
193
+ };
194
+ }
195
+ function mean(xs) {
196
+ if (xs.length === 0)
197
+ return 0;
198
+ let s = 0;
199
+ for (const x of xs)
200
+ s += x;
201
+ return s / xs.length;
202
+ }
203
+ function round(x) {
204
+ return Math.round(x * 10000) / 10000;
205
+ }
206
+ /**
207
+ * Render an EvalResult as a pretty CLI table. ANSI-colored when stdout
208
+ * is a TTY, plain text otherwise (so `enquire eval | tee report.txt`
209
+ * stays readable).
210
+ */
211
+ export function formatEvalResult(result, opts = {}) {
212
+ const isTty = process.stdout.isTTY === true;
213
+ const bold = (s) => (isTty ? `\x1b[1m${s}\x1b[0m` : s);
214
+ const dim = (s) => (isTty ? `\x1b[2m${s}\x1b[0m` : s);
215
+ const lines = [];
216
+ lines.push(bold(`enquire eval — ${result.label}`));
217
+ lines.push(` ${result.query_count} queries · k=${result.k} · wall=${result.total_wall_ms}ms`);
218
+ lines.push("");
219
+ if (opts.perQuery) {
220
+ lines.push(bold("per query:"));
221
+ lines.push(" id ndcg@k recall@k mrr hits latency");
222
+ for (const p of result.per_query) {
223
+ lines.push(` ${p.id.padEnd(15)} ${p.ndcg_at_k.toFixed(4)} ${p.recall_at_k.toFixed(4)} ${p.mrr.toFixed(4)} ${`${p.hits_relevant}/${p.hits_total_relevant}`.padEnd(6)} ${p.latency_ms}ms`);
224
+ }
225
+ lines.push("");
226
+ }
227
+ lines.push(bold("aggregate:"));
228
+ lines.push(` mean NDCG@${result.k} = ${result.mean_ndcg.toFixed(4)}`);
229
+ lines.push(` mean Recall@${result.k} = ${result.mean_recall.toFixed(4)}`);
230
+ lines.push(` mean MRR = ${result.mean_mrr.toFixed(4)}`);
231
+ lines.push(` mean latency = ${result.mean_latency_ms}ms ${dim("(per query)")}`);
232
+ return lines.join("\n");
233
+ }
234
+ /**
235
+ * Render multiple EvalResults side-by-side as a comparison matrix. Used
236
+ * by `enquire eval --matrix` to A/B several configurations in one run.
237
+ */
238
+ export function formatEvalMatrix(results) {
239
+ if (results.length === 0)
240
+ return "(no results)";
241
+ const isTty = process.stdout.isTTY === true;
242
+ const bold = (s) => (isTty ? `\x1b[1m${s}\x1b[0m` : s);
243
+ const lines = [];
244
+ lines.push(bold(`enquire eval matrix (${results.length} configs)`));
245
+ lines.push("");
246
+ // Column header.
247
+ const labelWidth = Math.max(...results.map((r) => r.label.length), 8) + 2;
248
+ const header = `${"label".padEnd(labelWidth)}NDCG@${results[0]?.k ?? 10} Recall@${results[0]?.k ?? 10} MRR latency`;
249
+ lines.push(bold(header));
250
+ // Rows.
251
+ for (const r of results) {
252
+ lines.push(`${r.label.padEnd(labelWidth)}${r.mean_ndcg.toFixed(4)} ${r.mean_recall.toFixed(4)} ${r.mean_mrr.toFixed(4)} ${r.mean_latency_ms}ms`);
253
+ }
254
+ // Best-config callout.
255
+ let best = results[0];
256
+ if (best) {
257
+ for (const r of results) {
258
+ if (r.mean_ndcg > best.mean_ndcg)
259
+ best = r;
260
+ }
261
+ lines.push("");
262
+ lines.push(`best NDCG@${best.k}: ${bold(best.label)} (${best.mean_ndcg.toFixed(4)})`);
263
+ }
264
+ return lines.join("\n");
265
+ }
266
+ //# sourceMappingURL=eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAMtF,OAAO,EAAkC,QAAQ,EAAE,MAAM,WAAW,CAAC;AAyCrE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAW5C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;mCAE+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;8EAC0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAcD,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAsVnC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,cAAc,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAkE/E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,GAAG,SAAS,CA8F9E;AAED,iBAAe,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD5D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAY1D;AAy9DD,iBAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAM3D;AAsCD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAMtF,OAAO,EAAkC,QAAQ,EAAE,MAAM,WAAW,CAAC;AAyCrE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAW5C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;mCAE+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;8EAC0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAcD,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA0kBnC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,cAAc,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAkE/E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,GAAG,SAAS,CA8F9E;AAED,iBAAe,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD5D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAY1D;AAy9DD,iBAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAM3D;AAsCD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC"}