@cyanheads/brapi-mcp-server 0.6.4 → 0.7.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.
Files changed (43) hide show
  1. package/CLAUDE.md +11 -4
  2. package/README.md +7 -3
  3. package/changelog/0.7.x/0.7.0.md +23 -0
  4. package/dist/index.js +2 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/mcp-server/resources/definitions/brapi-variable.resource.d.ts +30 -0
  7. package/dist/mcp-server/resources/definitions/brapi-variable.resource.d.ts.map +1 -0
  8. package/dist/mcp-server/resources/definitions/brapi-variable.resource.js +78 -0
  9. package/dist/mcp-server/resources/definitions/brapi-variable.resource.js.map +1 -0
  10. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.d.ts +81 -0
  11. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.d.ts.map +1 -0
  12. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.js +366 -0
  13. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.js.map +1 -0
  14. package/dist/mcp-server/tools/definitions/brapi-export-genotype-matrix.tool.d.ts +88 -0
  15. package/dist/mcp-server/tools/definitions/brapi-export-genotype-matrix.tool.d.ts.map +1 -0
  16. package/dist/mcp-server/tools/definitions/brapi-export-genotype-matrix.tool.js +494 -0
  17. package/dist/mcp-server/tools/definitions/brapi-export-genotype-matrix.tool.js.map +1 -0
  18. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js +17 -93
  20. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/brapi-germplasm-performance.tool.d.ts +60 -0
  22. package/dist/mcp-server/tools/definitions/brapi-germplasm-performance.tool.d.ts.map +1 -0
  23. package/dist/mcp-server/tools/definitions/brapi-germplasm-performance.tool.js +416 -0
  24. package/dist/mcp-server/tools/definitions/brapi-germplasm-performance.tool.js.map +1 -0
  25. package/dist/mcp-server/tools/definitions/index.d.ts +148 -0
  26. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/index.js +6 -0
  28. package/dist/mcp-server/tools/definitions/index.js.map +1 -1
  29. package/dist/mcp-server/tools/shared/canvas-columns.d.ts +32 -0
  30. package/dist/mcp-server/tools/shared/canvas-columns.d.ts.map +1 -0
  31. package/dist/mcp-server/tools/shared/canvas-columns.js +98 -0
  32. package/dist/mcp-server/tools/shared/canvas-columns.js.map +1 -0
  33. package/dist/mcp-server/tools/shared/genotype-calls.d.ts +81 -0
  34. package/dist/mcp-server/tools/shared/genotype-calls.d.ts.map +1 -0
  35. package/dist/mcp-server/tools/shared/genotype-calls.js +172 -0
  36. package/dist/mcp-server/tools/shared/genotype-calls.js.map +1 -0
  37. package/dist/mcp-server/tools/shared/observations.d.ts +87 -0
  38. package/dist/mcp-server/tools/shared/observations.d.ts.map +1 -0
  39. package/dist/mcp-server/tools/shared/observations.js +285 -0
  40. package/dist/mcp-server/tools/shared/observations.js.map +1 -0
  41. package/manifest.json +1 -1
  42. package/package.json +3 -3
  43. package/server.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-find-genotype-calls.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brapi-find-genotype-calls.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @fileoverview `brapi_germplasm_performance` — aggregate a single germplasm's
