@cyanheads/brapi-mcp-server 0.5.4 → 0.6.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 (144) hide show
  1. package/CLAUDE.md +10 -3
  2. package/README.md +2 -1
  3. package/changelog/0.5.x/0.5.5.md +25 -0
  4. package/changelog/0.6.x/0.6.0.md +34 -0
  5. package/changelog/template.md +1 -1
  6. package/dist/index.js +1 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/mcp-server/resources/definitions/brapi-calls.resource.d.ts +7 -1
  9. package/dist/mcp-server/resources/definitions/brapi-calls.resource.d.ts.map +1 -1
  10. package/dist/mcp-server/resources/definitions/brapi-calls.resource.js +11 -3
  11. package/dist/mcp-server/resources/definitions/brapi-calls.resource.js.map +1 -1
  12. package/dist/mcp-server/resources/definitions/brapi-germplasm.resource.d.ts +5 -0
  13. package/dist/mcp-server/resources/definitions/brapi-germplasm.resource.d.ts.map +1 -1
  14. package/dist/mcp-server/resources/definitions/brapi-germplasm.resource.js +6 -0
  15. package/dist/mcp-server/resources/definitions/brapi-germplasm.resource.js.map +1 -1
  16. package/dist/mcp-server/resources/definitions/brapi-server-info.resource.d.ts +7 -1
  17. package/dist/mcp-server/resources/definitions/brapi-server-info.resource.d.ts.map +1 -1
  18. package/dist/mcp-server/resources/definitions/brapi-server-info.resource.js +9 -0
  19. package/dist/mcp-server/resources/definitions/brapi-server-info.resource.js.map +1 -1
  20. package/dist/mcp-server/resources/definitions/brapi-study.resource.d.ts +5 -0
  21. package/dist/mcp-server/resources/definitions/brapi-study.resource.d.ts.map +1 -1
  22. package/dist/mcp-server/resources/definitions/brapi-study.resource.js +6 -0
  23. package/dist/mcp-server/resources/definitions/brapi-study.resource.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts +2 -0
  25. package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts.map +1 -1
  26. package/dist/mcp-server/tools/definitions/brapi-connect.tool.js +1 -2
  27. package/dist/mcp-server/tools/definitions/brapi-connect.tool.js.map +1 -1
  28. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts +2 -2
  29. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js +3 -3
  30. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js.map +1 -1
  31. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts +5 -0
  32. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts.map +1 -1
  33. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js +8 -4
  34. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js.map +1 -1
  35. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts +5 -0
  36. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts.map +1 -1
  37. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js +15 -6
  38. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js.map +1 -1
  39. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts +5 -0
  40. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts.map +1 -1
  41. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js +14 -6
  42. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js.map +1 -1
  43. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts +5 -0
  44. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts.map +1 -1
  45. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js +62 -37
  46. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js.map +1 -1
  47. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts +8 -3
  48. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts.map +1 -1
  49. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js +18 -8
  50. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js.map +1 -1
  51. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts +5 -0
  52. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts.map +1 -1
  53. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js +14 -6
  54. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js.map +1 -1
  55. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts +5 -0
  56. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts.map +1 -1
  57. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js +14 -6
  58. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js.map +1 -1
  59. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts +6 -1
  60. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts.map +1 -1
  61. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js +16 -7
  62. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js.map +1 -1
  63. package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.d.ts +5 -0
  64. package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.d.ts.map +1 -1
  65. package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.js +9 -5
  66. package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.js.map +1 -1
  67. package/dist/mcp-server/tools/definitions/brapi-get-image.tool.d.ts +5 -0
  68. package/dist/mcp-server/tools/definitions/brapi-get-image.tool.d.ts.map +1 -1
  69. package/dist/mcp-server/tools/definitions/brapi-get-image.tool.js +31 -4
  70. package/dist/mcp-server/tools/definitions/brapi-get-image.tool.js.map +1 -1
  71. package/dist/mcp-server/tools/definitions/brapi-get-study.tool.d.ts +5 -0
  72. package/dist/mcp-server/tools/definitions/brapi-get-study.tool.d.ts.map +1 -1
  73. package/dist/mcp-server/tools/definitions/brapi-get-study.tool.js +9 -5
  74. package/dist/mcp-server/tools/definitions/brapi-get-study.tool.js.map +1 -1
  75. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts +5 -0
  76. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts.map +1 -1
  77. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.js +8 -4
  78. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.js.map +1 -1
  79. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts +5 -0
  80. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts.map +1 -1
  81. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js +8 -4
  82. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js.map +1 -1
  83. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts +9 -1
  84. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts.map +1 -1
  85. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.js +12 -4
  86. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.js.map +1 -1
  87. package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.d.ts +5 -0
  88. package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.d.ts.map +1 -1
  89. package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.js +8 -4
  90. package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.js.map +1 -1
  91. package/dist/mcp-server/tools/definitions/brapi-walk-pedigree.tool.d.ts +15 -3
  92. package/dist/mcp-server/tools/definitions/brapi-walk-pedigree.tool.d.ts.map +1 -1
  93. package/dist/mcp-server/tools/definitions/brapi-walk-pedigree.tool.js +37 -14
  94. package/dist/mcp-server/tools/definitions/brapi-walk-pedigree.tool.js.map +1 -1
  95. package/dist/mcp-server/tools/definitions/index.d.ts +100 -10
  96. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  97. package/dist/mcp-server/tools/shared/connect-auth-schema.d.ts.map +1 -1
  98. package/dist/mcp-server/tools/shared/connect-auth-schema.js +1 -2
  99. package/dist/mcp-server/tools/shared/connect-auth-schema.js.map +1 -1
  100. package/dist/mcp-server/tools/shared/find-helpers.d.ts +69 -5
  101. package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
  102. package/dist/mcp-server/tools/shared/find-helpers.js +104 -13
  103. package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
  104. package/dist/mcp-server/tools/shared/orientation-envelope.d.ts +4 -0
  105. package/dist/mcp-server/tools/shared/orientation-envelope.d.ts.map +1 -1
  106. package/dist/mcp-server/tools/shared/orientation-envelope.js +31 -2
  107. package/dist/mcp-server/tools/shared/orientation-envelope.js.map +1 -1
  108. package/dist/services/brapi-client/brapi-client.d.ts.map +1 -1
  109. package/dist/services/brapi-client/brapi-client.js +20 -8
  110. package/dist/services/brapi-client/brapi-client.js.map +1 -1
  111. package/dist/services/brapi-client/types.d.ts +14 -0
  112. package/dist/services/brapi-client/types.d.ts.map +1 -1
  113. package/dist/services/brapi-client/types.js.map +1 -1
  114. package/dist/services/brapi-dialect/bms-dialect.d.ts +28 -0
  115. package/dist/services/brapi-dialect/bms-dialect.d.ts.map +1 -0
  116. package/dist/services/brapi-dialect/bms-dialect.js +137 -0
  117. package/dist/services/brapi-dialect/bms-dialect.js.map +1 -0
  118. package/dist/services/brapi-dialect/brapi-test-dialect.d.ts.map +1 -1
  119. package/dist/services/brapi-dialect/brapi-test-dialect.js +16 -14
  120. package/dist/services/brapi-dialect/brapi-test-dialect.js.map +1 -1
  121. package/dist/services/brapi-dialect/cassavabase-dialect.d.ts.map +1 -1
  122. package/dist/services/brapi-dialect/cassavabase-dialect.js +40 -6
  123. package/dist/services/brapi-dialect/cassavabase-dialect.js.map +1 -1
  124. package/dist/services/brapi-dialect/detect.d.ts.map +1 -1
  125. package/dist/services/brapi-dialect/detect.js +21 -0
  126. package/dist/services/brapi-dialect/detect.js.map +1 -1
  127. package/dist/services/brapi-dialect/index.d.ts +1 -0
  128. package/dist/services/brapi-dialect/index.d.ts.map +1 -1
  129. package/dist/services/brapi-dialect/index.js +1 -0
  130. package/dist/services/brapi-dialect/index.js.map +1 -1
  131. package/dist/services/brapi-dialect/registry.d.ts.map +1 -1
  132. package/dist/services/brapi-dialect/registry.js +2 -0
  133. package/dist/services/brapi-dialect/registry.js.map +1 -1
  134. package/dist/services/brapi-dialect/singularizing-dialect.d.ts +30 -4
  135. package/dist/services/brapi-dialect/singularizing-dialect.d.ts.map +1 -1
  136. package/dist/services/brapi-dialect/singularizing-dialect.js +57 -5
  137. package/dist/services/brapi-dialect/singularizing-dialect.js.map +1 -1
  138. package/dist/services/brapi-dialect/types.d.ts +37 -0
  139. package/dist/services/brapi-dialect/types.d.ts.map +1 -1
  140. package/dist/services/canvas-bridge/canvas-bridge.d.ts.map +1 -1
  141. package/dist/services/canvas-bridge/canvas-bridge.js +9 -4
  142. package/dist/services/canvas-bridge/canvas-bridge.js.map +1 -1
  143. package/package.json +6 -6
  144. package/server.json +3 -3
