@cyanheads/brapi-mcp-server 0.4.13 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +25 -19
- package/README.md +40 -26
- package/changelog/0.4.x/0.4.13.md +15 -0
- package/changelog/0.4.x/0.4.14.md +22 -0
- package/changelog/0.5.x/0.5.0.md +59 -0
- package/dist/config/builtin-aliases.d.ts +1 -1
- package/dist/config/builtin-aliases.js +1 -1
- package/dist/config/server-config.d.ts +3 -3
- package/dist/config/server-config.d.ts.map +1 -1
- package/dist/config/server-config.js +13 -13
- package/dist/config/server-config.js.map +1 -1
- package/dist/index.js +62 -15
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/prompts/definitions/brapi-eda-study.prompt.js +1 -1
- package/dist/mcp-server/prompts/definitions/brapi-eda-study.prompt.js.map +1 -1
- package/dist/mcp-server/prompts/definitions/brapi-meta-analysis.prompt.js +3 -3
- package/dist/mcp-server/prompts/definitions/brapi-meta-analysis.prompt.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts +8 -11
- package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js +15 -25
- package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.d.ts +6 -10
- package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.js +6 -16
- package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts +69 -0
- package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.js +233 -0
- package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts +19 -11
- package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.js +80 -28
- package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts +4 -6
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js +28 -36
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts +3 -5
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js +21 -17
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts +4 -6
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js +16 -16
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts +3 -5
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js +15 -15
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts +4 -6
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js +17 -17
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts +4 -6
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js +17 -17
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts +2 -4
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js +60 -19
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts +3 -5
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js +15 -15
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.js +6 -2
- package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts +17 -2
- package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.js +51 -7
- package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts +16 -2
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js +51 -5
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +141 -165
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/index.js +28 -17
- package/dist/mcp-server/tools/definitions/index.js.map +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.d.ts +79 -39
- package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.js +167 -70
- package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
- package/dist/mcp-server/tools/shared/raw-routing-hints.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/raw-routing-hints.js +6 -6
- package/dist/mcp-server/tools/shared/raw-routing-hints.js.map +1 -1
- package/dist/services/canvas-bridge/canvas-bridge.d.ts +69 -44
- package/dist/services/canvas-bridge/canvas-bridge.d.ts.map +1 -1
- package/dist/services/canvas-bridge/canvas-bridge.js +220 -103
- package/dist/services/canvas-bridge/canvas-bridge.js.map +1 -1
- package/dist/services/canvas-bridge/index.d.ts +1 -1
- package/dist/services/canvas-bridge/index.d.ts.map +1 -1
- package/dist/services/canvas-bridge/index.js +1 -1
- package/dist/services/canvas-bridge/index.js.map +1 -1
- package/dist/services/canvas-bridge/types.d.ts +11 -12
- package/dist/services/canvas-bridge/types.d.ts.map +1 -1
- package/dist/services/canvas-bridge/types.js +4 -4
- package/package.json +3 -11
- package/server.json +3 -3
- package/dist/mcp-server/resources/definitions/brapi-dataset.resource.d.ts +0 -13
- package/dist/mcp-server/resources/definitions/brapi-dataset.resource.d.ts.map +0 -1
- package/dist/mcp-server/resources/definitions/brapi-dataset.resource.js +0 -26
- package/dist/mcp-server/resources/definitions/brapi-dataset.resource.js.map +0 -1
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.d.ts +0 -89
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.d.ts.map +0 -1
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.js +0 -306
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.js.map +0 -1
- package/dist/services/dataset-store/dataset-store.d.ts +0 -44
- package/dist/services/dataset-store/dataset-store.d.ts.map +0 -1
- package/dist/services/dataset-store/dataset-store.js +0 -208
- package/dist/services/dataset-store/dataset-store.js.map +0 -1
- package/dist/services/dataset-store/index.d.ts +0 -8
- package/dist/services/dataset-store/index.d.ts.map +0 -1
- package/dist/services/dataset-store/index.js +0 -7
- package/dist/services/dataset-store/index.js.map +0 -1
- package/dist/services/dataset-store/types.d.ts +0 -72
- package/dist/services/dataset-store/types.d.ts.map +0 -1
- package/dist/services/dataset-store/types.js +0 -8
- package/dist/services/dataset-store/types.js.map +0 -1
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Tenant-scoped dataset lifecycle. Stores metadata and row
|
|
3
|
-
* payloads in `ctx.state` with TTL from `BRAPI_DATASET_TTL_SECONDS`. Datasets
|
|
4
|
-
* back the `brapi_manage_dataset` tool (list/summary/load/delete) and act as
|
|
5
|
-
* the spillover target for `find_*` tools when result sets exceed
|
|
6
|
-
* `BRAPI_LOAD_LIMIT`. Provenance (source, baseUrl, query) is mandatory on
|
|
7
|
-
* create — research workflows require reproducibility.
|
|
8
|
-
*
|
|
9
|
-
* When the optional `CanvasBridge` is wired in, `create()` auto-registers
|
|
10
|
-
* the row payload as a SQL-queryable table and `delete()` drops it again.
|
|
11
|
-
* Failures in either path log a warning but never break the dataset op —
|
|
12
|
-
* the canvas surface is an enrichment, not a precondition.
|
|
13
|
-
*
|
|
14
|
-
* @module services/dataset-store/dataset-store
|
|
15
|
-
*/
|
|
16
|
-
import type { Context } from '@cyanheads/mcp-ts-core';
|
|
17
|
-
import type { ServerConfig } from '../../config/server-config.js';
|
|
18
|
-
import type { CanvasBridge } from '../../services/canvas-bridge/index.js';
|
|
19
|
-
import type { CreateDatasetInput, DatasetListOptions, DatasetListPage, DatasetLoadOptions, DatasetMetadata, DatasetPage } from './types.js';
|
|
20
|
-
export declare class DatasetStore {
|
|
21
|
-
private readonly serverConfig;
|
|
22
|
-
private readonly canvasBridge?;
|
|
23
|
-
constructor(serverConfig: ServerConfig, canvasBridge?: CanvasBridge | undefined);
|
|
24
|
-
/**
|
|
25
|
-
* Persist a new dataset and return its metadata. Rows and metadata are
|
|
26
|
-
* written under separate keys so `summary` / `list` can avoid paying the
|
|
27
|
-
* row-payload read cost. When the canvas-bridge is wired and enabled,
|
|
28
|
-
* the rows are auto-registered as a SQL-queryable canvas table; failure
|
|
29
|
-
* there only logs a warning.
|
|
30
|
-
*/
|
|
31
|
-
create(ctx: Context, input: CreateDatasetInput): Promise<DatasetMetadata>;
|
|
32
|
-
/** Return just the metadata for a dataset. Throws `NotFound` when missing. */
|
|
33
|
-
summary(ctx: Context, datasetId: string): Promise<DatasetMetadata>;
|
|
34
|
-
/** Return a paginated slice of rows, optionally projected to a subset of columns. */
|
|
35
|
-
load(ctx: Context, datasetId: string, options?: DatasetLoadOptions): Promise<DatasetPage>;
|
|
36
|
-
/** Enumerate datasets for this tenant, paginated via opaque cursor. */
|
|
37
|
-
list(ctx: Context, options?: DatasetListOptions): Promise<DatasetListPage>;
|
|
38
|
-
/** Delete a dataset's metadata and row payload. Idempotent. */
|
|
39
|
-
delete(ctx: Context, datasetId: string): Promise<void>;
|
|
40
|
-
}
|
|
41
|
-
export declare function initDatasetStore(serverConfig: ServerConfig, canvasBridge?: CanvasBridge | undefined): void;
|
|
42
|
-
export declare function getDatasetStore(): DatasetStore;
|
|
43
|
-
export declare function resetDatasetStore(): void;
|
|
44
|
-
//# sourceMappingURL=dataset-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dataset-store.d.ts","sourceRoot":"","sources":["../../../src/services/dataset-store/dataset-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACZ,MAAM,YAAY,CAAC;AAQpB,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBADb,YAAY,EAAE,YAAY,EAC1B,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS;IAG1D;;;;;;OAMG;IACG,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IA2C/E,8EAA8E;IACxE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAYxE,qFAAqF;IAC/E,IAAI,CACR,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC;IA4CvB,uEAAuE;IACjE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBpF,+DAA+D;IACzD,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI7D;AAkED,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,GACtC,IAAI,CAEN;AAED,wBAAgB,eAAe,IAAI,YAAY,CAK9C;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Tenant-scoped dataset lifecycle. Stores metadata and row
|
|
3
|
-
* payloads in `ctx.state` with TTL from `BRAPI_DATASET_TTL_SECONDS`. Datasets
|
|
4
|
-
* back the `brapi_manage_dataset` tool (list/summary/load/delete) and act as
|
|
5
|
-
* the spillover target for `find_*` tools when result sets exceed
|
|
6
|
-
* `BRAPI_LOAD_LIMIT`. Provenance (source, baseUrl, query) is mandatory on
|
|
7
|
-
* create — research workflows require reproducibility.
|
|
8
|
-
*
|
|
9
|
-
* When the optional `CanvasBridge` is wired in, `create()` auto-registers
|
|
10
|
-
* the row payload as a SQL-queryable table and `delete()` drops it again.
|
|
11
|
-
* Failures in either path log a warning but never break the dataset op —
|
|
12
|
-
* the canvas surface is an enrichment, not a precondition.
|
|
13
|
-
*
|
|
14
|
-
* @module services/dataset-store/dataset-store
|
|
15
|
-
*/
|
|
16
|
-
import { notFound, validationError } from '@cyanheads/mcp-ts-core/errors';
|
|
17
|
-
const META_PREFIX = 'brapi/ds/meta/';
|
|
18
|
-
const ROWS_PREFIX = 'brapi/ds/rows/';
|
|
19
|
-
const DEFAULT_PAGE_SIZE = 100;
|
|
20
|
-
const MAX_PAGE_SIZE = 1_000;
|
|
21
|
-
export class DatasetStore {
|
|
22
|
-
serverConfig;
|
|
23
|
-
canvasBridge;
|
|
24
|
-
constructor(serverConfig, canvasBridge) {
|
|
25
|
-
this.serverConfig = serverConfig;
|
|
26
|
-
this.canvasBridge = canvasBridge;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Persist a new dataset and return its metadata. Rows and metadata are
|
|
30
|
-
* written under separate keys so `summary` / `list` can avoid paying the
|
|
31
|
-
* row-payload read cost. When the canvas-bridge is wired and enabled,
|
|
32
|
-
* the rows are auto-registered as a SQL-queryable canvas table; failure
|
|
33
|
-
* there only logs a warning.
|
|
34
|
-
*/
|
|
35
|
-
async create(ctx, input) {
|
|
36
|
-
if (!input.source)
|
|
37
|
-
throw validationError('Dataset source is required.');
|
|
38
|
-
if (!input.baseUrl)
|
|
39
|
-
throw validationError('Dataset baseUrl is required.');
|
|
40
|
-
const datasetId = crypto.randomUUID();
|
|
41
|
-
const columns = input.columns?.length ? [...input.columns] : inferColumns(input.rows);
|
|
42
|
-
const payloadJson = JSON.stringify(input.rows);
|
|
43
|
-
const sizeBytes = byteLength(payloadJson);
|
|
44
|
-
const ttl = this.serverConfig.datasetTtlSeconds;
|
|
45
|
-
const now = new Date();
|
|
46
|
-
const expiresAt = new Date(now.getTime() + ttl * 1000);
|
|
47
|
-
const metadata = {
|
|
48
|
-
datasetId,
|
|
49
|
-
source: input.source,
|
|
50
|
-
baseUrl: input.baseUrl,
|
|
51
|
-
query: input.query,
|
|
52
|
-
rowCount: input.rows.length,
|
|
53
|
-
columns,
|
|
54
|
-
sizeBytes,
|
|
55
|
-
createdAt: now.toISOString(),
|
|
56
|
-
expiresAt: expiresAt.toISOString(),
|
|
57
|
-
};
|
|
58
|
-
if (input.truncated)
|
|
59
|
-
metadata.truncated = true;
|
|
60
|
-
if (typeof input.maxRows === 'number')
|
|
61
|
-
metadata.maxRows = input.maxRows;
|
|
62
|
-
// Auto-register on the canvas first so the persisted metadata can carry
|
|
63
|
-
// the dataframe name. Best-effort: a failed registration logs a warning
|
|
64
|
-
// inside the bridge and returns { registered: false }, leaving
|
|
65
|
-
// `dataframe` absent on the dataset.
|
|
66
|
-
const registration = await this.canvasBridge?.registerDataset(ctx, metadata, input.rows);
|
|
67
|
-
if (registration?.registered && registration.tableName) {
|
|
68
|
-
metadata.dataframe = registration.tableName;
|
|
69
|
-
}
|
|
70
|
-
await Promise.all([
|
|
71
|
-
ctx.state.set(metaKey(datasetId), metadata, { ttl }),
|
|
72
|
-
ctx.state.set(rowsKey(datasetId), input.rows, { ttl }),
|
|
73
|
-
]);
|
|
74
|
-
return metadata;
|
|
75
|
-
}
|
|
76
|
-
/** Return just the metadata for a dataset. Throws `NotFound` when missing. */
|
|
77
|
-
async summary(ctx, datasetId) {
|
|
78
|
-
const meta = await ctx.state.get(metaKey(datasetId));
|
|
79
|
-
if (!meta) {
|
|
80
|
-
throw notFound(`Dataset ${datasetId} not found or expired.`, {
|
|
81
|
-
datasetId,
|
|
82
|
-
reason: 'dataset_not_found',
|
|
83
|
-
...ctx.recoveryFor('dataset_not_found'),
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
return meta;
|
|
87
|
-
}
|
|
88
|
-
/** Return a paginated slice of rows, optionally projected to a subset of columns. */
|
|
89
|
-
async load(ctx, datasetId, options = {}) {
|
|
90
|
-
const meta = await this.summary(ctx, datasetId);
|
|
91
|
-
const rows = await ctx.state.get(rowsKey(datasetId));
|
|
92
|
-
if (!rows) {
|
|
93
|
-
throw notFound(`Dataset ${datasetId} metadata exists but rows are missing (storage inconsistency or partial expiry).`, {
|
|
94
|
-
datasetId,
|
|
95
|
-
reason: 'dataset_rows_missing',
|
|
96
|
-
...ctx.recoveryFor('dataset_rows_missing'),
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
const pageSize = clampPageSize(options.pageSize);
|
|
100
|
-
const page = Math.max(1, options.page ?? 1);
|
|
101
|
-
const totalRows = rows.length;
|
|
102
|
-
const totalPages = Math.max(1, Math.ceil(totalRows / pageSize));
|
|
103
|
-
if (page > totalPages && totalRows > 0) {
|
|
104
|
-
throw validationError(`Dataset ${datasetId} has ${totalPages} page(s) at pageSize=${pageSize}; requested page ${page} is out of range.`, { datasetId, requestedPage: page, totalPages });
|
|
105
|
-
}
|
|
106
|
-
const start = (page - 1) * pageSize;
|
|
107
|
-
const end = start + pageSize;
|
|
108
|
-
const slice = rows.slice(start, end);
|
|
109
|
-
if (options.columns?.length) {
|
|
110
|
-
validateColumns(options.columns, meta.columns);
|
|
111
|
-
}
|
|
112
|
-
return {
|
|
113
|
-
datasetId,
|
|
114
|
-
rows: options.columns?.length ? projectColumns(slice, options.columns) : slice,
|
|
115
|
-
page,
|
|
116
|
-
pageSize,
|
|
117
|
-
totalRows,
|
|
118
|
-
totalPages,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/** Enumerate datasets for this tenant, paginated via opaque cursor. */
|
|
122
|
-
async list(ctx, options = {}) {
|
|
123
|
-
const listOpts = {
|
|
124
|
-
limit: options.limit ?? 50,
|
|
125
|
-
};
|
|
126
|
-
if (options.cursor !== undefined)
|
|
127
|
-
listOpts.cursor = options.cursor;
|
|
128
|
-
const page = await ctx.state.list(META_PREFIX, listOpts);
|
|
129
|
-
const datasets = [];
|
|
130
|
-
for (const item of page.items) {
|
|
131
|
-
if (isDatasetMetadata(item.value))
|
|
132
|
-
datasets.push(item.value);
|
|
133
|
-
}
|
|
134
|
-
const result = { datasets };
|
|
135
|
-
if (page.cursor !== undefined)
|
|
136
|
-
result.cursor = page.cursor;
|
|
137
|
-
return result;
|
|
138
|
-
}
|
|
139
|
-
/** Delete a dataset's metadata and row payload. Idempotent. */
|
|
140
|
-
async delete(ctx, datasetId) {
|
|
141
|
-
await ctx.state.deleteMany([metaKey(datasetId), rowsKey(datasetId)]);
|
|
142
|
-
await this.canvasBridge?.dropDataset(ctx, datasetId);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
function metaKey(id) {
|
|
146
|
-
return `${META_PREFIX}${id}`;
|
|
147
|
-
}
|
|
148
|
-
function rowsKey(id) {
|
|
149
|
-
return `${ROWS_PREFIX}${id}`;
|
|
150
|
-
}
|
|
151
|
-
function inferColumns(rows) {
|
|
152
|
-
const seen = new Set();
|
|
153
|
-
for (const row of rows) {
|
|
154
|
-
for (const key of Object.keys(row))
|
|
155
|
-
seen.add(key);
|
|
156
|
-
if (seen.size > 256)
|
|
157
|
-
break;
|
|
158
|
-
}
|
|
159
|
-
return Array.from(seen);
|
|
160
|
-
}
|
|
161
|
-
function projectColumns(rows, columns) {
|
|
162
|
-
return rows.map((row) => {
|
|
163
|
-
const projected = {};
|
|
164
|
-
for (const col of columns) {
|
|
165
|
-
if (col in row)
|
|
166
|
-
projected[col] = row[col];
|
|
167
|
-
}
|
|
168
|
-
return projected;
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
function validateColumns(requested, available) {
|
|
172
|
-
const availableSet = new Set(available);
|
|
173
|
-
const unknown = requested.filter((c) => !availableSet.has(c));
|
|
174
|
-
if (unknown.length > 0) {
|
|
175
|
-
throw validationError(`Unknown column(s): ${unknown.join(', ')}. Available columns: ${available.join(', ')}.`, { unknownColumns: unknown, availableColumns: available });
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
function clampPageSize(value) {
|
|
179
|
-
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) {
|
|
180
|
-
return DEFAULT_PAGE_SIZE;
|
|
181
|
-
}
|
|
182
|
-
return Math.min(Math.floor(value), MAX_PAGE_SIZE);
|
|
183
|
-
}
|
|
184
|
-
function byteLength(value) {
|
|
185
|
-
if (typeof Buffer !== 'undefined')
|
|
186
|
-
return Buffer.byteLength(value, 'utf8');
|
|
187
|
-
return new TextEncoder().encode(value).byteLength;
|
|
188
|
-
}
|
|
189
|
-
function isDatasetMetadata(value) {
|
|
190
|
-
return (typeof value === 'object' &&
|
|
191
|
-
value !== null &&
|
|
192
|
-
'datasetId' in value &&
|
|
193
|
-
typeof value.datasetId === 'string');
|
|
194
|
-
}
|
|
195
|
-
let _store;
|
|
196
|
-
export function initDatasetStore(serverConfig, canvasBridge) {
|
|
197
|
-
_store = new DatasetStore(serverConfig, canvasBridge);
|
|
198
|
-
}
|
|
199
|
-
export function getDatasetStore() {
|
|
200
|
-
if (!_store) {
|
|
201
|
-
throw new Error('DatasetStore not initialized — call initDatasetStore() in setup()');
|
|
202
|
-
}
|
|
203
|
-
return _store;
|
|
204
|
-
}
|
|
205
|
-
export function resetDatasetStore() {
|
|
206
|
-
_store = undefined;
|
|
207
|
-
}
|
|
208
|
-
//# sourceMappingURL=dataset-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dataset-store.js","sourceRoot":"","sources":["../../../src/services/dataset-store/dataset-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Public API barrel for the DatasetStore service.
|
|
3
|
-
*
|
|
4
|
-
* @module services/dataset-store
|
|
5
|
-
*/
|
|
6
|
-
export { DatasetStore, getDatasetStore, initDatasetStore, resetDatasetStore, } from './dataset-store.js';
|
|
7
|
-
export type { CreateDatasetInput, DatasetListOptions, DatasetListPage, DatasetLoadOptions, DatasetMetadata, DatasetPage, } from './types.js';
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/dataset-store/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/dataset-store/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Dataset lifecycle types — provenance, metadata, paginated
|
|
3
|
-
* load responses. All JSON-serializable so they round-trip through `ctx.state`.
|
|
4
|
-
*
|
|
5
|
-
* @module services/dataset-store/types
|
|
6
|
-
*/
|
|
7
|
-
export interface CreateDatasetInput {
|
|
8
|
-
/** BrAPI base URL the dataset was pulled from. */
|
|
9
|
-
baseUrl: string;
|
|
10
|
-
/** Optional column list; inferred from the first row when omitted. */
|
|
11
|
-
columns?: string[];
|
|
12
|
-
/** Cap the producer applied — number of rows that would have been pulled without truncation. Omit when no cap was applied. */
|
|
13
|
-
maxRows?: number;
|
|
14
|
-
/** Full query params / filter map — required for reproducibility. */
|
|
15
|
-
query: unknown;
|
|
16
|
-
/** Row payload. */
|
|
17
|
-
rows: Record<string, unknown>[];
|
|
18
|
-
/** Original tool / operation that produced the dataset (e.g. 'find_studies'). */
|
|
19
|
-
source: string;
|
|
20
|
-
/** True when the producer hit a cap before exhausting the upstream result set. */
|
|
21
|
-
truncated?: boolean;
|
|
22
|
-
}
|
|
23
|
-
export interface DatasetMetadata {
|
|
24
|
-
baseUrl: string;
|
|
25
|
-
columns: string[];
|
|
26
|
-
/** ISO 8601 create timestamp. */
|
|
27
|
-
createdAt: string;
|
|
28
|
-
/**
|
|
29
|
-
* Dataframe name when the dataset was auto-registered as a SQL-queryable
|
|
30
|
-
* dataframe (`ds_<datasetId_with_underscores>`). Omitted when the dataframe
|
|
31
|
-
* surface is disabled or registration failed. Use with
|
|
32
|
-
* `brapi_dataframe_query` to run SQL across the rows.
|
|
33
|
-
*/
|
|
34
|
-
dataframe?: string;
|
|
35
|
-
datasetId: string;
|
|
36
|
-
/** ISO 8601 expiry — when the TTL will evict the dataset. */
|
|
37
|
-
expiresAt: string;
|
|
38
|
-
/** Cap that was applied at create time. Omitted when none. */
|
|
39
|
-
maxRows?: number;
|
|
40
|
-
query: unknown;
|
|
41
|
-
rowCount: number;
|
|
42
|
-
/** Serialized payload size in bytes (UTF-8 JSON). */
|
|
43
|
-
sizeBytes: number;
|
|
44
|
-
source: string;
|
|
45
|
-
/** True when the dataset rows were capped before exhausting upstream. */
|
|
46
|
-
truncated?: boolean;
|
|
47
|
-
}
|
|
48
|
-
export interface DatasetLoadOptions {
|
|
49
|
-
/** Subset of columns to return. Omitted → all columns. */
|
|
50
|
-
columns?: string[];
|
|
51
|
-
/** 1-indexed page number. Default 1. */
|
|
52
|
-
page?: number;
|
|
53
|
-
/** Rows per page. Default 100, max 1000. */
|
|
54
|
-
pageSize?: number;
|
|
55
|
-
}
|
|
56
|
-
export interface DatasetPage {
|
|
57
|
-
datasetId: string;
|
|
58
|
-
page: number;
|
|
59
|
-
pageSize: number;
|
|
60
|
-
rows: Record<string, unknown>[];
|
|
61
|
-
totalPages: number;
|
|
62
|
-
totalRows: number;
|
|
63
|
-
}
|
|
64
|
-
export interface DatasetListOptions {
|
|
65
|
-
cursor?: string;
|
|
66
|
-
limit?: number;
|
|
67
|
-
}
|
|
68
|
-
export interface DatasetListPage {
|
|
69
|
-
cursor?: string;
|
|
70
|
-
datasets: DatasetMetadata[];
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/dataset-store/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,8HAA8H;IAC9H,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,KAAK,EAAE,OAAO,CAAC;IACf,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/dataset-store/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|