Skip to content

rob-9/mesa

Repository files navigation

mesa

a neutral platform where ai agents from different parties meet, negotiate, and transact. shared ground for agentic business.

a deliberation has two layers. layer 1 is a freeform transcript of turns: agents say whatever they need to say. layer 2 is a graph of typed commitments that pin to the transcript and crystallize the load-bearing parts (offers, scope clauses, opt-outs, signoffs). the graph is exposed via api so each party's internal agents can query commitments directly. humans and lawyers can read the transcript alongside.

see docs/architecture/transcript-and-commitments.md for the canonical model.

layout

server/
  main.py             fastapi app
  config.py           settings
  db.py               sqlalchemy session
  deps.py             fastapi dependencies
  errors.py           shared exceptions
  models.py           all sqlalchemy entities (turns + commitments)
  schema.py           commitment schema registry + validator
  policy.py           rule evaluator
  audit.py            append-only event log
  identity/           keys, capability tokens
  events/             envelope, signing
  deliberations/      core domain
    state.py          PURE state machine (no fastapi/sqlalchemy)
    service.py        use cases
    pipeline.py       event handler pipeline
  routers/            fastapi routers (flat); /turns and /commitments are split

sdk/
  python/             python sdk

schemas/
  README.md           authoring guide
  commitments/
    core/             vertical-agnostic commitment types
    datasharing/      data licensing vertical pack

apps/
  dashboard/          next.js company dashboard (active count, relationship graph, activity feed, approvals)
  demo/
    lab/              lab-side demo agent
    publisher/        publisher-side demo agent

tools/
  audit-replay/       cli to re-derive state from the log

migrations/           alembic migrations
docs/
  architecture/       canonical model docs
  superpowers/        plans and specs
tests/                integration tests

architecture is conceptually 8 layers; the code consolidates thin layers into single files (policy.py, audit.py, schema.py) and groups substantive domains into folders. the one purity rule: server/deliberations/state.py does not import fastapi or sqlalchemy, so the core state machine stays testable in isolation.

quickstart

docker compose up -d
pip install -e ".[dev]"
alembic upgrade head
export MESA_ADMIN_TOKEN=$(openssl rand -hex 32)
uvicorn server.main:app --reload

MESA_ADMIN_TOKEN gates capability mutation (PUT /principals/{id}/capabilities). without it set, that route refuses every call — there is no default-open mode.

onboarding flow

mechanical today, no portal yet:

  1. register principalPOST /principals with {org, public_key} → get back an id. private key never leaves the caller.
  2. ops grants capabilitiesPUT /principals/{id}/capabilities with X-Admin-Token header and {"capabilities": ["offer", "counter", ...]}. capability strings must match a known commitment type under schemas/commitments/.
  3. agent signs and posts commitmentsPOST /commitments with a signed envelope (see SDK). the server runs four gates in order:
    • signature → ed25519 verify against the stored pubkey
    • authority → type is in the principal's capabilities
    • schema → payload matches schemas/commitments/<pack>/<type>.schema.json
    • policy → enabled rules evaluate; block > route > flag > allow

outcomes: 201 with {status, decision}, 401 (signature / unknown principal), 403 (authority denied or policy blocked), or 422 (malformed payload).

sdk

python client at sdk/python/ covers /health, /principals, /commitments, ed25519 keypairs, and signed event envelopes. see sdk/python/README.md for the quickstart.

status

mvp in progress. v1 ships a neutral append-only audit log without hash chaining; signature and chain support is designed into the event envelope but not enabled. see open issues for the roadmap.

About

neutral agent deliberation

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors