@cyanheads/secedgar-mcp-server 0.15.13 → 0.15.15

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 (109) hide show
  1. package/AGENTS.md +8 -6
  2. package/CLAUDE.md +8 -6
  3. package/Dockerfile +3 -3
  4. package/README.md +8 -5
  5. package/changelog/0.15.x/0.15.14.md +31 -0
  6. package/changelog/0.15.x/0.15.15.md +24 -0
  7. package/dist/index.js +7 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts +2 -2
  10. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/company-search.tool.js +8 -10
  12. package/dist/mcp-server/tools/definitions/company-search.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts +2 -2
  14. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/compare-companies.tool.js +6 -4
  16. package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -1
  17. package/dist/mcp-server/tools/definitions/dataframe-describe.tool.d.ts +1 -1
  18. package/dist/mcp-server/tools/definitions/dataframe-describe.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/dataframe-describe.tool.js +1 -1
  20. package/dist/mcp-server/tools/definitions/dataframe-describe.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/dataframe-drop.tool.d.ts +1 -1
  22. package/dist/mcp-server/tools/definitions/dataframe-drop.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/dataframe-drop.tool.js +1 -1
  24. package/dist/mcp-server/tools/definitions/dataframe-drop.tool.js.map +1 -1
  25. package/dist/mcp-server/tools/definitions/dataframe-query.tool.d.ts +1 -1
  26. package/dist/mcp-server/tools/definitions/dataframe-query.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/dataframe-query.tool.js +1 -1
  28. package/dist/mcp-server/tools/definitions/dataframe-query.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts +2 -2
  30. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +6 -4
  32. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
  33. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts +2 -2
  34. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts.map +1 -1
  35. package/dist/mcp-server/tools/definitions/find-holders.tool.js +35 -23
  36. package/dist/mcp-server/tools/definitions/find-holders.tool.js.map +1 -1
  37. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts +15 -5
  38. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts.map +1 -1
  39. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js +92 -35
  40. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js.map +1 -1
  41. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts +2 -2
  42. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
  43. package/dist/mcp-server/tools/definitions/get-filing.tool.js +59 -33
  44. package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
  45. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts +2 -2
  46. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
  47. package/dist/mcp-server/tools/definitions/get-financials.tool.js +11 -8
  48. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  49. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts +2 -2
  50. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts.map +1 -1
  51. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js +27 -27
  52. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js.map +1 -1
  53. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts +2 -2
  54. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts.map +1 -1
  55. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js +12 -16
  56. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js.map +1 -1
  57. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts +21 -2
  58. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts.map +1 -1
  59. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js +153 -37
  60. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js.map +1 -1
  61. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts +2 -2
  62. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts.map +1 -1
  63. package/dist/mcp-server/tools/definitions/get-material-events.tool.js +8 -10
  64. package/dist/mcp-server/tools/definitions/get-material-events.tool.js.map +1 -1
  65. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts +2 -2
  66. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts.map +1 -1
  67. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js +6 -4
  68. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js.map +1 -1
  69. package/dist/mcp-server/tools/definitions/index.d.ts +597 -572
  70. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  71. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts +3 -8
  72. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -1
  73. package/dist/mcp-server/tools/definitions/search-filings.tool.js +117 -59
  74. package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -1
  75. package/dist/mcp-server/tools/fixed-point.d.ts +7 -0
  76. package/dist/mcp-server/tools/fixed-point.d.ts.map +1 -0
  77. package/dist/mcp-server/tools/fixed-point.js +28 -0
  78. package/dist/mcp-server/tools/fixed-point.js.map +1 -0
  79. package/dist/services/edgar/call-scope.d.ts +41 -0
  80. package/dist/services/edgar/call-scope.d.ts.map +1 -0
  81. package/dist/services/edgar/call-scope.js +53 -0
  82. package/dist/services/edgar/call-scope.js.map +1 -0
  83. package/dist/services/edgar/concept-series.d.ts.map +1 -1
  84. package/dist/services/edgar/concept-series.js +5 -1
  85. package/dist/services/edgar/concept-series.js.map +1 -1
  86. package/dist/services/edgar/edgar-api-service.d.ts +80 -50
  87. package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
  88. package/dist/services/edgar/edgar-api-service.js +483 -211
  89. package/dist/services/edgar/edgar-api-service.js.map +1 -1
  90. package/dist/services/edgar/filing-to-text.d.ts +53 -14
  91. package/dist/services/edgar/filing-to-text.d.ts.map +1 -1
  92. package/dist/services/edgar/filing-to-text.js +181 -33
  93. package/dist/services/edgar/filing-to-text.js.map +1 -1
  94. package/dist/services/edgar/nport-parser.js +1 -1
  95. package/dist/services/edgar/nport-parser.js.map +1 -1
  96. package/dist/services/edgar/ownership-parser.d.ts +2 -0
  97. package/dist/services/edgar/ownership-parser.d.ts.map +1 -1
  98. package/dist/services/edgar/ownership-parser.js +4 -0
  99. package/dist/services/edgar/ownership-parser.js.map +1 -1
  100. package/dist/services/edgar/same-cik.d.ts +7 -0
  101. package/dist/services/edgar/same-cik.d.ts.map +1 -0
  102. package/dist/services/edgar/same-cik.js +9 -0
  103. package/dist/services/edgar/same-cik.js.map +1 -0
  104. package/dist/services/edgar/submissions-archive.d.ts +6 -3
  105. package/dist/services/edgar/submissions-archive.d.ts.map +1 -1
  106. package/dist/services/edgar/submissions-archive.js +6 -3
  107. package/dist/services/edgar/submissions-archive.js.map +1 -1
  108. package/package.json +6 -6
  109. package/server.json +3 -3
