Skip to content

Dependencies and Adjacencies

bijux-canon-index turns prepared vectors and declared execution intent into ordered results with budgets, provenance, and replay evidence. Storage and ANN libraries implement capabilities behind that contract; they do not define the meaning of an accepted execution.

Dependency shape

flowchart LR
    ingest["ingest or application vectors"] --> index["bijux-canon-index"]
    pydantic["Pydantic contracts"] --> index
    typer["Typer CLI"] --> index
    fastapi["FastAPI v1"] --> index
    optional["optional vector and ANN backends"] -.-> index
    index --> results["results, witnesses, run evidence"]
    results --> reason["bijux-canon-reason"]
    runtime["bijux-canon-runtime"] -->|governs execution| index
    compat["bijux-vex"] -->|delegates| index

The core installation provides contract, CLI, and HTTP dependencies. Native and remote backend integrations are capability-selected optional resources.

Dependency roles

Dependency family Role Contractual limit
Pydantic Strict request, report, artifact, and interface models Model validation does not decide acceptable approximation or replay
Typer Canonical module CLI Command parsing cannot bypass the execution engine's refusal and budget gates
FastAPI Versioned HTTP transport The host still owns identity, authorization, transport security, and quotas
SQLite and local files Ledger, local vector state, cache, and run records Each persistence domain has separate identity and lifecycle
HNSW, FAISS, Qdrant, and other optional adapters Native or service-backed vector capabilities Availability must be discovered; metric, dimension, exactness, consistency, and replay claims remain explicit
Plugin entry points Register controlled backend behavior Loaded Python executes in-process and is neither trusted nor sandboxed by registration

The pgvector-named adapter is excluded from the frozen v1 surface and does not constitute a PostgreSQL deployment contract.

Canonical package adjacencies

Ingest

Ingest owns source normalization, chunk geometry, source identity, and its compact local retrieval path. Index receives prepared vectors and metadata; it must not repair preparation defects by silently changing content or identity.

Reason

Reason may cite and interpret retrieved evidence, but it does not own the search plan, backend behavior, distance semantics, candidate ordering, or ANN quality evidence. An index result establishes what a declared execution returned, not whether a proposition is true.

Runtime

Runtime can select, constrain, observe, and accept an index operation as part of a larger flow. Index retains ownership of vector execution artifacts, capability refusal, witness evidence, and retrieval replay semantics.

Compatibility packages

bijux-vex preserves a legacy import and command surface by delegation. New features belong in the canonical package first. Compatibility adapters must not introduce a second execution meaning or divergent artifact schema.

Cross-boundary evidence

Every downstream handoff binds the result to:

  • artifact ID, content/configuration fingerprint, metric, and dimension;
  • intent, contract, mode, request, and resolved budgets;
  • backend and algorithm identity, capabilities, parameters, and version;
  • exact or approximate posture, randomness declaration, and index identity;
  • ordered neighbors, scores, observed cost, witnesses, and refusal state;
  • run-record identity and the persistence resources required for replay.

See integration seams for adapter-level handoffs and artifact contracts for the durable evidence model.