fleetforge_common/
agent_run_schema.rs

1use std::sync::OnceLock;
2
3use jsonschema::JSONSchema;
4use serde_json::Value;
5
6/// Returns the lazily compiled FleetForge AgentRun adapter envelope schema.
7pub fn agent_run_schema() -> &'static JSONSchema {
8    static AGENT_RUN_SCHEMA: OnceLock<JSONSchema> = OnceLock::new();
9    AGENT_RUN_SCHEMA.get_or_init(compile_schema)
10}
11
12fn compile_schema() -> JSONSchema {
13    let schema_value: Value = serde_json::from_str(crate::schemas::AGENT_RUN_SCHEMA_JSON)
14        .expect("embedded agent_run schema JSON must be valid");
15    JSONSchema::compile(&schema_value)
16        .expect("embedded agent_run schema JSON must compile under draft 2020-12")
17}