@@ -25,49 +25,384 @@ export interface ToolDefinitionOptions {
25
25
  * it is present, so the manifest's tool count matches the documented surface.
26
26
  */
27
27
  export declare function buildToolDefinitions(options: ToolDefinitionOptions): (import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
28
- query: import("zod").ZodString;
29
- include_filings: import("zod").ZodDefault<import("zod").ZodBoolean>;
30
- forms: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
31
- filing_limit: import("zod").ZodDefault<import("zod").ZodNumber>;
32
- filed_after: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
33
- filed_before: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
28
+ companies: import("zod").ZodArray<import("zod").ZodString>;
29
+ concepts: import("zod").ZodArray<import("zod").ZodString>;
30
+ taxonomy: import("zod").ZodDefault<import("zod").ZodEnum<{
31
+ "ifrs-full": "ifrs-full";
32
+ "us-gaap": "us-gaap";
33
+ }>>;
34
+ period_type: import("zod").ZodDefault<import("zod").ZodEnum<{
35
+ annual: "annual";
36
+ quarterly: "quarterly";
37
+ }>>;
38
+ periods: import("zod").ZodDefault<import("zod").ZodNumber>;
34
39
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
35
- cik: import("zod").ZodString;
36
- name: import("zod").ZodString;
37
- tickers: import("zod").ZodArray<import("zod").ZodString>;
38
- exchanges: import("zod").ZodArray<import("zod").ZodString>;
39
- sic: import("zod").ZodString;
40
- sic_description: import("zod").ZodString;
41
- state_of_incorporation: import("zod").ZodOptional<import("zod").ZodString>;
42
- fiscal_year_end: import("zod").ZodOptional<import("zod").ZodString>;
43
- series_id: import("zod").ZodOptional<import("zod").ZodString>;
44
- class_id: import("zod").ZodOptional<import("zod").ZodString>;
45
- filings: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
40
+ period_type: import("zod").ZodString;
41
+ taxonomy: import("zod").ZodString;
42
+ periods: import("zod").ZodArray<import("zod").ZodString>;
43
+ companies: import("zod").ZodArray<import("zod").ZodObject<{
44
+ input: import("zod").ZodString;
45
+ cik: import("zod").ZodString;
46
+ name: import("zod").ZodString;
47
+ ticker: import("zod").ZodOptional<import("zod").ZodString>;
48
+ }, import("zod/v4/core").$strip>>;
49
+ failed_companies: import("zod").ZodArray<import("zod").ZodObject<{
50
+ input: import("zod").ZodString;
51
+ reason: import("zod").ZodEnum<{
52
+ ambiguous: "ambiguous";
53
+ no_company_facts: "no_company_facts";
54
+ not_found: "not_found";
55
+ }>;
56
+ message: import("zod").ZodString;
57
+ }, import("zod/v4/core").$strip>>;
58
+ concepts: import("zod").ZodArray<import("zod").ZodObject<{
59
+ concept: import("zod").ZodString;
60
+ label: import("zod").ZodString;
61
+ units: import("zod").ZodArray<import("zod").ZodString>;
62
+ }, import("zod/v4/core").$strip>>;
63
+ cells: import("zod").ZodArray<import("zod").ZodObject<{
64
+ cik: import("zod").ZodString;
65
+ company: import("zod").ZodString;
66
+ concept: import("zod").ZodString;
67
+ period: import("zod").ZodString;
68
+ value: import("zod").ZodNumber;
69
+ unit: import("zod").ZodString;
70
+ taxonomy: import("zod").ZodString;
71
+ tag: import("zod").ZodString;
72
+ frame: import("zod").ZodString;
73
+ period_end: import("zod").ZodString;
74
+ form: import("zod").ZodString;
75
+ accession_number: import("zod").ZodString;
76
+ }, import("zod/v4/core").$strip>>;
77
+ gaps: import("zod").ZodArray<import("zod").ZodObject<{
78
+ cik: import("zod").ZodString;
79
+ company: import("zod").ZodString;
80
+ concept: import("zod").ZodString;
81
+ tags_tried: import("zod").ZodArray<import("zod").ZodString>;
82
+ }, import("zod/v4/core").$strip>>;
83
+ unknown_concepts: import("zod").ZodArray<import("zod").ZodObject<{
84
+ concept: import("zod").ZodString;
85
+ derivation: import("zod").ZodOptional<import("zod").ZodString>;
86
+ suggestions: import("zod").ZodArray<import("zod").ZodString>;
87
+ }, import("zod/v4/core").$strip>>;
88
+ caveats: import("zod").ZodArray<import("zod").ZodString>;
89
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
90
+ name: import("zod").ZodString;
91
+ row_count: import("zod").ZodNumber;
92
+ expires_at: import("zod").ZodString;
93
+ }, import("zod/v4/core").$strip>>;
94
+ }, import("zod/v4/core").$strip>, readonly [{
95
+ readonly reason: "no_companies_resolved";
96
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
97
+ readonly when: "None of the supplied company inputs resolved to a CIK";
98
+ readonly recovery: "Use ticker symbols or 10-digit CIK numbers for exact matches.";
99
+ }, {
100
+ readonly reason: "no_comparable_data";
101
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
102
+ readonly when: "Companies resolved but not one of them reports any of the requested concepts for the requested period type";
103
+ readonly recovery: "Switch period_type, or discover reported concept names with secedgar_search_concepts.";
104
+ }, {
105
+ readonly reason: "unknown_concept";
106
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
107
+ readonly when: "Every requested concept is neither a supported friendly name nor shaped like an XBRL tag, so no request is sent";
108
+ readonly recovery: "Use a friendly name from secedgar_search_concepts or a valid raw XBRL tag.";
109
+ }, {
110
+ readonly reason: "rate_limited";
111
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
112
+ readonly when: "SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs";
113
+ readonly recovery: "Wait the retryAfter seconds the error carries, then retry — SEC lifts the block only once requests stop for ten minutes.";
114
+ readonly retryable: true;
115
+ readonly thrownBy: "service";
116
+ }, {
117
+ readonly reason: "sec_unreachable";
118
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
119
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
120
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
121
+ readonly retryable: true;
122
+ readonly thrownBy: "service";
123
+ }], {
124
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
125
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
126
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
127
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
128
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
129
+ concept: import("zod").ZodString;
130
+ taxonomy: import("zod").ZodDefault<import("zod").ZodEnum<{
131
+ dei: "dei";
132
+ "us-gaap": "us-gaap";
133
+ }>>;
134
+ period: import("zod").ZodString;
135
+ unit: import("zod").ZodDefault<import("zod").ZodEnum<{
136
+ USD: "USD";
137
+ "USD-per-shares": "USD-per-shares";
138
+ "USD/shares": "USD/shares";
139
+ pure: "pure";
140
+ shares: "shares";
141
+ }>>;
142
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
143
+ offset: import("zod").ZodDefault<import("zod").ZodNumber>;
144
+ sort: import("zod").ZodDefault<import("zod").ZodEnum<{
145
+ asc: "asc";
146
+ desc: "desc";
147
+ }>>;
148
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
149
+ concept: import("zod").ZodString;
150
+ taxonomy: import("zod").ZodString;
151
+ period: import("zod").ZodString;
152
+ unit: import("zod").ZodString;
153
+ label: import("zod").ZodString;
154
+ total_companies: import("zod").ZodNumber;
155
+ offset: import("zod").ZodNumber;
156
+ next_offset: import("zod").ZodOptional<import("zod").ZodNumber>;
157
+ data: import("zod").ZodArray<import("zod").ZodObject<{
158
+ rank: import("zod").ZodNumber;
159
+ company_name: import("zod").ZodString;
160
+ cik: import("zod").ZodString;
161
+ ticker: import("zod").ZodOptional<import("zod").ZodString>;
162
+ value: import("zod").ZodNumber;
163
+ location: import("zod").ZodOptional<import("zod").ZodString>;
164
+ period_end: import("zod").ZodString;
165
+ accession_number: import("zod").ZodString;
166
+ }, import("zod/v4/core").$strip>>;
167
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
168
+ name: import("zod").ZodString;
169
+ row_count: import("zod").ZodNumber;
170
+ expires_at: import("zod").ZodString;
171
+ }, import("zod/v4/core").$strip>>;
172
+ unqueried_tags: import("zod").ZodArray<import("zod").ZodString>;
173
+ related_tags: import("zod").ZodArray<import("zod").ZodObject<{
174
+ tag: import("zod").ZodString;
175
+ note: import("zod").ZodString;
176
+ }, import("zod/v4/core").$strip>>;
177
+ value_distribution: import("zod").ZodObject<{
178
+ median: import("zod").ZodNumber;
179
+ p95: import("zod").ZodNumber;
180
+ max: import("zod").ZodNumber;
181
+ max_to_p95_ratio: import("zod").ZodNumber;
182
+ }, import("zod/v4/core").$strip>;
183
+ period_end_range: import("zod").ZodObject<{
184
+ min: import("zod").ZodString;
185
+ max: import("zod").ZodString;
186
+ }, import("zod/v4/core").$strip>;
187
+ caveats: import("zod").ZodArray<import("zod").ZodString>;
188
+ }, import("zod/v4/core").$strip>, readonly [{
189
+ readonly reason: "unknown_concept";
190
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
191
+ readonly when: "The concept input is neither a supported friendly name nor shaped like an XBRL tag, so no request is sent";
192
+ readonly recovery: "Use a friendly name from secedgar_search_concepts or a valid raw XBRL tag.";
193
+ }, {
194
+ readonly reason: "no_data";
195
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
196
+ readonly when: "Concept resolves but no companies report this metric for the requested period and unit";
197
+ readonly recovery: "Check duration vs instant period, unit, and that the period exists post-CY2009.";
198
+ }, {
199
+ readonly reason: "rate_limited";
200
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
201
+ readonly when: "SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs";
202
+ readonly recovery: "Wait the retryAfter seconds the error carries, then retry — SEC lifts the block only once requests stop for ten minutes.";
203
+ readonly retryable: true;
204
+ readonly thrownBy: "service";
205
+ }, {
206
+ readonly reason: "sec_unreachable";
207
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
208
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
209
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
210
+ readonly retryable: true;
211
+ readonly thrownBy: "service";
212
+ }], {
213
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
214
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
215
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
216
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
217
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
218
+ issuer: import("zod").ZodString;
219
+ form_kind: import("zod").ZodDefault<import("zod").ZodEnum<{
220
+ "13D": "13D";
221
+ "13G": "13G";
222
+ all: "all";
223
+ }>>;
224
+ include_amendments: import("zod").ZodDefault<import("zod").ZodBoolean>;
225
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
226
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
227
+ issuer: import("zod").ZodString;
228
+ issuer_cik: import("zod").ZodString;
229
+ issuer_name: import("zod").ZodString;
230
+ form_kind: import("zod").ZodEnum<{
231
+ "13D": "13D";
232
+ "13G": "13G";
233
+ all: "all";
234
+ }>;
235
+ total_structured_filings: import("zod").ZodNumber;
236
+ filings_parsed: import("zod").ZodNumber;
237
+ filings_examined: import("zod").ZodNumber;
238
+ filings_excluded_other_issuer: import("zod").ZodNumber;
239
+ filings_not_examined: import("zod").ZodNumber;
240
+ filings_failed: import("zod").ZodArray<import("zod").ZodObject<{
46
241
  accession_number: import("zod").ZodString;
242
+ reason: import("zod").ZodEnum<{
243
+ document_not_found: "document_not_found";
244
+ unparseable: "unparseable";
245
+ }>;
246
+ }, import("zod/v4/core").$strip>>;
247
+ partial: import("zod").ZodBoolean;
248
+ structured_coverage_from: import("zod").ZodString;
249
+ legacy_filings_before_coverage: import("zod").ZodNumber;
250
+ filings: import("zod").ZodArray<import("zod").ZodObject<{
47
251
  form: import("zod").ZodString;
252
+ schedule: import("zod").ZodEnum<{
253
+ "13D": "13D";
254
+ "13G": "13G";
255
+ }>;
256
+ is_amendment: import("zod").ZodBoolean;
257
+ amendment_number: import("zod").ZodOptional<import("zod").ZodString>;
258
+ accession_number: import("zod").ZodString;
48
259
  filing_date: import("zod").ZodString;
49
- report_date: import("zod").ZodOptional<import("zod").ZodString>;
50
- primary_document: import("zod").ZodString;
51
- description: import("zod").ZodOptional<import("zod").ZodString>;
260
+ event_date: import("zod").ZodOptional<import("zod").ZodString>;
261
+ security_class: import("zod").ZodOptional<import("zod").ZodString>;
262
+ cusips: import("zod").ZodArray<import("zod").ZodString>;
263
+ purpose_of_transaction: import("zod").ZodOptional<import("zod").ZodString>;
264
+ purpose_truncated: import("zod").ZodBoolean;
265
+ reporting_persons: import("zod").ZodArray<import("zod").ZodObject<{
266
+ name: import("zod").ZodString;
267
+ cik: import("zod").ZodOptional<import("zod").ZodString>;
268
+ citizenship: import("zod").ZodOptional<import("zod").ZodString>;
269
+ percent_of_class: import("zod").ZodOptional<import("zod").ZodNumber>;
270
+ aggregate_amount_owned: import("zod").ZodOptional<import("zod").ZodNumber>;
271
+ sole_voting_power: import("zod").ZodOptional<import("zod").ZodNumber>;
272
+ shared_voting_power: import("zod").ZodOptional<import("zod").ZodNumber>;
273
+ sole_dispositive_power: import("zod").ZodOptional<import("zod").ZodNumber>;
274
+ shared_dispositive_power: import("zod").ZodOptional<import("zod").ZodNumber>;
275
+ person_types: import("zod").ZodArray<import("zod").ZodString>;
276
+ excludes_certain_shares: import("zod").ZodOptional<import("zod").ZodBoolean>;
277
+ notes: import("zod").ZodOptional<import("zod").ZodString>;
278
+ }, import("zod/v4/core").$strip>>;
279
+ }, import("zod/v4/core").$strip>>;
280
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
281
+ name: import("zod").ZodString;
282
+ row_count: import("zod").ZodNumber;
283
+ expires_at: import("zod").ZodString;
284
+ truncated: import("zod").ZodBoolean;
285
+ }, import("zod/v4/core").$strip>>;
286
+ }, import("zod/v4/core").$strip>, readonly [{
287
+ readonly reason: "issuer_not_found";
288
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
289
+ readonly when: "The issuer input does not resolve to a known EDGAR company";
290
+ readonly recovery: "Use secedgar_company_search to find the issuer ticker or 10-digit CIK.";
291
+ }, {
292
+ readonly reason: "ambiguous_issuer";
293
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
294
+ readonly when: "The issuer name matches several EDGAR companies";
295
+ readonly recovery: "Retry with the ticker or the 10-digit CIK of the intended issuer from the matches list.";
296
+ }, {
297
+ readonly reason: "no_filings_found";
298
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
299
+ readonly when: "The issuer has no structured SCHEDULE 13D/13G filings matching the requested form kind";
300
+ readonly recovery: "Use secedgar_search_filings with forms [\"SC 13D\",\"SC 13G\"] to reach the pre-2024-12-18 text filings, then read them with secedgar_get_filing.";
301
+ }, {
302
+ readonly reason: "rate_limited";
303
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
304
+ readonly when: "SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs";
305
+ readonly recovery: "Wait the retryAfter seconds the error carries, then retry — SEC lifts the block only once requests stop for ten minutes.";
306
+ readonly retryable: true;
307
+ readonly thrownBy: "service";
308
+ }, {
309
+ readonly reason: "sec_unreachable";
310
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
311
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
312
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
313
+ readonly retryable: true;
314
+ readonly thrownBy: "service";
315
+ }], {
316
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
317
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
318
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
319
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
320
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
321
+ accession_number: import("zod").ZodString;
322
+ cik: import("zod").ZodOptional<import("zod").ZodString>;
323
+ content_limit: import("zod").ZodDefault<import("zod").ZodNumber>;
324
+ document: import("zod").ZodOptional<import("zod").ZodString>;
325
+ include_xbrl: import("zod").ZodDefault<import("zod").ZodBoolean>;
326
+ offset: import("zod").ZodDefault<import("zod").ZodNumber>;
327
+ section: import("zod").ZodOptional<import("zod").ZodString>;
328
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
329
+ accession_number: import("zod").ZodString;
330
+ form: import("zod").ZodOptional<import("zod").ZodString>;
331
+ filing_date: import("zod").ZodOptional<import("zod").ZodString>;
332
+ company_name: import("zod").ZodOptional<import("zod").ZodString>;
333
+ cik: import("zod").ZodString;
334
+ period_ending: import("zod").ZodOptional<import("zod").ZodString>;
335
+ primary_document: import("zod").ZodString;
336
+ requested_document: import("zod").ZodOptional<import("zod").ZodString>;
337
+ documents: import("zod").ZodObject<{
338
+ primary: import("zod").ZodArray<import("zod").ZodObject<{
339
+ name: import("zod").ZodString;
340
+ type: import("zod").ZodString;
341
+ description: import("zod").ZodOptional<import("zod").ZodString>;
342
+ size: import("zod").ZodOptional<import("zod").ZodNumber>;
343
+ binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
344
+ }, import("zod/v4/core").$strip>>;
345
+ exhibits: import("zod").ZodArray<import("zod").ZodObject<{
346
+ name: import("zod").ZodString;
347
+ type: import("zod").ZodString;
348
+ description: import("zod").ZodOptional<import("zod").ZodString>;
349
+ size: import("zod").ZodOptional<import("zod").ZodNumber>;
350
+ binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
351
+ }, import("zod/v4/core").$strip>>;
352
+ auxiliary: import("zod").ZodArray<import("zod").ZodObject<{
353
+ name: import("zod").ZodString;
354
+ type: import("zod").ZodString;
355
+ description: import("zod").ZodOptional<import("zod").ZodString>;
356
+ size: import("zod").ZodOptional<import("zod").ZodNumber>;
357
+ binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
358
+ }, import("zod/v4/core").$strip>>;
359
+ xbrl: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
360
+ name: import("zod").ZodString;
361
+ type: import("zod").ZodString;
362
+ description: import("zod").ZodOptional<import("zod").ZodString>;
363
+ size: import("zod").ZodOptional<import("zod").ZodNumber>;
364
+ binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
365
+ }, import("zod/v4/core").$strip>>>;
366
+ }, import("zod/v4/core").$strip>;
367
+ content: import("zod").ZodString;
368
+ content_truncated: import("zod").ZodBoolean;
369
+ content_total_length: import("zod").ZodNumber;
370
+ next_offset: import("zod").ZodOptional<import("zod").ZodNumber>;
371
+ outline: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
372
+ heading: import("zod").ZodString;
373
+ offset: import("zod").ZodNumber;
52
374
  }, import("zod/v4/core").$strip>>>;
