Skip to content

Dependencies and Adjacencies

bijux-canon-ingest owns deterministic source preparation and an intentionally compact local retrieval path. Its dependencies supply validation, arrays, serialization, and adapters; none of them move claim formation, orchestration, or run authority into ingest.

Dependency shape

flowchart LR
    source["files and RawDoc values"] --> ingest["bijux-canon-ingest"]
    validation["Pydantic validation"] --> ingest
    arrays["NumPy vector operations"] --> ingest
    wire["MessagePack and JSONL"] --> ingest
    model["optional sentence-transformers"] -.-> ingest
    ingest --> prepared["chunks and local indexes"]
    prepared --> index["bijux-canon-index"]
    prepared --> reason["bijux-canon-reason"]
    runtime["bijux-canon-runtime"] -->|governs the run| ingest

Solid arrows represent data or code dependencies. The runtime edge represents authority over an execution, not ownership of ingest transformations.

Library dependencies

Dependency family Role in ingest Boundary that remains explicit
Pydantic and configuration helpers Validate interface models and configuration Core document values and transformation semantics remain package-owned
NumPy Implements local cosine-vector operations Array behavior does not define a governed vector-execution contract
MessagePack and JSONL codecs Encode local indexes and prepared chunks Consumers load through package codecs and verify schema and fingerprints
FastAPI and Uvicorn Expose the optional v1 HTTP adapter Authentication, tenancy, quotas, and durable service state remain host responsibilities
sentence-transformers, when installed Supplies a semantic embedding adapter Model identity, version, dimension, normalization, and cache provenance must accompany the artifact

The deterministic hash16 embedder is suitable for contracts, examples, and tests. It is not a semantic embedding model and must not be presented as one.

Canonical package adjacencies

Index

Ingest can emit prepared chunks and build package-local BM25 or NumPy-cosine indexes. bijux-canon-index begins when retrieval needs declared intent, backend capabilities, budgets, immutable execution artifacts, witnesses, and replay. Passing ingest output into index does not grant index permission to reinterpret source identifiers, offsets, or embedding specifications.

Reason

Reason consumes evidence-bearing records. It owns the transition from evidence to claims, support references, verification, and reasoning run artifacts. Ingest citations identify source spans used by local answer assembly; they do not certify a proposition.

Agent and runtime

Agent may coordinate ingest as one workflow activity. Runtime may govern the complete execution and decide whether its evidence is acceptable. Neither package owns cleaning rules, chunk geometry, or ingest-local ranking behavior.

Handoff contract

A dependable handoff retains:

  • stable document and chunk identity;
  • normalized-text offsets and parent-source metadata;
  • resolved cleaning, chunking, and filtering configuration;
  • embedding model, dimension, metric, and normalization posture;
  • index schema, backend, and corpus fingerprint when a local index is used;
  • ordered candidates, scores, filters, citations, and structured failures.

Raw provider clients, process-local HTTP index identifiers, and logs are not portable handoff contracts. See data contracts and integration seams for the concrete values and adapters at these boundaries.