feagi_services/types/
registration.rs1use serde::{Deserialize, Serialize};
7use std::collections::HashMap;
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct RegistrationRequest {
12 pub agent_id: String,
13 pub agent_type: String,
14 pub capabilities: serde_json::Value, #[serde(skip_serializing_if = "Option::is_none")]
16 pub chosen_transport: Option<String>, }
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
21pub struct TransportConfig {
22 pub transport_type: String, pub enabled: bool,
24 pub ports: HashMap<String, u16>,
25 pub host: String,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(rename_all = "lowercase")]
31pub enum AreaStatus {
32 Existing,
34 Created,
36 Missing,
38 Error,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
44pub struct CorticalAreaStatus {
45 pub area_name: String,
46 pub cortical_id: String, pub status: AreaStatus,
48 pub dimensions: Option<(usize, usize, usize)>,
49 pub message: Option<String>, }
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct CorticalAreaAvailability {
55 pub required_ipu_areas: Vec<CorticalAreaStatus>,
57 pub required_opu_areas: Vec<CorticalAreaStatus>,
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
63pub struct RegistrationResponse {
64 pub status: String,
65 pub message: Option<String>,
66 pub shm_paths: Option<HashMap<String, String>>, pub transports: Option<Vec<TransportConfig>>, pub recommended_transport: Option<String>, pub cortical_areas: CorticalAreaAvailability,
71}