53
- total_filings: import("zod").ZodOptional<import("zod").ZodNumber>;
54
- history_scanned_through: import("zod").ZodOptional<import("zod").ZodString>;
55
- dataset: import("zod").ZodOptional<import("zod").ZodObject<{
56
- name: import("zod").ZodString;
57
- row_count: import("zod").ZodNumber;
58
- expires_at: import("zod").ZodString;
59
- truncated: import("zod").ZodBoolean;
60
- }, import("zod/v4/core").$strip>>;
375
+ filing_url: import("zod").ZodString;
61
376
  }, import("zod/v4/core").$strip>, readonly [{
62
- readonly reason: "no_match";
377
+ readonly reason: "document_not_found";
63
378
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
64
- readonly when: "No company matches the query";
65
- readonly recovery: "SEC's ticker index reflects the filer's own submissions record, which can differ from the exchange-listed symbol. ETFs and mutual funds resolve only by ticker (e.g. \"VOO\"); operating companies also resolve by full legal name or 10-digit CIK.";
379
+ readonly when: "A specific document was requested but not present in the filing archive";
380
+ readonly recovery: "Pick a filename from the categorized document list in the error message.";
66
381
  }, {
67
- readonly reason: "multiple_matches";
382
+ readonly reason: "no_documents";
68
383
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
69
- readonly when: "Query is ambiguous and matches several companies";
70
- readonly recovery: "Specify a ticker symbol for an exact match instead of a name fragment.";
384
+ readonly when: "Filing index lists items but no fetchable primary document was found";
385
+ readonly recovery: "Set document to one of the filenames listed in the error message.";
386
+ }, {
387
+ readonly reason: "binary_document";
388
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
389
+ readonly when: "The requested document is a binary entry (scanned image, PDF, archive) with no text to return";
390
+ readonly recovery: "Pick a text document (.htm, .txt, .xml) from the list in the error message.";
391
+ }, {
392
+ readonly reason: "filing_not_found";
393
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
394
+ readonly when: "No filing matches the accession number under any candidate CIK";
395
+ readonly recovery: "Verify the accession number and pass the company CIK explicitly.";
396
+ }, {
397
+ readonly reason: "offset_out_of_range";
398
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
399
+ readonly when: "The provided offset is at or beyond the end of the document";
400
+ readonly recovery: "Use an offset less than the total document length shown in the error message.";
401
+ }, {
402
+ readonly reason: "section_not_found";
403
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
404
+ readonly when: "The section string matched no detected heading and no line of the document";
405
+ readonly recovery: "Pick a heading from the outline in the error message, pass a subheading exactly as the document prints it, or use offset paging instead.";
71
406
  }, {
72
407
  readonly reason: "rate_limited";
73
408
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
@@ -78,8 +413,8 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
78
413
  }, {
79
414
  readonly reason: "sec_unreachable";
80
415
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
81
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
82
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
416
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
417
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
83
418
  readonly retryable: true;
84
419
  readonly thrownBy: "service";
85
420
  }], {
@@ -88,16 +423,6 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
88
423
  readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
89
424
  readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
90
425
  }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
91
- name: import("zod").ZodString;
92
- }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
93
- name: import("zod").ZodString;
94
- dropped: import("zod").ZodBoolean;
95
- }, import("zod/v4/core").$strip>, readonly [{
96
- readonly reason: "canvas_unavailable";
97
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
98
- readonly when: "The DataCanvas service is not configured for this deployment";
99
- readonly recovery: "Set CANVAS_PROVIDER_TYPE=duckdb in the server environment to enable dataframes.";
100
- }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
101
426
  fund: import("zod").ZodString;
102
427
  series_id: import("zod").ZodOptional<import("zod").ZodString>;
103
428
  report_date: import("zod").ZodOptional<import("zod").ZodString>;
@@ -175,8 +500,8 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
175
500
  }, {
176
501
  readonly reason: "sec_unreachable";
177
502
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
178
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
179
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
503
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
504
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
180
505
  readonly retryable: true;
181
506
  readonly thrownBy: "service";
182
507
  }], {
@@ -243,8 +568,71 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
243
568
  }, {
244
569
  readonly reason: "sec_unreachable";
245
570
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
246
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
247
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
571
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
572
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
573
+ readonly retryable: true;
574
+ readonly thrownBy: "service";
575
+ }], {
576
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
577
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
578
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
579
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
580
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
581
+ query: import("zod").ZodString;
582
+ include_filings: import("zod").ZodDefault<import("zod").ZodBoolean>;
583
+ forms: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
584
+ filing_limit: import("zod").ZodDefault<import("zod").ZodNumber>;
585
+ filed_after: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
586
+ filed_before: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
587
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
588
+ cik: import("zod").ZodString;
589
+ name: import("zod").ZodString;
590
+ tickers: import("zod").ZodArray<import("zod").ZodString>;
591
+ exchanges: import("zod").ZodArray<import("zod").ZodString>;
592
+ sic: import("zod").ZodString;
593
+ sic_description: import("zod").ZodString;
594
+ state_of_incorporation: import("zod").ZodOptional<import("zod").ZodString>;
595
+ fiscal_year_end: import("zod").ZodOptional<import("zod").ZodString>;
596
+ series_id: import("zod").ZodOptional<import("zod").ZodString>;
597
+ class_id: import("zod").ZodOptional<import("zod").ZodString>;
598
+ filings: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
599
+ accession_number: import("zod").ZodString;
600
+ form: import("zod").ZodString;
601
+ filing_date: import("zod").ZodString;
602
+ report_date: import("zod").ZodOptional<import("zod").ZodString>;
603
+ primary_document: import("zod").ZodString;
604
+ description: import("zod").ZodOptional<import("zod").ZodString>;
605
+ }, import("zod/v4/core").$strip>>>;
606
+ total_filings: import("zod").ZodOptional<import("zod").ZodNumber>;
607
+ history_scanned_through: import("zod").ZodOptional<import("zod").ZodString>;
608
+ dataset: import("zod").ZodOptional<import("zod").ZodObject<{
609
+ name: import("zod").ZodString;
610
+ row_count: import("zod").ZodNumber;
611
+ expires_at: import("zod").ZodString;
612
+ truncated: import("zod").ZodBoolean;
613
+ }, import("zod/v4/core").$strip>>;
614
+ }, import("zod/v4/core").$strip>, readonly [{
615
+ readonly reason: "no_match";
616
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
617
+ readonly when: "No company matches the query";
618
+ readonly recovery: "SEC's ticker index reflects the filer's own submissions record, which can differ from the exchange-listed symbol. ETFs and mutual funds resolve only by ticker (e.g. \"VOO\"); operating companies also resolve by full legal name or 10-digit CIK.";
619
+ }, {
620
+ readonly reason: "multiple_matches";
621
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
622
+ readonly when: "Query is ambiguous and matches several companies";
623
+ readonly recovery: "Specify a ticker symbol for an exact match instead of a name fragment.";
624
+ }, {
625
+ readonly reason: "rate_limited";
626
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
627
+ readonly when: "SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs";
628
+ readonly recovery: "Wait the retryAfter seconds the error carries, then retry — SEC lifts the block only once requests stop for ten minutes.";
629
+ readonly retryable: true;
630
+ readonly thrownBy: "service";
631
+ }, {
632
+ readonly reason: "sec_unreachable";
633
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
634
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
635
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
248
636
  readonly retryable: true;
249
637
  readonly thrownBy: "service";
250
638
  }], {
@@ -303,11 +691,6 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
303
691
  truncated: import("zod").ZodBoolean;
304
692
  }, import("zod/v4/core").$strip>>;
305
693
  }, import("zod/v4/core").$strip>, readonly [{
306
- readonly reason: "invalid_date_range";
307
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
308
- readonly when: "Only one of filed_after or filed_before was provided";
309
- readonly recovery: "Provide both filed_after and filed_before, or omit both to search all dates.";
310
- }, {
311
694
  readonly reason: "unresolved_ticker";
312
695
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
313
696
  readonly when: "A ticker: targeting token in the query does not resolve to a known company";
@@ -328,119 +711,13 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
328
711
  }, {
329
712
  readonly reason: "missing_criteria";
330
713
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
331
- readonly when: "Neither a full-text query nor a forms filter was provided (a date range cannot stand alone)";
332
- readonly recovery: "Provide search terms, or browse by form type (forms: [\"S-1\"]) or entity (ticker:AAPL / cik:320193 in the query) — optionally narrowed by date.";
333
- }, {
334
- readonly reason: "pre2001_full_text_unscoped";
335
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
336
- readonly when: "A date range reaching before 2001-01-01 carries free-text terms with no entity scope — no pre-2001 full-text index exists, and nothing bounds a local scan";
337
- readonly recovery: "Add ticker: or cik: entity scope to the query, drop the text terms to browse by form and date, or start the range at 2001-01-01.";
338
- }, {
339
- readonly reason: "rate_limited";
340
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
341
- readonly when: "SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs";
342
- readonly recovery: "Wait the retryAfter seconds the error carries, then retry — SEC lifts the block only once requests stop for ten minutes.";
343
- readonly retryable: true;
344
- readonly thrownBy: "service";
345
- }, {
346
- readonly reason: "sec_unreachable";
347
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
348
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
349
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
350
- readonly retryable: true;
351
- readonly thrownBy: "service";
352
- }], {
353
- readonly effectiveQuery: import("zod").ZodString;
354
- readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
355
- readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
356
- readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
357
- readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
358
- }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
359
- accession_number: import("zod").ZodString;
360
- cik: import("zod").ZodOptional<import("zod").ZodString>;
361
- content_limit: import("zod").ZodDefault<import("zod").ZodNumber>;
362
- document: import("zod").ZodOptional<import("zod").ZodString>;
363
- include_xbrl: import("zod").ZodDefault<import("zod").ZodBoolean>;
364
- offset: import("zod").ZodDefault<import("zod").ZodNumber>;
365
- section: import("zod").ZodOptional<import("zod").ZodString>;
366
- }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
367
- accession_number: import("zod").ZodString;
368
- form: import("zod").ZodOptional<import("zod").ZodString>;
369
- filing_date: import("zod").ZodOptional<import("zod").ZodString>;
370
- company_name: import("zod").ZodOptional<import("zod").ZodString>;
371
- cik: import("zod").ZodString;
372
- period_ending: import("zod").ZodOptional<import("zod").ZodString>;
373
- primary_document: import("zod").ZodString;
374
- requested_document: import("zod").ZodOptional<import("zod").ZodString>;
375
- documents: import("zod").ZodObject<{
376
- primary: import("zod").ZodArray<import("zod").ZodObject<{
377
- name: import("zod").ZodString;
378
- type: import("zod").ZodString;
379
- description: import("zod").ZodOptional<import("zod").ZodString>;
380
- size: import("zod").ZodOptional<import("zod").ZodNumber>;
381
- binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
382
- }, import("zod/v4/core").$strip>>;
383
- exhibits: import("zod").ZodArray<import("zod").ZodObject<{
384
- name: import("zod").ZodString;
385
- type: import("zod").ZodString;
386
- description: import("zod").ZodOptional<import("zod").ZodString>;
387
- size: import("zod").ZodOptional<import("zod").ZodNumber>;
388
- binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
389
- }, import("zod/v4/core").$strip>>;
390
- auxiliary: import("zod").ZodArray<import("zod").ZodObject<{
391
- name: import("zod").ZodString;
392
- type: import("zod").ZodString;
393
- description: import("zod").ZodOptional<import("zod").ZodString>;
394
- size: import("zod").ZodOptional<import("zod").ZodNumber>;
395
- binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
396
- }, import("zod/v4/core").$strip>>;
397
- xbrl: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
398
- name: import("zod").ZodString;
399
- type: import("zod").ZodString;
400
- description: import("zod").ZodOptional<import("zod").ZodString>;
401
- size: import("zod").ZodOptional<import("zod").ZodNumber>;
402
- binary: import("zod").ZodOptional<import("zod").ZodBoolean>;
403
- }, import("zod/v4/core").$strip>>>;
404
- }, import("zod/v4/core").$strip>;
405
- content: import("zod").ZodString;
406
- content_truncated: import("zod").ZodBoolean;
407
- content_total_length: import("zod").ZodNumber;
408
- next_offset: import("zod").ZodOptional<import("zod").ZodNumber>;
409
- outline: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
410
- heading: import("zod").ZodString;
411
- offset: import("zod").ZodNumber;
412
- }, import("zod/v4/core").$strip>>>;
413
- filing_url: import("zod").ZodString;
414
- }, import("zod/v4/core").$strip>, readonly [{
415
- readonly reason: "document_not_found";
416
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
417
- readonly when: "A specific document was requested but not present in the filing archive";
418
- readonly recovery: "Pick a filename from the categorized document list in the error message.";
419
- }, {
420
- readonly reason: "no_documents";
421
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
422
- readonly when: "Filing index lists items but no fetchable primary document was found";
423
- readonly recovery: "Set document to one of the filenames listed in the error message.";
424
- }, {
425
- readonly reason: "binary_document";
426
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
427
- readonly when: "The requested document is a binary entry (scanned image, PDF, archive) with no text to return";
428
- readonly recovery: "Pick a text document (.htm, .txt, .xml) from the list in the error message.";
429
- }, {
430
- readonly reason: "filing_not_found";
431
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
432
- readonly when: "No filing matches the accession number under any candidate CIK";
433
- readonly recovery: "Verify the accession number and pass the company CIK explicitly.";
434
- }, {
435
- readonly reason: "offset_out_of_range";
436
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
437
- readonly when: "The provided offset is at or beyond the end of the document";
438
- readonly recovery: "Use an offset less than the total document length shown in the error message.";
439
- }, {
440
- readonly reason: "section_not_found";
441
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
442
- readonly when: "The section string matched no detected heading and no line of the document";
443
- readonly recovery: "Pick a heading from the outline in the error message, pass a subheading exactly as the document prints it, or use offset paging instead.";
714
+ readonly when: "Neither a full-text query nor a forms filter was provided (a date range cannot stand alone)";
715
+ readonly recovery: "Provide search terms, or browse by form type (forms: [\"S-1\"]) or entity (ticker:AAPL / cik:320193 in the query) — optionally narrowed by date.";
716
+ }, {
717
+ readonly reason: "pre2001_full_text_unscoped";
718
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
719
+ readonly when: "A date range reaching before 2001-01-01 carries free-text terms with no entity scope — no pre-2001 full-text index exists, and nothing bounds a local scan";
720
+ readonly recovery: "Add ticker: or cik: entity scope to the query, drop the text terms and browse by form type (forms: [\"10-K\"]) and date, or, for a range that reaches 2001, start the range at 2001-01-01.";
444
721
  }, {
445
722
  readonly reason: "rate_limited";
446
723
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
@@ -451,11 +728,12 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
451
728
  }, {
452
729
  readonly reason: "sec_unreachable";
453
730
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
454
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
455
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
731
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
732
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
456
733
  readonly retryable: true;
457
734
  readonly thrownBy: "service";
458
735
  }], {
736
+ readonly effectiveQuery: import("zod").ZodString;
459
737
  readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
460
738
  readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
461
739
  readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -546,8 +824,8 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
546
824
  }, {
547
825
  readonly reason: "sec_unreachable";
548
826
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
549
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
550
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
827
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
828
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
551
829
  readonly retryable: true;
552
830
  readonly thrownBy: "service";
553
831
  }], {
@@ -637,8 +915,8 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
637
915
  }, {
638
916
  readonly reason: "sec_unreachable";
639
917
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
640
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
641
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
918
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
919
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
642
920
  readonly retryable: true;
643
921
  readonly thrownBy: "service";
644
922
  }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
