Skip to main content

Oneiric

Code style: crackerjack Runtime: oneiric uv Python: 3.14+

Explainable component resolution, lifecycle management, and remote delivery for Python 3.14+ runtimes

Oneiric is a standalone resolver and runtime foundation. Register adapters, services, tasks, events, workflows, and actions; explain selection decisions; manage lifecycle transitions; and hydrate capabilities from remote manifests.

Quality checks

Use Crackerjack for the repository quality gate; the commands are documented below in Development.


Capabilities

  • Resolution: deterministic selection by explicit configuration, stack, priority, and registration order, with explainable and shadowed candidates.
  • Lifecycle: activation, health checks, binding, cleanup, rollback, and safe provider swaps through LifecycleManager.
  • Runtime orchestration: watchers, remote refresh, workflow checkpoints, event dispatch, pause/drain supervision, and optional scheduler callbacks.
  • Remote delivery: YAML/JSON manifests with optional digest and signature verification, canonical packaging, and per-domain registration.
  • Operations: structured logging, runtime health and telemetry snapshots, notification routing, plugin discovery, and secrets-cache management.

Domains and built-ins

The resolver exposes six registered domains. Each domain uses the same selection and lifecycle model, while domain-specific bridges provide the execution behavior.

Domain Role
Adapters Providers for cache, storage, queues, HTTP, databases, NoSQL, graph, vector, embeddings, LLMs, secrets, messaging, DNS, file transfer, and monitoring.
Services Lifecycle-managed application services registered by the host application or a manifest.
Tasks Async task providers and queue metadata used by runtime workflows.
Events Topic dispatch with filtering, fan-out, retries, and handler inspection.
Workflows DAG planning, execution, enqueueing, checkpoints, and telemetry.
Actions Built-in kits for compression, HTTP, workflow, security, serialization, data, validation, task, event, automation, and debugging operations.

Built-in action keys include compression.encode, compression.hash, compression.stream, workflow.audit, workflow.orchestrate, workflow.notify, workflow.retry, http.fetch, event.dispatch, and debug.console. Use oneiric --demo list --domain action to inspect the complete registry.


Runtime and operations

  • Watchers reload selections using watchfiles or polling; serverless profiles can disable remote refresh and watchers.
  • RuntimeOrchestrator coordinates remote sync, event dispatch, workflow execution, checkpoints, notifications, and the optional scheduler HTTP server for Cloud Tasks callbacks.
  • DomainActivityStore records pause/drain state, while the supervisor keeps inactive components from accepting work.
  • Runtime health, telemetry, lifecycle, activity, and workflow checkpoint artifacts are written beneath the configured cache directory.
  • oneiric health, status, activity, remote-status, and supervisor-info expose operator-facing state.

Configuration

load_settings() layers project and user configuration for the selected project_name. From lowest to highest precedence, it checks:

  1. Code defaults
  2. settings/<project_name>.yaml or .yml at the project root
  3. settings/local.yaml at the project root
  4. ${XDG_CONFIG_HOME:-~/.config}/<project_name>/config.yaml
  5. ${XDG_CONFIG_HOME:-~/.config}/<project_name>/local.yaml
  6. Environment overrides in the form <PROJECT_NAME>_<SETTING>__<FIELD>

For example, a project using project_name="oneiric" checks ~/.config/oneiric/config.yaml and ~/.config/oneiric/local.yaml when XDG_CONFIG_HOME is not set. Set XDG_CONFIG_HOME to relocate the user configuration root. Missing layered files are ignored. Project paths are normally anchored at the installed package/project root; an explicit project_root= can be supplied when embedding Oneiric elsewhere.

An explicit path= argument to load_settings() or the corresponding <PROJECT_NAME>_CONFIG environment variable is applied last and takes precedence over all layered files. The CLI exposes the same override through --config.


Quick start

For repository development:

uv sync --group dev
uv run oneiric --demo list --domain adapter
uv run oneiric --demo list --domain action
uv run oneiric --demo explain demo --domain adapter
uv run oneiric --demo health --probe --json

Inspect runtime plans without starting the long-running loop:

uv run oneiric --demo orchestrate --print-dag --inspect-json
uv run oneiric --demo orchestrate --events --inspect-json
uv run oneiric workflow plan --workflow <workflow-key> --json

Run a manifest sync, event, workflow, or action explicitly:

uv run oneiric remote-sync --manifest docs/sample_remote_manifest.yaml
uv run oneiric event emit demo.event --payload '{"source":"cli"}' --json
uv run oneiric workflow run <workflow-key> --context '{"request_id":"demo"}' --json
uv run oneiric action-invoke compression.encode --payload '{"text":"hello"}' --json

Start the orchestrator when a long-running process is required:

uv run oneiric start \
  --manifest docs/sample_remote_manifest.yaml \
  --refresh-interval 120 \
  --no-http
uv run oneiric process-status
uv run oneiric health --probe --json
uv run oneiric stop

