hirn_engine/tools/
types.rs1use std::collections::BTreeMap;
4
5use hirn_core::id::MemoryId;
6use hirn_core::metadata::Metadata;
7use hirn_core::types::{EdgeRelation, EventType, Namespace};
8
9#[derive(Debug, Clone)]
11pub struct StoreRequest {
12 pub content: String,
14 pub event_type: Option<EventType>,
16 pub importance: Option<f32>,
18 pub embedding: Option<Vec<f32>>,
20 pub namespace: Option<Namespace>,
22 pub metadata: Option<Metadata>,
24 pub entities: Option<Vec<String>>,
26}
27
28#[derive(Debug, Clone, Default)]
30pub struct RecallOptions {
31 pub limit: Option<usize>,
33 pub namespace: Option<Namespace>,
35}
36
37#[derive(Debug, Clone)]
39pub struct RecallRecord {
40 pub id: MemoryId,
41 pub content: String,
42 pub score: f64,
43 pub metadata: BTreeMap<String, String>,
44}
45
46#[derive(Debug, Clone)]
48pub struct UpdateRequest {
49 pub id: MemoryId,
51 pub content: Option<String>,
53 pub metadata: Option<Metadata>,
55 pub importance: Option<f32>,
57}
58
59#[derive(Debug, Clone)]
61pub struct LinkRequest {
62 pub source_id: MemoryId,
63 pub target_id: MemoryId,
64 pub relation: EdgeRelation,
65 pub weight: Option<f32>,
66 pub metadata: Option<Metadata>,
67}
68
69#[derive(Debug, Clone)]
71pub struct IntrospectionResult {
72 pub total_memories: u64,
74 pub episodic_count: u64,
75 pub semantic_count: u64,
76 pub procedural_count: u64,
77 pub working_count: u64,
78 pub edge_count: u64,
79 pub edges: Vec<EdgeInfo>,
81}
82
83#[derive(Debug, Clone)]
85pub struct EdgeInfo {
86 pub source: MemoryId,
87 pub target: MemoryId,
88 pub relation: EdgeRelation,
89 pub weight: f32,
90}