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
//! The built-in assistant: the aion authoring assistant ships INSIDE the
//! server binary, present the moment `aion server` runs.
//!
//! This is the ops-console doctrine applied to a workflow document. The
//! console is compiled into the binary and served at `/` with no operator
//! step; the assistant document
//! (`crates/aion-server/assistant-embed/assistant.awl`) is compiled into the
//! binary the same way, installed into the engine at boot, and described over
//! `/assistant`. A stock `cargo install aion-cli` therefore carries the
//! assistant — no repository checkout, no example crate, no hand deploy.
//!
//! # The brain is a seam, not a dependency
//!
//! Nothing here names an agent harness. The document declares one `agent`
//! action on the assistant's own private queue; WHICH agent serves that
//! queue, and how it is launched, is declared in the DOCUMENT a worker is
//! started from — its `harness` section names the kind (norn today, ACP for
//! external agents) and every launch setting. This module installs the
//! embedded document and describes it; it neither spawns nor selects a brain.
//!
//! # The queue is the assistant's own name, never `default`
//!
//! [`document::private_task_queue`] IS the rule: the built-in assistant serves
//! the queue named after the workflow type it exports, and the embedded
//! document is refused at load if it declares anything else. `default` is
//! where an out-of-box worker comes up with no configuration, and contract
//! admission holds a registering worker against every reachable contract on
//! its queue — so an assistant sitting on `default` refused the first worker a
//! newcomer started (#200). The queue belongs to those workers.
//!
//! A catalog that predates that change still has its assistant on the old
//! queue. Nothing here moves it: [`install`] reports the divergence at WARN,
//! naming both queues and the verbs that perform the move, and leaves routing
//! exactly as the operator left it.
//!
//! # What the install will and will not do
//!
//! [`install::install_embedded_assistant`] loads the embedded package into
//! the engine ONLY when the catalog holds no version of the assistant
//! workflow type at all — a fresh home. Loading a package re-points routing
//! for its type ([`aion::Engine::load_package`]), so an unconditional boot
//! install would silently steal the route from an operator's deliberate
//! rollback, on every restart. When any version is already resident the
//! install stands down and says so, naming both hashes and the operator's own
//! cut verbs. The live cut is the operator's act, never a side effect of a
//! restart.
/// The served description of the embedded assistant: identity, contract, and
/// current residency in the engine catalog.
/// The embedded AWL document, its compiled identity, and its verified session
/// contract.
/// Boot-time installation of the embedded document into the engine catalog.
pub use ;
pub use ;
pub use ;