56 lines
1.4 KiB
Markdown
56 lines
1.4 KiB
Markdown
|
|
# Lazarus Pit v2.0 — Cells, Invites, and Teaming
|
||
|
|
|
||
|
|
## Quick Start
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Summon a single agent
|
||
|
|
python3 -m lazarus.cli summon allegro Timmy_Foundation/timmy-config#262
|
||
|
|
|
||
|
|
# Form a team
|
||
|
|
python3 -m lazarus.cli team allegro+ezra Timmy_Foundation/timmy-config#262
|
||
|
|
|
||
|
|
# Invite a guest bot
|
||
|
|
python3 -m lazarus.cli invite <cell_id> bot:kimi observer
|
||
|
|
|
||
|
|
# Check status
|
||
|
|
python3 -m lazarus.cli status
|
||
|
|
|
||
|
|
# Close / destroy
|
||
|
|
python3 -m lazarus.cli close <cell_id>
|
||
|
|
python3 -m lazarus.cli destroy <cell_id>
|
||
|
|
```
|
||
|
|
|
||
|
|
## Architecture
|
||
|
|
|
||
|
|
```
|
||
|
|
lazarus/
|
||
|
|
├── cell.py # Cell model, registry, filesystem packager
|
||
|
|
├── operator_ctl.py # summon, invite, team, status, close, destroy
|
||
|
|
├── cli.py # CLI entrypoint
|
||
|
|
├── backends/
|
||
|
|
│ ├── base.py # Backend abstraction
|
||
|
|
│ └── process_backend.py
|
||
|
|
└── tests/
|
||
|
|
└── test_cell.py # Isolation + lifecycle tests
|
||
|
|
```
|
||
|
|
|
||
|
|
## Design Invariants
|
||
|
|
|
||
|
|
1. **One cell, one project target**
|
||
|
|
2. **Cells cannot read each other's `HERMES_HOME` by default**
|
||
|
|
3. **Guests join with least privilege**
|
||
|
|
4. **Destroyed cells are scrubbed from disk**
|
||
|
|
5. **All cell state is persisted in SQLite registry**
|
||
|
|
|
||
|
|
## Cell Lifecycle
|
||
|
|
|
||
|
|
```
|
||
|
|
proposed -> active -> idle -> closing -> archived -> destroyed
|
||
|
|
```
|
||
|
|
|
||
|
|
## Roles
|
||
|
|
|
||
|
|
- `executor` — read/write code, run tools, push commits
|
||
|
|
- `observer` — read-only access
|
||
|
|
- `director` — can close cells and publish back to Gitea
|