Metadata-Version: 2.4
Name: acty
Version: 0.1.0
Summary: High-level group runtime with TUI and CLI built on top of acty-core
Project-URL: Homepage, https://github.com/conspol/acty
Project-URL: Repository, https://github.com/conspol/acty
Project-URL: Issues, https://github.com/conspol/acty/issues
Maintainer-email: Konstantin Polev <70580603+conspol@users.noreply.github.com>
License-Expression: MIT
License-File: LICENSE
Keywords: asyncio,runtime,scheduler,tui,workflow
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Terminals
Requires-Python: >=3.12
Requires-Dist: acty-core<0.2.0,>=0.1.0
Requires-Dist: tenacity>=8.2.0
Requires-Dist: textual-plotext>=1.0.1
Requires-Dist: textual>=6.11.0
Provides-Extra: dev
Requires-Dist: build>=1.2.2; extra == 'dev'
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
Requires-Dist: pytest>=9.0.0; extra == 'dev'
Requires-Dist: twine>=5.1.1; extra == 'dev'
Provides-Extra: langchain
Requires-Dist: acty-langchain<0.2.0,>=0.1.0; extra == 'langchain'
Description-Content-Type: text/markdown

# acty

`acty` is the high-level runtime package in the Acty stack. It builds on
`acty-core` and adds the engine API, TUI application, and the `acty-tui` CLI
for following or replaying JSONL event streams.

## Install

```bash
pip install acty
```

Install the optional LangChain integration:

```bash
pip install "acty[langchain]"
```

For local development:

```bash
pip install -e .[dev]
```

## Python Usage

```python
import asyncio

from acty import ActyEngine, EngineConfig, EchoExecutor


async def main() -> None:
    engine = ActyEngine(executor=EchoExecutor(), config=EngineConfig())
    try:
        submission = await engine.submit_group("demo", {"primer": 1}, [{"follower": 1}])
        if submission.primer is not None:
            print((await submission.primer).output)
        for fut in submission.followers:
            print((await fut).output)
    finally:
        await engine.close()


asyncio.run(main())
```

## CLI Usage

The package exposes `acty-tui`:

```bash
acty-tui follow /tmp/acty_events.jsonl
acty-tui replay /tmp/acty_events.jsonl --speed 2.0
```

## Example Programs

Run the TUI demo:

```bash
python examples/group_tui_demo.py --groups 3 --followers-per-group 2
```

Run the retry demo:

```bash
python examples/tenacity_retry_demo.py --event-jsonl /tmp/acty_tenacity_events.jsonl
```

## Package Relationships

- `acty-core` provides the low-level scheduler, lifecycle, event, and cache primitives
- `acty` provides the engine, client, TUI, and CLI built on top of `acty-core`
- `acty-langchain`, `acty-openai`, and `acty-gigachat` provide optional executor integrations

## Development

- tests live under `tests/`
- example programs live under `examples/`
- adapter-specific integration coverage belongs in the adapter repos, not in this repo
