/** * @fileoverview Fetch time-series data for 1–50 BLS series by SeriesID. Sends * a single POST /timeseries/data request (one API query regardless of series * count). When total observations exceed the inline budget, spills to canvas * and returns a `dataset` field with a `df_` handle for follow-up SQL. * @module mcp-server/tools/definitions/bls-get-series */ import { z } from '@cyanheads/mcp-ts-core'; import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors'; export declare const blsGetSeriesTool: import("@cyanheads/mcp-ts-core").ToolDefinition; start_year: z.ZodOptional; end_year: z.ZodOptional; calculations: z.ZodOptional; annual_average: z.ZodDefault; }, z.core.$strip>, z.ZodObject<{ series: z.ZodArray; area: z.ZodOptional; item: z.ZodOptional; seasonal: z.ZodOptional; observationCount: z.ZodNumber; observations: z.ZodArray; value: z.ZodString; footnotes: z.ZodOptional>; netChange1Month: z.ZodOptional; netChange3Month: z.ZodOptional; netChange6Month: z.ZodOptional; netChange12Month: z.ZodOptional; pctChange1Month: z.ZodOptional; pctChange3Month: z.ZodOptional; pctChange6Month: z.ZodOptional; pctChange12Month: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; dataset: z.ZodOptional>; spilled: z.ZodBoolean; }, z.core.$strip>, readonly [{ readonly reason: "invalid_api_key"; readonly code: JsonRpcErrorCode.ConfigurationError; readonly when: "BLS rejected the configured BLS_API_KEY as invalid."; readonly retryable: false; readonly recovery: "Set BLS_API_KEY to a valid key and restart the server — register free at https://data.bls.gov/registrationEngine/. This is a configuration error: it does not clear at the UTC quota reset."; }, { readonly reason: "quota_exceeded"; readonly code: JsonRpcErrorCode.ServiceUnavailable; readonly when: "The BLS API 500 query/day limit has been reached."; readonly retryable: false; readonly recovery: "The daily quota resets at UTC midnight. Retry after midnight or reduce query volume."; }, { readonly reason: "request_rejected"; readonly code: JsonRpcErrorCode.ServiceUnavailable; readonly when: "BLS returned a non-success status with a message matching no known failure mode — e.g. a rejected combination of request parameters."; readonly retryable: false; readonly recovery: "Retry with calculations omitted, or split series_ids into smaller batches to isolate the series BLS rejects."; }, { readonly reason: "series_not_found"; readonly code: JsonRpcErrorCode.NotFound; readonly when: "One or more SeriesIDs do not exist in BLS data."; readonly recovery: "Use bls_search_series to find valid SeriesIDs before calling bls_get_series."; }, { readonly reason: "series_locked"; readonly code: JsonRpcErrorCode.ServiceUnavailable; readonly when: "The BLS database is temporarily locked for the requested series."; readonly recovery: "The BLS database lock is transient — retry the request after a brief delay."; }, { readonly reason: "no_data_for_period"; readonly code: JsonRpcErrorCode.ValidationError; readonly when: "No data is available for the requested year range."; readonly recovery: "Adjust start_year or end_year. The BLS series may not cover the requested period."; }, { readonly reason: "calculations_not_supported"; readonly code: JsonRpcErrorCode.ValidationError; readonly when: "calculations=true was requested for a survey that does not support it."; readonly recovery: "Remove the calculations flag or use bls_list_surveys to verify calculation support before requesting it."; }, { readonly reason: "canvas_unavailable"; readonly code: JsonRpcErrorCode.ServiceUnavailable; readonly when: "The result set exceeds the inline budget and canvas (DuckDB) is not configured."; readonly recovery: "Narrow start_year/end_year to reduce the result set, or enable canvas by setting CANVAS_PROVIDER_TYPE=duckdb."; }, { readonly reason: "canvas_registration_failed"; readonly code: JsonRpcErrorCode.ServiceUnavailable; readonly when: "The result set exceeds the inline budget and canvas is configured, but registering the dataframe failed."; readonly recovery: "Retry the request — the failure is usually transient. If it persists, narrow start_year/end_year so the result fits inline."; }], { readonly totalObservations: z.ZodNumber; readonly seriesRequested: z.ZodNumber; readonly startYearApplied: z.ZodOptional; readonly endYearApplied: z.ZodOptional; readonly calculationsApplied: z.ZodOptional; readonly annualAverageApplied: z.ZodBoolean; readonly annualAverageRows: z.ZodOptional; readonly notice: z.ZodOptional; }>; //# sourceMappingURL=bls-get-series.tool.d.ts.map