ONEX Core Framework - Base classes and essential implementations
Project description
omnibase_core
omnibase_core is the ONEX (OmniNode eXecution) platform kernel. It owns node execution, contracts,
core models, validation tooling, and the canonical architecture vocabulary used
by downstream OmniNode repos.
Who Uses It
Use this repo when you need to:
- Use ONEX core types, nodes, contracts, and validation tools.
- Build a contract-driven EFFECT, COMPUTE, REDUCER, or ORCHESTRATOR node.
- Extend Core internals such as validation, contracts, node execution, handlers, model conventions, or runtime-development scaffolding.
Downstream runtime implementations, infrastructure clients, workflow packages, dashboard projections, and thin wrapper tooling should link back here for Core architecture and validation truth rather than duplicating it.
What This Repo Owns
- ONEX node base classes and execution vocabulary.
- Contract models, handler contracts, subcontracts, and contract validation.
- Core event envelopes, error models, container patterns, and dependency injection conventions.
- Core documentation standards for ONEX architecture and node construction.
- Shared validation entrypoints such as
onex-validate-links,onex-validate-topics,check-local-paths, and string-version checks.
What This Repo Does Not Own
- Concrete infrastructure, Kafka/Postgres/Infisical clients, runtime host
deployment, or registration operations. Those belong in
omnibase_infra. - Protocol-only service interfaces for downstream implementation packages.
Those belong in
omnibase_spi. - Zero-upstream structural DTOs and compatibility shims. Those belong in
omnibase_compat. - Portable workflow package ownership. That belongs in
omnimarket.
Track 1: Use The Package
Install:
uv add omnibase_core
Install optional surfaces only when needed:
uv add "omnibase_core[spi]"
uv add "omnibase_core[compat]"
uv add "omnibase_core[full]"
Common imports:
from omnibase_core.nodes import NodeCompute
from omnibase_core import ModelOnexError
Core is a Python 3.12+ package. Package metadata, optional dependency groups,
and CLI entrypoints are declared in pyproject.toml.
Track 2: Build A Node
Every ONEX node starts from one of the four core archetypes:
- EFFECT: external I/O
- COMPUTE: transformation and validation
- REDUCER: state aggregation
- ORCHESTRATOR: workflow coordination
Minimal COMPUTE node:
from omnibase_core.nodes import NodeCompute
class NodeMyFeature(NodeCompute):
pass
The preferred path is contract-driven: YAML declares inputs, outputs, capabilities, bindings, and lifecycle constraints; custom Python behavior is added only when the contract cannot express the behavior.
Start here:
Track 3: Extend Validation Or Runtime Internals
Core owns validators and development/runtime internals that other repos consume. Use these commands before changing validation, contracts, docs, or architecture surface:
uv sync --dev --frozen
uv run onex-validate-links --verbose
uv run pytest tests/ -q
Focused validation entrypoints:
uv run onex-validate-topics . --verbose
uv run check-local-paths docs src scripts
uv run validate-string-versions src
For ownership, downstream-consumer guidance, and cross-repo usage, see Validation Ownership.
Documentation Map
docs/INDEX.md is the canonical full docs map.
High-signal entrypoints:
- Architecture Overview
- Contract System
- Handler Contract Guide
- Validation Ownership
- Validation Framework
- ADR Index
- Contributing
- Security
Current Versus Historical Docs
Root README.md, CLAUDE.md, and docs/INDEX.md are the primary human entry
surfaces. Dated plans and migration notes are historical or execution context
unless a stable architecture, reference, runbook, or migration page explicitly
promotes them.
Known active context:
- The hardcoded-topic cleanup plan in the umbrella
omni_homedocs is an execution plan, not the current architecture source of truth. - Current topic naming truth lives in Core topic validators and standards docs.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omnibase_core-0.40.1.tar.gz.
File metadata
- Download URL: omnibase_core-0.40.1.tar.gz
- Upload date:
- Size: 8.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed9308f3cbca5dbcdcffd5cc7e6ce9d5ae3e4fa96b89b0dda6f69388fedac3bf
|
|
| MD5 |
cd2bb6ba7415eb0db74a3bba86e9c029
|
|
| BLAKE2b-256 |
6bee437d2a59f3a08827c7688d2ddf62da6d0f2647ef7ca741f092da695c23d2
|
File details
Details for the file omnibase_core-0.40.1-py3-none-any.whl.
File metadata
- Download URL: omnibase_core-0.40.1-py3-none-any.whl
- Upload date:
- Size: 5.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fa09caee8e9237397c42154b102704b4faacd4c881edf1d98aa3d1d897b6308
|
|
| MD5 |
4ddf7b7600ae8149f3516d43839b6394
|
|
| BLAKE2b-256 |
1a9820316960a989aa24f5b851bf74402c0b8a0febc0a28ccb67cfc8b518d418
|