@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.
- package/CLAUDE.md +3 -2
- package/README.md +1 -1
- package/changelog/0.4.x/0.4.0.md +29 -0
- package/changelog/0.4.x/0.4.1.md +20 -0
- package/changelog/0.4.x/0.4.2.md +23 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts +11 -0
- package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts +19 -14
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js +24 -13
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js +53 -31
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts +16 -16
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js +32 -18
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js +12 -2
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts +20 -20
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js +40 -21
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts +0 -1
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js +22 -11
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js +17 -4
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts +3 -3
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js +14 -5
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts +7 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js +19 -0
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts +11 -0
- package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +86 -55
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.d.ts +16 -0
- package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.js +25 -0
- package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
- package/dist/mcp-server/tools/shared/orientation-envelope.d.ts +22 -0
- package/dist/mcp-server/tools/shared/orientation-envelope.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/orientation-envelope.js +39 -0
- package/dist/mcp-server/tools/shared/orientation-envelope.js.map +1 -1
- package/dist/services/brapi-dialect/cassavabase-dialect.d.ts +28 -0
- package/dist/services/brapi-dialect/cassavabase-dialect.d.ts.map +1 -0
- package/dist/services/brapi-dialect/cassavabase-dialect.js +196 -0
- package/dist/services/brapi-dialect/cassavabase-dialect.js.map +1 -0
- package/dist/services/brapi-dialect/detect.d.ts +53 -0
- package/dist/services/brapi-dialect/detect.d.ts.map +1 -0
- package/dist/services/brapi-dialect/detect.js +68 -0
- package/dist/services/brapi-dialect/detect.js.map +1 -0
- package/dist/services/brapi-dialect/index.d.ts +29 -0
- package/dist/services/brapi-dialect/index.d.ts.map +1 -0
- package/dist/services/brapi-dialect/index.js +31 -0
- package/dist/services/brapi-dialect/index.js.map +1 -0
- package/dist/services/brapi-dialect/registry.d.ts +25 -0
- package/dist/services/brapi-dialect/registry.d.ts.map +1 -0
- package/dist/services/brapi-dialect/registry.js +39 -0
- package/dist/services/brapi-dialect/registry.js.map +1 -0
- package/dist/services/brapi-dialect/spec-dialect.d.ts +13 -0
- package/dist/services/brapi-dialect/spec-dialect.d.ts.map +1 -0
- package/dist/services/brapi-dialect/spec-dialect.js +17 -0
- package/dist/services/brapi-dialect/spec-dialect.js.map +1 -0
- package/dist/services/brapi-dialect/types.d.ts +58 -0
- package/dist/services/brapi-dialect/types.d.ts.map +1 -0
- package/dist/services/brapi-dialect/types.js +18 -0
- package/dist/services/brapi-dialect/types.js.map +1 -0
- package/package.json +1 -1
- 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"}
|