@cyanheads/brapi-mcp-server 0.3.9 → 0.4.2

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 (80) hide show
  1. package/CLAUDE.md +3 -2
  2. package/README.md +1 -1
  3. package/changelog/0.4.x/0.4.0.md +29 -0
  4. package/changelog/0.4.x/0.4.1.md +20 -0
  5. package/changelog/0.4.x/0.4.2.md +23 -0
  6. package/dist/index.js +2 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts +11 -0
  9. package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts.map +1 -1
  10. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts +19 -14
  11. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts.map +1 -1
  12. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js +24 -13
  13. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js.map +1 -1
  14. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js +53 -31
  16. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js.map +1 -1
  17. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts +16 -16
  18. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js +32 -18
  20. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js +12 -2
  23. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts +20 -20
  25. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts.map +1 -1
  26. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js +40 -21
  27. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js.map +1 -1
  28. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts +0 -1
  29. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts.map +1 -1
  30. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js +22 -11
  31. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js.map +1 -1
  32. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts.map +1 -1
  33. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js +17 -4
  34. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js.map +1 -1
  35. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts +3 -3
  36. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts.map +1 -1
  37. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js +14 -5
  38. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js.map +1 -1
  39. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts +7 -1
  40. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts.map +1 -1
  41. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js +19 -0
  42. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js.map +1 -1
  43. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts +11 -0
  44. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts.map +1 -1
  45. package/dist/mcp-server/tools/definitions/index.d.ts +86 -55
  46. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  47. package/dist/mcp-server/tools/shared/find-helpers.d.ts +16 -0
  48. package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
  49. package/dist/mcp-server/tools/shared/find-helpers.js +25 -0
  50. package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
  51. package/dist/mcp-server/tools/shared/orientation-envelope.d.ts +22 -0
  52. package/dist/mcp-server/tools/shared/orientation-envelope.d.ts.map +1 -1
  53. package/dist/mcp-server/tools/shared/orientation-envelope.js +39 -0
  54. package/dist/mcp-server/tools/shared/orientation-envelope.js.map +1 -1
  55. package/dist/services/brapi-dialect/cassavabase-dialect.d.ts +28 -0
  56. package/dist/services/brapi-dialect/cassavabase-dialect.d.ts.map +1 -0
  57. package/dist/services/brapi-dialect/cassavabase-dialect.js +196 -0
  58. package/dist/services/brapi-dialect/cassavabase-dialect.js.map +1 -0
  59. package/dist/services/brapi-dialect/detect.d.ts +53 -0
  60. package/dist/services/brapi-dialect/detect.d.ts.map +1 -0
  61. package/dist/services/brapi-dialect/detect.js +68 -0
  62. package/dist/services/brapi-dialect/detect.js.map +1 -0
  63. package/dist/services/brapi-dialect/index.d.ts +29 -0
  64. package/dist/services/brapi-dialect/index.d.ts.map +1 -0
  65. package/dist/services/brapi-dialect/index.js +31 -0
  66. package/dist/services/brapi-dialect/index.js.map +1 -0
  67. package/dist/services/brapi-dialect/registry.d.ts +25 -0
  68. package/dist/services/brapi-dialect/registry.d.ts.map +1 -0
  69. package/dist/services/brapi-dialect/registry.js +39 -0
  70. package/dist/services/brapi-dialect/registry.js.map +1 -0
  71. package/dist/services/brapi-dialect/spec-dialect.d.ts +13 -0
  72. package/dist/services/brapi-dialect/spec-dialect.d.ts.map +1 -0
  73. package/dist/services/brapi-dialect/spec-dialect.js +17 -0
  74. package/dist/services/brapi-dialect/spec-dialect.js.map +1 -0
  75. package/dist/services/brapi-dialect/types.d.ts +58 -0
  76. package/dist/services/brapi-dialect/types.d.ts.map +1 -0
  77. package/dist/services/brapi-dialect/types.js +18 -0
  78. package/dist/services/brapi-dialect/types.js.map +1 -0
  79. package/package.json +1 -1
  80. package/server.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"orientation-envelope.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/shared/orientation-envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orientation-envelope.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/shared/orientation-envelope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview Dialect for CassavaBase (and other CXGN / SGN-derived BrAPI
