@digital-science-dsl/dimensions-analytics-mcp 0.5.3
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 +61 -0
- package/README.md +152 -0
- package/bin/dimensions-analytics-mcp-http.js +2 -0
- package/bin/dimensions-analytics-mcp.js +2 -0
- package/dist/client/auth/config-loaders.d.ts +22 -0
- package/dist/client/auth/config-loaders.d.ts.map +1 -0
- package/dist/client/auth/config-loaders.js +68 -0
- package/dist/client/auth/config-loaders.js.map +1 -0
- package/dist/client/auth/decorators/index.d.ts +7 -0
- package/dist/client/auth/decorators/index.d.ts.map +1 -0
- package/dist/client/auth/decorators/index.js +6 -0
- package/dist/client/auth/decorators/index.js.map +1 -0
- package/dist/client/auth/decorators/with-caching.d.ts +81 -0
- package/dist/client/auth/decorators/with-caching.d.ts.map +1 -0
- package/dist/client/auth/decorators/with-caching.js +168 -0
- package/dist/client/auth/decorators/with-caching.js.map +1 -0
- package/dist/client/auth/factory.d.ts +13 -0
- package/dist/client/auth/factory.d.ts.map +1 -0
- package/dist/client/auth/factory.js +29 -0
- package/dist/client/auth/factory.js.map +1 -0
- package/dist/client/auth/index.d.ts +7 -0
- package/dist/client/auth/index.d.ts.map +1 -0
- package/dist/client/auth/index.js +6 -0
- package/dist/client/auth/index.js.map +1 -0
- package/dist/client/auth/jwt-utils.d.ts +17 -0
- package/dist/client/auth/jwt-utils.d.ts.map +1 -0
- package/dist/client/auth/jwt-utils.js +33 -0
- package/dist/client/auth/jwt-utils.js.map +1 -0
- package/dist/client/auth/node.d.ts +16 -0
- package/dist/client/auth/node.d.ts.map +1 -0
- package/dist/client/auth/node.js +15 -0
- package/dist/client/auth/node.js.map +1 -0
- package/dist/client/auth/providers/index.d.ts +2 -0
- package/dist/client/auth/providers/index.d.ts.map +1 -0
- package/dist/client/auth/providers/index.js +2 -0
- package/dist/client/auth/providers/index.js.map +1 -0
- package/dist/client/auth/providers/jwt-auth-provider.d.ts +70 -0
- package/dist/client/auth/providers/jwt-auth-provider.d.ts.map +1 -0
- package/dist/client/auth/providers/jwt-auth-provider.js +134 -0
- package/dist/client/auth/providers/jwt-auth-provider.js.map +1 -0
- package/dist/client/auth/schemas.d.ts +19 -0
- package/dist/client/auth/schemas.d.ts.map +1 -0
- package/dist/client/auth/schemas.js +23 -0
- package/dist/client/auth/schemas.js.map +1 -0
- package/dist/client/auth/types.d.ts +25 -0
- package/dist/client/auth/types.d.ts.map +1 -0
- package/dist/client/auth/types.js +9 -0
- package/dist/client/auth/types.js.map +1 -0
- package/dist/client/command.d.ts +44 -0
- package/dist/client/command.d.ts.map +1 -0
- package/dist/client/command.js +23 -0
- package/dist/client/command.js.map +1 -0
- package/dist/client/config/index.d.ts +11 -0
- package/dist/client/config/index.d.ts.map +1 -0
- package/dist/client/config/index.js +8 -0
- package/dist/client/config/index.js.map +1 -0
- package/dist/client/config/loader.d.ts +27 -0
- package/dist/client/config/loader.d.ts.map +1 -0
- package/dist/client/config/loader.js +128 -0
- package/dist/client/config/loader.js.map +1 -0
- package/dist/client/config/node.d.ts +18 -0
- package/dist/client/config/node.d.ts.map +1 -0
- package/dist/client/config/node.js +17 -0
- package/dist/client/config/node.js.map +1 -0
- package/dist/client/config/schemas.d.ts +23 -0
- package/dist/client/config/schemas.d.ts.map +1 -0
- package/dist/client/config/schemas.js +24 -0
- package/dist/client/config/schemas.js.map +1 -0
- package/dist/client/config/types.d.ts +37 -0
- package/dist/client/config/types.d.ts.map +1 -0
- package/dist/client/config/types.js +6 -0
- package/dist/client/config/types.js.map +1 -0
- package/dist/client/config/unified-loader.d.ts +41 -0
- package/dist/client/config/unified-loader.d.ts.map +1 -0
- package/dist/client/config/unified-loader.js +86 -0
- package/dist/client/config/unified-loader.js.map +1 -0
- package/dist/client/config.d.ts +43 -0
- package/dist/client/config.d.ts.map +1 -0
- package/dist/client/config.js +56 -0
- package/dist/client/config.js.map +1 -0
- package/dist/client/deployment-config.d.ts +36 -0
- package/dist/client/deployment-config.d.ts.map +1 -0
- package/dist/client/deployment-config.js +79 -0
- package/dist/client/deployment-config.js.map +1 -0
- package/dist/client/errors.d.ts +180 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +253 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/http-client.d.ts +215 -0
- package/dist/client/http-client.d.ts.map +1 -0
- package/dist/client/http-client.js +419 -0
- package/dist/client/http-client.js.map +1 -0
- package/dist/client/index.d.ts +28 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +18 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/internal-dsl-client.d.ts +30 -0
- package/dist/client/internal-dsl-client.d.ts.map +1 -0
- package/dist/client/internal-dsl-client.js +101 -0
- package/dist/client/internal-dsl-client.js.map +1 -0
- package/dist/client/rate-limiter.d.ts +79 -0
- package/dist/client/rate-limiter.d.ts.map +1 -0
- package/dist/client/rate-limiter.js +118 -0
- package/dist/client/rate-limiter.js.map +1 -0
- package/dist/client/resolve-api-key-user.d.ts +24 -0
- package/dist/client/resolve-api-key-user.d.ts.map +1 -0
- package/dist/client/resolve-api-key-user.js +80 -0
- package/dist/client/resolve-api-key-user.js.map +1 -0
- package/dist/client/types.d.ts +44 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +10 -0
- package/dist/client/types.js.map +1 -0
- package/dist/dsl/client.d.ts +330 -0
- package/dist/dsl/client.d.ts.map +1 -0
- package/dist/dsl/client.js +433 -0
- package/dist/dsl/client.js.map +1 -0
- package/dist/dsl/commands/apply-filters.d.ts +15 -0
- package/dist/dsl/commands/apply-filters.d.ts.map +1 -0
- package/dist/dsl/commands/apply-filters.js +29 -0
- package/dist/dsl/commands/apply-filters.js.map +1 -0
- package/dist/dsl/commands/facet/index.d.ts +6 -0
- package/dist/dsl/commands/facet/index.d.ts.map +1 -0
- package/dist/dsl/commands/facet/index.js +6 -0
- package/dist/dsl/commands/facet/index.js.map +1 -0
- package/dist/dsl/commands/facet/schemas.d.ts +71 -0
- package/dist/dsl/commands/facet/schemas.d.ts.map +1 -0
- package/dist/dsl/commands/facet/schemas.js +84 -0
- package/dist/dsl/commands/facet/schemas.js.map +1 -0
- package/dist/dsl/commands/functions/ClassifyCommand.d.ts +96 -0
- package/dist/dsl/commands/functions/ClassifyCommand.d.ts.map +1 -0
- package/dist/dsl/commands/functions/ClassifyCommand.js +95 -0
- package/dist/dsl/commands/functions/ClassifyCommand.js.map +1 -0
- package/dist/dsl/commands/functions/ExtractAffiliationsCommand.d.ts +86 -0
- package/dist/dsl/commands/functions/ExtractAffiliationsCommand.d.ts.map +1 -0
- package/dist/dsl/commands/functions/ExtractAffiliationsCommand.js +131 -0
- package/dist/dsl/commands/functions/ExtractAffiliationsCommand.js.map +1 -0
- package/dist/dsl/commands/functions/ExtractConceptsCommand.d.ts +73 -0
- package/dist/dsl/commands/functions/ExtractConceptsCommand.d.ts.map +1 -0
- package/dist/dsl/commands/functions/ExtractConceptsCommand.js +110 -0
- package/dist/dsl/commands/functions/ExtractConceptsCommand.js.map +1 -0
- package/dist/dsl/commands/functions/ExtractGrantsCommand.d.ts +66 -0
- package/dist/dsl/commands/functions/ExtractGrantsCommand.d.ts.map +1 -0
- package/dist/dsl/commands/functions/ExtractGrantsCommand.js +87 -0
- package/dist/dsl/commands/functions/ExtractGrantsCommand.js.map +1 -0
- package/dist/dsl/commands/functions/index.d.ts +10 -0
- package/dist/dsl/commands/functions/index.d.ts.map +1 -0
- package/dist/dsl/commands/functions/index.js +10 -0
- package/dist/dsl/commands/functions/index.js.map +1 -0
- package/dist/dsl/commands/index.d.ts +8 -0
- package/dist/dsl/commands/index.d.ts.map +1 -0
- package/dist/dsl/commands/index.js +7 -0
- package/dist/dsl/commands/index.js.map +1 -0
- package/dist/dsl/commands/validate-input.d.ts +18 -0
- package/dist/dsl/commands/validate-input.d.ts.map +1 -0
- package/dist/dsl/commands/validate-input.js +27 -0
- package/dist/dsl/commands/validate-input.js.map +1 -0
- package/dist/dsl/create-client.d.ts +32 -0
- package/dist/dsl/create-client.d.ts.map +1 -0
- package/dist/dsl/create-client.js +58 -0
- package/dist/dsl/create-client.js.map +1 -0
- package/dist/dsl/fluent-query-builder.d.ts +439 -0
- package/dist/dsl/fluent-query-builder.d.ts.map +1 -0
- package/dist/dsl/fluent-query-builder.js +534 -0
- package/dist/dsl/fluent-query-builder.js.map +1 -0
- package/dist/dsl/index.d.ts +32 -0
- package/dist/dsl/index.d.ts.map +1 -0
- package/dist/dsl/index.js +31 -0
- package/dist/dsl/index.js.map +1 -0
- package/dist/dsl/pagination.d.ts +82 -0
- package/dist/dsl/pagination.d.ts.map +1 -0
- package/dist/dsl/pagination.js +135 -0
- package/dist/dsl/pagination.js.map +1 -0
- package/dist/dsl/query-builder.d.ts +456 -0
- package/dist/dsl/query-builder.d.ts.map +1 -0
- package/dist/dsl/query-builder.js +994 -0
- package/dist/dsl/query-builder.js.map +1 -0
- package/dist/dsl/response-parser.d.ts +111 -0
- package/dist/dsl/response-parser.d.ts.map +1 -0
- package/dist/dsl/response-parser.js +210 -0
- package/dist/dsl/response-parser.js.map +1 -0
- package/dist/dsl/schema/cache.d.ts +52 -0
- package/dist/dsl/schema/cache.d.ts.map +1 -0
- package/dist/dsl/schema/cache.js +97 -0
- package/dist/dsl/schema/cache.js.map +1 -0
- package/dist/dsl/schema/extract.d.ts +18 -0
- package/dist/dsl/schema/extract.d.ts.map +1 -0
- package/dist/dsl/schema/extract.js +41 -0
- package/dist/dsl/schema/extract.js.map +1 -0
- package/dist/dsl/schema/index.d.ts +13 -0
- package/dist/dsl/schema/index.d.ts.map +1 -0
- package/dist/dsl/schema/index.js +12 -0
- package/dist/dsl/schema/index.js.map +1 -0
- package/dist/dsl/schema/load.d.ts +41 -0
- package/dist/dsl/schema/load.d.ts.map +1 -0
- package/dist/dsl/schema/load.js +119 -0
- package/dist/dsl/schema/load.js.map +1 -0
- package/dist/dsl/schema/store.d.ts +137 -0
- package/dist/dsl/schema/store.d.ts.map +1 -0
- package/dist/dsl/schema/store.js +204 -0
- package/dist/dsl/schema/store.js.map +1 -0
- package/dist/dsl/schema/structured-entities.d.ts +21 -0
- package/dist/dsl/schema/structured-entities.d.ts.map +1 -0
- package/dist/dsl/schema/structured-entities.js +39 -0
- package/dist/dsl/schema/structured-entities.js.map +1 -0
- package/dist/dsl/schema/summary.d.ts +51 -0
- package/dist/dsl/schema/summary.d.ts.map +1 -0
- package/dist/dsl/schema/summary.js +61 -0
- package/dist/dsl/schema/summary.js.map +1 -0
- package/dist/dsl/schema/types.d.ts +36 -0
- package/dist/dsl/schema/types.d.ts.map +1 -0
- package/dist/dsl/schema/types.js +6 -0
- package/dist/dsl/schema/types.js.map +1 -0
- package/dist/dsl/schema/validation.d.ts +21 -0
- package/dist/dsl/schema/validation.d.ts.map +1 -0
- package/dist/dsl/schema/validation.js +44 -0
- package/dist/dsl/schema/validation.js.map +1 -0
- package/dist/dsl/types/buckets.d.ts +18 -0
- package/dist/dsl/types/buckets.d.ts.map +1 -0
- package/dist/dsl/types/buckets.js +6 -0
- package/dist/dsl/types/buckets.js.map +1 -0
- package/dist/dsl/types/common.d.ts +91 -0
- package/dist/dsl/types/common.d.ts.map +1 -0
- package/dist/dsl/types/common.js +6 -0
- package/dist/dsl/types/common.js.map +1 -0
- package/dist/dsl/types/entities.d.ts +35 -0
- package/dist/dsl/types/entities.d.ts.map +1 -0
- package/dist/dsl/types/entities.js +11 -0
- package/dist/dsl/types/entities.js.map +1 -0
- package/dist/dsl/types/index.d.ts +12 -0
- package/dist/dsl/types/index.d.ts.map +1 -0
- package/dist/dsl/types/index.js +7 -0
- package/dist/dsl/types/index.js.map +1 -0
- package/dist/dsl/types/return-clauses.d.ts +107 -0
- package/dist/dsl/types/return-clauses.d.ts.map +1 -0
- package/dist/dsl/types/return-clauses.js +22 -0
- package/dist/dsl/types/return-clauses.js.map +1 -0
- package/dist/dsl/types/special-functions.d.ts +175 -0
- package/dist/dsl/types/special-functions.d.ts.map +1 -0
- package/dist/dsl/types/special-functions.js +25 -0
- package/dist/dsl/types/special-functions.js.map +1 -0
- package/dist/dsl/types/vocabulary.d.ts +21 -0
- package/dist/dsl/types/vocabulary.d.ts.map +1 -0
- package/dist/dsl/types/vocabulary.js +44 -0
- package/dist/dsl/types/vocabulary.js.map +1 -0
- package/dist/dsl/usage-policy.d.ts +87 -0
- package/dist/dsl/usage-policy.d.ts.map +1 -0
- package/dist/dsl/usage-policy.js +133 -0
- package/dist/dsl/usage-policy.js.map +1 -0
- package/dist/dsl/utils/escape.d.ts +24 -0
- package/dist/dsl/utils/escape.d.ts.map +1 -0
- package/dist/dsl/utils/escape.js +124 -0
- package/dist/dsl/utils/escape.js.map +1 -0
- package/dist/dsl/utils/sanitize.d.ts +13 -0
- package/dist/dsl/utils/sanitize.d.ts.map +1 -0
- package/dist/dsl/utils/sanitize.js +19 -0
- package/dist/dsl/utils/sanitize.js.map +1 -0
- package/dist/dsl/utils/string-utils.d.ts +35 -0
- package/dist/dsl/utils/string-utils.d.ts.map +1 -0
- package/dist/dsl/utils/string-utils.js +145 -0
- package/dist/dsl/utils/string-utils.js.map +1 -0
- package/dist/dsl/utils/validate-field-name.d.ts +11 -0
- package/dist/dsl/utils/validate-field-name.d.ts.map +1 -0
- package/dist/dsl/utils/validate-field-name.js +18 -0
- package/dist/dsl/utils/validate-field-name.js.map +1 -0
- package/dist/examples/dsl-examples.d.ts +11 -0
- package/dist/examples/dsl-examples.d.ts.map +1 -0
- package/dist/examples/dsl-examples.js +49 -0
- package/dist/examples/dsl-examples.js.map +1 -0
- package/dist/examples/usage-scenarios.d.ts +22 -0
- package/dist/examples/usage-scenarios.d.ts.map +1 -0
- package/dist/examples/usage-scenarios.js +173 -0
- package/dist/examples/usage-scenarios.js.map +1 -0
- package/dist/funder-org-names.d.ts +12 -0
- package/dist/funder-org-names.d.ts.map +1 -0
- package/dist/funder-org-names.js +30 -0
- package/dist/funder-org-names.js.map +1 -0
- package/dist/http-main.d.ts +7 -0
- package/dist/http-main.d.ts.map +1 -0
- package/dist/http-main.js +36 -0
- package/dist/http-main.js.map +1 -0
- package/dist/http.d.ts +29 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +173 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/kwq/build-query.d.ts +26 -0
- package/dist/kwq/build-query.d.ts.map +1 -0
- package/dist/kwq/build-query.js +37 -0
- package/dist/kwq/build-query.js.map +1 -0
- package/dist/kwq/concept-groups.d.ts +49 -0
- package/dist/kwq/concept-groups.d.ts.map +1 -0
- package/dist/kwq/concept-groups.js +55 -0
- package/dist/kwq/concept-groups.js.map +1 -0
- package/dist/kwq/dsl-assembler.d.ts +28 -0
- package/dist/kwq/dsl-assembler.d.ts.map +1 -0
- package/dist/kwq/dsl-assembler.js +124 -0
- package/dist/kwq/dsl-assembler.js.map +1 -0
- package/dist/kwq/ensemble.d.ts +38 -0
- package/dist/kwq/ensemble.d.ts.map +1 -0
- package/dist/kwq/ensemble.js +107 -0
- package/dist/kwq/ensemble.js.map +1 -0
- package/dist/kwq/index.d.ts +16 -0
- package/dist/kwq/index.d.ts.map +1 -0
- package/dist/kwq/index.js +14 -0
- package/dist/kwq/index.js.map +1 -0
- package/dist/kwq/types.d.ts +120 -0
- package/dist/kwq/types.d.ts.map +1 -0
- package/dist/kwq/types.js +11 -0
- package/dist/kwq/types.js.map +1 -0
- package/dist/lambda.d.ts +10 -0
- package/dist/lambda.d.ts.map +1 -0
- package/dist/lambda.js +4 -0
- package/dist/lambda.js.map +1 -0
- package/dist/main.d.ts +8 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +33 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp/batch-fetch.d.ts +89 -0
- package/dist/mcp/batch-fetch.d.ts.map +1 -0
- package/dist/mcp/batch-fetch.js +178 -0
- package/dist/mcp/batch-fetch.js.map +1 -0
- package/dist/mcp/examples/dsl-examples.d.ts +21 -0
- package/dist/mcp/examples/dsl-examples.d.ts.map +1 -0
- package/dist/mcp/examples/dsl-examples.js +61 -0
- package/dist/mcp/examples/dsl-examples.js.map +1 -0
- package/dist/mcp/examples/usage-scenarios.d.ts +20 -0
- package/dist/mcp/examples/usage-scenarios.d.ts.map +1 -0
- package/dist/mcp/examples/usage-scenarios.js +169 -0
- package/dist/mcp/examples/usage-scenarios.js.map +1 -0
- package/dist/mcp/export-format.d.ts +43 -0
- package/dist/mcp/export-format.d.ts.map +1 -0
- package/dist/mcp/export-format.js +92 -0
- package/dist/mcp/export-format.js.map +1 -0
- package/dist/mcp/funder-org-names.d.ts +12 -0
- package/dist/mcp/funder-org-names.d.ts.map +1 -0
- package/dist/mcp/funder-org-names.js +30 -0
- package/dist/mcp/funder-org-names.js.map +1 -0
- package/dist/mcp/http-server.d.ts +20 -0
- package/dist/mcp/http-server.d.ts.map +1 -0
- package/dist/mcp/http-server.js +118 -0
- package/dist/mcp/http-server.js.map +1 -0
- package/dist/mcp/middleware/field-aliases.d.ts +97 -0
- package/dist/mcp/middleware/field-aliases.d.ts.map +1 -0
- package/dist/mcp/middleware/field-aliases.js +208 -0
- package/dist/mcp/middleware/field-aliases.js.map +1 -0
- package/dist/mcp/resources/schema.d.ts +13 -0
- package/dist/mcp/resources/schema.d.ts.map +1 -0
- package/dist/mcp/resources/schema.js +262 -0
- package/dist/mcp/resources/schema.js.map +1 -0
- package/dist/mcp/schema/context.d.ts +10 -0
- package/dist/mcp/schema/context.d.ts.map +1 -0
- package/dist/mcp/schema/context.js +6 -0
- package/dist/mcp/schema/context.js.map +1 -0
- package/dist/mcp/schema/index.d.ts +8 -0
- package/dist/mcp/schema/index.d.ts.map +1 -0
- package/dist/mcp/schema/index.js +6 -0
- package/dist/mcp/schema/index.js.map +1 -0
- package/dist/mcp/server.d.ts +56 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +168 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/shared-schema.d.ts +13 -0
- package/dist/mcp/shared-schema.d.ts.map +1 -0
- package/dist/mcp/shared-schema.js +28 -0
- package/dist/mcp/shared-schema.js.map +1 -0
- package/dist/mcp/tools/analytics-filters.d.ts +18 -0
- package/dist/mcp/tools/analytics-filters.d.ts.map +1 -0
- package/dist/mcp/tools/analytics-filters.js +35 -0
- package/dist/mcp/tools/analytics-filters.js.map +1 -0
- package/dist/mcp/tools/analytics.d.ts +16 -0
- package/dist/mcp/tools/analytics.d.ts.map +1 -0
- package/dist/mcp/tools/analytics.js +381 -0
- package/dist/mcp/tools/analytics.js.map +1 -0
- package/dist/mcp/tools/concept-profile.d.ts +14 -0
- package/dist/mcp/tools/concept-profile.d.ts.map +1 -0
- package/dist/mcp/tools/concept-profile.js +130 -0
- package/dist/mcp/tools/concept-profile.js.map +1 -0
- package/dist/mcp/tools/dataset-profile.d.ts +15 -0
- package/dist/mcp/tools/dataset-profile.d.ts.map +1 -0
- package/dist/mcp/tools/dataset-profile.js +194 -0
- package/dist/mcp/tools/dataset-profile.js.map +1 -0
- package/dist/mcp/tools/fetch-search-pages.d.ts +15 -0
- package/dist/mcp/tools/fetch-search-pages.d.ts.map +1 -0
- package/dist/mcp/tools/fetch-search-pages.js +237 -0
- package/dist/mcp/tools/fetch-search-pages.js.map +1 -0
- package/dist/mcp/tools/functions.d.ts +14 -0
- package/dist/mcp/tools/functions.d.ts.map +1 -0
- package/dist/mcp/tools/functions.js +87 -0
- package/dist/mcp/tools/functions.js.map +1 -0
- package/dist/mcp/tools/impact-chain.d.ts +15 -0
- package/dist/mcp/tools/impact-chain.d.ts.map +1 -0
- package/dist/mcp/tools/impact-chain.js +96 -0
- package/dist/mcp/tools/impact-chain.js.map +1 -0
- package/dist/mcp/tools/kwq.d.ts +19 -0
- package/dist/mcp/tools/kwq.d.ts.map +1 -0
- package/dist/mcp/tools/kwq.js +156 -0
- package/dist/mcp/tools/kwq.js.map +1 -0
- package/dist/mcp/tools/lookup.d.ts +14 -0
- package/dist/mcp/tools/lookup.d.ts.map +1 -0
- package/dist/mcp/tools/lookup.js +146 -0
- package/dist/mcp/tools/lookup.js.map +1 -0
- package/dist/mcp/tools/policy-profile.d.ts +15 -0
- package/dist/mcp/tools/policy-profile.d.ts.map +1 -0
- package/dist/mcp/tools/policy-profile.js +174 -0
- package/dist/mcp/tools/policy-profile.js.map +1 -0
- package/dist/mcp/tools/profile.d.ts +14 -0
- package/dist/mcp/tools/profile.d.ts.map +1 -0
- package/dist/mcp/tools/profile.js +349 -0
- package/dist/mcp/tools/profile.js.map +1 -0
- package/dist/mcp/tools/query.d.ts +16 -0
- package/dist/mcp/tools/query.d.ts.map +1 -0
- package/dist/mcp/tools/query.js +75 -0
- package/dist/mcp/tools/query.js.map +1 -0
- package/dist/mcp/tools/schema.d.ts +23 -0
- package/dist/mcp/tools/schema.d.ts.map +1 -0
- package/dist/mcp/tools/schema.js +124 -0
- package/dist/mcp/tools/schema.js.map +1 -0
- package/dist/mcp/tools/search-entity-metadata.d.ts +18 -0
- package/dist/mcp/tools/search-entity-metadata.d.ts.map +1 -0
- package/dist/mcp/tools/search-entity-metadata.js +221 -0
- package/dist/mcp/tools/search-entity-metadata.js.map +1 -0
- package/dist/mcp/tools/search-input.d.ts +58 -0
- package/dist/mcp/tools/search-input.d.ts.map +1 -0
- package/dist/mcp/tools/search-input.js +76 -0
- package/dist/mcp/tools/search-input.js.map +1 -0
- package/dist/mcp/tools/search.d.ts +24 -0
- package/dist/mcp/tools/search.d.ts.map +1 -0
- package/dist/mcp/tools/search.js +115 -0
- package/dist/mcp/tools/search.js.map +1 -0
- package/dist/mcp/utils.d.ts +82 -0
- package/dist/mcp/utils.d.ts.map +1 -0
- package/dist/mcp/utils.js +126 -0
- package/dist/mcp/utils.js.map +1 -0
- package/dist/middleware/field-aliases.d.ts +97 -0
- package/dist/middleware/field-aliases.d.ts.map +1 -0
- package/dist/middleware/field-aliases.js +208 -0
- package/dist/middleware/field-aliases.js.map +1 -0
- package/dist/resources/schema.d.ts +13 -0
- package/dist/resources/schema.d.ts.map +1 -0
- package/dist/resources/schema.js +204 -0
- package/dist/resources/schema.js.map +1 -0
- package/dist/schema/context.d.ts +10 -0
- package/dist/schema/context.d.ts.map +1 -0
- package/dist/schema/context.js +6 -0
- package/dist/schema/context.js.map +1 -0
- package/dist/schema/index.d.ts +9 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +6 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/load.d.ts +43 -0
- package/dist/schema/load.d.ts.map +1 -0
- package/dist/schema/load.js +139 -0
- package/dist/schema/load.js.map +1 -0
- package/dist/schema/store.d.ts +112 -0
- package/dist/schema/store.d.ts.map +1 -0
- package/dist/schema/store.js +173 -0
- package/dist/schema/store.js.map +1 -0
- package/dist/schema/structured-entities.d.ts +21 -0
- package/dist/schema/structured-entities.d.ts.map +1 -0
- package/dist/schema/structured-entities.js +39 -0
- package/dist/schema/structured-entities.js.map +1 -0
- package/dist/schema/types.d.ts +36 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +6 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/server.d.ts +57 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +144 -0
- package/dist/server.js.map +1 -0
- package/dist/telemetry.d.ts +172 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +233 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tools/analytics-filters.d.ts +18 -0
- package/dist/tools/analytics-filters.d.ts.map +1 -0
- package/dist/tools/analytics-filters.js +35 -0
- package/dist/tools/analytics-filters.js.map +1 -0
- package/dist/tools/analytics.d.ts +16 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +381 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/concept-profile.d.ts +14 -0
- package/dist/tools/concept-profile.d.ts.map +1 -0
- package/dist/tools/concept-profile.js +130 -0
- package/dist/tools/concept-profile.js.map +1 -0
- package/dist/tools/dataset-profile.d.ts +15 -0
- package/dist/tools/dataset-profile.d.ts.map +1 -0
- package/dist/tools/dataset-profile.js +194 -0
- package/dist/tools/dataset-profile.js.map +1 -0
- package/dist/tools/functions.d.ts +14 -0
- package/dist/tools/functions.d.ts.map +1 -0
- package/dist/tools/functions.js +294 -0
- package/dist/tools/functions.js.map +1 -0
- package/dist/tools/impact-chain.d.ts +15 -0
- package/dist/tools/impact-chain.d.ts.map +1 -0
- package/dist/tools/impact-chain.js +96 -0
- package/dist/tools/impact-chain.js.map +1 -0
- package/dist/tools/kwq.d.ts +19 -0
- package/dist/tools/kwq.d.ts.map +1 -0
- package/dist/tools/kwq.js +156 -0
- package/dist/tools/kwq.js.map +1 -0
- package/dist/tools/lookup.d.ts +14 -0
- package/dist/tools/lookup.d.ts.map +1 -0
- package/dist/tools/lookup.js +213 -0
- package/dist/tools/lookup.js.map +1 -0
- package/dist/tools/policy-profile.d.ts +15 -0
- package/dist/tools/policy-profile.d.ts.map +1 -0
- package/dist/tools/policy-profile.js +174 -0
- package/dist/tools/policy-profile.js.map +1 -0
- package/dist/tools/profile.d.ts +14 -0
- package/dist/tools/profile.d.ts.map +1 -0
- package/dist/tools/profile.js +349 -0
- package/dist/tools/profile.js.map +1 -0
- package/dist/tools/query.d.ts +16 -0
- package/dist/tools/query.d.ts.map +1 -0
- package/dist/tools/query.js +53 -0
- package/dist/tools/query.js.map +1 -0
- package/dist/tools/schema.d.ts +23 -0
- package/dist/tools/schema.d.ts.map +1 -0
- package/dist/tools/schema.js +124 -0
- package/dist/tools/schema.js.map +1 -0
- package/dist/tools/search-entity-metadata.d.ts +18 -0
- package/dist/tools/search-entity-metadata.d.ts.map +1 -0
- package/dist/tools/search-entity-metadata.js +221 -0
- package/dist/tools/search-entity-metadata.js.map +1 -0
- package/dist/tools/search.d.ts +23 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +110 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/solr-fields.d.ts +39 -0
- package/dist/tools/solr-fields.d.ts.map +1 -0
- package/dist/tools/solr-fields.js +40 -0
- package/dist/tools/solr-fields.js.map +1 -0
- package/dist/utils.d.ts +70 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +104 -0
- package/dist/utils.js.map +1 -0
- package/package.json +41 -0
- package/src/client/auth/config-loaders.ts +81 -0
- package/src/client/auth/decorators/index.ts +7 -0
- package/src/client/auth/decorators/with-caching.ts +237 -0
- package/src/client/auth/factory.ts +34 -0
- package/src/client/auth/index.ts +6 -0
- package/src/client/auth/jwt-utils.ts +36 -0
- package/src/client/auth/node.ts +16 -0
- package/src/client/auth/providers/index.ts +1 -0
- package/src/client/auth/providers/jwt-auth-provider.ts +153 -0
- package/src/client/auth/schemas.ts +25 -0
- package/src/client/auth/types.ts +30 -0
- package/src/client/command.ts +54 -0
- package/src/client/config/index.ts +15 -0
- package/src/client/config/loader.ts +155 -0
- package/src/client/config/node.ts +22 -0
- package/src/client/config/schemas.ts +28 -0
- package/src/client/config/types.ts +39 -0
- package/src/client/config/unified-loader.ts +118 -0
- package/src/client/config.ts +69 -0
- package/src/client/deployment-config.ts +98 -0
- package/src/client/errors.ts +295 -0
- package/src/client/http-client.ts +577 -0
- package/src/client/index.ts +68 -0
- package/src/client/internal-dsl-client.ts +128 -0
- package/src/client/rate-limiter.ts +139 -0
- package/src/client/resolve-api-key-user.ts +99 -0
- package/src/client/types.ts +44 -0
- package/src/dsl/client.ts +538 -0
- package/src/dsl/commands/apply-filters.ts +35 -0
- package/src/dsl/commands/facet/index.ts +12 -0
- package/src/dsl/commands/facet/schemas.ts +101 -0
- package/src/dsl/commands/functions/ClassifyCommand.ts +129 -0
- package/src/dsl/commands/functions/ExtractAffiliationsCommand.ts +163 -0
- package/src/dsl/commands/functions/ExtractConceptsCommand.ts +141 -0
- package/src/dsl/commands/functions/ExtractGrantsCommand.ts +112 -0
- package/src/dsl/commands/functions/index.ts +31 -0
- package/src/dsl/commands/index.ts +29 -0
- package/src/dsl/commands/validate-input.ts +29 -0
- package/src/dsl/create-client.ts +80 -0
- package/src/dsl/fluent-query-builder.ts +684 -0
- package/src/dsl/index.ts +206 -0
- package/src/dsl/pagination.ts +202 -0
- package/src/dsl/query-builder.ts +1120 -0
- package/src/dsl/response-parser.ts +299 -0
- package/src/dsl/schema/cache.ts +124 -0
- package/src/dsl/schema/extract.ts +44 -0
- package/src/dsl/schema/index.ts +50 -0
- package/src/dsl/schema/load.ts +160 -0
- package/src/dsl/schema/store.ts +253 -0
- package/src/dsl/schema/structured-entities.ts +44 -0
- package/src/dsl/schema/summary.ts +94 -0
- package/src/dsl/schema/types.ts +40 -0
- package/src/dsl/schema/validation.ts +56 -0
- package/src/dsl/types/buckets.ts +22 -0
- package/src/dsl/types/common.ts +99 -0
- package/src/dsl/types/entities.ts +43 -0
- package/src/dsl/types/index.ts +63 -0
- package/src/dsl/types/return-clauses.ts +147 -0
- package/src/dsl/types/special-functions.ts +220 -0
- package/src/dsl/types/vocabulary.ts +82 -0
- package/src/dsl/usage-policy.ts +219 -0
- package/src/dsl/utils/escape.ts +123 -0
- package/src/dsl/utils/sanitize.ts +21 -0
- package/src/dsl/utils/string-utils.ts +147 -0
- package/src/dsl/utils/validate-field-name.ts +19 -0
- package/src/http-main.ts +41 -0
- package/src/index.ts +14 -0
- package/src/main.ts +40 -0
- package/src/mcp/batch-fetch.ts +255 -0
- package/src/mcp/examples/dsl-examples.ts +66 -0
- package/src/mcp/examples/usage-scenarios.ts +185 -0
- package/src/mcp/export-format.ts +113 -0
- package/src/mcp/funder-org-names.ts +30 -0
- package/src/mcp/http-server.ts +148 -0
- package/src/mcp/middleware/field-aliases.ts +274 -0
- package/src/mcp/resources/schema.ts +364 -0
- package/src/mcp/schema/context.ts +11 -0
- package/src/mcp/schema/index.ts +38 -0
- package/src/mcp/server.ts +247 -0
- package/src/mcp/shared-schema.ts +34 -0
- package/src/mcp/tools/analytics-filters.ts +46 -0
- package/src/mcp/tools/analytics.ts +453 -0
- package/src/mcp/tools/fetch-search-pages.ts +329 -0
- package/src/mcp/tools/functions.ts +105 -0
- package/src/mcp/tools/lookup.ts +182 -0
- package/src/mcp/tools/query.ts +91 -0
- package/src/mcp/tools/schema.ts +147 -0
- package/src/mcp/tools/search-entity-metadata.ts +253 -0
- package/src/mcp/tools/search-input.ts +87 -0
- package/src/mcp/tools/search.ts +168 -0
- package/src/mcp/utils.ts +199 -0
- package/test/client/auth/config-loaders.test.ts +92 -0
- package/test/client/auth/decorators/with-caching.test.ts +482 -0
- package/test/client/auth/factory.test.ts +68 -0
- package/test/client/auth/providers/jwt-auth-provider.test.ts +398 -0
- package/test/client/auth/types.test.ts +18 -0
- package/test/client/command.test.ts +163 -0
- package/test/client/config/loader.test.ts +377 -0
- package/test/client/config/unified-loader.test.ts +136 -0
- package/test/client/deployment-config.test.ts +69 -0
- package/test/client/errors/index.test.ts +408 -0
- package/test/client/helpers/mock-fetch.ts +42 -0
- package/test/client/http-client.test.ts +1148 -0
- package/test/client/integration/auth-providers.integration.test.ts +186 -0
- package/test/client/internal-dsl-client.test.ts +76 -0
- package/test/client/rate-limiter.test.ts +204 -0
- package/test/client/resolve-api-key-user.test.ts +87 -0
- package/test/dsl/client.special-functions.test.ts +387 -0
- package/test/dsl/client.test.ts +457 -0
- package/test/dsl/commands/apply-filters.test.ts +147 -0
- package/test/dsl/commands/functions/ClassifyCommand.test.ts +170 -0
- package/test/dsl/commands/functions/ExtractAffiliationsCommand.test.ts +306 -0
- package/test/dsl/commands/functions/ExtractConceptsCommand.test.ts +136 -0
- package/test/dsl/commands/functions/ExtractGrantsCommand.test.ts +202 -0
- package/test/dsl/commands/search/filters.test.ts +42 -0
- package/test/dsl/fluent-query-builder.test.ts +865 -0
- package/test/dsl/integration/client.integration.test.ts +294 -0
- package/test/dsl/integration/facet-api.integration.test.ts +276 -0
- package/test/dsl/integration/field-existence.integration.test.ts +148 -0
- package/test/dsl/integration/fluent-api-docs-examples.integration.test.ts +988 -0
- package/test/dsl/integration/fluent-api.integration.test.ts +615 -0
- package/test/dsl/integration/search-helpers.ts +27 -0
- package/test/dsl/integration/special-functions.integration.test.ts +224 -0
- package/test/dsl/integration/test-config.ts +52 -0
- package/test/dsl/pagination.test.ts +86 -0
- package/test/dsl/query-builder.test.ts +1775 -0
- package/test/dsl/response-parser.test.ts +520 -0
- package/test/dsl/schema/cache.test.ts +53 -0
- package/test/dsl/schema/load.test.ts +165 -0
- package/test/dsl/schema/summary.test.ts +61 -0
- package/test/dsl/schema/validation.test.ts +46 -0
- package/test/dsl/time-series.test.ts +135 -0
- package/test/dsl/unnest.test.ts +151 -0
- package/test/dsl/usage-policy.test.ts +100 -0
- package/test/dsl/utils/escape.property.test.ts +109 -0
- package/test/dsl/utils/escape.test.ts +140 -0
- package/test/dsl/utils/validate-field-name.property.test.ts +99 -0
- package/test/dsl/utils/validate-field-name.test.ts +55 -0
- package/test/examples/dsl-examples.test.ts +29 -0
- package/test/examples/usage-scenarios.test.ts +90 -0
- package/test/fixtures/describe-schema.json +4000 -0
- package/test/funder-org-names.test.ts +20 -0
- package/test/helpers/schema-fixture.ts +18 -0
- package/test/helpers/tool-test-harness.ts +114 -0
- package/test/integration/assertions.ts +263 -0
- package/test/integration/env.ts +108 -0
- package/test/integration/harness.ts +307 -0
- package/test/integration/hosted-client.ts +56 -0
- package/test/integration/hosted-mocks.ts +81 -0
- package/test/integration/hosted-run.ts +86 -0
- package/test/integration/hosted.e2e.test.ts +101 -0
- package/test/integration/reporter.ts +100 -0
- package/test/integration/run.ts +74 -0
- package/test/integration/suites/analytics.integration.ts +72 -0
- package/test/integration/suites/functions.integration.ts +37 -0
- package/test/integration/suites/hosted-smoke.integration.ts +38 -0
- package/test/integration/suites/index.ts +22 -0
- package/test/integration/suites/lookup.integration.ts +57 -0
- package/test/integration/suites/query.integration.ts +49 -0
- package/test/integration/suites/resources.integration.ts +68 -0
- package/test/integration/suites/search.integration.ts +80 -0
- package/test/integration/types.ts +92 -0
- package/test/integration/verify-usage-scenarios.ts +162 -0
- package/test/mcp/export-format.test.ts +67 -0
- package/test/mcp/http-server.test.ts +80 -0
- package/test/middleware/field-aliases.test.ts +287 -0
- package/test/resources/schema.test.ts +28 -0
- package/test/schema/describe-contract.test.ts +24 -0
- package/test/schema/store.test.ts +45 -0
- package/test/server.test.ts +170 -0
- package/test/tools/analytics-filters.test.ts +35 -0
- package/test/tools/analytics.test.ts +419 -0
- package/test/tools/fetch-search-pages.test.ts +200 -0
- package/test/tools/functions.test.ts +153 -0
- package/test/tools/lookup.test.ts +296 -0
- package/test/tools/query.test.ts +100 -0
- package/test/tools/schema.test.ts +37 -0
- package/test/tools/search.test.ts +415 -0
- package/test/utils.test.ts +45 -0
- package/tsconfig.json +9 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-page search fetch helpers (aggregate and file export).
|
|
3
|
+
* @module mcp/batch-fetch
|
|
4
|
+
*/
|
|
5
|
+
import type { DimensionsClient } from "../dsl/index.js";
|
|
6
|
+
import { type StructuredEntityType } from "../dsl/index.js";
|
|
7
|
+
import { type ExportFormat } from "./export-format.js";
|
|
8
|
+
/** Sidecar metadata written beside export files. */
|
|
9
|
+
export interface BatchExportMeta {
|
|
10
|
+
readonly queryHash: string;
|
|
11
|
+
readonly entityType: StructuredEntityType;
|
|
12
|
+
readonly format: ExportFormat;
|
|
13
|
+
readonly columns?: readonly string[];
|
|
14
|
+
readonly lastSkip: number;
|
|
15
|
+
readonly pagesDone: number;
|
|
16
|
+
readonly recordsWritten: number;
|
|
17
|
+
readonly totalCount: number;
|
|
18
|
+
readonly pageSize: number;
|
|
19
|
+
readonly updatedAt: string;
|
|
20
|
+
}
|
|
21
|
+
/** Summary returned from aggregate multi-page fetch. */
|
|
22
|
+
export interface AggregateFetchSummary {
|
|
23
|
+
readonly pagesFetched: number;
|
|
24
|
+
readonly recordsFetched: number;
|
|
25
|
+
readonly totalCount: number;
|
|
26
|
+
readonly ids: string[];
|
|
27
|
+
readonly idsTruncated: boolean;
|
|
28
|
+
readonly totalFundingUsd?: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Computes a short hash of the search definition (excluding skip/limit).
|
|
32
|
+
* @param dsl - Full DSL query string
|
|
33
|
+
* @returns 16-character hex hash prefix
|
|
34
|
+
*/
|
|
35
|
+
export declare function queryHashFromDsl(dsl: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Reads export sidecar metadata if present.
|
|
38
|
+
* @param metaPath - Path to `.meta.json` sidecar
|
|
39
|
+
* @returns Parsed metadata or undefined
|
|
40
|
+
*/
|
|
41
|
+
export declare function readExportMeta(metaPath: string): Promise<BatchExportMeta | undefined>;
|
|
42
|
+
/**
|
|
43
|
+
* Writes export sidecar metadata.
|
|
44
|
+
* @param metaPath - Path to `.meta.json` sidecar
|
|
45
|
+
* @param meta - Metadata to persist
|
|
46
|
+
*/
|
|
47
|
+
export declare function writeExportMeta(metaPath: string, meta: BatchExportMeta): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Fetches multiple pages and returns an aggregate summary (no full row payloads).
|
|
50
|
+
* @param client - Dimensions client
|
|
51
|
+
* @param entityType - Entity source name
|
|
52
|
+
* @param buildDsl - Factory for DSL given skip and page size
|
|
53
|
+
* @param options - Batch parameters
|
|
54
|
+
* @returns Aggregate summary
|
|
55
|
+
*/
|
|
56
|
+
export declare function runAggregateFetch(client: DimensionsClient, entityType: StructuredEntityType, buildDsl: (skip: number, limit: number) => string, options: {
|
|
57
|
+
startPage: number;
|
|
58
|
+
maxPages: number;
|
|
59
|
+
pageSize: number;
|
|
60
|
+
maxRecords?: number;
|
|
61
|
+
}): Promise<AggregateFetchSummary>;
|
|
62
|
+
/**
|
|
63
|
+
* Streams multiple pages to a JSONL or CSV file with resume metadata.
|
|
64
|
+
* @param client - Dimensions client
|
|
65
|
+
* @param entityType - Entity source name
|
|
66
|
+
* @param buildDsl - Factory for DSL given skip and page size
|
|
67
|
+
* @param outputPath - Destination file path
|
|
68
|
+
* @param options - Batch, format, and resume parameters
|
|
69
|
+
* @returns Export result summary
|
|
70
|
+
*/
|
|
71
|
+
export declare function runFileFetch(client: DimensionsClient, entityType: StructuredEntityType, buildDsl: (skip: number, limit: number) => string, outputPath: string, options: {
|
|
72
|
+
startPage: number;
|
|
73
|
+
maxPages: number;
|
|
74
|
+
pageSize: number;
|
|
75
|
+
maxRecords?: number;
|
|
76
|
+
queryHash: string;
|
|
77
|
+
format: ExportFormat;
|
|
78
|
+
preferredFields?: readonly string[];
|
|
79
|
+
resumeFromMeta?: boolean;
|
|
80
|
+
}): Promise<{
|
|
81
|
+
outputPath: string;
|
|
82
|
+
metaPath: string;
|
|
83
|
+
format: ExportFormat;
|
|
84
|
+
recordsWritten: number;
|
|
85
|
+
pagesFetched: number;
|
|
86
|
+
totalCount: number;
|
|
87
|
+
resumed: boolean;
|
|
88
|
+
}>;
|
|
89
|
+
//# sourceMappingURL=batch-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-fetch.d.ts","sourceRoot":"","sources":["../../src/mcp/batch-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-page search fetch helpers (aggregate and file export).
|
|
3
|
+
* @module mcp/batch-fetch
|
|
4
|
+
*/
|
|
5
|
+
import { createHash } from "node:crypto";
|
|
6
|
+
import { appendFile, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
7
|
+
import { dirname } from "node:path";
|
|
8
|
+
import { AGGREGATE_ID_CAP, parseEntityResponse, SCHEMA_LIMITS, } from "../dsl/index.js";
|
|
9
|
+
import { formatRowsForExport } from "./export-format.js";
|
|
10
|
+
/**
|
|
11
|
+
* Computes a short hash of the search definition (excluding skip/limit).
|
|
12
|
+
* @param dsl - Full DSL query string
|
|
13
|
+
* @returns 16-character hex hash prefix
|
|
14
|
+
*/
|
|
15
|
+
export function queryHashFromDsl(dsl) {
|
|
16
|
+
const normalized = dsl.replace(/\bskip \d+\b/g, "").replace(/\blimit \d+\b/g, "limit");
|
|
17
|
+
return createHash("sha256").update(normalized).digest("hex").slice(0, 16);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Reads export sidecar metadata if present.
|
|
21
|
+
* @param metaPath - Path to `.meta.json` sidecar
|
|
22
|
+
* @returns Parsed metadata or undefined
|
|
23
|
+
*/
|
|
24
|
+
export async function readExportMeta(metaPath) {
|
|
25
|
+
try {
|
|
26
|
+
const raw = await readFile(metaPath, "utf8");
|
|
27
|
+
return JSON.parse(raw);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Writes export sidecar metadata.
|
|
35
|
+
* @param metaPath - Path to `.meta.json` sidecar
|
|
36
|
+
* @param meta - Metadata to persist
|
|
37
|
+
*/
|
|
38
|
+
export async function writeExportMeta(metaPath, meta) {
|
|
39
|
+
await mkdir(dirname(metaPath), { recursive: true });
|
|
40
|
+
await writeFile(metaPath, JSON.stringify(meta, null, 2), "utf8");
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Fetches multiple pages and returns an aggregate summary (no full row payloads).
|
|
44
|
+
* @param client - Dimensions client
|
|
45
|
+
* @param entityType - Entity source name
|
|
46
|
+
* @param buildDsl - Factory for DSL given skip and page size
|
|
47
|
+
* @param options - Batch parameters
|
|
48
|
+
* @returns Aggregate summary
|
|
49
|
+
*/
|
|
50
|
+
export async function runAggregateFetch(client, entityType, buildDsl, options) {
|
|
51
|
+
const ids = [];
|
|
52
|
+
let recordsFetched = 0;
|
|
53
|
+
let pagesFetched = 0;
|
|
54
|
+
let totalCount = 0;
|
|
55
|
+
let totalFundingUsd = 0;
|
|
56
|
+
let hasFunding = false;
|
|
57
|
+
for (let p = options.startPage; p < options.startPage + options.maxPages; p++) {
|
|
58
|
+
const skip = p * options.pageSize;
|
|
59
|
+
if (skip + options.pageSize > SCHEMA_LIMITS.maxOffset)
|
|
60
|
+
break;
|
|
61
|
+
const dsl = buildDsl(skip, options.pageSize);
|
|
62
|
+
const response = (await client.rawQuery(dsl));
|
|
63
|
+
const parsed = parseEntityResponse(response, entityType);
|
|
64
|
+
if (pagesFetched === 0) {
|
|
65
|
+
totalCount = parsed.totalCount;
|
|
66
|
+
}
|
|
67
|
+
for (const row of parsed.data) {
|
|
68
|
+
if (typeof row.id === "string" && ids.length < AGGREGATE_ID_CAP) {
|
|
69
|
+
ids.push(row.id);
|
|
70
|
+
}
|
|
71
|
+
if (entityType === "grants" && typeof row.funding_usd === "number") {
|
|
72
|
+
totalFundingUsd += row.funding_usd;
|
|
73
|
+
hasFunding = true;
|
|
74
|
+
}
|
|
75
|
+
recordsFetched++;
|
|
76
|
+
if (options.maxRecords !== undefined && recordsFetched >= options.maxRecords) {
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
pagesFetched++;
|
|
81
|
+
if (parsed.data.length < options.pageSize)
|
|
82
|
+
break;
|
|
83
|
+
if (options.maxRecords !== undefined && recordsFetched >= options.maxRecords)
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
pagesFetched,
|
|
88
|
+
recordsFetched,
|
|
89
|
+
totalCount,
|
|
90
|
+
ids,
|
|
91
|
+
idsTruncated: recordsFetched > ids.length,
|
|
92
|
+
...(hasFunding ? { totalFundingUsd } : {}),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Streams multiple pages to a JSONL or CSV file with resume metadata.
|
|
97
|
+
* @param client - Dimensions client
|
|
98
|
+
* @param entityType - Entity source name
|
|
99
|
+
* @param buildDsl - Factory for DSL given skip and page size
|
|
100
|
+
* @param outputPath - Destination file path
|
|
101
|
+
* @param options - Batch, format, and resume parameters
|
|
102
|
+
* @returns Export result summary
|
|
103
|
+
*/
|
|
104
|
+
export async function runFileFetch(client, entityType, buildDsl, outputPath, options) {
|
|
105
|
+
const metaPath = `${outputPath}.meta.json`;
|
|
106
|
+
let startPage = options.startPage;
|
|
107
|
+
let recordsWritten = 0;
|
|
108
|
+
let resumed = false;
|
|
109
|
+
let csvColumns;
|
|
110
|
+
if (options.resumeFromMeta) {
|
|
111
|
+
const existing = await readExportMeta(metaPath);
|
|
112
|
+
if (existing?.queryHash === options.queryHash &&
|
|
113
|
+
existing.entityType === entityType &&
|
|
114
|
+
existing.format === options.format) {
|
|
115
|
+
startPage = Math.floor(existing.lastSkip / options.pageSize) + 1;
|
|
116
|
+
recordsWritten = existing.recordsWritten;
|
|
117
|
+
csvColumns = existing.columns ? [...existing.columns] : undefined;
|
|
118
|
+
resumed = true;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
await mkdir(dirname(outputPath), { recursive: true });
|
|
122
|
+
let pagesFetched = 0;
|
|
123
|
+
let totalCount = 0;
|
|
124
|
+
for (let p = startPage; p < startPage + options.maxPages; p++) {
|
|
125
|
+
const skip = p * options.pageSize;
|
|
126
|
+
if (skip + options.pageSize > SCHEMA_LIMITS.maxOffset)
|
|
127
|
+
break;
|
|
128
|
+
const dsl = buildDsl(skip, options.pageSize);
|
|
129
|
+
const response = (await client.rawQuery(dsl));
|
|
130
|
+
const parsed = parseEntityResponse(response, entityType);
|
|
131
|
+
if (pagesFetched === 0 && !resumed) {
|
|
132
|
+
totalCount = parsed.totalCount;
|
|
133
|
+
}
|
|
134
|
+
else if (totalCount === 0) {
|
|
135
|
+
totalCount = parsed.totalCount;
|
|
136
|
+
}
|
|
137
|
+
const rows = parsed.data;
|
|
138
|
+
const { text, columns } = formatRowsForExport(rows, options.format, {
|
|
139
|
+
columns: csvColumns,
|
|
140
|
+
preferredFields: options.preferredFields,
|
|
141
|
+
includeHeader: options.format === "csv" && recordsWritten === 0 && rows.length > 0,
|
|
142
|
+
});
|
|
143
|
+
if (options.format === "csv" && columns.length > 0) {
|
|
144
|
+
csvColumns = columns;
|
|
145
|
+
}
|
|
146
|
+
if (text.length > 0) {
|
|
147
|
+
await appendFile(outputPath, text, "utf8");
|
|
148
|
+
}
|
|
149
|
+
recordsWritten += rows.length;
|
|
150
|
+
pagesFetched++;
|
|
151
|
+
await writeExportMeta(metaPath, {
|
|
152
|
+
queryHash: options.queryHash,
|
|
153
|
+
entityType,
|
|
154
|
+
format: options.format,
|
|
155
|
+
...(csvColumns?.length ? { columns: csvColumns } : {}),
|
|
156
|
+
lastSkip: skip,
|
|
157
|
+
pagesDone: p + 1,
|
|
158
|
+
recordsWritten,
|
|
159
|
+
totalCount,
|
|
160
|
+
pageSize: options.pageSize,
|
|
161
|
+
updatedAt: new Date().toISOString(),
|
|
162
|
+
});
|
|
163
|
+
if (rows.length < options.pageSize)
|
|
164
|
+
break;
|
|
165
|
+
if (options.maxRecords !== undefined && recordsWritten >= options.maxRecords)
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
outputPath,
|
|
170
|
+
metaPath,
|
|
171
|
+
format: options.format,
|
|
172
|
+
recordsWritten,
|
|
173
|
+
pagesFetched,
|
|
174
|
+
totalCount,
|
|
175
|
+
resumed,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=batch-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-fetch.js","sourceRoot":"","sources":["../../src/mcp/batch-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated DSL examples for MCP resources (from public Dimensions DSL documentation patterns).
|
|
3
|
+
* @module examples/dsl-examples
|
|
4
|
+
*/
|
|
5
|
+
/** URI template for per-source example resources. */
|
|
6
|
+
export declare const DSL_EXAMPLES_BY_SOURCE_URI = "dimensions://examples/{source}";
|
|
7
|
+
/** Example queries keyed by entity type. */
|
|
8
|
+
export declare const DSL_EXAMPLES_BY_ENTITY: Record<string, readonly string[]>;
|
|
9
|
+
/** General DSL patterns (describe, functions, pagination). */
|
|
10
|
+
export declare const DSL_GENERAL_EXAMPLES: readonly ["describe version", "describe schema", "describe source publications", "extract_concepts(text: \"CRISPR gene editing enables precise DNA modification\")", "classify(text: \"Stem cell therapy for diabetes\", system: \"for\")"];
|
|
11
|
+
/** Link to official DSL documentation. */
|
|
12
|
+
export declare const DSL_DOCUMENTATION_URL = "https://docs.dimensions.ai/dsl/";
|
|
13
|
+
/** Source names that have curated per-source example resources. */
|
|
14
|
+
export declare const DSL_EXAMPLE_SOURCE_NAMES: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Returns curated DSL examples for a source, if defined.
|
|
17
|
+
* @param source - Dimensions source name (e.g. `publications`)
|
|
18
|
+
* @returns Example query strings or undefined
|
|
19
|
+
*/
|
|
20
|
+
export declare function getDslExamplesForSource(source: string): readonly string[] | undefined;
|
|
21
|
+
//# sourceMappingURL=dsl-examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsl-examples.d.ts","sourceRoot":"","sources":["../../../src/mcp/examples/dsl-examples.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qDAAqD;AACrD,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAE3E,4CAA4C;AAC5C,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAgCpE,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,oBAAoB,6OAMvB,CAAC;AAEX,0CAA0C;AAC1C,eAAO,MAAM,qBAAqB,oCAAoC,CAAC;AAEvE,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,UAA6C,CAAC;AAEnF;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAErF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated DSL examples for MCP resources (from public Dimensions DSL documentation patterns).
|
|
3
|
+
* @module examples/dsl-examples
|
|
4
|
+
*/
|
|
5
|
+
/** URI template for per-source example resources. */
|
|
6
|
+
export const DSL_EXAMPLES_BY_SOURCE_URI = "dimensions://examples/{source}";
|
|
7
|
+
/** Example queries keyed by entity type. */
|
|
8
|
+
export const DSL_EXAMPLES_BY_ENTITY = {
|
|
9
|
+
publications: [
|
|
10
|
+
'search publications for "machine learning" return publications[id+title+doi] limit 10',
|
|
11
|
+
'search publications for "CRISPR" where year >= 2020 return publications[id+title+times_cited+year] sort by times_cited desc limit 25',
|
|
12
|
+
'search publications in title_only for "gene therapy" return publications[basics] limit 10',
|
|
13
|
+
"search publications return publications facet journal limit 20",
|
|
14
|
+
],
|
|
15
|
+
grants: [
|
|
16
|
+
'search grants for "cancer immunotherapy" return grants limit 10',
|
|
17
|
+
'search grants where funder_org_name = "National Institutes of Health" return grants[basics] limit 10',
|
|
18
|
+
"search grants return grants aggregate funding_usd",
|
|
19
|
+
],
|
|
20
|
+
patents: [
|
|
21
|
+
'search patents for "lithium battery" return patents limit 10',
|
|
22
|
+
"search patents where year >= 2018 return patents[id+title] limit 20",
|
|
23
|
+
],
|
|
24
|
+
clinical_trials: [
|
|
25
|
+
'search clinical_trials for "diabetes" return clinical_trials limit 10',
|
|
26
|
+
'search clinical_trials where phase = "Phase 3" return clinical_trials limit 10',
|
|
27
|
+
],
|
|
28
|
+
datasets: ['search datasets for "climate model" return datasets limit 10'],
|
|
29
|
+
policy_documents: [
|
|
30
|
+
'search policy_documents for "renewable energy" return policy_documents limit 10',
|
|
31
|
+
],
|
|
32
|
+
researchers: [
|
|
33
|
+
'search researchers where last_name = "Smith" return researchers limit 10',
|
|
34
|
+
"search researchers where total_publications > 100 return researchers limit 10",
|
|
35
|
+
],
|
|
36
|
+
organizations: [
|
|
37
|
+
'search organizations for "Stanford" return organizations limit 10',
|
|
38
|
+
'search organizations where country = "United States" return organizations limit 10',
|
|
39
|
+
],
|
|
40
|
+
};
|
|
41
|
+
/** General DSL patterns (describe, functions, pagination). */
|
|
42
|
+
export const DSL_GENERAL_EXAMPLES = [
|
|
43
|
+
"describe version",
|
|
44
|
+
"describe schema",
|
|
45
|
+
"describe source publications",
|
|
46
|
+
'extract_concepts(text: "CRISPR gene editing enables precise DNA modification")',
|
|
47
|
+
'classify(text: "Stem cell therapy for diabetes", system: "for")',
|
|
48
|
+
];
|
|
49
|
+
/** Link to official DSL documentation. */
|
|
50
|
+
export const DSL_DOCUMENTATION_URL = "https://docs.dimensions.ai/dsl/";
|
|
51
|
+
/** Source names that have curated per-source example resources. */
|
|
52
|
+
export const DSL_EXAMPLE_SOURCE_NAMES = Object.keys(DSL_EXAMPLES_BY_ENTITY).sort();
|
|
53
|
+
/**
|
|
54
|
+
* Returns curated DSL examples for a source, if defined.
|
|
55
|
+
* @param source - Dimensions source name (e.g. `publications`)
|
|
56
|
+
* @returns Example query strings or undefined
|
|
57
|
+
*/
|
|
58
|
+
export function getDslExamplesForSource(source) {
|
|
59
|
+
return DSL_EXAMPLES_BY_ENTITY[source];
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=dsl-examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsl-examples.js","sourceRoot":"","sources":["../../../src/mcp/examples/dsl-examples.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qDAAqD;AACrD,MAAM,CAAC,MAAM,0BAA0B,GAAG,gCAAgC,CAAC;AAE3E,4CAA4C;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAsC;IACvE,YAAY,EAAE;QACZ,uFAAuF;QACvF,sIAAsI;QACtI,2FAA2F;QAC3F,gEAAgE;KACjE;IACD,MAAM,EAAE;QACN,iEAAiE;QACjE,sGAAsG;QACtG,mDAAmD;KACpD;IACD,OAAO,EAAE;QACP,8DAA8D;QAC9D,qEAAqE;KACtE;IACD,eAAe,EAAE;QACf,uEAAuE;QACvE,gFAAgF;KACjF;IACD,QAAQ,EAAE,CAAC,8DAA8D,CAAC;IAC1E,gBAAgB,EAAE;QAChB,iFAAiF;KAClF;IACD,WAAW,EAAE;QACX,0EAA0E;QAC1E,+EAA+E;KAChF;IACD,aAAa,EAAE;QACb,mEAAmE;QACnE,oFAAoF;KACrF;CACF,CAAC;AAEF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,kBAAkB;IAClB,iBAAiB;IACjB,8BAA8B;IAC9B,gFAAgF;IAChF,iEAAiE;CACzD,CAAC;AAEX,0CAA0C;AAC1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;AAEvE,mEAAmE;AACnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;AAEnF;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool routing for natural-language prompts in docs/USAGE.md.
|
|
3
|
+
* @module examples/usage-scenarios
|
|
4
|
+
*/
|
|
5
|
+
export interface UsageScenario {
|
|
6
|
+
/** Stable id for tests */
|
|
7
|
+
id: string;
|
|
8
|
+
/** Short goal label (matches USAGE table) */
|
|
9
|
+
goal: string;
|
|
10
|
+
/** Example user prompt */
|
|
11
|
+
prompt: string;
|
|
12
|
+
/** Structured MCP tool agents should call */
|
|
13
|
+
tool: string;
|
|
14
|
+
/** Tool arguments (validated in usage-scenarios.test.ts) */
|
|
15
|
+
args: Record<string, unknown>;
|
|
16
|
+
/** Substrings expected in DSL passed to rawQuery (when applicable) */
|
|
17
|
+
dslContains?: string[];
|
|
18
|
+
}
|
|
19
|
+
export declare const USAGE_SCENARIOS: readonly UsageScenario[];
|
|
20
|
+
//# sourceMappingURL=usage-scenarios.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-scenarios.d.ts","sourceRoot":"","sources":["../../../src/mcp/examples/usage-scenarios.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAoK1C,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool routing for natural-language prompts in docs/USAGE.md.
|
|
3
|
+
* @module examples/usage-scenarios
|
|
4
|
+
*/
|
|
5
|
+
export const USAGE_SCENARIOS = [
|
|
6
|
+
{
|
|
7
|
+
id: "top-publications",
|
|
8
|
+
goal: "Top papers on a topic",
|
|
9
|
+
prompt: "Find the 20 most-cited publications on CRISPR gene editing since 2020.",
|
|
10
|
+
tool: "search_publications",
|
|
11
|
+
args: {
|
|
12
|
+
query: "CRISPR gene editing",
|
|
13
|
+
yearFrom: 2020,
|
|
14
|
+
sortBy: "total_citations",
|
|
15
|
+
limit: 20,
|
|
16
|
+
fields: ["id", "title", "doi", "year", "total_citations"],
|
|
17
|
+
},
|
|
18
|
+
dslContains: [
|
|
19
|
+
"search publications",
|
|
20
|
+
"CRISPR gene editing",
|
|
21
|
+
"year >= 2020",
|
|
22
|
+
"sort by times_cited desc",
|
|
23
|
+
"limit 20",
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: "nih-grants",
|
|
28
|
+
goal: "Grants from a funder",
|
|
29
|
+
prompt: "Search NIH grants about cancer immunotherapy started after 2020, limit 25.",
|
|
30
|
+
tool: "search_grants",
|
|
31
|
+
args: {
|
|
32
|
+
query: "cancer immunotherapy",
|
|
33
|
+
startYearFrom: 2020,
|
|
34
|
+
funderOrgName: "National Cancer Institute",
|
|
35
|
+
limit: 25,
|
|
36
|
+
fields: ["id", "title", "funding_usd", "funder_name", "start_year"],
|
|
37
|
+
},
|
|
38
|
+
dslContains: [
|
|
39
|
+
"search grants",
|
|
40
|
+
"cancer immunotherapy",
|
|
41
|
+
"start_year >= 2020",
|
|
42
|
+
'funder_org_name = "National Cancer Institute"',
|
|
43
|
+
"limit 25",
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: "researchers-by-topic",
|
|
48
|
+
goal: "Who works on a topic",
|
|
49
|
+
prompt: "Who are the top researchers working on quantum computing?",
|
|
50
|
+
tool: "facet_query",
|
|
51
|
+
args: {
|
|
52
|
+
entityType: "publications",
|
|
53
|
+
facetField: "researchers",
|
|
54
|
+
query: "quantum computing",
|
|
55
|
+
limit: 10,
|
|
56
|
+
},
|
|
57
|
+
dslContains: ["search publications", "quantum computing", "return researchers"],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "researchers-by-name",
|
|
61
|
+
goal: "Find researchers by name",
|
|
62
|
+
prompt: "Search researchers named Jennifer Doudna, sort by publication count.",
|
|
63
|
+
tool: "search_researchers",
|
|
64
|
+
args: {
|
|
65
|
+
query: "Jennifer Doudna",
|
|
66
|
+
sortBy: "total_publications",
|
|
67
|
+
limit: 10,
|
|
68
|
+
fields: ["id", "first_name", "last_name", "total_publications"],
|
|
69
|
+
},
|
|
70
|
+
dslContains: ["search researchers", "Jennifer Doudna", "sort by total_publications"],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: "doi-lookup",
|
|
74
|
+
goal: "Known paper",
|
|
75
|
+
prompt: "Look up DOI 10.1038/nature12373 and show title, citations, and journal.",
|
|
76
|
+
tool: "get_by_doi",
|
|
77
|
+
args: {
|
|
78
|
+
doi: "10.1038/nature12373",
|
|
79
|
+
fields: ["id", "title", "times_cited", "journal"],
|
|
80
|
+
},
|
|
81
|
+
dslContains: ["10.1038/nature12373"],
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: "author-publications",
|
|
85
|
+
goal: "Researcher publications",
|
|
86
|
+
prompt: "List recent publications by Jennifer Doudna.",
|
|
87
|
+
tool: "search_publications",
|
|
88
|
+
args: {
|
|
89
|
+
query: "Jennifer Doudna",
|
|
90
|
+
sortBy: "total_citations",
|
|
91
|
+
limit: 10,
|
|
92
|
+
fields: ["id", "title", "year", "total_citations", "journal"],
|
|
93
|
+
},
|
|
94
|
+
dslContains: ["search publications", "Jennifer Doudna", "limit 10"],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
id: "org-publications",
|
|
98
|
+
goal: "Institution output",
|
|
99
|
+
prompt: "Show highly cited publications from Stanford University.",
|
|
100
|
+
tool: "search_publications",
|
|
101
|
+
args: {
|
|
102
|
+
filters: [{ field: "research_orgs.id", operator: "=", value: "grid.168010.e" }],
|
|
103
|
+
sortBy: "total_citations",
|
|
104
|
+
limit: 25,
|
|
105
|
+
fields: ["id", "title", "year", "total_citations"],
|
|
106
|
+
},
|
|
107
|
+
dslContains: ['research_orgs.id = "grid.168010.e"', "sort by times_cited"],
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
id: "facet-journals-since-year",
|
|
111
|
+
goal: "Topic breakdown",
|
|
112
|
+
prompt: "Which journals publish the most machine learning research since 2020?",
|
|
113
|
+
tool: "facet_query",
|
|
114
|
+
args: {
|
|
115
|
+
entityType: "publications",
|
|
116
|
+
facetField: "journal",
|
|
117
|
+
query: "machine learning",
|
|
118
|
+
yearFrom: 2020,
|
|
119
|
+
limit: 20,
|
|
120
|
+
},
|
|
121
|
+
dslContains: ["machine learning", "year >= 2020", "return journal"],
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
id: "funding-leaders",
|
|
125
|
+
goal: "Funding leaders",
|
|
126
|
+
prompt: "Which funders have the most grant funding on climate adaptation?",
|
|
127
|
+
tool: "aggregate_query",
|
|
128
|
+
args: {
|
|
129
|
+
entityType: "grants",
|
|
130
|
+
facetField: "funder_orgs",
|
|
131
|
+
indicators: ["funding"],
|
|
132
|
+
query: "climate adaptation",
|
|
133
|
+
sortBy: "funding",
|
|
134
|
+
sortOrder: "desc",
|
|
135
|
+
limit: 10,
|
|
136
|
+
},
|
|
137
|
+
dslContains: ["search grants", "climate adaptation", "return funder_orgs aggregate funding"],
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: "citation-trend",
|
|
141
|
+
goal: "Citations over time",
|
|
142
|
+
prompt: "Citation trend for large language model publications from 2018 to 2024.",
|
|
143
|
+
tool: "citation_trend",
|
|
144
|
+
args: {
|
|
145
|
+
query: "large language model",
|
|
146
|
+
startYear: 2018,
|
|
147
|
+
endYear: 2024,
|
|
148
|
+
},
|
|
149
|
+
dslContains: ["large language model", "citations_per_year(2018, 2024)"],
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: "build-complex-query",
|
|
153
|
+
goal: "Build a complex query",
|
|
154
|
+
prompt: "Run a DSL query for publications: include CRISPR or gene editing, exclude animal models, year ≥ 2020.",
|
|
155
|
+
tool: "execute_dsl",
|
|
156
|
+
args: {
|
|
157
|
+
dsl: 'search publications for "CRISPR" or for "gene editing" not for "animal model" where year >= 2020 return publications[id,title,doi,times_cited] sort by times_cited desc limit 20',
|
|
158
|
+
},
|
|
159
|
+
dslContains: [
|
|
160
|
+
"search publications",
|
|
161
|
+
"CRISPR",
|
|
162
|
+
"gene editing",
|
|
163
|
+
"animal model",
|
|
164
|
+
"year >= 2020",
|
|
165
|
+
"limit 20",
|
|
166
|
+
],
|
|
167
|
+
},
|
|
168
|
+
];
|
|
169
|
+
//# sourceMappingURL=usage-scenarios.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-scenarios.js","sourceRoot":"","sources":["../../../src/mcp/examples/usage-scenarios.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,wEAAwE;QAChF,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE;YACJ,KAAK,EAAE,qBAAqB;YAC5B,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC;SAC1D;QACD,WAAW,EAAE;YACX,qBAAqB;YACrB,qBAAqB;YACrB,cAAc;YACd,0BAA0B;YAC1B,UAAU;SACX;KACF;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,4EAA4E;QACpF,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE;YACJ,KAAK,EAAE,sBAAsB;YAC7B,aAAa,EAAE,IAAI;YACnB,aAAa,EAAE,2BAA2B;YAC1C,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,CAAC;SACpE;QACD,WAAW,EAAE;YACX,eAAe;YACf,sBAAsB;YACtB,oBAAoB;YACpB,+CAA+C;YAC/C,UAAU;SACX;KACF;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,2DAA2D;QACnE,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE;YACJ,UAAU,EAAE,cAAc;YAC1B,UAAU,EAAE,aAAa;YACzB,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,EAAE;SACV;QACD,WAAW,EAAE,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,CAAC;KAChF;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,0BAA0B;QAChC,MAAM,EAAE,sEAAsE;QAC9E,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE;YACJ,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,oBAAoB;YAC5B,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,CAAC;SAChE;QACD,WAAW,EAAE,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,4BAA4B,CAAC;KACrF;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,yEAAyE;QACjF,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,GAAG,EAAE,qBAAqB;YAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC;SAClD;QACD,WAAW,EAAE,CAAC,qBAAqB,CAAC;KACrC;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,8CAA8C;QACtD,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE;YACJ,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,CAAC;SAC9D;QACD,WAAW,EAAE,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,CAAC;KACpE;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE,0DAA0D;QAClE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE;YACJ,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;YAC/E,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC;SACnD;QACD,WAAW,EAAE,CAAC,oCAAoC,EAAE,qBAAqB,CAAC;KAC3E;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,uEAAuE;QAC/E,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE;YACJ,UAAU,EAAE,cAAc;YAC1B,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,EAAE;SACV;QACD,WAAW,EAAE,CAAC,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,CAAC;KACpE;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,kEAAkE;QAC1E,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE;YACJ,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,aAAa;YACzB,UAAU,EAAE,CAAC,SAAS,CAAC;YACvB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,EAAE;SACV;QACD,WAAW,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,sCAAsC,CAAC;KAC7F;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,yEAAyE;QACjF,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE;YACJ,KAAK,EAAE,sBAAsB;YAC7B,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;SACd;QACD,WAAW,EAAE,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;KACxE;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EACJ,uGAAuG;QACzG,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE;YACJ,GAAG,EAAE,kLAAkL;SACxL;QACD,WAAW,EAAE;YACX,qBAAqB;YACrB,QAAQ;YACR,cAAc;YACd,cAAc;YACd,cAAc;YACd,UAAU;SACX;KACF;CACO,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File export formatting for batch search results (JSONL and CSV).
|
|
3
|
+
* @module mcp/export-format
|
|
4
|
+
*/
|
|
5
|
+
/** Supported on-disk export formats for fetch_search_pages file mode. */
|
|
6
|
+
export type ExportFormat = "jsonl" | "csv";
|
|
7
|
+
/**
|
|
8
|
+
* Resolves export format from an explicit choice or output path extension.
|
|
9
|
+
* @param outputPath - Destination file path
|
|
10
|
+
* @param explicit - Optional format override
|
|
11
|
+
* @returns Resolved format (defaults to JSONL)
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveExportFormat(outputPath: string, explicit?: ExportFormat): ExportFormat;
|
|
14
|
+
/**
|
|
15
|
+
* Escapes a single CSV cell value.
|
|
16
|
+
* @param value - Cell value
|
|
17
|
+
* @returns CSV-safe string
|
|
18
|
+
*/
|
|
19
|
+
export declare function escapeCsvCell(value: unknown): string;
|
|
20
|
+
/**
|
|
21
|
+
* Derives stable CSV column order from rows and optional preferred field list.
|
|
22
|
+
* @param rows - Result rows
|
|
23
|
+
* @param preferredFields - Field order from the search `fields` argument
|
|
24
|
+
* @param existing - Columns from a resumed export
|
|
25
|
+
* @returns Ordered column names
|
|
26
|
+
*/
|
|
27
|
+
export declare function deriveCsvColumns(rows: Record<string, unknown>[], preferredFields?: readonly string[], existing?: readonly string[]): string[];
|
|
28
|
+
/**
|
|
29
|
+
* Formats result rows for file export.
|
|
30
|
+
* @param rows - Records to write
|
|
31
|
+
* @param format - Target format
|
|
32
|
+
* @param options - CSV column and header options
|
|
33
|
+
* @returns Serialized text and resolved CSV columns
|
|
34
|
+
*/
|
|
35
|
+
export declare function formatRowsForExport(rows: Record<string, unknown>[], format: ExportFormat, options?: {
|
|
36
|
+
columns?: readonly string[];
|
|
37
|
+
preferredFields?: readonly string[];
|
|
38
|
+
includeHeader?: boolean;
|
|
39
|
+
}): {
|
|
40
|
+
text: string;
|
|
41
|
+
columns: string[];
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=export-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-format.d.ts","sourceRoot":"","sources":["../../src/mcp/export-format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,YAAY,CAG7F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAYpD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,EACnC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,EAAE,CAqBV;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;CACpB,GACL;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAyBrC"}
|