Skip to content

Package Map

The repository contains five canonical product packages, one internal maintainer package, and six published compatibility distributions. The package name tells a caller which contract it is choosing; the directory location alone does not establish whether a package is public, canonical, or released.

Package Families

flowchart TD
    workspace["bijux-canon workspace"]
    product["canonical product packages"]
    support["internal maintainer package"]
    continuity["compatibility distributions"]

    workspace --> product
    workspace --> support
    workspace --> continuity

    product --> ingest["ingest"]
    product --> index["index"]
    product --> reason["reason"]
    product --> agent["agent"]
    product --> runtime["runtime"]
    support --> dev["bijux-canon-dev"]
    continuity --> aliases["6 direct aliases"]

The root pyproject.toml records these sets explicitly. Public release tooling uses public_release_packages; repository checks include internal_support_packages; compatibility inventory is not inferred from a name prefix.

Canonical Product Packages

Distribution Public Python package Command Owns Characteristic evidence
bijux-canon-ingest bijux_canon_ingest bijux-canon-ingest normalization, chunking, deterministic preparation, ingest-local retrieval utilities input identity, clean documents, chunks, processing results
bijux-canon-index bijux_canon_index none vector execution, backend capability checks, result provenance, execution comparison ExecutionRequest, ExecutionArtifact, ranked result records
bijux-canon-reason bijux_canon_reason bijux-canon-reason problem specifications, evidence-addressed claims, checks, reasoning replay manifests, traces, claim graphs, verification reports
bijux-canon-agent bijux_canon_agent bijux-canon-agent role orchestration, lifecycle transitions, convergence, trace recording pipeline definition, ordered events, terminal RunTrace
bijux-canon-runtime bijux_canon_runtime bijux-canon-runtime manifest admission, execution mode, policy, persistence, resume, whole-run replay verdicts, run records, finalized traces, replay and diff results

Index contains a Typer command application for its compatibility surface, but the canonical distribution intentionally does not publish a console script. New integrations should use its typed Python or HTTP contracts. Existing bijux-vex command automation remains available through the compatibility distribution.

Installed Dependency Topology

The package graph is intentionally asymmetric. Ingest, index, reason, and agent are independently installable product boundaries; none declares another canonical product package as a runtime dependency. Runtime composes all four.

flowchart BT
    ingest["bijux-canon-ingest"]
    index["bijux-canon-index"]
    reason["bijux-canon-reason"]
    agent["bijux-canon-agent"]
    runtime["bijux-canon-runtime"]
    cli["bijux-cli"]
    store["DuckDB"]

    runtime --> ingest
    runtime --> index
    runtime --> reason
    runtime --> agent
    runtime --> cli
    runtime --> store

This topology has concrete consequences:

  • installing ingest, index, reason, or agent does not install the other three;
  • installing runtime resolves the four canonical product dependencies within the compatible release range;
  • importing a lower package must not require runtime to be installed;
  • product-to-product handoffs use explicit records and adapters, not an undeclared dependency hidden behind local workspace availability; and
  • the root development environment contains every package, so a successful repository import is not proof that a wheel declares the dependency it uses.

Use built-wheel metadata and an isolated installation when the dependency boundary itself is under review.

Repository Support

bijux-canon-dev is an internal support package. It owns repository inventory, documentation configuration and badge checks, API drift and freeze checks, dependency and security gates, SBOM requirement generation, version resolution, and publication guards. It is part of workspace validation but is excluded from the public release package list.

An application should never need bijux-canon-dev to execute product behavior. If a product package depends on it at runtime, the ownership boundary has been crossed in the wrong direction.

Compatibility Distributions

Preserved distribution Canonical dependency Preserved command
bijux-canon bijux-canon-runtime bijux-canon
agentic-flows bijux-canon-runtime agentic-flows
bijux-agent bijux-canon-agent bijux-agent
bijux-rag bijux-canon-ingest bijux-rag
bijux-rar bijux-canon-reason bijux-rar
bijux-vex bijux-canon-index bijux-vex

These packages are direct continuity bridges. They depend on their canonical owner, re-export canonical modules, and exercise identity or command parity in their tests. They do not contain an independent implementation. New code should name the canonical distribution; existing code can migrate one import, submodule, or command boundary at a time.

Composition Rules

  • Depend on the lowest package that owns the required decision.
  • Pass typed artifacts across package boundaries instead of importing private implementation modules from a neighbor.
  • Keep acceptance and persistence policy in runtime, even when a lower package provides the data being judged.
  • Treat compatibility names as aliases at the edge, not as internal architecture.
  • Use root metadata for package membership and release eligibility; use package code and tests for behavior.

The ownership model covers disputed boundaries. The compatibility catalog records the exact legacy-to-canonical mappings.