@cyanheads/brapi-mcp-server 0.4.14 → 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.
Files changed (115) hide show
  1. package/CLAUDE.md +23 -19
  2. package/README.md +40 -26
  3. package/changelog/0.5.x/0.5.0.md +59 -0
  4. package/dist/config/builtin-aliases.d.ts +1 -1
  5. package/dist/config/builtin-aliases.js +1 -1
  6. package/dist/config/server-config.d.ts +3 -3
  7. package/dist/config/server-config.d.ts.map +1 -1
  8. package/dist/config/server-config.js +13 -13
  9. package/dist/config/server-config.js.map +1 -1
  10. package/dist/index.js +62 -15
  11. package/dist/index.js.map +1 -1
  12. package/dist/mcp-server/prompts/definitions/brapi-eda-study.prompt.js +1 -1
  13. package/dist/mcp-server/prompts/definitions/brapi-eda-study.prompt.js.map +1 -1
  14. package/dist/mcp-server/prompts/definitions/brapi-meta-analysis.prompt.js +3 -3
  15. package/dist/mcp-server/prompts/definitions/brapi-meta-analysis.prompt.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts +8 -11
  17. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js +15 -25
  19. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js.map +1 -1
  20. package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.d.ts +6 -10
  21. package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.js +6 -16
  23. package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts +69 -0
  25. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts.map +1 -0
  26. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.js +233 -0
  27. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.js.map +1 -0
  28. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts +19 -11
  29. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts.map +1 -1
  30. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.js +80 -28
  31. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.js.map +1 -1
  32. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts +4 -6
  33. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts.map +1 -1
  34. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js +28 -36
  35. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js.map +1 -1
  36. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts +3 -5
  37. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts.map +1 -1
  38. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js +19 -19
  39. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js.map +1 -1
  40. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts +4 -6
  41. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js +16 -16
  43. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js.map +1 -1
  44. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts +3 -5
  45. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts.map +1 -1
  46. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js +15 -15
  47. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js.map +1 -1
  48. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts +4 -6
  49. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js +17 -17
  51. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js.map +1 -1
  52. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts +4 -6
  53. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts.map +1 -1
  54. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js +17 -17
  55. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js.map +1 -1
  56. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts +2 -4
  57. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts.map +1 -1
  58. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js +17 -17
  59. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js.map +1 -1
  60. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts +3 -5
  61. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts.map +1 -1
  62. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js +15 -15
  63. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js.map +1 -1
  64. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts +17 -2
  65. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts.map +1 -1
  66. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.js +51 -7
  67. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.js.map +1 -1
  68. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts +16 -2
  69. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts.map +1 -1
  70. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js +51 -5
  71. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js.map +1 -1
  72. package/dist/mcp-server/tools/definitions/index.d.ts +141 -165
  73. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  74. package/dist/mcp-server/tools/definitions/index.js +28 -17
  75. package/dist/mcp-server/tools/definitions/index.js.map +1 -1
  76. package/dist/mcp-server/tools/shared/find-helpers.d.ts +52 -41
  77. package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
  78. package/dist/mcp-server/tools/shared/find-helpers.js +89 -66
  79. package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
  80. package/dist/mcp-server/tools/shared/raw-routing-hints.d.ts.map +1 -1
  81. package/dist/mcp-server/tools/shared/raw-routing-hints.js +6 -6
  82. package/dist/mcp-server/tools/shared/raw-routing-hints.js.map +1 -1
  83. package/dist/services/canvas-bridge/canvas-bridge.d.ts +69 -44
  84. package/dist/services/canvas-bridge/canvas-bridge.d.ts.map +1 -1
  85. package/dist/services/canvas-bridge/canvas-bridge.js +143 -112
  86. package/dist/services/canvas-bridge/canvas-bridge.js.map +1 -1
  87. package/dist/services/canvas-bridge/index.d.ts +1 -1
  88. package/dist/services/canvas-bridge/index.d.ts.map +1 -1
  89. package/dist/services/canvas-bridge/index.js +1 -1
  90. package/dist/services/canvas-bridge/index.js.map +1 -1
  91. package/dist/services/canvas-bridge/types.d.ts +11 -12
  92. package/dist/services/canvas-bridge/types.d.ts.map +1 -1
  93. package/dist/services/canvas-bridge/types.js +4 -4
  94. package/package.json +3 -11
  95. package/server.json +3 -3
  96. package/dist/mcp-server/resources/definitions/brapi-dataset.resource.d.ts +0 -13
  97. package/dist/mcp-server/resources/definitions/brapi-dataset.resource.d.ts.map +0 -1
  98. package/dist/mcp-server/resources/definitions/brapi-dataset.resource.js +0 -26
  99. package/dist/mcp-server/resources/definitions/brapi-dataset.resource.js.map +0 -1
  100. package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.d.ts +0 -89
  101. package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.d.ts.map +0 -1
  102. package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.js +0 -306
  103. package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.js.map +0 -1
  104. package/dist/services/dataset-store/dataset-store.d.ts +0 -44
  105. package/dist/services/dataset-store/dataset-store.d.ts.map +0 -1
  106. package/dist/services/dataset-store/dataset-store.js +0 -208
  107. package/dist/services/dataset-store/dataset-store.js.map +0 -1
  108. package/dist/services/dataset-store/index.d.ts +0 -8
  109. package/dist/services/dataset-store/index.d.ts.map +0 -1
  110. package/dist/services/dataset-store/index.js +0 -7
  111. package/dist/services/dataset-store/index.js.map +0 -1
  112. package/dist/services/dataset-store/types.d.ts +0 -72
  113. package/dist/services/dataset-store/types.d.ts.map +0 -1
  114. package/dist/services/dataset-store/types.js +0 -8
  115. package/dist/services/dataset-store/types.js.map +0 -1
