@cyanheads/secedgar-mcp-server 0.15.12 → 0.15.13

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 (74) hide show
  1. package/AGENTS.md +7 -6
  2. package/CLAUDE.md +7 -6
  3. package/README.md +36 -36
  4. package/changelog/0.15.x/0.15.13.md +33 -0
  5. package/dist/config/server-config.d.ts.map +1 -1
  6. package/dist/config/server-config.js +47 -0
  7. package/dist/config/server-config.js.map +1 -1
  8. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts +7 -0
  9. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts.map +1 -1
  10. package/dist/mcp-server/tools/definitions/company-search.tool.js +8 -0
  11. package/dist/mcp-server/tools/definitions/company-search.tool.js.map +1 -1
  12. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts +7 -0
  13. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -1
  14. package/dist/mcp-server/tools/definitions/compare-companies.tool.js +8 -0
  15. package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts +7 -0
  17. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +8 -0
  19. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
  20. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts +7 -0
  21. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/find-holders.tool.js +8 -0
  23. package/dist/mcp-server/tools/definitions/find-holders.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts +7 -0
  25. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts.map +1 -1
  26. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js +8 -0
  27. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js.map +1 -1
  28. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts +7 -0
  29. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
  30. package/dist/mcp-server/tools/definitions/get-filing.tool.js +177 -45
  31. package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
  32. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts +7 -0
  33. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
  34. package/dist/mcp-server/tools/definitions/get-financials.tool.js +8 -0
  35. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  36. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts +7 -0
  37. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts.map +1 -1
  38. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js +8 -0
  39. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js.map +1 -1
  40. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts +7 -0
  41. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js +8 -0
  43. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js.map +1 -1
  44. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts +7 -0
  45. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts.map +1 -1
  46. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js +8 -0
  47. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js.map +1 -1
  48. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts +7 -0
  49. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/definitions/get-material-events.tool.js +8 -0
  51. package/dist/mcp-server/tools/definitions/get-material-events.tool.js.map +1 -1
  52. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts +7 -0
  53. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts.map +1 -1
  54. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js +8 -0
  55. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js.map +1 -1
  56. package/dist/mcp-server/tools/definitions/index.d.ts +91 -0
  57. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  58. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts +7 -0
  59. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -1
  60. package/dist/mcp-server/tools/definitions/search-filings.tool.js +8 -0
  61. package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -1
  62. package/dist/services/edgar/concept-series.d.ts.map +1 -1
  63. package/dist/services/edgar/concept-series.js +5 -1
  64. package/dist/services/edgar/concept-series.js.map +1 -1
  65. package/dist/services/edgar/edgar-api-service.d.ts +21 -11
  66. package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
  67. package/dist/services/edgar/edgar-api-service.js +132 -33
  68. package/dist/services/edgar/edgar-api-service.js.map +1 -1
  69. package/dist/services/edgar/filing-to-text.d.ts +73 -8
  70. package/dist/services/edgar/filing-to-text.d.ts.map +1 -1
  71. package/dist/services/edgar/filing-to-text.js +179 -31
  72. package/dist/services/edgar/filing-to-text.js.map +1 -1
  73. package/package.json +3 -3
  74. package/server.json +3 -3
@@ -41,16 +41,40 @@ export interface FilingHeading {
41
41
  heading: string;
42
42
  offset: number;
43
43
  }
44
+ /**
45
+ * A folded key's Item or Part marker — an Item code with an optional 8-K
46
+ * paragraph suffix, or a Part numeral — capturing the marker and the title
47
+ * after it, past an optional period and one dash, colon, or period separator. A
48
+ * bare marker captures an empty title.
49
+ */
50
+ export declare const MARKER_TITLE_RE: RegExp;
44
51
  /**
45
52
  * Comparison key for a heading, a line, or a `section` needle — the dedup key
46
53
  * for detected headings and the operand of `section`'s exact tiers.
47
54
  * {@link foldForHeadingMatch} covers the whitespace and quote differences a
48
- * filing prints between its TOC and its body; terminal sentence punctuation is
49
- * the remaining one (C3is' 20-F writes "Item 16J Insider Trading Policies" in the
50
- * TOC and "…Policies." in the body). Key-only — the entry keeps the document's
51
- * own heading text.
55
+ * filing prints between its TOC and its body. Two remain:
56
+ * - Terminal sentence punctuation: C3is' 20-F writes "Item 16J Insider Trading
57
+ * Policies" in the TOC and "…Policies." in the body.
58
+ * - The separator between an Item or Part marker and its title: Worthington
59
+ * Steel's 10-Q prints "Item 1A. Risk Factors" in its TOC and "Item 1A. – Risk
60
+ * Factors" in its body, so both kept an entry and `section` landed on the TOC
61
+ * row (#174). A marker key is rebuilt as the marker, one space, and the title
62
+ * ("item 1a risk factors"), whatever period, dash, or colon stood between them.
63
+ *
64
+ * Key-only — the entry keeps the document's own heading text.
52
65
  */
