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.7

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.7
File Size Uploaded
omnibase_spi-0.23.7.tar.gz 1.3 MB Details

Built distribution (wheel)

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

Total release size: 2.1 MB

Release files / omnibase_spi-0.23.7.tar.gz

Download URL omnibase_spi-0.23.7.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
2f0e5103a007c86e72916d9afc9bb7f9c7bdb41d809e6822300aee69b3ad866d
BLAKE2b-256 checksum
How to use checksums
c5beb8603086668b7d79340f28efde87859ed594032a6f899e15118151628baa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.7-py3-none-any.whl

Download URL omnibase_spi-0.23.7-py3-none-any.whl
Size 739.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
797765ed280cecf85cc77f84bd4bc9d6ef6eb19a265158660b2b7df2a1167e10
BLAKE2b-256 checksum
How to use checksums
d1732995dd0bcb79b3c6076b2619ea7f2338930c922ad3cee6b5232d6919237c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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

This release

0.23.7 This release

2 release files

0.23.6

2 release files

0.23.5

2 release files

0.23.4

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