@cyanheads/secedgar-mcp-server 0.13.0 → 0.14.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 (67) hide show
  1. package/README.md +40 -9
  2. package/dist/index.js +5 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js +2 -2
  5. package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js.map +1 -1
  6. package/dist/mcp-server/resources/definitions/concepts.resource.d.ts.map +1 -1
  7. package/dist/mcp-server/resources/definitions/concepts.resource.js +6 -1
  8. package/dist/mcp-server/resources/definitions/concepts.resource.js.map +1 -1
  9. package/dist/mcp-server/resources/definitions/filing-types.resource.d.ts.map +1 -1
  10. package/dist/mcp-server/resources/definitions/filing-types.resource.js +18 -2
  11. package/dist/mcp-server/resources/definitions/filing-types.resource.js.map +1 -1
  12. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -1
  13. package/dist/mcp-server/tools/definitions/compare-companies.tool.js +27 -4
  14. package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts +61 -0
  16. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts.map +1 -0
  17. package/dist/mcp-server/tools/definitions/find-holders.tool.js +396 -0
  18. package/dist/mcp-server/tools/definitions/find-holders.tool.js.map +1 -0
  19. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts +9 -0
  20. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/definitions/get-filing.tool.js +91 -6
  22. package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/get-financials.tool.js +39 -14
  25. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts +3 -2
  27. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js +11 -6
  29. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js.map +1 -1
  30. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts +63 -0
  31. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts.map +1 -0
  32. package/dist/mcp-server/tools/definitions/get-material-events.tool.js +380 -0
  33. package/dist/mcp-server/tools/definitions/get-material-events.tool.js.map +1 -0
  34. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts.map +1 -1
  35. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js +34 -4
  36. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js.map +1 -1
  37. package/dist/mcp-server/tools/definitions/search-concepts.tool.d.ts +1 -0
  38. package/dist/mcp-server/tools/definitions/search-concepts.tool.d.ts.map +1 -1
  39. package/dist/mcp-server/tools/definitions/search-concepts.tool.js +9 -1
  40. package/dist/mcp-server/tools/definitions/search-concepts.tool.js.map +1 -1
  41. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/search-filings.tool.js +3 -15
  43. package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -1
  44. package/dist/services/edgar/concept-map.d.ts +3 -1
  45. package/dist/services/edgar/concept-map.d.ts.map +1 -1
  46. package/dist/services/edgar/concept-map.js +171 -5
  47. package/dist/services/edgar/concept-map.js.map +1 -1
  48. package/dist/services/edgar/concept-series.d.ts +98 -11
  49. package/dist/services/edgar/concept-series.d.ts.map +1 -1
  50. package/dist/services/edgar/concept-series.js +186 -19
  51. package/dist/services/edgar/concept-series.js.map +1 -1
  52. package/dist/services/edgar/edgar-api-service.d.ts +7 -0
  53. package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
  54. package/dist/services/edgar/edgar-api-service.js +13 -0
  55. package/dist/services/edgar/edgar-api-service.js.map +1 -1
  56. package/dist/services/edgar/eight-k-items.d.ts +62 -0
  57. package/dist/services/edgar/eight-k-items.d.ts.map +1 -0
  58. package/dist/services/edgar/eight-k-items.js +131 -0
  59. package/dist/services/edgar/eight-k-items.js.map +1 -0
  60. package/dist/services/edgar/fiscal-periods.d.ts +10 -5
  61. package/dist/services/edgar/fiscal-periods.d.ts.map +1 -1
  62. package/dist/services/edgar/fiscal-periods.js +33 -10
  63. package/dist/services/edgar/fiscal-periods.js.map +1 -1
  64. package/dist/services/edgar/types.d.ts +39 -0
  65. package/dist/services/edgar/types.d.ts.map +1 -1
  66. package/package.json +1 -1
  67. package/server.json +3 -3
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @fileoverview Form 8-K item-code decode tables for both numbering regimes.
3
+ * SEC replaced the original single-integer item numbering with the current
4
+ * `x.xx` scheme in Release 33-8400, effective 2004-08-23, so EDGAR carries two
5
+ * disjoint vocabularies in the same `items` field. Decoding is driven by the
6
+ * code's SHAPE, not the filing date: a dotted code is always current-regime, a
7
+ * bare integer is always legacy. That makes a mis-decode impossible for filings
8
+ * straddling the changeover, where filers reported pre-changeover events under
9
+ * the old numbers for months after the effective date.
10
+ * @module services/edgar/eight-k-items
11
+ */
12
+ /** Which Form 8-K item-numbering regime a code belongs to. */
13
+ export type EightKItemRegime = 'current' | 'legacy';
14
+ /**
15
+ * Effective date of SEC Release 33-8400, which introduced the current `x.xx`
16
+ * item numbering. Reported as context on legacy-coded filings; never used to
17
+ * pick a decode table (see the module header).
18
+ */
19
+ export declare const EIGHT_K_RENUMBERING_DATE = "2004-08-23";
20
+ /** Current-regime section headings, keyed by the code's leading digit. */
21
+ export declare const EIGHT_K_SECTIONS: Record<string, string>;
22
+ /**
23
+ * Current Form 8-K items (filings numbered under the post-2004-08-23 scheme),
24
+ * transcribed from the item headings of SEC's Form 8-K.
25
+ */
26
+ export declare const CURRENT_EIGHT_K_ITEMS: Record<string, string>;
27
+ /**
28
+ * Legacy Form 8-K items — the single-integer numbering used before
29
+ * 2004-08-23. Items 10-12 were added in 2002-2003 and retired along with the
30
+ * rest at the changeover; item 12 (results of operations) is the direct
31
+ * ancestor of today's 2.02, and item 9 of today's 7.01.
32
+ */
33
+ export declare const LEGACY_EIGHT_K_ITEMS: Record<string, string>;
34
+ /**
35
+ * Every filterable item code across both regimes. Backs the `items` input enum,
36
+ * so a caller reads the whole vocabulary off the JSON Schema and an unknown code
37
+ * is rejected before any fetch. Declared current-first, but the schema serves the
38
+ * bare integers first regardless: Zod keys its enum by value, and a JS object
39
+ * orders integer-like keys ahead of the rest. The `items` describe text carries
40
+ * which shape belongs to which regime, since the order cannot.
41
+ */
42
+ export declare const EIGHT_K_ITEM_CODES: [string, ...string[]];
43
+ /** One decoded item code. `label` is absent for a code neither table defines. */
44
+ export interface DecodedEightKItem {
45
+ code: string;
46
+ label?: string | undefined;
47
+ regime?: EightKItemRegime | undefined;
48
+ }
49
+ /**
50
+ * Decode one item code by shape — dotted (`2.02`) is current-regime, a bare
51
+ * integer (`12`) is legacy. A code matching neither shape, or matching a shape
52
+ * but absent from that regime's table, comes back with the code alone so the
53
+ * caller sees exactly what EDGAR reported instead of a guessed label.
54
+ */
55
+ export declare function decodeEightKItem(code: string): DecodedEightKItem;
56
+ /**
57
+ * Split the submissions API's `items` field (a comma-separated code list, e.g.
58
+ * `"2.02,9.01"`) into codes. An absent or empty field yields no codes — most
59
+ * 8-K filings carry items, but EDGAR leaves the field blank on some older ones.
60
+ */
61
+ export declare function parseEightKItems(raw: string | undefined): string[];
62
+ //# sourceMappingURL=eight-k-items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eight-k-items.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/eight-k-items.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,eAAe,CAAC;AAErD,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwCxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAavD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAG1B,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAE3B,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAUhE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAMlE"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * @fileoverview Form 8-K item-code decode tables for both numbering regimes.
3
+ * SEC replaced the original single-integer item numbering with the current
4
+ * `x.xx` scheme in Release 33-8400, effective 2004-08-23, so EDGAR carries two
5
+ * disjoint vocabularies in the same `items` field. Decoding is driven by the
6
+ * code's SHAPE, not the filing date: a dotted code is always current-regime, a
7
+ * bare integer is always legacy. That makes a mis-decode impossible for filings
8
+ * straddling the changeover, where filers reported pre-changeover events under
9
+ * the old numbers for months after the effective date.
10
+ * @module services/edgar/eight-k-items
11
+ */
12
+ /**
13
+ * Effective date of SEC Release 33-8400, which introduced the current `x.xx`
14
+ * item numbering. Reported as context on legacy-coded filings; never used to
15
+ * pick a decode table (see the module header).
16
+ */
17
+ export const EIGHT_K_RENUMBERING_DATE = '2004-08-23';
18
+ /** Current-regime section headings, keyed by the code's leading digit. */
19
+ export const EIGHT_K_SECTIONS = {
20
+ '1': "Registrant's Business and Operations",
21
+ '2': 'Financial Information',
22
+ '3': 'Securities and Trading Markets',
23
+ '4': 'Matters Related to Accountants and Financial Statements',
24
+ '5': 'Corporate Governance and Management',
25
+ '6': 'Asset-Backed Securities',
26
+ '7': 'Regulation FD',
27
+ '8': 'Other Events',
28
+ '9': 'Financial Statements and Exhibits',
29
+ };
30
+ /**
31
+ * Current Form 8-K items (filings numbered under the post-2004-08-23 scheme),
32
+ * transcribed from the item headings of SEC's Form 8-K.
33
+ */
34
+ export const CURRENT_EIGHT_K_ITEMS = {
35
+ '1.01': 'Entry into a Material Definitive Agreement',
36
+ '1.02': 'Termination of a Material Definitive Agreement',
37
+ '1.03': 'Bankruptcy or Receivership',
38
+ '1.04': 'Mine Safety — Reporting of Shutdowns and Patterns of Violations',
39
+ '1.05': 'Material Cybersecurity Incidents',
40
+ '2.01': 'Completion of Acquisition or Disposition of Assets',
41
+ '2.02': 'Results of Operations and Financial Condition',
42
+ '2.03': 'Creation of a Direct Financial Obligation or an Obligation under an Off-Balance Sheet Arrangement of a Registrant',
43
+ '2.04': 'Triggering Events That Accelerate or Increase a Direct Financial Obligation or an Obligation under an Off-Balance Sheet Arrangement',
44
+ '2.05': 'Costs Associated with Exit or Disposal Activities',
45
+ '2.06': 'Material Impairments',
46
+ '3.01': 'Notice of Delisting or Failure to Satisfy a Continued Listing Rule or Standard; Transfer of Listing',
47
+ '3.02': 'Unregistered Sales of Equity Securities',
48
+ '3.03': 'Material Modification to Rights of Security Holders',
49
+ '4.01': "Changes in Registrant's Certifying Accountant",
50
+ '4.02': 'Non-Reliance on Previously Issued Financial Statements or a Related Audit Report or Completed Interim Review',
51
+ '5.01': 'Changes in Control of Registrant',
52
+ '5.02': 'Departure of Directors or Certain Officers; Election of Directors; Appointment of Certain Officers; Compensatory Arrangements of Certain Officers',
53
+ '5.03': 'Amendments to Articles of Incorporation or Bylaws; Change in Fiscal Year',
54
+ '5.04': "Temporary Suspension of Trading Under Registrant's Employee Benefit Plans",
55
+ '5.05': "Amendments to the Registrant's Code of Ethics, or Waiver of a Provision of the Code of Ethics",
56
+ '5.06': 'Change in Shell Company Status',
57
+ '5.07': 'Submission of Matters to a Vote of Security Holders',
58
+ '5.08': 'Shareholder Director Nominations',
59
+ '6.01': 'ABS Informational and Computational Material',
60
+ '6.02': 'Change of Servicer or Trustee',
61
+ '6.03': 'Change in Credit Enhancement or Other External Support',
62
+ '6.04': 'Failure to Make a Required Distribution',
63
+ '6.05': 'Securities Act Updating Disclosure',
64
+ '6.06': 'Static Pool',
65
+ '7.01': 'Regulation FD Disclosure',
66
+ '8.01': 'Other Events',
67
+ '9.01': 'Financial Statements and Exhibits',
68
+ };
69
+ /**
70
+ * Legacy Form 8-K items — the single-integer numbering used before
71
+ * 2004-08-23. Items 10-12 were added in 2002-2003 and retired along with the
72
+ * rest at the changeover; item 12 (results of operations) is the direct
73
+ * ancestor of today's 2.02, and item 9 of today's 7.01.
74
+ */
75
+ export const LEGACY_EIGHT_K_ITEMS = {
76
+ '1': 'Changes in Control of Registrant',
77
+ '2': 'Acquisition or Disposition of Assets',
78
+ '3': 'Bankruptcy or Receivership',
79
+ '4': "Changes in Registrant's Certifying Accountant",
80
+ '5': 'Other Events',
81
+ '6': "Resignations of Registrant's Directors",
82
+ '7': 'Financial Statements, Pro Forma Financial Information and Exhibits',
83
+ '8': 'Change in Fiscal Year',
84
+ '9': 'Regulation FD Disclosure',
85
+ '10': "Amendments to the Registrant's Code of Ethics, or Waiver of a Provision of the Code of Ethics",
86
+ '11': "Temporary Suspension of Trading Under Registrant's Employee Benefit Plans",
87
+ '12': 'Results of Operations and Financial Condition',
88
+ };
89
+ /**
90
+ * Every filterable item code across both regimes. Backs the `items` input enum,
91
+ * so a caller reads the whole vocabulary off the JSON Schema and an unknown code
92
+ * is rejected before any fetch. Declared current-first, but the schema serves the
93
+ * bare integers first regardless: Zod keys its enum by value, and a JS object
94
+ * orders integer-like keys ahead of the rest. The `items` describe text carries
95
+ * which shape belongs to which regime, since the order cannot.
96
+ */
97
+ export const EIGHT_K_ITEM_CODES = [
98
+ ...Object.keys(CURRENT_EIGHT_K_ITEMS),
99
+ ...Object.keys(LEGACY_EIGHT_K_ITEMS),
100
+ ];
101
+ /**
102
+ * Decode one item code by shape — dotted (`2.02`) is current-regime, a bare
103
+ * integer (`12`) is legacy. A code matching neither shape, or matching a shape
104
+ * but absent from that regime's table, comes back with the code alone so the
105
+ * caller sees exactly what EDGAR reported instead of a guessed label.
106
+ */
107
+ export function decodeEightKItem(code) {
108
+ if (/^\d\.\d{2}$/.test(code)) {
109
+ const label = CURRENT_EIGHT_K_ITEMS[code];
110
+ return label ? { code, label, regime: 'current' } : { code, regime: 'current' };
111
+ }
112
+ if (/^\d{1,2}$/.test(code)) {
113
+ const label = LEGACY_EIGHT_K_ITEMS[code];
114
+ return label ? { code, label, regime: 'legacy' } : { code, regime: 'legacy' };
115
+ }
116
+ return { code };
117
+ }
118
+ /**
119
+ * Split the submissions API's `items` field (a comma-separated code list, e.g.
120
+ * `"2.02,9.01"`) into codes. An absent or empty field yields no codes — most
121
+ * 8-K filings carry items, but EDGAR leaves the field blank on some older ones.
122
+ */
123
+ export function parseEightKItems(raw) {
124
+ if (!raw)
125
+ return [];
126
+ return raw
127
+ .split(',')
128
+ .map((code) => code.trim())
129
+ .filter((code) => code.length > 0);
130
+ }
131
+ //# sourceMappingURL=eight-k-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eight-k-items.js","sourceRoot":"","sources":["../../../src/services/edgar/eight-k-items.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@
19
19
  */
