Metadata-Version: 2.5
Name: sumbai
Version: 1.1.0
Summary: AI Engine Framework — engine, SDK facade, and CLI
Author: AI Engine Team
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
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: Topic :: Software Development :: Libraries
Requires-Python: <3.13,>=3.11
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: browserforge>=1.2.0
Requires-Dist: camoufox[geoip]>=0.4.0
Requires-Dist: dependency-injector>=4.41.0
Requires-Dist: duckduckgo-search>=7.0.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: inquirerpy>=0.3.0
Requires-Dist: nodriver>=0.50.0
Requires-Dist: playwright>=1.45.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-json-logger>=2.0.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: structlog>=23.0.0
Requires-Dist: typer>=0.9.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pypdf>=4.0.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.10.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Provides-Extra: docx
Requires-Dist: python-docx>=1.0.0; extra == 'docx'
Provides-Extra: embeddings
Requires-Dist: sentence-transformers>=2.2.0; extra == 'embeddings'
Provides-Extra: interactive
Requires-Dist: inquirerpy>=0.3.0; extra == 'interactive'
Provides-Extra: litellm
Requires-Dist: litellm>=1.0.0; extra == 'litellm'
Provides-Extra: otel
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.27.0; extra == 'otel'
Requires-Dist: opentelemetry-sdk>=1.27.0; extra == 'otel'
Provides-Extra: pdf
Requires-Dist: pypdf>=4.0.0; extra == 'pdf'
Provides-Extra: postgres
Requires-Dist: asyncpg>=0.29.0; extra == 'postgres'
Provides-Extra: xlsx
Requires-Dist: openpyxl>=3.1.0; extra == 'xlsx'
Description-Content-Type: text/markdown

# AI Engine Framework

[![PyPI version](https://img.shields.io/pypi/v/sumbai.svg)](https://pypi.org/project/sumbai/)
[![Python versions](https://img.shields.io/pypi/pyversions/sumbai.svg)](https://pypi.org/project/sumbai/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

> The distribution is published to PyPI as **`sumbai`**. There is no CI badge
> because this project has no public source repository — see
> [Documentation](#documentation).

A modular, extensible framework for building AI-powered applications with Python.

## Features

- **Modular Architecture** - 17 core modules for agents, memory, tools, workflows, and more
- **Plugin System** - Contracts that let capabilities be added without touching core. Note: the working providers (OpenAI-compatible, Anthropic, Gemini) are implemented *in-core*; the `plugins/` directory in the source tree is not part of the published wheel and there are no separate provider packages to install
- **Developer SDK** - Fluent API with async support and type safety
- **CLI Interface** - Interactive chat, project management, and diagnostics
- **Observability** - Built-in tracing, metrics, and audit logging
- **Multi-Agent** - Collaboration, organization, and session management
- **Production Ready** - Comprehensive testing, documentation, and CI/CD

## Installation

```bash
pip install sumbai
```

The import names stay `ai_engine`, `sdk`, and `cli`; the `ai` command-line
entry point is installed with the base package.

With optional extras:

```bash
pip install "sumbai[embeddings,postgres,otel,pdf,docx,xlsx,litellm]"
```

The package declares nine extras in total — the seven above plus `dev` (test
and lint toolchain) and `interactive` (`InquirerPy`, already a hard dependency
and kept only for compatibility). See
[Installation](docs/getting-started/installation.md) for what each one brings.

There is no `openai`, `anthropic`, `qdrant`, `redis`, or `all` extra. Model
providers are implemented in-core over `httpx` and need no extra package.
Asking for an extra that does not exist is not an error, and `pip` will not
tell you: measured with pip 26.1.2, `pip install "sumbai[qdrant,openai]"`
prints `Successfully installed sumbai-1.0.1` and nothing else, so a typo here
fails completely silently. (`uv pip install` does warn; `pip` does not.)

## Quick Start

Verify the install:

```bash
python -c "from sdk import AISDK; print('SDK installed successfully')"
ai --version
```

A fresh `AISDK()` has **no model provider wired**, so asking it to answer
something fails honestly rather than inventing a reply — `sdk.agents.run(...)`
raises `No LLM provider configured for ChatLoop`, and the older
`Engine().run("Hello, world!")` returns a `Response` carrying
`CAPABILITY_NOT_FOUND: Capability 'chat' not found`. Both are measured, and
neither is a bug: configuring a provider is the caller's step.

Wiring one is a DI override today, not a facade call. The worked example is
`samples/sdk_tour/05_agent.py`, and `samples/quickstart/chat.py` is a complete
runnable chat client.

## Documentation

Documentation lives in this repository; there is no published documentation
site. `docs/` and `samples/` are **not part of the distribution** — the sdist
carries `ai_engine`, `engine`, `sdk`, `cli` and these top-level files, so the
links below resolve in a clone of the source and not in an installed package.

- [Getting Started](docs/getting-started/installation.md)
- [Core Concepts](docs/core-concepts/architecture.md)
- [SDK Reference](docs/sdk-reference/index.md)
- [CLI Reference](docs/cli/reference.md)
- [Cookbook](cookbook/)
- [Changelog](CHANGELOG.md)

## Contributing

We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

## Security

For security vulnerabilities, please see [SECURITY.md](SECURITY.md).

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
