2026-09-03 15:35:33 +08:00
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
|
pub struct Channel {
|
|
|
|
|
pub channel_id: String,
|
|
|
|
|
pub name: String,
|
|
|
|
|
pub created_at: String,
|
|
|
|
|
pub private_git_path: String,
|
|
|
|
|
pub public_distribution_state: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
|
|
|
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
|
|
|
|
|
pub enum SourceKind {
|
|
|
|
|
UserMessage,
|
|
|
|
|
PersonaResponse,
|
2026-09-03 19:44:19 +08:00
|
|
|
ExternalAiMessage,
|
2026-09-03 15:35:33 +08:00
|
|
|
SystemContext,
|
|
|
|
|
ProtocolEvent,
|
|
|
|
|
AgentAction,
|
|
|
|
|
ToolResult,
|
|
|
|
|
SystemReceipt,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
|
pub struct TimelineEvent {
|
|
|
|
|
pub event_id: String,
|
|
|
|
|
pub source_kind: SourceKind,
|
|
|
|
|
pub title: String,
|
|
|
|
|
pub content: String,
|
|
|
|
|
pub occurred_at: String,
|
|
|
|
|
pub state: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
|
pub struct KnowledgeSummary {
|
|
|
|
|
pub path: String,
|
|
|
|
|
pub title: String,
|
|
|
|
|
pub updated_at: String,
|
|
|
|
|
pub sha256: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
|
pub struct KnowledgeDocument {
|
|
|
|
|
pub path: String,
|
|
|
|
|
pub title: String,
|
|
|
|
|
pub body: String,
|
|
|
|
|
pub updated_at: String,
|
|
|
|
|
pub sha256: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
|
pub struct ExternalAiBridge {
|
|
|
|
|
pub bridge_id: String,
|
|
|
|
|
pub display_name: String,
|
|
|
|
|
pub inbox_path: String,
|
|
|
|
|
pub outbox_path: String,
|
|
|
|
|
pub state: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Serialize)]
|
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
|
pub struct SystemSnapshot {
|
|
|
|
|
pub app_version: String,
|
|
|
|
|
pub channel: Option<Channel>,
|
|
|
|
|
pub timeline: Vec<TimelineEvent>,
|
|
|
|
|
pub documents: Vec<KnowledgeSummary>,
|
|
|
|
|
pub module_registry_version: String,
|
|
|
|
|
pub public_update_endpoint: String,
|
|
|
|
|
pub public_distribution_state: String,
|
|
|
|
|
pub external_ai_bridges: Vec<ExternalAiBridge>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Serialize)]
|
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
|
pub struct MutationReceipt {
|
|
|
|
|
pub receipt_id: String,
|
|
|
|
|
pub state: String,
|
|
|
|
|
pub message: String,
|
|
|
|
|
pub git_commit: Option<String>,
|
|
|
|
|
pub event: TimelineEvent,
|
|
|
|
|
}
|