3
+ * deployments — Sweetpotatobase, Yambase, Musabase, BananaBase, etc.). These
4
+ * servers run the SGN BrAPI implementation, which predates the BrAPI v2.1
5
+ * filter-name normalization and only honors the older **singular** query
6
+ * parameters on GET list endpoints. Sending `commonCropNames=Cassava` is
7
+ * silently ignored upstream — the singular `commonCropName=Cassava` works.
8
+ * Empirically verified against `https://cassavabase.org/brapi/v2` on
9
+ * 2026-04-30.
10
+ *
11
+ * The dialect:
12
+ * 1. Translates plural filter keys to their singular equivalents per
13
+ * endpoint, downcasting array values to the first element with a loud
14
+ * warning when more than one value was supplied (the GET surface can't
15
+ * express multi-value filters; the spec-defined POST `/search/{noun}`
16
+ * route is advertised but unresponsive in practice).
17
+ * 2. Drops filters that the server doesn't honor at all (`searchText` —
18
+ * we invented this earlier; not in the BrAPI v2.1 spec, no SGN-family
19
+ * server honors it).
20
+ *
21
+ * Future capabilities (search-body translation, output normalization) attach
22
+ * here as optional methods on the same dialect.
23
+ *
24
+ * @module services/brapi-dialect/cassavabase-dialect
25
+ */
26
+ import type { BrapiDialect } from './types.js';
27
+ export declare const cassavabaseDialect: BrapiDialect;
28
+ //# sourceMappingURL=cassavabase-dialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cassavabase-dialect.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/cassavabase-dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAC;AA6IlE,eAAO,MAAM,kBAAkB,EAAE,YAqChC,CAAC"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * @fileoverview Dialect for CassavaBase (and other CXGN / SGN-derived BrAPI
3
+ * deployments — Sweetpotatobase, Yambase, Musabase, BananaBase, etc.). These
4
+ * servers run the SGN BrAPI implementation, which predates the BrAPI v2.1
5
+ * filter-name normalization and only honors the older **singular** query
6
+ * parameters on GET list endpoints. Sending `commonCropNames=Cassava` is
7
+ * silently ignored upstream — the singular `commonCropName=Cassava` works.
8
+ * Empirically verified against `https://cassavabase.org/brapi/v2` on
9
+ * 2026-04-30.
10
+ *
11
+ * The dialect:
12
+ * 1. Translates plural filter keys to their singular equivalents per
13
+ * endpoint, downcasting array values to the first element with a loud
14
+ * warning when more than one value was supplied (the GET surface can't
15
+ * express multi-value filters; the spec-defined POST `/search/{noun}`
16
+ * route is advertised but unresponsive in practice).
17
+ * 2. Drops filters that the server doesn't honor at all (`searchText` —
18
+ * we invented this earlier; not in the BrAPI v2.1 spec, no SGN-family
19
+ * server honors it).
20
+ *
21
+ * Future capabilities (search-body translation, output normalization) attach
22
+ * here as optional methods on the same dialect.
23
+ *
24
+ * @module services/brapi-dialect/cassavabase-dialect
25
+ */
26
+ /**
27
+ * Plural BrAPI v2.1 filter key → singular form CassavaBase honors. Keyed by
28
+ * endpoint resource segment (matches the path's first segment, no leading
29
+ * slash). Endpoints not listed here pass through with zero translation.
30
+ *
31
+ * Mappings reflect what's empirically verified to filter; entries marked
32
+ * `// observed: works` were narrowed against a live CassavaBase deployment.
33
+ * Other singulars follow the same naming pattern but haven't been
34
+ * independently verified — the post-fetch `checkFilterMatchRates` heuristic
35
+ * in `find-helpers` will surface a warning when a translation doesn't reduce
36
+ * the result set as expected.
37
+ */
38
+ const PLURAL_TO_SINGULAR = {
39
+ studies: {
40
+ commonCropNames: 'commonCropName', // observed: works
41
+ studyTypes: 'studyType',
42
+ programDbIds: 'programDbId', // observed: works
43
+ programNames: 'programName',
44
+ trialDbIds: 'trialDbId', // observed: works
45
+ trialNames: 'trialName',
46
+ locationNames: 'locationName',
47
+ seasonDbIds: 'seasonDbId', // observed: works
48
+ studyDbIds: 'studyDbId',
49
+ studyNames: 'studyName',
50
+ studyCodes: 'studyCode',
51
+ studyPUIs: 'studyPUI',
52
+ externalReferenceIds: 'externalReferenceId',
53
+ externalReferenceSources: 'externalReferenceSource',
54
+ },
55
+ germplasm: {
56
+ commonCropNames: 'commonCropName',
57
+ germplasmDbIds: 'germplasmDbId',
58
+ germplasmNames: 'germplasmName',
59
+ germplasmPUIs: 'germplasmPUI',
60
+ accessionNumbers: 'accessionNumber',
61
+ collections: 'collection',
62
+ synonyms: 'synonym',
63
+ programDbIds: 'programDbId',
64
+ trialDbIds: 'trialDbId',
65
+ studyDbIds: 'studyDbId',
66
+ externalReferenceIds: 'externalReferenceId',
67
+ },
68
+ observations: {
69
+ studyDbIds: 'studyDbId', // observed: works
70
+ germplasmDbIds: 'germplasmDbId',
71
+ observationVariableDbIds: 'observationVariableDbId',
72
+ observationUnitDbIds: 'observationUnitDbId',
73
+ observationDbIds: 'observationDbId',
74
+ seasonDbIds: 'seasonDbId',
75
+ programDbIds: 'programDbId',
76
+ trialDbIds: 'trialDbId',
77
+ observationLevels: 'observationLevel',
78
+ },
79
+ locations: {
80
+ locationDbIds: 'locationDbId',
81
+ locationNames: 'locationName',
82
+ countryCodes: 'countryCode',
83
+ locationTypes: 'locationType',
84
+ abbreviations: 'abbreviation',
85
+ },
86
+ variables: {
87
+ observationVariableDbIds: 'observationVariableDbId',
88
+ observationVariableNames: 'observationVariableName',
89
+ observationVariablePUIs: 'observationVariablePUI',
90
+ traitClasses: 'traitClass',
91
+ methodDbIds: 'methodDbId',
92
+ scaleDbIds: 'scaleDbId',
93
+ ontologyDbIds: 'ontologyDbId',
94
+ },
95
+ images: {
96
+ imageDbIds: 'imageDbId',
97
+ observationUnitDbIds: 'observationUnitDbId',
98
+ observationDbIds: 'observationDbId',
99
+ studyDbIds: 'studyDbId',
100
+ imageFileNames: 'imageFileName',
101
+ mimeTypes: 'mimeType',
102
+ descriptiveOntologyTerms: 'descriptiveOntologyTerm',
103
+ },
104
+ variants: {
105
+ variantSetDbIds: 'variantSetDbId',
106
+ variantDbIds: 'variantDbId',
107
+ referenceDbIds: 'referenceDbId',
108
+ },
109
+ trials: {
110
+ commonCropNames: 'commonCropName',
111
+ programDbIds: 'programDbId',
112
+ trialDbIds: 'trialDbId',
113
+ trialNames: 'trialName',
114
+ },
115
+ programs: {
116
+ commonCropNames: 'commonCropName',
117
+ programDbIds: 'programDbId',
118
+ programNames: 'programName',
119
+ },
120
+ };
121
+ /**
122
+ * Filters CassavaBase silently ignores entirely — drop them from the wire and
123
+ * surface a warning so the agent stops trusting the response as if the filter
124
+ * were honored. `searchText` is a non-spec extension we invented earlier;
125
+ * no SGN-family server recognizes it. `locationDbIds` (and the singular
126
+ * `locationDbId`) on `/studies` was empirically verified to leak: requesting
127
+ * `locationDbId=3` still returned studies for other locations (Mokwa, Zaria).
128
+ * Until we have a working alternative, narrow location-wise post-fetch via
129
+ * `locationName` distribution or a follow-up `brapi_get_study` call.
130
+ */
131
+ const DROPPED_FILTERS = {
132
+ studies: new Set(['searchText', 'locationDbIds', 'locationDbId']),
133
+ germplasm: new Set(['searchText']),
134
+ };
135
+ const EMPTY_DROP_SET = new Set();
136
+ /**
137
+ * POST `/search/{noun}` routes CassavaBase advertises in `/calls` but does not
138
+ * actually serve. Probing them in practice yields hangs, 5xx responses, or
139
+ * empty envelopes that look successful but never carry data. Curated GET
140
+ * tools (which the dialect already adapts to singular filters) cover the
141
+ * same surface, so we route agents away from these dead endpoints with a
142
+ * clear recovery hint instead of letting the request hang.
143
+ *
144
+ * Read endpoints we have curated GET tools for are listed; `calls` (genotype
145
+ * data) is intentionally absent — async POST is the only realistic delivery
146
+ * for bulk variant calls and we have no contrary evidence that route is dead.
147
+ */
148
+ const DISABLED_SEARCH_ENDPOINTS = new Set([
149
+ 'germplasm',
150
+ 'studies',
151
+ 'observations',
152
+ 'observationunits',
153
+ 'locations',
154
+ 'variables',
155
+ 'images',
156
+ 'variants',
157
+ 'variantsets',
158
+ 'samples',
159
+ 'callsets',
160
+ ]);
161
+ export const cassavabaseDialect = {
162
+ id: 'cassavabase',
163
+ disabledSearchEndpoints: DISABLED_SEARCH_ENDPOINTS,
164
+ adaptGetFilters(endpoint, filters) {
165
+ const mapping = PLURAL_TO_SINGULAR[endpoint] ?? {};
166
+ const dropped = DROPPED_FILTERS[endpoint] ?? EMPTY_DROP_SET;
167
+ const out = {};
168
+ const warnings = [];
169
+ for (const [key, value] of Object.entries(filters)) {
170
+ if (value === undefined)
171
+ continue;
172
+ if (dropped.has(key)) {
173
+ warnings.push(`Cassavabase dialect: dropped filter '${key}' — this server does not honor it. Adjust the query or omit the filter.`);
174
+ continue;
175
+ }
176
+ const target = mapping[key];
177
+ if (!target) {
178
+ out[key] = value;
179
+ continue;
180
+ }
181
+ if (Array.isArray(value)) {
182
+ if (value.length === 0)
183
+ continue;
184
+ out[target] = value[0];
185
+ if (value.length > 1) {
186
+ warnings.push(`Cassavabase dialect: '${key}' downcast to '${target}'; only the first value (${JSON.stringify(value[0])}) was sent — Cassavabase'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.`);
187
+ }
188
+ }
189
+ else {
190
+ out[target] = value;
191
+ }
192
+ }
193
+ return { filters: out, warnings };
194
+ },
195
+ };
196
+ //# sourceMappingURL=cassavabase-dialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cassavabase-dialect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/cassavabase-dialect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @fileoverview Dialect detection — picks a dialect id for a connection from
3
+ * the cached `CapabilityProfile` (server name / organization) plus an env
4
+ * override (`BRAPI_<ALIAS>_DIALECT`). Pure functions; the async lookup that
5
+ * pulls the profile lives in `index.ts → resolveDialect`.
6
+ *
7
+ * Supported override values match registered dialect ids: `spec`, `cassavabase`.
8
+ * `auto` (or unset) triggers detection from the profile.
9
+ *
10
+ * @module services/brapi-dialect/detect
11
+ */
12
+ import type { CapabilityProfile } from '../../services/capability-registry/types.js';
13
+ /**
14
+ * Where the resolved dialect id came from. Surfaced in the orientation
15
+ * envelope so agents (and operators reading logs) can tell whether the
16
+ * dialect was pinned, inferred from `/serverinfo`, or fell through to the
17
+ * spec passthrough.
18
+ *
19
+ * - `env-override` — the operator pinned `BRAPI_<ALIAS>_DIALECT`.
20
+ * - `server-name` — matched on `serverInfo.serverName`.
21
+ * - `organization-name` — matched on `serverInfo.organizationName` (used when
22
+ * the server name is generic but the host is a known SGN deployment).
23
+ * - `fallback` — nothing matched; defaulted to the `spec` passthrough.
24
+ */
25
+ export type DialectDetectionSource = 'env-override' | 'server-name' | 'organization-name' | 'fallback';
26
+ export interface DialectDetection {
27
+ id: string;
28
+ source: DialectDetectionSource;
29
+ }
30
+ /** Compute the env-var name for an alias. `my-server` → `BRAPI_MY_SERVER_DIALECT`. */
31
+ export declare function dialectEnvVar(alias: string): string;
32
+ /**
33
+ * Read the per-alias dialect override. Returns `undefined` when unset, empty,
34
+ * or `auto` (case-insensitive) — those all defer to detection.
35
+ */
36
+ export declare function readDialectOverride(alias: string, env?: NodeJS.ProcessEnv): string | undefined;
37
+ /**
38
+ * Pattern-match a server name (or organization name) to a registered dialect
39
+ * id. Falls back to `spec` when nothing matches. Match is case-insensitive
40
+ * and substring-based — `CassavaBase`, `Sweetpotatobase`, etc. all share the
41
+ * SGN BrAPI implementation and resolve to the `cassavabase` dialect.
42
+ *
43
+ * Returns both the matched id and which field triggered the match so callers
44
+ * can surface that provenance to the agent.
45
+ */
46
+ export declare function detectDialectFromName(name: string | undefined, organizationName?: string | undefined): DialectDetection;
47
+ /**
48
+ * End-to-end detection: env override beats profile inference. Returns the
49
+ * resolved dialect id and the source that produced it. Callers that only
50
+ * need the id can read `.id`; the orientation envelope reads both.
51
+ */
52
+ export declare function detectDialectId(alias: string, profile: CapabilityProfile | undefined, env?: NodeJS.ProcessEnv): DialectDetection;
53
+ //# sourceMappingURL=detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAKjF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,sBAAsB,GAC9B,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,UAAU,CAAC;AAEf,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAKpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GACpC,gBAAgB,CAelB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,gBAAgB,CAIlB"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @fileoverview Dialect detection — picks a dialect id for a connection from
3
+ * the cached `CapabilityProfile` (server name / organization) plus an env
4
+ * override (`BRAPI_<ALIAS>_DIALECT`). Pure functions; the async lookup that
5
+ * pulls the profile lives in `index.ts → resolveDialect`.
6
+ *
7
+ * Supported override values match registered dialect ids: `spec`, `cassavabase`.
8
+ * `auto` (or unset) triggers detection from the profile.
9
+ *
10
+ * @module services/brapi-dialect/detect
11
+ */
12
+ const ENV_PREFIX = 'BRAPI_';
13
+ const ENV_SUFFIX = '_DIALECT';
14
+ /** Compute the env-var name for an alias. `my-server` → `BRAPI_MY_SERVER_DIALECT`. */
15
+ export function dialectEnvVar(alias) {
16
+ return `${ENV_PREFIX}${alias.replace(/-/g, '_').toUpperCase()}${ENV_SUFFIX}`;
17
+ }
18
+ /**
19
+ * Read the per-alias dialect override. Returns `undefined` when unset, empty,
20
+ * or `auto` (case-insensitive) — those all defer to detection.
21
+ */
22
+ export function readDialectOverride(alias, env = process.env) {
23
+ const raw = env[dialectEnvVar(alias)]?.trim();
24
+ if (!raw)
25
+ return;
26
+ if (raw.toLowerCase() === 'auto')
27
+ return;
28
+ return raw;
29
+ }
30
+ /**
31
+ * Pattern-match a server name (or organization name) to a registered dialect
32
+ * id. Falls back to `spec` when nothing matches. Match is case-insensitive
33
+ * and substring-based — `CassavaBase`, `Sweetpotatobase`, etc. all share the
34
+ * SGN BrAPI implementation and resolve to the `cassavabase` dialect.
35
+ *
36
+ * Returns both the matched id and which field triggered the match so callers
37
+ * can surface that provenance to the agent.
38
+ */
39
+ export function detectDialectFromName(name, organizationName) {
40
+ const lowerName = (name ?? '').toLowerCase();
41
+ const lowerOrg = (organizationName ?? '').toLowerCase();
42
+ if (!lowerName.trim() && !lowerOrg.trim())
43
+ return { id: 'spec', source: 'fallback' };
44
+ const isSgnHost = (haystack) => haystack.includes('cassavabase') ||
45
+ haystack.includes('sweetpotatobase') ||
46
+ haystack.includes('yambase') ||
47
+ haystack.includes('musabase') ||
48
+ haystack.includes('bananabase') ||
49
+ // Catches "BTI" / "Boyce Thompson Institute" hosts running the same SGN stack.
50
+ haystack.includes('boyce thompson');
51
+ if (isSgnHost(lowerName))
52
+ return { id: 'cassavabase', source: 'server-name' };
53
+ if (isSgnHost(lowerOrg))
54
+ return { id: 'cassavabase', source: 'organization-name' };
55
+ return { id: 'spec', source: 'fallback' };
56
+ }
57
+ /**
58
+ * End-to-end detection: env override beats profile inference. Returns the
59
+ * resolved dialect id and the source that produced it. Callers that only
60
+ * need the id can read `.id`; the orientation envelope reads both.
61
+ */
62
+ export function detectDialectId(alias, profile, env = process.env) {
63
+ const override = readDialectOverride(alias, env);
64
+ if (override)
65
+ return { id: override, source: 'env-override' };
66
+ return detectDialectFromName(profile?.server.name, profile?.server.organizationName);
67
+ }
68
+ //# sourceMappingURL=detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC5B,MAAM,UAAU,GAAG,UAAU,CAAC;AAyB9B,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAa,EACb,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM;QAAE,OAAO;IACzC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAwB,EACxB,gBAAqC;IAErC,MAAM,SAAS,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrF,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE,CACrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACpC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5B,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC7B,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/B,+EAA+E;QAC/E,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACtC,IAAI,SAAS,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC9E,IAAI,SAAS,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACnF,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,OAAsC,EACtC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC9D,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACvF,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @fileoverview Public API for the BrAPI dialect service. Tools call
3
+ * `resolveDialect(connection, ctx)` to get a per-connection adapter, then
4
+ * `dialect.adaptGetFilters(endpoint, filters)` before serializing a GET
5
+ * call. Detection runs once per connection per ctx (the underlying
6
+ * capability profile is cached in `ctx.state`), so repeated calls are
7
+ * cheap.
8
+ *
9
+ * @module services/brapi-dialect
10
+ */
11
+ import type { Context } from '@cyanheads/mcp-ts-core';
12
+ import type { ResolvedAuth } from '../../services/brapi-client/index.js';
13
+ import type { RegisteredServer } from '../../services/server-registry/index.js';
14
+ import type { BrapiDialect } from './types.js';
15
+ export { cassavabaseDialect } from './cassavabase-dialect.js';
16
+ export { type DialectDetection, type DialectDetectionSource, detectDialectFromName, detectDialectId, dialectEnvVar, readDialectOverride, } from './detect.js';
17
+ export { getDialectById, initBrapiDialectRegistry, listRegisteredDialectIds, registerDialect, resetBrapiDialectRegistry, } from './registry.js';
18
+ export { specDialect } from './spec-dialect.js';
19
+ export type { BrapiDialect, DialectAdaptation } from './types.js';
20
+ /**
21
+ * Resolve the dialect for a registered connection. Reads the env override
22
+ * first (`BRAPI_<ALIAS>_DIALECT`); on miss, falls back to detection from
23
+ * the cached capability profile. The profile lookup is the same one tools
24
+ * already trigger via `capabilities.ensure()` so this adds zero HTTP.
25
+ */
26
+ export declare function resolveDialect(connection: RegisteredServer, ctx: Context, options?: {
27
+ auth?: ResolvedAuth | undefined;
28
+ }): Promise<BrapiDialect>;
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,wBAAwB,EACxB,eAAe,EACf,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,gBAAgB,EAC5B,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;CAAO,GAChD,OAAO,CAAC,YAAY,CAAC,CAKvB"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @fileoverview Public API for the BrAPI dialect service. Tools call
3
+ * `resolveDialect(connection, ctx)` to get a per-connection adapter, then
4
+ * `dialect.adaptGetFilters(endpoint, filters)` before serializing a GET
5
+ * call. Detection runs once per connection per ctx (the underlying
6
+ * capability profile is cached in `ctx.state`), so repeated calls are
7
+ * cheap.
8
+ *
9
+ * @module services/brapi-dialect
10
+ */
11
+ import { getCapabilityRegistry } from '../../services/capability-registry/index.js';
12
+ import { detectDialectId } from './detect.js';
13
+ import { getDialectById } from './registry.js';
14
+ export { cassavabaseDialect } from './cassavabase-dialect.js';
15
+ export { detectDialectFromName, detectDialectId, dialectEnvVar, readDialectOverride, } from './detect.js';
16
+ export { getDialectById, initBrapiDialectRegistry, listRegisteredDialectIds, registerDialect, resetBrapiDialectRegistry, } from './registry.js';
17
+ export { specDialect } from './spec-dialect.js';
18
+ /**
19
+ * Resolve the dialect for a registered connection. Reads the env override
20
+ * first (`BRAPI_<ALIAS>_DIALECT`); on miss, falls back to detection from
21
+ * the cached capability profile. The profile lookup is the same one tools
22
+ * already trigger via `capabilities.ensure()` so this adds zero HTTP.
23
+ */
24
+ export async function resolveDialect(connection, ctx, options = {}) {
25
+ const lookup = {};
26
+ if (options.auth)
27
+ lookup.auth = options.auth;
28
+ const profile = await getCapabilityRegistry().profile(connection.baseUrl, ctx, lookup);
29
+ return getDialectById(detectDialectId(connection.alias, profile).id);
30
+ }
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAGL,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,wBAAwB,EACxB,eAAe,EACf,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAA4B,EAC5B,GAAY,EACZ,UAA+C,EAAE;IAEjD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,OAAO,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACvF,OAAO,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview Dialect registry — singleton map from dialect id to
3
+ * implementation. Initialized in `setup()` with the built-in dialects;
4
+ * future plugins can register additional ones before `createApp()` returns.
5
+ * Lookups never throw — unknown ids fall back to the `spec` dialect so a
6
+ * stale env override or typo can't crash a tool call mid-flight.
7
+ *
8
+ * @module services/brapi-dialect/registry
9
+ */
10
+ import type { BrapiDialect } from './types.js';
11
+ /** Register a dialect. Last-write-wins on id collision. */
12
+ export declare function registerDialect(dialect: BrapiDialect): void;
13
+ /**
14
+ * Look up a registered dialect by id. Falls back to the `spec` (passthrough)
15
+ * dialect when the id is unknown — keeps misconfiguration loud (the dialect
16
+ * still adapts its translations) while avoiding hard failures.
17
+ */
18
+ export declare function getDialectById(id: string): BrapiDialect;
19
+ /** Wire the built-in dialects. Idempotent — safe to call multiple times. */
20
+ export declare function initBrapiDialectRegistry(): void;
21
+ /** Test-only — clear all registrations between suites. */
22
+ export declare function resetBrapiDialectRegistry(): void;
23
+ /** Test-only — list registered ids. */
24
+ export declare function listRegisteredDialectIds(): string[];
25
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAEvD;AAED,4EAA4E;AAC5E,wBAAgB,wBAAwB,IAAI,IAAI,CAI/C;AAED,0DAA0D;AAC1D,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,uCAAuC;AACvC,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAEnD"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @fileoverview Dialect registry — singleton map from dialect id to
3
+ * implementation. Initialized in `setup()` with the built-in dialects;
4
+ * future plugins can register additional ones before `createApp()` returns.
5
+ * Lookups never throw — unknown ids fall back to the `spec` dialect so a
6
+ * stale env override or typo can't crash a tool call mid-flight.
7
+ *
8
+ * @module services/brapi-dialect/registry
9
+ */
10
+ import { cassavabaseDialect } from './cassavabase-dialect.js';
11
+ import { specDialect } from './spec-dialect.js';
12
+ const REGISTRY = new Map();
13
+ /** Register a dialect. Last-write-wins on id collision. */
14
+ export function registerDialect(dialect) {
15
+ REGISTRY.set(dialect.id, dialect);
16
+ }
17
+ /**
18
+ * Look up a registered dialect by id. Falls back to the `spec` (passthrough)
19
+ * dialect when the id is unknown — keeps misconfiguration loud (the dialect
20
+ * still adapts its translations) while avoiding hard failures.
21
+ */
22
+ export function getDialectById(id) {
23
+ return REGISTRY.get(id) ?? specDialect;
24
+ }
25
+ /** Wire the built-in dialects. Idempotent — safe to call multiple times. */
26
+ export function initBrapiDialectRegistry() {
27
+ REGISTRY.clear();
28
+ registerDialect(specDialect);
29
+ registerDialect(cassavabaseDialect);
30
+ }
31
+ /** Test-only — clear all registrations between suites. */
32
+ export function resetBrapiDialectRegistry() {
33
+ REGISTRY.clear();
34
+ }
35
+ /** Test-only — list registered ids. */
36
+ export function listRegisteredDialectIds() {
37
+ return Array.from(REGISTRY.keys()).sort();
38
+ }
39
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;AAEjD,2DAA2D;AAC3D,MAAM,UAAU,eAAe,CAAC,OAAqB;IACnD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC;AACzC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,wBAAwB;IACtC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,eAAe,CAAC,WAAW,CAAC,CAAC;IAC7B,eAAe,CAAC,kBAAkB,CAAC,CAAC;AACtC,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,yBAAyB;IACvC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,wBAAwB;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @fileoverview The default `spec` dialect — passes filters through verbatim.
3
+ * Used for any server that implements BrAPI v2.1 query-string filters as
4
+ * specified (the BrAPI Community Test Server, modern PIPPA / GnpIS / Reference
5
+ * Server deployments). Selected when no server-specific dialect matches the
6
+ * detected `serverInfo.serverName`, or when an operator pins
7
+ * `BRAPI_<ALIAS>_DIALECT=spec` to override detection.
8
+ *
9
+ * @module services/brapi-dialect/spec-dialect
10
+ */
11
+ import type { BrapiDialect } from './types.js';
12
+ export declare const specDialect: BrapiDialect;
13
+ //# sourceMappingURL=spec-dialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-dialect.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/spec-dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,WAAW,EAAE,YAKzB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @fileoverview The default `spec` dialect — passes filters through verbatim.
3
+ * Used for any server that implements BrAPI v2.1 query-string filters as
4
+ * specified (the BrAPI Community Test Server, modern PIPPA / GnpIS / Reference
5
+ * Server deployments). Selected when no server-specific dialect matches the
6
+ * detected `serverInfo.serverName`, or when an operator pins
7
+ * `BRAPI_<ALIAS>_DIALECT=spec` to override detection.
8
+ *
9
+ * @module services/brapi-dialect/spec-dialect
10
+ */
11
+ export const specDialect = {
12
+ id: 'spec',
13
+ adaptGetFilters(_endpoint, filters) {
14
+ return { filters: { ...filters }, warnings: [] };
15
+ },
16
+ };
17
+ //# sourceMappingURL=spec-dialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-dialect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/spec-dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,EAAE,EAAE,MAAM;IACV,eAAe,CAAC,SAAS,EAAE,OAAO;QAChC,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACnD,CAAC;CACF,CAAC"}