Metadata-Version: 2.4
Name: trellis-pipelines
Version: 0.1.1
Summary: Modular agentic pipeline system for document and data workflows
Author: Ciaran Davies
License: MIT License
        
        Copyright (c) 2026 Ciaran Davies
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/ciarandavies7191/trellis
Project-URL: Repository, https://github.com/ciarandavies7191/trellis
Project-URL: Documentation, https://ciarandavies7191.github.io/trellis
Project-URL: Bug Tracker, https://github.com/ciarandavies7191/trellis/issues
Keywords: pipeline,agentic,dag,document,extraction,llm,pdf,sec,etl,workflow
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Office/Business
Classifier: Typing :: Typed
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: litellm>=1.0.0
Requires-Dist: PyMuPDF>=1.24.0
Requires-Dist: pypdf>=3.0.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: typer>=0.9
Provides-Extra: api
Requires-Dist: fastapi>=0.104; extra == "api"
Requires-Dist: uvicorn[standard]>=0.24; extra == "api"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: httpx>=0.24; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: isort>=5.12; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Requires-Dist: ruff>=0.1; extra == "dev"
Provides-Extra: all
Requires-Dist: trellis-pipelines[api]; extra == "all"
Dynamic: license-file

# Trellis

An agentic solution for pipeline planning and execution within controlled environments.

## Quick Start

### Installation

```bash
pip install -e .
```

### Usage

#### CLI

```bash
# Validate a pipeline
trellis validate pipelines/example.yaml

# Run a pipeline
trellis run pipelines/example.yaml

# Generate a plan from a goal
trellis plan "Extract and analyze market data"

# Generate a pipeline from a goal
trellis generate "Extract and analyze market data" -o output.yaml
```

#### API

```bash
# Start the API server
python -m trellis_api.main

# Create a pipeline
curl -X POST http://localhost:8000/pipelines \
  -H "Content-Type: application/json" \
  -d '{
    "id": "example_pipeline",
    "goal": "Process data",
    "tasks": []
  }'
```

#### Python Library

```python
from trellis.models.pipeline import Pipeline
from trellis.execution.dag import DAGExecutor

pipeline = Pipeline(
    id="my_pipeline",
    goal="Extract and process data",
    tasks=[]
)

executor = DAGExecutor()
results = executor.execute({})
```

## Architecture

See [docs/architecture.md](docs/specifications/ARCHITECTURE.md) for detailed architecture documentation.

## Project Structure

```
trellis/
├── trellis/                    # Core library (shared)
│   ├── models/             # Pydantic DSL models
│   ├── validation/         # DAG and contract validation
│   ├── execution/          # Execution engine
│   └── tools/              # Tool protocol and implementations
├── trelis_api/             # FastAPI server
├── trelis_mcp/             # MCP server
├── trelis_cli/             # CLI interface
├── data/                   # Dataset generation
├── tests/                  # Test suite
├── docs/                   # Documentation
└── scripts/                # Utility scripts
```

## Development

### Testing

```bash
pytest tests/ -v
```

### Linting

```bash
black .
isort .
mypy trellis/
```

### Building

```bash
python -m build
```

## License

See LICENSE file for details.
