Skip to main content

omninode

OmniMarket

CI Python 3.12+ License: MIT

OmniMarket is the portable ONEX (OmniNode eXecution) workflow package registry — the consolidation target for all OmniNode automation logic. It ships 384 contract-backed node entry points (as of v0.4.11) covering build loops, PR lifecycle management, sweeps, projections, ledger, memory orchestration, session management, and diagnostics. Platform wrappers invoke Market nodes for execution, but never own the business logic themselves.

Every node is a self-contained package with a contract.yaml declaring its handler bindings, input/output models, subscribed and published topics, FSM transitions, and terminal event. The runtime loads those contracts to wire event-bus subscriptions and inject handler dependencies — handlers never hardcode topic strings or construct their own collaborators.

Archetype Purity Description
compute Pure Stateless transformation. No I/O side effects.
reducer Pure FSM state transition. Emits next-state events.
effect Effectful Performs external I/O (API calls, file writes, deployments).
orchestrator Effectful Composes sub-handlers via FSM. Owns in-process state.
projection Effectful Consumes event streams, writes to read models.
service Effectful Long-running daemon (event emission, health monitoring).

Documentation

Architecture, guides, and reference documentation for this repo live in the OmniNode knowledge base, not in this repository:

Governance policy and operator runbooks are not part of this repository.

Repository Layout

omnimarket/
├── src/omnimarket/
│   ├── nodes/                  # All node packages (node_<name>/)
│   ├── events/                 # Shared event models (ledger, envelopes)
│   ├── models/                 # Cross-node shared Pydantic models
│   ├── protocols/              # Shared protocol interfaces
│   ├── projection/             # Projection helpers and base classes
│   ├── routing/                # Event routing and dispatch
│   ├── intelligence/           # LLM and inference abstractions
│   ├── inference/              # Model selection and endpoint routing
│   ├── classifiers/            # Shared classification logic
│   ├── cli/                    # CLI entry points
│   ├── config/                 # Configuration models and loaders
│   ├── configs/                # Configuration files and overlays
│   ├── data/                   # Static data assets
│   ├── registry/               # Node registry helpers
│   ├── enums/                  # Shared enumerations
│   ├── adapters/               # Adapter templates for external platforms
│   ├── runtime/                # Runtime version handshake utilities
│   ├── logging/                # Structured logging helpers
│   └── experiments/            # Experimental sub-projects (ADK eval, etc.)
├── tests/                      # Golden-chain and contract tests
├── scripts/
│   ├── ci/                     # CI gate scripts (runtime sweep, metadata check)
│   ├── validation/             # Additional validation scripts (leaked literals, contract overlay boundary, topic lint)
│   ├── generate_node.py        # Node scaffold generator
│   ├── generate_adapters.py    # Adapter output generator
│   └── lint_no_hardcoded_topics.py
├── docs/                       # Non-prose artifacts only: brand assets, OCC
│                               # work-tracking contracts, generated evidence
│                               # and audit data. Prose lives in the knowledge
│                               # base (see Documentation above).
├── pyproject.toml
└── CLAUDE.md

A node package is src/omnimarket/nodes/node_<name>/ with contract.yaml, metadata.yaml, and handlers/; orchestrators add protocols/, and nodes may add models/ and node-local tests/. Nodes are discovered through the onex.nodes entry-point group in pyproject.toml — the runtime iterates those entry points, loads each contract.yaml, and wires subscriptions automatically.

Adding a Node

uv run python scripts/generate_node.py --name node_<name> --type compute

Then register the entry point in pyproject.toml under [project.entry-points."onex.nodes"], add a golden-chain test at tests/test_golden_chain_<name>.py proving the contract over EventBusInmemory, and run the validation gates below. The full pattern — contract fields, metadata fields, harness requirements, and the canary nodes to copy from — is in the knowledge base pages linked above.

Common Commands

# Install dependencies
uv sync --all-extras

# Run tests (excluding Kafka-dependent tests)
uv run pytest tests/ -v --tb=short -m "not kafka"

# Unit tests only
uv run pytest tests/ -v -m unit

# Lint and format
uv run ruff check src/ tests/
uv run ruff format --check src/ tests/

