Metadata-Version: 2.4
Name: stbass
Version: 0.1.0
Summary: Formal concurrency primitives for the agentic era. Too many bass players? Now they're in tune.
Project-URL: Homepage, https://github.com/Dynamo-Technologies/stbass
Project-URL: Repository, https://github.com/Dynamo-Technologies/stbass
Project-URL: Documentation, https://github.com/Dynamo-Technologies/stbass/blob/main/docs/STBASS_REFERENCE.md
Project-URL: Issues, https://github.com/Dynamo-Technologies/stbass/issues
Author-email: Beautiful Majestic Dolphin LLC <hello@beautifulmajesticdolphin.com>
License-Expression: MIT
License-File: LICENSE
Keywords: agents,async,channels,concurrency,csp,orchestration,parallel,process-algebra
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System :: Distributed Computing
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: httpx>=0.27
Requires-Dist: pydantic>=2.0
Provides-Extra: cli
Requires-Dist: rich>=13.0; extra == 'cli'
Requires-Dist: typer>=0.12; extra == 'cli'
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: rich>=13.0; extra == 'dev'
Provides-Extra: observe
Requires-Dist: opentelemetry-api>=1.0; extra == 'observe'
Description-Content-Type: text/markdown

# stbass

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**Formal concurrency primitives for the agentic era. Too many bass players? Now they're in tune.**

Named after Spinal Tap's infamous revolving door of bass players -- each one meeting a more absurd fate than the last. Like an uncoordinated parallel system, nobody knew who was playing bass at any given time. `stbass` brings order to that chaos.

## Why

`stbass` is a process algebra library inspired by Occam-2's CSP (Communicating Sequential Processes) concurrency model. CSP, originally formalized by Tony Hoare, models concurrent systems as independent processes that communicate exclusively through typed channels -- no shared mutable state, no locks, no data races.

Occam-2 brought CSP to hardware with constructs like `PAR`, `SEQ`, `ALT`, and channel-based communication. `stbass` brings these same formally-verified concurrency primitives to Python's async ecosystem, purpose-built for orchestrating agentic workflows.

## Quick Start

```python
from stbass import PAR, SEQ, Chan, Process

# Define typed channels
input_chan = Chan[str]("input")
output_chan = Chan[str]("output")

# Compose processes with PAR and SEQ
pipeline = SEQ(
    fetch_data(input_chan),
    PAR(
        analyze(input_chan, output_chan),
        summarize(input_chan, output_chan),
    ),
    report(output_chan),
)

result = await pipeline.run()
```

## Installation

```bash
pip install stbass
```

## License

MIT License - see [LICENSE](LICENSE) for details.
