mirror of
https://github.com/0xrsydn/idx-cli.git
synced 2026-11-07 01:35:36 +00:00
feat: corporate actions from the Stockbit session (stocks actions, stocks calendar)
`idx stocks actions SYM [--kind ...]`: one stock's cash and stock
dividends, bonus shares, rights, warrants, splits and reverse splits,
meetings, public exposes and tender offers (`--kind ipo` adds its IPO),
newest first. `idx stocks calendar [--from] [--to] [--kind ...]`: the
market's actions dated in the range (default today and 30 days ahead),
oldest first. MCP: get_corporate_actions, get_corporate_calendar.
Stockbit's `/corpaction/{type}` serves one kind per request; each type has
its own field prefix and list key, so entitlements are read by field
suffix. An action's `date` is the cum date for entitlements, else the
event's first day. Dividends keep their decimals. One request per kind,
cached 6 hours. AUTHERROR without a session.
Fixtures are the 2026-11-03 recordings (market-wide ones trimmed to
October-December). Goldens added; help-stocks and completions-bash gain
the two subcommands, MCP tools.json the two tools (regenerated with
UPDATE_GOLDEN=1). The MCP docs counted 17 tools without stockbit_login;
now 20.
Claude-Session: https://claude.ai/code/session_01RqPPVeVDrnLoP7NUZmLRxY
This commit is contained in:
parent
8a1b29043c
commit
43ff4aa433
55 changed files with 2026 additions and 34 deletions
|
|
@ -283,6 +283,19 @@ WIB as the fallback.
|
|||
provider uses Stockbit's daily windows (`5d` to `1y`, trimmed from `1m`,
|
||||
`3m` or `1y`), Yahoo otherwise. Without one, quotes use the public page and
|
||||
the order book is `AUTHERROR`.
|
||||
- Corporate actions (`corporate/`, `api/stockbit/corpaction.rs`):
|
||||
`/corpaction/{type}` per kind (`dividend`, `stock_dividend`, `bonus`,
|
||||
`rightissue`, `warrant`, `stocksplit`, `reversesplit`, `rups`, `pubex`,
|
||||
`ipo`, `tenderoffer`), with `?symbol=` for one stock's history or without
|
||||
for the market (about a year back and what is announced ahead). Each type
|
||||
has its own field prefix and the list key is not always the path's, so
|
||||
entitlements are read by field suffix (`_cumdate`, `_exdate`, ...). One
|
||||
request per kind, cached 6 hours under `stockbit-corpaction`
|
||||
(`<kind>:<SYMBOL.JK>` or `<kind>:market`); `stocks actions` /
|
||||
`get_corporate_actions` sort newest first, `stocks calendar` /
|
||||
`get_corporate_calendar` filter by `CorporateAction::date` (the cum date
|
||||
for entitlements) and sort oldest first. Endpoint notes and the wider
|
||||
design: `docs/STOCKBIT.md`.
|
||||
|
||||
### Capability Gating
|
||||
```
|
||||
|
|
@ -296,6 +309,7 @@ Factory functions:
|
|||
trading_summary_provider() → Box<dyn TradingSummaryProvider>
|
||||
intraday_provider() → Box<dyn IntradayProvider>
|
||||
orderbook_provider() → Box<dyn OrderBookProvider>
|
||||
corporate_action_provider() → Box<dyn CorporateActionProvider>
|
||||
```
|
||||
|
||||
`ProviderKind::Stockbit` serves quotes (and, with a session, daily history):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue