Repository navigation
Releases: Realyujie/dsh-us-stocks
Release list
v0.3.0
[0.3.0] - 2026-08-17
Added
-
get_quotereturns fund detail for ETFs and mutual funds: expense ratio
against its category average, net assets, category, issuer, asset
allocation, trailing returns, and top holdings with the share of the fund
they cover. Observed without it: asked to look at XLK, the agent called this
plugin, found no expense ratio or holdings, and fell back toweb_search
for exactly those two — which returned link titles and no content, spending
9.4s of a 27s answer and an extra step to learn nothing. The expense ratio
then went unmentioned, and the holdings were recited from memory in the
wrong order.The extra call fires only once the quote reports a fund, so equities are
unaffected; a fund quote costs roughly three times an equity one. If it
fails the quote is still returned, with a warning, since the price is
already in hand.Mutual funds are covered alongside ETFs. They report the same modules, and
gating onETFalone would have dropped everyVFIAX-shaped symbol. -
fund_notesin fund responses, carrying three caveats where the numbers are
read rather than only in the docs: thattrailing_peand its neighbours are
holdings-weighted aggregates for a fund (a model was seen calling an ETF's
P/E an expensive valuation, with nothing to suggest otherwise); that the
expense ratio is upstream's and can be wrong (FXAIX reported 0.42% against a
true 0.015%); and that the holdings list is capped at ten, so fund overlap
cannot be derived from it. Each note appears only when the field it
qualifies does — commodity and bond funds report no holdings at all.fund_trailing_returns_percentnames its own convention: upstream reports
ytdthroughone_yearas the return over that window but annualises
everything longer, so those keys end in_annualized. Verified against SPY,
whose reported five-year 12.76% is the annualised form of an 83.95%
cumulative — read as cumulative it is wrong by a factor of four. -
get_ownership, a sixth tool: the insider/institutional split, the largest
institutional and fund holders with their quarterly position changes, and
insiders' aggregate buying and selling over six months.detail: "full"
adds individual insider filings and the named insiders; those are most of
the payload, so they are opt-in and the summary modules are all that get
requested otherwise.Measured before building it — asked "have insiders been buying or selling"
and "who is buying this stock", the agent made no plugin call and ran 11
web_searchcalls across six steps, 102.5s for the two questions. It
arrived at 65.7% institutional ownership from a scraped page dated five
weeks earlier against Yahoo's 68.85%, never mentioned the 8.87% insiders
hold, and built "insiders are selling" out of one large filing while the
six-month aggregate was net +456,643 shares.institutional_activityis a sibling ofinsider_activityrather than a
member of it. Upstream returns both from one module, and following that
shape gave a path —insider_activity.net_institutional_shares— whose name
said insiders and whose value was institutions. Only the insider block
carries aperiod; upstream never states the window its institutional net
spans, so this does not either.ownership_notestates that holder rows are as of their ownreport_date
and that the six-month aggregate can be net positive while one insider was
visibly selling — the reconciliation a model would otherwise have to guess
at. Filings are made against operating companies, so ETFs and funds return
no_datapointing atget_quotefor a fund's own holdings.
Fixed
get_analyst_viewrelayed upstream's "No fundamentals data found for
symbol: XLK" for funds, which reads as a fault rather than as permanent.
It now explains that analysts rate companies and funds therefore carry no
ratings, targets or estimates, matching howget_financialsalready answers
the same question about statements.
Notes
-
^0.2.0does not admit 0.3.0 under semver's caret rule for0.x, so
dsh plugin updatewill not pick this release up. Install it explicitly:dsh plugin --profile web add dsh-us-stocks@0.3.0