# Type-check
uv run mypy src/omnimarket/ --strict

# CI gates
uv run python -m omnimarket.nodes.node_runtime_sweep --import-check
uv run python scripts/ci/check_node_metadata_dependencies.py

Test markers: unit (isolated), integration (multi-component), slow (>1s), kafka (requires a running broker).

What This Repo Owns

  • onex.nodes entry points for contract-backed workflow nodes.
  • Node package directories under src/omnimarket/nodes/node_*.
  • contract.yaml and metadata.yaml files defining node interfaces, capabilities, dependencies, and runtime expectations.
  • Handler logic for compute, reducer, effect, orchestrator, projection, and service nodes.
  • Adapter templates for external platform integrations.
  • Golden-chain tests and metadata checks proving node contracts with an in-memory event bus.
  • Shared Market primitives (projection, inference, routing, intelligence, ledger, and metadata helpers) that prevent cross-node reach-in.

What This Repo Does Not Own

  • Platform-specific UX prompts, slash-command presentation, editor rules, or user-facing skill copy — those belong in the wrapper repo for that platform.

  • Concrete infrastructure services (Kafka, Postgres, Docker, secrets) — those belong to the runtime/infrastructure layer.

  • Core ONEX primitives (RuntimeLocal, EventBusInmemory, envelope types, shared validators) — those belong to omnibase_core and compatibility packages.

  • Governance policy and documentation evidence — those belong to onex_change_control.

  • Memory persistence semantics and storage adapters — Market may host runnable memory workflow nodes, but the memory domain is owned by the memory repo.

  • Prose documentation — it belongs in the knowledge base (see Documentation).

  • Contributing

  • License

Release files for omnimarket 0.4.116

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

Source distribution (sdist)

Source distribution for omnimarket 0.4.116
File Size Uploaded
omnimarket-0.4.116.tar.gz 11.7 MB Details

Built distribution (wheel)

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

Total release size: 18.9 MB

Release files / omnimarket-0.4.116.tar.gz

Download URL omnimarket-0.4.116.tar.gz
Size 11.7 MB
Tags Source
SHA-256 checksum
How to use checksums
9c250872d643ae0310136fc6e01aca191f028f4d5340f1ec2994b1b2600b6a20
BLAKE2b-256 checksum
How to use checksums
84bcc6fda2521485592b72527cfb7595eba00bc6843382f2daaafa03d9a7be59
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 / omnimarket-0.4.116-py3-none-any.whl

Download URL omnimarket-0.4.116-py3-none-any.whl
Size 7.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
61c9560beb3a51923b756c6512ee07167061fc677314a1af29b7defbad4b1ee7
BLAKE2b-256 checksum
How to use checksums
79cac12bf7da51add68595c3e441027d294b7cf7ac2c8be9bdf4c5b2302ac5a9
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

This release

0.4.116 This release

2 release files

0.4.99

2 release files

0.4.98

2 release files

0.4.97

2 release files

0.4.96

2 release files

0.4.95

2 release files

0.4.94

2 release files

0.4.92

2 release files

0.4.90

2 release files

0.4.89

2 release files

0.4.87

2 release files

0.4.86

2 release files

0.4.85

2 release files

0.4.84

2 release files

0.4.83

2 release files

0.4.82

2 release files

0.4.81

2 release files

0.4.80

2 release files

0.4.79

2 release files

0.4.78

2 release files

0.4.77

2 release files

0.4.76

2 release files

0.4.75

2 release files

0.4.74

2 release files

0.4.73

2 release files

0.4.72

2 release files

0.4.71

2 release files

0.4.70

2 release files

0.4.69

2 release files

0.4.68

2 release files

0.4.67

2 release files

0.4.66

2 release files

0.4.65

2 release files

0.4.64

2 release files

0.4.63

2 release files

0.4.62

2 release files

0.4.61

2 release files

0.4.60

2 release files

0.4.59

2 release files

0.4.58

2 release files

0.4.57

2 release files

0.4.56

2 release files

0.4.54

2 release files

0.4.53

2 release files

0.4.52

2 release files

0.4.51

2 release files

0.4.50

2 release files

0.4.49

2 release files

0.4.48

2 release files

0.4.47

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

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