Metadata-Version: 2.4
Name: cubelife
Version: 0.1.0
Summary: SDK for CubeLife — give your AI agent a living pixel-art character
Project-URL: Homepage, https://life.cubeworld.co.za
Project-URL: Repository, https://github.com/AndriesJacobus/CubeWorld
License-Expression: MIT
License-File: LICENSE
Keywords: agent,ai,character,pixel-art,visualisation
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.9
Provides-Extra: dev
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Description-Content-Type: text/markdown

# cubelife

Python SDK for CubeLife. Give your AI agent a living pixel-art character.

Zero runtime dependencies, uses only the Python standard library.

## Install

```bash
pip install cubelife
```

## Quick Start

```python
from cubelife import CubeLifeClient

client = CubeLifeClient("your-agent-api-key")

# Report what your agent is doing
client.report("coding", detail="Building the login page", sentiment="positive")

# Update progress
client.report("coding", detail="Building the login page", progress=0.5)

# Mark complete
client.report("complete", detail="Login page shipped")
```

## API

### `CubeLifeClient`

Agent-facing client using API key authentication.

```python
client = CubeLifeClient("your-key")
```

**Methods:**

- `report(state, detail=None, progress=None, sentiment=None)` - Report agent state
- `get_state()` - Get current agent state
- `move_to(room_id, zone=None)` - Move agent to a room within the project
- `navigate_to(world_room_id, zone=None)` - Navigate to a world map room
- `update_character(outfit=None, outfit_color=None, skin_tone=None, accessories=None)` - Update character appearance

### `CubeLifeAdmin`

Management client using bearer token authentication.

```python
from cubelife import CubeLifeAdmin

admin = CubeLifeAdmin()
admin.login("email", "password")
```

**Methods:**

- `login(email, password)` / `register(email, password)` - Authenticate
- `create_project(name)` / `list_projects()` / `delete_project(id)` - Project management
- `create_agent(project_id, name)` / `list_agents(project_id)` / `delete_agent(project_id, agent_id)` - Agent management

## Work States

`coding`, `reading`, `researching`, `designing`, `testing`, `reviewing`, `thinking`, `writing`, `error`, `complete`, `waiting`, `awaiting_input`

## Requirements

Python 3.9+. No external dependencies.

## Licence

MIT