@@ -657,262 +935,31 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
657
935
  issuer_ticker: import("zod").ZodOptional<import("zod").ZodString>;
658
936
  transactions: import("zod").ZodArray<import("zod").ZodObject<{
659
937
  filing_date: import("zod").ZodString;
660
- period_of_report: import("zod").ZodOptional<import("zod").ZodString>;
661
- accession_number: import("zod").ZodString;
662
- reporting_person: import("zod").ZodString;
663
- relationship: import("zod").ZodString;
664
- security_title: import("zod").ZodString;
665
- transaction_date: import("zod").ZodOptional<import("zod").ZodString>;
666
- transaction_code: import("zod").ZodString;
667
- transaction_type: import("zod").ZodString;
668
- is_derivative: import("zod").ZodBoolean;
669
- shares_traded: import("zod").ZodOptional<import("zod").ZodNumber>;
670
- direction: import("zod").ZodOptional<import("zod").ZodEnum<{
671
- acquire: "acquire";
672
- dispose: "dispose";
673
- }>>;
674
- price_per_share: import("zod").ZodOptional<import("zod").ZodNumber>;
675
- shares_owned_after: import("zod").ZodOptional<import("zod").ZodNumber>;
676
- ownership_type: import("zod").ZodOptional<import("zod").ZodEnum<{
677
- direct: "direct";
678
- indirect: "indirect";
679
- }>>;
680
- ownership_nature: import("zod").ZodOptional<import("zod").ZodString>;
681
- }, import("zod/v4/core").$strip>>;
682
- filings_scanned: import("zod").ZodNumber;
683
- filings_other_issuer: import("zod").ZodNumber;
684
- history_scanned_through: import("zod").ZodOptional<import("zod").ZodString>;
685
- dataset: import("zod").ZodOptional<import("zod").ZodObject<{
686
- name: import("zod").ZodString;
687
- row_count: import("zod").ZodNumber;
688
- expires_at: import("zod").ZodString;
689
- truncated: import("zod").ZodBoolean;
690
- }, import("zod/v4/core").$strip>>;
691
- }, import("zod/v4/core").$strip>, readonly [{
692
- readonly reason: "company_not_found";
693
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
694
- readonly when: "The company input does not resolve to a known company";
695
- readonly recovery: "Use secedgar_company_search to find the correct ticker or CIK.";
696
- }, {
697
- readonly reason: "no_filings_found";
698
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
699
- readonly when: "A call without a date window finds no Form 4 filings in the recent submissions window";
700
- readonly recovery: "Pass filed_after / filed_before to read an older period, or use secedgar_search_filings with forms=[\"4\"] to find the filings.";
701
- }, {
702
- readonly reason: "rate_limited";
703
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
704
- readonly when: "SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs";
705
- readonly recovery: "Wait the retryAfter seconds the error carries, then retry — SEC lifts the block only once requests stop for ten minutes.";
706
- readonly retryable: true;
707
- readonly thrownBy: "service";
708
- }, {
709
- readonly reason: "sec_unreachable";
710
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
711
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
712
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
713
- readonly retryable: true;
714
- readonly thrownBy: "service";
715
- }], {
716
- readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
717
- readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
718
- readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
719
- readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
720
- }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
721
- company: import("zod").ZodString;
722
- quarter: import("zod").ZodOptional<import("zod").ZodString>;
723
- limit: import("zod").ZodDefault<import("zod").ZodNumber>;
724
- offset: import("zod").ZodDefault<import("zod").ZodNumber>;
725
- consolidate: import("zod").ZodDefault<import("zod").ZodBoolean>;
726
- }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
727
- filer_name: import("zod").ZodString;
728
- filer_cik: import("zod").ZodString;
729
- reporting_period: import("zod").ZodOptional<import("zod").ZodString>;
730
- filing_date: import("zod").ZodString;
731
- accession_number: import("zod").ZodString;
732
- total_holdings_in_filing: import("zod").ZodNumber;
733
- total_positions: import("zod").ZodOptional<import("zod").ZodNumber>;
734
- offset: import("zod").ZodNumber;
735
- next_offset: import("zod").ZodOptional<import("zod").ZodNumber>;
736
- holdings: import("zod").ZodArray<import("zod").ZodObject<{
737
- issuer_name: import("zod").ZodString;
738
- title_of_class: import("zod").ZodOptional<import("zod").ZodString>;
739
- cusip: import("zod").ZodOptional<import("zod").ZodString>;
740
- market_value_usd: import("zod").ZodOptional<import("zod").ZodNumber>;
741
- shares_or_principal_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
742
- shares_or_principal_type: import("zod").ZodOptional<import("zod").ZodEnum<{
743
- PRN: "PRN";
744
- SH: "SH";
745
- }>>;
746
- put_call: import("zod").ZodOptional<import("zod").ZodEnum<{
747
- Call: "Call";
748
- Put: "Put";
749
- }>>;
750
- investment_discretion: import("zod").ZodOptional<import("zod").ZodEnum<{
751
- DFND: "DFND";
752
- OTR: "OTR";
753
- SOLE: "SOLE";
754
- }>>;
755
- }, import("zod/v4/core").$strip>>;
756
- dataset: import("zod").ZodOptional<import("zod").ZodObject<{
757
- name: import("zod").ZodString;
758
- row_count: import("zod").ZodNumber;
759
- expires_at: import("zod").ZodString;
760
- }, import("zod/v4/core").$strip>>;
761
- }, import("zod/v4/core").$strip>, readonly [{
762
- readonly reason: "company_not_found";
763
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
764
- readonly when: "The company input does not resolve to a known company or institution";
765
- readonly recovery: "Use secedgar_company_search to find the correct CIK or full entity name.";
766
- }, {
767
- readonly reason: "ambiguous_entity";
768
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
769
- readonly when: "The name resolves to multiple EDGAR entities (e.g. several filers sharing a legal name)";
770
- readonly recovery: "Retry with the exact 10-digit CIK of the intended filer from the matches list.";
771
- }, {
772
- readonly reason: "no_filings_found";
773
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
774
- readonly when: "No 13F-HR matches — the entity files none, none exists for the requested quarter in the recent submissions window or the archive pages searched, or the manager filed a 13F-NT notice instead (for the requested quarter, or as its only recent 13F filing when no quarter is given)";
775
- readonly recovery: "Use secedgar_search_filings with forms=[\"13F-HR\"] for broader search, or check that the entity is an institutional investment manager.";
776
- }, {
777
- readonly reason: "no_info_table";
778
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
779
- readonly when: "The 13F-HR filing was found but the information table XML document could not be located";
780
- readonly recovery: "Use secedgar_get_filing with the accession number to inspect the filing documents directly.";
781
- }, {
782
- readonly reason: "rate_limited";
783
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
784
- readonly when: "SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs";
785
- readonly recovery: "Wait the retryAfter seconds the error carries, then retry — SEC lifts the block only once requests stop for ten minutes.";
786
- readonly retryable: true;
787
- readonly thrownBy: "service";
788
- }, {
789
- readonly reason: "sec_unreachable";
790
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
791
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
792
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
793
- readonly retryable: true;
794
- readonly thrownBy: "service";
795
- }], {
796
- readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
797
- readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
798
- readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
799
- readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
800
- }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
801
- issuer: import("zod").ZodString;
802
- cusip: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
803
- quarter: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
804
- limit: import("zod").ZodDefault<import("zod").ZodNumber>;
805
- }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
806
- issuer: import("zod").ZodString;
807
- resolved_issuer_name: import("zod").ZodOptional<import("zod").ZodString>;
808
- resolved_issuer_cik: import("zod").ZodOptional<import("zod").ZodString>;
809
- search_mode: import("zod").ZodEnum<{
810
- cusip: "cusip";
811
- name: "name";
812
- }>;
813
- search_key: import("zod").ZodString;
814
- quarter: import("zod").ZodString;
815
- filed_from: import("zod").ZodString;
816
- filed_to: import("zod").ZodString;
817
- total_filings: import("zod").ZodNumber;
818
- total_is_exact: import("zod").ZodBoolean;
819
- fetched: import("zod").ZodNumber;
820
- holders_in_quarter: import("zod").ZodNumber;
821
- holders: import("zod").ZodArray<import("zod").ZodObject<{
822
- filer_name: import("zod").ZodString;
823
- filer_cik: import("zod").ZodString;
824
- accession_number: import("zod").ZodString;
825
- filing_date: import("zod").ZodString;
826
- form: import("zod").ZodOptional<import("zod").ZodString>;
827
- }, import("zod/v4/core").$strip>>;
828
- dataset: import("zod").ZodOptional<import("zod").ZodObject<{
829
- name: import("zod").ZodString;
830
- row_count: import("zod").ZodNumber;
831
- expires_at: import("zod").ZodString;
832
- truncated: import("zod").ZodBoolean;
833
- }, import("zod/v4/core").$strip>>;
834
- }, import("zod/v4/core").$strip>, readonly [{
835
- readonly reason: "issuer_not_found";
836
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
837
- readonly when: "No cusip was given and the issuer does not resolve to a known EDGAR company";
838
- readonly recovery: "Confirm the issuer with secedgar_company_search, or pass the cusip parameter to search the information tables directly.";
839
- }, {
840
- readonly reason: "ambiguous_issuer";
841
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
842
- readonly when: "The issuer name matches several EDGAR companies and no cusip was given";
843
- readonly recovery: "Retry with the ticker or the 10-digit CIK of the intended issuer from the matches list.";
844
- }, {
845
- readonly reason: "rate_limited";
846
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
847
- readonly when: "SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs";
848
- readonly recovery: "Wait the retryAfter seconds the error carries, then retry — SEC lifts the block only once requests stop for ten minutes.";
849
- readonly retryable: true;
850
- readonly thrownBy: "service";
851
- }, {
852
- readonly reason: "sec_unreachable";
853
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
854
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
855
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
856
- readonly retryable: true;
857
- readonly thrownBy: "service";
858
- }], {
859
- readonly ordering: import("zod").ZodString;
860
- readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
861
- readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
862
- readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
863
- readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
864
- }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
865
- issuer: import("zod").ZodString;
866
- form_kind: import("zod").ZodDefault<import("zod").ZodEnum<{
867
- "13D": "13D";
868
- "13G": "13G";
869
- all: "all";
870
- }>>;
871
- include_amendments: import("zod").ZodDefault<import("zod").ZodBoolean>;
872
- limit: import("zod").ZodDefault<import("zod").ZodNumber>;
873
- }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
874
- issuer: import("zod").ZodString;
875
- issuer_cik: import("zod").ZodString;
876
- issuer_name: import("zod").ZodString;
877
- form_kind: import("zod").ZodEnum<{
878
- "13D": "13D";
879
- "13G": "13G";
880
- all: "all";
881
- }>;
882
- total_structured_filings: import("zod").ZodNumber;
883
- filings_parsed: import("zod").ZodNumber;
884
- structured_coverage_from: import("zod").ZodString;
885
- legacy_filings_before_coverage: import("zod").ZodNumber;
886
- filings: import("zod").ZodArray<import("zod").ZodObject<{
887
- form: import("zod").ZodString;
888
- schedule: import("zod").ZodEnum<{
889
- "13D": "13D";
890
- "13G": "13G";
891
- }>;
892
- is_amendment: import("zod").ZodBoolean;
893
- amendment_number: import("zod").ZodOptional<import("zod").ZodString>;
894
- accession_number: import("zod").ZodString;
895
- filing_date: import("zod").ZodString;
896
- event_date: import("zod").ZodOptional<import("zod").ZodString>;
897
- security_class: import("zod").ZodOptional<import("zod").ZodString>;
898
- cusips: import("zod").ZodArray<import("zod").ZodString>;
899
- purpose_of_transaction: import("zod").ZodOptional<import("zod").ZodString>;
900
- purpose_truncated: import("zod").ZodBoolean;
901
- reporting_persons: import("zod").ZodArray<import("zod").ZodObject<{
902
- name: import("zod").ZodString;
903
- cik: import("zod").ZodOptional<import("zod").ZodString>;
904
- citizenship: import("zod").ZodOptional<import("zod").ZodString>;
905
- percent_of_class: import("zod").ZodOptional<import("zod").ZodNumber>;
906
- aggregate_amount_owned: import("zod").ZodOptional<import("zod").ZodNumber>;
907
- sole_voting_power: import("zod").ZodOptional<import("zod").ZodNumber>;
908
- shared_voting_power: import("zod").ZodOptional<import("zod").ZodNumber>;
909
- sole_dispositive_power: import("zod").ZodOptional<import("zod").ZodNumber>;
910
- shared_dispositive_power: import("zod").ZodOptional<import("zod").ZodNumber>;
911
- person_types: import("zod").ZodArray<import("zod").ZodString>;
912
- excludes_certain_shares: import("zod").ZodOptional<import("zod").ZodBoolean>;
913
- notes: import("zod").ZodOptional<import("zod").ZodString>;
914
- }, import("zod/v4/core").$strip>>;
938
+ period_of_report: import("zod").ZodOptional<import("zod").ZodString>;
939
+ accession_number: import("zod").ZodString;
940
+ reporting_person: import("zod").ZodString;
941
+ relationship: import("zod").ZodString;
942
+ security_title: import("zod").ZodString;
943
+ transaction_date: import("zod").ZodOptional<import("zod").ZodString>;
944
+ transaction_code: import("zod").ZodString;
945
+ transaction_type: import("zod").ZodString;
946
+ is_derivative: import("zod").ZodBoolean;
947
+ shares_traded: import("zod").ZodOptional<import("zod").ZodNumber>;
948
+ direction: import("zod").ZodOptional<import("zod").ZodEnum<{
949
+ acquire: "acquire";
950
+ dispose: "dispose";
951
+ }>>;
952
+ price_per_share: import("zod").ZodOptional<import("zod").ZodNumber>;
953
+ shares_owned_after: import("zod").ZodOptional<import("zod").ZodNumber>;
954
+ ownership_type: import("zod").ZodOptional<import("zod").ZodEnum<{
955
+ direct: "direct";
956
+ indirect: "indirect";
957
+ }>>;
958
+ ownership_nature: import("zod").ZodOptional<import("zod").ZodString>;
915
959
  }, import("zod/v4/core").$strip>>;
960
+ filings_scanned: import("zod").ZodNumber;
961
+ filings_other_issuer: import("zod").ZodNumber;
962
+ history_scanned_through: import("zod").ZodOptional<import("zod").ZodString>;
916
963
  dataset: import("zod").ZodOptional<import("zod").ZodObject<{
917
964
  name: import("zod").ZodString;
918
965
  row_count: import("zod").ZodNumber;
@@ -920,20 +967,15 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
920
967
  truncated: import("zod").ZodBoolean;
921
968
  }, import("zod/v4/core").$strip>>;
922
969
  }, import("zod/v4/core").$strip>, readonly [{
923
- readonly reason: "issuer_not_found";
970
+ readonly reason: "company_not_found";
924
971
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
925
- readonly when: "The issuer input does not resolve to a known EDGAR company";
926
- readonly recovery: "Use secedgar_company_search to find the issuer ticker or 10-digit CIK.";
927
- }, {
928
- readonly reason: "ambiguous_issuer";
929
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
930
- readonly when: "The issuer name matches several EDGAR companies";
931
- readonly recovery: "Retry with the ticker or the 10-digit CIK of the intended issuer from the matches list.";
972
+ readonly when: "The company input does not resolve to a known company";
973
+ readonly recovery: "Use secedgar_company_search to find the correct ticker or CIK.";
932
974
  }, {
933
975
  readonly reason: "no_filings_found";
934
976
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
935
- readonly when: "The issuer has no structured SCHEDULE 13D/13G filings matching the requested form kind";
936
- readonly recovery: "Use secedgar_search_filings with forms [\"SC 13D\",\"SC 13G\"] to reach the pre-2024-12-18 text filings, then read them with secedgar_get_filing.";
977
+ readonly when: "A call without a date window finds no Form 4 filings in the recent submissions window";
978
+ readonly recovery: "Pass filed_after / filed_before to read an older period, or use secedgar_search_filings with forms=[\"4\"] to find the filings.";
937
979
  }, {
938
980
  readonly reason: "rate_limited";
939
981
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
@@ -944,8 +986,8 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
944
986
  }, {
945
987
  readonly reason: "sec_unreachable";
946
988
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
947
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
948
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
989
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
990
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
949
991
  readonly retryable: true;
950
992
  readonly thrownBy: "service";
951
993
  }], {
@@ -954,75 +996,85 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
954
996
  readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
955
997
  readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
956
998
  }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
