FerrellSyntheticIntelligence commited on
Commit
2250b5d
·
verified ·
1 Parent(s): d547a27

Upload jedi/memory/helix.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. jedi/memory/helix.py +75 -0
jedi/memory/helix.py ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Helix Memory Store — Persistent swarm memory.
3
+
4
+ Inspired by FSI-Edge's Helix Memory architecture.
5
+ Stores and retrieves memory across the entire nanobot swarm.
6
+ """
7
+
8
+ import json
9
+ import time
10
+ import os
11
+ from typing import Dict, List, Optional, Any
12
+
13
+
14
+ class HelixMemoryStore:
15
+ def __init__(self, store_path: str = "/tmp/jedi_memory"):
16
+ self.store_path = store_path
17
+ os.makedirs(store_path, exist_ok=True)
18
+ self._memory = {}
19
+ self._episodes = []
20
+
21
+ def store(self, key: str, value: Any, memory_type: str = "semantic"):
22
+ """Store a memory entry."""
23
+ self._memory[key] = {
24
+ "value": value,
25
+ "type": memory_type,
26
+ "created_at": time.time(),
27
+ "access_count": 0,
28
+ }
29
+
30
+ def retrieve(self, key: str) -> Optional[Any]:
31
+ """Retrieve a memory entry."""
32
+ entry = self._memory.get(key)
33
+ if entry:
34
+ entry["access_count"] += 1
35
+ entry["last_accessed"] = time.time()
36
+ return entry["value"]
37
+ return None
38
+
39
+ def record_episode(self, episode: Dict):
40
+ """Record a memory episode."""
41
+ self._episodes.append({
42
+ **episode,
43
+ "timestamp": time.time(),
44
+ })
45
+
46
+ def search(self, query: str, memory_type: Optional[str] = None) -> List[Dict]:
47
+ """Search memory by query."""
48
+ results = []
49
+ for key, entry in self._memory.items():
50
+ if query.lower() in key.lower() or query.lower() in json.dumps(entry["value"]).lower():
51
+ if memory_type is None or entry["type"] == memory_type:
52
+ results.append({"key": key, **entry})
53
+ return results
54
+
55
+ def get_stats(self) -> Dict:
56
+ return {
57
+ "total_memories": len(self._memory),
58
+ "total_episodes": len(self._episodes),
59
+ "memory_types": {},
60
+ }
61
+
62
+ def save(self):
63
+ """Persist memory to disk."""
64
+ path = os.path.join(self.store_path, "helix_memory.json")
65
+ with open(path, "w") as f:
66
+ json.dump({"memories": self._memory, "episodes": self._episodes}, f, indent=2)
67
+
68
+ def load(self):
69
+ """Load memory from disk."""
70
+ path = os.path.join(self.store_path, "helix_memory.json")
71
+ if os.path.exists(path):
72
+ with open(path) as f:
73
+ data = json.load(f)
74
+ self._memory = data.get("memories", {})
75
+ self._episodes = data.get("episodes", [])