@@ -10,6 +10,23 @@
10
10
  * @module services/brapi-dialect/singularizing-dialect
11
11
  */
12
12
  import type { BrapiDialect } from './types.js';
13
+ /**
14
+ * One entry in the plural→singular translation table. Carries the target
15
+ * filter name plus a `verified` flag that's `true` when the mapping was
16
+ * empirically narrowed against a live server, `false` when it's inferred from
17
+ * the v2.0/v2.1 naming pattern but hasn't been independently checked.
18
+ *
19
+ * The flag drives two things: the warning the dialect emits on downcast
20
+ * (softer wording for inferred mappings, since the mapping might also be
21
+ * wrong); and the verified-mapping summary on the orientation envelope so
22
+ * agents can see the dialect's confidence floor without inspecting source.
23
+ */
24
+ export interface DialectFilterMapping {
25
+ target: string;
26
+ verified: boolean;
27
+ }
28
+ /** Compact shorthand: `'singular'` expands to `{ target: 'singular', verified: false }`. */
29
+ export type DialectFilterMappingInput = string | DialectFilterMapping;
13
30
  export interface SingularizingDialectConfig {
14
31
  /**
15
32
  * POST `/search/{noun}` routes the dialect knows are dead — advertised in
@@ -27,14 +44,23 @@ export interface SingularizingDialectConfig {
27
44
  id: string;
28
45
  /** Human-readable label used in warning text (e.g. `CassavaBase`). */
29
46
  label: string;
47
+ /**
48
+ * Optional row-normalizer. Receives the endpoint segment and one upstream
49
+ * row pre-schema. Forwarded onto `BrapiDialect.normalizeRow` verbatim — see
50
+ * that interface for semantics. Omit on dialects with no shape quirks.
51
+ */
52
+ normalizeRow?: (endpoint: string, row: Record<string, unknown>) => Record<string, unknown>;
30
53
  /** Compatibility notes surfaced in brapi_connect / brapi_server_info. */
31
54
  notes?: readonly string[];
32
55
  /**
33
- * Per-endpoint mapping from the v2.1 plural filter key to the singular form
34
- * the server honors. Keyed by bare resource segment (`studies`, no slash).
35
- * Endpoints not listed pass through with no translation.
56
+ * Per-endpoint mapping from the v2.1 plural filter key to its singular form.
57
+ * Keyed by bare resource segment (`studies`, no slash). Values may be a
58
+ * bare string (treated as `{target, verified: false}`) or an explicit
59
+ * `DialectFilterMapping` so authors can mark live-verified mappings
60
+ * distinctly from inferred ones. Endpoints not listed pass through with no
61
+ * translation.
36
62
  */
37
- pluralToSingular: Readonly<Record<string, Readonly<Record<string, string>>>>;
63
+ pluralToSingular: Readonly<Record<string, Readonly<Record<string, DialectFilterMappingInput>>>>;
38
64
  }
