Skip to main content

omninode

omnibase_spi

omnibase_spi is the Service Provider Interface package for ONEX (OmniNode eXecution). It defines protocol contracts, small wire-format contracts, and SPI exceptions that other repos implement or consume.

This package is intentionally not the implementation layer. Concrete runtime, transport, service, registry, and I/O behavior belongs in implementation repos such as omnibase_infra.

CI Python 3.12+ License: MIT Ruff Checked with mypy pre-commit

Current Role

  • Defines 232 protocol_*.py files across 39 protocol domains.
  • Provides runtime-checkable Python Protocol contracts for service boundaries.
  • Provides frozen, data-only contracts in src/omnibase_spi/contracts/ for selected cross-boundary wire formats.
  • Imports omnibase_core models and types where protocol signatures need shared platform data shapes.
  • Must not import implementation packages such as omnibase_infra.
  • Must not contain service implementations, business workflows, state machines, transport clients, or general domain Pydantic models.

Dependency Direction

The import direction is deliberate and non-obvious:

Application and product repos
        |
        v
omnibase_spi  ---- imports models/types ---->  omnibase_core
        ^                                      ^
        | implements protocols                 | uses models/types
        |
omnibase_infra and other implementation repos --+

Allowed:

  • omnibase_spi -> omnibase_core
  • omnibase_infra -> omnibase_spi
  • omnibase_infra -> omnibase_core
  • Product repos importing SPI protocols for type boundaries

Forbidden:

  • omnibase_core -> omnibase_spi
  • omnibase_spi -> omnibase_infra
  • Protocol files that perform I/O or instantiate concrete services
  • General domain BaseModel classes in SPI protocol modules

See Dependency Direction in the knowledge base for the full rule, examples, and rationale.

Install

uv add omnibase_spi

For local workspace development, use the repository lockfile and the configured omnibase-core source:

uv sync --group dev

Minimal Protocol Example

from typing import Protocol, runtime_checkable


@runtime_checkable
class ProtocolExampleService(Protocol):
    """Service boundary implemented outside omnibase_spi."""

    async def run(self, payload: bytes) -> bytes:
        """Run the service operation."""
        ...

Add A Protocol

  1. Choose the domain under src/omnibase_spi/protocols/.
  2. Create a protocol_<domain>_<name>.py file.
  3. Name the public protocol Protocol<Name>.
  4. Add @runtime_checkable.
  5. Use ... method bodies only.
  6. Import shared models from omnibase_core only when the signature requires canonical platform models or types.
  7. Add or update tests under tests/.
  8. Export the protocol from the domain __init__.py if it is public.

Common Commands

uv sync --group dev
uv run pytest
uv run mypy src/ --strict
uv run ruff check src/ tests/
uv run ruff format src/ tests/
python scripts/validation/run_all_validations.py
pre-commit run --all-files
uv build

Documentation

Full documentation → https://github.com/OmniNode-ai/knowledge-base

The knowledge base is the single home for this package's prose documentation: architecture, guides, patterns, standards, glossary, and testing. This repository keeps only what must ship beside the code.

Start here:

Kept in this repository:

License

MIT

Metadata

Release files for omnibase_spi 0.23.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omnibase_spi 0.23.4
File Size Uploaded
omnibase_spi-0.23.4.tar.gz 1.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for omnibase_spi 0.23.4
File Interpreter ABI Platform
omnibase_spi-0.23.4-py3-none-any.whl Python 3 none any Details

Total release size: 2.0 MB

Release files / omnibase_spi-0.23.4.tar.gz

Download URL omnibase_spi-0.23.4.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
364f8627cfd08a8b112339a1d934d54be332384686ae95ea368288992ecd7bbf
BLAKE2b-256 checksum
How to use checksums
96124a6acb803f99f147c5206b61a7da412dda933cf2ef781f7460d1f1d1d1a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / omnibase_spi-0.23.4-py3-none-any.whl

Download URL omnibase_spi-0.23.4-py3-none-any.whl
Size 737.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d46405f23e7d6b07ab816977f1798bd686d797f71c4a9dc6240f3d381095a682
BLAKE2b-256 checksum
How to use checksums
49af5b307caa71ae161bfa6072e9b8d36d9cc607e0761d05c0620362300e4788
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.23.7

2 release files

0.23.6

2 release files

0.23.5

2 release files

This release

0.23.4 This release

2 release files

0.23.3

2 release files

0.23.2

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.20.5

2 release files

0.20.3

2 release files

0.20.2

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.1

2 release files

0.17.0

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page