@cyanheads/secedgar-mcp-server 0.12.5 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +34 -5
  2. package/dist/index.js +5 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts +89 -0
  5. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -0
  6. package/dist/mcp-server/tools/definitions/compare-companies.tool.js +442 -0
  7. package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -0
  8. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
  9. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +1 -24
  10. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
  11. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts +1 -0
  12. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
  13. package/dist/mcp-server/tools/definitions/get-financials.tool.js +36 -56
  14. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts +81 -0
  16. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts.map +1 -0
  17. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js +254 -0
  18. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js.map +1 -0
  19. package/dist/services/edgar/concept-map.d.ts +21 -1
  20. package/dist/services/edgar/concept-map.d.ts.map +1 -1
  21. package/dist/services/edgar/concept-map.js +16 -0
  22. package/dist/services/edgar/concept-map.js.map +1 -1
  23. package/dist/services/edgar/concept-series.d.ts +65 -0
  24. package/dist/services/edgar/concept-series.d.ts.map +1 -0
  25. package/dist/services/edgar/concept-series.js +91 -0
  26. package/dist/services/edgar/concept-series.js.map +1 -0
  27. package/dist/services/edgar/edgar-api-service.d.ts +8 -6
  28. package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
  29. package/dist/services/edgar/edgar-api-service.js +7 -3
  30. package/dist/services/edgar/edgar-api-service.js.map +1 -1
  31. package/dist/services/edgar/fiscal-periods.d.ts +37 -0
  32. package/dist/services/edgar/fiscal-periods.d.ts.map +1 -0
  33. package/dist/services/edgar/fiscal-periods.js +106 -0
  34. package/dist/services/edgar/fiscal-periods.js.map +1 -0
  35. package/dist/services/edgar/mirror/companyfacts-sync.d.ts +7 -10
  36. package/dist/services/edgar/mirror/companyfacts-sync.d.ts.map +1 -1
  37. package/dist/services/edgar/mirror/companyfacts-sync.js.map +1 -1
  38. package/dist/services/edgar/mirror/edgar-mirror.d.ts +10 -1
  39. package/dist/services/edgar/mirror/edgar-mirror.d.ts.map +1 -1
  40. package/dist/services/edgar/mirror/edgar-mirror.js +35 -1
  41. package/dist/services/edgar/mirror/edgar-mirror.js.map +1 -1
  42. package/dist/services/edgar/types.d.ts +20 -0
  43. package/dist/services/edgar/types.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/server.json +3 -3
