@digital-science-dsl/dimensions-analytics-mcp 0.5.3 → 1.0.1
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/CHANGELOG.md +4 -56
- package/README.md +1 -5
- package/dist/client/deployment-config.d.ts +20 -2
- package/dist/client/deployment-config.d.ts.map +1 -1
- package/dist/client/deployment-config.js +26 -2
- package/dist/client/deployment-config.js.map +1 -1
- package/dist/client/internal-dsl-client.d.ts +1 -1
- package/dist/client/internal-dsl-client.d.ts.map +1 -1
- package/dist/client/internal-dsl-client.js +2 -5
- package/dist/client/internal-dsl-client.js.map +1 -1
- package/dist/dsl/create-client.d.ts +1 -1
- package/dist/dsl/create-client.js +1 -1
- package/dist/dsl/fluent-query-builder.d.ts +1 -1
- package/dist/dsl/fluent-query-builder.js +1 -1
- package/dist/dsl/schema/cache.d.ts +2 -2
- package/dist/dsl/schema/cache.d.ts.map +1 -1
- package/dist/dsl/schema/cache.js +8 -14
- package/dist/dsl/schema/cache.js.map +1 -1
- package/dist/dsl/schema/load.d.ts +0 -1
- package/dist/dsl/schema/load.d.ts.map +1 -1
- package/dist/dsl/schema/load.js +1 -3
- package/dist/dsl/schema/load.js.map +1 -1
- package/dist/mcp/tools/schema.d.ts +0 -2
- package/dist/mcp/tools/schema.d.ts.map +1 -1
- package/dist/mcp/tools/schema.js.map +1 -1
- package/dist/mcp/utils.d.ts +0 -4
- package/dist/mcp/utils.d.ts.map +1 -1
- package/dist/mcp/utils.js +0 -7
- package/dist/mcp/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/client/deployment-config.ts +39 -2
- package/src/client/internal-dsl-client.ts +2 -6
- package/src/dsl/create-client.ts +1 -1
- package/src/dsl/fluent-query-builder.ts +1 -1
- package/src/dsl/schema/cache.ts +8 -13
- package/src/dsl/schema/load.ts +1 -4
- package/src/mcp/tools/schema.ts +0 -3
- package/src/mcp/utils.ts +0 -12
- package/test/client/deployment-config.test.ts +25 -1
- package/test/client/http-client.test.ts +2 -2
- package/test/client/internal-dsl-client.test.ts +3 -0
- package/test/dsl/schema/cache.test.ts +2 -4
- package/test/helpers/tool-test-harness.ts +2 -19
- package/test/middleware/field-aliases.test.ts +1 -1
- package/test/tools/analytics.test.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/examples/dsl-examples.d.ts +0 -11
- package/dist/examples/dsl-examples.d.ts.map +0 -1
- package/dist/examples/dsl-examples.js +0 -49
- package/dist/examples/dsl-examples.js.map +0 -1
- package/dist/examples/usage-scenarios.d.ts +0 -22
- package/dist/examples/usage-scenarios.d.ts.map +0 -1
- package/dist/examples/usage-scenarios.js +0 -173
- package/dist/examples/usage-scenarios.js.map +0 -1
- package/dist/funder-org-names.d.ts +0 -12
- package/dist/funder-org-names.d.ts.map +0 -1
- package/dist/funder-org-names.js +0 -30
- package/dist/funder-org-names.js.map +0 -1
- package/dist/http.d.ts +0 -29
- package/dist/http.d.ts.map +0 -1
- package/dist/http.js +0 -173
- package/dist/http.js.map +0 -1
- package/dist/kwq/build-query.d.ts +0 -26
- package/dist/kwq/build-query.d.ts.map +0 -1
- package/dist/kwq/build-query.js +0 -37
- package/dist/kwq/build-query.js.map +0 -1
- package/dist/kwq/concept-groups.d.ts +0 -49
- package/dist/kwq/concept-groups.d.ts.map +0 -1
- package/dist/kwq/concept-groups.js +0 -55
- package/dist/kwq/concept-groups.js.map +0 -1
- package/dist/kwq/dsl-assembler.d.ts +0 -28
- package/dist/kwq/dsl-assembler.d.ts.map +0 -1
- package/dist/kwq/dsl-assembler.js +0 -124
- package/dist/kwq/dsl-assembler.js.map +0 -1
- package/dist/kwq/ensemble.d.ts +0 -38
- package/dist/kwq/ensemble.d.ts.map +0 -1
- package/dist/kwq/ensemble.js +0 -107
- package/dist/kwq/ensemble.js.map +0 -1
- package/dist/kwq/index.d.ts +0 -16
- package/dist/kwq/index.d.ts.map +0 -1
- package/dist/kwq/index.js +0 -14
- package/dist/kwq/index.js.map +0 -1
- package/dist/kwq/types.d.ts +0 -120
- package/dist/kwq/types.d.ts.map +0 -1
- package/dist/kwq/types.js +0 -11
- package/dist/kwq/types.js.map +0 -1
- package/dist/lambda.d.ts +0 -10
- package/dist/lambda.d.ts.map +0 -1
- package/dist/lambda.js +0 -4
- package/dist/lambda.js.map +0 -1
- package/dist/mcp/tools/concept-profile.d.ts +0 -14
- package/dist/mcp/tools/concept-profile.d.ts.map +0 -1
- package/dist/mcp/tools/concept-profile.js +0 -130
- package/dist/mcp/tools/concept-profile.js.map +0 -1
- package/dist/mcp/tools/dataset-profile.d.ts +0 -15
- package/dist/mcp/tools/dataset-profile.d.ts.map +0 -1
- package/dist/mcp/tools/dataset-profile.js +0 -194
- package/dist/mcp/tools/dataset-profile.js.map +0 -1
- package/dist/mcp/tools/impact-chain.d.ts +0 -15
- package/dist/mcp/tools/impact-chain.d.ts.map +0 -1
- package/dist/mcp/tools/impact-chain.js +0 -96
- package/dist/mcp/tools/impact-chain.js.map +0 -1
- package/dist/mcp/tools/kwq.d.ts +0 -19
- package/dist/mcp/tools/kwq.d.ts.map +0 -1
- package/dist/mcp/tools/kwq.js +0 -156
- package/dist/mcp/tools/kwq.js.map +0 -1
- package/dist/mcp/tools/policy-profile.d.ts +0 -15
- package/dist/mcp/tools/policy-profile.d.ts.map +0 -1
- package/dist/mcp/tools/policy-profile.js +0 -174
- package/dist/mcp/tools/policy-profile.js.map +0 -1
- package/dist/mcp/tools/profile.d.ts +0 -14
- package/dist/mcp/tools/profile.d.ts.map +0 -1
- package/dist/mcp/tools/profile.js +0 -349
- package/dist/mcp/tools/profile.js.map +0 -1
- package/dist/middleware/field-aliases.d.ts +0 -97
- package/dist/middleware/field-aliases.d.ts.map +0 -1
- package/dist/middleware/field-aliases.js +0 -208
- package/dist/middleware/field-aliases.js.map +0 -1
- package/dist/resources/schema.d.ts +0 -13
- package/dist/resources/schema.d.ts.map +0 -1
- package/dist/resources/schema.js +0 -204
- package/dist/resources/schema.js.map +0 -1
- package/dist/schema/context.d.ts +0 -10
- package/dist/schema/context.d.ts.map +0 -1
- package/dist/schema/context.js +0 -6
- package/dist/schema/context.js.map +0 -1
- package/dist/schema/index.d.ts +0 -9
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -6
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/load.d.ts +0 -43
- package/dist/schema/load.d.ts.map +0 -1
- package/dist/schema/load.js +0 -139
- package/dist/schema/load.js.map +0 -1
- package/dist/schema/store.d.ts +0 -112
- package/dist/schema/store.d.ts.map +0 -1
- package/dist/schema/store.js +0 -173
- package/dist/schema/store.js.map +0 -1
- package/dist/schema/structured-entities.d.ts +0 -21
- package/dist/schema/structured-entities.d.ts.map +0 -1
- package/dist/schema/structured-entities.js +0 -39
- package/dist/schema/structured-entities.js.map +0 -1
- package/dist/schema/types.d.ts +0 -36
- package/dist/schema/types.d.ts.map +0 -1
- package/dist/schema/types.js +0 -6
- package/dist/schema/types.js.map +0 -1
- package/dist/server.d.ts +0 -57
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -144
- package/dist/server.js.map +0 -1
- package/dist/telemetry.d.ts +0 -172
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/telemetry.js +0 -233
- package/dist/telemetry.js.map +0 -1
- package/dist/tools/analytics-filters.d.ts +0 -18
- package/dist/tools/analytics-filters.d.ts.map +0 -1
- package/dist/tools/analytics-filters.js +0 -35
- package/dist/tools/analytics-filters.js.map +0 -1
- package/dist/tools/analytics.d.ts +0 -16
- package/dist/tools/analytics.d.ts.map +0 -1
- package/dist/tools/analytics.js +0 -381
- package/dist/tools/analytics.js.map +0 -1
- package/dist/tools/concept-profile.d.ts +0 -14
- package/dist/tools/concept-profile.d.ts.map +0 -1
- package/dist/tools/concept-profile.js +0 -130
- package/dist/tools/concept-profile.js.map +0 -1
- package/dist/tools/dataset-profile.d.ts +0 -15
- package/dist/tools/dataset-profile.d.ts.map +0 -1
- package/dist/tools/dataset-profile.js +0 -194
- package/dist/tools/dataset-profile.js.map +0 -1
- package/dist/tools/functions.d.ts +0 -14
- package/dist/tools/functions.d.ts.map +0 -1
- package/dist/tools/functions.js +0 -294
- package/dist/tools/functions.js.map +0 -1
- package/dist/tools/impact-chain.d.ts +0 -15
- package/dist/tools/impact-chain.d.ts.map +0 -1
- package/dist/tools/impact-chain.js +0 -96
- package/dist/tools/impact-chain.js.map +0 -1
- package/dist/tools/kwq.d.ts +0 -19
- package/dist/tools/kwq.d.ts.map +0 -1
- package/dist/tools/kwq.js +0 -156
- package/dist/tools/kwq.js.map +0 -1
- package/dist/tools/lookup.d.ts +0 -14
- package/dist/tools/lookup.d.ts.map +0 -1
- package/dist/tools/lookup.js +0 -213
- package/dist/tools/lookup.js.map +0 -1
- package/dist/tools/policy-profile.d.ts +0 -15
- package/dist/tools/policy-profile.d.ts.map +0 -1
- package/dist/tools/policy-profile.js +0 -174
- package/dist/tools/policy-profile.js.map +0 -1
- package/dist/tools/profile.d.ts +0 -14
- package/dist/tools/profile.d.ts.map +0 -1
- package/dist/tools/profile.js +0 -349
- package/dist/tools/profile.js.map +0 -1
- package/dist/tools/query.d.ts +0 -16
- package/dist/tools/query.d.ts.map +0 -1
- package/dist/tools/query.js +0 -53
- package/dist/tools/query.js.map +0 -1
- package/dist/tools/schema.d.ts +0 -23
- package/dist/tools/schema.d.ts.map +0 -1
- package/dist/tools/schema.js +0 -124
- package/dist/tools/schema.js.map +0 -1
- package/dist/tools/search-entity-metadata.d.ts +0 -18
- package/dist/tools/search-entity-metadata.d.ts.map +0 -1
- package/dist/tools/search-entity-metadata.js +0 -221
- package/dist/tools/search-entity-metadata.js.map +0 -1
- package/dist/tools/search.d.ts +0 -23
- package/dist/tools/search.d.ts.map +0 -1
- package/dist/tools/search.js +0 -110
- package/dist/tools/search.js.map +0 -1
- package/dist/tools/solr-fields.d.ts +0 -39
- package/dist/tools/solr-fields.d.ts.map +0 -1
- package/dist/tools/solr-fields.js +0 -40
- package/dist/tools/solr-fields.js.map +0 -1
- package/dist/utils.d.ts +0 -70
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -104
- package/dist/utils.js.map +0 -1
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Field name alias middleware for MCP tools.
|
|
3
|
-
* Translates LLM-friendly field aliases to raw Dimensions DSL field names
|
|
4
|
-
* via a higher-order function (decorator) pattern.
|
|
5
|
-
* @module mcp/middleware/field-aliases
|
|
6
|
-
*/
|
|
7
|
-
import type { EntityType } from "@digital-science/dimensions-dsl";
|
|
8
|
-
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
9
|
-
/**
|
|
10
|
-
* Runtime alias registry. One flat map per entity type.
|
|
11
|
-
* Keys: LLM-friendly alias names. Values: raw DSL field names.
|
|
12
|
-
* Unknown names pass through unchanged at resolution time.
|
|
13
|
-
*/
|
|
14
|
-
export declare const ENTITY_ALIASES: Readonly<Record<EntityType, Readonly<Record<string, string>>>>;
|
|
15
|
-
/**
|
|
16
|
-
* Resolves a single field alias to its raw DSL name.
|
|
17
|
-
* Returns the input unchanged if it is not a known alias (pass-through).
|
|
18
|
-
* @param entity - The entity type
|
|
19
|
-
* @param name - Alias name or raw DSL field name
|
|
20
|
-
* @returns The raw DSL field name
|
|
21
|
-
*/
|
|
22
|
-
export declare function resolveFieldName(entity: EntityType, name: string): string;
|
|
23
|
-
/**
|
|
24
|
-
* Resolves facet-field aliases (e.g. grants `funders` → `funder_orgs` on live describe).
|
|
25
|
-
* Falls back to {@link resolveFieldName} when no facet-specific alias exists.
|
|
26
|
-
* @param entity - The entity type
|
|
27
|
-
* @param name - Facet field name or alias
|
|
28
|
-
* @returns Raw DSL facet field name
|
|
29
|
-
*/
|
|
30
|
-
export declare function resolveFacetFieldName(entity: EntityType, name: string): string;
|
|
31
|
-
/**
|
|
32
|
-
* Resolves an array of field names, applying alias resolution to each.
|
|
33
|
-
* @param entity - The entity type
|
|
34
|
-
* @param names - Array of alias or DSL field names
|
|
35
|
-
* @returns Array of raw DSL field names
|
|
36
|
-
*/
|
|
37
|
-
export declare function resolveFieldNames(entity: EntityType, names: readonly string[]): string[];
|
|
38
|
-
/**
|
|
39
|
-
* Builds a reverse lookup map: DSL field name → alias names.
|
|
40
|
-
* Useful for documentation and resource generation.
|
|
41
|
-
* @param entity - The entity type
|
|
42
|
-
* @returns Map of DSL field name → array of alias names
|
|
43
|
-
*/
|
|
44
|
-
export declare function buildReverseAliasMap(entity: EntityType): Map<string, string[]>;
|
|
45
|
-
/**
|
|
46
|
-
* Where to find the entity type for alias resolution.
|
|
47
|
-
* - `static`: hardcoded at registration time (e.g., search_publications → "publications")
|
|
48
|
-
* - `dynamic`: read from an arg at call time (e.g., get_by_id → args.entityType)
|
|
49
|
-
*/
|
|
50
|
-
export type EntitySource = {
|
|
51
|
-
readonly kind: "static";
|
|
52
|
-
readonly entity: EntityType;
|
|
53
|
-
} | {
|
|
54
|
-
readonly kind: "dynamic";
|
|
55
|
-
readonly argName: string;
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* Describes which args of a tool contain field names that need alias resolution.
|
|
59
|
-
*/
|
|
60
|
-
export interface FieldAliasDescriptor {
|
|
61
|
-
/** Where to get the entity type. */
|
|
62
|
-
readonly entitySource: EntitySource;
|
|
63
|
-
/** Args that are `string[]` of field names (e.g., `["fields"]`, `["indicators"]`). */
|
|
64
|
-
readonly fieldArrayArgs?: readonly string[];
|
|
65
|
-
/** Args that are a single field name string (e.g., `["sortBy"]`, `["facetField"]`). */
|
|
66
|
-
readonly fieldStringArgs?: readonly string[];
|
|
67
|
-
/** Args that are arrays of filter objects with a `.field` property (e.g., `["filters"]`). */
|
|
68
|
-
readonly filterArrayArgs?: readonly string[];
|
|
69
|
-
}
|
|
70
|
-
/** Generic tool handler function type compatible with the MCP SDK. */
|
|
71
|
-
type ToolHandler = (args: any, extra: any) => CallToolResult | Promise<CallToolResult>;
|
|
72
|
-
/**
|
|
73
|
-
* Wraps a tool handler with transparent field alias resolution.
|
|
74
|
-
* Resolves LLM-friendly aliases to raw DSL field names before the inner handler runs.
|
|
75
|
-
*
|
|
76
|
-
* @param descriptor - Declares which args contain field names
|
|
77
|
-
* @param handler - The inner tool handler
|
|
78
|
-
* @returns A new handler with the same signature that pre-processes args
|
|
79
|
-
*
|
|
80
|
-
* @example
|
|
81
|
-
* ```typescript
|
|
82
|
-
* server.registerTool("search_publications", config,
|
|
83
|
-
* withFieldAliases(
|
|
84
|
-
* {
|
|
85
|
-
* entitySource: { kind: "static", entity: "publications" },
|
|
86
|
-
* fieldArrayArgs: ["fields"],
|
|
87
|
-
* fieldStringArgs: ["sortBy"],
|
|
88
|
-
* filterArrayArgs: ["filters"],
|
|
89
|
-
* },
|
|
90
|
-
* async (args) => { ... },
|
|
91
|
-
* ),
|
|
92
|
-
* );
|
|
93
|
-
* ```
|
|
94
|
-
*/
|
|
95
|
-
export declare function withFieldAliases<T extends ToolHandler>(descriptor: FieldAliasDescriptor, handler: T): T;
|
|
96
|
-
export {};
|
|
97
|
-
//# sourceMappingURL=field-aliases.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-aliases.d.ts","sourceRoot":"","sources":["../../src/middleware/field-aliases.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAoFzE;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CASzF,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI9E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAIxF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAY9E;AAMD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,sFAAsF;IACtF,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,uFAAuF;IACvF,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,6FAA6F;IAC7F,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAMD,sEAAsE;AAEtE,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEvF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,EACpD,UAAU,EAAE,oBAAoB,EAChC,OAAO,EAAE,CAAC,GACT,CAAC,CA2CH"}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Field name alias middleware for MCP tools.
|
|
3
|
-
* Translates LLM-friendly field aliases to raw Dimensions DSL field names
|
|
4
|
-
* via a higher-order function (decorator) pattern.
|
|
5
|
-
* @module mcp/middleware/field-aliases
|
|
6
|
-
*/
|
|
7
|
-
// ---------------------------------------------------------------------------
|
|
8
|
-
// Per-entity alias maps (targets are raw DSL field / metric names)
|
|
9
|
-
// ---------------------------------------------------------------------------
|
|
10
|
-
/**
|
|
11
|
-
* Publication field aliases.
|
|
12
|
-
* Keys: LLM-friendly names. Values: raw DSL field names.
|
|
13
|
-
*/
|
|
14
|
-
const PUBLICATION_ALIASES = {
|
|
15
|
-
total_citations: "times_cited",
|
|
16
|
-
citation_ratio: "field_citation_ratio",
|
|
17
|
-
altmetric_score: "altmetric",
|
|
18
|
-
fields_of_research: "category_for",
|
|
19
|
-
sdg_categories: "category_sdg",
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Publication indicator aliases for aggregation queries.
|
|
23
|
-
*/
|
|
24
|
-
const PUBLICATION_INDICATOR_ALIASES = {
|
|
25
|
-
field_citation_ratio_avg: "fcr_gavg",
|
|
26
|
-
relative_citation_ratio_avg: "rcr_avg",
|
|
27
|
-
total_citations_sum: "citations_total",
|
|
28
|
-
average_citations: "citations_avg",
|
|
29
|
-
median_citations: "citations_median",
|
|
30
|
-
};
|
|
31
|
-
/**
|
|
32
|
-
* Grant field aliases.
|
|
33
|
-
*/
|
|
34
|
-
const GRANT_ALIASES = {
|
|
35
|
-
funding_amount_usd: "funding_usd",
|
|
36
|
-
funding_amount_eur: "funding_eur",
|
|
37
|
-
funder_name: "funder_org_name",
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Grant facet-field aliases (entity facets, not filter fields).
|
|
41
|
-
* Live describe uses `funder_orgs`; older examples used `funders`.
|
|
42
|
-
*/
|
|
43
|
-
const GRANT_FACET_FIELD_ALIASES = {
|
|
44
|
-
funders: "funder_orgs",
|
|
45
|
-
};
|
|
46
|
-
/** Per-entity facet field alias maps. */
|
|
47
|
-
const FACET_FIELD_ALIASES = {
|
|
48
|
-
grants: GRANT_FACET_FIELD_ALIASES,
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Grant indicator aliases for aggregation queries.
|
|
52
|
-
*/
|
|
53
|
-
const GRANT_INDICATOR_ALIASES = {
|
|
54
|
-
total_funding: "funding",
|
|
55
|
-
};
|
|
56
|
-
/** Patent field aliases. */
|
|
57
|
-
const PATENT_ALIASES = {};
|
|
58
|
-
/** Clinical trial field aliases. */
|
|
59
|
-
const CLINICAL_TRIAL_ALIASES = {};
|
|
60
|
-
/** Dataset field aliases. */
|
|
61
|
-
const DATASET_ALIASES = {};
|
|
62
|
-
/** Policy document field aliases. */
|
|
63
|
-
const POLICY_DOCUMENT_ALIASES = {};
|
|
64
|
-
/** Researcher field aliases. */
|
|
65
|
-
const RESEARCHER_ALIASES = {
|
|
66
|
-
orcid: "orcid_id",
|
|
67
|
-
};
|
|
68
|
-
/** Organization field aliases. */
|
|
69
|
-
const ORGANIZATION_ALIASES = {};
|
|
70
|
-
// ---------------------------------------------------------------------------
|
|
71
|
-
// Merged per-entity runtime maps
|
|
72
|
-
// ---------------------------------------------------------------------------
|
|
73
|
-
/**
|
|
74
|
-
* Runtime alias registry. One flat map per entity type.
|
|
75
|
-
* Keys: LLM-friendly alias names. Values: raw DSL field names.
|
|
76
|
-
* Unknown names pass through unchanged at resolution time.
|
|
77
|
-
*/
|
|
78
|
-
export const ENTITY_ALIASES = {
|
|
79
|
-
publications: { ...PUBLICATION_ALIASES, ...PUBLICATION_INDICATOR_ALIASES },
|
|
80
|
-
grants: { ...GRANT_ALIASES, ...GRANT_INDICATOR_ALIASES },
|
|
81
|
-
patents: { ...PATENT_ALIASES },
|
|
82
|
-
clinical_trials: { ...CLINICAL_TRIAL_ALIASES },
|
|
83
|
-
datasets: { ...DATASET_ALIASES },
|
|
84
|
-
policy_documents: { ...POLICY_DOCUMENT_ALIASES },
|
|
85
|
-
researchers: { ...RESEARCHER_ALIASES },
|
|
86
|
-
organizations: { ...ORGANIZATION_ALIASES },
|
|
87
|
-
};
|
|
88
|
-
// ---------------------------------------------------------------------------
|
|
89
|
-
// Resolution functions
|
|
90
|
-
// ---------------------------------------------------------------------------
|
|
91
|
-
/**
|
|
92
|
-
* Resolves a single field alias to its raw DSL name.
|
|
93
|
-
* Returns the input unchanged if it is not a known alias (pass-through).
|
|
94
|
-
* @param entity - The entity type
|
|
95
|
-
* @param name - Alias name or raw DSL field name
|
|
96
|
-
* @returns The raw DSL field name
|
|
97
|
-
*/
|
|
98
|
-
export function resolveFieldName(entity, name) {
|
|
99
|
-
const map = ENTITY_ALIASES[entity];
|
|
100
|
-
if (!map)
|
|
101
|
-
return name;
|
|
102
|
-
return map[name] ?? name;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Resolves facet-field aliases (e.g. grants `funders` → `funder_orgs` on live describe).
|
|
106
|
-
* Falls back to {@link resolveFieldName} when no facet-specific alias exists.
|
|
107
|
-
* @param entity - The entity type
|
|
108
|
-
* @param name - Facet field name or alias
|
|
109
|
-
* @returns Raw DSL facet field name
|
|
110
|
-
*/
|
|
111
|
-
export function resolveFacetFieldName(entity, name) {
|
|
112
|
-
const facetMap = FACET_FIELD_ALIASES[entity];
|
|
113
|
-
if (facetMap?.[name])
|
|
114
|
-
return facetMap[name];
|
|
115
|
-
return resolveFieldName(entity, name);
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Resolves an array of field names, applying alias resolution to each.
|
|
119
|
-
* @param entity - The entity type
|
|
120
|
-
* @param names - Array of alias or DSL field names
|
|
121
|
-
* @returns Array of raw DSL field names
|
|
122
|
-
*/
|
|
123
|
-
export function resolveFieldNames(entity, names) {
|
|
124
|
-
const map = ENTITY_ALIASES[entity];
|
|
125
|
-
if (!map)
|
|
126
|
-
return [...names];
|
|
127
|
-
return names.map((n) => map[n] ?? n);
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Builds a reverse lookup map: DSL field name → alias names.
|
|
131
|
-
* Useful for documentation and resource generation.
|
|
132
|
-
* @param entity - The entity type
|
|
133
|
-
* @returns Map of DSL field name → array of alias names
|
|
134
|
-
*/
|
|
135
|
-
export function buildReverseAliasMap(entity) {
|
|
136
|
-
const map = ENTITY_ALIASES[entity];
|
|
137
|
-
const reverse = new Map();
|
|
138
|
-
for (const [alias, dslName] of Object.entries(map)) {
|
|
139
|
-
const existing = reverse.get(dslName);
|
|
140
|
-
if (existing) {
|
|
141
|
-
existing.push(alias);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
reverse.set(dslName, [alias]);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return reverse;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Wraps a tool handler with transparent field alias resolution.
|
|
151
|
-
* Resolves LLM-friendly aliases to raw DSL field names before the inner handler runs.
|
|
152
|
-
*
|
|
153
|
-
* @param descriptor - Declares which args contain field names
|
|
154
|
-
* @param handler - The inner tool handler
|
|
155
|
-
* @returns A new handler with the same signature that pre-processes args
|
|
156
|
-
*
|
|
157
|
-
* @example
|
|
158
|
-
* ```typescript
|
|
159
|
-
* server.registerTool("search_publications", config,
|
|
160
|
-
* withFieldAliases(
|
|
161
|
-
* {
|
|
162
|
-
* entitySource: { kind: "static", entity: "publications" },
|
|
163
|
-
* fieldArrayArgs: ["fields"],
|
|
164
|
-
* fieldStringArgs: ["sortBy"],
|
|
165
|
-
* filterArrayArgs: ["filters"],
|
|
166
|
-
* },
|
|
167
|
-
* async (args) => { ... },
|
|
168
|
-
* ),
|
|
169
|
-
* );
|
|
170
|
-
* ```
|
|
171
|
-
*/
|
|
172
|
-
export function withFieldAliases(descriptor, handler) {
|
|
173
|
-
const wrapper = (args, extra) => {
|
|
174
|
-
const entity = descriptor.entitySource.kind === "static"
|
|
175
|
-
? descriptor.entitySource.entity
|
|
176
|
-
: args[descriptor.entitySource.argName];
|
|
177
|
-
const resolved = { ...args };
|
|
178
|
-
// Resolve string[] field arrays (e.g., args.fields, args.indicators)
|
|
179
|
-
for (const argName of descriptor.fieldArrayArgs ?? []) {
|
|
180
|
-
const val = resolved[argName];
|
|
181
|
-
if (Array.isArray(val)) {
|
|
182
|
-
resolved[argName] = resolveFieldNames(entity, val);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
// Resolve single field name strings (e.g., args.sortBy, args.facetField)
|
|
186
|
-
for (const argName of descriptor.fieldStringArgs ?? []) {
|
|
187
|
-
const val = resolved[argName];
|
|
188
|
-
if (typeof val === "string") {
|
|
189
|
-
resolved[argName] = resolveFieldName(entity, val);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
// Resolve filter object arrays (e.g., args.filters[].field)
|
|
193
|
-
for (const argName of descriptor.filterArrayArgs ?? []) {
|
|
194
|
-
const val = resolved[argName];
|
|
195
|
-
if (Array.isArray(val)) {
|
|
196
|
-
resolved[argName] = val.map((filter) => ({
|
|
197
|
-
...filter,
|
|
198
|
-
field: typeof filter.field === "string"
|
|
199
|
-
? resolveFieldName(entity, filter.field)
|
|
200
|
-
: filter.field,
|
|
201
|
-
}));
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return handler(resolved, extra);
|
|
205
|
-
};
|
|
206
|
-
return wrapper;
|
|
207
|
-
}
|
|
208
|
-
//# sourceMappingURL=field-aliases.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-aliases.js","sourceRoot":"","sources":["../../src/middleware/field-aliases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dynamic MCP resources derived from runtime {@link SchemaStore}.
|
|
3
|
-
* @module mcp/resources/schema
|
|
4
|
-
*/
|
|
5
|
-
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
-
import type { SchemaContext } from "../schema/context.js";
|
|
7
|
-
/**
|
|
8
|
-
* Registers schema MCP resources from a loaded {@link SchemaStore}.
|
|
9
|
-
* @param server - MCP server instance
|
|
10
|
-
* @param context - Mutable schema context (handlers read latest store)
|
|
11
|
-
*/
|
|
12
|
-
export declare function registerSchemaResources(server: McpServer, context: SchemaContext): void;
|
|
13
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/resources/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CA6PvF"}
|
package/dist/resources/schema.js
DELETED
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dynamic MCP resources derived from runtime {@link SchemaStore}.
|
|
3
|
-
* @module mcp/resources/schema
|
|
4
|
-
*/
|
|
5
|
-
import { SCHEMA_LIMITS, } from "@digital-science/dimensions-dsl";
|
|
6
|
-
import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
-
import { DSL_DOCUMENTATION_URL, DSL_EXAMPLES_BY_ENTITY, DSL_GENERAL_EXAMPLES, } from "../examples/dsl-examples.js";
|
|
8
|
-
import { buildReverseAliasMap } from "../middleware/field-aliases.js";
|
|
9
|
-
/**
|
|
10
|
-
* Registers schema MCP resources from a loaded {@link SchemaStore}.
|
|
11
|
-
* @param server - MCP server instance
|
|
12
|
-
* @param context - Mutable schema context (handlers read latest store)
|
|
13
|
-
*/
|
|
14
|
-
export function registerSchemaResources(server, context) {
|
|
15
|
-
const schemaStore = () => context.store;
|
|
16
|
-
server.resource("schema-summary", "dimensions://schema/summary", {
|
|
17
|
-
description: "Compact Dimensions DSL schema overview (counts, resource URIs) — start here on cold-start",
|
|
18
|
-
mimeType: "application/json",
|
|
19
|
-
}, async (uri) => ({
|
|
20
|
-
contents: [
|
|
21
|
-
{
|
|
22
|
-
uri: uri.href,
|
|
23
|
-
mimeType: "application/json",
|
|
24
|
-
text: JSON.stringify(schemaStore().summary(), null, 2),
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
}));
|
|
28
|
-
// Full schema
|
|
29
|
-
server.resource("schema-full", "dimensions://schema", {
|
|
30
|
-
description: "Full Dimensions DSL schema (all sources and auxiliary entities). Prefer dimensions://schema/summary for discovery.",
|
|
31
|
-
mimeType: "application/json",
|
|
32
|
-
}, async (uri) => ({
|
|
33
|
-
contents: [
|
|
34
|
-
{
|
|
35
|
-
uri: uri.href,
|
|
36
|
-
mimeType: "application/json",
|
|
37
|
-
text: JSON.stringify(schemaStore().raw, null, 2),
|
|
38
|
-
},
|
|
39
|
-
],
|
|
40
|
-
}));
|
|
41
|
-
// Version
|
|
42
|
-
server.resource("schema-version", "dimensions://schema/version", {
|
|
43
|
-
description: "Dimensions DSL version",
|
|
44
|
-
mimeType: "application/json",
|
|
45
|
-
}, async (uri) => ({
|
|
46
|
-
contents: [
|
|
47
|
-
{
|
|
48
|
-
uri: uri.href,
|
|
49
|
-
mimeType: "application/json",
|
|
50
|
-
text: JSON.stringify({ version: schemaStore().version, loadedAt: schemaStore().loadedAt.toISOString() }, null, 2),
|
|
51
|
-
},
|
|
52
|
-
],
|
|
53
|
-
}));
|
|
54
|
-
// Limits (static until upstream `describe limits` exists)
|
|
55
|
-
server.resource("schema-limits", "dimensions://schema/limits", {
|
|
56
|
-
description: "Operational limits for Dimensions DSL queries",
|
|
57
|
-
mimeType: "application/json",
|
|
58
|
-
}, async (uri) => ({
|
|
59
|
-
contents: [
|
|
60
|
-
{
|
|
61
|
-
uri: uri.href,
|
|
62
|
-
mimeType: "application/json",
|
|
63
|
-
text: JSON.stringify(SCHEMA_LIMITS, null, 2),
|
|
64
|
-
},
|
|
65
|
-
],
|
|
66
|
-
}));
|
|
67
|
-
server.resource("dsl-examples", "dimensions://examples", {
|
|
68
|
-
description: "Curated Dimensions DSL example queries. See official docs: " + DSL_DOCUMENTATION_URL,
|
|
69
|
-
mimeType: "application/json",
|
|
70
|
-
}, async (uri) => ({
|
|
71
|
-
contents: [
|
|
72
|
-
{
|
|
73
|
-
uri: uri.href,
|
|
74
|
-
mimeType: "application/json",
|
|
75
|
-
text: JSON.stringify({
|
|
76
|
-
documentation: DSL_DOCUMENTATION_URL,
|
|
77
|
-
general: DSL_GENERAL_EXAMPLES,
|
|
78
|
-
byEntity: DSL_EXAMPLES_BY_ENTITY,
|
|
79
|
-
}, null, 2),
|
|
80
|
-
},
|
|
81
|
-
],
|
|
82
|
-
}));
|
|
83
|
-
const sourceNames = () => schemaStore().sourceNames();
|
|
84
|
-
server.resource("schema-sources", new ResourceTemplate("dimensions://schema/sources/{sourceName}", {
|
|
85
|
-
list: async () => ({
|
|
86
|
-
resources: sourceNames().map((name) => ({
|
|
87
|
-
uri: `dimensions://schema/sources/${name}`,
|
|
88
|
-
name: `${name} schema`,
|
|
89
|
-
description: `Schema for source ${name}`,
|
|
90
|
-
mimeType: "application/json",
|
|
91
|
-
})),
|
|
92
|
-
}),
|
|
93
|
-
complete: {
|
|
94
|
-
sourceName: (value) => sourceNames().filter((name) => name.startsWith(value)),
|
|
95
|
-
},
|
|
96
|
-
}), {
|
|
97
|
-
description: "Per-source Dimensions DSL schema",
|
|
98
|
-
mimeType: "application/json",
|
|
99
|
-
}, async (uri, { sourceName }) => {
|
|
100
|
-
const source = schemaStore().getSource(String(sourceName));
|
|
101
|
-
if (!source) {
|
|
102
|
-
throw new Error(`Unknown source: ${sourceName}`);
|
|
103
|
-
}
|
|
104
|
-
return {
|
|
105
|
-
contents: [
|
|
106
|
-
{
|
|
107
|
-
uri: uri.href,
|
|
108
|
-
mimeType: "application/json",
|
|
109
|
-
text: JSON.stringify(source, null, 2),
|
|
110
|
-
},
|
|
111
|
-
],
|
|
112
|
-
};
|
|
113
|
-
});
|
|
114
|
-
const entityNames = () => schemaStore().entityNames();
|
|
115
|
-
server.resource("schema-entities", new ResourceTemplate("dimensions://schema/entities/{entityName}", {
|
|
116
|
-
list: async () => ({
|
|
117
|
-
resources: entityNames().map((name) => ({
|
|
118
|
-
uri: `dimensions://schema/entities/${name}`,
|
|
119
|
-
name: `${name} entity schema`,
|
|
120
|
-
description: `Auxiliary entity schema for ${name}`,
|
|
121
|
-
mimeType: "application/json",
|
|
122
|
-
})),
|
|
123
|
-
}),
|
|
124
|
-
complete: {
|
|
125
|
-
entityName: (value) => entityNames().filter((name) => name.startsWith(value)),
|
|
126
|
-
},
|
|
127
|
-
}), {
|
|
128
|
-
description: "Auxiliary entity schema for dot-notation filters",
|
|
129
|
-
mimeType: "application/json",
|
|
130
|
-
}, async (uri, { entityName }) => {
|
|
131
|
-
const entity = schemaStore().getEntity(String(entityName));
|
|
132
|
-
if (!entity) {
|
|
133
|
-
throw new Error(`Unknown entity: ${entityName}`);
|
|
134
|
-
}
|
|
135
|
-
return {
|
|
136
|
-
contents: [
|
|
137
|
-
{
|
|
138
|
-
uri: uri.href,
|
|
139
|
-
mimeType: "application/json",
|
|
140
|
-
text: JSON.stringify(entity, null, 2),
|
|
141
|
-
},
|
|
142
|
-
],
|
|
143
|
-
};
|
|
144
|
-
});
|
|
145
|
-
// Compatibility view for structured search tools
|
|
146
|
-
const entityTypes = () => schemaStore().structuredEntityTypes();
|
|
147
|
-
server.resource("fields", new ResourceTemplate("dimensions://fields/{entityType}", {
|
|
148
|
-
list: async () => ({
|
|
149
|
-
resources: entityTypes().map((et) => ({
|
|
150
|
-
uri: `dimensions://fields/${et}`,
|
|
151
|
-
name: `${et} fields`,
|
|
152
|
-
description: `Filterable fields for ${et}`,
|
|
153
|
-
mimeType: "application/json",
|
|
154
|
-
})),
|
|
155
|
-
}),
|
|
156
|
-
complete: {
|
|
157
|
-
entityType: (value) => entityTypes().filter((et) => et.startsWith(value)),
|
|
158
|
-
},
|
|
159
|
-
}), {
|
|
160
|
-
description: "Filterable fields and aliases for a Dimensions entity type",
|
|
161
|
-
mimeType: "application/json",
|
|
162
|
-
}, async (uri, { entityType }) => {
|
|
163
|
-
const entity = String(entityType);
|
|
164
|
-
if (!entityTypes().includes(entity)) {
|
|
165
|
-
throw new Error(`Unknown entity type: ${entity}`);
|
|
166
|
-
}
|
|
167
|
-
const source = schemaStore().getSource(entity);
|
|
168
|
-
if (!source) {
|
|
169
|
-
throw new Error(`No schema loaded for entity type: ${entity}`);
|
|
170
|
-
}
|
|
171
|
-
const reverseAliases = buildReverseAliasMap(entity);
|
|
172
|
-
const augmentedFields = {};
|
|
173
|
-
for (const [fieldName, field] of Object.entries(source.fields)) {
|
|
174
|
-
if (field.is_filter !== true) {
|
|
175
|
-
continue;
|
|
176
|
-
}
|
|
177
|
-
const description = field.description ?? field.type;
|
|
178
|
-
const aliases = reverseAliases.get(fieldName);
|
|
179
|
-
augmentedFields[fieldName] = aliases ? { description, aliases } : { description };
|
|
180
|
-
}
|
|
181
|
-
return {
|
|
182
|
-
contents: [
|
|
183
|
-
{
|
|
184
|
-
uri: uri.href,
|
|
185
|
-
mimeType: "application/json",
|
|
186
|
-
text: JSON.stringify({
|
|
187
|
-
entityType: entity,
|
|
188
|
-
fields: augmentedFields,
|
|
189
|
-
facets: schemaStore().facetFields(entity),
|
|
190
|
-
metrics: schemaStore().metrics(entity),
|
|
191
|
-
searchIndexes: schemaStore().searchIndexes(entity),
|
|
192
|
-
fieldsets: schemaStore().fieldsets(entity),
|
|
193
|
-
dslExamples: {
|
|
194
|
-
basicSearch: `search ${entity} for "your query" return ${entity} limit 10`,
|
|
195
|
-
withFields: `search ${entity} for "your query" return ${entity}[id+title] limit 10`,
|
|
196
|
-
withFilter: `search ${entity} for "your query" where year >= 2020 return ${entity} limit 10`,
|
|
197
|
-
},
|
|
198
|
-
}, null, 2),
|
|
199
|
-
},
|
|
200
|
-
],
|
|
201
|
-
};
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/resources/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/context.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mutable schema context shared across MCP resources and tools.
|
|
3
|
-
* @module schema/context
|
|
4
|
-
*/
|
|
5
|
-
import type { SchemaStore } from "@digital-science/dimensions-dsl";
|
|
6
|
-
/** Mutable holder so refresh can update the active store without re-registering resources. */
|
|
7
|
-
export type SchemaContext = {
|
|
8
|
-
store: SchemaStore;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/schema/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,8FAA8F;AAC9F,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC"}
|
package/dist/schema/context.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/schema/context.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/schema/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime schema loading and access for the MCP server.
|
|
3
|
-
* @module schema
|
|
4
|
-
*/
|
|
5
|
-
export type { DescribeField, DescribeSchemaResponse, DescribeVersionResponse, EntityDescribe, LoadSchemaOptions, SourceDescribe, StructuredEntityType, } from "@digital-science/dimensions-dsl";
|
|
6
|
-
export { buildSchemaSummary, clearSchemaCache, createSchemaStoreFromResponse, DEFAULT_SCHEMA_CACHE_TTL_MS, extractDescribeSchema, extractDescribeVersion, getCachedSchemaStore, getOrLoadSchema, loadSchema, SCHEMA_LIMITS, SCHEMA_RESOURCE_URIS, SchemaStore, STRUCTURED_ENTITY_TYPES, searchResultKey, searchToolName, } from "@digital-science/dimensions-dsl";
|
|
7
|
-
export type { SchemaCacheEnvelope, SchemaCacheEntry, SchemaLoadSource, SchemaSourceSummary, SchemaStoreMetadata, SchemaSummary, } from "@digital-science/dimensions-dsl";
|
|
8
|
-
export type { SchemaContext } from "./context.js";
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,6BAA6B,EAC7B,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,eAAe,EACf,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACd,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/schema/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime schema loading and access for the MCP server.
|
|
3
|
-
* @module schema
|
|
4
|
-
*/
|
|
5
|
-
export { buildSchemaSummary, clearSchemaCache, createSchemaStoreFromResponse, DEFAULT_SCHEMA_CACHE_TTL_MS, extractDescribeSchema, extractDescribeVersion, getCachedSchemaStore, getOrLoadSchema, loadSchema, SCHEMA_LIMITS, SCHEMA_RESOURCE_URIS, SchemaStore, STRUCTURED_ENTITY_TYPES, searchResultKey, searchToolName, } from "@digital-science/dimensions-dsl";
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
package/dist/schema/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,6BAA6B,EAC7B,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,eAAe,EACf,cAAc,GACf,MAAM,iCAAiC,CAAC"}
|
package/dist/schema/load.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Load schema from the Dimensions API or optional disk cache.
|
|
3
|
-
* @module schema/load
|
|
4
|
-
*/
|
|
5
|
-
import type { DimensionsClient } from "@digital-science/dimensions-dsl";
|
|
6
|
-
import { type SchemaStore } from "./store.js";
|
|
7
|
-
import type { DescribeSchemaResponse } from "./types.js";
|
|
8
|
-
/**
|
|
9
|
-
* Returns the module-level cached schema store, if loaded.
|
|
10
|
-
* @returns Cached store or undefined before first load
|
|
11
|
-
*/
|
|
12
|
-
export declare function getCachedSchemaStore(): SchemaStore | undefined;
|
|
13
|
-
/**
|
|
14
|
-
* Clears the module-level schema cache (for tests and refresh).
|
|
15
|
-
*/
|
|
16
|
-
export declare function clearSchemaCache(): void;
|
|
17
|
-
/**
|
|
18
|
-
* Extracts describe schema payload from a raw API response.
|
|
19
|
-
* @param raw - Raw DSL API response
|
|
20
|
-
* @returns Normalized describe schema object
|
|
21
|
-
*/
|
|
22
|
-
export declare function extractDescribeSchema(raw: unknown): DescribeSchemaResponse;
|
|
23
|
-
/**
|
|
24
|
-
* Extracts version string from `describe version` response.
|
|
25
|
-
* @param raw - Raw DSL API response
|
|
26
|
-
* @returns Version string or undefined
|
|
27
|
-
*/
|
|
28
|
-
export declare function extractDescribeVersion(raw: unknown): string | undefined;
|
|
29
|
-
/**
|
|
30
|
-
* Fetches schema from the Dimensions API.
|
|
31
|
-
* @param client - Authenticated Dimensions client
|
|
32
|
-
* @param cachePath - Optional cache file path
|
|
33
|
-
* @returns Loaded schema store
|
|
34
|
-
*/
|
|
35
|
-
export declare function loadSchema(client: DimensionsClient, cachePath?: string): Promise<SchemaStore>;
|
|
36
|
-
/**
|
|
37
|
-
* Returns cached schema or loads once per process.
|
|
38
|
-
* @param client - Authenticated Dimensions client
|
|
39
|
-
* @param cachePath - Optional cache override
|
|
40
|
-
* @returns Schema store
|
|
41
|
-
*/
|
|
42
|
-
export declare function getOrLoadSchema(client: DimensionsClient, cachePath?: string): Promise<SchemaStore>;
|
|
43
|
-
//# sourceMappingURL=load.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/schema/load.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAA2B,MAAM,YAAY,CAAC;AAKlF;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,GAAG,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAyBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAY1E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAYvE;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAwCtB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EACxB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAUtB"}
|