#![allow(missing_docs)]
#[allow(unused_imports)]
use crate::common::{AnyValue, JsonObject, StringOrMarkdown, Uri};
#[allow(unused_imports)]
use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use serde_repr::{Deserialize_repr, Serialize_repr};
#[allow(unused_imports)]
use crate::state::{
AgentSelection, ChangesetSummary, FileEdit, ModelSelection, ProjectInfo, SessionStatus,
SessionSummary,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum AuthRequiredReason {
#[serde(rename = "required")]
Required,
#[serde(rename = "expired")]
Expired,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionAddedParams {
pub channel: Uri,
pub summary: SessionSummary,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionRemovedParams {
pub channel: Uri,
pub session: Uri,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionSummaryChangedParams {
pub channel: Uri,
pub session: Uri,
pub changes: PartialSessionSummary,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AuthRequiredParams {
pub channel: Uri,
pub resource: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<AuthRequiredReason>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct OtlpExportLogsParams {
pub channel: Uri,
pub payload: JsonObject,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct OtlpExportTracesParams {
pub channel: Uri,
pub payload: JsonObject,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct OtlpExportMetricsParams {
pub channel: Uri,
pub payload: JsonObject,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PartialSessionSummary {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource: Option<Uri>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provider: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub activity: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub project: Option<ProjectInfo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<ModelSelection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent: Option<AgentSelection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub working_directory: Option<Uri>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub changesets: Option<Vec<ChangesetSummary>>,
}