69 lines
1.8 KiB
Rust
69 lines
1.8 KiB
Rust
use serde::{Deserialize, Serialize};
|
|||
|
|
use serde_json::Value;
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||
|
|
#[serde(rename_all = "camelCase")]
|
||
|
|
pub struct AiSession {
|
||
|
|
pub session_id: String,
|
||
|
|
pub workspace_id: String,
|
||
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||
|
|
pub document_id: Option<String>,
|
||
|
|
pub owner: AiRuntimeOwner,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||
|
|
#[serde(rename_all = "kebab-case")]
|
||
|
|
pub enum AiRuntimeOwner {
|
||
|
|
RustWebHermes,
|
||
|
|
CompatReactIsland,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
||
|
|
#[serde(rename_all = "camelCase")]
|
||
|
|
pub struct AiToolCall {
|
||
|
|
pub call_id: String,
|
||
|
|
pub tool_name: String,
|
||
|
|
pub args: Value,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
||
|
|
#[serde(rename_all = "camelCase")]
|
||
|
|
pub struct AiEvent {
|
||
|
|
pub event_id: String,
|
||
|
|
pub session_id: String,
|
||
|
|
pub kind: AiEventKind,
|
||
|
|
#[serde(default)]
|
||
|
|
pub payload: Value,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||
|
|
#[serde(rename_all = "camelCase")]
|
||
|
|
pub enum AiEventKind {
|
||
|
|
SessionCreated,
|
||
|
|
ToolCallPlanned,
|
||
|
|
ToolCallApplied,
|
||
|
|
StructuredWriteCompleted,
|
||
|
|
Error,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||
|
|
#[serde(rename_all = "camelCase")]
|
||
|
|
pub struct AiStructuredWriteResult {
|
||
|
|
pub ok: bool,
|
||
|
|
pub write_kind: AiStructuredWriteKind,
|
||
|
|
pub command_name: String,
|
||
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||
|
|
pub target_id: Option<String>,
|
||
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||
|
|
pub revision: Option<u64>,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||
|
|
#[serde(rename_all = "camelCase")]
|
||
|
|
pub enum AiStructuredWriteKind {
|
||
|
|
SummaryNode,
|
||
|
|
AiNoteNode,
|
||
|
|
ReferenceEdge,
|
||
|
|
PageBody,
|
||
|
|
}
|