ahri_tre_protocol/
readiness.rs1use crate::version::ProtocolCompatibility;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
6pub struct DaemonVersionRequest {}
7
8#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
10pub struct DaemonDoctorRequest {}
11
12#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
13pub struct DaemonVersionResponse {
14 pub daemon: DaemonBuildIdentity,
15 pub protocol: ProtocolCompatibility,
16}
17
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
19pub struct DaemonBuildIdentity {
20 pub package_name: String,
21 pub package_version: String,
22 pub target_triple: String,
23 pub build_profile: String,
24 #[serde(default, skip_serializing_if = "Option::is_none")]
25 pub commit_sha: Option<String>,
26 #[serde(default, skip_serializing_if = "Option::is_none")]
27 pub build_timestamp: Option<String>,
28}
29
30#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
31pub struct DaemonDoctorResponse {
32 pub status: DaemonReadinessStatus,
33 pub summary: DaemonReadinessSummary,
34 pub protocol: ProtocolCompatibility,
35 pub checks: Vec<DaemonReadinessCheck>,
36 #[serde(default, skip_serializing_if = "Vec::is_empty")]
38 pub adapter_observations: Vec<DaemonReadinessCheck>,
39}
40
41#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
42#[serde(rename_all = "snake_case")]
43pub enum DaemonReadinessStatus {
44 Ready,
45 Degraded,
46 Unready,
47 Unknown,
48}
49
50#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
51pub struct DaemonReadinessSummary {
52 pub total: u32,
53 pub passed: u32,
54 pub warnings: u32,
55 pub failed: u32,
56 pub skipped: u32,
57}
58
59pub use crate::diagnostics::{
60 DiagnosticEvidence as DaemonReadinessEvidence, DiagnosticFinding as DaemonReadinessCheck,
61 DiagnosticFindingSeverity as DaemonReadinessCheckSeverity,
62 DiagnosticFindingStatus as DaemonReadinessCheckStatus,
63};