pub fn select_extractor(backend: &str) -> Result<ExtractorSelection, String>Expand description
Resolve an extraction backend name to what the caller must do about it.
§Why this exists, and why it is in the library rather than the binary
The selection used to live inside the daemon’s #[cfg(feature = "extractor-http")]
block. That gate is what made OutlineExtractor unreachable from the MCP
server (#1734): the extractor needs no dependency and is linked into every
build, but the only code that could choose it was compiled away unless an
unrelated HTTP feature was on. Two of the twenty published tools were dead by
default as a result — remember_extracted refused outright, and entity
answered found: false for every name, entity hubs being born only of
extraction.
Living here rather than in main.rs also means the daemon and the tests
exercise the same function: a test can select outline and drive the
real server with the result, instead of proving a seam written for the test.
§Errors
A human-readable message naming the accepted forms, for an unknown backend.