@cyanheads/secedgar-mcp-server 0.8.4 → 0.10.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.
- package/README.md +11 -4
- package/dist/mcp-server/resources/definitions/concepts.resource.d.ts.map +1 -1
- package/dist/mcp-server/resources/definitions/concepts.resource.js +7 -1
- package/dist/mcp-server/resources/definitions/concepts.resource.js.map +1 -1
- package/dist/mcp-server/tools/definitions/company-search.tool.d.ts +4 -2
- package/dist/mcp-server/tools/definitions/company-search.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/company-search.tool.js +33 -8
- package/dist/mcp-server/tools/definitions/company-search.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/dataframe-describe.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/dataframe-describe.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts +4 -0
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +18 -2
- package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts +6 -0
- package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js +84 -9
- package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts +5 -0
- package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js +56 -1
- package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-concepts.tool.d.ts +4 -0
- package/dist/mcp-server/tools/definitions/search-concepts.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-concepts.tool.js +18 -0
- package/dist/mcp-server/tools/definitions/search-concepts.tool.js.map +1 -1
- package/dist/services/edgar/concept-map.d.ts.map +1 -1
- package/dist/services/edgar/concept-map.js +31 -0
- package/dist/services/edgar/concept-map.js.map +1 -1
- package/dist/services/edgar/data/former-names.json +6395 -0
- package/dist/services/edgar/edgar-api-service.d.ts +41 -2
- package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
- package/dist/services/edgar/edgar-api-service.js +192 -15
- package/dist/services/edgar/edgar-api-service.js.map +1 -1
- package/dist/services/edgar/mirror/tickers-sync.d.ts +12 -5
- package/dist/services/edgar/mirror/tickers-sync.d.ts.map +1 -1
- package/dist/services/edgar/mirror/tickers-sync.js +50 -13
- package/dist/services/edgar/mirror/tickers-sync.js.map +1 -1
- package/dist/services/edgar/types.d.ts +24 -2
- package/dist/services/edgar/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/server.json +3 -3
|
@@ -6,6 +6,23 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { type FilingDocumentHeader } from './filing-headers.js';
|
|
8
8
|
import type { CikMatch, CompanyConceptResponse, EftsResponse, FilingIndex, FramesResponse, SubmissionsResponse } from './types.js';
|
|
9
|
+
/** A candidate suggestion from the trigram scan on no-result name search. */
|
|
10
|
+
export interface CompanySuggestion {
|
|
11
|
+
cik: string;
|
|
12
|
+
name?: string;
|
|
13
|
+
ticker?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Dice-coefficient trigram similarity between two strings.
|
|
17
|
+
* Returns a value in [0, 1]; 1 means identical.
|
|
18
|
+
*/
|
|
19
|
+
export declare function trigramSimilarity(a: string, b: string): number;
|
|
20
|
+
/**
|
|
21
|
+
* Run a trigram similarity scan over the in-memory entry set.
|
|
22
|
+
* Only entries with a name are considered. Returns up to TRIGRAM_TOP_N
|
|
23
|
+
* candidates whose Dice score meets TRIGRAM_THRESHOLD, sorted descending.
|
|
24
|
+
*/
|
|
25
|
+
export declare function suggestCompanies(query: string, allEntries: CikMatch[]): CompanySuggestion[];
|
|
9
26
|
declare class EdgarApiService {
|
|
10
27
|
private lastRequestAt;
|
|
11
28
|
private minIntervalMs;
|
|
@@ -25,11 +42,16 @@ declare class EdgarApiService {
|
|
|
25
42
|
* Resolve a query (ticker, name, or CIK) to company match(es).
|
|
26
43
|
* - Numeric input → direct CIK lookup
|
|
27
44
|
* - 1-5 uppercase letters → ticker lookup (O(1))
|
|
28
|
-
* - Otherwise → name search (prefix, then substring)
|
|
45
|
+
* - Otherwise → name search (prefix, then substring, then trigram suggestions)
|
|
46
|
+
* Returns a single match, an array of multiple matches, or an empty array (no match).
|
|
47
|
+
* On no-result name search, the returned empty array carries `suggestions` on
|
|
48
|
+
* the thrown error at the handler layer — call `suggestCompanies` there.
|
|
29
49
|
*/
|
|
30
50
|
resolveCik(query: string): Promise<CikMatch | CikMatch[]>;
|
|
31
51
|
/** Reverse lookup: CIK → ticker symbol. */
|
|
32
52
|
cikToTicker(cik: string): Promise<string | undefined>;
|
|
53
|
+
/** Return the current in-memory entry list (used by the handler for trigram suggestions). */
|
|
54
|
+
getAllEntries(): Promise<CikMatch[]>;
|
|
33
55
|
getSubmissions(cik: string): Promise<SubmissionsResponse>;
|
|
34
56
|
searchFilings(params: {
|
|
35
57
|
query: string;
|
|
@@ -121,9 +143,26 @@ declare class EdgarApiService {
|
|
|
121
143
|
* Load the ticker index, preferring the local mirror when enabled and synced.
|
|
122
144
|
* The live directory is the cold-start / not-ready fallback (and the only path
|
|
123
145
|
* when the mirror is off).
|
|
146
|
+
*
|
|
147
|
+
* In addition to company_tickers.json (operating companies), also loads
|
|
148
|
+
* company_tickers_mf.json (ETFs and mutual funds) and merges fund symbols into
|
|
149
|
+
* the byTicker index so fund tickers like VOO, SCHD, and JEPI resolve correctly.
|
|
124
150
|
*/
|
|
125
151
|
private loadTickerCache;
|
|
126
|
-
/**
|
|
152
|
+
/**
|
|
153
|
+
* Fetch and parse company_tickers_mf.json. Returns an empty array on failure
|
|
154
|
+
* so a SEC file outage does not break company resolution entirely.
|
|
155
|
+
* Entries are MF-only: they carry seriesId/classId and no `name` field.
|
|
156
|
+
* These merge into byTicker only (not byCik) since one registrant trust
|
|
157
|
+
* holds many fund series.
|
|
158
|
+
*/
|
|
159
|
+
private loadMfTickers;
|
|
160
|
+
/**
|
|
161
|
+
* Build the in-memory CIK index from normalized entries (live JSON or mirror rows).
|
|
162
|
+
* MF entries (with seriesId/classId) go into byTicker only — not byCik — because
|
|
163
|
+
* a registrant trust (e.g. CIK 36405 = Vanguard Index Funds) holds many series.
|
|
164
|
+
* Former-name entries go into allEntries only (name search only, no ticker/CIK index).
|
|
165
|
+
*/
|
|
127
166
|
private buildTickerCache;
|
|
128
167
|
}
|
|
129
168
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgar-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/edgar-api-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"edgar-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/edgar-api-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,85 @@ import { notFound, serviceUnavailable } from '@cyanheads/mcp-ts-core/errors';
|
|
|
8
8
|
import { httpErrorFromResponse } from '@cyanheads/mcp-ts-core/utils';
|
|
9
9
|
import { getServerConfig } from '../../config/server-config.js';
|
|
10
10
|
import { getEdgarMirror } from '../../services/edgar/mirror/index.js';
|
|
11
|
+
import formerNamesData from './data/former-names.json' with { type: 'json' };
|
|
11
12
|
import { parseFilingHeaders } from './filing-headers.js';
|
|
12
13
|
const MAX_RETRIES = 3;
|
|
13
14
|
const BASE_BACKOFF_MS = 1000;
|
|
14
15
|
const RETRYABLE_STATUSES = new Set([429, 500, 502, 503, 504]);
|
|
16
|
+
/** URL for SEC's mutual-fund ticker file (ETFs and open-end funds). */
|
|
17
|
+
const MF_TICKERS_URL = 'https://www.sec.gov/files/company_tickers_mf.json';
|
|
18
|
+
/** Trigram similarity threshold — minimum Dice score to include a candidate suggestion. */
|
|
19
|
+
const TRIGRAM_THRESHOLD = 0.3;
|
|
20
|
+
/** Maximum number of near-match suggestions to include. */
|
|
21
|
+
const TRIGRAM_TOP_N = 3;
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
// Trigram (Dice-coefficient) similarity
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
/**
|
|
26
|
+
* Build the set of trigrams for a string.
|
|
27
|
+
* Pads with two spaces on each side so edge characters are covered.
|
|
28
|
+
*/
|
|
29
|
+
function trigramSet(s) {
|
|
30
|
+
const padded = ` ${s} `;
|
|
31
|
+
const grams = new Set();
|
|
32
|
+
for (let i = 0; i < padded.length - 2; i++) {
|
|
33
|
+
grams.add(padded.slice(i, i + 3));
|
|
34
|
+
}
|
|
35
|
+
return grams;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Dice-coefficient trigram similarity between two strings.
|
|
39
|
+
* Returns a value in [0, 1]; 1 means identical.
|
|
40
|
+
*/
|
|
41
|
+
export function trigramSimilarity(a, b) {
|
|
42
|
+
if (a === b)
|
|
43
|
+
return 1;
|
|
44
|
+
const ga = trigramSet(a);
|
|
45
|
+
const gb = trigramSet(b);
|
|
46
|
+
if (ga.size === 0 && gb.size === 0)
|
|
47
|
+
return 1;
|
|
48
|
+
if (ga.size === 0 || gb.size === 0)
|
|
49
|
+
return 0;
|
|
50
|
+
let intersection = 0;
|
|
51
|
+
for (const g of ga) {
|
|
52
|
+
if (gb.has(g))
|
|
53
|
+
intersection++;
|
|
54
|
+
}
|
|
55
|
+
return (2 * intersection) / (ga.size + gb.size);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Run a trigram similarity scan over the in-memory entry set.
|
|
59
|
+
* Only entries with a name are considered. Returns up to TRIGRAM_TOP_N
|
|
60
|
+
* candidates whose Dice score meets TRIGRAM_THRESHOLD, sorted descending.
|
|
61
|
+
*/
|
|
62
|
+
export function suggestCompanies(query, allEntries) {
|
|
63
|
+
const q = query.toLowerCase();
|
|
64
|
+
const scored = [];
|
|
65
|
+
for (const entry of allEntries) {
|
|
66
|
+
if (!entry.name)
|
|
67
|
+
continue;
|
|
68
|
+
const score = trigramSimilarity(q, entry.name.toLowerCase());
|
|
69
|
+
if (score >= TRIGRAM_THRESHOLD) {
|
|
70
|
+
scored.push({ score, entry });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
scored.sort((a, b) => b.score - a.score);
|
|
74
|
+
const top = scored.slice(0, TRIGRAM_TOP_N);
|
|
75
|
+
// Dedup by CIK — keep the highest-scored entry per CIK.
|
|
76
|
+
const seen = new Set();
|
|
77
|
+
const suggestions = [];
|
|
78
|
+
for (const { entry } of top) {
|
|
79
|
+
if (!seen.has(entry.cik)) {
|
|
80
|
+
seen.add(entry.cik);
|
|
81
|
+
suggestions.push({
|
|
82
|
+
cik: entry.cik,
|
|
83
|
+
...(entry.name !== undefined ? { name: entry.name } : {}),
|
|
84
|
+
...(entry.ticker !== undefined ? { ticker: entry.ticker } : {}),
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return suggestions;
|
|
89
|
+
}
|
|
15
90
|
class EdgarApiService {
|
|
16
91
|
lastRequestAt = 0;
|
|
17
92
|
minIntervalMs;
|
|
@@ -53,7 +128,10 @@ class EdgarApiService {
|
|
|
53
128
|
* Resolve a query (ticker, name, or CIK) to company match(es).
|
|
54
129
|
* - Numeric input → direct CIK lookup
|
|
55
130
|
* - 1-5 uppercase letters → ticker lookup (O(1))
|
|
56
|
-
* - Otherwise → name search (prefix, then substring)
|
|
131
|
+
* - Otherwise → name search (prefix, then substring, then trigram suggestions)
|
|
132
|
+
* Returns a single match, an array of multiple matches, or an empty array (no match).
|
|
133
|
+
* On no-result name search, the returned empty array carries `suggestions` on
|
|
134
|
+
* the thrown error at the handler layer — call `suggestCompanies` there.
|
|
57
135
|
*/
|
|
58
136
|
async resolveCik(query) {
|
|
59
137
|
const cache = await this.getTickerCache();
|
|
@@ -68,14 +146,14 @@ class EdgarApiService {
|
|
|
68
146
|
// return a CIK-only match and let the caller resolve identity from submissions.
|
|
69
147
|
return { cik: padded };
|
|
70
148
|
}
|
|
71
|
-
// Short alphabetic → ticker
|
|
149
|
+
// Short alphabetic → ticker (includes ETF/MF tickers from company_tickers_mf.json)
|
|
72
150
|
const upper = trimmed.toUpperCase();
|
|
73
151
|
if (/^[A-Z]{1,5}$/.test(upper)) {
|
|
74
152
|
const match = cache.byTicker.get(upper);
|
|
75
153
|
if (match)
|
|
76
154
|
return match;
|
|
77
155
|
}
|
|
78
|
-
// Name search: exact → prefix → substring
|
|
156
|
+
// Name search: exact → prefix → substring (current names + former names)
|
|
79
157
|
const lower = trimmed.toLowerCase();
|
|
80
158
|
const exact = [];
|
|
81
159
|
const prefix = [];
|
|
@@ -94,11 +172,22 @@ class EdgarApiService {
|
|
|
94
172
|
substring.push(entry);
|
|
95
173
|
}
|
|
96
174
|
}
|
|
97
|
-
const
|
|
175
|
+
const combined = [...exact, ...prefix, ...substring];
|
|
176
|
+
// Dedup by CIK (current + former names may match the same registrant).
|
|
177
|
+
const seen = new Set();
|
|
178
|
+
const deduped = [];
|
|
179
|
+
for (const entry of combined) {
|
|
180
|
+
if (!seen.has(entry.cik)) {
|
|
181
|
+
seen.add(entry.cik);
|
|
182
|
+
deduped.push(entry);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
const results = deduped.slice(0, 5);
|
|
98
186
|
if (results.length > 0) {
|
|
99
187
|
return results.length === 1 ? results[0] : results;
|
|
100
188
|
}
|
|
101
|
-
// Also try as ticker if nothing matched
|
|
189
|
+
// Also try as ticker if nothing matched (handles >5-char and digit-containing symbols
|
|
190
|
+
// that bypassed the early ticker gate above)
|
|
102
191
|
const tickerMatch = cache.byTicker.get(upper);
|
|
103
192
|
return tickerMatch ?? [];
|
|
104
193
|
}
|
|
@@ -107,6 +196,11 @@ class EdgarApiService {
|
|
|
107
196
|
const cache = await this.getTickerCache();
|
|
108
197
|
return cache.byCik.get(cik.padStart(10, '0'))?.ticker;
|
|
109
198
|
}
|
|
199
|
+
/** Return the current in-memory entry list (used by the handler for trigram suggestions). */
|
|
200
|
+
async getAllEntries() {
|
|
201
|
+
const cache = await this.getTickerCache();
|
|
202
|
+
return cache.allEntries;
|
|
203
|
+
}
|
|
110
204
|
// --- SEC API Methods ---
|
|
111
205
|
getSubmissions(cik) {
|
|
112
206
|
const padded = cik.padStart(10, '0');
|
|
@@ -324,40 +418,123 @@ class EdgarApiService {
|
|
|
324
418
|
* Load the ticker index, preferring the local mirror when enabled and synced.
|
|
325
419
|
* The live directory is the cold-start / not-ready fallback (and the only path
|
|
326
420
|
* when the mirror is off).
|
|
421
|
+
*
|
|
422
|
+
* In addition to company_tickers.json (operating companies), also loads
|
|
423
|
+
* company_tickers_mf.json (ETFs and mutual funds) and merges fund symbols into
|
|
424
|
+
* the byTicker index so fund tickers like VOO, SCHD, and JEPI resolve correctly.
|
|
327
425
|
*/
|
|
328
426
|
async loadTickerCache() {
|
|
329
427
|
const mirror = getEdgarMirror();
|
|
330
428
|
if (mirror && (await mirror.tickersReady())) {
|
|
331
429
|
const rows = await mirror.getTickerRows();
|
|
332
430
|
if (rows.length > 0)
|
|
333
|
-
return this.buildTickerCache(rows);
|
|
431
|
+
return this.buildTickerCache(rows, buildFormerNameEntries());
|
|
334
432
|
}
|
|
335
433
|
else if (mirror && !getServerConfig().mirrorFallbackLive) {
|
|
336
434
|
throw serviceUnavailable('EDGAR mirror enabled but the ticker layer is not synced; run `bun run mirror:init`', { layer: 'tickers' });
|
|
337
435
|
}
|
|
436
|
+
// Fetch operating-company tickers (company_tickers.json)
|
|
338
437
|
const raw = await this.fetchJson('https://www.sec.gov/files/company_tickers.json');
|
|
339
|
-
|
|
438
|
+
const entries = Object.values(raw).map((entry) => ({
|
|
340
439
|
cik: String(entry.cik_str).padStart(10, '0'),
|
|
341
440
|
name: entry.title,
|
|
342
441
|
ticker: entry.ticker,
|
|
343
|
-
}))
|
|
442
|
+
}));
|
|
443
|
+
// Fetch ETF/mutual-fund tickers (company_tickers_mf.json).
|
|
444
|
+
// 404 or any error is non-fatal — degrade gracefully with operating-company-only index.
|
|
445
|
+
const mfEntries = await this.loadMfTickers();
|
|
446
|
+
entries.push(...mfEntries);
|
|
447
|
+
// Merge the committed former-names asset.
|
|
448
|
+
const formerEntries = buildFormerNameEntries();
|
|
449
|
+
return this.buildTickerCache(entries, formerEntries);
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Fetch and parse company_tickers_mf.json. Returns an empty array on failure
|
|
453
|
+
* so a SEC file outage does not break company resolution entirely.
|
|
454
|
+
* Entries are MF-only: they carry seriesId/classId and no `name` field.
|
|
455
|
+
* These merge into byTicker only (not byCik) since one registrant trust
|
|
456
|
+
* holds many fund series.
|
|
457
|
+
*/
|
|
458
|
+
async loadMfTickers() {
|
|
459
|
+
try {
|
|
460
|
+
const mfRaw = await this.fetchJson(MF_TICKERS_URL);
|
|
461
|
+
if (!Array.isArray(mfRaw?.fields) || !Array.isArray(mfRaw?.data))
|
|
462
|
+
return [];
|
|
463
|
+
const fieldIdx = {
|
|
464
|
+
cik: mfRaw.fields.indexOf('cik'),
|
|
465
|
+
seriesId: mfRaw.fields.indexOf('seriesId'),
|
|
466
|
+
classId: mfRaw.fields.indexOf('classId'),
|
|
467
|
+
symbol: mfRaw.fields.indexOf('symbol'),
|
|
468
|
+
};
|
|
469
|
+
if (fieldIdx.cik < 0 || fieldIdx.symbol < 0)
|
|
470
|
+
return [];
|
|
471
|
+
return mfRaw.data
|
|
472
|
+
.filter((row) => row[fieldIdx.symbol])
|
|
473
|
+
.map((row) => ({
|
|
474
|
+
cik: String(row[fieldIdx.cik]).padStart(10, '0'),
|
|
475
|
+
name: '',
|
|
476
|
+
ticker: String(row[fieldIdx.symbol]),
|
|
477
|
+
seriesId: fieldIdx.seriesId >= 0 ? String(row[fieldIdx.seriesId]) : '',
|
|
478
|
+
classId: fieldIdx.classId >= 0 ? String(row[fieldIdx.classId]) : '',
|
|
479
|
+
}));
|
|
480
|
+
}
|
|
481
|
+
catch {
|
|
482
|
+
// Degrade gracefully — fund tickers won't resolve, but operating companies still work.
|
|
483
|
+
return [];
|
|
484
|
+
}
|
|
344
485
|
}
|
|
345
|
-
/**
|
|
346
|
-
|
|
486
|
+
/**
|
|
487
|
+
* Build the in-memory CIK index from normalized entries (live JSON or mirror rows).
|
|
488
|
+
* MF entries (with seriesId/classId) go into byTicker only — not byCik — because
|
|
489
|
+
* a registrant trust (e.g. CIK 36405 = Vanguard Index Funds) holds many series.
|
|
490
|
+
* Former-name entries go into allEntries only (name search only, no ticker/CIK index).
|
|
491
|
+
*/
|
|
492
|
+
buildTickerCache(entries, formerEntries = []) {
|
|
347
493
|
const byTicker = new Map();
|
|
348
494
|
const byCik = new Map();
|
|
349
495
|
const allEntries = [];
|
|
350
496
|
for (const entry of entries) {
|
|
351
|
-
const
|
|
352
|
-
|
|
353
|
-
const
|
|
354
|
-
|
|
355
|
-
|
|
497
|
+
const isMf = Boolean(entry.seriesId !== undefined && entry.seriesId !== '');
|
|
498
|
+
const hasName = Boolean(entry.name);
|
|
499
|
+
const match = {
|
|
500
|
+
cik: entry.cik,
|
|
501
|
+
ticker: entry.ticker,
|
|
502
|
+
...(hasName ? { name: entry.name } : {}),
|
|
503
|
+
...(isMf && entry.seriesId ? { seriesId: entry.seriesId } : {}),
|
|
504
|
+
...(isMf && entry.classId ? { classId: entry.classId } : {}),
|
|
505
|
+
};
|
|
506
|
+
// Operating-company tickers take precedence: a fund symbol must not override an
|
|
507
|
+
// existing equity ticker on the rare cross-file symbol collision (e.g. SPCX).
|
|
508
|
+
const tickerKey = entry.ticker.toUpperCase();
|
|
509
|
+
if (!isMf || !byTicker.has(tickerKey)) {
|
|
510
|
+
byTicker.set(tickerKey, match);
|
|
511
|
+
}
|
|
512
|
+
// MF entries must not overwrite byCik — the trust CIK is 1:many with fund series.
|
|
513
|
+
if (!isMf) {
|
|
514
|
+
const existing = byCik.get(match.cik);
|
|
515
|
+
byCik.set(match.cik, existing ? pickPreferredTicker(existing, match) : match);
|
|
516
|
+
}
|
|
517
|
+
// Only push to allEntries if the entry has a name (for name search).
|
|
518
|
+
// MF entries have no name, so they're ticker-only.
|
|
519
|
+
if (match.name) {
|
|
520
|
+
allEntries.push(match);
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
// Former-name entries: allEntries only (name search + trigram), no ticker/CIK index.
|
|
524
|
+
for (const fn of formerEntries) {
|
|
525
|
+
allEntries.push({ cik: fn.cik, name: fn.name });
|
|
356
526
|
}
|
|
357
527
|
this.tickerCache = { byTicker, byCik, allEntries, loadedAt: Date.now() };
|
|
358
528
|
return this.tickerCache;
|
|
359
529
|
}
|
|
360
530
|
}
|
|
531
|
+
/**
|
|
532
|
+
* Build former-name entries from the committed static asset.
|
|
533
|
+
* Each tuple is [lowercasedName, zeroPaddedCIK].
|
|
534
|
+
*/
|
|
535
|
+
function buildFormerNameEntries() {
|
|
536
|
+
return formerNamesData.map(([name, cik]) => ({ cik, name }));
|
|
537
|
+
}
|
|
361
538
|
/**
|
|
362
539
|
* Pick the better of two ticker entries sharing a CIK. SEC's
|
|
363
540
|
* `company_tickers.json` lists every class, preferred-share, and debt-security
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgar-api-service.js","sourceRoot":"","sources":["../../../src/services/edgar/edgar-api-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"edgar-api-service.js","sourceRoot":"","sources":["../../../src/services/edgar/edgar-api-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Ingester for the ticker/CIK layer. Downloads SEC's
|
|
3
|
-
* `company_tickers.json` (
|
|
4
|
-
*
|
|
3
|
+
* `company_tickers.json` (operating companies) and `company_tickers_mf.json`
|
|
4
|
+
* (ETFs and mutual funds), merges them, and yields one page of rows.
|
|
5
|
+
* Upsert-only: the directory rarely drops entries and CIKs are permanent,
|
|
5
6
|
* so a delisted ticker lingering with its historical CIK is low-harm.
|
|
6
7
|
* @module services/edgar/mirror/tickers-sync
|
|
7
8
|
*/
|
|
8
9
|
import type { SyncGenerator } from '@cyanheads/mcp-ts-core/mirror';
|
|
9
10
|
/**
|
|
10
|
-
* Build the ticker-layer ingester. The returned generator downloads
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* Build the ticker-layer ingester. The returned generator downloads both
|
|
12
|
+
* company_tickers.json (operating companies) and company_tickers_mf.json
|
|
13
|
+
* (ETFs and mutual funds), merges them into a single page, and yields it.
|
|
14
|
+
* The files are small, so refresh simply re-downloads and re-upserts.
|
|
15
|
+
*
|
|
16
|
+
* Mirror schema carries only {ticker, cik, name} — no series/class columns.
|
|
17
|
+
* Fund entries are ingested with an empty name (the name field is absent from
|
|
18
|
+
* company_tickers_mf.json). They resolve by ticker on the mirror path just as
|
|
19
|
+
* they do on the live path; seriesId/classId enrichment is live-path-only.
|
|
13
20
|
*/
|
|
14
21
|
export declare function makeTickersSync(opts: {
|
|
15
22
|
userAgent: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickers-sync.d.ts","sourceRoot":"","sources":["../../../../src/services/edgar/mirror/tickers-sync.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tickers-sync.d.ts","sourceRoot":"","sources":["../../../../src/services/edgar/mirror/tickers-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAGV,aAAa,EAEd,MAAM,+BAA+B,CAAC;AAmBvC;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CA2D1E"}
|
|
@@ -1,28 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Ingester for the ticker/CIK layer. Downloads SEC's
|
|
3
|
-
* `company_tickers.json` (
|
|
4
|
-
*
|
|
3
|
+
* `company_tickers.json` (operating companies) and `company_tickers_mf.json`
|
|
4
|
+
* (ETFs and mutual funds), merges them, and yields one page of rows.
|
|
5
|
+
* Upsert-only: the directory rarely drops entries and CIKs are permanent,
|
|
5
6
|
* so a delisted ticker lingering with its historical CIK is low-harm.
|
|
6
7
|
* @module services/edgar/mirror/tickers-sync
|
|
7
8
|
*/
|
|
8
9
|
import { serviceUnavailable } from '@cyanheads/mcp-ts-core/errors';
|
|
9
10
|
import { lastModifiedToIso, TICKERS_URL } from './types.js';
|
|
11
|
+
/** URL for SEC's mutual-fund / ETF ticker directory. */
|
|
12
|
+
const MF_TICKERS_URL = 'https://www.sec.gov/files/company_tickers_mf.json';
|
|
10
13
|
/**
|
|
11
|
-
* Build the ticker-layer ingester. The returned generator downloads
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
+
* Build the ticker-layer ingester. The returned generator downloads both
|
|
15
|
+
* company_tickers.json (operating companies) and company_tickers_mf.json
|
|
16
|
+
* (ETFs and mutual funds), merges them into a single page, and yields it.
|
|
17
|
+
* The files are small, so refresh simply re-downloads and re-upserts.
|
|
18
|
+
*
|
|
19
|
+
* Mirror schema carries only {ticker, cik, name} — no series/class columns.
|
|
20
|
+
* Fund entries are ingested with an empty name (the name field is absent from
|
|
21
|
+
* company_tickers_mf.json). They resolve by ticker on the mirror path just as
|
|
22
|
+
* they do on the live path; seriesId/classId enrichment is live-path-only.
|
|
14
23
|
*/
|
|
15
24
|
export function makeTickersSync(opts) {
|
|
16
25
|
return async function* tickersSync(ctx) {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
});
|
|
26
|
+
const headers = { 'User-Agent': opts.userAgent, Accept: 'application/json' };
|
|
27
|
+
// Fetch operating-company tickers
|
|
28
|
+
const response = await fetch(TICKERS_URL, { headers, signal: ctx.signal });
|
|
21
29
|
if (!response.ok) {
|
|
22
|
-
throw serviceUnavailable(`SEC company_tickers.json download failed (HTTP ${response.status})`, {
|
|
23
|
-
url: TICKERS_URL,
|
|
24
|
-
status: response.status,
|
|
25
|
-
});
|
|
30
|
+
throw serviceUnavailable(`SEC company_tickers.json download failed (HTTP ${response.status})`, { url: TICKERS_URL, status: response.status });
|
|
26
31
|
}
|
|
27
32
|
const raw = (await response.json());
|
|
28
33
|
const records = [];
|
|
@@ -35,6 +40,38 @@ export function makeTickersSync(opts) {
|
|
|
35
40
|
name: entry.title ?? '',
|
|
36
41
|
});
|
|
37
42
|
}
|
|
43
|
+
// Operating-company tickers take precedence on a cross-file symbol collision (e.g. SPCX),
|
|
44
|
+
// so a fund symbol is skipped when it duplicates an equity ticker already ingested above.
|
|
45
|
+
const equityTickers = new Set(records.map((r) => r.ticker));
|
|
46
|
+
// Fetch ETF/mutual-fund tickers — non-fatal on failure.
|
|
47
|
+
try {
|
|
48
|
+
const mfResponse = await fetch(MF_TICKERS_URL, { headers, signal: ctx.signal });
|
|
49
|
+
if (mfResponse.ok) {
|
|
50
|
+
const mfRaw = (await mfResponse.json());
|
|
51
|
+
if (Array.isArray(mfRaw?.fields) && Array.isArray(mfRaw?.data)) {
|
|
52
|
+
const symbolIdx = mfRaw.fields.indexOf('symbol');
|
|
53
|
+
const cikIdx = mfRaw.fields.indexOf('cik');
|
|
54
|
+
if (symbolIdx >= 0 && cikIdx >= 0) {
|
|
55
|
+
for (const row of mfRaw.data) {
|
|
56
|
+
const symbol = row[symbolIdx];
|
|
57
|
+
if (!symbol)
|
|
58
|
+
continue;
|
|
59
|
+
const ticker = String(symbol).toUpperCase();
|
|
60
|
+
if (equityTickers.has(ticker))
|
|
61
|
+
continue;
|
|
62
|
+
records.push({
|
|
63
|
+
ticker,
|
|
64
|
+
cik: String(row[cikIdx]).padStart(10, '0'),
|
|
65
|
+
name: '',
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// Non-fatal — mirror will resolve operating companies; fund tickers will miss.
|
|
74
|
+
}
|
|
38
75
|
// Checkpoint must be lexicographically monotonic — store ISO 8601, not the raw HTTP-date.
|
|
39
76
|
const checkpoint = lastModifiedToIso(response.headers.get('last-modified'));
|
|
40
77
|
yield { records, checkpoint };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickers-sync.js","sourceRoot":"","sources":["../../../../src/services/edgar/mirror/tickers-sync.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tickers-sync.js","sourceRoot":"","sources":["../../../../src/services/edgar/mirror/tickers-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAOnE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAe5D,wDAAwD;AACxD,MAAM,cAAc,GAAG,mDAAmD,CAAC;AAE3E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,IAA2B;IACzD,OAAO,KAAK,SAAS,CAAC,CAAC,WAAW,CAAC,GAAgB;QACjD,MAAM,OAAO,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QAE7E,kCAAkC;QAClC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,kBAAkB,CACtB,kDAAkD,QAAQ,CAAC,MAAM,GAAG,EACpE,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAC9C,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmC,CAAC;QACtE,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,EAAE,MAAM;gBAAE,SAAS;YAC7B,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;gBAClC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;gBAC5C,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;aACxB,CAAC,CAAC;QACL,CAAC;QAED,0FAA0F;QAC1F,0FAA0F;QAC1F,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAE5D,wDAAwD;QACxD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAiB,CAAC;gBACxD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACjD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC3C,IAAI,SAAS,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;wBAClC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;4BAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;4BAC9B,IAAI,CAAC,MAAM;gCAAE,SAAS;4BACtB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;4BAC5C,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gCAAE,SAAS;4BACxC,OAAO,CAAC,IAAI,CAAC;gCACX,MAAM;gCACN,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;gCAC1C,IAAI,EAAE,EAAE;6BACT,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+EAA+E;QACjF,CAAC;QAED,0FAA0F;QAC1F,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5E,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -5,8 +5,12 @@
|
|
|
5
5
|
/** CIK resolution result from company_tickers.json lookup. */
|
|
6
6
|
export interface CikMatch {
|
|
7
7
|
cik: string;
|
|
8
|
+
/** SEC fund class ID (e.g. "C000092055"). Present only for ETF/mutual-fund tickers resolved via company_tickers_mf.json. */
|
|
9
|
+
classId?: string;
|
|
8
10
|
exchange?: string;
|
|
9
11
|
name?: string;
|
|
12
|
+
/** SEC fund series ID (e.g. "S000002839"). Present only for ETF/mutual-fund tickers resolved via company_tickers_mf.json. */
|
|
13
|
+
seriesId?: string;
|
|
10
14
|
ticker?: string;
|
|
11
15
|
}
|
|
12
16
|
/** Raw entry from SEC's company_tickers.json. */
|
|
@@ -19,7 +23,8 @@ export interface TickerEntry {
|
|
|
19
23
|
export interface SubmissionsResponse {
|
|
20
24
|
cik: string;
|
|
21
25
|
entityType: string;
|
|
22
|
-
exchanges
|
|
26
|
+
/** Listed exchanges. SEC returns `null` elements for entities with no listed exchange (e.g. private or pre-IPO filers). */
|
|
27
|
+
exchanges: Array<string | null>;
|
|
23
28
|
filings: {
|
|
24
29
|
recent: FilingsRecent;
|
|
25
30
|
files: Array<{
|
|
@@ -29,7 +34,8 @@ export interface SubmissionsResponse {
|
|
|
29
34
|
filingTo: string;
|
|
30
35
|
}>;
|
|
31
36
|
};
|
|
32
|
-
|
|
37
|
+
/** Fiscal year end (MMDD). `null` for filers SEC records no fiscal year end for. */
|
|
38
|
+
fiscalYearEnd: string | null;
|
|
33
39
|
name: string;
|
|
34
40
|
sic: string;
|
|
35
41
|
sicDescription: string;
|
|
@@ -148,6 +154,13 @@ export interface FrameEntry {
|
|
|
148
154
|
export type ConceptGroup = 'income_statement' | 'balance_sheet' | 'cash_flow' | 'per_share' | 'entity_info';
|
|
149
155
|
/** XBRL taxonomy a concept belongs to. */
|
|
150
156
|
export type ConceptTaxonomy = 'us-gaap' | 'ifrs-full' | 'dei';
|
|
157
|
+
/** An alternate-semantics XBRL tag related to a concept, with the reason it differs. */
|
|
158
|
+
export interface RelatedTag {
|
|
159
|
+
/** How this tag differs semantically from the mapped tag (e.g. "includes restricted cash"). */
|
|
160
|
+
note: string;
|
|
161
|
+
/** XBRL tag a meaningful share of filers report this metric under instead. */
|
|
162
|
+
tag: string;
|
|
163
|
+
}
|
|
151
164
|
/** Friendly concept name mapping. */
|
|
152
165
|
export interface ConceptMapping {
|
|
153
166
|
group: ConceptGroup;
|
|
@@ -158,6 +171,15 @@ export interface ConceptMapping {
|
|
|
158
171
|
*/
|
|
159
172
|
ifrsTags?: string[];
|
|
160
173
|
label: string;
|
|
174
|
+
/**
|
|
175
|
+
* Alternate-semantics XBRL tags a meaningful share of filers use as their primary
|
|
176
|
+
* line for this metric, surfaced as a hint by `secedgar_fetch_frames`. NOT pure
|
|
177
|
+
* synonyms of `tags` (those differ historically but mean the same thing) — these
|
|
178
|
+
* carry a different definition (e.g. cash incl. restricted cash, equity incl.
|
|
179
|
+
* noncontrolling interest), so they are deliberately kept OUT of `tags` to avoid
|
|
180
|
+
* conflating them into `secedgar_get_financials`' first-non-null fallback chain.
|
|
181
|
+
*/
|
|
182
|
+
relatedTags?: RelatedTag[];
|
|
161
183
|
tags: string[];
|
|
162
184
|
taxonomy: ConceptTaxonomy;
|
|
163
185
|
unit: string;
|