Metadata-Version: 2.4
Name: scout-runtime
Version: 0.1.0
Summary: The Python runtime that ships inside every Scout-generated agent. Memory, sub-agents, sandbox, channels, heartbeat, cron, standing orders, commitments — the substrate.
Author: Dan Fritz
License: MIT
Project-URL: Homepage, https://myagentos.ai
Project-URL: Repository, https://github.com/dfritz603-afk/scout-platform
Project-URL: Documentation, https://myagentos.ai/docs
Project-URL: Issues, https://github.com/dfritz603-afk/scout-platform/issues
Keywords: agents,llm,ai,autonomous,scout,cognitive
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx>=0.25
Requires-Dist: pyyaml>=6.0
Requires-Dist: jsonschema>=4.20
Requires-Dist: starlette<0.40,>=0.36
Requires-Dist: uvicorn>=0.30
Requires-Dist: cryptography>=42.0
Requires-Dist: croniter>=2.0
Provides-Extra: telegram
Requires-Dist: python-telegram-bot>=20.0; extra == "telegram"
Provides-Extra: discord
Requires-Dist: discord.py>=2.3; extra == "discord"
Provides-Extra: email
Provides-Extra: tts
Requires-Dist: edge-tts>=6.1; extra == "tts"
Provides-Extra: ws
Requires-Dist: websockets>=12.0; extra == "ws"
Provides-Extra: acp
Requires-Dist: agent-client-protocol>=0.1; extra == "acp"
Provides-Extra: all
Requires-Dist: python-telegram-bot>=20.0; extra == "all"
Requires-Dist: discord.py>=2.3; extra == "all"
Requires-Dist: edge-tts>=6.1; extra == "all"
Requires-Dist: websockets>=12.0; extra == "all"
Requires-Dist: agent-client-protocol>=0.1; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.24; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.5; extra == "dev"
Requires-Dist: ruff<0.20,>=0.15; extra == "dev"
Requires-Dist: mypy>=1.10; extra == "dev"
Requires-Dist: respx>=0.21; extra == "dev"
Requires-Dist: httpx>=0.25; extra == "dev"
Dynamic: license-file

# scout-runtime

The Python runtime that ships inside every [Scout](https://myagentos.ai)-generated agent.

## What this is

`scout-runtime` is the substrate that Scout-generated agents run on. It provides:

- **Cognitive loop** — message handling, prompt assembly, tool dispatch
- **Persistent memory** — curated notes, daily log rotation, FTS5 session search
- **Sub-agents** — isolated child workers with their own memory slice
- **Heartbeats** — scheduled self-prompted checks (dream cycle, morning briefing, etc.)
- **Cron** — long-running scheduled jobs
- **Standing orders** — persistent rules across sessions
- **Commitments** — durable promises with deadline tracking
- **Sandbox** — Docker-isolated execution for risky actions
- **Channels** — multi-target output (TUI, gateway, Telegram, Discord, email)
- **Skills** — markdown-based procedural memory the agent can read/write/patch
- **Tools** — terminal, filesystem, workspace, memory, skills, discover
- **LLM providers** — Anthropic (Claude), OpenAI, Gemini, Ollama (direct HTTP, no SDKs)
- **ACP** — Agent Client Protocol for subprocess-based integrations

## Who uses this

You probably don't install `scout-runtime` directly. Scout-generated agents declare it as a dependency, so when you `pip install` an agent, you get the runtime as a transitive dep.

If you want to build agents yourself, the cleanest path is to use [myagentos.ai](https://myagentos.ai) to design them and let the generator emit a configured project — but the runtime is also usable standalone.

## Install

```bash
pip install scout-runtime
```

With optional channel adapters:

```bash
pip install "scout-runtime[telegram,discord]"

# Or everything:
pip install "scout-runtime[all]"
```

Available extras: `telegram`, `discord`, `email`, `tts`, `ws`, `acp`, `all`.

## Quick start

Scout-runtime is designed to be wrapped by a generated agent package, not driven directly. That said, here's the minimal shape of an agent that uses it:

```python
from scout_runtime.cognitive.agent import Agent, AgentConfig
from scout_runtime.identity import IdentityConfig

config = AgentConfig(
    identity=IdentityConfig(
        name="Example",
        purpose="A minimal demonstration",
    ),
    # ... memory, heartbeat, tools, etc.
)

agent = Agent(config=config)
agent.run()
```

Real agents come fully configured by [Scout](https://myagentos.ai)'s generator; this is what's underneath them.

## Architecture

See the [scout-platform repository](https://github.com/dfritz603-afk/scout-platform) for full architecture docs, design history, and the agent generator. The runtime ships across waves 1-3 of the platform; see `design/` in the repo for the design docs that produced this code.

## License

MIT. See [LICENSE](https://github.com/dfritz603-afk/scout-platform/blob/main/LICENSE).