Serverless profile

The serverless profile is intended for deployments such as Cloud Run. It can be selected through the environment or CLI and combined with explicit remote/HTTP settings:

uv run oneiric manifest pack \
  --input docs/sample_remote_manifest.yaml \
  --output build/serverless_manifest.json

ONEIRIC_PROFILE=serverless uv run oneiric supervisor-info
ONEIRIC_PROFILE=serverless uv run oneiric health --probe --json
ONEIRIC_PROFILE=serverless uv run oneiric start --no-remote --no-http

Deployment details are in docs/deployment/CLOUD_RUN_BUILD.md.


CLI map

The installed console script is oneiric. Use oneiric --help for the complete command surface; uv run oneiric is the repository-local form.

  • Inspect: list, status, explain, health, plugins, and supervisor-info expose registrations, resolution decisions, lifecycle state, and runtime health.
  • Manage lifecycle: swap, pause, drain, start, stop, and process-status control providers and the background orchestrator.
  • Run work: event emit, workflow plan, workflow run, workflow enqueue, and action-invoke exercise runtime capabilities.
  • Deliver manifests: remote-sync, remote-status, and manifest pack handle remote inputs and cached synchronization state.
  • Operate integrations: plugins, secrets, shell, and load-test provide discovery, secret-cache operations, interactive administration, and runtime load testing.

Bodai Integration

When installed alongside the Bodai ecosystem, Oneiric supplies the shared resolver, lifecycle manager, and adapter catalog used by the other Bodai components. The standalone install is identical — Bodai does not impose special-case overrides on Oneiric's domain model; consumers wire the same load_settings() and adapter registries they would in any other Python application.


Observability and state

Oneiric uses structured logging and writes runtime artifacts below the configured cache_dir (the default setting is .oneiric_cache). The runtime surface includes:

  • runtime_health.json for watcher, remote, supervisor, and orchestrator state
  • runtime_telemetry.json for event and workflow execution summaries
  • lifecycle_status.json for provider lifecycle snapshots
  • domain_activity.sqlite for pause/drain state
  • workflow_checkpoints.sqlite for resumable workflow execution when enabled

See docs/OBSERVABILITY_GUIDE.md for logging, telemetry, and artifact-handling details. workflow.notify routes messages through the configured messaging adapter when notification delivery is enabled.


Remote manifests

Remote manifests can describe adapters, services, tasks, events, workflows, and actions. Oneiric can load them from local paths or supported URIs, validate optional signatures and digests, register their domains, and refresh them on a schedule.

uv run oneiric manifest pack \
  --input docs/sample_remote_manifest.yaml \
  --output build/manifest.json
uv run oneiric remote-sync --manifest docs/sample_remote_manifest.yaml
uv run oneiric remote-status

See docs/REMOTE_MANIFEST_SCHEMA.md and docs/SIGNATURE_VERIFICATION.md for the manifest and verification contracts.


Documentation


Development

# Fast repository checks
python -m crackerjack run --fast

# Comprehensive checks
python -m crackerjack run --comp

# Full quality run, including tests
python -m crackerjack run --run-tests

Run the repository-local gate after changing runtime, adapter, action, or CLI behavior. Add or update tests and documentation with the same change.


Contributing

  1. Review the relevant architecture and operator documentation.
  2. Run python -m crackerjack run --run-tests before opening a PR.
  3. Add or update tests for runtime features, adapters, actions, or CLI flows.
  4. Update the README or linked documentation when the operator surface changes.

License and support

Release files for oneiric 0.21.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 oneiric 0.21.7
File Size Uploaded
oneiric-0.21.7.tar.gz 1.7 MB Details

Built distribution (wheel)

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

Total release size: 2.1 MB

Release files / oneiric-0.21.7.tar.gz

Download URL oneiric-0.21.7.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
862368fbeefae7eb263647c279dfc70da63858972c6afef30040e3ca8b720770
BLAKE2b-256 checksum
How to use checksums
47bbd9197a639e3425df91c308292fda9a2d0419785ac2692a81add87b39103c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / oneiric-0.21.7-py3-none-any.whl

Download URL oneiric-0.21.7-py3-none-any.whl
Size 399.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6425dce4fcb725c43247ef547c38b5fdf3e564a3927576d6db51e69a5a9dea96
BLAKE2b-256 checksum
How to use checksums
894b40673adc322941ec90a26d4cc6c1f5cafffa0477dadf040354a06fb54a96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.23.1

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.8

2 release files

This release

0.21.7 This release

2 release files

0.21.6

2 release files

0.21.5

2 release files

0.21.4

2 release files

0.21.3

2 release files

0.21.0

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

2 release files

0.16.5

2 release files

0.16.4

2 release files

0.16.3

2 release files

0.16.2

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.8

2 release files

0.13.7

2 release files

0.13.3

2 release files

0.13.0

2 release files

0.12.3

2 release files

0.12.2

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.12

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

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