@@ -1,89 +0,0 @@
1
- /**
2
- * @fileoverview `brapi_manage_dataset` — consolidated lifecycle tool for
3
- * datasets created by `find_*` spillovers. Four modes discriminated by
4
- * `mode`: list (enumerate with provenance), summary (metadata only), load
5
- * (paged rows with optional column projection), delete (drop metadata +
6
- * payload). Export (CSV/Parquet) is deferred until storage backends for the
7
- * write path are wired up.
8
- *
9
- * @module mcp-server/tools/definitions/brapi-manage-dataset.tool
10
- */
11
- import { z } from '@cyanheads/mcp-ts-core';
12
- import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
13
- export declare const brapiManageDataset: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
14
- mode: z.ZodEnum<{
15
- delete: "delete";
16
- list: "list";
17
- summary: "summary";
18
- load: "load";
19
- }>;
20
- datasetId: z.ZodOptional<z.ZodString>;
21
- cursor: z.ZodOptional<z.ZodString>;
22
- limit: z.ZodOptional<z.ZodNumber>;
23
- page: z.ZodOptional<z.ZodNumber>;
24
- pageSize: z.ZodOptional<z.ZodNumber>;
25
- columns: z.ZodOptional<z.ZodArray<z.ZodString>>;
26
- }, z.core.$strip>, z.ZodObject<{
27
- result: z.ZodDiscriminatedUnion<[z.ZodObject<{
28
- mode: z.ZodLiteral<"list">;
29
- datasets: z.ZodArray<z.ZodObject<{
30
- datasetId: z.ZodString;
31
- source: z.ZodString;
32
- baseUrl: z.ZodString;
33
- query: z.ZodUnknown;
34
- rowCount: z.ZodNumber;
35
- columns: z.ZodArray<z.ZodString>;
36
- sizeBytes: z.ZodNumber;
37
- createdAt: z.ZodString;
38
- expiresAt: z.ZodString;
39
- truncated: z.ZodOptional<z.ZodBoolean>;
40
- maxRows: z.ZodOptional<z.ZodNumber>;
41
- dataframe: z.ZodOptional<z.ZodString>;
42
- }, z.core.$strip>>;
43
- cursor: z.ZodOptional<z.ZodString>;
44
- }, z.core.$strip>, z.ZodObject<{
45
- mode: z.ZodLiteral<"summary">;
46
- dataset: z.ZodObject<{
47
- datasetId: z.ZodString;
48
- source: z.ZodString;
49
- baseUrl: z.ZodString;
50
- query: z.ZodUnknown;
51
- rowCount: z.ZodNumber;
52
- columns: z.ZodArray<z.ZodString>;
53
- sizeBytes: z.ZodNumber;
54
- createdAt: z.ZodString;
55
- expiresAt: z.ZodString;
56
- truncated: z.ZodOptional<z.ZodBoolean>;
57
- maxRows: z.ZodOptional<z.ZodNumber>;
58
- dataframe: z.ZodOptional<z.ZodString>;
59
- }, z.core.$strip>;
60
- }, z.core.$strip>, z.ZodObject<{
61
- mode: z.ZodLiteral<"load">;
62
- datasetId: z.ZodString;
63
- page: z.ZodNumber;
64
- pageSize: z.ZodNumber;
65
- totalRows: z.ZodNumber;
66
- totalPages: z.ZodNumber;
67
- rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
68
- }, z.core.$strip>, z.ZodObject<{
69
- mode: z.ZodLiteral<"delete">;
70
- datasetId: z.ZodString;
71
- deleted: z.ZodLiteral<true>;
72
- }, z.core.$strip>], "mode">;
73
- }, z.core.$strip>, readonly [{
74
- readonly reason: "datasetid_required";
75
- readonly code: JsonRpcErrorCode.ValidationError;
76
- readonly when: "Mode summary, load, or delete was selected without a datasetId";
77
- readonly recovery: "Call mode=list first to discover available dataset IDs, then retry with one.";
78
- }, {
79
- readonly reason: "dataset_not_found";
80
- readonly code: JsonRpcErrorCode.NotFound;
81
- readonly when: "Requested dataset is not present in the store (never existed or already expired)";
82
- readonly recovery: "Run mode=list to confirm available datasets, or rerun the find_* tool that produced it.";
83
- }, {
84
- readonly reason: "dataset_rows_missing";
85
- readonly code: JsonRpcErrorCode.NotFound;
86
- readonly when: "Dataset metadata is present but the row payload was lost or partially expired";
87
- readonly recovery: "Delete the stale dataset via mode=delete and rerun the find_* tool that produced it.";
88
- }]>;
89
- //# sourceMappingURL=brapi-manage-dataset.tool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brapi-manage-dataset.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-manage-dataset.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAkIjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8G7B,CAAC"}
@@ -1,306 +0,0 @@
1
- /**
2
- * @fileoverview `brapi_manage_dataset` — consolidated lifecycle tool for
3
- * datasets created by `find_*` spillovers. Four modes discriminated by
4
- * `mode`: list (enumerate with provenance), summary (metadata only), load
5
- * (paged rows with optional column projection), delete (drop metadata +
6
- * payload). Export (CSV/Parquet) is deferred until storage backends for the
7
- * write path are wired up.
8
- *
9
- * @module mcp-server/tools/definitions/brapi-manage-dataset.tool
10
- */
11
- import { tool, z } from '@cyanheads/mcp-ts-core';
12
- import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
13
- import { getDatasetStore } from '../../../services/dataset-store/index.js';
14
- const DatasetMetadataSchema = z.object({
15
- datasetId: z.string().describe('Server-assigned dataset identifier.'),
16
- source: z.string().describe('Tool/operation that produced the dataset (e.g. "find_studies").'),
17
- baseUrl: z.string().describe('BrAPI base URL the dataset was pulled from.'),
18
- query: z.unknown().describe('Original filter map — provenance for reproducibility.'),
19
- rowCount: z.number().int().nonnegative().describe('Number of rows persisted in the dataset.'),
20
- columns: z
21
- .array(z.string().describe('Column name from the persisted rows.'))
22
- .describe('Full column list of the persisted rows.'),
23
- sizeBytes: z.number().int().nonnegative().describe('Serialized size of the dataset in bytes.'),
24
- createdAt: z.string().describe('ISO 8601 timestamp the dataset was created.'),
25
- expiresAt: z.string().describe('ISO 8601 timestamp after which the dataset will be purged.'),
26
- truncated: z
27
- .boolean()
28
- .optional()
29
- .describe('True when the dataset hit the spillover row/page cap before exhausting upstream.'),
30
- maxRows: z
31
- .number()
32
- .int()
33
- .positive()
34
- .optional()
35
- .describe('Cap that was applied at create time, when truncation occurred.'),
36
- dataframe: z
37
- .string()
38
- .optional()
39
- .describe('Dataframe name when this dataset was auto-registered as a SQL-queryable dataframe. Use with brapi_dataframe_query to run SQL across the rows.'),
40
- });
41
- const ListResultSchema = z
42
- .object({
43
- mode: z.literal('list').describe('Discriminator — `list` mode enumerates datasets.'),
44
- datasets: z
45
- .array(DatasetMetadataSchema.describe('Dataset metadata entry.'))
46
- .describe('Datasets visible to this tenant, in creation order.'),
47
- cursor: z.string().optional().describe('Opaque cursor when more datasets exist.'),
48
- })
49
- .describe('Enumeration of datasets visible to the current tenant.');
50
- const SummaryResultSchema = z
51
- .object({
52
- mode: z.literal('summary').describe('Discriminator — `summary` mode returns one dataset.'),
53
- dataset: DatasetMetadataSchema.describe('Metadata and provenance for the requested dataset.'),
54
- })
55
- .describe('Metadata + provenance for a single dataset.');
56
- const LoadResultSchema = z
57
- .object({
58
- mode: z.literal('load').describe('Discriminator — `load` mode returns a page of rows.'),
59
- datasetId: z.string().describe('Dataset the rows came from.'),
60
- page: z.number().int().positive().describe('1-indexed page number that was served.'),
61
- pageSize: z.number().int().positive().describe('Max rows per page (capped at 1000).'),
62
- totalRows: z.number().int().nonnegative().describe('Total rows in the dataset.'),
63
- totalPages: z.number().int().positive().describe('Total pages at the current pageSize.'),
64
- rows: z
65
- .array(z
66
- .record(z.string(), z.unknown())
67
- .describe('One persisted row. Schema matches the originating find_* tool result row (e.g. find_germplasm rows for a germplasm dataset); see the dataset summary for column names and the find_* output schema for field semantics.'))
68
- .describe('Rows for this page, with optional column projection applied.'),
69
- })
70
- .describe('Paged rows from a persisted dataset.');
71
- const DeleteResultSchema = z
72
- .object({
73
- mode: z.literal('delete').describe('Discriminator — `delete` mode confirms removal.'),
74
- datasetId: z.string().describe('Dataset that was deleted.'),
75
- deleted: z.literal(true).describe('Always `true` when the call succeeded.'),
76
- })
77
- .describe('Confirmation that a dataset was deleted.');
78
- const OutputSchema = z.object({
79
- result: z
80
- .discriminatedUnion('mode', [
81
- ListResultSchema,
82
- SummaryResultSchema,
83
- LoadResultSchema,
84
- DeleteResultSchema,
85
- ])
86
- .describe('Mode-specific result — discriminated by `mode`: list (dataset enumeration), summary (metadata+provenance), load (paged rows), delete (drop confirmation).'),
87
- });
88
- const InputSchema = z.object({
89
- mode: z
90
- .enum(['list', 'summary', 'load', 'delete'])
91
- .describe('Operation: list (enumerate datasets), summary (metadata+provenance), load (page rows), delete (drop payload).'),
92
- datasetId: z
93
- .string()
94
- .min(1)
95
- .optional()
96
- .describe('Required for mode=summary | load | delete. Ignored for mode=list.'),
97
- cursor: z.string().optional().describe('mode=list: resume a previous call.'),
98
- limit: z
99
- .number()
100
- .int()
101
- .positive()
102
- .max(200)
103
- .optional()
104
- .describe('mode=list: max datasets to return (default 50, capped at 200).'),
105
- page: z
106
- .number()
107
- .int()
108
- .positive()
109
- .optional()
110
- .describe('mode=load: 1-indexed page number (default 1).'),
111
- pageSize: z
112
- .number()
113
- .int()
114
- .positive()
115
- .optional()
116
- .describe('mode=load: rows per page (default 100, max 1000).'),
117
- columns: z
118
- .array(z.string().min(1))
119
- .optional()
120
- .describe('mode=load: subset of columns to return. Omit for all columns.'),
121
- });
122
- export const brapiManageDataset = tool('brapi_manage_dataset', {
123
- description: 'Dataset lifecycle — list (enumerate), summary (metadata+provenance), load (page rows with column projection), delete (drop payload). Datasets are produced by find_* tools when the upstream total exceeds loadLimit.',
124
- annotations: { readOnlyHint: false, idempotentHint: false },
125
- errors: [
126
- {
127
- reason: 'datasetid_required',
128
- code: JsonRpcErrorCode.ValidationError,
129
- when: 'Mode summary, load, or delete was selected without a datasetId',
130
- recovery: 'Call mode=list first to discover available dataset IDs, then retry with one.',
131
- },
132
- {
133
- reason: 'dataset_not_found',
134
- code: JsonRpcErrorCode.NotFound,
135
- when: 'Requested dataset is not present in the store (never existed or already expired)',
136
- recovery: 'Run mode=list to confirm available datasets, or rerun the find_* tool that produced it.',
137
- },
138
- {
139
- reason: 'dataset_rows_missing',
140
- code: JsonRpcErrorCode.NotFound,
141
- when: 'Dataset metadata is present but the row payload was lost or partially expired',
142
- recovery: 'Delete the stale dataset via mode=delete and rerun the find_* tool that produced it.',
143
- },
144
- ],
145
- input: InputSchema,
146
- output: OutputSchema,
147
- async handler(input, ctx) {
148
- const store = getDatasetStore();
149
- const requireDatasetId = () => {
150
- if (!input.datasetId) {
151
- throw ctx.fail('datasetid_required', `mode='${input.mode}' requires datasetId.`, {
152
- mode: input.mode,
153
- ...ctx.recoveryFor('datasetid_required'),
154
- });
155
- }
156
- return input.datasetId;
157
- };
158
- switch (input.mode) {
159
- case 'list': {
160
- const listOptions = {};
161
- if (input.cursor !== undefined)
162
- listOptions.cursor = input.cursor;
163
- if (input.limit !== undefined)
164
- listOptions.limit = input.limit;
165
- const page = await store.list(ctx, listOptions);
166
- const branch = {
167
- mode: 'list',
168
- datasets: page.datasets,
169
- };
170
- if (page.cursor !== undefined)
171
- branch.cursor = page.cursor;
172
- return { result: branch };
173
- }
174
- case 'summary': {
175
- const datasetId = requireDatasetId();
176
- const dataset = await store.summary(ctx, datasetId);
177
- const branch = { mode: 'summary', dataset };
178
- return { result: branch };
179
- }
180
- case 'load': {
181
- const datasetId = requireDatasetId();
182
- const loadOptions = {};
183
- if (input.page !== undefined)
184
- loadOptions.page = input.page;
185
- if (input.pageSize !== undefined)
186
- loadOptions.pageSize = input.pageSize;
187
- if (input.columns !== undefined)
188
- loadOptions.columns = input.columns;
189
- const pageResult = await store.load(ctx, datasetId, loadOptions);
190
- const branch = {
191
- mode: 'load',
192
- datasetId: pageResult.datasetId,
193
- page: pageResult.page,
194
- pageSize: pageResult.pageSize,
195
- totalRows: pageResult.totalRows,
196
- totalPages: pageResult.totalPages,
197
- rows: pageResult.rows,
198
- };
199
- return { result: branch };
200
- }
201
- case 'delete': {
202
- const datasetId = requireDatasetId();
203
- await store.delete(ctx, datasetId);
204
- const branch = {
205
- mode: 'delete',
206
- datasetId,
207
- deleted: true,
208
- };
209
- return { result: branch };
210
- }
211
- }
212
- },
213
- format: (result) => {
214
- const branch = result.result;
215
- switch (branch.mode) {
216
- case 'list':
217
- return [{ type: 'text', text: renderList(branch) }];
218
- case 'summary':
219
- return [{ type: 'text', text: renderSummary(branch.dataset) }];
220
- case 'load':
221
- return [{ type: 'text', text: renderLoad(branch) }];
222
- case 'delete':
223
- return [
224
- {
225
- type: 'text',
226
- text: `# Dataset deleted\n- datasetId: \`${branch.datasetId}\`\n- deleted: ${branch.deleted}\n- mode: ${branch.mode}`,
227
- },
228
- ];
229
- }
230
- },
231
- });
232
- function renderList(result) {
233
- const lines = [];
234
- lines.push(`# ${result.datasets.length} dataset(s) · mode=${result.mode}`);
235
- if (result.cursor)
236
- lines.push(`**Cursor:** \`${result.cursor}\` — pass to list again for next page.`);
237
- if (result.datasets.length === 0) {
238
- lines.push('');
239
- lines.push('_No datasets. Run a find_* tool to produce one._');
240
- return lines.join('\n');
241
- }
242
- lines.push('');
243
- lines.push('| datasetId | source | rows | sizeBytes | createdAt | expiresAt | truncated |');
244
- lines.push('|:----------|:-------|-----:|----------:|:----------|:----------|:----------|');
245
- for (const ds of result.datasets) {
246
- const truncated = ds.truncated ? `yes (cap=${ds.maxRows ?? '?'})` : 'no';
247
- lines.push(`| \`${ds.datasetId}\` | ${ds.source} | ${ds.rowCount} | ${ds.sizeBytes} | ${ds.createdAt} | ${ds.expiresAt} | ${truncated} |`);
248
- }
249
- for (const ds of result.datasets) {
250
- lines.push('');
251
- lines.push(`### \`${ds.datasetId}\``);
252
- lines.push(`- baseUrl: ${ds.baseUrl}`);
253
- lines.push(`- columns: ${ds.columns.join(', ')}`);
254
- lines.push(`- query: \`${JSON.stringify(ds.query)}\``);
255
- if (ds.dataframe) {
256
- lines.push(`- dataframe: \`${ds.dataframe}\` (queryable via brapi_dataframe_query)`);
257
- }
258
- }
259
- return lines.join('\n');
260
- }
261
- function renderSummary(dataset) {
262
- const lines = [];
263
- lines.push(`# Dataset \`${dataset.datasetId}\``);
264
- lines.push('');
265
- lines.push(`- source: ${dataset.source}`);
266
- lines.push(`- baseUrl: ${dataset.baseUrl}`);
267
- lines.push(`- rowCount: ${dataset.rowCount}`);
268
- lines.push(`- sizeBytes: ${dataset.sizeBytes}`);
269
- lines.push(`- createdAt: ${dataset.createdAt}`);
270
- lines.push(`- expiresAt: ${dataset.expiresAt}`);
271
- if (dataset.truncated) {
272
- lines.push(`- truncated: true (cap=${dataset.maxRows ?? '?'} rows)`);
273
- }
274
- if (dataset.dataframe) {
275
- lines.push(`- dataframe: \`${dataset.dataframe}\` (queryable via brapi_dataframe_query)`);
276
- }
277
- lines.push(`- columns: ${dataset.columns.join(', ')}`);
278
- lines.push(`- query: \`${JSON.stringify(dataset.query)}\``);
279
- return lines.join('\n');
280
- }
281
- function renderLoad(result) {
282
- const lines = [];
283
- lines.push(`# Dataset \`${result.datasetId}\` — page ${result.page} of ${result.totalPages} (${result.rows.length}/${result.totalRows} rows) · mode=${result.mode}`);
284
- lines.push('');
285
- lines.push(`- pageSize: ${result.pageSize}`);
286
- lines.push('');
287
- if (result.rows.length === 0) {
288
- lines.push('_No rows on this page._');
289
- return lines.join('\n');
290
- }
291
- const columns = Object.keys(result.rows[0] ?? {});
292
- lines.push('## Rows');
293
- for (const [i, row] of result.rows.entries()) {
294
- lines.push('');
295
- lines.push(`### Row ${(result.page - 1) * result.pageSize + i + 1}`);
296
- for (const col of columns) {
297
- const value = row[col];
298
- if (value === undefined || value === null)
299
- continue;
300
- const rendered = typeof value === 'object' ? JSON.stringify(value) : String(value);
301
- lines.push(`- **${col}:** ${rendered}`);
302
- }
303
- }
304
- return lines.join('\n');
305
- }
306
- //# sourceMappingURL=brapi-manage-dataset.tool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brapi-manage-dataset.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-manage-dataset.tool.ts"],"names":[],"mappings":"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"}
@@ -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"}