solti-model 0.0.1

Solti SDK domain model.
Documentation
//! Domain primitives for the solti task model.
//!
//! ## Modules
//!
//! | Module          | Types                                                        | Purpose                                     |
//! |-----------------|--------------------------------------------------------------|---------------------------------------------|
//! | `policy/`       | [`RestartPolicy`], [`BackoffPolicy`], [`AdmissionPolicy`]    | Lifecycle and concurrency policies          |
//! | `selector/`     | [`RunnerSelector`], [`SelectorRequirement`]                  | K8s-style label selector for runner routing |
//! | `environment/`  | [`TaskEnv`], [`RunnerEnv`], [`merge_env`]                    | Env-var handling with runner-wins merge     |
//! | `query/`        | [`TaskQuery`], [`TaskPage`]                                  | Filtered, paginated task listing            |
//! | `identity/`     | [`AgentId`], [`Slot`], [`TaskId`]                            | Resource identity (`Arc<str>`)              |
//! | `kind/`         | [`TaskKind`]                                                 | Execution backend enum                      |
//! | `label`         | [`Labels`]                                                   | Key-value metadata (`BTreeMap`)             |
//! | `flag`          | [`Flag`]                                                     | Boolean toggle                              |
//! | `kv`            | [`KeyValue`]                                                 | Generic key-value pair                      |
//! | `phase`         | [`TaskPhase`]                                                | Task lifecycle state                        |
//! | `timeout`       | [`Timeout`]                                                  | Milliseconds                                |

mod kind;
pub use kind::{
    ContainerSpec, MAX_SCRIPT_BODY_BYTES, Runtime, SubprocessMode, SubprocessSpec, TaskKind,
    WasmSpec,
};

mod identity;
pub use identity::{AGENT_ID_MAX_LEN, AgentId, SLOT_MAX_LEN, Slot, TASK_ID_MAX_LEN, TaskId};

mod policy;
pub use policy::{AdmissionPolicy, BackoffPolicy, JitterPolicy, RestartPolicy};

mod selector;
pub use selector::{RunnerSelector, SelectorOperator, SelectorRequirement};

mod environment;
pub use environment::{RunnerEnv, TaskEnv, merge as merge_env};

mod query;
pub use query::{DEFAULT_LIMIT, MAX_LIMIT, TaskPage, TaskQuery};

mod label;
pub use label::{Labels, LabelsIter};

mod phase;
pub use phase::TaskPhase;

mod timeout;
pub use timeout::Timeout;

mod kv;
pub use kv::KeyValue;

mod flag;
pub use flag::Flag;