20
20
  export declare function fiscalQ4Caveats(period: string): string[];
21
21
  /**
22
- * Caveat for one filer's frame-tagged quarterly series: name the calendar
22
+ * Caveat for one filer's frame-tagged quarterly series: name every calendar
23
23
  * quarter that never appears, so a caller can tell "the company did not report"
24
24
  * apart from "the frame tagging does not expose it".
25
25
  *
@@ -28,10 +28,15 @@ export declare function fiscalQ4Caveats(period: string): string[];
28
28
  * inside it a year counts only when it reports at least
29
29
  * {@link MIN_QUARTERS_PER_YEAR} of the four calendar quarters (partial first/last
30
30
  * years carry no signal), and a caveat is emitted only when at least
31
- * {@link MIN_YEARS} of the counting years all omit the same single quarter. A
32
- * year inside the window that reports all four quarters, two that disagree about
33
- * which quarter is missing, or a window too sparse to reach the quorum all
34
- * suppress the caveat.
31
+ * {@link MIN_YEARS} of the counting years agree on a non-empty set of absent
32
+ * quarters. A year inside the window that reports all four quarters, years that
33
+ * disagree so no quarter is absent from all of them, or a window too sparse to
34
+ * reach the quorum all suppress the caveat.
35
+ *
36
+ * One or two quarters can be absent — the per-year quorum bounds it there. A
37
+ * single absent quarter is the fiscal-Q4 residual; a second one means the
38
+ * filer's fiscal quarters do not line up with calendar quarters at all, so
39
+ * further durations match no `CY####Q#` frame.
35
40
  */
