Vector reference

Config options

Using Vector is the same ground with the calls; the overview is what the capability is for; pithy vector provisions and reprocesses it.

OptionDefaultMeaning
indexes—Each index’s dimensions and its metadata schema
defaultTopK10Matches returned when the caller names none. A search page, not a scan

An index’s metadata schema is where filterable is declared, and that declaration is the capability.

Bindings

BindingTypeWritten by
AIai, remotepithy add
DBd1pithy add
VECTORIZEvectorize, remotepithy vector provision
VECTOR_REPROCESSworkflow, optionalpithy vector provision

Two are declared remote, because Cloudflare ships no local emulation for either — so --env dev reaches real services and costs real calls.

The index binding cannot be written by add: it needs an index name provisioning mints.

The two hard limits

Ten metadata indexes per index. Choose deliberately; you cannot have them all.

A metadata index created after vectors were written covers none of them, and there is no backfill.

Both are the store’s, not the kit’s. Both fail quietly — a filter on an unindexed field returns partial results with no error — which is why the kit turns them into schema and boot-time concerns.

VECTOR_PROVISIONED

A variable recording exactly what provisioning observed on the live index — every metadata index that was live when it finished, declared and undeclared alike.

The Worker compares its declarations against that record at boot and refuses to serve on drift.

It is written last, and only on success, so it never claims more than provisioning got done.

What provisioning reports

FieldMeaning
createdMetadata indexes created on this run. Empty on a re-run — that is what idempotent looks like
extraIndexes that exist but the config does not declare. Not fatal — they still cost a slot
observedEverything live when it finished. This is what the boot check compares against

The observed type is recorded verbatim rather than narrowed to the three the package declares.

Commands

CommandDoes
provisionCreates the index and its metadata indexes, waits for each to go live, deploys the reprocess host, writes the bindings and the record
resetDeletes, rebuilds, re-embeds from the corpus. Destructive
reprocessRe-embeds one index or all of them

Provisioning waits before deploying the writer, because a write landing before an index exists is permanently unfilterable.

reset has no --yes, deliberately. --yes elsewhere authorizes additive writes; this deletes every vector. It takes the environment-named phrase instead — the same gate a schema reset uses.

The reprocess report

The Workflow’s own return value, passed through verbatim — it crosses no schema on the way out, and is absent entirely when a completed Workflow returned nothing.

KeyMeaning
indexNameThe index reprocessed
pagesPages taken — one durable step each
scannedRows read
reembeddedRows re-embedded and written back
skippedRows selected but skipped because the corpus holds no text for them

Peer capabilities

Required: none.

Optional: auth — effectively required, since results are scoped to a caller.

Composes naturally with media, whose transcripts and extracted text are the obvious corpus.

What is not here

No chunking. A wrong default produces bad search that looks like a model problem.

No retrieval framework. No prompt templates, no chains, no reranking.

No keyword search. A different question, answered by a full-text index.

No local path. Dev reaches the real service.

ESC