1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//! Harness-integration SDK for Aion — the inbound analogue of `aion-client`.
//!
//! Where [`aion-client`](https://docs.rs/aion-client) is the SDK for a caller *driving* Aion,
//! `aion-integrations` is the SDK for an agent harness Aion *drives*. It defines the
//! harness-neutral extension seam an integrator implements — the [`AgentHarness`] /
//! [`AgentSession`] traits — plus the reusable machinery an adapter would otherwise hand-roll,
//! and it re-exports the neutral `aion-core` types so an integrator has a single dependency.
//!
//! # The seam
//!
//! Implement [`AgentHarness`] (in a separate adapter crate) to teach Aion how to run one agent
//! harness for one activity attempt. The seam is **harness-blind by construction**: no signature
//! names a concrete harness, a transport, or a wire protocol. A session:
//!
//! - advertises which neutral intervention primitives it supports via
//! [`AgentSession::capabilities`] — an **empty set is first-class** (an observability-only
//! harness supports no interventions),
//! - streams neutral [`ActivityEvent`]s OUT via [`AgentSession::events`],
//! - accepts neutral [`InterventionCommand`]s IN via [`AgentSession::intervene`], and
//! - yields a single terminal [`Payload`] via [`AgentSession::wait_result`].
//!
//! # Building blocks
//!
//! - [`jsonrpc`] — a generic JSON-RPC 2.0 over newline-delimited stdio helper (envelopes, id
//! correlation, a single serializing writer) that **any** stdio-JSON-RPC adapter reuses. It is
//! machinery, not a harness: it names no concrete harness and no method namespace.
//!
//! # Re-exported neutral types
//!
//! The neutral `aion-core` types the integration surface speaks are re-exported from the crate
//! root (a curated re-export, the `aion-client` house style — not a blanket `pub use aion_core`),
//! so an integrator depends only on `aion-integrations`.
/// The harness-integration seam: the [`AgentHarness`] / [`AgentSession`] traits.
/// The harness-neutral error taxonomy for the seam.
/// A generic JSON-RPC 2.0 over newline-delimited stdio building block.
/// The neutral run identity handed to a harness at start.
pub use ;
pub use HarnessError;
pub use AgentRunSpec;
// Curated re-export of the neutral `aion-core` types the integration surface speaks, so an
// integrator has one dependency and never reaches directly into `aion-core` for these.
pub use ;
// The id types an `AgentRunSpec` needs, so the spec can be constructed without a second dependency.
pub use ;