Documentation

Quickstart

Requirements: Docker with Compose, curl, and jq. No LLM key is required.

git clone https://github.com/pycarrot/moonwire.git
cd moonwire
docker compose up -d --build --wait
./examples/support-agent/demo.sh

The script asserts each transition and exits non-zero if the behavior differs:

VALID   support answer may be used
  ↓ policy changes from v1 to v2
STALE   revalidation required
  ↓ application recomputes and acknowledges
VALID   recomputed answer may be used

What Moonwire stored

The demo sends a unique resource reference, versions v1 and v2, a field selector, an artifact identity, and small metadata. The two policy sentences are printed locally; they are not sent to Moonwire.

Run the onboarding regression

make onboarding-test

This starts an isolated Compose project on ports 18088 and 15432, measures the flow, verifies VALID → STALE → VALID, and stops that stack.

Use an SDK

The packages are prepared as moonwire for Python and @moonwire/sdk for TypeScript. Until their registry-side trusted publishers are authorized, install from a checked-out release:

python -m pip install ./sdk/python
npm install ./sdk/typescript

Continue with the repository examples for plain Python, OpenAI Agents SDK-style tools, or LangGraph-style state.