Operations
Capability Packs
Portable bundles for installing operators, model backends, specialists, and runtime services.Capability packs are how RVBBIT moves beyond a pile of SQL functions. A pack can install operators, backends, specialist runtimes, model metadata, smoke tests, or Warren deployment jobs.
Use packs when a feature needs assets and runtime shape, not only a single SQL function.
The friendliest install path is the Capabilities window in Data Rabbit — browse the catalog, click install, watch the deploy graph — which drives the same Warren SQL deployment documented below. The shell CLI is the development/repeatable-install path.

Local Pack Workflow#
capabilities/tools/rvbbit-capability list
capabilities/tools/rvbbit-capability scaffold \
capabilities/packs/extract/gliner-medium-v2.1 \
/tmp/rvbbit-gliner
Install a pack from the shell during development:
RVBBIT_DSN=postgresql://postgres:rvbbit@localhost:55433/bench \
capabilities/tools/rvbbit-capability install \
capabilities/packs/extract/gliner-medium-v2.1 \
--gpu
The command-line path is useful for development and repeatable installs.
SQL Deployment Through Warren#
Fresh extension installs seed rvbbit.capability_catalog, so a SQL client or UI
can queue a catalog install without reading files from the server:
SELECT rvbbit.deploy_catalog_capability(
catalog_id => 'extract/gliner-medium-v2.1',
target_selector => '{}'::jsonb
);
For runtime capabilities, use a target selector that matches the Warren worker labels:
SELECT rvbbit.deploy_catalog_capability(
catalog_id => 'runtimes/python-runtime',
target_selector => '{"docker":true}'::jsonb
);
Warren workers claim jobs, materialize runtimes or model backends, and write status back to SQL. Queued jobs, target selection, logs, errors, smoke-test state, and generated SQL are all queryable.
Browse the static docs catalog at /capabilities, or query the live database:
SELECT id, title, operators
FROM rvbbit.capability_catalog
WHERE active
ORDER BY title;
What A Pack Can Include#
| Asset | Example |
|---|---|
| Backend rows | A local embedding server or OpenAI-compatible local model. |
| Operators | Extraction, sentiment, classification, summarization. |
| Runtime manifests | Docker/Python/Rust sidecars needed by a specialist. |
| Cost policy | Free local GPU, fixed per-call, or model-rate estimate. |
| Smoke tests | SQL calls that prove the pack is usable. |
| UI metadata | Description, labels, requirements, and target compatibility. |
Where The Familiar Operators Come From#
Some friendly names exist out of the box and some arrive with a pack — and a few
exist in both forms. The core extension seeds LLM-backed means, about,
classify, extract, summarize, sentiment, and triples as editable rows
in rvbbit.operators, so they work before you install anything. Installing a
capability pack adds local-specialist-backed operators that reuse some of
those same names (a reranker model behind means/about, DeBERTa behind
classify, GLiNER behind extract) and also adds names that are pack-only
and never core-seeded (extract_pii, has_pii, semantic_score,
semantic_matches, similar_to). When a name is exported by more than one
competing pack, whichever you install (or install last) provides that backing.
| Operator | Returns | Backing |
|---|---|---|
means(text, criterion) (infix ~~? / MEANS) |
bool | core seeds an LLM version; the BGE/MS-MARCO reranker packs (rerank/bge-reranker-base, rerank/bge-reranker-v2-m3, rerank/ms-marco-minilm-l6-v2) add a local reranker version |
about(text, topic) (infix ~~% / ABOUT) |
float8 | core seeds an LLM version; same three rerank packs add a local reranker version |
semantic_score, semantic_matches |
float8 / bool | pack-only — the same three rerank packs (no infix form) |
classify(text, categories), semantic_classify |
text | core seeds an LLM classify; classify/deberta-v3-zero-shot and classify/deberta-v3-base-zero-shot add local zero-shot versions |
extract(text, what) |
text | core seeds an LLM version; extract/gliner-medium-v2.1 (GLiNER) adds a specialist version |
extract_entities, extract_pii, has_pii |
jsonb / text / bool | pack-only — extract/gliner-medium-v2.1 (GLiNER) |
semantic_embed(text), similar_to(left, right) |
jsonb / float8 | pack-only — local embedding packs (embeddings/bge-small-en-v1.5, embeddings/bge-m3, embeddings/e5-small-v2) |
Only about and means declare infix forms; semantic_score and
semantic_matches are plain functions. The per-pack raw wrappers (for example
rerank_bge_base_score, embed_bge_small, summarize_bart) keep their own
prefixed names — the pack's friendly operators above are the multi-step Cascades
built on top of them. For canonical retrieval, prefer rvbbit.embed /
rvbbit.set_default_embedder(...) over the exploratory embed_* raw wrappers.
See /docs/semantic-functions for the extension's own
semantic primitives, /docs/predictive-models for the
trained-model and tabular-foundation packs, and /docs/cascades
for how multi-step operators are defined.
When To Use A Pack#
Good pack candidates:
- extractors such as GLiNER,
- local embedding models,
- domain-specific operator sets,
- MCP gateway bundles,
- specialist runtimes that need a worker process.
Avoid packs for one-off prompt experiments. Put those in normal operator catalog rows until the workflow is stable enough to distribute.
Observability#
SELECT *
FROM rvbbit.warren_jobs
ORDER BY created_at DESC
LIMIT 20;
SELECT name, effective_status, heartbeat_age, inventory
FROM rvbbit.warren_node_effective_status
ORDER BY last_heartbeat DESC NULLS LAST
LIMIT 20;
rvbbit.warren_node_effective_status is a view over rvbbit.warren_nodes that
folds the reported status together with heartbeat freshness. Backend health for
individual specialists comes from rvbbit.backends and
rvbbit.backend_probe(backend_name); runtime registration lives in
rvbbit.python_runtimes and rvbbit.mcp_gateways.
Warren is a runtime inventory: what can be installed, where it can run, what is currently deployed, and what failed.