957
- concept: import("zod").ZodString;
958
- taxonomy: import("zod").ZodDefault<import("zod").ZodEnum<{
959
- dei: "dei";
960
- "us-gaap": "us-gaap";
961
- }>>;
962
- period: import("zod").ZodString;
963
- unit: import("zod").ZodDefault<import("zod").ZodEnum<{
964
- USD: "USD";
965
- "USD-per-shares": "USD-per-shares";
966
- "USD/shares": "USD/shares";
967
- pure: "pure";
968
- shares: "shares";
969
- }>>;
999
+ company: import("zod").ZodString;
1000
+ quarter: import("zod").ZodOptional<import("zod").ZodString>;
970
1001
  limit: import("zod").ZodDefault<import("zod").ZodNumber>;
971
1002
  offset: import("zod").ZodDefault<import("zod").ZodNumber>;
972
- sort: import("zod").ZodDefault<import("zod").ZodEnum<{
973
- asc: "asc";
974
- desc: "desc";
975
- }>>;
1003
+ consolidate: import("zod").ZodDefault<import("zod").ZodBoolean>;
976
1004
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
977
- concept: import("zod").ZodString;
978
- taxonomy: import("zod").ZodString;
979
- period: import("zod").ZodString;
980
- unit: import("zod").ZodString;
981
- label: import("zod").ZodString;
982
- total_companies: import("zod").ZodNumber;
1005
+ filer_name: import("zod").ZodString;
1006
+ filer_cik: import("zod").ZodString;
1007
+ reporting_period: import("zod").ZodOptional<import("zod").ZodString>;
1008
+ filing_date: import("zod").ZodString;
1009
+ accession_number: import("zod").ZodString;
1010
+ amendments: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
1011
+ accession_number: import("zod").ZodString;
1012
+ filing_date: import("zod").ZodString;
1013
+ amendment_type: import("zod").ZodEnum<{
1014
+ "NEW HOLDINGS": "NEW HOLDINGS";
1015
+ RESTATEMENT: "RESTATEMENT";
1016
+ }>;
1017
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1018
+ accession_number: import("zod").ZodString;
1019
+ filing_date: import("zod").ZodString;
1020
+ amendment_type: import("zod").ZodLiteral<"UNAVAILABLE">;
1021
+ unavailable_reason: import("zod").ZodEnum<{
1022
+ lookup_failed: "lookup_failed";
1023
+ lookup_stopped: "lookup_stopped";
1024
+ missing_header: "missing_header";
1025
+ unreadable_header: "unreadable_header";
1026
+ }>;
1027
+ }, import("zod/v4/core").$strip>], "amendment_type">>>;
1028
+ amendment_search_complete: import("zod").ZodOptional<import("zod").ZodBoolean>;
1029
+ total_holdings_in_filing: import("zod").ZodNumber;
1030
+ total_positions: import("zod").ZodOptional<import("zod").ZodNumber>;
983
1031
  offset: import("zod").ZodNumber;
984
1032
  next_offset: import("zod").ZodOptional<import("zod").ZodNumber>;
985
- data: import("zod").ZodArray<import("zod").ZodObject<{
986
- rank: import("zod").ZodNumber;
987
- company_name: import("zod").ZodString;
988
- cik: import("zod").ZodString;
989
- ticker: import("zod").ZodOptional<import("zod").ZodString>;
990
- value: import("zod").ZodNumber;
991
- location: import("zod").ZodOptional<import("zod").ZodString>;
992
- period_end: import("zod").ZodString;
993
- accession_number: import("zod").ZodString;
1033
+ holdings: import("zod").ZodArray<import("zod").ZodObject<{
1034
+ issuer_name: import("zod").ZodString;
1035
+ title_of_class: import("zod").ZodOptional<import("zod").ZodString>;
1036
+ cusip: import("zod").ZodOptional<import("zod").ZodString>;
1037
+ market_value_usd: import("zod").ZodOptional<import("zod").ZodNumber>;
1038
+ shares_or_principal_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
1039
+ shares_or_principal_type: import("zod").ZodOptional<import("zod").ZodEnum<{
1040
+ PRN: "PRN";
1041
+ SH: "SH";
1042
+ }>>;
1043
+ put_call: import("zod").ZodOptional<import("zod").ZodEnum<{
1044
+ Call: "Call";
1045
+ Put: "Put";
1046
+ }>>;
1047
+ investment_discretion: import("zod").ZodOptional<import("zod").ZodEnum<{
1048
+ DFND: "DFND";
1049
+ OTR: "OTR";
1050
+ SOLE: "SOLE";
1051
+ }>>;
994
1052
  }, import("zod/v4/core").$strip>>;
995
1053
  dataset: import("zod").ZodOptional<import("zod").ZodObject<{
996
1054
  name: import("zod").ZodString;
997
1055
  row_count: import("zod").ZodNumber;
998
1056
  expires_at: import("zod").ZodString;
999
1057
  }, import("zod/v4/core").$strip>>;
1000
- unqueried_tags: import("zod").ZodArray<import("zod").ZodString>;
1001
- related_tags: import("zod").ZodArray<import("zod").ZodObject<{
1002
- tag: import("zod").ZodString;
1003
- note: import("zod").ZodString;
1004
- }, import("zod/v4/core").$strip>>;
1005
- value_distribution: import("zod").ZodObject<{
1006
- median: import("zod").ZodNumber;
1007
- p95: import("zod").ZodNumber;
1008
- max: import("zod").ZodNumber;
1009
- max_to_p95_ratio: import("zod").ZodNumber;
1010
- }, import("zod/v4/core").$strip>;
1011
- period_end_range: import("zod").ZodObject<{
1012
- min: import("zod").ZodString;
1013
- max: import("zod").ZodString;
1014
- }, import("zod/v4/core").$strip>;
1015
- caveats: import("zod").ZodArray<import("zod").ZodString>;
1016
1058
  }, import("zod/v4/core").$strip>, readonly [{
1017
- readonly reason: "unknown_concept";
1059
+ readonly reason: "company_not_found";
1018
1060
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
1019
- readonly when: "The concept input is neither a supported friendly name nor shaped like an XBRL tag, so no request is sent";
1020
- readonly recovery: "Use a friendly name from secedgar_search_concepts or a valid raw XBRL tag.";
1061
+ readonly when: "The company input does not resolve to a known company or institution";
1062
+ readonly recovery: "Use secedgar_company_search to find the correct CIK or full entity name.";
1021
1063
  }, {
1022
- readonly reason: "no_data";
1064
+ readonly reason: "ambiguous_entity";
1065
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
1066
+ readonly when: "The name resolves to multiple EDGAR entities (e.g. several filers sharing a legal name)";
1067
+ readonly recovery: "Retry with the exact 10-digit CIK of the intended filer from the matches list.";
1068
+ }, {
1069
+ readonly reason: "no_filings_found";
1023
1070
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
1024
- readonly when: "Concept resolves but no companies report this metric for the requested period and unit";
1025
- readonly recovery: "Check duration vs instant period, unit, and that the period exists post-CY2009.";
1071
+ readonly when: "No 13F-HR matches — the entity files none, none exists for the requested quarter in the recent submissions window or the archive pages searched, or the manager filed a 13F-NT notice instead (for the requested quarter, or as its only recent 13F filing when no quarter is given)";
1072
+ readonly recovery: "Use secedgar_search_filings with forms=[\"13F-HR\"] for broader search, or check that the entity is an institutional investment manager.";
1073
+ }, {
1074
+ readonly reason: "no_info_table";
1075
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
1076
+ readonly when: "The 13F-HR filing was found but the information table XML document could not be located";
1077
+ readonly recovery: "Use secedgar_get_filing with the accession number to inspect the filing documents directly.";
1026
1078
  }, {
1027
1079
  readonly reason: "rate_limited";
1028
1080
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
@@ -1033,8 +1085,8 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
1033
1085
  }, {
1034
1086
  readonly reason: "sec_unreachable";
1035
1087
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
1036
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
1037
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
1088
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
1089
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
1038
1090
  readonly retryable: true;
1039
1091
  readonly thrownBy: "service";
1040
1092
  }], {
@@ -1043,87 +1095,49 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
1043
1095
  readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
1044
1096
  readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
1045
1097
  }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