36
41
  export declare function missingQuarterCaveats(frames: Iterable<string>): string[];
37
42
  //# sourceMappingURL=fiscal-periods.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fiscal-periods.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/fiscal-periods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqCH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAOxD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CA8BxE"}
1
+ {"version":3,"file":"fiscal-periods.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/fiscal-periods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA8CH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAOxD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CA2CxE"}
@@ -23,8 +23,17 @@ const FISCAL_Q4_EXAMPLES = {
23
23
  };
24
24
  /** Duration quarterly frame (`CY2024Q2`). Instant frames (`CY2024Q2I`) are excluded. */
25
25
  const DURATION_QUARTER_FRAME = /^CY(\d{4})Q([1-4])$/;
26
- /** A year needs at least this many reported quarters before its gaps carry signal. */
27
- const MIN_QUARTERS_PER_YEAR = 3;
26
+ /**
27
+ * A year needs at least this many reported quarters before its gaps carry
28
+ * signal. Two, not three: a filer can lose more than one calendar quarter to
29
+ * frame tagging — Costco's fiscal Q2 and fiscal Q4 durations both fall outside
30
+ * the quarters SEC frames, leaving a steady two per year — and a three-of-four
31
+ * quorum reads that as a sparse year and suppresses the caveat entirely. Two is
32
+ * also the floor at which a year still carries signal: it bounds the absent set
33
+ * at two quarters, so a year reporting a single quarter (a stub, a first year of
34
+ * filings) cannot drag three quarters into the caveat.
35
+ */
36
+ const MIN_QUARTERS_PER_YEAR = 2;
28
37
  /** At least this many qualifying years must agree before a gap is called systematic. */
