@cyanheads/secedgar-mcp-server 0.15.11 → 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 (85) hide show
  1. package/AGENTS.md +14 -12
  2. package/CLAUDE.md +14 -12
  3. package/Dockerfile +4 -4
  4. package/README.md +39 -39
  5. package/changelog/0.15.x/0.15.12.md +33 -0
  6. package/changelog/0.15.x/0.15.13.md +33 -0
  7. package/dist/config/server-config.d.ts.map +1 -1
  8. package/dist/config/server-config.js +47 -0
  9. package/dist/config/server-config.js.map +1 -1
  10. package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js +1 -1
  11. package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js.map +1 -1
  12. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts +7 -0
  13. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts.map +1 -1
  14. package/dist/mcp-server/tools/definitions/company-search.tool.js +76 -19
  15. package/dist/mcp-server/tools/definitions/company-search.tool.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts +7 -0
  17. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/compare-companies.tool.js +132 -38
  19. package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -1
  20. package/dist/mcp-server/tools/definitions/dataframe-query.tool.d.ts +10 -4
  21. package/dist/mcp-server/tools/definitions/dataframe-query.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/dataframe-query.tool.js +11 -4
  23. package/dist/mcp-server/tools/definitions/dataframe-query.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts +7 -0
  25. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
  26. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +8 -0
  27. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
  28. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts +7 -0
  29. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts.map +1 -1
  30. package/dist/mcp-server/tools/definitions/find-holders.tool.js +8 -0
  31. package/dist/mcp-server/tools/definitions/find-holders.tool.js.map +1 -1
  32. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts +7 -0
  33. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts.map +1 -1
  34. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js +8 -0
  35. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js.map +1 -1
  36. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts +9 -2
  37. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
  38. package/dist/mcp-server/tools/definitions/get-filing.tool.js +308 -54
  39. package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
  40. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts +10 -3
  41. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/get-financials.tool.js +110 -41
  43. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  44. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts +7 -0
  45. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts.map +1 -1
  46. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js +8 -0
  47. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js.map +1 -1
  48. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts +7 -0
  49. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js +8 -0
  51. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js.map +1 -1
  52. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts +7 -0
  53. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts.map +1 -1
  54. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js +8 -0
  55. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js.map +1 -1
  56. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts +7 -0
  57. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts.map +1 -1
  58. package/dist/mcp-server/tools/definitions/get-material-events.tool.js +8 -0
  59. package/dist/mcp-server/tools/definitions/get-material-events.tool.js.map +1 -1
  60. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts +7 -0
  61. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts.map +1 -1
  62. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js +8 -0
  63. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js.map +1 -1
  64. package/dist/mcp-server/tools/definitions/index.d.ts +104 -7
  65. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  66. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts +7 -0
  67. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -1
  68. package/dist/mcp-server/tools/definitions/search-filings.tool.js +8 -0
  69. package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -1
  70. package/dist/services/canvas-bridge/canvas-bridge.d.ts +2 -2
  71. package/dist/services/canvas-bridge/canvas-bridge.js +2 -2
  72. package/dist/services/edgar/concept-series.d.ts +20 -8
  73. package/dist/services/edgar/concept-series.d.ts.map +1 -1
  74. package/dist/services/edgar/concept-series.js +74 -23
  75. package/dist/services/edgar/concept-series.js.map +1 -1
  76. package/dist/services/edgar/edgar-api-service.d.ts +21 -11
  77. package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
  78. package/dist/services/edgar/edgar-api-service.js +133 -34
  79. package/dist/services/edgar/edgar-api-service.js.map +1 -1
  80. package/dist/services/edgar/filing-to-text.d.ts +106 -6
  81. package/dist/services/edgar/filing-to-text.d.ts.map +1 -1
  82. package/dist/services/edgar/filing-to-text.js +570 -66
  83. package/dist/services/edgar/filing-to-text.js.map +1 -1
  84. package/package.json +9 -9
  85. package/server.json +4 -4
