arcp 2.0.0

Reference implementation of the Agent Runtime Control Protocol (ARCP) v1.1 — umbrella crate that re-exports arcp-core, arcp-client, and arcp-runtime.
Documentation
# subscriptions

One producing session, three Observer clients, three different sinks.
None of them ever issue a command.

## Before ARCP

Most teams sidecar the agent with a tee: agent emits to stdout, a
shipper tails the log, a second tail re-parses for metrics, a third
process writes to SQLite for replay. Three pipelines diverge over time,
none know about each other, and adding a fourth consumer means another
sidecar.

## With ARCP

```rust
let client: Client = todo!();              // observer client
let sub_id = subscribe(&client, target, Some(&["metric"])).await?;
// for await env in client.events() {
//     if let Some(inner) = unwrap_event(&env) { sink.handle(inner).await }
// }
```

Three observers. One transport each. Filters declared inline. The
producing session never knows they exist.

## ARCP primitives

- Subscriptions, filters, Observer role — RFC §13, §5.
- `since.after_message_id` backfill + the synthetic
  `subscription.backfill_complete` marker — §13.3.
- Standard metrics + trace spans — §17.
- Stream-kind filtering for `kind: thought` redaction — §11.4.

## File tour

- `main.rs` — boots three clients in parallel via `tokio::join!`.
- `sinks.rs``StdoutSink`, `SqliteSink` (uses `arcp::store::eventlog`),
  `OtlpSink` (metric / trace.span exporter).

## Variations

- Replace SQLite with ClickHouse for fleet-wide replay.
- Tee stdout into Slack via a `min_priority: critical` filter.
- A fourth subscriber on `kind: thought` only, gated by stricter
  access control.