29
38
  const MIN_YEARS = 2;
30
39
  /**
@@ -57,7 +66,7 @@ export function fiscalQ4Caveats(period) {
57
66
  ];
58
67
  }
59
68
  /**
60
- * Caveat for one filer's frame-tagged quarterly series: name the calendar
69
+ * Caveat for one filer's frame-tagged quarterly series: name every calendar
61
70
  * quarter that never appears, so a caller can tell "the company did not report"
62
71
  * apart from "the frame tagging does not expose it".
63
72
  *
@@ -66,10 +75,15 @@ export function fiscalQ4Caveats(period) {
66
75
  * inside it a year counts only when it reports at least
67
76
  * {@link MIN_QUARTERS_PER_YEAR} of the four calendar quarters (partial first/last
68
77
  * years carry no signal), and a caveat is emitted only when at least
69
- * {@link MIN_YEARS} of the counting years all omit the same single quarter. A
70
- * year inside the window that reports all four quarters, two that disagree about
71
- * which quarter is missing, or a window too sparse to reach the quorum all
72
- * suppress the caveat.
78
+ * {@link MIN_YEARS} of the counting years agree on a non-empty set of absent
79
+ * quarters. A year inside the window that reports all four quarters, years that
80
+ * disagree so no quarter is absent from all of them, or a window too sparse to
81
+ * reach the quorum all suppress the caveat.
82
+ *
83
+ * One or two quarters can be absent — the per-year quorum bounds it there. A
84
+ * single absent quarter is the fiscal-Q4 residual; a second one means the
85
+ * filer's fiscal quarters do not line up with calendar quarters at all, so
86
+ * further durations match no `CY####Q#` frame.
73
87
  */
