pub mod access;
pub mod agent;
pub mod channel;
pub mod codec;
pub mod fire;
pub mod job;
pub mod obligation;
pub mod profile;
pub mod route;
pub mod subscription;
pub mod worker;
pub mod workflow;
pub use access::{Access, AccessPolicy};
pub use agent::{
AgentDecl, Budget, BudgetLimit, BudgetPeriod, Conversation, ConversationKind, Cost,
HandoffState, HistoryRef, Participant, ParticipantRole, SessionUsage, SpeakerPolicy, Transfer,
TransferHistory, TransferState, Usage,
};
pub use channel::ChannelConfig;
pub use fire::{Fire, FireStatus};
pub use job::{Job, JobOrigin, Repeat, Schedule, Target};
pub use obligation::{
Attachment, Obligation, ObligationSource, ObligationState, OutboundContent, Posted,
};
pub use profile::{Orchestration, PersonaRef, Profile, ProfileResidue};
pub use route::{resolve_route, route_specificity, Route, RouteMatch};
pub use subscription::WebhookSubscription;
pub use worker::{
EnvValue, PermissionDefault, PermissionPolicy, PermissionUnattended, WorkerHome, WorkerSpec,
WorkerSurface,
};
pub use workflow::{hermes_instance, Workflow};
pub fn schema() -> schemars::Schema {
schemars::schema_for!(Orchestration)
}
pub fn schema_for(record: &str) -> Option<schemars::Schema> {
Some(match record {
"Orchestration" => schemars::schema_for!(Orchestration),
"Profile" => schemars::schema_for!(Profile),
"Binding" => schemars::schema_for!(crate::ontology::Binding),
"SurfaceKey" => schemars::schema_for!(crate::ontology::SurfaceKey),
"Job" => schemars::schema_for!(Job),
"Fire" => schemars::schema_for!(Fire),
"Obligation" => schemars::schema_for!(Obligation),
"ChannelConfig" => schemars::schema_for!(ChannelConfig),
"Route" => schemars::schema_for!(Route),
"Access" => schemars::schema_for!(Access),
"WebhookSubscription" => schemars::schema_for!(WebhookSubscription),
"WorkerSpec" => schemars::schema_for!(WorkerSpec),
"PersonaRef" => schemars::schema_for!(PersonaRef),
"SecretRef" => schemars::schema_for!(crate::ontology::SecretRef),
"AgentDecl" => schemars::schema_for!(AgentDecl),
"Conversation" => schemars::schema_for!(Conversation),
"SpeakerPolicy" => schemars::schema_for!(SpeakerPolicy),
"Transfer" => schemars::schema_for!(Transfer),
"Handoff" => schemars::schema_for!(agent::Handoff),
"Usage" => schemars::schema_for!(Usage),
"Budget" => schemars::schema_for!(Budget),
"Fidelity" => schemars::schema_for!(crate::ontology::Fidelity),
"ArtifactFidelity" => schemars::schema_for!(crate::ontology::ArtifactFidelity),
_ => return None,
})
}
pub const RECORDS: &[&str] = &[
"Orchestration",
"Profile",
"Binding",
"SurfaceKey",
"Job",
"Fire",
"Obligation",
"ChannelConfig",
"Route",
"Access",
"WebhookSubscription",
"WorkerSpec",
"PersonaRef",
"SecretRef",
"AgentDecl",
"Conversation",
"SpeakerPolicy",
"Transfer",
"Handoff",
"Usage",
"Budget",
"Fidelity",
"ArtifactFidelity",
];