Metadata-Version: 2.1
Name: mana-agent
Version: 0.1.6
Summary: LLM-powered static analysis and repository understanding tool
License: MIT
Requires-Python: <=3.14.6,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer<1.0.0,>=0.6.0
Requires-Dist: rich<15.0,>=12.0
Requires-Dist: textual<1.0.0,>=0.80.0
Requires-Dist: prompt_toolkit<4.0,>=3.0
Requires-Dist: fastapi<1.0,>=0.110
Requires-Dist: uvicorn<1.0,>=0.27
Requires-Dist: python-multipart<1.0,>=0.0.9
Requires-Dist: pydantic<3.0,>=2.0
Requires-Dist: pydantic-settings<3.0,>=2.0
Requires-Dist: python-dotenv<3.0,>=1.0
Requires-Dist: PyYAML<7.0,>=6.0
Requires-Dist: tomli<3.0,>=2.0; python_version < "3.11"
Requires-Dist: exceptiongroup<2.0,>=1.2; python_version < "3.11"
Requires-Dist: tzdata>=2025.2
Requires-Dist: mcp<2.0,>=1.0
Requires-Dist: langchain<2.0.0,>=1.3.9
Requires-Dist: langchain-community<0.4.0,>=0.3.27
Requires-Dist: langchain-openai<2.0.0,>=1.1.14
Requires-Dist: openai<3.0.0,>=2.26.0
Requires-Dist: faiss-cpu<2.0.0,>=1.7.3
Requires-Dist: safety<3.0,>=2.0
Requires-Dist: python-docx<2.0,>=1.1
Requires-Dist: openpyxl<4.0,>=3.1
Requires-Dist: pypdf<7.0,>=4.0
Requires-Dist: reportlab<5.0,>=4.0
Requires-Dist: redis<5.0.0,>=4.5.0
Requires-Dist: rq<2.0.0,>=1.10.0
Requires-Dist: tenacity<9.0.0,>=8.0.0
Requires-Dist: cryptography<51.0,>=49.0.0
Requires-Dist: websockets<16,>=12
Provides-Extra: dev
Requires-Dist: pytest<9.0,>=8.0; extra == "dev"
Provides-Extra: browser
Requires-Dist: playwright<2.0,>=1.45; extra == "browser"
Provides-Extra: teach-desktop
Requires-Dist: pynput<2.0,>=1.7; extra == "teach-desktop"
Requires-Dist: pyobjc-framework-Quartz<13,>=10; sys_platform == "darwin" and extra == "teach-desktop"
Requires-Dist: pyobjc-framework-Cocoa<13,>=10; sys_platform == "darwin" and extra == "teach-desktop"
Requires-Dist: pyobjc-framework-ApplicationServices<13,>=10; sys_platform == "darwin" and extra == "teach-desktop"
Provides-Extra: mem0
Requires-Dist: mem0ai<3.0,>=2.0; extra == "mem0"
Requires-Dist: keyring<26.0,>=24.0; extra == "mem0"
Provides-Extra: supermemory
Requires-Dist: supermemory<4.0,>=3.56; extra == "supermemory"
Requires-Dist: keyring<26.0,>=24.0; extra == "supermemory"
Provides-Extra: acp
Requires-Dist: agent-client-protocol<0.12,>=0.11; extra == "acp"
Provides-Extra: a2a
Requires-Dist: a2a-sdk[http-server]<2.0,>=1.1; extra == "a2a"
Provides-Extra: protocols
Requires-Dist: agent-client-protocol<0.12,>=0.11; extra == "protocols"
Requires-Dist: a2a-sdk[http-server]<2.0,>=1.1; extra == "protocols"
Provides-Extra: execution-kubernetes
Requires-Dist: kubernetes<35,>=30; extra == "execution-kubernetes"
Provides-Extra: execution-modal
Requires-Dist: modal<2,>=0.64; extra == "execution-modal"
Provides-Extra: execution
Requires-Dist: kubernetes<35,>=30; extra == "execution"
Requires-Dist: modal<2,>=0.64; extra == "execution"
Provides-Extra: dashboard
Requires-Dist: streamlit<2.0,>=1.38; extra == "dashboard"
Requires-Dist: plotly<6,>=5.22; extra == "dashboard"
Requires-Dist: pandas<3,>=2.2; extra == "dashboard"
Provides-Extra: automations
Requires-Dist: apscheduler<4,>=3.10; extra == "automations"
Provides-Extra: observability
Requires-Dist: opentelemetry-sdk<2,>=1.27; extra == "observability"
Requires-Dist: opentelemetry-exporter-otlp-proto-http<2,>=1.27; extra == "observability"
Provides-Extra: email
Requires-Dist: google-api-python-client<3.0,>=2.0; extra == "email"
Requires-Dist: google-auth-oauthlib<2.0,>=1.2; extra == "email"
Requires-Dist: keyring<26.0,>=24.0; extra == "email"
Provides-Extra: full
Requires-Dist: playwright<2.0,>=1.45; extra == "full"
Requires-Dist: pynput<2.0,>=1.7; sys_platform != "linux" and extra == "full"
Requires-Dist: pyobjc-framework-Quartz<13,>=10; sys_platform == "darwin" and extra == "full"
Requires-Dist: pyobjc-framework-Cocoa<13,>=10; sys_platform == "darwin" and extra == "full"
Requires-Dist: pyobjc-framework-ApplicationServices<13,>=10; sys_platform == "darwin" and extra == "full"
Requires-Dist: streamlit<2.0,>=1.38; extra == "full"
Requires-Dist: plotly<6,>=5.22; extra == "full"
Requires-Dist: pandas<3,>=2.2; extra == "full"
Requires-Dist: apscheduler<4,>=3.10; extra == "full"
Requires-Dist: opentelemetry-sdk<2,>=1.27; extra == "full"
Requires-Dist: opentelemetry-exporter-otlp-proto-http<2,>=1.27; extra == "full"
Requires-Dist: google-api-python-client<3.0,>=2.0; extra == "full"
Requires-Dist: google-auth-oauthlib<2.0,>=1.2; extra == "full"
Requires-Dist: keyring<26.0,>=24.0; extra == "full"
Requires-Dist: mem0ai<3.0,>=2.0; extra == "full"
Requires-Dist: supermemory<4.0,>=3.56; extra == "full"
Requires-Dist: agent-client-protocol<0.12,>=0.11; extra == "full"
Requires-Dist: a2a-sdk[http-server]<2.0,>=1.1; extra == "full"