@@ -0,0 +1,442 @@
1
+ /**
2
+ * @fileoverview Period-aligned comparison of several named companies across
3
+ * several XBRL concepts. Sits between `secedgar_get_financials` (one company ×
4
+ * one concept over time) and `secedgar_fetch_frames` (one concept × one period
5
+ * across the whole market). Reads one companyfacts payload per company and
6
+ * resolves values through the shared frame dedup, so numbers match
7
+ * `secedgar_get_financials` for the same concept.
8
+ * @module mcp-server/tools/definitions/compare-companies
9
+ */
10
+ import { tool, z } from '@cyanheads/mcp-ts-core';
11
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
12
+ import { getCanvasBridge, toDatasetField } from '../../../services/canvas-bridge/canvas-bridge.js';
13
+ import { resolveConceptTarget } from '../../../services/edgar/concept-map.js';
14
+ import { seriesFromCompanyFacts } from '../../../services/edgar/concept-series.js';
15
+ import { getEdgarApiService } from '../../../services/edgar/edgar-api-service.js';
16
+ import { missingQuarterCaveats } from '../../../services/edgar/fiscal-periods.js';
17
+ /** Full-year duration frame — `CY2024`. */
18
+ const ANNUAL_FRAME = /^CY(\d{4})$/;
19
+ /** Single-quarter duration frame — `CY2024Q2`. */
20
+ const QUARTER_FRAME = /^CY(\d{4}Q[1-4])$/;
21
+ /** Point-in-time frame — `CY2024Q2I`. */
22
+ const INSTANT_FRAME = /^CY(\d{4})(Q[1-4])I$/;
23
+ /**
24
+ * Ceiling on inline matrix cells. The bounds multiply out to 10 companies x 8
25
+ * concepts x 12 periods, a payload no caller can read in one response, so the
26
+ * inline window drops older periods until it fits. The dataframe still carries
27
+ * the full aligned series, and the drop is disclosed through the truncation
28
+ * enrichment.
29
+ */
30
+ const MAX_INLINE_CELLS = 120;
31
+ /**
32
+ * Map a frame to the calendar period key the matrix aligns on, or undefined when
33
+ * the frame does not belong in this period type.
34
+ *
35
+ * Duration frames key on themselves. Instant frames (balance-sheet and
36
+ * entity-info concepts, which are only ever filed as point-in-time values) key
37
+ * on the calendar year for an annual comparison and on the calendar quarter for
38
+ * a quarterly one — so `assets` lines up with `revenue` in the same matrix
39
+ * instead of dropping out of it.
40
+ */
41
+ function periodKey(frame, periodType) {
42
+ if (periodType === 'annual') {
43
+ const annual = ANNUAL_FRAME.exec(frame);
44
+ if (annual)
45
+ return frame;
46
+ const instant = INSTANT_FRAME.exec(frame);
47
+ return instant?.[1] ? `CY${instant[1]}` : undefined;
48
+ }
49
+ const quarter = QUARTER_FRAME.exec(frame);
50
+ if (quarter)
51
+ return frame;
52
+ const instant = INSTANT_FRAME.exec(frame);
53
+ return instant?.[1] && instant[2] ? `CY${instant[1]}${instant[2]}` : undefined;
54
+ }
55
+ export const compareCompaniesTool = tool('secedgar_compare_companies', {
56
+ description: 'Compare 2-10 named companies across 1-8 XBRL concepts, aligned on calendar periods. This is the middle shape between secedgar_get_financials (one company, one concept, full history) and secedgar_fetch_frames (one concept, one period, every reporting company) — reach for it when the question names the companies. One companyfacts read per company, resolved through the same frame dedup and tag priority as secedgar_get_financials so the numbers agree. Balance-sheet and entity-info concepts are filed as point-in-time values and align on the calendar year (annual) or quarter (quarterly) their snapshot falls in, so they sit in the same matrix as income-statement lines. The inline matrix covers the most recent periods up to `periods`, trimmed further when companies x concepts x periods is too large to return in one response; the full aligned series is materialized as df_<id> for growth rates and spreads via secedgar_dataframe_query. A company that fails to resolve is reported in failed_companies and the comparison proceeds with the rest, and a company that does not report a concept is reported in gaps with the tags that were tried — never interpolated or zero-filled. Off-calendar filers and unit mismatches are surfaced in caveats rather than silently mixed.',
57
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
58
+ enrichment: {
59
+ truncated: z
60
+ .boolean()
61
+ .optional()
62
+ .describe('True when the aligned series has more periods than the inline matrix shows.'),
63
+ shown: z.number().optional().describe('Number of periods shown inline.'),
64
+ cap: z.number().optional().describe('The periods cap applied.'),
65
+ },
66
+ errors: [
67
+ {
68
+ reason: 'no_companies_resolved',
69
+ code: JsonRpcErrorCode.NotFound,
70
+ when: 'None of the supplied company inputs resolved to a CIK',
71
+ recovery: 'Use ticker symbols or 10-digit CIK numbers for exact matches.',
72
+ },
73
+ {
74
+ reason: 'no_comparable_data',
75
+ code: JsonRpcErrorCode.NotFound,
76
+ when: 'Companies resolved but not one of them reports any of the requested concepts for the requested period type',
77
+ recovery: 'Switch period_type, or discover reported concept names with secedgar_search_concepts.',
78
+ },
79
+ ],
80
+ input: z.object({
81
+ companies: z
82
+ .array(z.string().min(1).describe('Ticker symbol or CIK number.'))
83
+ .min(2)
84
+ .max(10)
85
+ .describe('Companies to compare, as ticker symbols (preferred) or CIK numbers. A company that does not resolve is reported in failed_companies and the rest of the comparison still runs.'),
86
+ concepts: z
87
+ .array(z.string().min(1).describe('Friendly concept name or raw XBRL tag.'))
88
+ .min(1)
89
+ .max(8)
90
+ .describe('Concepts to compare — friendly names like "revenue" or "net_income" (discover them with secedgar_search_concepts) or raw XBRL tags.'),
91
+ taxonomy: z
92
+ .enum(['us-gaap', 'ifrs-full'])
93
+ .default('us-gaap')
94
+ .describe('XBRL taxonomy to resolve concepts under. Use ifrs-full only when every company in the list reports under IFRS; mixing IFRS and US GAAP filers in one call resolves them all under the same taxonomy.'),
95
+ period_type: z
96
+ .enum(['annual', 'quarterly'])
97
+ .default('annual')
98
+ .describe('Align on full calendar years (annual) or calendar quarters (quarterly). Quarterly comparisons of off-calendar filers are missing one calendar quarter per year — see caveats.'),
99
+ periods: z
100
+ .number()
101
+ .int()
102
+ .min(1)
103
+ .max(12)
104
+ .default(4)
105
+ .describe('Upper bound on how many recent periods the inline matrix covers, newest first — not a guarantee. The matrix is companies x concepts x periods cells, and the inline window drops further older periods when that product is too large to return in one response. The full aligned series is always registered to the dataframe, so dropped periods stay queryable via secedgar_dataframe_query.'),
106
+ }),
107
+ output: z.object({
108
+ period_type: z.string().describe('Period alignment used, echoed from input.'),
109
+ taxonomy: z.string().describe('Taxonomy the concepts were resolved under, echoed from input.'),
110
+ periods: z
111
+ .array(z.string())
112
+ .describe('Calendar period keys covered by the inline matrix, newest first. Shorter than the requested periods when the cell count forced the window to shrink — the enrichment trailer reports the drop.'),
113
+ companies: z
114
+ .array(z
115
+ .object({
116
+ input: z.string().describe('The company string as supplied.'),
117
+ cik: z.string().describe('Resolved CIK, zero-padded to 10 digits.'),
118
+ name: z.string().describe('Resolved entity name (SEC-conformed).'),
119
+ ticker: z.string().optional().describe('Ticker symbol when SEC lists one.'),
120
+ })
121
+ .describe('One company that resolved and contributed to the matrix.'))
122
+ .describe('Companies included in the comparison.'),
123
+ failed_companies: z
124
+ .array(z
125
+ .object({
126
+ input: z.string().describe('The company string as supplied.'),
127
+ reason: z
128
+ .enum(['not_found', 'ambiguous', 'no_company_facts'])
129
+ .describe('Machine-readable failure. not_found: the input matched no CIK. ambiguous: it matched several, and the message lists them. no_company_facts: it resolved but the filer reports no XBRL. Match on this rather than the message.'),
130
+ message: z.string().describe('What went wrong and how to fix this one input.'),
131
+ })
132
+ .describe('One company that could not be included, with a machine-readable reason.'))
133
+ .describe('Companies excluded from the matrix. The comparison proceeds with the rest rather than failing the whole call.'),
134
+ concepts: z
135
+ .array(z
136
+ .object({
137
+ concept: z.string().describe('Concept as supplied — friendly name or raw XBRL tag.'),
138
+ label: z.string().describe('Human-readable concept label.'),
139
+ units: z
140
+ .array(z.string())
141
+ .describe('Distinct units this concept resolved to across the companies. More than one means the values are not directly comparable — see caveats.'),
142
+ })
143
+ .describe('One requested concept and the units it resolved to.'))
144
+ .describe('Concepts covered, in the order supplied.'),
145
+ cells: z
146
+ .array(z
147
+ .object({
148
+ cik: z.string().describe('Company CIK, zero-padded to 10 digits.'),
149
+ company: z.string().describe('Company name.'),
150
+ concept: z.string().describe('Concept the value belongs to.'),
151
+ period: z.string().describe('Aligned calendar period key (e.g. "CY2024", "CY2024Q2").'),
152
+ value: z.number().describe('Reported value.'),
153
+ unit: z.string().describe('Unit of measure for this value.'),
154
+ taxonomy: z.string().describe('Taxonomy the value was read from.'),
155
+ tag: z.string().describe('XBRL tag that produced the value.'),
156
+ frame: z
157
+ .string()
158
+ .describe('Underlying XBRL frame, which differs from period for point-in-time concepts (e.g. frame CY2024Q3I under period CY2024).'),
159
+ period_end: z
160
+ .string()
161
+ .describe('Period end date (YYYY-MM-DD). Differs across off-calendar filers within one aligned period.'),
162
+ form: z.string().describe('Source filing type (10-K, 10-Q, 20-F).'),
163
+ accession_number: z
164
+ .string()
165
+ .describe('Source filing accession number — pass to secedgar_get_filing.'),
166
+ })
167
+ .describe('One company-concept-period value.'))
168
+ .describe('Inline matrix values, covering the periods listed in periods[].'),
169
+ gaps: z
170
+ .array(z
171
+ .object({
172
+ cik: z.string().describe('Company CIK that reports nothing for this concept.'),
173
+ company: z.string().describe('Company name.'),
174
+ concept: z.string().describe('Concept with no value for this company.'),
175
+ tags_tried: z
176
+ .array(z.string())
177
+ .describe('XBRL tags attempted, in priority order, before giving up.'),
178
+ })
179
+ .describe('One company-concept pair with no reported value.'))
180
+ .describe('Company-concept pairs with no data. Deliberately explicit — a missing value is never interpolated or zero-filled.'),
181
+ caveats: z
182
+ .array(z.string())
183
+ .describe('Comparability warnings: a filer missing a calendar quarter from the frame-tagged series, period ends that differ inside one aligned period, and concepts whose unit differs across companies. Empty when nothing needs flagging.'),
184
+ dataset: z
185
+ .object({
186
+ name: z
187
+ .string()
188
+ .describe('Dataframe handle (df_XXXXX_XXXXX) — pass to secedgar_dataframe_query.'),
189
+ row_count: z.number().describe('Rows materialized in the dataframe.'),
190
+ expires_at: z.string().describe('ISO 8601 expiry timestamp.'),
191
+ })
192
+ .optional()
193
+ .describe('Canvas dataframe holding the full aligned series across every period, not just the inline window. Columns match cells[]. Absent when canvas is unavailable.'),
194
+ }),
195
+ async handler(input, ctx) {
196
+ const api = getEdgarApiService();
197
+ const resolvedCompanies = [];
198
+ const failed = [];
199
+ for (const supplied of input.companies) {
200
+ const resolved = await api.resolveCik(supplied);
201
+ if (Array.isArray(resolved) && resolved.length === 0) {
202
+ failed.push({
203
+ input: supplied,
204
+ reason: 'not_found',
205
+ message: `'${supplied}' did not resolve to a CIK. Use a ticker symbol or 10-digit CIK.`,
206
+ });
207
+ continue;
208
+ }
209
+ if (Array.isArray(resolved) && resolved.length > 1) {
210
+ const list = resolved
211
+ .slice(0, 5)
212
+ .map((m) => `${m.cik} ${m.name ?? 'Unknown'}${m.ticker ? ` (${m.ticker})` : ''}`)
213
+ .join(', ');
214
+ failed.push({
215
+ input: supplied,
216
+ reason: 'ambiguous',
217
+ message: `'${supplied}' matches multiple companies: ${list}. Retry with one of these tickers or 10-digit CIKs.`,
218
+ });
219
+ continue;
220
+ }
221
+ const match = Array.isArray(resolved) ? resolved[0] : resolved;
222
+ if (match)
223
+ resolvedCompanies.push({ ...match, input: supplied });
224
+ }
225
+ if (resolvedCompanies.length === 0) {
226
+ throw ctx.fail('no_companies_resolved', `None of the ${input.companies.length} supplied companies resolved to a CIK.`, { ...ctx.recoveryFor('no_companies_resolved'), failed_companies: failed });
227
+ }
228
+ const targets = input.concepts.map((concept) => ({
229
+ concept,
230
+ target: resolveConceptTarget(concept, input.taxonomy),
231
+ }));
232
+ const cells = [];
233
+ const gaps = [];
234
+ const included = [];
235
+ const unitsByConcept = new Map();
236
+ /** Deduped so a caveat shared by several concepts is stated once. */
237
+ const caveatSet = new Set();
238
+ for (const company of resolvedCompanies) {
239
+ const facts = await api.tryGetCompanyFacts(company.cik);
240
+ const name = company.name || company.input;
241
+ if (!facts || Object.keys(facts.facts).length === 0) {
242
+ failed.push({
243
+ input: company.input,
244
+ reason: 'no_company_facts',
245
+ message: `'${company.input}' (CIK ${company.cik}) has no XBRL facts on file. Read its filings directly with secedgar_search_filings.`,
246
+ });
247
+ continue;
248
+ }
249
+ included.push({
250
+ input: company.input,
251
+ cik: company.cik,
252
+ name,
253
+ ...(company.ticker ? { ticker: company.ticker } : {}),
254
+ });
255
+ const quarterFrames = [];
256
+ for (const { concept, target } of targets) {
257
+ const series = seriesFromCompanyFacts(facts, target.taxonomy, target.tags);
258
+ if (!series || series.series.length === 0) {
259
+ gaps.push({
260
+ cik: company.cik,
261
+ company: name,
262
+ concept,
263
+ tags_tried: series?.tagsTried ?? target.tags,
264
+ });
265
+ continue;
266
+ }
267
+ /**
268
+ * Series is newest-first, so the first frame mapping to a period key wins
269
+ * and later (older) frames for the same key are skipped — the year-end
270
+ * instant beats an interim snapshot inside the same calendar year.
271
+ */
272
+ const seen = new Set();
273
+ for (const unit of series.series) {
274
+ if (QUARTER_FRAME.test(unit.frame))
275
+ quarterFrames.push(unit.frame);
276
+ const period = periodKey(unit.frame, input.period_type);
277
+ if (!period || seen.has(period))
278
+ continue;
279
+ seen.add(period);
280
+ cells.push({
281
+ cik: company.cik,
282
+ company: name,
283
+ concept,
284
+ period,
285
+ value: unit.val,
286
+ unit: series.unit || target.unit || '',
287
+ taxonomy: series.taxonomy,
288
+ tag: series.tag,
289
+ frame: unit.frame,
290
+ period_end: unit.end,
291
+ form: unit.form,
292
+ accession_number: unit.accn,
293
+ });
294
+ }
295
+ if (seen.size === 0) {
296
+ gaps.push({
297
+ cik: company.cik,
298
+ company: name,
299
+ concept,
300
+ tags_tried: series.tagsTried,
301
+ });
302
+ continue;
303
+ }
304
+ const units = unitsByConcept.get(concept) ?? new Set();
305
+ units.add(series.unit || target.unit || '');
306
+ unitsByConcept.set(concept, units);
307
+ }
308
+ /**
309
+ * Prefixed per company: the missing quarter is a property of that filer's
310
+ * fiscal calendar, not of the comparison as a whole. Annual alignment never
311
+ * surfaces it — the gap is invisible once quarters roll up to a year.
312
+ */
313
+ if (input.period_type === 'quarterly') {
314
+ for (const caveat of missingQuarterCaveats(quarterFrames)) {
315
+ caveatSet.add(`${name}: ${caveat}`);
316
+ }
317
+ }
318
+ }
319
+ if (cells.length === 0) {
320
+ throw ctx.fail('no_comparable_data', `None of the ${included.length} resolved companies report any of the requested concepts for ${input.period_type} periods.`, { ...ctx.recoveryFor('no_comparable_data'), gaps });
321
+ }
322
+ const allPeriods = [...new Set(cells.map((c) => c.period))].sort((a, b) => b.localeCompare(a));
323
+ const cellsPerPeriod = new Map();
324
+ for (const cell of cells) {
325
+ cellsPerPeriod.set(cell.period, (cellsPerPeriod.get(cell.period) ?? 0) + 1);
326
+ }
327
+ /** Newest-first, stopping when the next period would breach the cell ceiling. */
328
+ const inlinePeriods = [];
329
+ let budget = MAX_INLINE_CELLS;
330
+ for (const period of allPeriods.slice(0, input.periods)) {
331
+ const count = cellsPerPeriod.get(period) ?? 0;
332
+ if (inlinePeriods.length > 0 && count > budget)
333
+ break;
334
+ inlinePeriods.push(period);
335
+ budget -= count;
336
+ }
337
+ const inlineSet = new Set(inlinePeriods);
338
+ const inlineCells = cells.filter((c) => inlineSet.has(c.period));
339
+ if (allPeriods.length > inlinePeriods.length) {
340
+ ctx.enrich.truncated({ shown: inlinePeriods.length, cap: input.periods });
341
+ }
342
+ /**
343
+ * Period ends inside ONE aligned period, not fiscal year ends: the alignment
344
+ * key is a calendar year or quarter, so filers on different fiscal calendars
345
+ * land in it with cut-off dates weeks apart. Read from the newest inline
346
+ * period so every company is compared on the same key — a company's newest
347
+ * cell overall can sit in a period the others have not reached.
348
+ */
349
+ const endsInNewestPeriod = new Map();
350
+ for (const cell of inlineCells) {
351
+ if (cell.period !== inlinePeriods[0] || endsInNewestPeriod.has(cell.cik))
352
+ continue;
353
+ endsInNewestPeriod.set(cell.cik, { company: cell.company, end: cell.period_end });
354
+ }
355
+ const endMonths = new Set([...endsInNewestPeriod.values()].map((e) => e.end.slice(0, 7)));
356
+ if (endMonths.size > 1) {
357
+ const spread = [...endsInNewestPeriod.values()]
358
+ .map((e) => `${e.company} ends ${e.end}`)
359
+ .join(', ');
360
+ caveatSet.add(`Period ends differ inside ${inlinePeriods[0]} — ${spread}. Filers on different fiscal calendars land in the same aligned period with cut-off dates weeks apart, so the comparison is approximate; each cell carries its own period_end.`);
361
+ }
362
+ for (const [concept, units] of unitsByConcept) {
363
+ if (units.size > 1) {
364
+ caveatSet.add(`Concept '${concept}' resolved to more than one unit across these companies (${[...units].join(', ')}). Values in different units are not directly comparable — each cell carries its own unit.`);
365
+ }
366
+ }
367
+ let dataset;
368
+ const bridge = getCanvasBridge();
369
+ if (bridge) {
370
+ const registered = await bridge.registerDataframe(ctx, {
371
+ rows: cells.map((c) => ({ ...c })),
372
+ sourceTool: 'secedgar_compare_companies',
373
+ queryParams: {
374
+ companies: included.map((c) => c.cik),
375
+ concepts: input.concepts,
376
+ taxonomy: input.taxonomy,
377
+ period_type: input.period_type,
378
+ },
379
+ });
380
+ if (registered)
381
+ dataset = toDatasetField(registered);
382
+ }
383
+ ctx.log.info('Comparison built', {
384
+ companies: included.length,
385
+ failed: failed.length,
386
+ cells: cells.length,
387
+ datasetName: dataset?.name,
388
+ });
389
+ return {
390
+ period_type: input.period_type,
391
+ taxonomy: input.taxonomy,
392
+ periods: inlinePeriods,
393
+ companies: included,
394
+ failed_companies: failed,
395
+ concepts: targets.map(({ concept, target }) => ({
396
+ concept,
397
+ label: target.label,
398
+ units: [...(unitsByConcept.get(concept) ?? [])],
399
+ })),
400
+ cells: inlineCells,
401
+ gaps,
402
+ caveats: [...caveatSet],
403
+ dataset,
404
+ };
405
+ },
406
+ format: (result) => {
407
+ const out = [
408
+ `**Company comparison** — ${result.companies.length} companies x ${result.concepts.length} concepts (${result.taxonomy}, ${result.period_type})`,
409
+ `Periods: ${result.periods.join(', ')}`,
410
+ `Companies: ${result.companies.map((c) => `${c.name} [${c.input} → CIK ${c.cik}${c.ticker ? `, ${c.ticker}` : ''}]`).join('; ')}`,
411
+ ];
412
+ for (const failure of result.failed_companies) {
413
+ out.push(`Excluded: ${failure.input} (${failure.reason}) — ${failure.message}`);
414
+ }
415
+ for (const concept of result.concepts) {
416
+ out.push(`Concept: ${concept.label} [${concept.concept}] — units: ${concept.units.join(', ') || 'none'}`);
417
+ }
418
+ // Cells are rendered as a flat, sorted list rather than a lookup grid: every
419
+ // value carries its own provenance, and a company-concept-period with no
420
+ // value is already accounted for under gaps.
421
+ const ordered = [...result.cells].sort((a, b) => a.concept.localeCompare(b.concept) ||
422
+ a.company.localeCompare(b.company) ||
423
+ b.period.localeCompare(a.period));
424
+ out.push('', '### Values');
425
+ for (const cell of ordered) {
426
+ out.push(`- ${cell.concept} | ${cell.company} (CIK ${cell.cik}) | ${cell.period} = ${cell.value} ${cell.unit} | ${cell.taxonomy}:${cell.tag} | frame ${cell.frame} | ends ${cell.period_end} | ${cell.form} [${cell.accession_number}]`);
427
+ }
428
+ if (result.gaps.length > 0) {
429
+ out.push('', `### Not reported (${result.gaps.length})`);
430
+ for (const gap of result.gaps) {
431
+ out.push(`- ${gap.company} (CIK ${gap.cik}) reports no ${gap.concept} — tried: ${gap.tags_tried.join(', ')}`);
432
+ }
433
+ }
434
+ if (result.dataset) {
435
+ out.push('', `Dataset: ${result.dataset.name} (${result.dataset.row_count} rows, expires ${result.dataset.expires_at}) — full aligned series, query with secedgar_dataframe_query.`);
436
+ }
437
+ for (const caveat of result.caveats)
438
+ out.push('', `Caveat: ${caveat}`);
439
+ return [{ type: 'text', text: out.join('\n') }];
440
+ },
441
+ });
442
+ //# sourceMappingURL=compare-companies.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare-companies.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/compare-companies.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-frames.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-frames.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6BjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4X1B,CAAC"}
1
+ {"version":3,"file":"fetch-frames.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-frames.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4X1B,CAAC"}
@@ -12,30 +12,7 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
12
12
  import { getCanvasBridge, toDatasetField } from '../../../services/canvas-bridge/canvas-bridge.js';