3
+ * observations across the studies it appears in, returning per-variable summary
4
+ * statistics (n, mean, median, sd, min, max) plus the contributing studies and
5
+ * seasons. Answers the breeder's primary question — "how does line X perform
6
+ * across the pool's history?" — in one call.
7
+ *
8
+ * Study-anchored by design: a naked `/observations?germplasmDbId=…` pull stalls
9
+ * on SGN/Breedbase deployments (the count-probe bailout). Instead the tool
10
+ * discovers the germplasm's studies via `/studies?germplasmDbIds=…` (with a
11
+ * dialect-honor cross-check, since some servers silently drop that filter and
12
+ * return the global list), then pulls observations per study through the shared
13
+ * `pullStudyObservations` machinery — the same `/observations` →
14
+ * `/observationunits` fallback chain `brapi_build_phenotype_matrix` uses.
15
+ *
16
+ * Returned rows are filtered to the iterated study and the target germplasm, so
17
+ * the aggregate stays correct even on servers that ignore the studyDbId filter
18
+ * on `/observations` (the BrAPI Community Test Server does) or over-return from
19
+ * the germplasm-anchored fallback.
20
+ *
21
+ * @module mcp-server/tools/definitions/brapi-germplasm-performance.tool
22
+ */
23
+ import { z } from '@cyanheads/mcp-ts-core';
24
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
25
+ export declare const brapiGermplasmPerformance: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
26
+ alias: z.ZodOptional<z.ZodString>;
27
+ germplasmDbId: z.ZodString;
28
+ variables: z.ZodOptional<z.ZodArray<z.ZodString>>;
29
+ }, z.core.$strip>, z.ZodObject<{
30
+ alias: z.ZodString;
31
+ germplasmDbId: z.ZodString;
32
+ germplasmName: z.ZodOptional<z.ZodString>;
33
+ studyCount: z.ZodNumber;
34
+ studyDbIds: z.ZodArray<z.ZodString>;
35
+ perVariable: z.ZodArray<z.ZodObject<{
36
+ observationVariableDbId: z.ZodString;
37
+ observationVariableName: z.ZodOptional<z.ZodString>;
38
+ n: z.ZodNumber;
39
+ mean: z.ZodOptional<z.ZodNumber>;
40
+ median: z.ZodOptional<z.ZodNumber>;
41
+ sd: z.ZodOptional<z.ZodNumber>;
42
+ min: z.ZodOptional<z.ZodString>;
43
+ max: z.ZodOptional<z.ZodString>;
44
+ studyCount: z.ZodNumber;
45
+ studyDbIds: z.ZodArray<z.ZodString>;
46
+ seasons: z.ZodArray<z.ZodString>;
47
+ }, z.core.$strip>>;
48
+ warnings: z.ZodArray<z.ZodString>;
49
+ }, z.core.$strip>, readonly [{
50
+ readonly reason: "unknown_alias";
51
+ readonly code: JsonRpcErrorCode.NotFound;
52
+ readonly when: "No connection has been registered under the requested alias";
53
+ readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_germplasm_performance.";
54
+ }, {
55
+ readonly reason: "germplasm_not_found";
56
+ readonly code: JsonRpcErrorCode.NotFound;
57
+ readonly when: "Upstream returned no germplasm record for the requested germplasmDbId";
58
+ readonly recovery: "Verify the germplasmDbId on the target server, or run brapi_find_germplasm to discover valid IDs.";
59
+ }], undefined>;
60
+ //# sourceMappingURL=brapi-germplasm-performance.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brapi-germplasm-performance.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-germplasm-performance.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwGjE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4KpC,CAAC"}
@@ -0,0 +1,416 @@
1
+ /**
2
+ * @fileoverview `brapi_germplasm_performance` — aggregate a single germplasm's
3
+ * observations across the studies it appears in, returning per-variable summary
4
+ * statistics (n, mean, median, sd, min, max) plus the contributing studies and
5
+ * seasons. Answers the breeder's primary question — "how does line X perform
6
+ * across the pool's history?" — in one call.
7
+ *
8
+ * Study-anchored by design: a naked `/observations?germplasmDbId=…` pull stalls
9
+ * on SGN/Breedbase deployments (the count-probe bailout). Instead the tool
10
+ * discovers the germplasm's studies via `/studies?germplasmDbIds=…` (with a
11
+ * dialect-honor cross-check, since some servers silently drop that filter and
12
+ * return the global list), then pulls observations per study through the shared
13
+ * `pullStudyObservations` machinery — the same `/observations` →
14
+ * `/observationunits` fallback chain `brapi_build_phenotype_matrix` uses.
15
+ *
16
+ * Returned rows are filtered to the iterated study and the target germplasm, so
17
+ * the aggregate stays correct even on servers that ignore the studyDbId filter
18
+ * on `/observations` (the BrAPI Community Test Server does) or over-return from
19
+ * the germplasm-anchored fallback.
20
+ *
21
+ * @module mcp-server/tools/definitions/brapi-germplasm-performance.tool
22
+ */
23
+ import { tool, z } from '@cyanheads/mcp-ts-core';
24
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
25
+ import { getServerConfig } from '../../../config/server-config.js';
26
+ import { getBrapiClient } from '../../../services/brapi-client/index.js';
27
+ import { resolveDialect } from '../../../services/brapi-dialect/index.js';
28
+ import { getCapabilityRegistry } from '../../../services/capability-registry/index.js';
29
+ import { AliasInput, asString, buildRequestOptions, extractRows, isUpstreamNotFound, requireRegisteredConnection, } from '../shared/find-helpers.js';
30
+ import { pullStudyObservations } from '../shared/observations.js';
31
+ /** Upper bound on studies discovered per germplasm (guards the filter-ignored case). */
32
+ const STUDY_DISCOVERY_CAP = 200;
33
+ const STUDY_DISCOVERY_PAGE_SIZE = 100;
34
+ // ---------------------------------------------------------------------------
35
+ // Output schema
36
+ // ---------------------------------------------------------------------------
37
+ const PerVariableSchema = z
38
+ .object({
39
+ observationVariableDbId: z.string().describe('Observation variable identifier.'),
40
+ observationVariableName: z.string().optional().describe('Display name of the variable.'),
41
+ n: z
42
+ .number()
43
+ .int()
44
+ .nonnegative()
45
+ .describe('Number of observations of this variable for the germplasm.'),
46
+ mean: z
47
+ .number()
48
+ .optional()
49
+ .describe('Arithmetic mean of numeric values (omitted for non-numeric traits).'),
50
+ median: z
51
+ .number()
52
+ .optional()
53
+ .describe('Median of numeric values (omitted for non-numeric traits).'),
54
+ sd: z
55
+ .number()
56
+ .optional()
57
+ .describe('Sample standard deviation (n−1) of numeric values; omitted when n < 2 or non-numeric.'),
58
+ min: z
59
+ .string()
60
+ .optional()
61
+ .describe('Minimum value — numeric min when numeric, else lexical min.'),
62
+ max: z
63
+ .string()
64
+ .optional()
65
+ .describe('Maximum value — numeric max when numeric, else lexical max.'),
66
+ studyCount: z
67
+ .number()
68
+ .int()
69
+ .nonnegative()
70
+ .describe('Number of distinct studies contributing observations of this variable.'),
71
+ studyDbIds: z
72
+ .array(z.string())
73
+ .describe('Distinct studyDbIds contributing observations of this variable.'),
74
+ seasons: z
75
+ .array(z.string())
76
+ .describe('Distinct season labels across the observations (empty when the server carries no season).'),
77
+ })
78
+ .describe('Aggregated statistics for one observation variable across the studies the germplasm appears in.');
79
+ const OutputSchema = z.object({
80
+ alias: z.string().describe('Alias of the registered BrAPI connection used.'),
81
+ germplasmDbId: z.string().describe('The germplasm that was analyzed.'),
82
+ germplasmName: z
83
+ .string()
84
+ .optional()
85
+ .describe('Display name of the germplasm, when the server provides one.'),
86
+ studyCount: z
87
+ .number()
88
+ .int()
89
+ .nonnegative()
90
+ .describe('Number of distinct studies that contributed any observation.'),
91
+ studyDbIds: z.array(z.string()).describe('Distinct studyDbIds that contributed observations.'),
92
+ perVariable: z
93
+ .array(PerVariableSchema)
94
+ .describe('Per-variable aggregates, sorted by observationVariableDbId.'),
95
+ warnings: z
96
+ .array(z.string())
97
+ .describe('Advisory messages (study-discovery limits, dropped filters, fallback paths, per-study failures).'),
98
+ });
99
+ // ---------------------------------------------------------------------------
100
+ // Tool definition
101
+ // ---------------------------------------------------------------------------
102
+ export const brapiGermplasmPerformance = tool('brapi_germplasm_performance', {
103
+ description: "Aggregate a single germplasm's observations across every study it appears in, returning per-variable summary statistics (n, mean, median, sd, min, max), the contributing studies, and seasons. Study-anchored: discovers the germplasm's studies first (with a dialect-honor cross-check), then pulls observations per study — avoids the unanchored germplasm-only pull that stalls on SGN/Breedbase. For the underlying observation matrix, use brapi_build_phenotype_matrix.",
104
+ annotations: { readOnlyHint: true, openWorldHint: true },
105
+ errors: [
106
+ {
107
+ reason: 'unknown_alias',
108
+ code: JsonRpcErrorCode.NotFound,
109
+ when: 'No connection has been registered under the requested alias',
110
+ recovery: 'Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_germplasm_performance.',
111
+ },
112
+ {
113
+ reason: 'germplasm_not_found',
114
+ code: JsonRpcErrorCode.NotFound,
115
+ when: 'Upstream returned no germplasm record for the requested germplasmDbId',
116
+ recovery: 'Verify the germplasmDbId on the target server, or run brapi_find_germplasm to discover valid IDs.',
117
+ },
118
+ ],
119
+ input: z.object({
120
+ alias: AliasInput,
121
+ germplasmDbId: z.string().min(1).describe('The germplasmDbId to summarize performance for.'),
122
+ variables: z
123
+ .array(z.string())
124
+ .optional()
125
+ .describe('Optional subset of observationVariableDbIds to aggregate. Omit to include every variable observed for the germplasm.'),
126
+ }),
127
+ output: OutputSchema,
128
+ async handler(input, ctx) {
129
+ const client = getBrapiClient();
130
+ const config = getServerConfig();
131
+ const capabilities = getCapabilityRegistry();
132
+ const connection = await requireRegisteredConnection(ctx, input.alias);
133
+ const capabilityLookup = {};
134
+ if (connection.resolvedAuth)
135
+ capabilityLookup.auth = connection.resolvedAuth;
136
+ await capabilities.ensure(connection.baseUrl, { service: 'germplasm', method: 'GET' }, ctx, capabilityLookup);
137
+ // 1. Confirm the germplasm exists and capture its display name.
138
+ const germplasmName = await fetchGermplasmName(client, connection, input.germplasmDbId, ctx);
139
+ const profile = await capabilities.profile(connection.baseUrl, ctx, capabilityLookup);
140
+ const dialect = await resolveDialect(connection, ctx, capabilityLookup);
141
+ const loadLimit = config.loadLimit;
142
+ const warnings = [];
143
+ // 2. Discover the germplasm's studies (study-anchoring requirement).
144
+ const discovery = await discoverStudiesForGermplasm({
145
+ client,
146
+ connection,
147
+ dialect,
148
+ germplasmDbId: input.germplasmDbId,
149
+ ctx,
150
+ warnings,
151
+ });
152
+ if (discovery.studyDbIds.length === 0) {
153
+ warnings.push(`No studies discovered for germplasm '${input.germplasmDbId}'. It may not be associated with any study on this server, or /studies does not support a germplasm filter — use brapi_build_phenotype_matrix with explicit studies instead.`);
154
+ }
155
+ else if (discovery.studyDbIds.length >= STUDY_DISCOVERY_CAP) {
156
+ warnings.push(`Study discovery capped at ${STUDY_DISCOVERY_CAP} studies — aggregates may be incomplete. Narrow with brapi_build_phenotype_matrix on specific studies if needed.`);
157
+ }
158
+ // 3. Pull observations per study, scoped to the germplasm. Filter returned
159
+ // rows to the iterated study + target germplasm so the aggregate stays
160
+ // correct on servers that ignore the studyDbId filter or over-return.
161
+ const collected = [];
162
+ const wantVariables = input.variables?.length ? new Set(input.variables) : undefined;
163
+ for (const studyDbId of discovery.studyDbIds) {
164
+ let studyObs;
165
+ try {
166
+ studyObs = await pullStudyObservations({
167
+ studyDbId,
168
+ input: input.variables
169
+ ? { germplasm: [input.germplasmDbId], variables: input.variables }
170
+ : { germplasm: [input.germplasmDbId] },
171
+ client,
172
+ connection,
173
+ profile: profile.supported,
174
+ dialect,
175
+ config,
176
+ loadLimit,
177
+ warnings,
178
+ ctx,
179
+ });
180
+ }
181
+ catch (err) {
182
+ warnings.push(`Study '${studyDbId}': observation pull failed (${err instanceof Error ? err.message : String(err)}).`);
183
+ continue;
184
+ }
185
+ if (studyObs === null) {
186
+ warnings.push(`Study '${studyDbId}': no observation path (server exposes neither /observations nor /observationunits).`);
187
+ continue;
188
+ }
189
+ for (const o of studyObs) {
190
+ if (o.studyDbId !== studyDbId)
191
+ continue;
192
+ if (o.germplasmDbId !== input.germplasmDbId)
193
+ continue;
194
+ if (wantVariables && !wantVariables.has(o.observationVariableDbId))
195
+ continue;
196
+ collected.push(o);
197
+ }
198
+ }
199
+ // 4. Aggregate per variable.
200
+ const perVariable = aggregatePerVariable(collected);
201
+ const allStudyDbIds = [...new Set(collected.map((o) => o.studyDbId))].sort();
202
+ const result = {
203
+ alias: connection.alias,
204
+ germplasmDbId: input.germplasmDbId,
205
+ studyCount: allStudyDbIds.length,
206
+ studyDbIds: allStudyDbIds,
207
+ perVariable,
208
+ warnings,
209
+ };
210
+ if (germplasmName)
211
+ result.germplasmName = germplasmName;
212
+ return result;
213
+ },
214
+ format: (result) => {
215
+ const lines = [];
216
+ lines.push(`# Germplasm performance — ${result.germplasmName ?? result.germplasmDbId} — \`${result.alias}\``);
217
+ lines.push('');
218
+ lines.push(`germplasmDbId: \`${result.germplasmDbId}\` · studies: ${result.studyCount} · variables: ${result.perVariable.length}`);
219
+ lines.push(`studyDbIds: ${result.studyDbIds.join(', ') || '—'}`);
220
+ lines.push('');
221
+ if (result.perVariable.length === 0) {
222
+ lines.push('_No observations found for this germplasm across the discovered studies._');
223
+ }
224
+ else {
225
+ lines.push('## Per-variable aggregates');
226
+ for (const v of result.perVariable) {
227
+ const stats = [`n=${v.n}`];
228
+ if (v.mean !== undefined)
229
+ stats.push(`mean=${fmtNum(v.mean)}`);
230
+ if (v.median !== undefined)
231
+ stats.push(`median=${fmtNum(v.median)}`);
232
+ if (v.sd !== undefined)
233
+ stats.push(`sd=${fmtNum(v.sd)}`);
234
+ if (v.min !== undefined)
235
+ stats.push(`min=${v.min}`);
236
+ if (v.max !== undefined)
237
+ stats.push(`max=${v.max}`);
238
+ stats.push(`studies=${v.studyCount}`);
239
+ if (v.studyDbIds.length > 0)
240
+ stats.push(`studyDbIds=${v.studyDbIds.join(',')}`);
241
+ if (v.seasons.length > 0)
242
+ stats.push(`seasons=${v.seasons.join('/')}`);
243
+ lines.push(`- **${v.observationVariableName ?? v.observationVariableDbId}** (\`${v.observationVariableDbId}\`): ${stats.join(' · ')}`);
244
+ }
245
+ }
246
+ if (result.warnings.length > 0) {
247
+ lines.push('');
248
+ lines.push('## Warnings');
249
+ for (const w of result.warnings)
250
+ lines.push(`- ${w}`);
251
+ }
252
+ return [{ type: 'text', text: lines.join('\n') }];
253
+ },
254
+ });
255
+ // ---------------------------------------------------------------------------
256
+ // Germplasm existence
257
+ // ---------------------------------------------------------------------------
258
+ async function fetchGermplasmName(client, connection, germplasmDbId, ctx) {
259
+ const id = encodeURIComponent(germplasmDbId);
260
+ let env;
261
+ try {
262
+ env = await client.get(connection.baseUrl, `/germplasm/${id}`, ctx, buildRequestOptions(connection, undefined, { singleton: true }));
263
+ }
264
+ catch (err) {
265
+ if (isUpstreamNotFound(err))
266
+ throw germplasmNotFound(ctx, connection, germplasmDbId);
267
+ throw err;
268
+ }
269
+ const rec = env.result;
270
+ if (!rec || typeof rec !== 'object' || !rec.germplasmDbId) {
271
+ throw germplasmNotFound(ctx, connection, germplasmDbId);
272
+ }
273
+ return asString(rec.germplasmName);
274
+ }
275
+ function germplasmNotFound(ctx, connection, germplasmDbId) {
276
+ return ctx.fail('germplasm_not_found', `Germplasm '${germplasmDbId}' not found on ${connection.baseUrl}.`, {
277
+ germplasmDbId,
278
+ baseUrl: connection.baseUrl,
279
+ ...ctx.recoveryFor('germplasm_not_found'),
280
+ });
281
+ }
282
+ /**
283
+ * Discover the studies a germplasm appears in via `/studies?germplasmDbIds=…`,
284
+ * paging up to `STUDY_DISCOVERY_CAP`. Cross-checks the filtered total against an
285
+ * unfiltered baseline: when equal (and > 0) the server ignored the germplasm
286
+ * filter — the anchor set is over-broad, so it warns but still proceeds (the
287
+ * per-study observation pull remains germplasm-scoped). When the dialect drops
288
+ * the filter outright, returns an empty set with a warning.
289
+ */
290
+ async function discoverStudiesForGermplasm(args) {
291
+ const { client, connection, dialect, germplasmDbId, ctx, warnings } = args;
292
+ const adapted = dialect.adaptGetFilters('studies', { germplasmDbIds: [germplasmDbId] });
293
+ warnings.push(...adapted.warnings);
294
+ if (Object.keys(adapted.filters).length === 0) {
295
+ warnings.push('Study discovery skipped: the active dialect dropped the germplasm filter for /studies (server does not honor it).');
296
+ return { studyDbIds: [] };
297
+ }
298
+ const studyDbIds = [];
299
+ const seen = new Set();
300
+ let page = 0;
301
+ let totalPages = 1;
302
+ let filteredTotal;
303
+ while (page < totalPages && studyDbIds.length < STUDY_DISCOVERY_CAP && !ctx.signal.aborted) {
304
+ const env = await client.get(connection.baseUrl, '/studies', ctx, buildRequestOptions(connection, {
305
+ ...adapted.filters,
306
+ pageSize: STUDY_DISCOVERY_PAGE_SIZE,
307
+ page,
308
+ }));
309
+ const rows = extractRows(env.result);
310
+ for (const r of rows) {
311
+ const sid = asString(r.studyDbId);
312
+ if (sid && !seen.has(sid)) {
313
+ seen.add(sid);
314
+ studyDbIds.push(sid);
315
+ }
316
+ if (studyDbIds.length >= STUDY_DISCOVERY_CAP)
317
+ break;
318
+ }
319
+ if (page === 0) {
320
+ const tc = env.metadata?.pagination?.totalCount;
321
+ if (typeof tc === 'number')
322
+ filteredTotal = tc;
323
+ }
324
+ totalPages = env.metadata?.pagination?.totalPages ?? page + 1;
325
+ page++;
326
+ if (rows.length < STUDY_DISCOVERY_PAGE_SIZE)
327
+ break;
328
+ }
329
+ // Dialect-honor cross-check against an unfiltered baseline.
330
+ if (typeof filteredTotal === 'number') {
331
+ const baseline = await fetchStudyTotal(client, connection, ctx).catch(() => undefined);
332
+ if (typeof baseline === 'number' && baseline > 0 && filteredTotal === baseline) {
333
+ warnings.push(`/studies returned the same total (${baseline}) for the germplasm-filtered probe and an unfiltered baseline — the server appears to ignore the germplasm filter on /studies. Proceeding with the ${studyDbIds.length} discovered studies (per-study observation pulls remain germplasm-scoped), but coverage may be over-broad.`);
334
+ }
335
+ }
336
+ return { studyDbIds };
337
+ }
338
+ async function fetchStudyTotal(client, connection, ctx) {
339
+ const env = await client.get(connection.baseUrl, '/studies', ctx, buildRequestOptions(connection, { pageSize: 1 }));
340
+ const total = env.metadata?.pagination?.totalCount;
341
+ return typeof total === 'number' ? total : undefined;
342
+ }
343
+ // ---------------------------------------------------------------------------
344
+ // Aggregation
345
+ // ---------------------------------------------------------------------------
346
+ function aggregatePerVariable(obs) {
347
+ const byVar = new Map();
348
+ for (const o of obs) {
349
+ const arr = byVar.get(o.observationVariableDbId);
350
+ if (arr)
351
+ arr.push(o);
352
+ else
353
+ byVar.set(o.observationVariableDbId, [o]);
354
+ }
355
+ const out = [];
356
+ for (const [varId, rows] of byVar) {
357
+ const values = rows.map((r) => r.value);
358
+ const nums = values.map(Number).filter((n) => !Number.isNaN(n));
359
+ const studyDbIds = [...new Set(rows.map((r) => r.studyDbId))].sort();
360
+ const seasons = [
361
+ ...new Set(rows.map((r) => r.season).filter((s) => typeof s === 'string')),
362
+ ].sort();
363
+ const pv = {
364
+ observationVariableDbId: varId,
365
+ observationVariableName: rows[0]?.observationVariableName ?? varId,
366
+ n: rows.length,
367
+ studyCount: studyDbIds.length,
368
+ studyDbIds,
369
+ seasons,
370
+ };
371
+ if (nums.length > 0) {
372
+ pv.mean = mean(nums);
373
+ pv.median = median(nums);
374
+ pv.min = String(Math.min(...nums));
375
+ pv.max = String(Math.max(...nums));
376
+ if (nums.length >= 2)
377
+ pv.sd = sampleStdDev(nums);
378
+ }
379
+ else {
380
+ const sorted = [...values].sort();
381
+ const first = sorted[0];
382
+ const last = sorted[sorted.length - 1];
383
+ if (first !== undefined)
384
+ pv.min = first;
385
+ if (last !== undefined)
386
+ pv.max = last;
387
+ }
388
+ out.push(pv);
389
+ }
390
+ out.sort((a, b) => a.observationVariableDbId.localeCompare(b.observationVariableDbId));
391
+ return out;
392
+ }
393
+ function mean(nums) {
394
+ return nums.reduce((a, b) => a + b, 0) / nums.length;
395
+ }
396
+ function median(nums) {
397
+ const s = [...nums].sort((a, b) => a - b);
398
+ const mid = Math.floor(s.length / 2);
399
+ const hi = s[mid];
400
+ if (hi === undefined)
401
+ throw new Error('median of empty array');
402
+ if (s.length % 2 !== 0)
403
+ return hi;
404
+ const lo = s[mid - 1];
405
+ return lo === undefined ? hi : (lo + hi) / 2;
406
+ }
407
+ function sampleStdDev(nums) {
408
+ const m = mean(nums);
409
+ const variance = nums.reduce((a, b) => a + (b - m) ** 2, 0) / (nums.length - 1);
410
+ return Math.sqrt(variance);
411
+ }
412
+ /** Render a number compactly — integers bare, else rounded to 3 decimals. */
413
+ function fmtNum(n) {
414
+ return Number.isInteger(n) ? String(n) : String(Math.round(n * 1000) / 1000);
415
+ }
416
+ //# sourceMappingURL=brapi-germplasm-performance.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brapi-germplasm-performance.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-germplasm-performance.tool.ts"],"names":[],"mappings":"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"}