Metadata-Version: 2.4
Name: cardiomas
Version: 0.1.0
Summary: CardioMAS — Cardio Multi-Agent System for reproducible ECG dataset splits
Author-email: Vajira Thambawita <vajira@simula.no>
License: Apache-2.0
Project-URL: Homepage, https://github.com/vlbthambawita/CardioMAS
Project-URL: Repository, https://github.com/vlbthambawita/CardioMAS
Project-URL: Issues, https://github.com/vlbthambawita/CardioMAS/issues
Project-URL: HuggingFace Dataset, https://huggingface.co/datasets/vlbthambawita/ECGBench
Keywords: ecg,cardiology,multi-agent,dataset,splits,reproducibility
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: langgraph>=0.2
Requires-Dist: langchain>=0.3
Requires-Dist: langchain-community>=0.3
Requires-Dist: langchain-ollama>=0.2
Requires-Dist: typer>=0.12
Requires-Dist: rich>=13.0
Requires-Dist: pydantic>=2.0
Requires-Dist: huggingface-hub>=0.24
Requires-Dist: datasets>=2.0
Requires-Dist: wfdb>=4.0
Requires-Dist: pandas>=2.0
Requires-Dist: numpy>=1.26
Requires-Dist: scikit-learn>=1.4
Requires-Dist: h5py>=3.10
Requires-Dist: requests>=2.31
Requires-Dist: httpx>=0.27
Requires-Dist: pyyaml>=6.0
Requires-Dist: python-dotenv>=1.0
Requires-Dist: beautifulsoup4>=4.12
Requires-Dist: pypdf>=4.0
Provides-Extra: cloud
Requires-Dist: langchain-openai>=0.2; extra == "cloud"
Requires-Dist: langchain-anthropic>=0.3; extra == "cloud"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: ruff>=0.4; extra == "dev"
Requires-Dist: mypy>=1.10; extra == "dev"
Requires-Dist: pre-commit>=3.7; extra == "dev"
Dynamic: license-file

# CardioMAS — Cardio Multi-Agent System

[![CI](https://github.com/vlbthambawita/CardioMAS/actions/workflows/ci.yml/badge.svg)](https://github.com/vlbthambawita/CardioMAS/actions/workflows/ci.yml)
[![PyPI](https://img.shields.io/pypi/v/cardiomas)](https://pypi.org/project/cardiomas/)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue)](LICENSE)
[![HuggingFace](https://img.shields.io/badge/HF-vlbthambawita%2FECGBench-yellow)](https://huggingface.co/datasets/vlbthambawita/ECGBench)

A locally-runnable multi-agent system that analyzes ECG datasets, generates reproducible train/validation/test splits, and publishes split manifests (record IDs only) to [vlbthambawita/ECGBench](https://huggingface.co/datasets/vlbthambawita/ECGBench) on HuggingFace.

## Quick Start

```bash
pip install cardiomas

# Analyze a dataset and publish splits
cardiomas analyze https://physionet.org/content/ptb-xl/1.0.3/

# Check existing splits
cardiomas status ptb-xl

# List all analyzed datasets
cardiomas list --remote
```

## Requirements

- Python ≥ 3.10
- [Ollama](https://ollama.com/) running locally with a model pulled (default: `llama3.1:8b`)

```bash
ollama pull llama3.1:8b
ollama serve
```

## Python API

```python
from cardiomas import CardioMAS

mas = CardioMAS(ollama_model="llama3.1:8b", seed=42)
result = mas.analyze("https://physionet.org/content/ptb-xl/1.0.3/")

splits = mas.get_splits("ptb-xl")
train_ids = splits["train"]
```

## Links

- **HuggingFace Dataset**: [vlbthambawita/ECGBench](https://huggingface.co/datasets/vlbthambawita/ECGBench)
- **PyPI**: [cardiomas](https://pypi.org/project/cardiomas/)
- **GitHub**: [vlbthambawita/CardioMAS](https://github.com/vlbthambawita/CardioMAS)
