feat(ownership): complete ownership intelligence module

Sprints 0-8: Types, schema, KSEI parser, entity resolution, DB CRUD,
Bing API client, import pipeline, query commands, graph traversal,
changes diff, entity resolution CLI, FTS5 search.

- KSEI PDF parser (mutool stext + quick-xml, 99.2% accuracy)
- 7 query commands: ticker, entity, search, cross-holders, concentration, flow, releases
- Ownership graph with recursive CTE (ASCII tree + Graphviz DOT)
- Release diff/changes between KSEI snapshots
- Entity resolution CLI: unresolved, map, merge
- FTS5 trigram search on entity names
- Feature-gated under 'ownership' (default-on)
- 82 tests passing
This commit is contained in:
Ciphercat 2026-03-07 17:31:04 +00:00
commit 6671e22976
23 changed files with 5351 additions and 47 deletions

56
tests/fixtures/bing_holders_bbca.json vendored Normal file
View file

@ -0,0 +1,56 @@
[
{
"investorName": "PT Dwimuria Investama Andalan",
"investorType": "Corporate",
"sharesHeld": 13533682440.0,
"sharesChanged": 0.0,
"percentageOfSharesOutstanding": 54.94,
"value": 13380524934600.0,
"reportDate": "2024-12-31"
},
{
"investorName": "Vanguard Group Inc",
"investorType": "Institutional",
"sharesHeld": 621438200.0,
"sharesChanged": -12000000.0,
"percentageOfSharesOutstanding": 2.52,
"value": 614321778000.0,
"reportDate": "2024-12-31"
},
{
"investorName": "BlackRock Inc",
"investorType": "Institutional",
"sharesHeld": 498112750.0,
"sharesChanged": 5600000.0,
"percentageOfSharesOutstanding": 2.02,
"value": 492523521250.0,
"reportDate": "2024-12-31"
},
{
"investorName": "Government Pension Investment Fund (Japan)",
"investorType": "Government / Sovereign Wealth",
"sharesHeld": 312045000.0,
"sharesChanged": 0.0,
"percentageOfSharesOutstanding": 1.27,
"value": 308564505000.0,
"reportDate": "2024-12-31"
},
{
"investorName": "Norges Bank Investment Management",
"investorType": "Government / Sovereign Wealth",
"sharesHeld": 278330000.0,
"sharesChanged": 3200000.0,
"percentageOfSharesOutstanding": 1.13,
"value": 275196270000.0,
"reportDate": "2024-12-31"
},
{
"investorName": "Capital Research and Management",
"investorType": "Institutional",
"sharesHeld": 248760000.0,
"sharesChanged": -8000000.0,
"percentageOfSharesOutstanding": 1.01,
"value": 245971800000.0,
"reportDate": "2024-12-31"
}
]