Metadata-Version: 2.5
Name: splay-router
Version: 0.14.0
Summary: Evidence-led local execution control plane for coding agents
Project-URL: Homepage, https://github.com/delvera-ai/splay
Project-URL: Documentation, https://github.com/delvera-ai/splay/tree/main/docs
Project-URL: Issues, https://github.com/delvera-ai/splay/issues
Project-URL: Changelog, https://github.com/delvera-ai/splay/blob/main/CHANGELOG.md
Author: Splay maintainers
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: coding-agents,execution,mcp,routing,splay
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: platformdirs>=4.2
Requires-Dist: pydantic>=2.7
Requires-Dist: rich>=13.7
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: hatchling>=1.25; extra == 'dev'
Requires-Dist: hypothesis>=6.100; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pip-audit>=2.7; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.2; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Provides-Extra: mcp
Requires-Dist: mcp>=1.0; extra == 'mcp'
Description-Content-Type: text/markdown

# Splay

Evidence-led local execution control plane for coding agents.

**Install:**

```bash
pip install splay-router
splay --version
splay smoke
```

The PyPI distribution name is **`splay-router`**. The CLI executable is **`splay`**.

## Status

| Item | State |
| --- | --- |
| Product brand | Splay |
| Spec | [`Splay_Technical_Specification_v0.2-draft.pdf`](./Splay_Technical_Specification_v0.2-draft.pdf) |
| Phase −1 … 3 | Complete — see `docs/phase-*/` |
| Phase 4 (Codex ExecutionProfile) | Complete — [`docs/phase-4/`](./docs/phase-4/) |
| Phase 5 (offline routing eval) | Complete — [`docs/phase-5/`](./docs/phase-5/) |
| Phase 6 (ACP worker family) | Complete — [`docs/phase-6/`](./docs/phase-6/) |
| Phase 7 (terms / economy) | Complete — [`docs/phase-7/`](./docs/phase-7/) |
| Phase 8 (strict-v1 routing) | Complete — [`docs/phase-8/`](./docs/phase-8/) |
| Phase 9 (MCP northbound stub) | Complete — [`docs/phase-9/`](./docs/phase-9/) |
| Phase 10 (ContextPack experiment) | Complete — [`docs/phase-10/`](./docs/phase-10/) |
| Phase 11 (strategy research) | Complete — [`docs/phase-11/`](./docs/phase-11/) |
| Phase 12 (public alpha) | Complete — [`docs/phase-12/`](./docs/phase-12/) |
| Post-alpha (E0/E1, CRB replay, MCP Tasks, live paths) | Complete — [`docs/post-alpha/`](./docs/post-alpha/) |
| v1 evidence plan | [`docs/v1/RELEASE_PLAN.md`](./docs/v1/RELEASE_PLAN.md) |
| Distribution | `splay-router` `0.14.0` (public alpha + subscription-first evidence tooling) |
| Implementation | Local control plane + Codex/ACP stubs + strict-v1 routing + MCP stub + diary/delta |

## Public alpha

Splay 0.14.0 is a **local, stub-qualified** public alpha with subscription-first evidence tooling:

- **Worker families:** Codex App Server stub + ACP breadth stub (`splay task run --worker codex|acp|fake`).
- **VerificationSpec:** `splay verify list|run` (Phase 2 foundation).
- **Ceilings / spend:** `ResourceCeilings` on MCP delegate; default `NO_MARGINAL_SPEND`.
- **Routing eval (reproducible):** `splay eval routing compare --seed 42 --tasks 64`
- **Onboarding:** `splay setup`, aggregate `splay doctor`, `splay uninstall --yes`
- **MCP:** `splay mcp serve` (JSON-RPC shaped stub — see [`docs/alpha/LIMITATIONS.md`](./docs/alpha/LIMITATIONS.md))
- **Terms matrix:** [`docs/alpha/TERMS_SUPPORT_MATRIX.md`](./docs/alpha/TERMS_SUPPORT_MATRIX.md)

## Quick start (development)

```bash
uv sync
STATE=$(mktemp -d)
uv run splay session create "fix a bug" --foreground --state-dir "$STATE"
# note metasession id, then:
uv run splay task create --session ms-... "apply fix" --foreground --state-dir "$STATE"
uv run splay task run task-... --worker codex --foreground --state-dir "$STATE"
uv run splay profile probe
uv run splay status --foreground --state-dir "$STATE"
uv run pytest
```

### CLI

| Command | Purpose |
| --- | --- |
| `splay session create` | Create MetaSession |
| `splay task create/run/cancel` | Task lifecycle via control plane |
| `splay task run --worker codex` | Execute via Codex App Server stub profile |
| `splay profile probe` / `list` | Observe ExecutionProfile capabilities |
| `splay eval routing` | Offline baseline policy comparison (synthetic matrix) |
| `splay route plan --prompt ...` | Strict-v1 RouteDecision (stub profiles) |
| `splay doctor` / `terms` / `resources` | Alpha diagnostics |
| `splay mcp serve` | MCP-shaped northbound stub |
| `splay setup` / `uninstall --yes` | Local state onboarding / teardown |
| `splay status` | Inspect sessions/tasks/runs |
| `splay reconcile` | Crash/process reconciliation |
| `splay daemon serve` | Local Unix-socket control daemon |
| `splay fake` / `splay verify` | Phase 1–2 diagnostics |

## Compliance note

Provider-channel eligibility can change. Users remain responsible for compliance with their provider terms. Splay does not broker credentials or silently enable paid fallback.

## License

Apache-2.0 — see [`LICENSE`](./LICENSE).