39
65
  /**
40
66
  * Build a `BrapiDialect` whose `adaptGetFilters` translates plural v2.1 filter
@@ -1 +1 @@
1
- {"version":3,"file":"singularizing-dialect.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/singularizing-dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAC;AAElE,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;OAIG;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/D,uEAAuE;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E;AAID;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,0BAA0B,GAAG,YAAY,CAiD3F"}
1
+ {"version":3,"file":"singularizing-dialect.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/singularizing-dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAC;AAElE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,4FAA4F;AAC5F,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,oBAAoB,CAAC;AAEtE,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;OAIG;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/D,uEAAuE;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3F,yEAAyE;IACzE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B;;;;;;;OAOG;IACH,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;CACjG;AAID;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,0BAA0B,GAAG,YAAY,CA+D3F"}
@@ -18,12 +18,14 @@ const EMPTY_DROP_SET = new Set();
18
18
  * value or use a curated tool that paginates).
19
19
  */
20
20
  export function createSingularizingDialect(config) {
21
+ const normalizedMappings = normalizeMappings(config.pluralToSingular);
21
22
  const adaptGetFilters = (endpoint, filters) => {
22
- const mapping = config.pluralToSingular[endpoint] ?? {};
23
+ const mapping = normalizedMappings[endpoint] ?? {};
23
24
  const droppedSet = config.droppedFilters?.[endpoint] ?? EMPTY_DROP_SET;
24
25
  const out = {};
25
26
  const warnings = [];
26
27
  const dropped = [];
28
+ let requiresEscalation = false;
27
29
  for (const [key, value] of Object.entries(filters)) {
28
30
  if (value === undefined)
29
31
  continue;
@@ -32,32 +34,82 @@ export function createSingularizingDialect(config) {
32
34
  warnings.push(`${config.label} dialect: dropped filter '${key}' — this server does not honor it. Adjust the query or omit the filter.`);
33
35
  continue;
34
36
  }
35
- const target = mapping[key];
36
- if (!target) {
37
+ const entry = mapping[key];
38
+ if (!entry) {
37
39
  out[key] = value;
38
40
  continue;
39
41
  }
42
+ const target = entry.target;
43
+ const verifiedSuffix = entry.verified
44
+ ? ''
45
+ : ` (mapping inferred — narrowing not verified against this server; check the result distributions)`;
40
46
  if (Array.isArray(value)) {
41
47
  if (value.length === 0)
42
48
  continue;
43
49
  out[target] = value[0];
44
50
  if (value.length > 1) {
45
- warnings.push(`${config.label} dialect: '${key}' downcast to '${target}'; only the first value (${JSON.stringify(value[0])}) was sent — this server's GET /${endpoint} accepts a single value per filter, not arrays. Run separate calls for the other values, or use a curated tool that paginates over them.`);
51
+ requiresEscalation = true;
52
+ warnings.push(`${config.label} dialect: '${key}' downcast to '${target}'; only the first value (${JSON.stringify(value[0])}) was sent — this server's GET /${endpoint} accepts a single value per filter, not arrays. Run separate calls for the other values, or use a curated tool that paginates over them.${verifiedSuffix}`);
46
53
  }
47
54
  }
48
55
  else {
49
56
  out[target] = value;
50
57
  }
51
58
  }
52
- return { filters: out, dropped, warnings };
59
+ const adaptation = { filters: out, dropped, warnings };
60
+ if (requiresEscalation)
61
+ adaptation.requiresEscalation = true;
62
+ return adaptation;
53
63
  };
64
+ const mappingSummary = summarizeMappings(config.pluralToSingular);
54
65
  return {
55
66
  id: config.id,
56
67
  adaptGetFilters,
68
+ mappingSummary,
57
69
  ...(config.disabledSearchEndpoints !== undefined && {
58
70
  disabledSearchEndpoints: config.disabledSearchEndpoints,
59
71
  }),
60
72
  ...(config.notes !== undefined && { notes: config.notes }),
73
+ ...(config.normalizeRow !== undefined && { normalizeRow: config.normalizeRow }),
61
74
  };
62
75
  }
76
+ /**
77
+ * Coerce the mapping table from author-friendly mixed shape (string shorthand
78
+ * or `{target, verified}`) into the canonical `DialectFilterMapping` shape
79
+ * the adapter loop uses. Done once at construction so the hot path stays
80
+ * branch-light.
81
+ */
82
+ function normalizeMappings(raw) {
83
+ const out = {};
84
+ for (const [endpoint, mapping] of Object.entries(raw)) {
85
+ const endpointOut = {};
86
+ for (const [key, entry] of Object.entries(mapping)) {
87
+ endpointOut[key] =
88
+ typeof entry === 'string' ? { target: entry, verified: false } : { ...entry };
89
+ }
90
+ out[endpoint] = endpointOut;
91
+ }
92
+ return out;
93
+ }
94
+ /**
95
+ * Summarize the verified-vs-inferred breakdown across this dialect's full
96
+ * mapping table. Surfaced on the orientation envelope so agents can see the
97
+ * dialect's confidence floor without inspecting source. Counts each
98
+ * (endpoint, plural-key) pair as one mapping. Returns `{verified: 0,
99
+ * inferred: 0}` for dialects without `pluralToSingular` data (spec, …).
100
+ */
101
+ function summarizeMappings(raw) {
102
+ let verified = 0;
103
+ let inferred = 0;
104
+ for (const endpointMap of Object.values(raw)) {
105
+ for (const entry of Object.values(endpointMap)) {
106
+ const isVerified = typeof entry === 'object' && entry.verified;
107
+ if (isVerified)
108
+ verified++;
109
+ else
110
+ inferred++;
111
+ }
112
+ }
113
+ return { verified, inferred };
114
+ }
63
115
  //# sourceMappingURL=singularizing-dialect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"singularizing-dialect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/singularizing-dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA+BH,MAAM,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAkC;IAC3E,MAAM,eAAe,GAAG,CACtB,QAAgB,EAChB,OAA0C,EACvB,EAAE;QACrB,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC;QACvE,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,CAAC,KAAK,6BAA6B,GAAG,yEAAyE,CACzH,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBACjC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,CAAC,KAAK,cAAc,GAAG,kBAAkB,MAAM,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mCAAmC,QAAQ,0IAA0I,CAClS,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC7C,CAAC,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,eAAe;QACf,GAAG,CAAC,MAAM,CAAC,uBAAuB,KAAK,SAAS,IAAI;YAClD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;SACxD,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"singularizing-dialect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/singularizing-dialect.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,15 @@ export interface DialectAdaptation {
31
31
  */
32
32
  dropped: readonly string[];
33
33
  filters: Record<string, unknown>;
34
+ /**
35
+ * True when at least one multi-value array filter was downcast to a single
36
+ * scalar (because the active GET dialect only honors single values per
37
+ * filter). The caller can use this signal to prefer POST `/search/{noun}`
38
+ * when the upstream advertises a working search route — the search body
39
+ * preserves the original multi-value semantics that the GET wire shape
40
+ * would have lost. Absent (or false) when no downcast occurred.
41
+ */
42
+ requiresEscalation?: boolean;
34
43
  warnings: string[];
35
44
  }
36
45
  /**
@@ -63,6 +72,34 @@ export interface BrapiDialect {
63
72
  */
64
73
  readonly disabledSearchEndpoints?: ReadonlySet<string>;
65
74
  readonly id: string;
75
+ /**
76
+ * Aggregate confidence breakdown for the dialect's filter-translation
77
+ * table. `verified` entries were empirically narrowed against a live server
78
+ * during dialect bring-up; `inferred` entries follow the v2.0/v2.1 naming
79
+ * pattern but haven't been independently checked. Surfaced on the
80
+ * orientation envelope so agents can see the dialect's confidence floor at
81
+ * a glance.
82
+ *
83
+ * Omitted on dialects with no translation table (the default `spec`
84
+ * dialect, custom dialects that override `adaptGetFilters` directly).
85
+ */
86
+ readonly mappingSummary?: {
87
+ inferred: number;
88
+ verified: number;
89
+ };
90
+ /**
91
+ * Coerce one upstream row into a canonical shape before schema validation.
92
+ * Implementations strip server-specific encodings of "missing" — e.g.
93
+ * CassavaBase returns `null` for many optional fields where the BrAPI v2.1
94
+ * spec says the field should be omitted entirely. Returning a fresh object
95
+ * with the null keys dropped lets the row schemas express the natural
96
+ * "field is absent" via `optional()` without every schema absorbing a
97
+ * `.nullish()` per field.
98
+ *
99
+ * Implementations must not mutate the input. The default `spec` dialect
100
+ * omits this method (passthrough).
101
+ */
102
+ readonly normalizeRow?: (endpoint: string, row: Record<string, unknown>) => Record<string, unknown>;
66
103
  /**
67
104
  * Human-readable compatibility notes surfaced in brapi_connect /
68
105
  * brapi_server_info. Use this for verified quirks that are handled outside
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;OASG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC;IACjG;;;;;;;;;OASG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;OASG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC;IACjG;;;;;;;;;OASG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-bridge.d.ts","sourceRoot":"","sources":["../../../src/services/canvas-bridge/canvas-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-bridge.d.ts","sourceRoot":"","sources":["../../../src/services/canvas-bridge/canvas-bridge.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@
16
16
  */
17
17
  import { unlink } from 'node:fs/promises';
18
18
  import { JsonRpcErrorCode, McpError, validationError } from '@cyanheads/mcp-ts-core/errors';
19
+ import { idGenerator } from '@cyanheads/mcp-ts-core/utils';
19
20
  /**
20
21
  * Construct a `RequestContext` slice from the handler `Context`. The
21
22
  * framework's `RequestContext` carries an `[key: string]: unknown` index
@@ -308,12 +309,16 @@ export class CanvasBridge {
308
309
  }
309
310
  }
310
311
  /**
311
- * Generate a fresh canvas-safe dataframe name. Hyphens in `crypto.randomUUID()`
312
- * fail the canvas identifier gate, so we replace them with underscores and
313
- * prefix with `df_` to mark the namespace as auto-registered.
312
+ * Generate a fresh canvas-safe dataframe name in the form
313
+ * `df_XXXXX_XXXXX` 10 random chars from `A–Z 0–9`, split into two 5-char
314
+ * groups by `_` for readability. Keyspace is ~3.7×10^15 (36^10), unguessable
315
+ * for the (tenant, session)-bucketed capability-token model and short enough
316
+ * that the name renders cleanly in inline tool output.
314
317
  */
315
318
  function generateDataframeName() {
316
- return `${DATAFRAME_TABLE_PREFIX}${crypto.randomUUID().replace(/-/g, '_')}`;
319
+ const left = idGenerator.generateRandomString(5);
320
+ const right = idGenerator.generateRandomString(5);
321
+ return `${DATAFRAME_TABLE_PREFIX}${left}_${right}`;
317
322
  }
318
323
  /**
319
324
  * Reason string set on `validationError.data.reason` when a query is rejected
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-bridge.js","sourceRoot":"","sources":["../../../src/services/canvas-bridge/canvas-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-bridge.js","sourceRoot":"","sources":["../../../src/services/canvas-bridge/canvas-bridge.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cyanheads/brapi-mcp-server",
3
3
  "mcpName": "io.github.cyanheads/brapi-mcp-server",
4
- "version": "0.5.4",
4
+ "version": "0.6.0",
5
5
  "description": "A collaborative BrAPI v2.1 workspace for multi-agent research via MCP. Search studies, germplasm, genotypes, & more - across Breedbase, T3, Sweetpotatobase, & any BrAPI v2-compliant server.",
6
6
  "author": "Casey Hand @cyanheads (https://github.com/cyanheads/brapi-mcp-server#readme)",
7
7
  "type": "module",
@@ -71,17 +71,17 @@
71
71
  "access": "public"
72
72
  },
73
73
  "dependencies": {
74
- "@cyanheads/mcp-ts-core": "^0.8.19",
75
- "@duckdb/node-api": "^1.5.2-r.1",
74
+ "@cyanheads/mcp-ts-core": "^0.9.1",
75
+ "@duckdb/node-api": "^1.5.3-r.1",
76
76
  "pino-pretty": "^13.1.3"
77
77
  },
78
78
  "devDependencies": {
79
- "@biomejs/biome": "^2.4.14",
80
- "@types/node": "^25.6.2",
79
+ "@biomejs/biome": "^2.4.15",
80
+ "@types/node": "^25.9.1",
81
81
  "depcheck": "^1.4.7",
82
82
  "ignore": "^7.0.5",
83
83
  "tsc-alias": "^1.8.17",
84
84
  "typescript": "^6.0.3",
85
- "vitest": "^4.1.5"
85
+ "vitest": "^4.1.7"
86
86
  }
87
87
  }
package/server.json CHANGED
@@ -6,14 +6,14 @@
6
6
  "url": "https://github.com/cyanheads/brapi-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.5.4",
9
+ "version": "0.6.0",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "registryBaseUrl": "https://registry.npmjs.org",
14
14
  "identifier": "@cyanheads/brapi-mcp-server",
15
15
  "runtimeHint": "bun",
16
- "version": "0.5.4",
16
+ "version": "0.6.0",
17
17
  "packageArguments": [
18
18
  { "type": "positional", "value": "run" },
19
19
  { "type": "positional", "value": "start:stdio" }
@@ -49,7 +49,7 @@
49
49
  "registryBaseUrl": "https://registry.npmjs.org",
50
50
  "identifier": "@cyanheads/brapi-mcp-server",
51
51
  "runtimeHint": "bun",
52
- "version": "0.5.4",
52
+ "version": "0.6.0",
53
53
  "packageArguments": [
54
54
  { "type": "positional", "value": "run" },
55
55
  { "type": "positional", "value": "start:http" }