53
66
  export declare function headingKey(heading: string): string;
67
+ /**
68
+ * A folded key with its leading 20-F sub-item label removed ("3d. risk factors"
69
+ * → "risk factors"), or undefined when it opens on none (#175). 20-F filers label
70
+ * sub-items ("3D. RISK FACTORS", "B. Business Overview"), so a plain-phrase
71
+ * `section` never equalled the line. Comparison-time only: `section`'s exact and
72
+ * line tiers compare a heading or line key both with and without its label,
73
+ * while the caller's value is compared as given, and no labelled line becomes a
74
+ * detected heading. A line opening on an initial ("L. John Doerr") strips the
75
+ * same way, so it matches a value equal to the rest of the line.
76
+ */
77
+ export declare function withoutSubItemLabel(key: string): string | undefined;
54
78
  /**
55
79
  * Detect every heading in extracted text and return them with their offsets,
56
80
  * sorted by offset. Deduplicates by {@link headingKey}, keeping the later
@@ -75,10 +99,37 @@ export declare function detectHeadings(text: string): FilingHeading[];
75
99
  */
76
100
  export declare function foldForHeadingMatch(value: string): string;
77
101
  /**
78
- * The offset of the document line `section` names when no detected heading
79
- * does — a mixed-case subheading ("Liquidity and Capital Resources") that
80
- * {@link detectHeadings} never lists (#166). Lines compare by
81
- * {@link headingKey} on both sides, in two tiers:
102
+ * Whether a detected heading sits on a table-of-contents row, so `section` ranks
103
+ * it after every body heading of its tier (#174). The test runs on the heading's
104
+ * title line: its own line, or for a bare marker or a marker joined to a later
105
+ * title, the next line with content. That line is a TOC row by {@link isTocRow}
106
+ * (the line tiers' own test), or when the next line with content ends in a page
107
+ * cell — a TOC title wrapped onto a second line (Aware's "Item 5. Market for…
108
+ * Issuer Purchases / of Equity Securities....... 12").
109
+ *
110
+ * Three TOC shapes survive dedup: a body heading worded apart from its TOC row
111
+ * (First Bancorp's 8-K: "Item 9.01 Financial Statements and Exhibits. Page 1"
112
+ * over the body's "…Pro Forma Financial Information and Exhibits."), a bare
113
+ * all-caps marker over a title cell and a page cell (DRDGOLD's 20-F: "ITEM 3." /
114
+ * "KEY INFORMATION" / "6"), and the title cell itself.
115
+ *
116
+ * The test reads a page number under a body heading the same way (CCC's 10-K sets
117
+ * "Item 6. Reserved." over its page number), which is why a TOC row is only
118
+ * ranked last in its tier rather than dropped: alone in the tier, it still lands.
119
+ * A heading's offset can sit one past its line start (an NBSP-led Item, #176), so
120
+ * the line is found from the newline before it.
121
+ */
122
+ export declare function isTocHeading(text: string, heading: FilingHeading): boolean;
123
+ /** A document line `section` names: where it starts, and whether it equals the needle. */
124
+ export interface SectionLine {
125
+ /** True for a line equal to the needle, false for one that only starts with it. */
126
+ equal: boolean;
127
+ offset: number;
128
+ }
129
+ /**
130
+ * The document line `section` names — a mixed-case subheading ("Liquidity and
131
+ * Capital Resources") that {@link detectHeadings} never lists (#166). Lines
132
+ * compare by {@link headingKey} on both sides, in two tiers:
82
133
  * 1. A line equal to the needle.
83
134
  * 2. Only when no line is equal: a line that starts with the needle at a word
84
135
  * boundary and runs at most {@link MAX_TITLE_CHARS} characters — a heading
@@ -88,6 +139,18 @@ export declare function foldForHeadingMatch(value: string): string;
88
139
  * tier alone would take a bullet such as "Competition among vendors…" ahead
89
140
  * of the "Competition" heading.
90
141
  *
142
+ * The result says which tier hit, because `section` ranks the two apart (#177):
143
+ * an equal line ahead of a heading that only contains the value, a prefix line
144
+ * after every heading. One pass yields both, so a caller needing each pays for
145
+ * one scan.
146
+ *
147
+ * Both tiers also compare the line's key with a leading 20-F sub-item label
148
+ * removed ({@link withoutSubItemLabel}, #175), so `risk factors` reaches "3D.
149
+ * RISK FACTORS"; the longer-title test then judges the line after its label
150
+ * ("B. Business Overview" keeps `business` out). The needle is never stripped,
151
+ * so a labelled value still matches its own line. The landing is the line's
152
+ * first character, label included.
153
+ *
91
154
  * In both tiers a line is skipped when it opens on a lowercase letter (a
92
155
  * wrapped sentence or bullet: "competition in our market…", a lone "business."
93
156
  * ending a wrapped paragraph), sits under a line ending mid-sentence or opens on
@@ -97,6 +160,8 @@ export declare function foldForHeadingMatch(value: string): string;
97
160
  * line wins; its offset is the line's first non-blank character. One forward
98
161
  * pass over the text; a line shorter than the needle is never folded.
99
162
  */
