@cyanheads/eurostat-mcp-server 0.10.1 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +15 -4
- package/CLAUDE.md +15 -4
- package/Dockerfile +4 -0
- package/README.md +41 -102
- package/changelog/0.11.x/0.11.0.md +33 -0
- package/changelog/0.11.x/0.11.1.md +23 -0
- package/dist/config/server-config.js +1 -1
- package/dist/config/server-config.js.map +1 -1
- package/dist/index.js +4 -9
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/clamp-read-limit.d.ts +1 -1
- package/dist/mcp-server/tools/clamp-read-limit.d.ts.map +1 -1
- package/dist/mcp-server/tools/clamp-read-limit.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js +6 -5
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js +9 -56
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts +6 -6
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js +39 -18
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.d.ts +71 -2
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js +50 -57
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts +6 -4
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js +108 -37
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js.map +1 -1
- package/dist/mcp-server/tools/hoist-dimensions.d.ts +18 -0
- package/dist/mcp-server/tools/hoist-dimensions.d.ts.map +1 -0
- package/dist/mcp-server/tools/hoist-dimensions.js +29 -0
- package/dist/mcp-server/tools/hoist-dimensions.js.map +1 -0
- package/dist/mcp-server/tools/narrowing-advice.d.ts +8 -7
- package/dist/mcp-server/tools/narrowing-advice.d.ts.map +1 -1
- package/dist/mcp-server/tools/narrowing-advice.js +16 -9
- package/dist/mcp-server/tools/narrowing-advice.js.map +1 -1
- package/dist/mcp-server/tools/value-list-paging.d.ts +1 -29
- package/dist/mcp-server/tools/value-list-paging.d.ts.map +1 -1
- package/dist/mcp-server/tools/value-list-paging.js +1 -47
- package/dist/mcp-server/tools/value-list-paging.js.map +1 -1
- package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts.map +1 -1
- package/dist/services/eurostat-bulk/eurostat-bulk-service.js +31 -5
- package/dist/services/eurostat-bulk/eurostat-bulk-service.js.map +1 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts +1 -0
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts.map +1 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js +14 -3
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js.map +1 -1
- package/dist/services/eurostat-data/eurostat-data-service.d.ts +5 -1
- package/dist/services/eurostat-data/eurostat-data-service.d.ts.map +1 -1
- package/dist/services/eurostat-data/eurostat-data-service.js +66 -26
- package/dist/services/eurostat-data/eurostat-data-service.js.map +1 -1
- package/dist/services/eurostat-data/types.d.ts +9 -10
- package/dist/services/eurostat-data/types.d.ts.map +1 -1
- package/dist/services/eurostat-data/types.js +2 -2
- package/dist/services/eurostat-data/types.js.map +1 -1
- package/dist/services/eurostat-periods.d.ts +107 -1
- package/dist/services/eurostat-periods.d.ts.map +1 -1
- package/dist/services/eurostat-periods.js +182 -7
- package/dist/services/eurostat-periods.js.map +1 -1
- package/package.json +8 -7
- package/server.json +9 -9
- package/skills/eurostat-guide/SKILL.md +60 -0
- package/skills/eurostat-guide/references/sql-analysis.md +40 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-browse-themes.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-browse-themes.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6DAA6D,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,EAAE;IACjE,KAAK,EAAE,iCAAiC;IACxC,WAAW,EACT,yzBAAyzB;IAC3zB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,
|
|
1
|
+
{"version":3,"file":"eurostat-browse-themes.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-browse-themes.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-dataframe-query.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-dataframe-query.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"eurostat-dataframe-query.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-dataframe-query.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA0CjE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+GjC,CAAC"}
|
|
@@ -6,26 +6,25 @@
|
|
|
6
6
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
7
7
|
import { CanvasIdSchema } from '@cyanheads/mcp-ts-core/canvas';
|
|
8
8
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
9
|
-
import { fitPage, INLINE_BUDGET_BYTES, utf8Bytes, } from '../value-list-paging.js';
|
|
10
9
|
import { acquireCanvas, getCanvas, isCanvasFailure } from '../../../services/canvas-accessor.js';
|
|
11
10
|
const QueryOutputSchema = z.object({
|
|
12
11
|
canvasId: z.string().describe('Canvas identifier the query ran against.'),
|
|
13
12
|
columns: z.array(z.string()).describe('Column names in projection order.'),
|
|
14
13
|
rows: z
|
|
15
14
|
.array(z.record(z.string(), z.unknown()))
|
|
16
|
-
.describe('Complete result rows, keyed by column name, bounded by the canvas row limit
|
|
15
|
+
.describe('Complete result rows, keyed by column name, bounded by the canvas row limit. Nested cells render as JSON; 64-bit integers arrive as strings so they survive intact. Cast to DOUBLE in SQL if a number is wanted.'),
|
|
17
16
|
rowCount: z
|
|
18
17
|
.number()
|
|
19
|
-
.describe('Complete rows returned after the canvas row limit
|
|
18
|
+
.describe('Complete rows returned after the canvas row limit. Advance SQL OFFSET by this actual count.'),
|
|
20
19
|
truncated: z
|
|
21
20
|
.boolean()
|
|
22
|
-
.describe('True when the canvas row limit
|
|
21
|
+
.describe('True when the canvas row limit omitted rows. Follow notice for SQL paging.'),
|
|
23
22
|
});
|
|
24
23
|
/** JSON cells preserve nested values, string quoting and escaped line breaks. */
|
|
25
24
|
function renderRow(columns, row) {
|
|
26
25
|
return columns.map((column) => `${column}=${JSON.stringify(row[column])}`).join(' | ');
|
|
27
26
|
}
|
|
28
|
-
/**
|
|
27
|
+
/** Render every complete row without changing cell values. */
|
|
29
28
|
function renderText(result) {
|
|
30
29
|
return [
|
|
31
30
|
`# Query result (canvas \`${result.canvasId}\`)`,
|
|
@@ -36,11 +35,11 @@ function renderText(result) {
|
|
|
36
35
|
}
|
|
37
36
|
/** Paging depends on a fixed deterministic SELECT over unchanged staged tables. */
|
|
38
37
|
function cutNotice(rows) {
|
|
39
|
-
return `Returned ${rows.toLocaleString('en-US')} complete rows; the canvas row limit
|
|
38
|
+
return `Returned ${rows.toLocaleString('en-US')} complete rows; the canvas row limit cut this result. Page with the same deterministic SELECT and a total ORDER BY (add tie-breakers for tied keys), using LIMIT/OFFSET and advancing OFFSET by the actual returned rowCount, not the requested LIMIT. If the first page had no ORDER BY, restart sorted at OFFSET 0. Volatile expressions and changing or expired tables do not support stable paging.`;
|
|
40
39
|
}
|
|
41
40
|
export const eurostatDataframeQuery = tool('eurostat_dataframe_query', {
|
|
42
41
|
title: 'Query Eurostat Dataframes',
|
|
43
|
-
description: 'Run a read-only SQL SELECT against tables staged on a Eurostat dataframe canvas
|
|
42
|
+
description: 'Run a read-only SQL SELECT against tables staged on a Eurostat dataframe canvas, reaching observations beyond an inline preview and aggregating or joining tables without re-fetching Eurostat. Call eurostat_dataframe_describe first for table and column names. Only a single SELECT runs: statement chaining, non-SELECT verbs, and functions reading files or external data are rejected. Columns are flat: dimension codes, obs_value, obs_flag / obs_flag_label, and conf_status / conf_status_label. Tables eurostat_query_dataset staged also carry dimension _label companions; DS-* tables also carry obs_value_text for published text values. Join observation tables on dimension codes and time. A staged dimension value list has code and label columns; join it to an observation dimension code to add labels. Returns every complete row the canvas supplies, bounded only by the canvas row limit; nested cells render as lossless JSON. A row-limit cut sets truncated and adds a notice: page the same deterministic SELECT over unchanged tables with a total ORDER BY and LIMIT/OFFSET, advancing by actual rowCount. Restart an unordered first page sorted at offset zero; tied keys need tie-breakers. Volatile SQL and changing or expired tables cannot provide stable paging.',
|
|
44
43
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
|
|
45
44
|
input: z.object({
|
|
46
45
|
canvas_id: CanvasIdSchema.describe('Canvas identifier returned as canvasId by eurostat_query_dataset, eurostat_download_dataset, or eurostat_get_dimension_values. Identifies the workspace holding the staged tables.'),
|
|
@@ -106,61 +105,15 @@ export const eurostatDataframeQuery = tool('eurostat_dataframe_query', {
|
|
|
106
105
|
* reasons with a vaguer message.
|
|
107
106
|
*/
|
|
108
107
|
const result = await instance.query(input.sql, { signal: ctx.signal }).catch(asDeclared);
|
|
109
|
-
const
|
|
108
|
+
const output = {
|
|
110
109
|
canvasId: instance.canvasId,
|
|
111
110
|
columns: result.columns,
|
|
112
|
-
rows: result.rows
|
|
113
|
-
rowCount: count,
|
|
114
|
-
truncated: result.truncated === true || count < result.rows.length,
|
|
115
|
-
});
|
|
116
|
-
const measure = (count) => {
|
|
117
|
-
const output = page(count);
|
|
118
|
-
const notice = output.truncated ? cutNotice(count) : undefined;
|
|
119
|
-
const content = [
|
|
120
|
-
{ type: 'text', text: renderText(output) },
|
|
121
|
-
...(notice ? [{ type: 'text', text: `\n\n> ${notice}` }] : []),
|
|
122
|
-
];
|
|
123
|
-
return {
|
|
124
|
-
structured: utf8Bytes(JSON.stringify({ ...output, ...(notice && { notice }) })),
|
|
125
|
-
text: utf8Bytes(JSON.stringify(content)),
|
|
126
|
-
};
|
|
127
|
-
};
|
|
128
|
-
const costs = [];
|
|
129
|
-
const costOf = (index) => {
|
|
130
|
-
const cached = costs[index];
|
|
131
|
-
if (cached)
|
|
132
|
-
return cached;
|
|
133
|
-
const row = result.rows[index];
|
|
134
|
-
const cost = {
|
|
135
|
-
structured: utf8Bytes(JSON.stringify(row)) + 1,
|
|
136
|
-
text: utf8Bytes(JSON.stringify(`\n${renderRow(result.columns, row)}`)) - 2,
|
|
137
|
-
};
|
|
138
|
-
costs[index] = cost;
|
|
139
|
-
return cost;
|
|
140
|
-
};
|
|
141
|
-
/**
|
|
142
|
-
* A full result has no cut notice, so it can fit when a partial prefix plus
|
|
143
|
-
* that notice cannot. Test that case with additive row costs, stopping at
|
|
144
|
-
* the budget instead of serializing an arbitrarily large full result.
|
|
145
|
-
*/
|
|
146
|
-
const empty = {
|
|
147
|
-
...page(0),
|
|
111
|
+
rows: result.rows,
|
|
148
112
|
rowCount: result.rows.length,
|
|
149
113
|
truncated: result.truncated === true,
|
|
150
114
|
};
|
|
151
|
-
let structured = utf8Bytes(JSON.stringify(empty));
|
|
152
|
-
let text = utf8Bytes(JSON.stringify([{ type: 'text', text: renderText(empty) }]));
|
|
153
|
-
let fullFits = !empty.truncated;
|
|
154
|
-
for (let index = 0; fullFits && index < result.rows.length; index++) {
|
|
155
|
-
const cost = costOf(index);
|
|
156
|
-
structured += cost.structured - (index === 0 ? 1 : 0);
|
|
157
|
-
text += cost.text;
|
|
158
|
-
fullFits = structured <= INLINE_BUDGET_BYTES && text <= INLINE_BUDGET_BYTES;
|
|
159
|
-
}
|
|
160
|
-
const count = fullFits ? result.rows.length : fitPage(result.rows.length, measure, costOf);
|
|
161
|
-
const output = page(count);
|
|
162
115
|
if (output.truncated)
|
|
163
|
-
ctx.enrich.notice(cutNotice(
|
|
116
|
+
ctx.enrich.notice(cutNotice(output.rowCount));
|
|
164
117
|
ctx.log.info('Canvas query complete', {
|
|
165
118
|
canvasId: instance.canvasId,
|
|
166
119
|
rowCount: output.rowCount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-dataframe-query.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-dataframe-query.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"eurostat-dataframe-query.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-dataframe-query.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,8 +44,8 @@ export declare const createEurostatDownloadDataset: (clampLimits: boolean) => im
|
|
|
44
44
|
}, {
|
|
45
45
|
readonly reason: "invalid_dimension";
|
|
46
46
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
47
|
-
readonly when: "A filter names a dimension the dataset does not have, or a value or period range
|
|
48
|
-
readonly recovery: "Check dimension codes with eurostat_get_dataset_info and their values with eurostat_get_dimension_values, and keep the period range inside the dataset coverage.";
|
|
47
|
+
readonly when: "A filter names a dimension the dataset does not have, or a value Eurostat rejects, or the period range selects no period of the dataset (SDMX faultcode 150): it misses the coverage, or holds no whole period. The fault covers all of these; its TIME_PERIOD clause tells the period range apart.";
|
|
48
|
+
readonly recovery: "Check dimension codes with eurostat_get_dataset_info and their values with eurostat_get_dimension_values, and keep the period range inside the dataset coverage, holding a whole period.";
|
|
49
49
|
readonly thrownBy: "service";
|
|
50
50
|
}, {
|
|
51
51
|
readonly reason: "filter_arity";
|
|
@@ -69,7 +69,7 @@ export declare const createEurostatDownloadDataset: (clampLimits: boolean) => im
|
|
|
69
69
|
readonly reason: "no_results";
|
|
70
70
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
71
71
|
readonly when: "The download completed but carried no populated observation cells. Nothing is staged, and no canvas is created or touched.";
|
|
72
|
-
readonly recovery: "Verify the filter values with eurostat_get_dimension_values and keep since_period/until_period inside the series' coverage — a combination that exists in no cell and a range that misses the series both download as an empty table.";
|
|
72
|
+
readonly recovery: "Verify the filter values with eurostat_get_dimension_values and keep since_period/until_period inside the series' coverage, holding a whole period — a combination that exists in no cell and a range that misses the series both download as an empty table.";
|
|
73
73
|
}, {
|
|
74
74
|
readonly reason: "extraction_too_big";
|
|
75
75
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
@@ -137,8 +137,8 @@ export declare const eurostatDownloadDataset: import("@cyanheads/mcp-ts-core").T
|
|
|
137
137
|
}, {
|
|
138
138
|
readonly reason: "invalid_dimension";
|
|
139
139
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
140
|
-
readonly when: "A filter names a dimension the dataset does not have, or a value or period range
|
|
141
|
-
readonly recovery: "Check dimension codes with eurostat_get_dataset_info and their values with eurostat_get_dimension_values, and keep the period range inside the dataset coverage.";
|
|
140
|
+
readonly when: "A filter names a dimension the dataset does not have, or a value Eurostat rejects, or the period range selects no period of the dataset (SDMX faultcode 150): it misses the coverage, or holds no whole period. The fault covers all of these; its TIME_PERIOD clause tells the period range apart.";
|
|
141
|
+
readonly recovery: "Check dimension codes with eurostat_get_dataset_info and their values with eurostat_get_dimension_values, and keep the period range inside the dataset coverage, holding a whole period.";
|
|
142
142
|
readonly thrownBy: "service";
|
|
143
143
|
}, {
|
|
144
144
|
readonly reason: "filter_arity";
|
|
@@ -162,7 +162,7 @@ export declare const eurostatDownloadDataset: import("@cyanheads/mcp-ts-core").T
|
|
|
162
162
|
readonly reason: "no_results";
|
|
163
163
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
164
164
|
readonly when: "The download completed but carried no populated observation cells. Nothing is staged, and no canvas is created or touched.";
|
|
165
|
-
readonly recovery: "Verify the filter values with eurostat_get_dimension_values and keep since_period/until_period inside the series' coverage — a combination that exists in no cell and a range that misses the series both download as an empty table.";
|
|
165
|
+
readonly recovery: "Verify the filter values with eurostat_get_dimension_values and keep since_period/until_period inside the series' coverage, holding a whole period — a combination that exists in no cell and a range that misses the series both download as an empty table.";
|
|
166
166
|
}, {
|
|
167
167
|
readonly reason: "extraction_too_big";
|
|
168
168
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-download-dataset.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-download-dataset.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"eurostat-download-dataset.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-download-dataset.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAoDhF,+DAA+D;AAC/D,eAAO,MAAM,6BAA6B,gBAAiB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsgB9D,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsC,CAAC"}
|
|
@@ -7,13 +7,15 @@ import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
|
7
7
|
import { CanvasIdSchema } from '@cyanheads/mcp-ts-core/canvas';
|
|
8
8
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
9
9
|
import { clampReadLimit } from '../clamp-read-limit.js';
|
|
10
|
+
import { hoistDimensions } from '../hoist-dimensions.js';
|
|
10
11
|
import { dimensionsToNarrow, narrowingAdvice } from '../narrowing-advice.js';
|
|
11
12
|
import { acquireCanvas, getCanvas, isCanvasFailure, newTableName, } from '../../../services/canvas-accessor.js';
|
|
12
13
|
import { bulkRowSchema, getEurostatBulkService, } from '../../../services/eurostat-bulk/eurostat-bulk-service.js';
|
|
14
|
+
import { TIME_COLUMN } from '../../../services/eurostat-bulk/types.js';
|
|
13
15
|
import { getEurostatDataService } from '../../../services/eurostat-data/eurostat-data-service.js';
|
|
14
16
|
import { dropUnsetFilters } from '../../../services/eurostat-filters.js';
|
|
15
17
|
import { outageAnswer } from '../../../services/eurostat-outage.js';
|
|
16
|
-
import { PERIOD_FORMS, resolvePeriods } from '../../../services/eurostat-periods.js';
|
|
18
|
+
import { cutNotice, frequenciesOf, PERIOD_FORMS, periodCuts, resolvePeriods, } from '../../../services/eurostat-periods.js';
|
|
17
19
|
/** Upper bound on rows echoed inline, whatever preview_limit asks for. */
|
|
18
20
|
const PREVIEW_MAX = 500;
|
|
19
21
|
/**
|
|
@@ -51,16 +53,16 @@ export const createEurostatDownloadDataset = (clampLimits) => tool('eurostat_dow
|
|
|
51
53
|
since_period: z
|
|
52
54
|
.string()
|
|
53
55
|
.optional()
|
|
54
|
-
.describe(`Start of the period range, inclusive, sent as startPeriod. Accepted forms: ${PERIOD_FORMS} (e.g., "2020", "2023-Q1", "2024-01"). Extra leading zeros after the letter are dropped ("2020-W001" is sent as "2020-W01"), a day of the year is sent as three digits ("2026-D1" as "2026-D001"), YYYY-A1 is sent as YYYY, and a period
|
|
56
|
+
.describe(`Start of the period range, inclusive, sent as startPeriod. Accepted forms: ${PERIOD_FORMS} (e.g., "2020", "2023-Q1", "2024-01"). Extra leading zeros after the letter are dropped ("2020-W001" is sent as "2020-W01"), a day of the year is sent as three digits ("2026-D1" as "2026-D001"), and YYYY-A1 is sent as YYYY. Any form works on any dataset, read as a span of days, but Eurostat keeps only periods wholly inside the range, per frequency: "2022-06" on annual data excludes 2022, which starts before the bound, and a notice names that period when the TSV header shows its frequency. A range whose first and last day are the same day is requested as that day and the next, and the next day is dropped before anything is counted or staged. A malformed or non-existent period (e.g., "2020-13") is rejected as invalid_period. The most effective way to shrink a bulk response: it removes period columns from the TSV rather than blanking their cells.`),
|
|
55
57
|
until_period: z
|
|
56
58
|
.string()
|
|
57
59
|
.optional()
|
|
58
|
-
.describe('End of the period range, inclusive (e.g., "2024"), sent as endPeriod, in the same forms as since_period. Omit for data through the latest available period. The range must hold at least one day: a since_period that starts after until_period ends is rejected as invalid_period,
|
|
60
|
+
.describe('End of the period range, inclusive (e.g., "2024"), sent as endPeriod, in the same forms as since_period. Omit for data through the latest available period. A bound that falls inside a period excludes it here too: "2023-06" on annual data excludes 2023, which ends after the bound. The range must hold at least one day: a since_period that starts after until_period ends is rejected as invalid_period, and bounds of different frequencies are compared by day.'),
|
|
59
61
|
preview_limit: (clampLimits
|
|
60
62
|
? z.number().multipleOf(1).min(1)
|
|
61
63
|
: z.number().int().min(1).max(PREVIEW_MAX))
|
|
62
|
-
.default(
|
|
63
|
-
.describe(`How many observations to echo inline, from the start of the download. Default
|
|
64
|
+
.default(25)
|
|
65
|
+
.describe(`How many observations to echo inline, from the start of the download. Default 25; ${clampLimits ? 'positive integers above 500 are clamped to 500 with a notice' : 'maximum 500; larger values are rejected'}. The full download is on the canvas table when one was staged; this is orientation, not the result set.`),
|
|
64
66
|
canvas_id: CanvasIdSchema.optional().describe('Reuse an existing dataframe canvas so this download lands beside earlier results and can be joined against them. Pass the canvasId a previous eurostat_download_dataset or eurostat_query_dataset response returned; omit to start a fresh canvas. Ignored on deployments without a dataframe canvas. A download that carries no observations fails as no_results and leaves the canvas untouched.'),
|
|
65
67
|
}),
|
|
66
68
|
output: z.object({
|
|
@@ -122,15 +124,17 @@ export const createEurostatDownloadDataset = (clampLimits) => tool('eurostat_dow
|
|
|
122
124
|
filters: z
|
|
123
125
|
.record(z.string(), z.array(z.string()))
|
|
124
126
|
.describe('Dimension filters sent to Eurostat. Blank values and dimensions left with no value are dropped.'),
|
|
125
|
-
sincePeriod: z.string().optional().describe('
|
|
126
|
-
untilPeriod: z.string().optional().describe('
|
|
127
|
-
url: z
|
|
127
|
+
sincePeriod: z.string().optional().describe('since_period applied, if any.'),
|
|
128
|
+
untilPeriod: z.string().optional().describe('until_period applied, if any.'),
|
|
129
|
+
url: z
|
|
130
|
+
.string()
|
|
131
|
+
.describe('The SDMX request URL, so the download can be reproduced. A one-day range goes out as that day and the next, so its endPeriod is a day past untilPeriod.'),
|
|
128
132
|
})
|
|
129
133
|
.describe('The bulk request as the server built it.'),
|
|
130
134
|
notice: z
|
|
131
135
|
.string()
|
|
132
136
|
.optional()
|
|
133
|
-
.describe('Guidance on every download: the staged table with the required eurostat_dataframe_describe then eurostat_dataframe_query sequence (or, without a canvas, what was returned inline and what was discarded), preceded by byte-budget disclosure when the budget stopped the transfer and by the inline-preview length when preview_limit returns fewer rows than were downloaded.'),
|
|
137
|
+
.describe('Guidance on every download: the staged table with the required eurostat_dataframe_describe then eurostat_dataframe_query sequence (or, without a canvas, what was returned inline and what was discarded), preceded by a period a bound falls inside when the TSV header shows that frequency, by byte-budget disclosure when the budget stopped the transfer, and by the inline-preview length when preview_limit returns fewer rows than were downloaded.'),
|
|
134
138
|
},
|
|
135
139
|
enrichmentTrailer: {
|
|
136
140
|
appliedQuery: {
|
|
@@ -166,8 +170,8 @@ export const createEurostatDownloadDataset = (clampLimits) => tool('eurostat_dow
|
|
|
166
170
|
{
|
|
167
171
|
reason: 'invalid_dimension',
|
|
168
172
|
code: JsonRpcErrorCode.ValidationError,
|
|
169
|
-
when: 'A filter names a dimension the dataset does not have, or a value or period range
|
|
170
|
-
recovery: 'Check dimension codes with eurostat_get_dataset_info and their values with eurostat_get_dimension_values, and keep the period range inside the dataset coverage.',
|
|
173
|
+
when: 'A filter names a dimension the dataset does not have, or a value Eurostat rejects, or the period range selects no period of the dataset (SDMX faultcode 150): it misses the coverage, or holds no whole period. The fault covers all of these; its TIME_PERIOD clause tells the period range apart.',
|
|
174
|
+
recovery: 'Check dimension codes with eurostat_get_dataset_info and their values with eurostat_get_dimension_values, and keep the period range inside the dataset coverage, holding a whole period.',
|
|
171
175
|
thrownBy: 'service',
|
|
172
176
|
},
|
|
173
177
|
{
|
|
@@ -195,7 +199,7 @@ export const createEurostatDownloadDataset = (clampLimits) => tool('eurostat_dow
|
|
|
195
199
|
reason: 'no_results',
|
|
196
200
|
code: JsonRpcErrorCode.NotFound,
|
|
197
201
|
when: 'The download completed but carried no populated observation cells. Nothing is staged, and no canvas is created or touched.',
|
|
198
|
-
recovery: "Verify the filter values with eurostat_get_dimension_values and keep since_period/until_period inside the series' coverage — a combination that exists in no cell and a range that misses the series both download as an empty table.",
|
|
202
|
+
recovery: "Verify the filter values with eurostat_get_dimension_values and keep since_period/until_period inside the series' coverage, holding a whole period — a combination that exists in no cell and a range that misses the series both download as an empty table.",
|
|
199
203
|
},
|
|
200
204
|
{
|
|
201
205
|
reason: 'extraction_too_big',
|
|
@@ -224,11 +228,12 @@ export const createEurostatDownloadDataset = (clampLimits) => tool('eurostat_dow
|
|
|
224
228
|
const input = { ...request, preview_limit: previewLimit.value };
|
|
225
229
|
const bulk = getEurostatBulkService();
|
|
226
230
|
// Trimmed, checked, and rewritten to canonical form: this is both what is sent and
|
|
227
|
-
// what appliedQuery echoes.
|
|
228
|
-
const
|
|
231
|
+
// what appliedQuery echoes. The period notice quotes the literals as written.
|
|
232
|
+
const written = {
|
|
229
233
|
since_period: input.since_period?.trim() || undefined,
|
|
230
234
|
until_period: input.until_period?.trim() || undefined,
|
|
231
|
-
}
|
|
235
|
+
};
|
|
236
|
+
const periods = resolvePeriods(written);
|
|
232
237
|
if (!periods.ok) {
|
|
233
238
|
throw ctx.fail('invalid_period', periods.message);
|
|
234
239
|
}
|
|
@@ -294,7 +299,7 @@ export const createEurostatDownloadDataset = (clampLimits) => tool('eurostat_dow
|
|
|
294
299
|
throw ctx.fail('no_results', `The download of "${input.dataset_code}" carried no observations.`, {
|
|
295
300
|
recovery: {
|
|
296
301
|
hint: `Eurostat returned a table with no populated cells for "${input.dataset_code}". Verify the filter values with eurostat_get_dimension_values — a combination present in no cell downloads as an empty body.${range
|
|
297
|
-
? ` Also check that ${range} overlaps the series: a range outside the series' own coverage downloads as an empty table too.`
|
|
302
|
+
? ` Also check that ${range} overlaps the series and holds a whole period of it: Eurostat keeps only periods wholly inside the range, so a range outside the series' own coverage or inside one period downloads as an empty table too.`
|
|
298
303
|
: ''}`,
|
|
299
304
|
},
|
|
300
305
|
});
|
|
@@ -324,7 +329,7 @@ export const createEurostatDownloadDataset = (clampLimits) => tool('eurostat_dow
|
|
|
324
329
|
* the preview is discarded, but the counts, the period coverage and the
|
|
325
330
|
* budget verdict then describe the download rather than describing the
|
|
326
331
|
* preview — and the byte budget still bounds what is transferred. Stopping
|
|
327
|
-
* at preview_limit instead would report a row count of
|
|
332
|
+
* at preview_limit instead would report a row count of 25 for a dataset of
|
|
328
333
|
* millions.
|
|
329
334
|
*/
|
|
330
335
|
for await (const _row of rows) {
|
|
@@ -362,6 +367,13 @@ export const createEurostatDownloadDataset = (clampLimits) => tool('eurostat_dow
|
|
|
362
367
|
*/
|
|
363
368
|
ctx.enrich.total(stats.rowCount);
|
|
364
369
|
const notices = previewLimit.notice ? [previewLimit.notice] : [];
|
|
370
|
+
if (sinceP || untilP) {
|
|
371
|
+
// The header is the only frequency signal: it shows a frequency only when a period
|
|
372
|
+
// of it is in range, so one it hides gets no notice. No coverage reaches the TSV.
|
|
373
|
+
const cuts = periodCuts({ since_period: sinceP, until_period: untilP }, frequenciesOf(download.header.periods));
|
|
374
|
+
if (cuts.length > 0)
|
|
375
|
+
notices.push(cutNotice(cuts, written));
|
|
376
|
+
}
|
|
365
377
|
if (stats.budgetExceeded) {
|
|
366
378
|
notices.push(`The byte budget stopped this transfer after ${stats.bytesRead.toLocaleString()} bytes, so these ${stats.rowCount.toLocaleString()} observations are the start of "${input.dataset_code}" and not all of it. Add dimension filters or a since_period/until_period range to fit the dataset inside the budget, or raise EUROSTAT_BULK_MAX_BYTES.`);
|
|
367
379
|
}
|
|
@@ -415,8 +427,14 @@ export const createEurostatDownloadDataset = (clampLimits) => tool('eurostat_dow
|
|
|
415
427
|
? `**Staged:** table \`${result.tableName}\` on canvas \`${result.canvasId}\` (stagedRowCount ${result.stagedRowCount}) — inspect it with eurostat_dataframe_describe first, then query it with eurostat_dataframe_query`
|
|
416
428
|
: '**Staged:** nothing — this deployment runs without a dataframe canvas, so only the rows below are retained');
|
|
417
429
|
lines.push('', `## First ${result.observations.length} observations`);
|
|
430
|
+
// dimensionsUsed leaves out the period column, which hoists like any other dimension.
|
|
431
|
+
// The value and flag columns are not candidates, so they stay on every row.
|
|
432
|
+
const { header, hoisted } = hoistDimensions(result.observations, [...result.dimensionsUsed, TIME_COLUMN], (row, col) => (row[col] == null ? undefined : `${col}=${row[col]}`));
|
|
433
|
+
if (header)
|
|
434
|
+
lines.push(header, '');
|
|
418
435
|
for (const row of result.observations) {
|
|
419
436
|
lines.push(Object.entries(row)
|
|
437
|
+
.filter(([col]) => !hoisted.has(col))
|
|
420
438
|
.map(([col, value]) => `${col}=${value === null ? 'NULL' : value}`)
|
|
421
439
|
.join(' | '));
|
|
422
440
|
}
|
|
@@ -460,7 +478,10 @@ function mapBulkFailure(err, datasetCode, request) {
|
|
|
460
478
|
return {
|
|
461
479
|
reason,
|
|
462
480
|
message,
|
|
463
|
-
|
|
481
|
+
// The fault carries no frequency and no coverage, so this states the rule and names no bound.
|
|
482
|
+
hint: data?.periodRange === true
|
|
483
|
+
? `Eurostat keeps only periods wholly inside the range, so a bound that falls inside a period excludes it, and a range outside the dataset's coverage selects nothing. List the periods "${datasetCode}" publishes with eurostat_get_dimension_values, dimension "time", then set since_period/until_period on them.`
|
|
484
|
+
: `Check the dimension codes for "${datasetCode}" with eurostat_get_dataset_info and their values with eurostat_get_dimension_values, and keep since_period/until_period inside the dataset's coverage.`,
|
|
464
485
|
};
|
|
465
486
|
case 'filter_arity':
|
|
466
487
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-download-dataset.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-download-dataset.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,EACL,aAAa,EACb,SAAS,EACT,eAAe,EACf,YAAY,GACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,aAAa,EACb,sBAAsB,GACvB,MAAM,mDAAmD,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAE9E,0EAA0E;AAC1E,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB;;;;;GAKG;AACH,KAAK,SAAS,CAAC,CAAC,UAAU,CACxB,IAA6B,EAC7B,OAAkB,EAClB,KAAa;IAEb,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,KAAc,EAAE,IAA6B;IACnE,MAAM,KAAK,CAAC;IACZ,KAAK,CAAC,CAAC,IAAI,CAAC;AACd,CAAC;AAED,+DAA+D;AAC/D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,WAAoB,EAAE,EAAE,CACpE,IAAI,CAAC,2BAA2B,EAAE;IAChC,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,y0CAAy0C;IAC30C,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,mTAAmT,CACpT;QACH,OAAO,EAAE,CAAC;aACP,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aACvC,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,2lBAA2lB,CAC5lB;QACH,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,8EAA8E,YAAY,gfAAgf,CAC3kB;QACH,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,0VAA0V,CAC3V;QACH,aAAa,EAAE,CAAC,WAAW;YACzB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAC3C;aACE,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,qFAAqF,WAAW,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,yCAAyC,0GAA0G,CACxT;QACH,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC3C,oYAAoY,CACrY;KACF,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC7D,cAAc,EAAE,CAAC;aACd,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CACP,yPAAyP,CAC1P;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,mHAAmH,CACpH;QACH,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,CAAC,wEAAwE,CAAC;QACrF,WAAW,EAAE,CAAC;aACX,MAAM,CAAC;YACN,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,+EAA+E,CAChF;YACH,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,6EAA6E,CAC9E;SACJ,CAAC;aACD,QAAQ,CACP,uIAAuI,CACxI;QACH,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,CACP,gLAAgL,CACjL;QACH,UAAU,EAAE,CAAC;aACV,OAAO,EAAE;aACT,QAAQ,CACP,sKAAsK,CACvK;QACH,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,QAAQ,CACP,yMAAyM,CAC1M;QACH,YAAY,EAAE,CAAC;aACZ,KAAK,CACJ,CAAC;aACE,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC/D,QAAQ,CACP,udAAud,CACxd,CACJ;aACA,QAAQ,CACP,wIAAwI,CACzI;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,wKAAwK,CACzK;QACH,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,iSAAiS,CAClS;QACH,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,kFAAkF,CACnF;KACJ,CAAC;IACF,UAAU,EAAE;QACV,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,CACP,mNAAmN,CACpN;QACH,YAAY,EAAE,CAAC;aACZ,MAAM,CAAC;YACN,OAAO,EAAE,CAAC;iBACP,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;iBACvC,QAAQ,CACP,iGAAiG,CAClG;YACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC3E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACzE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;SACrF,CAAC;aACD,QAAQ,CAAC,0CAA0C,CAAC;QACvD,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,iXAAiX,CAClX;KACJ;IAED,iBAAiB,EAAE;QACjB,YAAY,EAAE;YACZ,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;gBACZ,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpC,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,MAAM,GAAG,CAAC;oBACb,CAAC,CAAC,kBAAkB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC7F,CAAC,CAAC,qCAAqC,CAC1C,CAAC;gBACF,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;oBACnC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,IAAI,GAAG,MAAM,CAAC,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACrF,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAClC,OAAO,sBAAsB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,CAAC;SACF;KACF;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,sBAAsB;YAC9B,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,0GAA0G;YAChH,QAAQ,EACN,qHAAqH;YACvH,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,qFAAqF;YAC3F,QAAQ,EACN,sFAAsF;YACxF,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,yHAAyH;YAC/H,QAAQ,EACN,kKAAkK;YACpK,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,oNAAoN;YAC1N,QAAQ,EACN,gHAAgH;YAClH,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,uaAAua;YAC7a,QAAQ,EAAE,sCAAsC,YAAY,2GAA2G;SACxK;QACD;YACE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,oKAAoK;YAC1K,SAAS,EAAE,KAAK;YAChB,QAAQ,EACN,+HAA+H;YACjI,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,4HAA4H;YAClI,QAAQ,EACN,uOAAuO;SAC1O;QACD;YACE,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,+PAA+P;YACrQ,SAAS,EAAE,KAAK;YAChB,QAAQ,EACN,mJAAmJ;YACrJ,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,gRAAgR;YACtR,QAAQ,EAAE,uEAAuE;YACjF,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,kFAAkF;YACxF,QAAQ,EAAE,gFAAgF;SAC3F;KACF;IAED,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG;QACxB,MAAM,YAAY,GAAG,cAAc,CACjC,OAAO,CAAC,aAAa,EACrB,WAAW,EACX,eAAe,EACf,2BAA2B,EAC3B,GAAG,CACJ,CAAC;QACF,MAAM,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;QACtC,mFAAmF;QACnF,4BAA4B;QAC5B,MAAM,OAAO,GAAG,cAAc,CAAC;YAC7B,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,SAAS;YACrD,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,SAAS;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC/D,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhD;;;;;WAKG;QACH,IAAI,cAAc,GAAa,EAAE,CAAC;QAElC;;;WAGG;QACH,MAAM,UAAU,GAAG,KAAK,EAAK,QAAwB,EAAE,GAAqB,EAAc,EAAE;YAC1F,IAAI,CAAC;gBACH,OAAO,MAAM,GAAG,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE;oBACrD,UAAU,EACP,GAAgB,CAAC,IAAI,EAAE,MAAM,KAAK,oBAAoB;wBACrD,CAAC,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,EAAE,GAAG,CAAC;wBACnE,CAAC,CAAC,SAAS;oBACf,QAAQ;oBACR,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;iBAC/B,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM;oBAAE,MAAM,GAAG,CAAC;gBACvB,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;oBAC5C,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;oBAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,cAAc,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,CAClD,sBAAsB,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CACpE,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAC7C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CACrF,CAAC;QAEF,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAEvE,IAAI,MAAmF,CAAC;QACxF;;;;;WAKG;QACH,IAAI,CAAC;YACH;;;;;eAKG;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG;oBACZ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChB,MAAM,GAAG,CAAC,IAAI,CACZ,YAAY,EACZ,oBAAoB,KAAK,CAAC,YAAY,4BAA4B,EAClE;oBACE,QAAQ,EAAE;wBACR,IAAI,EAAE,0DAA0D,KAAK,CAAC,YAAY,gIAChF,KAAK;4BACH,CAAC,CAAC,oBAAoB,KAAK,iGAAiG;4BAC5H,CAAC,CAAC,EACN,EAAE;qBACH;iBACF,CACF,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,MAAM,EAAE,CAAC;gBACX,gFAAgF;gBAChF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,CACtE,CAAC,GAAY,EAAE,EAAE;oBACf,IAAI,eAAe,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,CAAC;wBAC7C,MAAM,GAAG,CAAC,IAAI,CACZ,kBAAkB,EAClB,GAAG,CAAC,OAAO,EACX,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,EAC7B,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;oBACJ,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC,CACF,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;oBACtF,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC;oBACrE,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CAAC;gBACH,MAAM,GAAG;oBACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,cAAc,EAAE,MAAM,CAAC,QAAQ;oBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN;;;;;;;mBAOG;gBACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;oBAC9B,kEAAkE;gBACpE,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;QAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE;YACrC,WAAW,EAAE,KAAK,CAAC,YAAY;YAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,GAAG,CAAC,MAAM,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;SAC1E,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC;YACT,YAAY,EAAE;gBACZ,OAAO;gBACP,GAAG,CAAC,MAAM,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;gBACtC,GAAG,CAAC,MAAM,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;gBACtC,GAAG,EAAE,QAAQ,CAAC,GAAG;aAClB;SACF,CAAC,CAAC;QACH;;;;;WAKG;QACH,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,OAAO,GAAa,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CACV,+CAA+C,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,mCAAmC,KAAK,CAAC,YAAY,yJAAyJ,CACjV,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CACV,iBAAiB,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,sBAAsB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,mEAAmE,CACpN,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ;;;;eAIG;YACH,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAClD,OAAO,CAAC,IAAI,CACV,SAAS,KAAK,CAAC;gBACb,CAAC,CAAC,+EAA+E,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,+CAA+C;gBAC/J,CAAC,CAAC,oFAAoF,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,6DAA6D,SAAS,CAAC,cAAc,EAAE,gCACxM,KAAK,CAAC,QAAQ,IAAI,WAAW;oBAC3B,CAAC,CAAC,0BAA0B,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,uFAAuF;oBAClJ,CAAC,CAAC,2JACN,EAAE,CACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,OAAO,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,iDAAiD,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,QAAQ,qIAAqI,CACnR,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAErC,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,YAAY;YAC/B,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;YAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE;gBACX,GAAG,CAAC,WAAW,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;gBAC1C,GAAG,CAAC,UAAU,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;aACvC;YACD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,YAAY,EAAE,OAAO;YACrB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;QAC1C,MAAM,UAAU,GAAG,0BAA0B,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,UAAU,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3F,MAAM,KAAK,GAAa;YACtB,qBAAqB,MAAM,CAAC,WAAW,IAAI;YAC3C,qBAAqB,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,YAAY,2BAA2B,MAAM,EAAE;YAC/F,mBAAmB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACrD,iBAAiB,MAAM,CAAC,SAAS,oCAAoC,MAAM,CAAC,UAAU,2BAA2B,MAAM,CAAC,cAAc,GACpI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,EACxF,EAAE;SACH,CAAC;QACF,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,SAAS;YACd,CAAC,CAAC,uBAAuB,MAAM,CAAC,SAAS,kBAAkB,MAAM,CAAC,QAAQ,sBAAsB,MAAM,CAAC,cAAc,oGAAoG;YACzN,CAAC,CAAC,4GAA4G,CACjH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,MAAM,CAAC,YAAY,CAAC,MAAM,eAAe,CAAC,CAAC;QACtE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;iBAClE,IAAI,CAAC,KAAK,CAAC,CACf,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC;AAEL,sFAAsF;AACtF,MAAM,CAAC,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;AAe3E;;;;;;;;;;;;;GAaG;AACH,SAAS,cAAc,CACrB,GAAY,EACZ,WAAmB,EACnB,OAA2F;IAE3F,MAAM,IAAI,GAAI,GAAgB,CAAC,IAAI,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;IAC5B,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,CAAC;IACvC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,oBAAoB;YACvB,OAAO;gBACL,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,+CAA+C,WAAW,8CAA8C,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;aACnL,CAAC;QACJ,KAAK,WAAW;YACd,OAAO;gBACL,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,YAAY,WAAW,oHAAoH;aAClJ,CAAC;QACJ,KAAK,mBAAmB;YACtB,OAAO;gBACL,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,kCAAkC,WAAW,yJAAyJ;aAC7M,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,iEAAiE,WAAW,+GAA+G;aAClM,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,iDAAiD,WAAW,yCAAyC,YAAY,+CAA+C;aACvK,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,4JAA4J,WAAW,qBAAqB;aACnM,CAAC;QACJ,KAAK,gBAAgB;YACnB,4EAA4E;YAC5E,IAAI,IAAI,EAAE,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzC,OAAO;oBACL,MAAM;oBACN,OAAO;oBACP,SAAS,EAAE,IAAI;oBACf,IAAI,EACF,OAAO,CAAC,QAAQ,KAAK,WAAW;wBAC9B,CAAC,CAAC,sCAAsC,MAAM,SAAS,WAAW,kKAAkK;wBACpO,CAAC,CAAC,iCAAiC,MAAM,SAAS,WAAW,8FAA8F;iBAChK,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,qDAAqD,WAAW,0EAA0E;aACjJ,CAAC;QACJ;YACE,OAAO;IACX,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"eurostat-download-dataset.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-download-dataset.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,75 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
6
6
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
7
|
+
/** Select the count-limit schema before registering the tool. */
|
|
8
|
+
export declare const createEurostatGetDimensionValues: (clampLimits: boolean) => import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
9
|
+
dataset_code: z.ZodString;
|
|
10
|
+
dimension: z.ZodString;
|
|
11
|
+
geo_level: z.ZodOptional<z.ZodEnum<{
|
|
12
|
+
aggregate: "aggregate";
|
|
13
|
+
country: "country";
|
|
14
|
+
nuts1: "nuts1";
|
|
15
|
+
nuts2: "nuts2";
|
|
16
|
+
nuts3: "nuts3";
|
|
17
|
+
}>>;
|
|
18
|
+
filter: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
19
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
20
|
+
cursor: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
21
|
+
canvas_id: z.ZodOptional<z.ZodString>;
|
|
22
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
23
|
+
dimensionCode: z.ZodString;
|
|
24
|
+
dimensionLabel: z.ZodString;
|
|
25
|
+
geoLevel: z.ZodOptional<z.ZodEnum<{
|
|
26
|
+
aggregate: "aggregate";
|
|
27
|
+
country: "country";
|
|
28
|
+
nuts1: "nuts1";
|
|
29
|
+
nuts2: "nuts2";
|
|
30
|
+
nuts3: "nuts3";
|
|
31
|
+
}>>;
|
|
32
|
+
values: z.ZodArray<z.ZodObject<{
|
|
33
|
+
code: z.ZodString;
|
|
34
|
+
label: z.ZodString;
|
|
35
|
+
}, z.core.$strip>>;
|
|
36
|
+
totalCount: z.ZodNumber;
|
|
37
|
+
matchCount: z.ZodOptional<z.ZodNumber>;
|
|
38
|
+
canvasId: z.ZodOptional<z.ZodString>;
|
|
39
|
+
tableName: z.ZodOptional<z.ZodString>;
|
|
40
|
+
stagedRowCount: z.ZodOptional<z.ZodNumber>;
|
|
41
|
+
}, z.core.$strip>, readonly [{
|
|
42
|
+
readonly reason: "not_found";
|
|
43
|
+
readonly code: JsonRpcErrorCode.NotFound;
|
|
44
|
+
readonly when: "The dataset code or dimension code does not exist.";
|
|
45
|
+
readonly recovery: "Verify the dataset code with eurostat_search_datasets and the dimension code with eurostat_get_dataset_info.";
|
|
46
|
+
}, {
|
|
47
|
+
readonly reason: "no_results";
|
|
48
|
+
readonly code: JsonRpcErrorCode.NotFound;
|
|
49
|
+
readonly when: "The dataset has no geo values at the effective geo_level.";
|
|
50
|
+
readonly recovery: "Choose a geo_level the error names, each holding at least one code of this dataset; when it names none, eurostat_get_dataset_info lists sample geo codes.";
|
|
51
|
+
}, {
|
|
52
|
+
readonly reason: "conflicting_params";
|
|
53
|
+
readonly code: JsonRpcErrorCode.ValidationError;
|
|
54
|
+
readonly when: "geo_level was combined with a dimension other than \"geo\", where it has no effect; or, on a deployment with a dataframe canvas, canvas_id was combined with cursor, which would stage the list again on every page.";
|
|
55
|
+
readonly recovery: "Drop geo_level for a dimension other than \"geo\"; when paging with cursor, drop canvas_id — a first call that carried canvas_id staged every value.";
|
|
56
|
+
}, {
|
|
57
|
+
readonly reason: "invalid_cursor";
|
|
58
|
+
readonly code: JsonRpcErrorCode.InvalidParams;
|
|
59
|
+
readonly when: "The cursor is malformed, was issued for a different dataset_code, dimension, geo_level or filter, or resumes after a code the list no longer holds.";
|
|
60
|
+
readonly recovery: "Call again without cursor, keeping dataset_code, dimension, geo_level and filter, then page with the nextCursor that call returns.";
|
|
61
|
+
}, {
|
|
62
|
+
readonly reason: "upstream_fault";
|
|
63
|
+
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
64
|
+
readonly when: "Eurostat returned a dataset structure or content constraint this server cannot read — malformed, truncated, not XML, or missing the requested dataset's dataflow — or the structure endpoint answered HTTP 5xx or could not be reached on every retry, which the error marks retryable.";
|
|
65
|
+
readonly recovery: "Retry in a few minutes, since a failed structure read is not cached. If it fails the same way, filter eurostat_query_dataset on the code in question: a code the dataset lacks comes back in unmatchedValues.";
|
|
66
|
+
}, {
|
|
67
|
+
readonly reason: "canvas_not_found";
|
|
68
|
+
readonly code: JsonRpcErrorCode.NotFound;
|
|
69
|
+
readonly when: "A canvas_id was supplied for staging but is unknown or its lifetime has elapsed.";
|
|
70
|
+
readonly recovery: "Pass the canvasId a recent eurostat_download_dataset or eurostat_query_dataset response returned, or omit canvas_id to list the values inline only.";
|
|
71
|
+
}], {
|
|
72
|
+
readonly truncated: z.ZodOptional<z.ZodBoolean>;
|
|
73
|
+
readonly nextCursor: z.ZodOptional<z.ZodString>;
|
|
74
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
75
|
+
}>;
|
|
7
76
|
export declare const eurostatGetDimensionValues: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
8
77
|
dataset_code: z.ZodString;
|
|
9
78
|
dimension: z.ZodString;
|
|
@@ -15,7 +84,7 @@ export declare const eurostatGetDimensionValues: import("@cyanheads/mcp-ts-core"
|
|
|
15
84
|
nuts3: "nuts3";
|
|
16
85
|
}>>;
|
|
17
86
|
filter: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
18
|
-
limit: z.
|
|
87
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
19
88
|
cursor: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
20
89
|
canvas_id: z.ZodOptional<z.ZodString>;
|
|
21
90
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -46,7 +115,7 @@ export declare const eurostatGetDimensionValues: import("@cyanheads/mcp-ts-core"
|
|
|
46
115
|
readonly reason: "no_results";
|
|
47
116
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
48
117
|
readonly when: "The dataset has no geo values at the effective geo_level.";
|
|
49
|
-
readonly recovery: "Choose a
|
|
118
|
+
readonly recovery: "Choose a geo_level the error names, each holding at least one code of this dataset; when it names none, eurostat_get_dataset_info lists sample geo codes.";
|
|
50
119
|
}, {
|
|
51
120
|
readonly reason: "conflicting_params";
|
|
52
121
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-get-dimension-values.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAsB,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"eurostat-get-dimension-values.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAsB,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAgJhF,iEAAiE;AACjE,eAAO,MAAM,gCAAgC,gBAAiB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4XjE,CAAC;AAEL,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyC,CAAC"}
|