74
88
  export function missingQuarterCaveats(frames) {
75
89
  const quartersByYear = new Map();
@@ -96,11 +110,20 @@ export function missingQuarterCaveats(frames) {
96
110
  for (const quarter of quarters)
97
111
  absent.delete(quarter);
98
112
  }
99
- const [missing] = absent;
100
- if (absent.size !== 1 || !missing)
113
+ if (absent.size === 0)
101
114
  return [];
115
+ const missing = [...absent].sort();
116
+ const subject = missing.length === 1
117
+ ? `Calendar Q${missing[0]} carries`
118
+ : `Calendar ${missing.map((q) => `Q${q}`).join(' and ')} carry`;
119
+ const cause = missing.length === 1
120
+ ? 'SEC XBRL reports fiscal Q4 as the 10-K residual rather than a discrete quarterly fact, so the calendar quarter that fiscal Q4 spans drops out of the quarterly series — the period was reported, the frame tagging does not expose it.'
121
+ : "SEC XBRL reports fiscal Q4 as the 10-K residual rather than a discrete quarterly fact, and this filer's remaining fiscal quarters span durations that no standard calendar quarter matches, so both drop out of the quarterly series — the periods were reported, the frame tagging does not expose them.";
122
+ const recovery = missing.length === 1
123
+ ? "Use period_type='annual' for the full-year figure, or derive the missing quarter as the annual total minus the three reported quarters."
124
+ : "Use period_type='annual' for the full-year figure; the absent quarters can only be derived together, as the annual total minus the reported quarters, never one at a time.";
102
125
  return [
103
- `Calendar Q${missing} carries no frame-tagged value in any of this filer's recent fully-reported years. SEC XBRL reports fiscal Q4 as the 10-K residual rather than a discrete quarterly fact, so the calendar quarter that fiscal Q4 spans drops out of the quarterly series — the period was reported, the frame tagging does not expose it. Use period_type='annual' for the full-year figure, or derive the missing quarter as the annual total minus the three reported quarters.`,
126
+ `${subject} no frame-tagged value in any of this filer's recent qualifying years. ${cause} ${recovery}`,
104
127
  ];
105
128
  }
106
129
  //# sourceMappingURL=fiscal-periods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fiscal-periods.js","sourceRoot":"","sources":["../../../src/services/edgar/fiscal-periods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,kBAAkB,GAA2B;IACjD,GAAG,EAAE,6CAA6C;IAClD,GAAG,EAAE,yCAAyC;IAC9C,GAAG,EAAE,sCAAsC;IAC3C,GAAG,EAAE,6DAA6D;CACnE,CAAC;AAEF,wFAAwF;AACxF,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAErD,sFAAsF;AACtF,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,wFAAwF;AACxF,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB;;;;;;;;;;GAUG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAoC,CAAC;IACtD,OAAO;QACL,0CAA0C,CAAC,mIAAmI,kBAAkB,CAAC,CAAC,CAAC,4EAA4E;KAChR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAwB;IAC5D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,SAAS;QACvC,IAAI,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YACrB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;SAChD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,qBAAqB,CAAC;SAChE,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,aAAa,CAAC,MAAM,GAAG,SAAS;QAAE,OAAO,EAAE,CAAC;IAEhD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7C,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;IACzB,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAE7C,OAAO;QACL,aAAa,OAAO,mcAAmc;KACxd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fiscal-periods.js","sourceRoot":"","sources":["../../../src/services/edgar/fiscal-periods.ts"],"names":[],"mappings":"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"}
