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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//! Embeddable wasmtime host for ACT components.
//!
//! This is the engine behind the `act` CLI, packaged so other hosts — a
//! toolserver, a gateway, anything that has to run a component the same way —
//! get identical capability decisions, credential namespacing, consent
//! routing and audit records rather than a second implementation of them.
//!
//! The crate is headless: it knows nothing about terminals, MCP, HTTP or
//! configuration files. A host supplies the decisions ([`RuntimeConfig`]) and
//! the channel it reaches a human on ([`ConsentConfig`]); the runtime supplies
//! everything downstream of that.
//!
//! ```no_run
//! # async fn example() -> anyhow::Result<()> {
//! let rt = act_runtime::ComponentRuntime::new()?;
//! let component = "ghcr.io/actpkg/sqlite:0.1.0".parse()?;
//!
//! // Ask-mode grants with a denying prompter: the headless default, and the
//! // reason a capability the operator did not grant stays denied rather than
//! // silently allowed when no one is there to ask.
//! let running = rt
//! .load(
//! &component,
//! &act_runtime::RuntimeConfig::default(),
//! act_runtime::ConsentConfig::deny(),
//! )
//! .await?;
//!
//! let tools = running.handle().list_tools(&Default::default()).await?;
//! let result = running
//! .handle()
//! .call_tool("query", Vec::new(), Vec::new(), None)
//! .await?;
//! # let _ = (tools, result);
//! # Ok(())
//! # }
//! ```
pub
// Generated bindings from WIT — fully auto-generated, no manual patching.
pub use *;
pub use ;
pub use ;
pub use ;
pub use ComponentRef;
pub use ;
pub use ;