Metadata-Version: 2.4
Name: obra-business
Version: 3.7.31
Summary: Obra Business Domain - Business process automation plugin for Obra
Author: Unpossible Creations, Inc.
License: Proprietary - All Rights Reserved
Project-URL: Homepage, https://obra.dev
Keywords: obra,business,automation,process,workflow,domain
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: obra>=2.5.0
Requires-Dist: rich>=13.0
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: test
Requires-Dist: pytest>=7.4.0; extra == "test"
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
Requires-Dist: pytest-mock>=3.11.0; extra == "test"
Provides-Extra: dev
Requires-Dist: obra-business[test]; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.6.0; extra == "dev"

# obra-business

Business domain plugin for Obra. The package provides business-domain schemas,
config loading, runtime delegation helpers, and packaged runner catalog entries
used by `obra run --domain business`.

## Installation

```bash
uv tool install obra
pip install -e obra-business/
```

The editable install is intended for in-repo development of the business-domain
package. Runtime entry and workflow execution are handled through the main Obra
CLI and Workflow Studio.

## Usage

```bash
obra help domains
obra run --domain business "Process the invoice packet and summarize exceptions"
```

## Configuration

The business domain uses layered configuration:

1. `obra_business/config/default_config.yaml`
2. `.obra/config.yaml`
3. environment overrides for supported parallel-execution settings

An authored stage `model_tier` overrides the configured stage-type default, but
delegated execution still resolves one concrete implementation model for the
outer `obra run` session.

Key settings:

```yaml
business:
  llm:
    extraction_model: sonnet
    execution_tier: medium
    stage_type_tiers:
      input_validation: fast
      transformation: medium
      enrichment: medium
      decision: high
      generation: high
      quality_gate: medium
      output: medium

  execution:
    quality_gate_behavior: loop
    retry_max: 3
    parallel:
      enabled: true
      max_concurrent_stages: 4
      default_failure_policy: fail_fast
```

## Runner Catalog

`obra-business` participates in Obra's runner catalog and packaging system.

- The package publishes its domain module through the `obra.domains` entry-point group.
- Domain-scoped runners are published through `get_runner_catalog_entries()` on the domain module and resolve with `scope: domain`, `domain_ids: ["business"]`, and `portability: portable`.
- Durable workflow references should use `runner_id` plus `runner_version` or `runner_selector`. They should not depend on a workspace-local Python factory path.
- Local project overrides belong in `pipeline.runner_catalog.project_overlay.entries`. Use `local_only` only for machine-specific commands or Python factories.
- Compatibility failures are raised before dispatch. Missing local executables, imports, or packages are surfaced separately as `installability_failure` by the runtime.

## License

Proprietary - All Rights Reserved. See obra.dev for licensing information.