@@ -247,9 +247,48 @@ export interface RelatedTag {
247
247
  /** XBRL tag a meaningful share of filers report this metric under instead. */
248
248
  tag: string;
249
249
  }
250
+ /**
251
+ * How a concept's tag array is walked when a filer reports more than one of its
252
+ * tags.
253
+ *
254
+ * `priority` — the declared order is semantic: index 0 is the preferred
255
+ * definition and wins every frame it reports, lower tags only filling frames it
256
+ * does not cover. Correct whenever the tags mean different things and one of
257
+ * them is the answer to the concept (revenue's gross/net variants, the
258
+ * trade-only vs trade-and-other receivable captions).
259
+ *
260
+ * `coverage` — the tags are interchangeable alternates that filers choose
261
+ * between rather than a ladder, so the one this filer actually maintains wins:
262
+ * whichever covers the most standard calendar periods, with the declared order
263
+ * breaking a tie. The losers then drop out rather than filling the winner's
264
+ * gaps: alternates are not interchangeable value by value, and the filers
265
+ * reporting both disagree on the years they overlap. Only correct when no fixed
266
+ * order can be right, because filers split in both directions (#101).
267
+ *
268
+ * `priority` stays the default and coverage is opt-in per concept, because
269
+ * coverage is wrong as a general rule and SEC's own data says so. Molson Coors
270
+ * (TAP) tags eleven calendar years under `SalesRevenueGoodsNet`, which SEC
271
+ * retired in 2018, and ten under the assessed-tax-inclusive element against five
272
+ * under `Revenues` — so ranking `revenue` by coverage hands that filer either an
273
+ * eight-year-dead tag or its gross-of-excise line, replacing the continuous net
274
+ * series (CY2016-CY2019 at 6,597 / 13,472 / 13,338 / 13,009 million) with values
275
+ * roughly a fifth lower. Smucker (SJM) and Spotify (SPOT) survive it only on a
276
+ * coincidental tie in period count. Coverage answers "which element does this
277
+ * filer maintain", which is the question only when the elements mean the same
278
+ * thing; where they mean different things, the array order is the answer and
279
+ * period count is noise.
280
+ */
281
+ export type TagSelection = 'coverage' | 'priority';
250
282
  /** Friendly concept name mapping. */
251
283
  export interface ConceptMapping {
252
284
  group: ConceptGroup;
285
+ /**
286
+ * How to pick among `ifrsTags` for a filer reporting several of them. Defaults
287
+ * to `priority`. Scoped to the IFRS array on purpose — the us-gaap `tags` of
288
+ * the same concept can be a genuine priority ladder even when its IFRS
289
+ * counterparts are alternates.
290
+ */
291
+ ifrsTagSelection?: TagSelection;
253
292
  /**
254
293
  * IFRS tag variants for this concept (used when taxonomy === 'ifrs-full').
255
294
  * When present, these replace `tags` for IFRS lookups so friendly names resolve
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/secedgar-mcp-server",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.",
5
5
  "mcpName": "io.github.cyanheads/secedgar-mcp-server",
6
6
  "type": "module",
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/cyanheads/secedgar-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.13.0",
9
+ "version": "0.14.0",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -19,7 +19,7 @@
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/secedgar-mcp-server",
21
21
  "runtimeHint": "bun",
22
- "version": "0.13.0",
22
+ "version": "0.14.0",
23
23
  "environmentVariables": [
24
24
  {
25
25
  "name": "EDGAR_USER_AGENT",
@@ -44,7 +44,7 @@
44
44
  "registryBaseUrl": "https://registry.npmjs.org",
45
45
  "identifier": "@cyanheads/secedgar-mcp-server",
46
46
  "runtimeHint": "bun",
47
- "version": "0.13.0",
47
+ "version": "0.14.0",
48
48
  "environmentVariables": [
49
49
  {
50
50
  "name": "EDGAR_USER_AGENT",