Metadata-Version: 2.4
Name: uro-core
Version: 0.2.0
Summary: Uro Engine core library — persistent, AI-driven RPG world engine (embeddable, headless)
Project-URL: Homepage, https://github.com/cupskeee/uro
Project-URL: Repository, https://github.com/cupskeee/uro
Project-URL: Issues, https://github.com/cupskeee/uro/issues
Author: cupskeee
License-Expression: MIT
License-File: LICENSE
Keywords: ai,event-sourcing,game-engine,llm,rpg,worldbuilding
Requires-Python: >=3.12
Requires-Dist: jinja2>=3.1
Requires-Dist: pydantic>=2.9
Requires-Dist: python-ulid>=2.7
Requires-Dist: pyyaml>=6.0
Provides-Extra: all
Requires-Dist: asyncpg>=0.30; extra == 'all'
Requires-Dist: httpx>=0.27; extra == 'all'
Requires-Dist: pgvector>=0.5.0; extra == 'all'
Provides-Extra: llm
Requires-Dist: httpx>=0.27; extra == 'llm'
Provides-Extra: postgres
Requires-Dist: asyncpg>=0.30; extra == 'postgres'
Requires-Dist: pgvector>=0.5.0; extra == 'postgres'
Description-Content-Type: text/markdown

# uro-core

**The Uro Engine core library — the embeddable, headless world-state engine.**

Uro is a *world-state engine*: the persistent, versioned, forkable canonical record of a
living fictional world. A model narrates; a fenced extractor distills that narration into a
queryable world model — actors, places, factions, beliefs, open threads — that stays
authoritative while the story plays over it. It tracks not only what is *true* but *who knows
it*, and world state is **versioned and forkable**: a finished campaign's ending becomes a
point in history any new campaign can continue from, branch off, or explore as a what-if.

`uro-core` contains all engine logic and is embeddable in any consumer — the engine only ever
sees ports (hexagonal architecture), never concrete adapters.

## Install

```sh
pip install "uro-core[postgres,llm]"
```

The base install is the pure engine (it imports only ports). The shipped adapters live behind
extras:

- `postgres` — the bundled event store + semantic memory over PostgreSQL + pgvector.
- `llm` — the bundled LLM provider adapters (OpenAI-compatible + Anthropic).
- `all` — both.

An embedder can install the base package and supply their own adapters behind the same ports.

## Runtime

The bundled store requires **PostgreSQL 17 + pgvector**. The reference setup runs it via
Docker on host port 5433; see the project repository.

## Links

- Source, docs, and the reference CLI/server: https://github.com/cupskeee/uro
- License: MIT