1046
- companies: import("zod").ZodArray<import("zod").ZodString>;
1047
- concepts: import("zod").ZodArray<import("zod").ZodString>;
1048
- taxonomy: import("zod").ZodDefault<import("zod").ZodEnum<{
1049
- "ifrs-full": "ifrs-full";
1050
- "us-gaap": "us-gaap";
1051
- }>>;
1052
- period_type: import("zod").ZodDefault<import("zod").ZodEnum<{
1053
- annual: "annual";
1054
- quarterly: "quarterly";
1055
- }>>;
1056
- periods: import("zod").ZodDefault<import("zod").ZodNumber>;
1098
+ issuer: import("zod").ZodString;
1099
+ cusip: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
1100
+ quarter: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"">, import("zod").ZodString]>>;
1101
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
1057
1102
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1058
- period_type: import("zod").ZodString;
1059
- taxonomy: import("zod").ZodString;
1060
- periods: import("zod").ZodArray<import("zod").ZodString>;
1061
- companies: import("zod").ZodArray<import("zod").ZodObject<{
1062
- input: import("zod").ZodString;
1063
- cik: import("zod").ZodString;
1064
- name: import("zod").ZodString;
1065
- ticker: import("zod").ZodOptional<import("zod").ZodString>;
1066
- }, import("zod/v4/core").$strip>>;
1067
- failed_companies: import("zod").ZodArray<import("zod").ZodObject<{
1068
- input: import("zod").ZodString;
1069
- reason: import("zod").ZodEnum<{
1070
- ambiguous: "ambiguous";
1071
- no_company_facts: "no_company_facts";
1072
- not_found: "not_found";
1073
- }>;
1074
- message: import("zod").ZodString;
1075
- }, import("zod/v4/core").$strip>>;
1076
- concepts: import("zod").ZodArray<import("zod").ZodObject<{
1077
- concept: import("zod").ZodString;
1078
- label: import("zod").ZodString;
1079
- units: import("zod").ZodArray<import("zod").ZodString>;
1080
- }, import("zod/v4/core").$strip>>;
1081
- cells: import("zod").ZodArray<import("zod").ZodObject<{
1082
- cik: import("zod").ZodString;
1083
- company: import("zod").ZodString;
1084
- concept: import("zod").ZodString;
1085
- period: import("zod").ZodString;
1086
- value: import("zod").ZodNumber;
1087
- unit: import("zod").ZodString;
1088
- taxonomy: import("zod").ZodString;
1089
- tag: import("zod").ZodString;
1090
- frame: import("zod").ZodString;
1091
- period_end: import("zod").ZodString;
1092
- form: import("zod").ZodString;
1103
+ issuer: import("zod").ZodString;
1104
+ resolved_issuer_name: import("zod").ZodOptional<import("zod").ZodString>;
1105
+ resolved_issuer_cik: import("zod").ZodOptional<import("zod").ZodString>;
1106
+ search_mode: import("zod").ZodEnum<{
1107
+ cusip: "cusip";
1108
+ name: "name";
1109
+ }>;
1110
+ search_key: import("zod").ZodString;
1111
+ quarter: import("zod").ZodString;
1112
+ filed_from: import("zod").ZodString;
1113
+ filed_to: import("zod").ZodString;
1114
+ total_filings: import("zod").ZodNumber;
1115
+ total_is_exact: import("zod").ZodBoolean;
1116
+ fetched: import("zod").ZodNumber;
1117
+ holders_in_quarter: import("zod").ZodNumber;
1118
+ holders: import("zod").ZodArray<import("zod").ZodObject<{
1119
+ filer_name: import("zod").ZodString;
1120
+ filer_cik: import("zod").ZodString;
1093
1121
  accession_number: import("zod").ZodString;
1122
+ filing_date: import("zod").ZodString;
1123
+ form: import("zod").ZodOptional<import("zod").ZodString>;
1094
1124
  }, import("zod/v4/core").$strip>>;
1095
- gaps: import("zod").ZodArray<import("zod").ZodObject<{
1096
- cik: import("zod").ZodString;
1097
- company: import("zod").ZodString;
1098
- concept: import("zod").ZodString;
1099
- tags_tried: import("zod").ZodArray<import("zod").ZodString>;
1100
- }, import("zod/v4/core").$strip>>;
1101
- unknown_concepts: import("zod").ZodArray<import("zod").ZodObject<{
1102
- concept: import("zod").ZodString;
1103
- derivation: import("zod").ZodOptional<import("zod").ZodString>;
1104
- suggestions: import("zod").ZodArray<import("zod").ZodString>;
1105
- }, import("zod/v4/core").$strip>>;
1106
- caveats: import("zod").ZodArray<import("zod").ZodString>;
1107
1125
  dataset: import("zod").ZodOptional<import("zod").ZodObject<{
1108
1126
  name: import("zod").ZodString;
1109
1127
  row_count: import("zod").ZodNumber;
1110
1128
  expires_at: import("zod").ZodString;
1129
+ truncated: import("zod").ZodBoolean;
1111
1130
  }, import("zod/v4/core").$strip>>;
1112
1131
  }, import("zod/v4/core").$strip>, readonly [{
1113
- readonly reason: "no_companies_resolved";
1114
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
1115
- readonly when: "None of the supplied company inputs resolved to a CIK";
1116
- readonly recovery: "Use ticker symbols or 10-digit CIK numbers for exact matches.";
1117
- }, {
1118
- readonly reason: "no_comparable_data";
1132
+ readonly reason: "issuer_not_found";
1119
1133
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
1120
- readonly when: "Companies resolved but not one of them reports any of the requested concepts for the requested period type";
1121
- readonly recovery: "Switch period_type, or discover reported concept names with secedgar_search_concepts.";
1134
+ readonly when: "No cusip was given and the issuer does not resolve to a known EDGAR company";
1135
+ readonly recovery: "Confirm the issuer with secedgar_company_search, or pass the cusip parameter to search the information tables directly.";
1122
1136
  }, {
1123
- readonly reason: "unknown_concept";
1124
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
1125
- readonly when: "Every requested concept is neither a supported friendly name nor shaped like an XBRL tag, so no request is sent";
1126
- readonly recovery: "Use a friendly name from secedgar_search_concepts or a valid raw XBRL tag.";
1137
+ readonly reason: "ambiguous_issuer";
1138
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
1139
+ readonly when: "The issuer name matches several EDGAR companies and no cusip was given";
1140
+ readonly recovery: "Retry with the ticker or the 10-digit CIK of the intended issuer from the matches list.";
1127
1141
  }, {
1128
1142
  readonly reason: "rate_limited";
1129
1143
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
@@ -1134,11 +1148,12 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
1134
1148
  }, {
1135
1149
  readonly reason: "sec_unreachable";
1136
1150
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
1137
- readonly when: "The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds";
1138
- readonly recovery: "Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.";
1151
+ readonly when: "SEC EDGAR gave no complete, readable response — on the last attempt made (the third, or an earlier one once this call's 40-second budget for SEC failures ran out) the connection failed, no response headers arrived within 15 seconds, or the body broke off or stalled for 15 seconds, each wait capped at what was left of that budget; a 200 body was not the JSON SEC serves; or earlier SEC failures had spent that budget, so the request was never sent";
1152
+ readonly recovery: "Retry the same call in a minute — SEC EDGAR did not deliver a complete, readable response, and nothing in the request needs to change.";
1139
1153
  readonly retryable: true;
1140
1154
  readonly thrownBy: "service";
1141
1155
  }], {
1156
+ readonly ordering: import("zod").ZodString;
1142
1157
  readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
1143
1158
  readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
1144
1159
  readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -1206,7 +1221,7 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
1206
1221
  readonly reason: "canvas_unavailable";
1207
1222
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
1208
1223
  readonly when: "The DataCanvas service is not configured for this deployment";
1209
- readonly recovery: "Set CANVAS_PROVIDER_TYPE=duckdb in the server environment to enable dataframes.";
1224
+ readonly recovery: "Dataframes need the DuckDB canvas. On an npm or Docker install, set CANVAS_PROVIDER_TYPE=duckdb (the default when unset) and restart the server; the MCPB bundle ships without DuckDB, so there the data tools return their results inline and stage no dataframe.";
1210
1225
  }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
1211
1226
  sql: import("zod").ZodString;
1212
1227
  register_as: import("zod").ZodOptional<import("zod").ZodString>;
@@ -1223,7 +1238,7 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
1223
1238
  readonly reason: "canvas_unavailable";
1224
1239
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
1225
1240
  readonly when: "The DataCanvas service is not configured for this deployment";
1226
- readonly recovery: "Set CANVAS_PROVIDER_TYPE=duckdb in the server environment to enable dataframes.";
1241
+ readonly recovery: "Dataframes need the DuckDB canvas. On an npm or Docker install, set CANVAS_PROVIDER_TYPE=duckdb (the default when unset) and restart the server; the MCPB bundle ships without DuckDB, so there the data tools return their results inline and stage no dataframe.";
1227
1242
  }, {
1228
1243
  readonly reason: "system_catalog_access";
1229
1244
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
@@ -1289,5 +1304,15 @@ export declare function buildToolDefinitions(options: ToolDefinitionOptions): (i
1289
1304
  readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
1290
1305
  readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
1291
1306
  readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
1292
- }>)[];
1307
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
1308
+ name: import("zod").ZodString;
1309
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1310
+ name: import("zod").ZodString;
1311
+ dropped: import("zod").ZodBoolean;
1312
+ }, import("zod/v4/core").$strip>, readonly [{
1313
+ readonly reason: "canvas_unavailable";
1314
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
1315
+ readonly when: "The DataCanvas service is not configured for this deployment";
1316
+ readonly recovery: "Dataframes need the DuckDB canvas. On an npm or Docker install, set CANVAS_PROVIDER_TYPE=duckdb (the default when unset) and restart the server; the MCPB bundle ships without DuckDB, so there the data tools return their results inline and stage no dataframe.";
1317
+ }], undefined>)[];
1293
1318
  //# sourceMappingURL=index.d.ts.map