Core Model
Searchability is not liveness. A resource is search eligible when both are true:- it has derived metadata:
indexed = true - it has an active embedding for the configured resource embedding model
Base Flow
The stage historically namedprobe is now a schema loading step. Its only job
is to load endpoint schema information from available specs and, when needed,
from the payment challenge. It does not perform raw liveness checks and does
not write live/error/timeout health state.
Terminal Outcomes
The durable terminal outcome is stored oncatalog.indexed_resources:
pipeline_outcomepipeline_outcome_reasonpipeline_outcome_atpipeline_failure_kind
Lifecycle Fields
The pipeline state shown in admin is separate from terminal outcome:
Work is needed when any of these are true:
- both input and output schemas are missing and the resource has not already succeeded with other source metadata
- latest outcome is
failed - enrichment hash is stale
- enriched spec hash differs from the current spec hash
- embedding text hash is missing
- active embedding is missing
Schema Lookup Versus Health
These are intentionally different concepts:
This means a resource can have a failed health check and still be enriched,
embedded, and search eligible if schema/source metadata exists.
Live Search Meaning
Live semantic search joins active resource embeddings and requiresindexed = true. It also requires normal search filters such as non-removed resource,
non-dismissed origin, protocol match, score threshold, and usage filtering unless
broad search is requested.
It does not require:
probe_status = 'live'last_live_at- consecutive probe failure grace
indexed = true, non-removed
resource, and non-dismissed origin. It does not require an active embedding.
Admin UI Reading
The Resources admin page separates three axes:- Search: metadata plus active embedding.
- Pipeline: latest indexing outcome and queue state.
- Health: runtime availability signal, separate from search and pipeline eligibility.
success: metadata and active embedding exist.failed: latest attempt failed and can retry.dead: no source information for embedding; not scheduled.unknown: not finalized under the new model yet.