use indexmap::IndexMap;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.Payload")]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum Payload {
#[schemars(title = "Initialize")]
Initialize {
mcp_kind: super::super::McpKind,
#[serde(flatten)]
params: InitializeRequest,
},
#[schemars(title = "ToolsList")]
ToolsList {
mcp_kind: super::super::McpKind,
#[serde(flatten)]
params: crate::mcp::tool::ListToolsRequest,
},
#[schemars(title = "ToolsCall")]
ToolsCall {
mcp_kind: super::super::McpKind,
#[serde(flatten)]
params: crate::mcp::tool::CallToolRequestParams,
},
#[schemars(title = "ResourcesList")]
ResourcesList {
mcp_kind: super::super::McpKind,
#[serde(flatten)]
params: crate::mcp::resource::ListResourcesRequest,
},
#[schemars(title = "ResourcesRead")]
ResourcesRead {
mcp_kind: super::super::McpKind,
#[serde(flatten)]
params: crate::mcp::resource::ReadResourceRequestParams,
},
#[schemars(title = "SessionTerminate")]
SessionTerminate { mcp_kind: super::super::McpKind },
#[schemars(title = "ReadMessageQueue")]
ReadMessageQueue(ReadMessageQueueRequest),
#[schemars(title = "Retrieve")]
Retrieve(super::super::retrieve::Request),
#[schemars(title = "Script")]
Script(ScriptRequest),
#[schemars(title = "Drop")]
Drop(DropRequest),
#[schemars(title = "LaboratoryExportBegin")]
LaboratoryExportBegin(LaboratoryExportBeginRequest),
#[schemars(title = "LaboratoryExportRead")]
LaboratoryExportRead(LaboratoryExportReadRequest),
#[schemars(title = "LaboratoryExportAbort")]
LaboratoryExportAbort(LaboratoryExportAbortRequest),
#[schemars(title = "LaboratoryImportBegin")]
LaboratoryImportBegin(LaboratoryImportBeginRequest),
#[schemars(title = "LaboratoryImportWrite")]
LaboratoryImportWrite(LaboratoryImportWriteRequest),
#[schemars(title = "LaboratoryImportEnd")]
LaboratoryImportEnd(LaboratoryImportEndRequest),
#[schemars(title = "LaboratoryImportAbort")]
LaboratoryImportAbort(LaboratoryImportAbortRequest),
#[schemars(title = "LaboratoryTransfer")]
LaboratoryTransfer(LaboratoryTransferRequest),
#[schemars(title = "LaboratoryLocalTransfer")]
LaboratoryLocalTransfer(LaboratoryLocalTransferRequest),
}
impl Payload {
pub fn mcp_kind(&self) -> Option<super::super::McpKind> {
match self {
Payload::Initialize { mcp_kind, .. }
| Payload::ToolsList { mcp_kind, .. }
| Payload::ToolsCall { mcp_kind, .. }
| Payload::ResourcesList { mcp_kind, .. }
| Payload::ResourcesRead { mcp_kind, .. }
| Payload::SessionTerminate { mcp_kind } => Some(mcp_kind.clone()),
Payload::ReadMessageQueue(_)
| Payload::Retrieve(_)
| Payload::Script(_)
| Payload::Drop(_)
| Payload::LaboratoryExportBegin(_)
| Payload::LaboratoryExportRead(_)
| Payload::LaboratoryExportAbort(_)
| Payload::LaboratoryImportBegin(_)
| Payload::LaboratoryImportWrite(_)
| Payload::LaboratoryImportEnd(_)
| Payload::LaboratoryImportAbort(_)
| Payload::LaboratoryTransfer(_)
| Payload::LaboratoryLocalTransfer(_)
=> None,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.ReadMessageQueueRequest")]
pub struct ReadMessageQueueRequest {
pub agent_instance_hierarchy: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.DropRequest")]
pub struct DropRequest {
pub response_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.LaboratoryExportBeginRequest")]
pub struct LaboratoryExportBeginRequest {
pub laboratory_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub machine: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub machine_state: Option<String>,
pub path: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.LaboratoryExportReadRequest")]
pub struct LaboratoryExportReadRequest {
pub transfer_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.LaboratoryExportAbortRequest")]
pub struct LaboratoryExportAbortRequest {
pub transfer_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.LaboratoryImportBeginRequest")]
pub struct LaboratoryImportBeginRequest {
pub laboratory_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub machine: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub machine_state: Option<String>,
pub path: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.LaboratoryImportWriteRequest")]
pub struct LaboratoryImportWriteRequest {
pub transfer_id: String,
pub data: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.LaboratoryImportEndRequest")]
pub struct LaboratoryImportEndRequest {
pub transfer_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.LaboratoryImportAbortRequest")]
pub struct LaboratoryImportAbortRequest {
pub transfer_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.LaboratoryTransferRequest")]
pub struct LaboratoryTransferRequest {
pub source_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub source_machine: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub source_machine_state: Option<String>,
pub source_path: String,
pub destination_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub destination_machine: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub destination_machine_state: Option<String>,
pub destination_path: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.LaboratoryLocalTransferRequest")]
pub struct LaboratoryLocalTransferRequest {
pub source_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub source_machine: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub source_machine_state: Option<String>,
pub source_path: String,
pub destination_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub destination_machine: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub destination_machine_state: Option<String>,
pub destination_path: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.InitializeRequest")]
pub struct InitializeRequest {
#[serde(default, skip_serializing_if = "IndexMap::is_empty")]
#[schemars(extend("omitempty" = true))]
pub args: IndexMap<String, Option<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "client_objectiveai_mcp.server_request.ScriptRequest")]
pub struct ScriptRequest {
pub script: crate::agent::script::Script,
pub messages: Vec<crate::agent::completions::message::Message>,
pub agent_instance_hierarchy: String,
pub agent_id: String,
pub agent_full_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub agent_remote: Option<String>,
pub response_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub response_ids: Option<String>,
}