omniseek_sources
List available sources to route a search before querying; narrow by domain, region, or keywords to get source descriptions, capabilities, and health status.
Instructions
List all sources — call this to ROUTE before searching.
BOUNDED ORIENT: a bare (no-arg) call does NOT dump every source's facets. It returns the routing
VOCABULARY (available_domains / available_regions with counts) + the capabilities verb index +
source_names (the bare inventory) + counts, so the orient payload stays small no matter how far
the roster grows (brain_orient's lesson). The per-source FACETS (kind / domains / regions / modes,
needs_credentials, explicit_only, stability, health, ...) plus the prose description arrive when
you NARROW or ask verbose — reach for them on demand:
• domain="jobs" / "papers" / … → only sources whose domains facet contains it, WITH their
full descriptions. domain= is the most RELIABLE router; the no-arg call returns
available_domains (the full closed vocabulary + counts) so you can pick a valid token, and a
near-miss (e.g. "careers") returns did_you_mean instead of a silent empty.
• query="singapore visa" → TOKEN-OVERLAP over name + description + domains + regions +
cross-lingual keywords, ranked best-first (multi-word- and English↔中文-safe), WITH descriptions.
• region="sg" / "ca" / "cn" → only sources whose regions facet contains it (the no-arg call
returns available_regions; a near-miss returns did_you_mean). Region narrowing matters
when the deployment's source pack is geographic.
• verbose=True → the full unfiltered list, WITH every description.
check_health=True does a fresh LIVE probe of every source (slow) AND returns a system block:
the recall-index health (indexed_docs / embedder_available / vec_embed_failures / last_write_age_s)
plus the observation-journal durability head, materialization cursor, pending count, and failures.
and the openalex_usage attribution (which component spent the shared daily budget + remaining).
The no-arg (orient) call also returns capabilities: the non-search VERB index (field_skeleton,
coauthors, transcribe, …) so you discover the whole toolkit here, not only after loading a tool.
Returns: {"count": N, "backend_count": M, "backend_breakdown": {...}, and EITHER
a BARE ORIENT: "source_names": [...] + "note" + available_domains + available_regions + capabilities; OR
a NARROWED (domain/region/query) or verbose call: "sources": [{name, backend, (description when narrowed/verbose), needs_credentials, explicit_only, explicit_only_reason? (present only when excluded; the full catalog of why-strings search's _meta.excluded_count no longer re-ships), param_hint? (the structured query a VERTICAL source wants — a stock code / ticker / author name — present only when the source declares one, so a named call is filled right the first try), stability, access_tier, health, health_as_of, kind?, domains?, regions?, modes?, (healthy, status if check_health)}]. (did_you_mean on a domain/region near-miss; system:{recall, openalex_usage, jobs:[{name, schedule, enabled, last_run, next_run, budget_s, desc}, ...]} when check_health — the background-job fleet.)}
count is the RAW source count; it over-states coverage when many logical sources sit on ONE
upstream. backend_count is the distinct UPSTREAMS (the honest figure) and backend_breakdown
names every upstream backing >1 source, e.g. {"openalex": 42} (40+ affiliation slices of one
corpus + one API budget + one breaker = one backend, not 40 of coverage).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| domain | No | ||
| region | No | ||
| verbose | No | ||
| check_health | No |