Namespace Kuestenlogik.Bowire.Help
Classes
- BowireHelpEndpoints
HTTP surface for the in-app help system (#154). Four endpoints:
GET /api/help/available— capability probe: did the host register an IBowireHelpProvider?GET /api/help/topics— flat list of topic summaries for the drawer's topic tree.GET /api/help/topic/{id}— full markdown body of one topic.GET /api/help/search?q=...— ranked hits across all topics.
When no IBowireHelpProvider is in DI, the three content endpoints return
501 Not Implemented(distinct from 404 — "no provider installed" vs "topic missing"). The capability probe always answers200with{ available: bool }so the workbench can gate UI affordances at boot in one round-trip.
- BowireHelpRailContribution
Help rail contribution (#324). Hoists the in-app docs out of the unified right-side drawer into a full rail with the standard left-sidebar + main-pane shape every other rail uses.
- HelpSearchHit
One result from Search(string, int). Carries an excerpt so the result list can show context without a follow-up topic-fetch per hit. The score is opaque to the workbench — only the order matters — but provider implementations may stabilise on 0..1 or 0..100 ranges as a future convention.
- HelpTopic
A single help topic in its full form. The body ships in two shapes: the raw Markdown source (kept for back-compat + tools that want the original) and BodyHtml — sanitised HTML the provider produced so the workbench can
innerHTMLit without re-parsing markdown in the browser. The mini-renderer the drawer used to ship choked on embedded HTML (DocFX<dl>,<picture>, theme-aware SVG hero) and showed it as escaped text. Pipeline rendering on the server side keeps the UI thin and lets DocFX-shaped pages render correctly.
- HelpTopicSummary
Lightweight projection of HelpTopic for list views. The body is omitted so a Topics call doesn't pull the whole markdown set into the browser when the user only wants to scan titles. The Summary rides along so the topic-tree nav can render a one-line excerpt under the short title.
Interfaces
- IBowireHelpProvider
Contract for in-app documentation. The core ships no implementation; the separate
Kuestenlogik.Bowire.HelpNuGet package provides one over the embeddeddocs/markdown set. Embedded ASP.NET hosts that don't need workbench docs simply don't reference that package and pay zero cost — the workbench renders Help affordances as disabled (see/api/help/available).