163
+ export declare function matchSectionLine(text: string, section: string): SectionLine | undefined;
164
+ /** The offset of the line {@link matchSectionLine} lands on: the equal line, else the prefix line. */
100
165
  export declare function findSectionLine(text: string, section: string): number | undefined;
101
166
  /** Convert filing HTML to plain text, optionally truncating to a character limit. */
102
167
  export declare function filingToText(html: string, limit?: number): {
@@ -1 +1 @@
1
- {"version":3,"file":"filing-to-text.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/filing-to-text.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmLH,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAuCD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE3E;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAE5E;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,oDAAoD;AACpD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAkUD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AA8CD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CA+H5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOzD;AA2FD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgCjF;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAgB3D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBhF"}
1
+ {"version":3,"file":"filing-to-text.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/filing-to-text.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmLH,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAuCD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE3E;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAE5E;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,oDAAoD;AACpD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAgVD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QACiE,CAAC;AAK9F;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKlD;AAmBD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGnE;AA0DD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAsI5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOzD;AAwED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAc1E;AAoCD,0FAA0F;AAC1F,MAAM,WAAW,WAAW;IAC1B,mFAAmF;IACnF,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAkCvF;AAED,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjF;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAgB3D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBhF"}
@@ -295,6 +295,18 @@ const ITEM_CODE = String.raw `\d{1,2}(?:\.\d{2}|[a-z])?`;
295
295
  * `[a-c]`) and the marker's trailing period is optional — 20-F filers write
296
296
  * the lettered markers unpunctuated.
297
297
  *