<p align="center">
  <img src="https://raw.githubusercontent.com/manaplatform/mana-agent/refs/heads/main/logo.png" alt="Mana-Agent" width="100%" />
</p>

<h1 align="center">Mana-Agent</h1>

<p align="center">
  <strong>Repository intelligence and safe multi-agent coding automation.</strong>
</p>

<p align="center">
  <a href="https://www.python.org/"><img alt="Python" src="https://img.shields.io/badge/Python-3.10--3.14-blue" /></a>
  <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-MIT-green" /></a>
  <img alt="Version" src="https://img.shields.io/badge/version-v0.1.6-purple" />
</p>

Mana-Agent is a Python CLI and optional dashboard for understanding, operating, and safely changing software repositories.

## Features

- Repository analysis and evidence-backed chat
- Multi-agent planning, coding, review, and verification
- Safe Git, document, browser, and computer-control tools
- Reusable external API integrations with validated requests, approvals, and SSRF protection
- Adaptive model routing and repository-scoped memory
- Visible context/cost budgets, lazy tool schemas, and lossless-backed result compression
- Automations, Teach Mode, Live Canvas, and media generation
- Gmail, Telegram, ACP, A2A, MCP, SSH, and reverse-worker integrations
- CLI, dashboard, and reusable analysis artifacts
- Durable execution supervision with leases, checkpoints, safe recovery, cancellation, result escrow, and verified completion

## Install

### pipx

```bash
pipx install git+https://github.com/manaplatform/mana-agent.git
```

### From source

```bash
git clone https://github.com/manaplatform/mana-agent.git
cd mana-agent

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
```

Install all optional features:

```bash
python -m pip install -e ".[full]"
```

## Quick start

```bash
mana-agent --configure
cd /path/to/project
mana-agent
```

Useful commands:

```bash
mana-agent doctor
mana-agent chat --root-dir .
mana-agent dashboard --root-dir .
mana-agent git -- status
mana-agent context report --since 7d
mana-agent tasks list --incomplete
mana-agent tasks status <task-id>
# `mana-agent runs ...` is the visible root-help alias for the same commands.
```

Inside chat:

```text
/analyze
/tasks
/models
/route explain
```

## How it works

Each user message is stored as an independent durable chat turn. A completed
task therefore does not close its conversation: later messages are classified
as independent work, a linked follow-up, a safe retry/resume, a status request,
or ordinary conversation. Re-delivery is idempotent only for the same client
message ID; verified task artifacts remain immutable inputs to follow-up work.

```text
Request → Router → Planner → Taskboard → Execution Supervisor → Tools → Verifier → Verified Result
```

Repository changes run through constrained tools, isolated worktrees, permission gates, and verification before being returned as merge candidates.

## Optional capabilities

```bash
python -m pip install -e ".[dashboard]"
python -m pip install -e ".[automations]"
python -m pip install -e ".[observability]"
python -m pip install -e ".[protocols]"
```

Browser support:

```bash
python -m playwright install chromium
```

## Configuration

Run:

```bash
mana-agent --configure
```

Mana-Agent stores configuration under:

```text
~/.mana/config.toml
~/.mana/secrets.toml
```

Credentials remain separate from normal settings.

## Documentation

See the [`docs/`](docs/) directory for installation, architecture, commands,
connectors, [connector health](docs/33-connector-health.md),
[resilient execution](docs/29-resilient-execution.md),
[API Manager](docs/api-manager.md), automation, Teach Mode, media generation,
workers, protocols, and development guides.

## Development

```bash
python -m pip install -e ".[full]"
python -m pip install pytest ruff mypy

pytest -q
ruff check src tests
mypy src tests
```

## License

Released under the [MIT License](LICENSE).
