Metadata-Version: 2.4
Name: steerable-agent-runtime
Version: 0.1.0
Summary: Steerable agent runtime: LLM, tool, storage, and transport adapters.
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: pydantic>=2.10.0
Requires-Dist: steerable-agent-protocol<1.0.0,>=0.1.0
Requires-Dist: steerable-agent-harness<1.0.0,>=0.1.0
Provides-Extra: sqlalchemy
Requires-Dist: sqlalchemy>=2.0; extra == "sqlalchemy"
Provides-Extra: fastapi
Requires-Dist: fastapi>=0.110; extra == "fastapi"
Requires-Dist: starlette>=0.37; extra == "fastapi"
Provides-Extra: openai
Requires-Dist: httpx>=0.27; extra == "openai"
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.40; extra == "anthropic"
Provides-Extra: all
Requires-Dist: sqlalchemy>=2.0; extra == "all"
Requires-Dist: fastapi>=0.110; extra == "all"
Requires-Dist: starlette>=0.37; extra == "all"
Requires-Dist: httpx>=0.27; extra == "all"
Requires-Dist: anthropic>=0.40; extra == "all"

# steerable-agent-runtime

Tier 3 runtime for the Steerable framework.

Provides four orthogonal pluggable adapters:

- `LLMProvider` — chat-completion / streaming / tool-call abstraction, with
  reference implementations for OpenAI-compatible servers (covers OpenAI,
  Ollama, vLLM, SiliconFlow, etc.) and Anthropic native.
- `ToolRouter` — in-process tool registry. Auto-classifies tools into
  `ToolMode`s using `steerable_agent_harness.policy`, supports per-tool
  permission overrides, and dispatches `ToolCall` → `ToolResult`.
- `StorageAdapter` — persistence interface for `AgentSession`, `ChatMessage`,
  `ChatAgent`, and `HarnessTrace + spans + events`. Reference impls: in-memory
  (default for sidecar/dev) and SQLAlchemy (for hosted backends).
- `TransportAdapter` — wire format. `FastAPISseTransport` exports SSE for
  hosted setups; `StdioJsonRpcTransport` powers the steerable-sidecar.

The runtime is **Python only** by design — frontends never depend on it
directly. Browsers/Electron consume runtime output via either the SSE transport
(over HTTP) or the stdio JSON-RPC transport (sidecar pattern).

## Install

```bash
pip install steerable-agent-runtime[all]
```

Selectively install just the bits you need:

```bash
pip install "steerable-agent-runtime[openai]"
pip install "steerable-agent-runtime[anthropic]"
pip install "steerable-agent-runtime[sqlalchemy]"
pip install "steerable-agent-runtime[fastapi]"
```
