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
//! # talon — host orchestrator and CLI
//!
//! The `talon` binary is the long-running host process plus the operator
//! CLI:
//!
//! | command | purpose |
//! |---|---|
//! | `talon run` (default) | orchestrator: channels, message loop, queue, scheduler, IPC watcher, LLM gateway |
//! | `talon setup <step> [args]` | setup steps from `talon-setup` (machine-readable status blocks) |
//! | `talon doctor` | environment, vLLM, container runtime and LLM gateway diagnostics |
//! | `talon audit verify` | recompute the hash-chained audit log |
//! | `talon audit tail [-n N] [--kind prefix]` | recent audit events as JSON lines |
//! | `talon eval score --reports DIR` | score saved reports against the golden set (`evals/golden/`) |
//! | `talon eval run` | investigate every golden case through a running Talon, then score |
//! | `talon version` | print the version |
//!
//! ## Architecture of `talon run`
//!
//! ```text
//! channels (http, telegram, emacs, webhook)
//! │ ChannelHost::on_message ── sender allowlist (drop) ── store ── Notify
//! ▼
//! message loop (event-driven, poll fallback) ── trigger gating ── session commands
//! │ pipe follow-up into the lane's container (IPC input) or enqueue a lane run
//! ▼
//! GroupQueue (per-lane serialization, global limit) ◀── TaskScheduler (due tasks)
//! │ LaneProcessor::process_messages / run_task
//! ▼
//! Orchestrator::run_agent ── session/provider fingerprint ── snapshots
//! │ LLM gateway token (stdin only) ── ContainerRunner ── output frames
//! ▼
//! outbound: redact ── format per channel dialect ── Channel::send_message
//! ```
//!
//! Everything that needs the outside world (container runtime, LLM gateway,
//! channels) sits behind a trait ([`agent::ContainerLauncher`],
//! [`agent::LlmAccess`], `talon_core::channel::Channel`) so the orchestrator
//! logic is unit-tested with fakes and an in-memory database.
/// Version of the `talon` package (`CARGO_PKG_VERSION`).
pub const VERSION: &str = env!;