13
13
  import { resolveConcept } from '../../../services/edgar/concept-map.js';
14
14
  import { getEdgarApiService } from '../../../services/edgar/edgar-api-service.js';
15
- /**
16
- * SEC XBRL reports fiscal Q4 as the 10-K residual, never as a discrete
17
- * quarterly fact, so any company whose fiscal year ends inside the queried
18
- * calendar quarter is silently absent from a `CY####Q[1-4]` frame. The
19
- * omission is invisible without domain knowledge — flag it so the caller knows
20
- * to cross-reference `secedgar_get_financials` with `period_type='annual'` for
21
- * those filers. Annual (`CY####`) and instant (`CY####Q#I`) periods are
22
- * unaffected.
23
- */
24
- function fiscalQ4Caveats(period) {
25
- const match = period.match(/^CY\d{4}Q([1-4])$/);
26
- if (!match)
27
- return [];
28
- const examples = {
29
- '1': 'WMT Jan-end, HD/TGT Feb-end',
30
- '2': 'MSFT Jun-end, ORCL May-end',
31
- '3': 'AAPL Sep-end, ACN Aug-end, CSCO Jul-end, COST early Sep',
32
- '4': 'most US filers (calendar fiscal year)',
33
- };
34
- const q = match[1];
35
- return [
36
- `Filers whose fiscal Q4 closes in calendar Q${q} are absent from this frame — SEC XBRL reports their fiscal Q4 as the 10-K residual rather than a discrete quarterly fact (e.g. ${examples[q]}). Use secedgar_get_financials with period_type='annual' for those filers.`,
37
- ];
38
- }
15
+ import { fiscalQ4Caveats } from '../../../services/edgar/fiscal-periods.js';
39
16
  export const fetchFramesTool = tool('secedgar_fetch_frames', {
40
17
  description: 'Fetch SEC XBRL frames for one concept × one period across all reporting companies. Inline response returns a page of the ranked companies — start at the top or pass offset/next_offset to walk further down the ranking; the full frames response (all reporters) is materialized as df_<id> when a canvas is available, queryable via secedgar_dataframe_query. Accepts friendly names like "revenue" or "assets" (discover via secedgar_search_concepts) or raw XBRL tags. One call hits one XBRL tag — when a friendly name maps to multiple same-meaning tags, the response\'s `unqueried_tags` lists the others; call again per tag and UNION/COALESCE in SQL with an analysis-specific priority (e.g. SalesRevenueGoodsNet is goods-only). The response\'s `related_tags` separately flags alternate-DEFINITION tags a meaningful share of filers use as their primary line (e.g. cash incl. restricted cash, equity incl. noncontrolling interest) — a whole-universe screen on the base tag silently omits those filers; query them separately, but do not blindly union (the semantics differ). Response includes `value_distribution` and `period_end_range` to flag XBRL scale-factor anomalies and fiscal-year mixing.',
41
18
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-frames.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-frames.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-frames.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-frames.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,EAAE;IAC3D,WAAW,EACT,qqCAAqqC;IACvqC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAE9E,UAAU,EAAE;QACV,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2EAA2E,CAAC;QACxF,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC9F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC1E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KAC9D;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,iBAAiB;YACzB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,kFAAkF;YACxF,QAAQ,EAAE,4EAA4E;SACvF;QACD;YACE,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,wFAAwF;YAC9F,QAAQ,EAAE,iFAAiF;SAC5F;KACF;IAED,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,8HAA8H,CAC/H;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,KAAK,CAAC,sBAAsB,EAAE,yCAAyC,CAAC;aACxE,QAAQ,CACP,gOAAgO,CACjO;QACH,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC/D,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CACP,iMAAiM,CAClM;QACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC9F,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,CAAC,CAAC;aACV,QAAQ,CACP,+QAA+Q,CAChR;QACH,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACrB,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CACP,yGAAyG,CAC1G;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,CACP,qFAAqF,CACtF;QACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QAC3F,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CACP,gGAAgG,CACjG;QACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC3D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QAC9F,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,CAAC,2EAA2E,CAAC;QACxF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4HAA4H,CAC7H;QACH,IAAI,EAAE,CAAC;aACJ,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAClD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACjD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAClE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACvE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC7C,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,uFAAuF,CACxF;YACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAChE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SAChF,CAAC;aACD,QAAQ,CAAC,0DAA0D,CAAC,CACxE;aACA,QAAQ,CAAC,mCAAmC,CAAC;QAChD,OAAO,EAAE,CAAC;aACP,MAAM,CAAC;YACN,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,uEAAuE,CAAC;YACpF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACrE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SAC9D,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CACP,wHAAwH,CACzH;QACH,cAAc,EAAE,CAAC;aACd,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CACP,0dAA0d,CAC3d;QACH,YAAY,EAAE,CAAC;aACZ,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,CACP,mFAAmF,CACpF;YACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;SACtF,CAAC;aACD,QAAQ,CAAC,yDAAyD,CAAC,CACvE;aACA,QAAQ,CACP,ytBAAytB,CAC1tB;QACH,kBAAkB,EAAE,CAAC;aAClB,MAAM,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;YACvF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC3D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACnD,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,QAAQ,CACP,mbAAmb,CACpb;SACJ,CAAC;aACD,QAAQ,CACP,wMAAwM,CACzM;QACH,gBAAgB,EAAE,CAAC;aAChB,MAAM,CAAC;YACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YAC7E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;SAC5E,CAAC;aACD,QAAQ,CACP,sVAAsV,CACvV;QACH,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CACP,0WAA0W,CAC3W;KACJ,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC;QAC9C,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,SAAS,CAAC;QAChD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;QAC9C,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEjE,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACjF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB;;;;;;;eAOG;YACH,IAAI,CAAC,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9D,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,KAAK,CAAC,OAAO,IAAI,EAAE;oBACvE,GAAG,GAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC;oBACrC,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;gBACzE,QAAQ,EAAE;oBACR,IAAI,EAAE,sJAAsJ;iBAC7J;gBACD,OAAO,EAAE,GAAG;gBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACtC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAChC,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAC9E,CAAC;QAEF,gFAAgF;QAChF,+EAA+E;QAC/E,sEAAsE;QACtE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,MAAM,CAAC,MAAM,CACf,WAAW,KAAK,CAAC,MAAM,uBAAuB,MAAM,CAAC,MAAM,oGAAoG,CAChK,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;YAC1B,YAAY,EAAE,KAAK,CAAC,UAAU;YAC9B,GAAG;YACH,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,KAAK,EAAE,KAAK,CAAC,GAAG;YAChB,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAI,SAAS;YAChC,UAAU,EAAE,KAAK,CAAC,GAAG;YACrB,gBAAgB,EAAE,KAAK,CAAC,IAAI;SAC7B,CAAC,CAAC,CAAC;QAEJ,IAAI,OAA4E,CAAC;QACjF,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxD,GAAG;gBACH,WAAW,EAAE,KAAK,CAAC,UAAU;gBAC7B,MAAM,EAAE,MAAM,IAAI,IAAI;gBACtB,KAAK,EAAE,KAAK,CAAC,GAAG;gBAChB,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI;gBAC3B,YAAY,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;gBACjC,UAAU,EAAE,KAAK,CAAC,GAAG;gBACrB,gBAAgB,EAAE,KAAK,CAAC,IAAI;aAC7B,CAAC,CAAC,CAAC;YAEJ,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE;gBACrD,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,uBAAuB;gBACnC,WAAW,EAAE;oBACX,OAAO,EAAE,GAAG;oBACZ,QAAQ;oBACR,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI;iBACL;aACF,CAAC,CAAC;YACH,IAAI,UAAU;gBAAE,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,iBAAiB,GAAG;YACxB,MAAM;YACN,GAAG;YACH,GAAG,EAAE,MAAM;YACX,gBAAgB,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;SACrE,CAAC;QAEF,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,cAAc,GAAG;YACrB,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;YACxB,GAAG,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;SAC7C,CAAC;QAEF,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9C;;;;;WAKG;QACH,MAAM,iBAAiB,GAAG,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/D,IAAI,iBAAiB,CAAC,gBAAgB,GAAG,iBAAiB,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CACV,8GAA8G,CAC/G,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC7B,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,cAAc,EAAE,cAAc,CAAC,GAAG;YAClC,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,WAAW,EAAE,OAAO,EAAE,IAAI;YAC1B,aAAa,EAAE,iBAAiB,CAAC,gBAAgB;SAClD,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI;YACJ,KAAK,EAAE,cAAc,CAAC,KAAK,IAAI,KAAK;YACpC,eAAe,EAAE,cAAc,CAAC,GAAG;YACnC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,UAAU;YACvB,IAAI;YACJ,OAAO;YACP,cAAc,EAAE,aAAa;YAC7B,YAAY,EAAE,WAAW;YACzB,kBAAkB,EAAE,iBAAiB;YACrC,gBAAgB,EAAE,cAAc;YAChC,OAAO;SACR,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG;YACZ,KAAK,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,eAAe,aAAa;SACzH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;QAC1E,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,WAAW,0CAA0C,CAAC,CAAC;QAC3F,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,SAAS,GACb,MAAM,CAAC,IAAI,KAAK,KAAK;gBACnB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;gBAC7C,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB;oBAChC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC1B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CACR,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,YAAY,GAAG,MAAM,UAAU,CAAC,CAAC,GAAG,KAAK,SAAS,SAAS,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,UAAU,GAAG,QAAQ,KAAK,CAAC,CAAC,gBAAgB,GAAG,CACtJ,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CACR,cAAc,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,SAAS,kBAAkB,MAAM,CAAC,OAAO,CAAC,UAAU,0CAA0C,CACpJ,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GACb,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,KAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,qBAAqB,SAAS,EAAE,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,KAAK,CAAC,IAAI,CACR,iGAAiG,GAAG,EAAE,CACvG,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CACR,4BAA4B,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,CACtP,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,gBAAgB,CAAC,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3F,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
@@ -43,6 +43,7 @@ export declare const getFinancialsTool: import("@cyanheads/mcp-ts-core").ToolDef
43
43
  row_count: z.ZodNumber;
44
44
  expires_at: z.ZodString;
45
45
  }, z.core.$strip>>;
46
+ caveats: z.ZodOptional<z.ZodArray<z.ZodString>>;
46
47
  }, z.core.$strip>, readonly [{
47
48
  readonly reason: "company_not_found";
48
49
  readonly code: JsonRpcErrorCode.NotFound;
@@ -1 +1 @@
1
- {"version":3,"file":"get-financials.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-financials.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoe5B,CAAC"}
1
+ {"version":3,"file":"get-financials.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-financials.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAYjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkd5B,CAAC"}