Expand description
SEC EDGAR port — US Securities and Exchange Commission filings.
Sovereign integration in the embassy sense: EDGAR’s contract is part of the API surface, not implementation detail. Specifically:
- User-Agent required — anonymous requests are blocked; the SEC requires a recognizable Reflective Labs research UA with an email contact.
- Rate limit 10 req/sec workspace-wide. Live providers must throttle; bursty traffic from one app affects every other.
- CIK normalization — Central Index Keys are 10-digit
zero-padded;
0000320193is Apple, not320193. The port normalizes on input. - Form types are a closed vocabulary — 10-K, 10-Q, 8-K, S-1,
etc. — kept open via
FormType::Other(String)for the long tail.
This crate ships the typed source domain (CIK, AccessionNumber, FormType, Filing). App-specific synthesis on top (drift signals, language analysis, multi-tenant aggregation) stays in the consuming app.
Today the port ships:
StubSecEdgarProvider— deterministic, no network, for unit tests and CILiveSecEdgarProvider— behind thelivefeature; fetches SEC EDGAR over HTTP and returns typed observations through the same provider trait.
Structs§
- Accession
Number - SEC accession number — the unique filing identifier.
- Call
Context - Cik
- Central Index Key — SEC’s unique identifier for an entity that files.
- Filing
- A single SEC filing — the typed source domain object.
- Filing
Section - A named section inside a filing (e.g., “1A” for Risk Factors).
- Observation
- SecEdgar
- Canonical provenance marker for facts emitted by the SEC EDGAR port.
- SecEdgar
Response - SecFiling
Payload - Typed fact payload — one filing per fact, ready to ride the convergence kernel’s promotion machinery.
- SecFiling
Suggestor - Reads
SecEdgarRequestfacts fromSeeds, dispatches them through aSecEdgarProvider, and proposes oneSecFilingPayloadper returned observation toHypotheses. - Stub
SecEdgar Provider - Deterministic stub. Given a request, returns a canned
Filingwhose section bodies are derived from the request hash so two different requests produce two different filings. No network, no auth, suitable for CI and formation-loop unit tests.
Enums§
- Form
Type - SEC form type — well-known forms enumerated, long tail via
FormType::Other. - SecEdgar
Error - SecEdgar
Request - What a caller asks for. Two shapes:
Constants§
- SEC_
EDGAR_ PROVENANCE - Canonical provenance const — pass to
Suggestor::provenance()andProposedFact::new(..., SEC_EDGAR_PROVENANCE.as_str()).