aion-server 0.26.0

Aion workflow server library: HTTP, gRPC, WebSocket, and worker endpoints. Run it with the `aion` binary from the aion-cli crate.
Documentation
//! Built-in agent workers that start themselves.
//!
//! A first-time installer who deploys a document whose `worker` block carries a
//! `harness` section, and then runs it, must have the worker stood up BY THE
//! SERVER — zero worker commands typed. That is what this module is: the server
//! reading the launch the document already declares, writing the managed-worker
//! record that replays it, and converging its own supervisor onto it.
//!
//! # 🔴 WHAT THE DEPLOY GRANT NOW MEANS
//!
//! Before this, a deploy-granted caller could only make the server run the
//! server's OWN executable: `PUT /worker-deployments` names a `builtin`
//! artifact and nothing else. That is no longer the whole reachable set.
//!
//! A deployed document's `harness` section is the complete launch of an agent
//! subprocess, and an `acp` section names an absolute `command` with its own
//! `args`, `cwd` and `env_pass`. So a single `POST /deploy/packages` from a
//! deploy-granted subject is now sufficient to have this server execute an
//! operator-chosen binary, unattended, with a restart policy behind it.
//!
//! That is the ruling, not an oversight — "the worker starts itself" cannot
//! mean anything else, and the launch has always been the document's rather
//! than a flag's. But it MUST be stated: the deploy grant is now equivalent to
//! local process execution as the server's user, and `[deploy].enabled` is the
//! switch that decides whether anybody holds it. The first-run config already
//! says deploying is running code on this server; this widens what "code"
//! covers, and an operator on a shared box should read it that way.
//!
//! # What a minted worker serves, and what it does NOT
//!
//! One record, one namespace: the server's own `default_namespace`. Namespace
//! and task queue are independent axes, and the deploy catalog is
//! namespace-blind, so a workflow of this type STARTED in another namespace is
//! not dispatched to this worker. Every minted outcome's detail says so, rather
//! than leaving the operator to discover it as a run that never progresses.

mod documents;
mod listener;
mod narrate;
mod outcome;
mod provision;
mod queues;
mod record;
mod retire;

pub use documents::{DocumentStoreError, StagedDocument, root as document_root};
pub use listener::{DarkOutbox, worker_dial_address};
pub use outcome::{AutoWorkerDecision, AutoWorkerOutcome};
pub use provision::{provision, provision_embedded_assistant};
pub use queues::{HarnessQueue, HarnessQueueError, harness_queues};
pub use record::{AUTO_PREFIX, auto_name, is_auto_name};
pub use retire::refresh_dial_addresses;

pub(crate) use listener::configured_listener;