Runtime Configuration Schema (Narrative)
This is a compact human map of runtime YAML sections.
Authoritative contract behavior comes from:
schemas/runtime/runtime-config.schema.jsontests/contracts/runtime-config/validate-runtime-configs.pyanolis-runtime --check-config
Top-Level Sections
Supported runtime YAML sections:
runtimehttpproviderspollingtelemetryloggingautomation
Unknown keys are compatibility-warned and ignored.
runtime
Purpose: runtime identity and startup/shutdown timing.
Fields:
name(string, optional)shutdown_timeout_ms(int, bounded)startup_timeout_ms(int, bounded)
Notes:
- Startup mode is always
IDLEand not configurable via YAML. - Runtime mode changes are done through HTTP (
POST /v0/mode).
http
Purpose: API server binding and CORS policy.
Fields:
enabled(bool)bind(string)port(int)cors_allowed_origins(string or string array)cors_allow_credentials(bool)thread_pool_size(int)
Key invariants:
- Port must be valid TCP port range.
- Origins list cannot be empty.
- Wildcard origin (
*) is invalid when credentials are enabled.
providers
Purpose: runtime-managed provider process list.
Per-provider fields:
id(unique string)command(required string)args(string array)timeout_ms(int)hello_timeout_ms(int)ready_timeout_ms(int)restart_policy(optional object)
Restart policy fields:
enabled(bool)max_attempts(int)backoff_ms(int array)timeout_ms(int)success_reset_ms(int)
Key invariants:
providersmust be non-empty.idvalues must be unique.len(backoff_ms) == max_attemptswhen restart policy is enabled.
polling
Purpose: state-cache polling cadence.
Fields:
interval_ms(int, lower-bounded)
telemetry
Purpose: optional runtime telemetry export configuration.
Fields:
enabled(bool)influxdbobject:url,org,bucket,tokenbatch_size,flush_interval_msmax_retry_buffer_size
Compatibility aliases (deprecated but accepted):
- Flat keys under
telemetry.*:influx_url,influx_org,influx_bucket,influx_tokenbatch_size,flush_interval_ms
logging
Purpose: runtime log verbosity.
Fields:
levelindebug|info|warn|error
automation
Purpose: behavior-tree runtime wiring and parameter declaration.
Fields:
enabled(bool)behavior_tree(string; required when enabled)tick_rate_hz(int)manual_gating_policy(BLOCK|OVERRIDE)parameters(array)mode_transition_hooks(optional object)
Parameter entry fields:
nametype(double|int64|bool|string)defaultmin/max(numeric types only)allowed_values(string type only)
mode_transition_hooks fields:
before_transition(array of hook objects)after_transition(array of hook objects)
Compatibility alias:
behavior_tree_path(accepted alias forbehavior_tree).
Validation Model
Use both layers together:
- Schema-level structure validation.
- Runtime load-time semantic validation.
Example commands:
python3 tests/contracts/runtime-config/validate-runtime-configs.py
anolis-runtime --check-config --config config/anolis-runtime.yamlChange Rule
- Runtime loader behavior (
yaml-cpp) is authoritative when parser behavior differs across toolchains. - Contract/schema updates must stay synchronized with runtime semantics and tests.
