Skip to main content
Glama
MacXhi

lalanoo-protocol

by MacXhi
README.md
# lalanoo-protocol

> Framework open-source de coordination multi-agents basé sur le **Model Context Protocol (MCP)**.

[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue)](https://python.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
[![MCP Protocol](https://img.shields.io/badge/protocol-MCP_2024--11--05-purple)](https://modelcontextprotocol.io)

---

## Problème résolu

Quand plusieurs agents IA (Antigravity, Claude, Copilot, Codex…) travaillent simultanément sur un même dépôt, ils ne se "voient" pas : ils s'écrasent mutuellement, prennent des décisions contradictoires et n'ont aucune mémoire partagée.

**lalanoo-protocol** leur donne :
- 📋 Un **registre partagé** (qui travaille sur quoi)
- 🔒 Un **système de verrouillage de fichiers** avec tokens UUID
- 💬 Un **bus de messages asynchrone** entre agents
- 📝 Un **journal d'architecture** (ADR automatiques)
- 🏛️ Un **moteur de conseils multi-agents** (vote, consensus, clôture)
- 🔄 Un **orchestrateur** de messages JSON inter-agents

---

## Architecture

```
Agent 1 ──┐
Agent 2 ──┤──► MCP Server (lalanoo.py mcp) ──► Markdown Storage
Agent N ──┘         │                           (memoire.md
                     └──► Orchestrateur          agents_registry.md
                               │                 message_board.md)
                               ▼
                         Agents cibles
```

---

## Installation

```bash
# Depuis PyPI (bientôt)
pip install lalanoo-protocol

# Depuis le source
pip install -e ".[dev]"
```

---

## Usage rapide

### CLI
```bash
lalanoo-protocol status
lalanoo-protocol register --agent-id agt-001 --status "Idle"
lalanoo-protocol lock src/feature.ts --agent agt-001
lalanoo-protocol unlock src/feature.ts --agent agt-001 --token <token-reçu>
lalanoo-protocol message --from-agent agt-001 --to-agent agt-002 \
    --status-type "🟢 Terminé" "Feature X prête."
lalanoo-protocol mcp   # démarre le serveur MCP stdio
```

### Serveur MCP (configuration client)
```json
{
  "mcpServers": {
    "lalanoo": {
      "command": "lalanoo-protocol",
      "args": ["mcp"],
      "cwd": "/chemin/vers/votre/projet"
    }
  }
}
```

### SDK Python
```python
from lalanoo import op_lock, op_unlock, op_message

result = op_lock("src/feature.ts", "agt-001")
token  = result["token"]
# ... travail sur le fichier ...
op_unlock("src/feature.ts", "agt-001", token)
op_message("agt-001", "agt-002", "🟢 Terminé", "Feature X livrée.")
```

---

## Outils MCP exposés

| Outil | Description |
|-------|-------------|
| `lalanoo_status` | Statut des verrous et agents actifs |
| `lalanoo_register` | S'enregistrer dans le registre |
| `lalanoo_lock` | Verrouiller un fichier (retourne un token) |
| `lalanoo_unlock` | Déverrouiller (token requis) |
| `lalanoo_message` | Poster un message/hand-off |
| `lalanoo_log` | Ajouter au journal de bord |
| `lalanoo_adr` | Créer une décision d'architecture |
| `lalanoo_council_create` | Lancer un conseil multi-agents |
| `lalanoo_council_vote` | Voter dans un conseil |
| `lalanoo_council_close` | Clôturer et générer l'ADR |
| `lalanoo_review_request` | Demander une revue de code |
| `lalanoo_review_submit` | Soumettre un rapport de revue |
| `lalanoo_task_publish` | Publier un lot de travail |
| `lalanoo_doc_create` | Générer une roadmap ou un CDC |

---

## Développement

```bash
git clone https://github.com/your-org/lalanoo-protocol
cd lalanoo-protocol
pip install -e ".[dev]"
pytest tests/ -v
```

---

## Licence

MIT — voir [LICENSE](LICENSE).