Metadata-Version: 2.3
Name: pepperpy
Version: 1.8.0
Summary: A centralized hub for managing and loading AI artifacts like agents, prompts, and workflows
Author: Your Name
Author-email: your.email@example.com
Requires-Python: >=3.12,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Provides-Extra: all
Provides-Extra: anthropic
Provides-Extra: docs
Provides-Extra: google
Provides-Extra: langchain
Provides-Extra: openai
Provides-Extra: semantic-kernel
Requires-Dist: aiofiles (>=24.1.0,<25.0.0)
Requires-Dist: asyncpg (>=0.30.0,<0.31.0)
Requires-Dist: click (>=8.1.8,<9.0.0)
Requires-Dist: google-generativeai (>=0.8.4,<0.9.0) ; extra == "google" or extra == "all"
Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
Requires-Dist: jsonschema (>=4.23.0,<5.0.0)
Requires-Dist: loguru (>=0.7.3,<0.8.0)
Requires-Dist: openai (>=1.61.1,<2.0.0) ; extra == "openai" or extra == "all"
Requires-Dist: pydantic (>=2.10.6,<3.0.0)
Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
Requires-Dist: redis (>=5.2.1,<6.0.0)
Requires-Dist: rich (>=13.9.4,<14.0.0)
Requires-Dist: structlog (>=25.1.0,<26.0.0)
Requires-Dist: watchdog (>=3.0.0,<4.0.0)
Requires-Dist: watchfiles (>=0.21.0,<0.22.0)
Description-Content-Type: text/markdown

# Pepperpy

A Python library for building AI-powered research assistants.

## 🚀 Quick Win (30 seconds)
```bash
# Install Pepperpy
pip install pepperpy

# Start interactive setup
pepperpy init

# Ask your first question
pepperpy test "What is AI?"
```

That's it! You're ready to use Pepperpy's powerful features:
```python
from pepperpy import Pepperpy

async def main():
    # Auto-configuration (or use Pepperpy.quick_start() for interactive setup)
    pepper = await Pepperpy.create()
    
    # Simple question
    result = await pepper.ask("What is AI?")
    print(result)
    
    # Interactive chat
    await pepper.chat("Tell me about AI")  # With initial message
    # Or just:
    await pepper.chat()  # Start blank chat

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

## Quick Start

```python
from pepperpy import Pepperpy

# Quick setup with interactive wizard
pepper = Pepperpy.quick_start()

# Or configure programmatically
async with await Pepperpy.create(api_key="your-key") as pepper:
    # Ask simple questions
    result = await pepper.ask("What is AI?")
    print(result)
    
    # Research topics in depth
    result = await pepper.research("Impact of AI in Healthcare")
    print(result.tldr)  # Short summary
    print(result.full)  # Full report
    print(result.bullets)  # Key points
    print(result.references)  # Sources
    
    # Use pre-configured teams
    team = await pepper.hub.team("research-team")
    async with team.run("Analyze AI trends") as session:
        print(f"Current step: {session.current_step}")
        print(f"Progress: {session.progress * 100:.0f}%")
```

## Features

- 🚀 Zero-config setup with smart defaults
- 🤖 Pre-configured agents and teams
- 📚 Built-in research capabilities
- 🔄 Flexible workflows
- 🎯 Progress monitoring
- 🔌 Easy integration

## Installation

```bash
pip install pepperpy
```

## Documentation

### Basic Usage

The simplest way to get started is with the interactive setup:

```bash
# Run interactive setup
$ pepperpy init

# Test it out
$ pepperpy test "What is AI?"
```

Or in your code:

```python
from pepperpy import Pepperpy

# Auto-configuration
pepper = await Pepperpy.create()

# With custom settings
pepper = await Pepperpy.create(
    api_key="your-key",
    model="openai/gpt-4"
)
```

### Research Assistant

```python
# Simple research
result = await pepper.research("Quantum Computing")
print(result.tldr)  # Short summary
print(result.full)  # Full report

# With custom parameters
result = await pepper.research(
    topic="Quantum Computing",
    depth="academic",
    max_sources=10
)
```

### Teams & Workflows

```python
# Use a pre-configured team
team = await pepper.hub.team("research-team")
async with team.run("Analyze AI trends") as session:
    # Monitor progress
    print(f"Step: {session.current_step}")
    print(f"Progress: {session.progress * 100:.0f}%")
    
    # Provide input if needed
    if session.needs_input:
        value = input(f"{session.input_prompt}: ")
        session.provide_input(value)
```

### Custom Agents

```python
# Create a custom agent
agent = await pepper.hub.create_agent(
    name="custom-researcher",
    base="researcher",  # Inherit from base agent
    config={
        "style": "technical",
        "depth": "deep"
    }
)

# Use the agent
result = await agent.research("Topic")

# Share with others
await pepper.hub.publish("custom-researcher")
```

## Examples

Check out the `examples/` directory for more usage examples:

- `quick_start.py`: Basic usage with interactive setup
- `research_workflow.py`: Advanced research workflow
- `custom_agent.py`: Creating custom agents
- `team_collaboration.py`: Using teams and workflows

## Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests: `pytest`
5. Submit a pull request

## License

MIT License - see LICENSE file for details.

