1use serde::{Deserialize, Serialize};
5use std::collections::HashMap;
6
7#[derive(Debug, Serialize, Deserialize)]
10pub struct StoreMemoryRequest {
11 pub content: String,
12 #[serde(default)]
13 pub memory_type: Option<String>,
14 #[serde(default)]
15 pub domain: Option<String>,
16 #[serde(default)]
17 pub source_agent: Option<String>,
18 #[serde(default)]
19 pub title: Option<String>,
20 #[serde(default)]
21 pub confidence: Option<f32>,
22 #[serde(default)]
23 pub supersedes: Option<String>,
24 #[serde(default)]
26 pub entity: Option<String>,
27 #[serde(default)]
29 pub entity_id: Option<String>,
30 #[serde(default)]
31 pub structured_fields: Option<serde_json::Value>,
32 #[serde(default)]
33 pub retrieval_cue: Option<String>,
34}
35
36#[derive(Debug, Serialize, Deserialize)]
37pub struct SearchMemoryRequest {
38 pub query: String,
39 #[serde(default = "default_limit")]
40 pub limit: usize,
41 #[serde(default)]
42 pub memory_type: Option<String>,
43 #[serde(default)]
44 pub domain: Option<String>,
45 #[serde(default)]
46 pub source_agent: Option<String>,
47}
48
49#[derive(Debug, Serialize, Deserialize)]
50pub struct ListMemoriesRequest {
51 #[serde(default)]
52 pub memory_type: Option<String>,
53 #[serde(default)]
54 pub domain: Option<String>,
55 #[serde(default = "default_list_limit")]
56 pub limit: usize,
57}
58
59#[derive(Debug, Serialize, Deserialize)]
60pub struct ConfirmRequest {
61 #[serde(default = "default_confirmed")]
62 pub confirmed: bool,
63}
64
65#[derive(Debug, Serialize, Deserialize)]
66pub struct ReclassifyMemoryRequest {
67 pub memory_type: String,
68}
69
70#[derive(Debug, Serialize, Deserialize)]
71pub struct ImportMemoriesRequest {
72 pub source: String,
73 pub content: String,
74 #[serde(default)]
75 pub label: Option<String>,
76}
77
78#[derive(Debug, Serialize, Deserialize)]
81pub struct SearchRequest {
82 pub query: String,
83 #[serde(default = "default_limit")]
84 pub limit: usize,
85 pub source_filter: Option<String>,
86 #[serde(default)]
87 pub domain: Option<String>,
88}
89
90#[doc(hidden)]
91#[derive(Debug, Serialize, Deserialize)]
92pub struct ContextRequest {
93 pub current_file: String,
94 pub cursor_prefix: String,
95 #[serde(default = "default_limit")]
96 pub limit: usize,
97}
98
99#[derive(Debug, Serialize, Deserialize)]
100pub struct ChatContextRequest {
101 #[serde(default)]
102 pub query: Option<String>,
103 #[serde(default)]
104 pub conversation_id: Option<String>,
105 #[serde(default = "default_max_chunks")]
106 pub max_chunks: usize,
107 #[serde(default)]
108 pub relevance_threshold: Option<f64>,
109 #[serde(default = "default_true")]
110 pub include_goals: bool,
111 #[serde(default)]
112 pub domain: Option<String>,
113}
114
115#[derive(Debug, Serialize, Deserialize)]
118pub struct CreateEntityRequest {
119 pub name: String,
120 pub entity_type: String,
121 #[serde(default)]
122 pub domain: Option<String>,
123 #[serde(default)]
124 pub source_agent: Option<String>,
125 #[serde(default)]
126 pub confidence: Option<f32>,
127}
128
129#[doc(hidden)]
130#[derive(Debug, Serialize, Deserialize)]
131pub struct CreateRelationRequest {
132 pub from_entity: String,
133 pub to_entity: String,
134 pub relation_type: String,
135 #[serde(default)]
136 pub source_agent: Option<String>,
137}
138
139#[derive(Debug, Serialize, Deserialize)]
140pub struct AddObservationRequest {
141 pub entity_id: String,
142 pub content: String,
143 #[serde(default)]
144 pub source_agent: Option<String>,
145 #[serde(default)]
146 pub confidence: Option<f32>,
147}
148
149#[doc(hidden)]
150#[derive(Debug, Serialize, Deserialize)]
151pub struct LinkEntityRequest {
152 pub source_id: String,
153 pub entity_id: String,
154}
155
156#[derive(Debug, Serialize, Deserialize)]
157pub struct ListEntitiesRequest {
158 #[serde(default)]
159 pub entity_type: Option<String>,
160 #[serde(default)]
161 pub domain: Option<String>,
162}
163
164#[derive(Debug, Serialize, Deserialize)]
165pub struct SearchEntitiesRequest {
166 pub query: String,
167 #[serde(default = "default_entity_search_limit")]
168 pub limit: usize,
169}
170
171#[derive(Debug, Serialize, Deserialize)]
174pub struct UpdateProfileRequest {
175 #[serde(default)]
176 pub name: Option<String>,
177 #[serde(default)]
178 pub display_name: Option<String>,
179 #[serde(default)]
180 pub email: Option<String>,
181 #[serde(default)]
182 pub bio: Option<String>,
183 #[serde(default)]
184 pub avatar_path: Option<String>,
185}
186
187#[derive(Debug, Serialize, Deserialize)]
188pub struct UpdateAgentRequest {
189 #[serde(default)]
190 pub agent_type: Option<String>,
191 #[serde(default)]
192 pub description: Option<String>,
193 #[serde(default)]
194 pub enabled: Option<bool>,
195 #[serde(default)]
196 pub trust_level: Option<String>,
197 #[serde(default)]
199 pub display_name: Option<String>,
200}
201
202#[derive(Debug, Serialize, Deserialize)]
205pub struct CreateSpaceRequest {
206 pub name: String,
207 pub description: Option<String>,
208}
209
210#[derive(Debug, Serialize, Deserialize)]
211pub struct UpdateSpaceRequest {
212 pub new_name: Option<String>,
213 pub description: Option<String>,
214}
215
216#[doc(hidden)]
219#[derive(Debug, Serialize, Deserialize)]
220pub struct CreateConceptRequest {
221 pub title: String,
222 pub content: String,
223 #[serde(default)]
224 pub summary: Option<String>,
225 #[serde(default)]
226 pub entity_id: Option<String>,
227 #[serde(default)]
228 pub domain: Option<String>,
229 #[serde(default)]
230 pub source_memory_ids: Vec<String>,
231}
232
233#[derive(Debug, Serialize, Deserialize)]
234pub struct SearchConceptsRequest {
235 pub query: String,
236 #[serde(default)]
237 pub limit: Option<usize>,
238}
239
240#[derive(Debug, Serialize, Deserialize)]
243pub struct IngestTextRequest {
244 pub source: String,
245 pub source_id: String,
246 pub title: String,
247 pub content: String,
248 pub url: Option<String>,
249 pub metadata: Option<HashMap<String, String>>,
250}
251
252#[doc(hidden)]
253#[derive(Debug, Serialize, Deserialize)]
254pub struct IngestWebpageRequest {
255 pub url: String,
256 pub title: String,
257 pub content: String,
258 pub metadata: Option<HashMap<String, String>>,
259}
260
261#[derive(Debug, Serialize, Deserialize)]
262pub struct IngestMemoryRequest {
263 pub source: String,
264 pub source_id: String,
265 pub title: String,
266 pub content: String,
267 pub url: Option<String>,
268 pub tags: Option<Vec<String>>,
269 pub metadata: Option<HashMap<String, String>>,
270}
271
272#[doc(hidden)]
275#[derive(Debug, Serialize, Deserialize)]
276pub struct AddSourceRequest {
277 pub source_type: String,
278 pub path: String,
281}
282
283#[derive(Debug, Serialize, Deserialize)]
286pub struct UpdateConfigRequest {
287 #[serde(default)]
288 pub skip_apps: Option<Vec<String>>,
289 #[serde(default)]
290 pub skip_title_patterns: Option<Vec<String>>,
291 #[serde(default)]
292 pub private_browsing_detection: Option<bool>,
293 #[serde(default)]
294 pub setup_completed: Option<bool>,
295 #[serde(default)]
296 pub clipboard_enabled: Option<bool>,
297 #[serde(default)]
298 pub screen_capture_enabled: Option<bool>,
299 #[serde(default)]
300 pub selection_capture_enabled: Option<bool>,
301 #[serde(default)]
302 pub remote_access_enabled: Option<bool>,
303}
304
305#[derive(Debug, Serialize, Deserialize)]
308pub struct DeleteByTimeRangeRequest {
309 pub start: i64,
310 pub end: i64,
311}
312
313#[derive(Debug, Serialize, Deserialize)]
314pub struct BulkDeleteItem {
315 pub source: String,
316 pub source_id: String,
317}
318
319#[derive(Debug, Serialize, Deserialize)]
320pub struct BulkDeleteRequest {
321 pub items: Vec<BulkDeleteItem>,
322}
323
324#[derive(Debug, Serialize, Deserialize)]
325pub struct UpdateChunkRequest {
326 pub content: String,
327}
328
329#[derive(Debug, Serialize, Deserialize)]
332pub struct ConfirmEntityRequest {
333 #[serde(default = "default_confirmed")]
334 pub confirmed: bool,
335}
336
337#[derive(Debug, Serialize, Deserialize)]
338pub struct AddEntityObservationRequest {
339 pub content: String,
340 #[serde(default)]
341 pub source_agent: Option<String>,
342 #[serde(default)]
343 pub confidence: Option<f32>,
344}
345
346#[derive(Debug, Serialize, Deserialize)]
347pub struct UpdateObservationRequest {
348 pub content: String,
349}
350
351#[derive(Debug, Serialize, Deserialize)]
352pub struct ConfirmObservationRequest {
353 #[serde(default = "default_confirmed")]
354 pub confirmed: bool,
355}
356
357#[derive(Debug, Serialize, Deserialize)]
360pub struct ReorderSpaceRequest {
361 pub name: String,
362 pub new_order: i64,
363}
364
365#[derive(Debug, Serialize, Deserialize)]
366pub struct SetDocumentSpaceRequest {
367 pub space_name: String,
368}
369
370#[derive(Debug, Serialize, Deserialize)]
373pub struct SetDocumentTagsRequest {
374 pub tags: Vec<String>,
375}
376
377#[derive(Debug, Serialize, Deserialize)]
380pub struct UpdateMemoryRequest {
381 #[serde(default)]
382 pub content: Option<String>,
383 #[serde(default)]
384 pub domain: Option<String>,
385 #[serde(default)]
386 pub confirmed: Option<bool>,
387 #[serde(default)]
388 pub memory_type: Option<String>,
389}
390
391#[derive(Debug, Serialize, Deserialize)]
392pub struct SetStabilityRequest {
393 pub stability: String,
394}
395
396#[derive(Debug, Serialize, Deserialize)]
397pub struct CorrectMemoryRequest {
398 pub correction_prompt: String,
399}
400
401#[derive(Debug, Serialize, Deserialize)]
404pub struct UpdateConceptRequest {
405 pub content: String,
406}
407
408#[derive(Debug, Deserialize, Serialize)]
411pub struct ExportConceptRequest {
412 pub vault_path: String,
413}
414
415fn default_limit() -> usize {
418 10
419}
420
421fn default_list_limit() -> usize {
422 100
423}
424
425fn default_confirmed() -> bool {
426 true
427}
428
429fn default_max_chunks() -> usize {
430 5
431}
432
433fn default_true() -> bool {
434 true
435}
436
437fn default_entity_search_limit() -> usize {
438 20
439}