Implement Rust web sidebar title and tree interactions
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
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,
|
||||
}
|
||||
Reference in New Issue
Block a user