298
+ * An indented line is no heading — admitting indentation fills the outline with
299
+ * centered cover legends and promotes indented TOC rows — with one exception: a
300
+ * same-line Item line, on either Item arm, may open on one NBSP (#176). An
301
+ * ` ` ahead of a styled marker leaves the extracted line starting on
302
+ * U+00A0 (Horizon Space's 8-K: "<NBSP>Item 1.01. Entry into a Material
303
+ * Definitive Agreement."), and the line anchor kept that Item out of the
304
+ * outline. A lookahead admits the NBSP only before an Item marker, and
305
+ * {@link itemEntryOffset} records the entry at the marker and drops a line that
306
+ * is a bare marker once its page cell is stripped. Part lines get no such
307
+ * allowance: Microsoft's 2004 10-K stamps an NBSP-led "Part I" on every page,
308
+ * and counting those would turn its body Parts into running-header furniture.
309
+ *
298
310
  * Both all-caps alternatives already absorb trailing whitespace, so that arm
299
311
  * ends at `$` with no `[^\S\n]*` of its own: the two quantifiers competing for one
300
312
  * whitespace run backtracked quadratically on a long run before a lowercase
@@ -307,9 +319,11 @@ const ITEM_CODE = String.raw `\d{1,2}(?:\.\d{2}|[a-z])?`;
307
319
  *
308
320
  * Heuristics — best-effort, not guaranteed to match all or only headings.
309
321
  */
310
- const ALL_CAPS_HEADING_RE = /^(ITEM[^\S\n]+\d+[A-Z]?\b[^\n]*|([A-Z][[A-Z0-9,\(\)\&.\/'’–—\-][\s--\n]]{8,}))$/gmv;
311
- const ITEM_PART_HEADING_RE = new RegExp(String.raw `^(item[^\S\n]+(${ITEM_CODE})(?:\.?[^\S\n]+|(?<=\.\d{2})(?:\([a-z]\))?\.?[^\S\n]*(?=[a-z]))(\S[^\n]*)` +
322
+ const ALL_CAPS_HEADING_RE = /^(?:\xA0(?=ITEM[^\S\n]+\d+[A-Z]?\b))?(ITEM[^\S\n]+\d+[A-Z]?\b[^\n]*|([A-Z][[A-Z0-9,\(\)\&.\/'’–—\-][\s--\n]]{8,}))$/gmv;
323
+ const ITEM_PART_HEADING_RE = new RegExp(String.raw `^(?:\xA0(?=item[^\S\n]))?(item[^\S\n]+(${ITEM_CODE})(?:\.?[^\S\n]+|(?<=\.\d{2})(?:\([a-z]\))?\.?[^\S\n]*(?=[a-z]))(\S[^\n]*)` +
312
324
  String.raw `|part[^\S\n]+[ivx]{1,4}\b\.?(?:[^\S\n]*(?:[-–—:.][^\S\n]*)?([a-z][^\n]{0,140}))?)[^\S\n]*$`, 'gim');
325
+ /** The one leading character a same-line Item heading may open on (#176). */
326
+ const NBSP = '\xA0';
313
327
  const BARE_ITEM_MARKER_RE = new RegExp(String.raw `^(item[^\S\n]+(${ITEM_CODE})\.?)[^\S\n]*$`, 'gim');
314
328
  /**
315
329
  * An Item marker with no period or colon after it, capturing the first
@@ -541,17 +555,65 @@ function dropBarePartsTitledLater(headings) {
541
555
  function stripPageNumberTail(heading) {
542
556
  return heading.replace(TOC_PAGE_TAIL_RE, '');
543
557
  }
558
+ /**
559
+ * A folded key's Item or Part marker — an Item code with an optional 8-K
560
+ * paragraph suffix, or a Part numeral — capturing the marker and the title
561
+ * after it, past an optional period and one dash, colon, or period separator. A
562
+ * bare marker captures an empty title.
563
+ */
564
+ export const MARKER_TITLE_RE = /^(item \d{1,2}(?:\.\d{2}|[a-z])?(?:\([a-z]\))?|part [ivx]{1,4}\b)\.? ?(?:[-–—:.] ?)?(.*)$/;
565
+ /** Terminal sentence punctuation on a folded key. */
566
+ const TERMINAL_PUNCTUATION_RE = /(?<![.,;:])[.,;:]+$/;
544
567
  /**
545
568
  * Comparison key for a heading, a line, or a `section` needle — the dedup key
546
569
  * for detected headings and the operand of `section`'s exact tiers.
547
570
  * {@link foldForHeadingMatch} covers the whitespace and quote differences a
548
- * filing prints between its TOC and its body; terminal sentence punctuation is
549
- * the remaining one (C3is' 20-F writes "Item 16J Insider Trading Policies" in the
550
- * TOC and "…Policies." in the body). Key-only — the entry keeps the document's
551
- * own heading text.
571
+ * filing prints between its TOC and its body. Two remain:
572
+ * - Terminal sentence punctuation: C3is' 20-F writes "Item 16J Insider Trading
573
+ * Policies" in the TOC and "…Policies." in the body.
574
+ * - The separator between an Item or Part marker and its title: Worthington
575
+ * Steel's 10-Q prints "Item 1A. Risk Factors" in its TOC and "Item 1A. – Risk
576
+ * Factors" in its body, so both kept an entry and `section` landed on the TOC
577
+ * row (#174). A marker key is rebuilt as the marker, one space, and the title
578
+ * ("item 1a risk factors"), whatever period, dash, or colon stood between them.
579
+ *
580
+ * Key-only — the entry keeps the document's own heading text.
552
581
  */
553
582
  export function headingKey(heading) {
554
- return foldForHeadingMatch(heading).replace(/[.,;:]+$/, '');
583
+ const key = printedKey(heading);
584
+ const [, marker, title] = MARKER_TITLE_RE.exec(key) ?? [];
585
+ if (marker === undefined)
586
+ return key;
587
+ return title ? `${marker} ${title}` : marker;
588
+ }
589
+ /**
590
+ * A heading's printed form for the running-header count: {@link headingKey}
591
+ * short of the marker-separator fold. Page furniture repeats one printed form;
592
+ * counted on the dedup key, a 10-Q's per-page "Part I. Financial Information"
593
+ * pooled with its TOC row and body heading "PART I – FINANCIAL INFORMATION",
594
+ * and the TOC row, first of the pool, took the body heading's place.
595
+ */
596
+ function printedKey(heading) {
597
+ return foldForHeadingMatch(heading).replace(TERMINAL_PUNCTUATION_RE, '');
598
+ }
599
+ /**
600
+ * A 20-F sub-item label opening a folded key: a digit-led one ("3d. ") or a
601
+ * single letter ("b. "). Anchored, so it costs the same on any key.
602
+ */
603
+ const SUB_ITEM_LABEL_RE = /^(?:\d{1,2}[a-z]|[a-z])\. /;
604
+ /**
605
+ * A folded key with its leading 20-F sub-item label removed ("3d. risk factors"
606
+ * → "risk factors"), or undefined when it opens on none (#175). 20-F filers label
607
+ * sub-items ("3D. RISK FACTORS", "B. Business Overview"), so a plain-phrase
608
+ * `section` never equalled the line. Comparison-time only: `section`'s exact and
609
+ * line tiers compare a heading or line key both with and without its label,
610
+ * while the caller's value is compared as given, and no labelled line becomes a
611
+ * detected heading. A line opening on an initial ("L. John Doerr") strips the
612
+ * same way, so it matches a value equal to the rest of the line.
613
+ */
614
+ export function withoutSubItemLabel(key) {
615
+ const label = SUB_ITEM_LABEL_RE.exec(key);
616
+ return label === null ? undefined : key.slice(label[0].length);
555
617
  }
556
618
  /**
557
619
  * The title for a bare Item marker whose line ends at `markerLineEnd`, or
@@ -596,6 +658,19 @@ function usableTitle(raw, maxChars) {
596
658
  return;
597
659
  return title;
598
660
  }
661
+ /**
662
+ * The offset of the entry a heading match at `lineStart` records: the line
663
+ * start, or past the one NBSP a same-line Item line may open on (#176). An
664
+ * NBSP-led line yields no entry when its page cell stripped leaves a bare marker
665
+ * ("ITEM 2.02", "Item 1. 3"), since the exception admits titled headings only.
666
+ */
667
+ function itemEntryOffset(text, lineStart, heading) {
668
+ if (!text.startsWith(NBSP, lineStart))
669
+ return lineStart;
670
+ if (BARE_MARKER_HEADING_RE.test(stripPageNumberTail(heading).trim()))
671
+ return;
672
+ return lineStart + 1;
673
+ }
599
674
  /**
600
675
  * Detect every heading in extracted text and return them with their offsets,
601
676
  * sorted by offset. Deduplicates by {@link headingKey}, keeping the later
@@ -611,6 +686,8 @@ export function detectHeadings(text) {
611
686
  if (trimmed.length > 0)
612
687
  matches.push({ heading: trimmed, index });
613
688
  };
689
+ // The guards read a line from its real start (`match.index`), the one NBSP an
690
+ // Item line may open on included (#176); `itemEntryOffset` places the entry.
614
691
  ALL_CAPS_HEADING_RE.lastIndex = 0;
615
692
  for (let match = ALL_CAPS_HEADING_RE.exec(text); match !== null; match = ALL_CAPS_HEADING_RE.exec(text)) {
616
693
  const [, heading, capsLine] = match;
@@ -627,7 +704,9 @@ export function detectHeadings(text) {
627
704
  if (partTitle !== undefined && isPartCrossReference(text, match.index, partTitle))
628
705
  continue;
629
706
  }
630
- add(heading, match.index);
707
+ const offset = itemEntryOffset(text, match.index, heading);
708
+ if (offset !== undefined)
709
+ add(heading, offset);
631
710
  }
632
711
  ITEM_PART_HEADING_RE.lastIndex = 0;
633
712
  for (let match = ITEM_PART_HEADING_RE.exec(text); match !== null; match = ITEM_PART_HEADING_RE.exec(text)) {
@@ -642,7 +721,9 @@ export function detectHeadings(text) {
642
721
  (!/^[A-Z]/.test(partTitle) || isPartCrossReference(text, match.index, partTitle))) {
643
722
  continue;
644
723
  }
645
- add(heading, match.index);
724
+ const offset = itemEntryOffset(text, match.index, heading);
725
+ if (offset !== undefined)
726
+ add(heading, offset);
646
727
  }
647
728
  // Bare marker, title on a later line — the shape every Item takes in a 20-F
648
729
  // rendered one cell per line, in both the TOC and the body (#105).
@@ -685,7 +766,7 @@ export function detectHeadings(text) {
685
766
  // would read three occurrences of one heading as page furniture.
686
767
  const positions = new Map();
687
768
  for (const { heading, index } of matches) {
688
- const key = headingKey(heading);
769
+ const key = printedKey(heading);
689
770
  const seen = positions.get(key) ?? new Set();
690
771
  seen.add(index);
691
772
  positions.set(key, seen);
@@ -694,23 +775,26 @@ export function detectHeadings(text) {
694
775
  // collapses "Part I" TOC vs "PART I" body). Page furniture inverts that: it
695
776
  // keeps the first occurrence, or none at all when it is a bare marker.
696
777
  // `matches` is offset-sorted, so the first write wins for furniture and the
697
- // last for everything else.
778
+ // last for everything else. Furniture keeps its first occurrence in a map of
779
+ // its own, so a TOC row or body heading sharing its dedup key in another
780
+ // separator form neither joins the count nor gives way to it.
698
781
  const byHeading = new Map();
782
+ const furniture = new Map();
699
783
  for (const { heading, index } of matches) {
700
- const key = headingKey(heading);
701
- if ((positions.get(key)?.size ?? 0) >= RUNNING_HEADER_MIN_OCCURRENCES) {
784
+ const printed = printedKey(heading);
785
+ if ((positions.get(printed)?.size ?? 0) >= RUNNING_HEADER_MIN_OCCURRENCES) {
702
786
  if (BARE_MARKER_HEADING_RE.test(heading))
703
787
  continue;
704
- if (!byHeading.has(key))
705
- byHeading.set(key, { heading, offset: index });
788
+ if (!furniture.has(printed))
789
+ furniture.set(printed, { heading, offset: index });
706
790
  continue;
707
791
  }
708
- byHeading.set(key, { heading, offset: index });
792
+ byHeading.set(headingKey(heading), { heading, offset: index });
709
793
  }
710
794
  // An all-caps marker line ("ITEM 2.02") matches the all-caps arm on its own
711
795
  // and also joins the title below it; when both survive dedup at one offset,
712
796
  // the bare entry is the same heading listed twice.
713
- const entries = [...byHeading.values()];
797
+ const entries = [...byHeading.values(), ...furniture.values()];
714
798
  const titledOffsets = new Set(entries.filter((h) => !BARE_MARKER_HEADING_RE.test(h.heading)).map((h) => h.offset));
715
799
  const sorted = entries
716
800
  .filter((h) => !(BARE_MARKER_HEADING_RE.test(h.heading) && titledOffsets.has(h.offset)))
@@ -805,6 +889,43 @@ function isTocRow(text, line, after) {
805
889
  const page = nextContentLine(text, below.end);
806
890
  return page !== undefined && PAGE_CELL_LINE_RE.test(page.line);
807
891
  }
892
+ /**
893
+ * Whether a detected heading sits on a table-of-contents row, so `section` ranks
894
+ * it after every body heading of its tier (#174). The test runs on the heading's
895
+ * title line: its own line, or for a bare marker or a marker joined to a later
896
+ * title, the next line with content. That line is a TOC row by {@link isTocRow}
897
+ * (the line tiers' own test), or when the next line with content ends in a page
898
+ * cell — a TOC title wrapped onto a second line (Aware's "Item 5. Market for…
899
+ * Issuer Purchases / of Equity Securities....... 12").
900
+ *
901
+ * Three TOC shapes survive dedup: a body heading worded apart from its TOC row
902
+ * (First Bancorp's 8-K: "Item 9.01 Financial Statements and Exhibits. Page 1"
903
+ * over the body's "…Pro Forma Financial Information and Exhibits."), a bare
904
+ * all-caps marker over a title cell and a page cell (DRDGOLD's 20-F: "ITEM 3." /
905
+ * "KEY INFORMATION" / "6"), and the title cell itself.
906
+ *
907
+ * The test reads a page number under a body heading the same way (CCC's 10-K sets
908
+ * "Item 6. Reserved." over its page number), which is why a TOC row is only
909
+ * ranked last in its tier rather than dropped: alone in the tier, it still lands.
910
+ * A heading's offset can sit one past its line start (an NBSP-led Item, #176), so
911
+ * the line is found from the newline before it.
912
+ */
913
+ export function isTocHeading(text, heading) {
914
+ const lineStart = text.lastIndexOf('\n', heading.offset - 1) + 1;
915
+ const newline = text.indexOf('\n', heading.offset);
916
+ const lineEnd = newline === -1 ? text.length : newline;
917
+ const titledHere = !BARE_MARKER_HEADING_RE.test(heading.heading) &&
918
+ text.startsWith(heading.heading, heading.offset);
919
+ const title = titledHere
920
+ ? { line: text.slice(lineStart, lineEnd), end: lineEnd + 1 }
921
+ : nextContentLine(text, lineEnd + 1);
922
+ if (title === undefined)
923
+ return false;
924
+ if (isTocRow(text, title.line, title.end))
925
+ return true;
926
+ const below = nextContentLine(text, title.end);
927
+ return below !== undefined && TOC_PAGE_TAIL_RE.test(below.line);
928
+ }
808
929
  /**
809
930
  * Whether a prefix line runs on past a one-word needle into a longer Title Case
810
931
  * title — the next word opens on a capital in a line that is not all caps. One
@@ -815,8 +936,9 @@ function isTocRow(text, line, after) {
815
936
  * ("Human Capital" → "Human Capital Management"), and a suffix opening
816
937
  * lowercase ("as of June 30, 2026") or on punctuation ("(continued)",
817
938
  * "—Parent Company Only") continues the needle's own heading. `key` is the
818
- * line's {@link headingKey}, which starts with `needle`; folding maps every
819
- * whitespace run to one space, so the needle is exactly the line's first word.
939
+ * line's {@link headingKey}, which starts with `needle` — for a labelled line,
940
+ * the key and the line both past the label (#175); folding maps every whitespace
941
+ * run to one space, so the needle is exactly the line's first word.
820
942
  */
821
943
  function continuesIntoLongerTitle(line, key, needle) {
822
944
  if (needle.includes(' ') || key.charAt(needle.length) !== ' ')
@@ -826,10 +948,20 @@ function continuesIntoLongerTitle(line, key, needle) {
826
948
  return /^\p{Lu}/u.test(line.trim().split(/\s+/)[1] ?? '');
827
949
  }
828
950
  /**
829
- * The offset of the document line `section` names when no detected heading
830
- * does — a mixed-case subheading ("Liquidity and Capital Resources") that
831
- * {@link detectHeadings} never lists (#166). Lines compare by
832
- * {@link headingKey} on both sides, in two tiers:
951
+ * Whether a line whose key is `key` is a prefix-tier landing for `needle`: the
952
+ * key starts with it at a word boundary, runs at most {@link MAX_TITLE_CHARS}
953
+ * characters, and does not run on into a longer title.
954
+ */
955
+ function startsWithTitle(line, key, needle) {
956
+ return (key.length <= MAX_TITLE_CHARS &&
957
+ key.startsWith(needle) &&
958
+ !/[\p{L}\p{N}]/u.test(key.charAt(needle.length)) &&
959
+ !continuesIntoLongerTitle(line, key, needle));
960
+ }
961
+ /**
962
+ * The document line `section` names — a mixed-case subheading ("Liquidity and
963
+ * Capital Resources") that {@link detectHeadings} never lists (#166). Lines
964
+ * compare by {@link headingKey} on both sides, in two tiers:
833
965
  * 1. A line equal to the needle.
834
966
  * 2. Only when no line is equal: a line that starts with the needle at a word
835
967
  * boundary and runs at most {@link MAX_TITLE_CHARS} characters — a heading
@@ -839,6 +971,18 @@ function continuesIntoLongerTitle(line, key, needle) {
839
971
  * tier alone would take a bullet such as "Competition among vendors…" ahead
840
972
  * of the "Competition" heading.
841
973
  *
974
+ * The result says which tier hit, because `section` ranks the two apart (#177):
975
+ * an equal line ahead of a heading that only contains the value, a prefix line
976
+ * after every heading. One pass yields both, so a caller needing each pays for
977
+ * one scan.
978
+ *
979
+ * Both tiers also compare the line's key with a leading 20-F sub-item label
980
+ * removed ({@link withoutSubItemLabel}, #175), so `risk factors` reaches "3D.
981
+ * RISK FACTORS"; the longer-title test then judges the line after its label
982
+ * ("B. Business Overview" keeps `business` out). The needle is never stripped,
983
+ * so a labelled value still matches its own line. The landing is the line's
984
+ * first character, label included.
985
+ *
842
986
  * In both tiers a line is skipped when it opens on a lowercase letter (a
843
987
  * wrapped sentence or bullet: "competition in our market…", a lone "business."
844
988
  * ending a wrapped paragraph), sits under a line ending mid-sentence or opens on
@@ -848,7 +992,7 @@ function continuesIntoLongerTitle(line, key, needle) {
848
992
  * line wins; its offset is the line's first non-blank character. One forward
849
993
  * pass over the text; a line shorter than the needle is never folded.
850
994
  */
851
- export function findSectionLine(text, section) {
995
+ export function matchSectionLine(text, section) {
852
996
  const needle = headingKey(section);
853
997
  if (needle.length === 0)
854
998
  return;
@@ -862,13 +1006,13 @@ export function findSectionLine(text, section) {
862
1006
  if (line.length < needle.length)
863
1007
  continue;
864
1008
  const key = headingKey(line);
865
- const equal = key === needle;
1009
+ const unlabelled = withoutSubItemLabel(key);
1010
+ const equal = key === needle || unlabelled === needle;
866
1011
  if (!equal &&
867
1012
  (prefixHit !== undefined ||
868
- key.length > MAX_TITLE_CHARS ||
869
- !key.startsWith(needle) ||
870
- /[\p{L}\p{N}]/u.test(key.charAt(needle.length)) ||
871
- continuesIntoLongerTitle(line, key, needle))) {
1013
+ !(startsWithTitle(line, key, needle) ||
1014
+ (unlabelled !== undefined &&
1015
+ startsWithTitle(line.trimStart().replace(/^\S+\s+/, ''), unlabelled, needle))))) {
872
1016
  continue;
873
1017
  }
874
1018
  const content = line.trimStart();
@@ -880,10 +1024,14 @@ export function findSectionLine(text, section) {
880
1024
  continue;
881
1025
  const offset = lineStart + line.length - content.length;
882
1026
  if (equal)
883
- return offset;
1027
+ return { equal, offset };
884
1028
  prefixHit = offset;
885
1029
  }
886
- return prefixHit;
1030
+ return prefixHit === undefined ? undefined : { equal: false, offset: prefixHit };
1031
+ }
1032
+ /** The offset of the line {@link matchSectionLine} lands on: the equal line, else the prefix line. */
1033
+ export function findSectionLine(text, section) {
1034
+ return matchSectionLine(text, section)?.offset;
887
1035
  }
888
1036
  /** Convert filing HTML to plain text, optionally truncating to a character limit. */
889
1037
  export function filingToText(html, limit) {
@@ -1 +1 @@
1
- {"version":3,"file":"filing-to-text.js","sourceRoot":"","sources":["../../../src/services/edgar/filing-to-text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filing-to-text.js","sourceRoot":"","sources":["../../../src/services/edgar/filing-to-text.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.15.12",
3
+ "version": "0.15.13",
4
4
  "description": "Query SEC EDGAR filings, XBRL financials, and company data via MCP. STDIO or Streamable HTTP.",
5
5
  "mcpName": "io.github.cyanheads/secedgar-mcp-server",
6
6
  "type": "module",
@@ -106,7 +106,7 @@
106
106
  "htmlparser2": "^12.0.0",
107
107
  "node-cron": "^4.6.0",
108
108
  "pino-pretty": "^13.2.0",
109
- "zod": "^4.6.5"
109
+ "zod": "^4.6.7"
110
110
  },
111
111
  "devDependencies": {
112
112
  "@biomejs/biome": "^2.5.15",
@@ -117,7 +117,7 @@
117
117
  "ignore": "^7.0.12",
118
118
  "tsc-alias": "^1.9.7",
119
119
  "typescript": "^7.0.2",
120
- "vitest": "^5.0.3"
120
+ "vitest": "^5.0.5"
121
121
  },
122
122
  "trustedDependencies": ["@socketsecurity/bun-security-scanner", "better-sqlite3"]
123
123
  }
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.15.12",
9
+ "version": "0.15.13",
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": "npx",
22
- "version": "0.15.12",
22
+ "version": "0.15.13",
23
23
  "environmentVariables": [
24
24
  {
25
25
  "name": "EDGAR_USER_AGENT",
@@ -51,7 +51,7 @@
51
51
  "registryBaseUrl": "https://registry.npmjs.org",
52
52
  "identifier": "@cyanheads/secedgar-mcp-server",
53
53
  "runtimeHint": "npx",
54
- "version": "0.15.12",
54
+ "version": "0.15.13",
55
55
  "environmentVariables": [
56
56
  {
57
57
  "name": "EDGAR_USER_AGENT",