@cyanheads/brapi-mcp-server 0.4.4 → 0.4.6
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 +4 -4
- package/README.md +12 -3
- package/changelog/0.4.x/0.4.5.md +25 -0
- package/changelog/0.4.x/0.4.6.md +26 -0
- package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts +1 -0
- package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts +7 -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 +23 -5
- 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 +7 -1
- 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 +23 -5
- 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 +7 -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 +23 -5
- 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 +7 -1
- 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 +23 -5
- 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 +7 -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 +23 -5
- 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 +7 -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 +22 -5
- 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 +7 -1
- 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 +23 -5
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts +1 -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 +44 -7
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/connect-auth-schema.js +2 -2
- package/dist/mcp-server/tools/shared/connect-auth-schema.js.map +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.d.ts +45 -6
- package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.js +99 -17
- package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
- package/dist/mcp-server/tools/shared/orientation-envelope.d.ts +2 -0
- package/dist/mcp-server/tools/shared/orientation-envelope.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/orientation-envelope.js +11 -0
- package/dist/mcp-server/tools/shared/orientation-envelope.js.map +1 -1
- package/dist/services/brapi-client/brapi-client.d.ts.map +1 -1
- package/dist/services/brapi-client/brapi-client.js +1 -1
- package/dist/services/brapi-client/brapi-client.js.map +1 -1
- package/dist/services/brapi-dialect/brapi-test-dialect.d.ts +24 -0
- package/dist/services/brapi-dialect/brapi-test-dialect.d.ts.map +1 -0
- package/dist/services/brapi-dialect/brapi-test-dialect.js +148 -0
- package/dist/services/brapi-dialect/brapi-test-dialect.js.map +1 -0
- package/dist/services/brapi-dialect/cassavabase-dialect.d.ts +7 -6
- package/dist/services/brapi-dialect/cassavabase-dialect.d.ts.map +1 -1
- package/dist/services/brapi-dialect/cassavabase-dialect.js +23 -42
- package/dist/services/brapi-dialect/cassavabase-dialect.js.map +1 -1
- package/dist/services/brapi-dialect/detect.d.ts +5 -3
- package/dist/services/brapi-dialect/detect.d.ts.map +1 -1
- package/dist/services/brapi-dialect/detect.js +21 -7
- package/dist/services/brapi-dialect/detect.js.map +1 -1
- package/dist/services/brapi-dialect/index.d.ts +2 -1
- package/dist/services/brapi-dialect/index.d.ts.map +1 -1
- package/dist/services/brapi-dialect/index.js +2 -1
- package/dist/services/brapi-dialect/index.js.map +1 -1
- package/dist/services/brapi-dialect/registry.d.ts.map +1 -1
- package/dist/services/brapi-dialect/registry.js +4 -1
- package/dist/services/brapi-dialect/registry.js.map +1 -1
- package/dist/services/brapi-dialect/singularizing-dialect.d.ts +47 -0
- package/dist/services/brapi-dialect/singularizing-dialect.d.ts.map +1 -0
- package/dist/services/brapi-dialect/singularizing-dialect.js +63 -0
- package/dist/services/brapi-dialect/singularizing-dialect.js.map +1 -0
- package/dist/services/brapi-dialect/spec-dialect.d.ts +7 -5
- package/dist/services/brapi-dialect/spec-dialect.d.ts.map +1 -1
- package/dist/services/brapi-dialect/spec-dialect.js +8 -6
- package/dist/services/brapi-dialect/spec-dialect.js.map +1 -1
- package/dist/services/brapi-dialect/types.d.ts +16 -1
- package/dist/services/brapi-dialect/types.d.ts.map +1 -1
- package/dist/services/capability-registry/capability-registry.d.ts.map +1 -1
- package/dist/services/capability-registry/capability-registry.js +30 -10
- package/dist/services/capability-registry/capability-registry.js.map +1 -1
- package/dist/services/capability-registry/types.d.ts +6 -0
- package/dist/services/capability-registry/types.d.ts.map +1 -1
- package/dist/services/server-registry/server-registry.d.ts +1 -0
- package/dist/services/server-registry/server-registry.d.ts.map +1 -1
- package/dist/services/server-registry/server-registry.js +31 -1
- package/dist/services/server-registry/server-registry.js.map +1 -1
- package/package.json +4 -4
- package/server.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cassavabase-dialect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/cassavabase-dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"cassavabase-dialect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/cassavabase-dialect.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* override (`BRAPI_<ALIAS>_DIALECT`). Pure functions; the async lookup that
|
|
5
5
|
* pulls the profile lives in `index.ts → resolveDialect`.
|
|
6
6
|
*
|
|
7
|
-
* Supported override values match registered dialect ids: `spec`,
|
|
7
|
+
* Supported override values match registered dialect ids: `spec`,
|
|
8
|
+
* `brapi-test`, `breedbase`, `cassavabase`.
|
|
8
9
|
* `auto` (or unset) triggers detection from the profile.
|
|
9
10
|
*
|
|
10
11
|
* @module services/brapi-dialect/detect
|
|
@@ -37,8 +38,9 @@ export declare function readDialectOverride(alias: string, env?: NodeJS.ProcessE
|
|
|
37
38
|
/**
|
|
38
39
|
* Pattern-match a server name (or organization name) to a registered dialect
|
|
39
40
|
* id. Falls back to `spec` when nothing matches. Match is case-insensitive
|
|
40
|
-
* and substring-based — `CassavaBase
|
|
41
|
-
* SGN
|
|
41
|
+
* and substring-based — `CassavaBase` keeps its historical `cassavabase`
|
|
42
|
+
* dialect id, while sister SGN / Breedbase deployments resolve to the broader
|
|
43
|
+
* `breedbase` dialect.
|
|
42
44
|
*
|
|
43
45
|
* Returns both the matched id and which field triggered the match so callers
|
|
44
46
|
* can surface that provenance to the agent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/detect.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GACpC,gBAAgB,CAwBlB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,gBAAgB,CAIlB"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* override (`BRAPI_<ALIAS>_DIALECT`). Pure functions; the async lookup that
|
|
5
5
|
* pulls the profile lives in `index.ts → resolveDialect`.
|
|
6
6
|
*
|
|
7
|
-
* Supported override values match registered dialect ids: `spec`,
|
|
7
|
+
* Supported override values match registered dialect ids: `spec`,
|
|
8
|
+
* `brapi-test`, `breedbase`, `cassavabase`.
|
|
8
9
|
* `auto` (or unset) triggers detection from the profile.
|
|
9
10
|
*
|
|
10
11
|
* @module services/brapi-dialect/detect
|
|
@@ -30,8 +31,9 @@ export function readDialectOverride(alias, env = process.env) {
|
|
|
30
31
|
/**
|
|
31
32
|
* Pattern-match a server name (or organization name) to a registered dialect
|
|
32
33
|
* id. Falls back to `spec` when nothing matches. Match is case-insensitive
|
|
33
|
-
* and substring-based — `CassavaBase
|
|
34
|
-
* SGN
|
|
34
|
+
* and substring-based — `CassavaBase` keeps its historical `cassavabase`
|
|
35
|
+
* dialect id, while sister SGN / Breedbase deployments resolve to the broader
|
|
36
|
+
* `breedbase` dialect.
|
|
35
37
|
*
|
|
36
38
|
* Returns both the matched id and which field triggered the match so callers
|
|
37
39
|
* can surface that provenance to the agent.
|
|
@@ -41,17 +43,29 @@ export function detectDialectFromName(name, organizationName) {
|
|
|
41
43
|
const lowerOrg = (organizationName ?? '').toLowerCase();
|
|
42
44
|
if (!lowerName.trim() && !lowerOrg.trim())
|
|
43
45
|
return { id: 'spec', source: 'fallback' };
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
+
const isCassavaBase = (haystack) => haystack.includes('cassavabase');
|
|
47
|
+
const isBreedbaseHost = (haystack) => haystack.includes('sweetpotatobase') ||
|
|
46
48
|
haystack.includes('yambase') ||
|
|
47
49
|
haystack.includes('musabase') ||
|
|
48
50
|
haystack.includes('bananabase') ||
|
|
51
|
+
haystack.includes('breedbase') ||
|
|
52
|
+
haystack.includes('sol genomics') ||
|
|
53
|
+
haystack.includes('solgenomics') ||
|
|
49
54
|
// Catches "BTI" / "Boyce Thompson Institute" hosts running the same SGN stack.
|
|
50
55
|
haystack.includes('boyce thompson');
|
|
51
|
-
|
|
56
|
+
const isBrapiTestHost = (haystack) => haystack.includes('brapi test') || haystack.includes('community test server');
|
|
57
|
+
if (isCassavaBase(lowerName))
|
|
52
58
|
return { id: 'cassavabase', source: 'server-name' };
|
|
53
|
-
if (
|
|
59
|
+
if (isCassavaBase(lowerOrg))
|
|
54
60
|
return { id: 'cassavabase', source: 'organization-name' };
|
|
61
|
+
if (isBreedbaseHost(lowerName))
|
|
62
|
+
return { id: 'breedbase', source: 'server-name' };
|
|
63
|
+
if (isBreedbaseHost(lowerOrg))
|
|
64
|
+
return { id: 'breedbase', source: 'organization-name' };
|
|
65
|
+
if (isBrapiTestHost(lowerName))
|
|
66
|
+
return { id: 'brapi-test', source: 'server-name' };
|
|
67
|
+
if (isBrapiTestHost(lowerOrg))
|
|
68
|
+
return { id: 'brapi-test', source: 'organization-name' };
|
|
55
69
|
return { id: 'spec', source: 'fallback' };
|
|
56
70
|
}
|
|
57
71
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/detect.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,8 @@ import type { Context } from '@cyanheads/mcp-ts-core';
|
|
|
12
12
|
import type { ResolvedAuth } from '../../services/brapi-client/index.js';
|
|
13
13
|
import type { RegisteredServer } from '../../services/server-registry/index.js';
|
|
14
14
|
import type { BrapiDialect } from './types.js';
|
|
15
|
-
export {
|
|
15
|
+
export { brapiTestDialect } from './brapi-test-dialect.js';
|
|
16
|
+
export { breedbaseDialect, cassavabaseDialect } from './cassavabase-dialect.js';
|
|
16
17
|
export { type DialectDetection, type DialectDetectionSource, detectDialectFromName, detectDialectId, dialectEnvVar, readDialectOverride, } from './detect.js';
|
|
17
18
|
export { getDialectById, initBrapiDialectRegistry, listRegisteredDialectIds, registerDialect, resetBrapiDialectRegistry, } from './registry.js';
|
|
18
19
|
export { specDialect } from './spec-dialect.js';
|
|
@@ -1 +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;
|
|
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,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAChF,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"}
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
import { getCapabilityRegistry } from '../../services/capability-registry/index.js';
|
|
12
12
|
import { detectDialectId } from './detect.js';
|
|
13
13
|
import { getDialectById } from './registry.js';
|
|
14
|
-
export {
|
|
14
|
+
export { brapiTestDialect } from './brapi-test-dialect.js';
|
|
15
|
+
export { breedbaseDialect, cassavabaseDialect } from './cassavabase-dialect.js';
|
|
15
16
|
export { detectDialectFromName, detectDialectId, dialectEnvVar, readDialectOverride, } from './detect.js';
|
|
16
17
|
export { getDialectById, initBrapiDialectRegistry, listRegisteredDialectIds, registerDialect, resetBrapiDialectRegistry, } from './registry.js';
|
|
17
18
|
export { specDialect } from './spec-dialect.js';
|
|
@@ -1 +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;
|
|
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,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAChF,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,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,CAM/C;AAED,0DAA0D;AAC1D,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,uCAAuC;AACvC,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAEnD"}
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module services/brapi-dialect/registry
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { brapiTestDialect } from './brapi-test-dialect.js';
|
|
11
|
+
import { breedbaseDialect, cassavabaseDialect } from './cassavabase-dialect.js';
|
|
11
12
|
import { specDialect } from './spec-dialect.js';
|
|
12
13
|
const REGISTRY = new Map();
|
|
13
14
|
/** Register a dialect. Last-write-wins on id collision. */
|
|
@@ -26,6 +27,8 @@ export function getDialectById(id) {
|
|
|
26
27
|
export function initBrapiDialectRegistry() {
|
|
27
28
|
REGISTRY.clear();
|
|
28
29
|
registerDialect(specDialect);
|
|
30
|
+
registerDialect(brapiTestDialect);
|
|
31
|
+
registerDialect(breedbaseDialect);
|
|
29
32
|
registerDialect(cassavabaseDialect);
|
|
30
33
|
}
|
|
31
34
|
/** Test-only — clear all registrations between suites. */
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAChF,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,gBAAgB,CAAC,CAAC;IAClC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAClC,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,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Generic factory for dialects that translate BrAPI v2.1 plural
|
|
3
|
+
* filter keys (`studyDbIds`, `germplasmDbIds`, …) to the v2.0 singular forms
|
|
4
|
+
* the upstream actually honors. Used by both the SGN/Breedbase family
|
|
5
|
+
* (`cassavabase-dialect`) and the BrAPI Community Test Server
|
|
6
|
+
* (`brapi-test-dialect`) — the two share an identical translation engine but
|
|
7
|
+
* carry different per-endpoint mappings, drop lists, and search-route flags,
|
|
8
|
+
* so the data lives in each dialect module while the engine lives here.
|
|
9
|
+
*
|
|
10
|
+
* @module services/brapi-dialect/singularizing-dialect
|
|
11
|
+
*/
|
|
12
|
+
import type { BrapiDialect } from './types.js';
|
|
13
|
+
export interface SingularizingDialectConfig {
|
|
14
|
+
/**
|
|
15
|
+
* POST `/search/{noun}` routes the dialect knows are dead — advertised in
|
|
16
|
+
* `/calls` but unresponsive in practice. Forwarded onto `BrapiDialect`
|
|
17
|
+
* verbatim. Omit when search routes work normally.
|
|
18
|
+
*/
|
|
19
|
+
disabledSearchEndpoints?: ReadonlySet<string>;
|
|
20
|
+
/**
|
|
21
|
+
* Per-endpoint set of filter keys to drop entirely — the server silently
|
|
22
|
+
* ignores them in both plural and singular form. Drops surface a warning so
|
|
23
|
+
* the agent stops trusting the response as if the filter were honored.
|
|
24
|
+
*/
|
|
25
|
+
droppedFilters?: Readonly<Record<string, ReadonlySet<string>>>;
|
|
26
|
+
/** Stable dialect id surfaced in logs and the orientation envelope. */
|
|
27
|
+
id: string;
|
|
28
|
+
/** Human-readable label used in warning text (e.g. `CassavaBase`). */
|
|
29
|
+
label: string;
|
|
30
|
+
/** Compatibility notes surfaced in brapi_connect / brapi_server_info. */
|
|
31
|
+
notes?: readonly string[];
|
|
32
|
+
/**
|
|
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.
|
|
36
|
+
*/
|
|
37
|
+
pluralToSingular: Readonly<Record<string, Readonly<Record<string, string>>>>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build a `BrapiDialect` whose `adaptGetFilters` translates plural v2.1 filter
|
|
41
|
+
* names to the configured singulars, drops blacklisted keys, and downcasts
|
|
42
|
+
* multi-value arrays to the first element with a loud warning (the v2.0 GET
|
|
43
|
+
* surface can't express multi-value filters; the agent should re-call per
|
|
44
|
+
* value or use a curated tool that paginates).
|
|
45
|
+
*/
|
|
46
|
+
export declare function createSingularizingDialect(config: SingularizingDialectConfig): BrapiDialect;
|
|
47
|
+
//# sourceMappingURL=singularizing-dialect.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Generic factory for dialects that translate BrAPI v2.1 plural
|
|
3
|
+
* filter keys (`studyDbIds`, `germplasmDbIds`, …) to the v2.0 singular forms
|
|
4
|
+
* the upstream actually honors. Used by both the SGN/Breedbase family
|
|
5
|
+
* (`cassavabase-dialect`) and the BrAPI Community Test Server
|
|
6
|
+
* (`brapi-test-dialect`) — the two share an identical translation engine but
|
|
7
|
+
* carry different per-endpoint mappings, drop lists, and search-route flags,
|
|
8
|
+
* so the data lives in each dialect module while the engine lives here.
|
|
9
|
+
*
|
|
10
|
+
* @module services/brapi-dialect/singularizing-dialect
|
|
11
|
+
*/
|
|
12
|
+
const EMPTY_DROP_SET = new Set();
|
|
13
|
+
/**
|
|
14
|
+
* Build a `BrapiDialect` whose `adaptGetFilters` translates plural v2.1 filter
|
|
15
|
+
* names to the configured singulars, drops blacklisted keys, and downcasts
|
|
16
|
+
* multi-value arrays to the first element with a loud warning (the v2.0 GET
|
|
17
|
+
* surface can't express multi-value filters; the agent should re-call per
|
|
18
|
+
* value or use a curated tool that paginates).
|
|
19
|
+
*/
|
|
20
|
+
export function createSingularizingDialect(config) {
|
|
21
|
+
const adaptGetFilters = (endpoint, filters) => {
|
|
22
|
+
const mapping = config.pluralToSingular[endpoint] ?? {};
|
|
23
|
+
const droppedSet = config.droppedFilters?.[endpoint] ?? EMPTY_DROP_SET;
|
|
24
|
+
const out = {};
|
|
25
|
+
const warnings = [];
|
|
26
|
+
const dropped = [];
|
|
27
|
+
for (const [key, value] of Object.entries(filters)) {
|
|
28
|
+
if (value === undefined)
|
|
29
|
+
continue;
|
|
30
|
+
if (droppedSet.has(key)) {
|
|
31
|
+
dropped.push(key);
|
|
32
|
+
warnings.push(`${config.label} dialect: dropped filter '${key}' — this server does not honor it. Adjust the query or omit the filter.`);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
const target = mapping[key];
|
|
36
|
+
if (!target) {
|
|
37
|
+
out[key] = value;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (Array.isArray(value)) {
|
|
41
|
+
if (value.length === 0)
|
|
42
|
+
continue;
|
|
43
|
+
out[target] = value[0];
|
|
44
|
+
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.`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
out[target] = value;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return { filters: out, dropped, warnings };
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
id: config.id,
|
|
56
|
+
adaptGetFilters,
|
|
57
|
+
...(config.disabledSearchEndpoints !== undefined && {
|
|
58
|
+
disabledSearchEndpoints: config.disabledSearchEndpoints,
|
|
59
|
+
}),
|
|
60
|
+
...(config.notes !== undefined && { notes: config.notes }),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=singularizing-dialect.js.map
|
|
@@ -0,0 +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,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview The default `spec` dialect — passes filters through verbatim.
|
|
3
|
-
* Used for
|
|
4
|
-
* specified (
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
3
|
+
* Used for servers that implement BrAPI v2.1 query-string filters as
|
|
4
|
+
* specified (modern PIPPA / GnpIS / Reference Server deployments). Selected
|
|
5
|
+
* when no server-specific dialect matches the detected `serverInfo.serverName`,
|
|
6
|
+
* or when an operator pins `BRAPI_<ALIAS>_DIALECT=spec` to override detection.
|
|
7
|
+
*
|
|
8
|
+
* Note: the BrAPI Community Test Server is intentionally **not** spec-shaped
|
|
9
|
+
* for GET filters — see `brapi-test-dialect.ts`.
|
|
8
10
|
*
|
|
9
11
|
* @module services/brapi-dialect/spec-dialect
|
|
10
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-dialect.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/spec-dialect.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"spec-dialect.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/spec-dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,WAAW,EAAE,YAKzB,CAAC"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview The default `spec` dialect — passes filters through verbatim.
|
|
3
|
-
* Used for
|
|
4
|
-
* specified (
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
3
|
+
* Used for servers that implement BrAPI v2.1 query-string filters as
|
|
4
|
+
* specified (modern PIPPA / GnpIS / Reference Server deployments). Selected
|
|
5
|
+
* when no server-specific dialect matches the detected `serverInfo.serverName`,
|
|
6
|
+
* or when an operator pins `BRAPI_<ALIAS>_DIALECT=spec` to override detection.
|
|
7
|
+
*
|
|
8
|
+
* Note: the BrAPI Community Test Server is intentionally **not** spec-shaped
|
|
9
|
+
* for GET filters — see `brapi-test-dialect.ts`.
|
|
8
10
|
*
|
|
9
11
|
* @module services/brapi-dialect/spec-dialect
|
|
10
12
|
*/
|
|
11
13
|
export const specDialect = {
|
|
12
14
|
id: 'spec',
|
|
13
15
|
adaptGetFilters(_endpoint, filters) {
|
|
14
|
-
return { filters: { ...filters }, warnings: [] };
|
|
16
|
+
return { filters: { ...filters }, dropped: [], warnings: [] };
|
|
15
17
|
},
|
|
16
18
|
};
|
|
17
19
|
//# sourceMappingURL=spec-dialect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-dialect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/spec-dialect.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"spec-dialect.js","sourceRoot":"","sources":["../../../src/services/brapi-dialect/spec-dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAChE,CAAC;CACF,CAAC"}
|
|
@@ -18,9 +18,18 @@
|
|
|
18
18
|
* Result of adapting a filter map for a specific endpoint. `filters` is the
|
|
19
19
|
* wire-shape map (what gets serialized into the URL); `warnings` are
|
|
20
20
|
* operator-facing notes about lossy conversions (multi-value array downcast,
|
|
21
|
-
* filters dropped because the server doesn't honor them, etc.).
|
|
21
|
+
* filters dropped because the server doesn't honor them, etc.). `dropped` is
|
|
22
|
+
* the structured list of input keys that were removed entirely so callers can
|
|
23
|
+
* detect "agent intended to scope, dialect couldn't honor it" without parsing
|
|
24
|
+
* warning strings.
|
|
22
25
|
*/
|
|
23
26
|
export interface DialectAdaptation {
|
|
27
|
+
/**
|
|
28
|
+
* Input filter keys the dialect dropped entirely (server doesn't honor them
|
|
29
|
+
* in any form). Each dropped key also produces a human-readable entry in
|
|
30
|
+
* `warnings`. Empty when nothing was dropped.
|
|
31
|
+
*/
|
|
32
|
+
dropped: readonly string[];
|
|
24
33
|
filters: Record<string, unknown>;
|
|
25
34
|
warnings: string[];
|
|
26
35
|
}
|
|
@@ -54,5 +63,11 @@ export interface BrapiDialect {
|
|
|
54
63
|
*/
|
|
55
64
|
readonly disabledSearchEndpoints?: ReadonlySet<string>;
|
|
56
65
|
readonly id: string;
|
|
66
|
+
/**
|
|
67
|
+
* Human-readable compatibility notes surfaced in brapi_connect /
|
|
68
|
+
* brapi_server_info. Use this for verified quirks that are handled outside
|
|
69
|
+
* `adaptGetFilters` (for example coordinate-axis recovery).
|
|
70
|
+
*/
|
|
71
|
+
readonly notes?: readonly string[];
|
|
57
72
|
}
|
|
58
73
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/brapi-dialect/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../../src/services/capability-registry/capability-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,mBAAmB,EAEzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,aAAa,EAGd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAChF,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAID,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,YAAY,EAAE,YAAY,EAC1B,MAAM,GAAE,MAAM,WAA4B;IAG7D;;;OAGG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,iBAAiB,CAAC;IAa7B;;;;;OAKG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,cAAc,CAAC;IA2B1B,2EAA2E;IACrE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAIhD,YAAY;
|
|
1
|
+
{"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../../src/services/capability-registry/capability-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,mBAAmB,EAEzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,aAAa,EAGd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAChF,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAID,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,YAAY,EAAE,YAAY,EAC1B,MAAM,GAAE,MAAM,WAA4B;IAG7D;;;OAGG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,iBAAiB,CAAC;IAa7B;;;;;OAKG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,cAAc,CAAC;IA2B1B,2EAA2E;IACrE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAIhD,YAAY;IAkD1B;;;;;OAKG;YACW,kBAAkB;YA2BlB,UAAU;IA2BxB,OAAO,CAAC,QAAQ;CAGjB;AAoGD,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAEvE;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAO1D;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
|
|
@@ -68,21 +68,37 @@ export class CapabilityRegistry {
|
|
|
68
68
|
async fetchProfile(baseUrl, ctx, options) {
|
|
69
69
|
const client = this.client();
|
|
70
70
|
const requestOptions = buildRequestOptions(options.auth);
|
|
71
|
-
const
|
|
72
|
-
|
|
71
|
+
const warnings = [];
|
|
72
|
+
let serverInfo;
|
|
73
|
+
try {
|
|
74
|
+
const serverInfoEnv = await client.get(baseUrl, '/serverinfo', ctx, requestOptions);
|
|
75
|
+
serverInfo = serverInfoEnv.result;
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
79
|
+
ctx.log.warning('Failed to fetch /serverinfo; falling back to /calls-only profile', {
|
|
80
|
+
baseUrl,
|
|
81
|
+
error: message,
|
|
82
|
+
});
|
|
83
|
+
warnings.push(`/serverinfo was unavailable or malformed (${message}); capability discovery fell back to /calls.`);
|
|
84
|
+
}
|
|
85
|
+
const embeddedCalls = serverInfo?.calls;
|
|
73
86
|
const calls = embeddedCalls?.length
|
|
74
87
|
? embeddedCalls
|
|
75
|
-
: await this.fetchCallsFallback(baseUrl, ctx, options.auth);
|
|
76
|
-
const crops = await this.fetchCrops(baseUrl, ctx, options.auth);
|
|
88
|
+
: await this.fetchCallsFallback(baseUrl, ctx, options.auth, warnings);
|
|
89
|
+
const crops = await this.fetchCrops(baseUrl, ctx, options.auth, warnings);
|
|
77
90
|
const supported = indexCalls(calls);
|
|
78
|
-
const server = normalizeIdentity(
|
|
79
|
-
|
|
91
|
+
const server = normalizeIdentity(serverInfo, calls);
|
|
92
|
+
const profile = {
|
|
80
93
|
baseUrl,
|
|
81
94
|
server,
|
|
82
95
|
supported,
|
|
83
96
|
crops,
|
|
84
97
|
fetchedAt: new Date().toISOString(),
|
|
85
98
|
};
|
|
99
|
+
if (warnings.length > 0)
|
|
100
|
+
profile.warnings = warnings;
|
|
101
|
+
return profile;
|
|
86
102
|
}
|
|
87
103
|
/**
|
|
88
104
|
* `/calls` fallback — some servers don't embed calls in `/serverinfo` and
|
|
@@ -90,29 +106,33 @@ export class CapabilityRegistry {
|
|
|
90
106
|
* if the server lacks this too; downstream `ensure()` will surface the
|
|
91
107
|
* missing-capability error with a useful message.
|
|
92
108
|
*/
|
|
93
|
-
async fetchCallsFallback(baseUrl, ctx, auth) {
|
|
109
|
+
async fetchCallsFallback(baseUrl, ctx, auth, warnings) {
|
|
94
110
|
try {
|
|
95
111
|
const env = await this.client().get(baseUrl, '/calls', ctx, buildRequestOptions(auth, { pageSize: 1000 }));
|
|
96
112
|
return extractDataArray(env) ?? [];
|
|
97
113
|
}
|
|
98
114
|
catch (err) {
|
|
115
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
99
116
|
ctx.log.warning('Failed to fetch /calls fallback', {
|
|
100
117
|
baseUrl,
|
|
101
|
-
error:
|
|
118
|
+
error: message,
|
|
102
119
|
});
|
|
120
|
+
warnings.push(`/calls was unavailable or malformed (${message}); no capability list is known.`);
|
|
103
121
|
return [];
|
|
104
122
|
}
|
|
105
123
|
}
|
|
106
|
-
async fetchCrops(baseUrl, ctx, auth) {
|
|
124
|
+
async fetchCrops(baseUrl, ctx, auth, warnings) {
|
|
107
125
|
try {
|
|
108
126
|
const env = await this.client().get(baseUrl, '/commoncropnames', ctx, buildRequestOptions(auth, { pageSize: 1000 }));
|
|
109
127
|
return extractDataArray(env) ?? [];
|
|
110
128
|
}
|
|
111
129
|
catch (err) {
|
|
130
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
112
131
|
ctx.log.warning('Failed to fetch /commoncropnames', {
|
|
113
132
|
baseUrl,
|
|
114
|
-
error:
|
|
133
|
+
error: message,
|
|
115
134
|
});
|
|
135
|
+
warnings.push(`/commoncropnames was unavailable or malformed (${message}); crop list omitted.`);
|
|
116
136
|
return [];
|
|
117
137
|
}
|
|
118
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-registry.js","sourceRoot":"","sources":["../../../src/services/capability-registry/capability-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAIL,cAAc,GACf,MAAM,kCAAkC,CAAC;AAc1C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C,MAAM,OAAO,kBAAkB;IAEV;IACA;IAFnB,YACmB,YAA0B,EAC1B,SAA4B,cAAc;QAD1C,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAoC;IAC1D,CAAC;IAEJ;;;OAGG;IACH,KAAK,CAAC,OAAO,CACX,OAAe,EACf,GAAY,EACZ,UAAmC,EAAE;QAErC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAoB,GAAG,CAAC,CAAC;YAC3D,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE;YAC9B,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,wBAAwB;SAChD,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CACV,OAAe,EACf,KAAoB,EACpB,GAAY,EACZ,UAAmC,EAAE;QAErC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,eAAe,CACnB,mBAAmB,OAAO,wBAAwB,KAAK,CAAC,OAAO,oEAAoE,EACnI;gBACE,OAAO;gBACP,cAAc,EAAE,KAAK,CAAC,OAAO;gBAC7B,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM;aACtD,CACF,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACrF,MAAM,eAAe,CACnB,mBAAmB,OAAO,cAAc,KAAK,CAAC,OAAO,iBAAiB,KAAK,CAAC,MAAM,UAAU,EAC5F;gBACE,OAAO;gBACP,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,eAAe,EAAE,KAAK,CAAC,MAAM;gBAC7B,gBAAgB,EAAE,UAAU,CAAC,OAAO;aACrC,CACF,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,GAAY;QAC5C,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAAe,EACf,GAAY,EACZ,OAAgC;QAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"capability-registry.js","sourceRoot":"","sources":["../../../src/services/capability-registry/capability-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,12 @@ export interface CapabilityProfile {
|
|
|
55
55
|
* segment (e.g. "studies", "search/observations") per BrAPI convention.
|
|
56
56
|
*/
|
|
57
57
|
supported: Record<string, CallDescriptor>;
|
|
58
|
+
/**
|
|
59
|
+
* Non-fatal discovery degradations encountered while building this profile.
|
|
60
|
+
* These are surfaced in the orientation envelope so callers know when the
|
|
61
|
+
* profile was assembled from fallbacks instead of a complete /serverinfo.
|
|
62
|
+
*/
|
|
63
|
+
warnings?: string[];
|
|
58
64
|
}
|
|
59
65
|
/**
|
|
60
66
|
* Loose probe of a single endpoint. Most handlers only care whether the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/capability-registry/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/capability-registry/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -35,6 +35,7 @@ export declare class ServerRegistry {
|
|
|
35
35
|
unregister(ctx: Context, alias?: string): Promise<void>;
|
|
36
36
|
private resolveAuth;
|
|
37
37
|
private exchangeSgnToken;
|
|
38
|
+
private exchangeOAuth2Token;
|
|
38
39
|
}
|
|
39
40
|
/**
|
|
40
41
|
* Swappable token-exchange fetcher. Production uses `fetchWithTimeout`; tests
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-registry.d.ts","sourceRoot":"","sources":["../../../src/services/server-registry/server-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAStD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE1E,eAAO,MAAM,aAAa,YAAY,CAAC;AAIvC,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,YAAY,EAAE,YAAY,EAC1B,YAAY,GAAE,YAAkC;IAGnE;;;;OAIG;IACG,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmB7E,yDAAyD;IACnD,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,MAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWjF,qCAAqC;IACrC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,MAAsB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAIpF,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAe/C,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;YAI9D,WAAW;
|
|
1
|
+
{"version":3,"file":"server-registry.d.ts","sourceRoot":"","sources":["../../../src/services/server-registry/server-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAStD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE1E,eAAO,MAAM,aAAa,YAAY,CAAC;AAIvC,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,YAAY,EAAE,YAAY,EAC1B,YAAY,GAAE,YAAkC;IAGnE;;;;OAIG;IACG,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmB7E,yDAAyD;IACnD,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,MAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWjF,qCAAqC;IACrC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,MAAsB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAIpF,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAe/C,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;YAI9D,WAAW;YA0BX,gBAAgB;YAqChB,mBAAmB;CAwClC;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,KACtD,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B,UAAU,aAAa;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA4FD,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAEnE;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC"}
|