@@ -94,18 +94,13 @@ function isYearLong(fact) {
94
94
  /** Annual reports — `10-K`, the transition-period `10-KT`, `20-F`, and `40-F`, with amendments. */
95
95
  const ANNUAL_REPORT_FORM = /^(10-KT?|20-F|40-F)(\/A)?$/;
96
96
  /**
97
- * A filer's fiscal-year ends, sorted and each listed once: for every annual
98
- * report accession, the latest end among its year-long facts that ended before
99
- * it was filed, across every tag and unit. That is the report's own fiscal year
100
- * — the comparatives end earlier, and the before-filing guard drops a
101
- * forward-looking year-long figure (Walmart and P&G each carry one). Taking
102
- * every year-long fact from an annual report instead would admit off-cycle ends
103
- * that sit on quarter ends (Merck's and P&G's 09-30, Toyota's 06-30) and keep a
104
- * trailing-twelve-month figure ending there (#148). Units served as anything but
105
- * an array are skipped (#141).
97
+ * For every annual report accession, the ends of its year-long facts that ended
98
+ * before it was filed, across every tag and unit. The before-filing guard drops a
99
+ * forward-looking year-long figure (Walmart and P&G each carry one). Units served
100
+ * as anything but an array are skipped (#141).
106
101
  */
107
- export function fiscalYearEnds(unitMaps) {
108
- const latestByAccession = new Map();
102
+ function annualReportYearEnds(unitMaps) {
103
+ const endsByAccession = new Map();
109
104
  for (const units of unitMaps) {
110
105
  for (const facts of Object.values(units)) {
111
106
  if (!Array.isArray(facts))
@@ -114,28 +109,84 @@ export function fiscalYearEnds(unitMaps) {
114
109
  if (!ANNUAL_REPORT_FORM.test(fact.form) || fact.end >= fact.filed || !isYearLong(fact)) {
115
110
  continue;
116
111
  }
117
- const latest = latestByAccession.get(fact.accn);
118
- if (!latest || fact.end > latest)
119
- latestByAccession.set(fact.accn, fact.end);
112
+ const ends = endsByAccession.get(fact.accn) ?? new Set();
113
+ ends.add(fact.end);
114
+ endsByAccession.set(fact.accn, ends);
120
115
  }
121
116
  }
122
117
  }
123
- return [...new Set(latestByAccession.values())].sort();
118
+ return endsByAccession;
119
+ }
120
+ /** The latest of a report's year-long ends — its own fiscal year. */
121
+ function ownYearEnd(ends) {
122
+ return [...ends].reduce((latest, end) => (end > latest ? end : latest));
123
+ }
124
+ /** Each report's own year end, sorted and each listed once. */
125
+ function ownYearEnds(endsByAccession) {
126
+ return [...new Set([...endsByAccession.values()].map(ownYearEnd))].sort();
127
+ }
128
+ /**
129
+ * A filer's fiscal-year ends, sorted and each listed once: for every annual
130
+ * report accession, the latest end among its year-long facts that ended before
131
+ * it was filed ({@link annualReportYearEnds}). That is the report's own fiscal
132
+ * year — the comparatives end earlier. Taking every year-long fact from an
133
+ * annual report instead would admit off-cycle ends that sit on quarter ends
134
+ * (Merck's and P&G's 09-30, Toyota's 06-30) and keep a trailing-twelve-month
135
+ * figure ending there (#148).
136
+ */
137
+ export function fiscalYearEnds(unitMaps) {
138
+ return ownYearEnds(annualReportYearEnds(unitMaps));
139
+ }
140
+ /** {@link annualReportYearEnds} per companyfacts payload, so one payload is scanned at most once. */
141
+ const reportYearEndsByPayload = new WeakMap();
142
+ function payloadReportYearEnds(facts) {
143
+ let ends = reportYearEndsByPayload.get(facts);
144
+ if (!ends) {
145
+ ends = annualReportYearEnds(Object.values(facts.facts).flatMap((namespace) => Object.values(namespace).map((concept) => concept.units)));
146
+ reportYearEndsByPayload.set(facts, ends);
147
+ }
148
+ return ends;
124
149
  }
125
- /** {@link fiscalYearEnds} per companyfacts payload, so one payload is scanned at most once. */
126
- const yearEndsByPayload = new WeakMap();
127
150
  /**
128
151
  * The fiscal-year ends a companyfacts payload shows ({@link fiscalYearEnds}),
129
- * computed once per payload — `get_snapshot` resolves every catalog concept from
152
+ * scanned once per payload — `get_snapshot` resolves every catalog concept from
130
153
  * the same one.
131
154
  */
132
155
  export function filerFiscalYearEnds(facts) {
133
- let ends = yearEndsByPayload.get(facts);
134
- if (!ends) {
135
- ends = fiscalYearEnds(Object.values(facts.facts).flatMap((namespace) => Object.values(namespace).map((concept) => concept.units)));
136
- yearEndsByPayload.set(facts, ends);
156
+ return ownYearEnds(payloadReportYearEnds(facts));
157
+ }
158
+ /**
159
+ * Whether `end` falls a whole number of years before `yearEnd`, give or take a
160
+ * week — zero years included, so a 52/53-week year end a few days before the
161
+ * report's own counts as a year end in its own right.
162
+ */
163
+ function onEarlierYearEnd(end, yearEnd) {
164
+ const days = (Date.parse(yearEnd) - Date.parse(end)) / 86_400_000;
165
+ const drift = days - Math.round(days / 365.25) * 365.25;
166
+ return days > 0 && Math.abs(drift) <= FISCAL_YEAR_END_TOLERANCE_DAYS;
167
+ }
168
+ /**
169
+ * Every fiscal year a companyfacts payload closes, by its end date, sorted and
170
+ * each listed once: each annual report's own year ({@link filerFiscalYearEnds})
171
+ * plus the comparative years it restates — its year-long facts ending a whole
172
+ * number of years before its own end, within a week — so the prior years of a
173
+ * filer's first XBRL report count too (Microsoft's fiscal 2010 10-K closes 2009
174
+ * and 2008 as well). A year-long figure ending anywhere else in the report's
175
+ * year (a trailing twelve months to 09-30 in a December filer's 10-K) is no
176
+ * fiscal-year end and stays out. This is the set a balance-sheet value is
177
+ * selected on for an annual view (#167, #171). The 10-Q test of #148 keeps
178
+ * {@link filerFiscalYearEnds}: it matches day of year only, where a comparative
179
+ * year adds nothing but a wider tolerance.
180
+ */
181
+ export function filerFiscalYearEndsWithComparatives(facts) {
182
+ const ends = new Set();
183
+ for (const reported of payloadReportYearEnds(facts).values()) {
184
+ const own = ownYearEnd(reported);
185
+ for (const end of reported)
186
+ if (end === own || onEarlierYearEnd(end, own))
187
+ ends.add(end);
137
188
  }
138
- return ends;
189
+ return [...ends].sort();
139
190
  }
140
191
  /**
141
192
  * Whether a quarterly report's year-long fact covers a closed fiscal year. It
@@ -1 +1 @@
1
- {"version":3,"file":"concept-series.js","sourceRoot":"","sources":["../../../src/services/edgar/concept-series.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concept-series.js","sourceRoot":"","sources":["../../../src/services/edgar/concept-series.ts"],"names":[],"mappings":"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"}
@@ -274,20 +274,29 @@ declare class EdgarApiService {
274
274
  */
275
275
  private mirrorOrLive;
276
276
  /**
277
- * Paced fetch with retry/backoff. Returns the response on 2xx or 404; throws a
278
- * status-classified `McpError` on other non-OK statuses after retries are
279
- * exhausted, and the local refusal while SEC's rate-limit block is active.
277
+ * Paced fetch with retry/backoff. Returns the response on 2xx or 404. A 5xx, and
278
+ * an attempt that got no HTTP response, retry up to `MAX_RETRIES` attempts; then
279
+ * the 5xx throws its status-classified `McpError` and the no-response case throws
280
+ * `sec_unreachable`. Other non-OK statuses throw at once, as does the local
281
+ * refusal while SEC's rate-limit block is active, and the pacer's
282
+ * `RequestCancelled` — those are `McpError`s from `send()`, never retried.
280
283
  */
281
284
  private rawFetch;
282
285
  /**
283
- * One request through the block gate and the pacer. A 429 closes the gate
284
- * before the response is handed back, so no call admitted after it sends.
286
+ * One attempt through the block gate and the pacer. A 429 closes the gate
287
+ * before the response is handed back, so no call admitted after it sends. A
288
+ * `fetch` rejection comes back as an unanswered attempt, and so does a probe
289
+ * this call waited on that got no HTTP response; the gate's refusal and the
290
+ * pacer's `RequestCancelled` throw.
285
291
  */
286
292
  private send;
287
293
  /**
288
294
  * Wait until this call may send, or throw the local refusal while the
289
295
  * cool-down runs. The first call after the cool-down becomes the probe; every
290
- * call behind it waits for the probe to resolve and then reads the gate again.
296
+ * call behind it waits for the probe to resolve and then reads the gate again —
297
+ * unless the probe got no HTTP response, which each waiter takes as its own
298
+ * unanswered attempt. Otherwise calls queued behind a silent SEC would probe one
299
+ * at a time, 15 s each, and the last of N would wait about 45·N s (#173).
291
300
  */
292
301
  private admit;
293
302
  /** The error for a call made while the cool-down runs — nothing was sent. */
@@ -319,11 +328,12 @@ declare class EdgarApiService {
319
328
  /**
320
329
  * Fetch company_tickers_mf.json (ETFs and mutual funds) as fund rows carrying
321
330
  * series and class IDs. Never throws: operating-company resolution must not
322
- * depend on the fund file. A failed load — any HTTP failure, a malformed body,
323
- * or the block gate's local refusal — returns no rows and a `retryAt`, so the
324
- * index without funds stands for the retry window rather than the whole TTL
325
- * (#119). The window is at least the error's `retryAfter`, so a load refused
326
- * by the rate-limit gate is not retried until the cool-down ends.
331
+ * depend on the fund file. A failed load — any HTTP failure, no HTTP response
332
+ * at all (#173), a malformed body, or the block gate's local refusal — returns
333
+ * no rows and a `retryAt`, so the index without funds stands for the retry
334
+ * window rather than the whole TTL (#119). The window is at least the error's
335
+ * `retryAfter`, so a load refused by the rate-limit gate is not retried until
336
+ * the cool-down ends.
327
337
  */
328
338
  private loadMfTickers;
329
339
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"edgar-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/edgar-api-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edgar-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/edgar/edgar-api-service.ts"],"names":[],"mappings":"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"}
@@ -19,9 +19,28 @@ const BASE_BACKOFF_MS = 1000;
19
19
  * Statuses worth a retry. 429 is deliberately absent: SEC holds a rate-limit block
20
20
  * until the request rate has stayed under the threshold for ten minutes, so the
21
21
  * ~3s retry budget cannot outlast it and every retry restarts the clock the caller
22
- * is waiting on (#112).
22
+ * is waiting on (#112). An attempt that gets no HTTP response at all retries on the
23
+ * same ladder (#173).
23
24
  */
24
25
  const RETRYABLE_STATUSES = new Set([500, 502, 503, 504]);
26
+ /**
27
+ * How long one attempt may wait for response headers, counted from dispatch, before
28
+ * it is aborted and retried as a no-response failure (#173). Bun applies no connect
29
+ * timeout of its own — an unanswered connect waits out the OS TCP timeout, 75 s on
30
+ * macOS — and neither runtime bounds a server that accepts and never answers, so one
31
+ * attempt could outlast the MCP client's 60 s request timeout alone. Three capped
32
+ * attempts plus the 1 s and 2 s backoffs come to 48 s. The clock starts once the
33
+ * pacer dispatches the request, so queue time never counts, and stops at headers,
34
+ * so a multi-megabyte body is never cut off. SEC's slowest reads sampled send
35
+ * headers in under 2 s.
36
+ */
37
+ const ATTEMPT_HEADERS_TIMEOUT_MS = 15_000;
38
+ /**
39
+ * `data.reason` once every attempt got no HTTP response (#173). Declared retryable
40
+ * on every tool that reaches SEC; set on `data.retryable` here for the same reason
41
+ * as `rate_limited` (#122).
42
+ */
43
+ const SEC_UNREACHABLE_REASON = 'sec_unreachable';
25
44
  /**
26
45
  * `data.reason` on every SEC rate-limit failure — the upstream 429 and a call
27
46
  * refused locally while the cool-down after one runs — so a caller branches the
@@ -686,22 +705,30 @@ class EdgarApiService {
686
705
  }
687
706
  // --- Internals ---
688
707
  /**
689
- * Paced fetch with retry/backoff. Returns the response on 2xx or 404; throws a
690
- * status-classified `McpError` on other non-OK statuses after retries are
691
- * exhausted, and the local refusal while SEC's rate-limit block is active.
708
+ * Paced fetch with retry/backoff. Returns the response on 2xx or 404. A 5xx, and
709
+ * an attempt that got no HTTP response, retry up to `MAX_RETRIES` attempts; then
710
+ * the 5xx throws its status-classified `McpError` and the no-response case throws
711
+ * `sec_unreachable`. Other non-OK statuses throw at once, as does the local
712
+ * refusal while SEC's rate-limit block is active, and the pacer's
713
+ * `RequestCancelled` — those are `McpError`s from `send()`, never retried.
692
714
  */
693
715
  async rawFetch(url, acceptJson) {
694
716
  const headers = { 'User-Agent': getServerConfig().userAgent };
695
717
  if (acceptJson)
696
718
  headers.Accept = 'application/json';
697
- for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
698
- const response = await this.send(url, headers);
699
- if (response.ok || response.status === 404)
700
- return response;
701
- if (RETRYABLE_STATUSES.has(response.status) && attempt < MAX_RETRIES - 1) {
719
+ for (let attempt = 0;; attempt++) {
720
+ const outcome = await this.send(url, headers);
721
+ if (outcome.kind === 'answered' && (outcome.response.ok || outcome.response.status === 404)) {
722
+ return outcome.response;
723
+ }
724
+ const transient = outcome.kind === 'unanswered' || RETRYABLE_STATUSES.has(outcome.response.status);
725
+ if (transient && attempt < MAX_RETRIES - 1) {
702
726
  await sleep(BASE_BACKOFF_MS * 2 ** attempt);
703
727
  continue;
704
728
  }
729
+ if (outcome.kind === 'unanswered')
730
+ throw secUnreachable(url, outcome);
731
+ const { response } = outcome;
705
732
  const data = { url };
706
733
  if (response.status === 403) {
707
734
  const host = new URL(url).hostname;
@@ -725,39 +752,43 @@ class EdgarApiService {
725
752
  captureBody: response.status !== 429,
726
753
  });
727
754
  }
728
- throw serviceUnavailable('SEC EDGAR API request failed after retries', { url });
729
755
  }
730
756
  /**
731
- * One request through the block gate and the pacer. A 429 closes the gate
732
- * before the response is handed back, so no call admitted after it sends.
757
+ * One attempt through the block gate and the pacer. A 429 closes the gate
758
+ * before the response is handed back, so no call admitted after it sends. A
759
+ * `fetch` rejection comes back as an unanswered attempt, and so does a probe
760
+ * this call waited on that got no HTTP response; the gate's refusal and the
761
+ * pacer's `RequestCancelled` throw.
733
762
  */
734
763
  async send(url, headers) {
735
764
  const admission = await this.admit();
736
- let answered = false;
765
+ if ('kind' in admission)
766
+ return admission;
767
+ let outcome;
737
768
  try {
738
- const response = await this.pacer.run(() => {
769
+ outcome = await this.pacer.run(() => {
739
770
  // Re-read at dispatch: a 429 may have landed while this call waited for its
740
771
  // slot, and a call queued before the block must not go out inside it.
741
772
  if (this.gate !== admission.gate)
742
773
  throw this.cooldownRefusal();
743
- return globalThis.fetch(url, { headers });
774
+ return fetchUntilHeaders(url, headers);
744
775
  });
745
- if (response.status === 429) {
776
+ if (outcome.kind === 'answered' && outcome.response.status === 429) {
746
777
  this.gate = { state: 'closed', reopensAt: Date.now() + this.cooldownMs };
747
778
  }
748
- else {
749
- answered = true;
750
- }
751
- return response;
779
+ return outcome;
752
780
  }
753
781
  finally {
754
- admission.releaseProbe?.(answered);
782
+ admission.releaseProbe?.(outcome);
755
783
  }
756
784
  }
757
785
  /**
758
786
  * Wait until this call may send, or throw the local refusal while the
759
787
  * cool-down runs. The first call after the cool-down becomes the probe; every
760
- * call behind it waits for the probe to resolve and then reads the gate again.
788
+ * call behind it waits for the probe to resolve and then reads the gate again —
789
+ * unless the probe got no HTTP response, which each waiter takes as its own
790
+ * unanswered attempt. Otherwise calls queued behind a silent SEC would probe one
791
+ * at a time, 15 s each, and the last of N would wait about 45·N s (#173).
761
792
  */
762
793
  async admit() {
763
794
  for (;;) {
@@ -765,7 +796,9 @@ class EdgarApiService {
765
796
  if (gate.state === 'open')
766
797
  return { gate };
767
798
  if (gate.state === 'probing') {
768
- await gate.settled;
799
+ const unanswered = await gate.settled;
800
+ if (unanswered)
801
+ return unanswered;
769
802
  continue;
770
803
  }
771
804
  if (gate.reopensAt > Date.now())
@@ -775,16 +808,18 @@ class EdgarApiService {
775
808
  this.gate = probe;
776
809
  return {
777
810
  gate: probe,
778
- releaseProbe: (answered) => {
811
+ releaseProbe: (outcome) => {
779
812
  /**
780
813
  * A probe 429 has already closed the gate for a full cool-down. Any other
781
- * reply means SEC is serving again; no reply at all (a network error)
782
- * proves nothing, so the next call probes in its place.
814
+ * reply means SEC is serving again; no reply at all (a network error, or
815
+ * no headers within the per-attempt cap) proves nothing about the block,
816
+ * so the gate stays shut for the next call to probe in its place.
783
817
  */
784
818
  if (this.gate === probe) {
785
- this.gate = answered ? OPEN_GATE : { state: 'closed', reopensAt: Date.now() };
819
+ this.gate =
820
+ outcome?.kind === 'answered' ? OPEN_GATE : { state: 'closed', reopensAt: Date.now() };
786
821
  }
787
- settle();
822
+ settle(outcome?.kind === 'unanswered' ? outcome : undefined);
788
823
  },
789
824
  };
790
825
  }
@@ -876,11 +911,12 @@ class EdgarApiService {
876
911
  /**
877
912
  * Fetch company_tickers_mf.json (ETFs and mutual funds) as fund rows carrying
878
913
  * series and class IDs. Never throws: operating-company resolution must not
879
- * depend on the fund file. A failed load — any HTTP failure, a malformed body,
880
- * or the block gate's local refusal — returns no rows and a `retryAt`, so the
881
- * index without funds stands for the retry window rather than the whole TTL
882
- * (#119). The window is at least the error's `retryAfter`, so a load refused
883
- * by the rate-limit gate is not retried until the cool-down ends.
914
+ * depend on the fund file. A failed load — any HTTP failure, no HTTP response
915
+ * at all (#173), a malformed body, or the block gate's local refusal — returns
916
+ * no rows and a `retryAt`, so the index without funds stands for the retry
917
+ * window rather than the whole TTL (#119). The window is at least the error's
918
+ * `retryAfter`, so a load refused by the rate-limit gate is not retried until
919
+ * the cool-down ends.
884
920
  */
885
921
  async loadMfTickers() {
886
922
  let retryAfterMs = 0;
@@ -904,7 +940,7 @@ class EdgarApiService {
904
940
  // Background index maintenance with no request of its own to attach to, so the
905
941
  // global logger carries it (#43).
906
942
  logger.warning('Fund-ticker file (company_tickers_mf.json) failed to load; ETF and mutual-fund tickers stay unresolved until it is retried.', withExtra(requestContextService.createRequestContext({ operation: 'loadMfTickers' }), {
907
- url: MF_TICKERS_URL,
943
+ endpoint: 'company_tickers_mf',
908
944
  retryInSeconds: Math.ceil(retryMs / 1000),
909
945
  ...cause,
910
946
  }));
@@ -1191,6 +1227,69 @@ export function pickPreferredTicker(a, b) {
1191
1227
  function sleep(ms) {
1192
1228
  return new Promise((resolve) => setTimeout(resolve, ms));
1193
1229
  }
1230
+ /**
1231
+ * One `fetch`, aborted when no response headers arrive within
1232
+ * {@link ATTEMPT_HEADERS_TIMEOUT_MS}. The timer is cleared once `fetch` settles, so
1233
+ * the body read is never bounded by it. `fetch` rejects with whatever reason the
1234
+ * signal carries, so the abort is recognized by the reason's identity. A
1235
+ * controller and `setTimeout` rather than `AbortSignal.timeout()`, as the
1236
+ * framework's `fetchWithTimeout` does: the latter can fail on a realm mismatch
1237
+ * under Bun.
1238
+ */
1239
+ async function fetchUntilHeaders(url, headers) {
1240
+ const controller = new AbortController();
1241
+ const deadline = new DOMException(`No response headers within ${ATTEMPT_HEADERS_TIMEOUT_MS}ms.`, 'TimeoutError');
1242
+ const timer = setTimeout(() => controller.abort(deadline), ATTEMPT_HEADERS_TIMEOUT_MS);
1243
+ try {
1244
+ const response = await globalThis.fetch(url, { headers, signal: controller.signal });
1245
+ return { kind: 'answered', response };
1246
+ }
1247
+ catch (rejection) {
1248
+ return { kind: 'unanswered', rejection, timedOut: controller.signal.reason === deadline };
1249
+ }
1250
+ finally {
1251
+ clearTimeout(timer);
1252
+ }
1253
+ }
1254
+ /**
1255
+ * The failure once the last attempt got no HTTP response (#173). The earlier
1256
+ * attempts may have drawn a 5xx: a 503, a 502, then a reset ends here too, so
1257
+ * the message claims only the last. Message and `data` are composed here from
1258
+ * the host, the attempt count, and the last attempt's transport code or
1259
+ * timeout: the runtime's own text is developer-facing (Bun's advice to pass
1260
+ * `verbose: true`, its "Is the computer able to access the url?"), and Bun's
1261
+ * rejection carries the full request URL on `path`. The rejection rides
1262
+ * `cause`, which the log records and the caller never sees.
1263
+ */
1264
+ function secUnreachable(url, last) {
1265
+ const host = new URL(url).hostname;
1266
+ const ending = last.timedOut
1267
+ ? `got no response headers within ${ATTEMPT_HEADERS_TIMEOUT_MS / 1000} s`
1268
+ : `ended with ${transportCode(last.rejection) ?? 'a network error that carried no code'}`;
1269
+ return serviceUnavailable(`No HTTP response from SEC EDGAR (${host}) on the last of ${MAX_RETRIES} attempts, which ${ending}.`, {
1270
+ reason: SEC_UNREACHABLE_REASON,
1271
+ retryable: true,
1272
+ url,
1273
+ recovery: {
1274
+ hint: `SEC EDGAR (${host}) sent no HTTP response to the last attempt — a network failure between this server and SEC, not a problem with the request. Retry the same call in a minute.`,
1275
+ },
1276
+ }, { cause: last.rejection });
1277
+ }
1278
+ /** An identifier-shaped transport code: `ECONNRESET`, `EAI_AGAIN`, `UND_ERR_CONNECT_TIMEOUT`. */
1279
+ const TRANSPORT_CODE = /^[A-Za-z][A-Za-z0-9_]*$/;
1280
+ /**
1281
+ * The transport code on a `fetch` rejection. Bun sets it on the rejection itself
1282
+ * (`code: 'ECONNRESET'`, no `cause`); Node's undici rejects with
1283
+ * `TypeError('fetch failed')` and sets it on `cause`. Read from the field, never
1284
+ * the message, whose wording differs by runtime and version.
1285
+ */
1286
+ function transportCode(rejection) {
1287
+ const codeOf = (value) => {
1288
+ const code = typeof value === 'object' && value !== null && 'code' in value && value.code;
1289
+ return typeof code === 'string' && TRANSPORT_CODE.test(code) ? code : undefined;
1290
+ };
1291
+ return codeOf(rejection) ?? (rejection instanceof Error ? codeOf(rejection.cause) : undefined);
1292
+ }
1194
1293
  // Init/accessor pattern
1195
1294
  let _service;
1196
1295
  export function initEdgarApiService() {