oino_extension_api/
guest.rs1use serde::{Deserialize, Serialize};
4
5use crate::json::RawJson;
6
7#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct InitInput {
11 pub manifest: RawJson,
13 pub settings: RawJson,
15 pub flags: RawJson,
17}
18
19impl Default for InitInput {
20 fn default() -> Self {
21 let empty = RawJson::from_json_value(&serde_json::Value::Object(serde_json::Map::new()));
22 Self {
23 manifest: empty.clone(),
24 settings: empty.clone(),
25 flags: empty,
26 }
27 }
28}
29
30#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct ToolInvocation {
34 pub tool_call_id: String,
36 pub name: String,
38 pub args: RawJson,
40 #[serde(default, skip_serializing_if = "Option::is_none")]
42 pub parent_tool_call_id: Option<String>,
43}
44
45#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
47#[serde(rename_all = "camelCase")]
48pub struct CompletionItem {
49 pub value: String,
51 #[serde(default, skip_serializing_if = "Option::is_none")]
53 pub label: Option<String>,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
56 pub description: Option<String>,
57}