pi-hermes-memory 0.6.3 → 0.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/handlers/learn-memory.ts +32 -14
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-hermes-memory",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.4",
|
|
4
4
|
"description": "🧠 Persistent memory + 🔍 session search + 🛡️ secret scanning for Pi. SQLite FTS5 search across every conversation, auto-consolidation, memory aging, procedural skills. 272 tests. Ported from Hermes agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -29,17 +29,28 @@ export function registerLearnMemoryCommand(pi: ExtensionAPI): void {
|
|
|
29
29
|
lines.push(" ║ 📦 What Gets Saved ║");
|
|
30
30
|
lines.push(" ╚══════════════════════════════════════════════╝");
|
|
31
31
|
lines.push("");
|
|
32
|
-
lines.push(" Type │ File
|
|
33
|
-
lines.push("
|
|
34
|
-
lines.push(" 🧠 Memory │ MEMORY.md
|
|
35
|
-
lines.push(" 👤 User Profile │ USER.md
|
|
36
|
-
lines.push("
|
|
37
|
-
lines.push("
|
|
38
|
-
lines.push("");
|
|
39
|
-
lines.push("
|
|
40
|
-
lines.push("
|
|
41
|
-
lines.push("
|
|
32
|
+
lines.push(" Type │ File │ Limit");
|
|
33
|
+
lines.push(" ────────────────┼───────────────┼────────────");
|
|
34
|
+
lines.push(" 🧠 Memory │ MEMORY.md │ 5,000 chars");
|
|
35
|
+
lines.push(" 👤 User Profile │ USER.md │ 5,000 chars");
|
|
36
|
+
lines.push(" ⚠️ Failures │ failures.md │ 10,000 chars");
|
|
37
|
+
lines.push(" 📚 Skills │ skills/*.md │ Unlimited");
|
|
38
|
+
lines.push(" 💾 Extended │ sessions.db │ Unlimited");
|
|
39
|
+
lines.push("");
|
|
40
|
+
lines.push(" Memory: Facts — env details, project conventions, tool quirks");
|
|
41
|
+
lines.push(" User: Who you are — name, preferences, communication style");
|
|
42
|
+
lines.push(" Failures: What didn't work — corrections, failures, insights");
|
|
43
|
+
lines.push(" Skills: Procedures — how to debug, deploy, test");
|
|
42
44
|
lines.push(" Extended: Searchable memories beyond the core limit");
|
|
45
|
+
lines.push("");
|
|
46
|
+
lines.push(" Memory Categories:");
|
|
47
|
+
lines.push(" ─────────────────");
|
|
48
|
+
lines.push(" [failure] What was tried but didn't work");
|
|
49
|
+
lines.push(" [correction] User corrected the agent");
|
|
50
|
+
lines.push(" [insight] Learning from experience");
|
|
51
|
+
lines.push(" [preference] User preference");
|
|
52
|
+
lines.push(" [convention] Project convention");
|
|
53
|
+
lines.push(" [tool-quirk] Tool-specific knowledge");
|
|
43
54
|
}
|
|
44
55
|
|
|
45
56
|
if (section.startsWith("🔧")) {
|
|
@@ -50,6 +61,7 @@ export function registerLearnMemoryCommand(pi: ExtensionAPI): void {
|
|
|
50
61
|
lines.push("");
|
|
51
62
|
lines.push(" memory (add/replace/remove)");
|
|
52
63
|
lines.push(" Save, update, or delete memories");
|
|
64
|
+
lines.push(" Targets: memory, user, failure, project");
|
|
53
65
|
lines.push("");
|
|
54
66
|
lines.push(" skill (create/view/patch/edit/delete)");
|
|
55
67
|
lines.push(" Save reusable procedures");
|
|
@@ -59,6 +71,8 @@ export function registerLearnMemoryCommand(pi: ExtensionAPI): void {
|
|
|
59
71
|
lines.push("");
|
|
60
72
|
lines.push(" memory_search");
|
|
61
73
|
lines.push(" Search extended memory store (unlimited)");
|
|
74
|
+
lines.push(" Filters: project, target, category");
|
|
75
|
+
lines.push(" Categories: failure, correction, insight, preference, convention, tool-quirk");
|
|
62
76
|
}
|
|
63
77
|
|
|
64
78
|
if (section.startsWith("📋")) {
|
|
@@ -86,6 +100,7 @@ export function registerLearnMemoryCommand(pi: ExtensionAPI): void {
|
|
|
86
100
|
lines.push(" • Environment facts (\"macOS M1\", \"Node 20\")");
|
|
87
101
|
lines.push(" • Corrections (\"don't use npm — use pnpm\")");
|
|
88
102
|
lines.push(" • Project conventions (\"monorepo with turborepo\")");
|
|
103
|
+
lines.push(" • Failures (\"tried localStorage — XSS vulnerability\")");
|
|
89
104
|
lines.push("");
|
|
90
105
|
lines.push(" ❌ DON'T save:");
|
|
91
106
|
lines.push(" • Task progress (\"finished implementing auth\")");
|
|
@@ -99,12 +114,13 @@ export function registerLearnMemoryCommand(pi: ExtensionAPI): void {
|
|
|
99
114
|
lines.push(" ║ 🔄 How Memory Flows ║");
|
|
100
115
|
lines.push(" ╚══════════════════════════════════════════════╝");
|
|
101
116
|
lines.push("");
|
|
102
|
-
lines.push(" 1. Session starts → Core memory injected");
|
|
117
|
+
lines.push(" 1. Session starts → Core memory + recent failures injected");
|
|
103
118
|
lines.push(" 2. During conversation → Agent saves via memory tool");
|
|
104
119
|
lines.push(" 3. Every 10 turns → Background review saves items");
|
|
105
|
-
lines.push(" 4. On correction → Immediate save");
|
|
106
|
-
lines.push(" 5.
|
|
107
|
-
lines.push(" 6.
|
|
120
|
+
lines.push(" 4. On correction → Immediate save as [correction] category");
|
|
121
|
+
lines.push(" 5. On failure → Saves what failed + why");
|
|
122
|
+
lines.push(" 6. When full → Auto-consolidation merges");
|
|
123
|
+
lines.push(" 7. Session ends → Final flush");
|
|
108
124
|
}
|
|
109
125
|
|
|
110
126
|
if (section.startsWith("🏗️")) {
|
|
@@ -117,6 +133,7 @@ export function registerLearnMemoryCommand(pi: ExtensionAPI): void {
|
|
|
117
133
|
lines.push(" ┌─────────────────────────────────────┐");
|
|
118
134
|
lines.push(" │ MEMORY.md — Facts, conventions │");
|
|
119
135
|
lines.push(" │ USER.md — Who you are │");
|
|
136
|
+
lines.push(" │ failures.md — Recent failures (7d) │");
|
|
120
137
|
lines.push(" │ Project memory — When cwd matches │");
|
|
121
138
|
lines.push(" └─────────────────────────────────────┘");
|
|
122
139
|
lines.push("");
|
|
@@ -124,6 +141,7 @@ export function registerLearnMemoryCommand(pi: ExtensionAPI): void {
|
|
|
124
141
|
lines.push(" ┌─────────────────────────────────────┐");
|
|
125
142
|
lines.push(" │ session_search(\"auth flow\") │");
|
|
126
143
|
lines.push(" │ memory_search(\"testing patterns\") │");
|
|
144
|
+
lines.push(" │ memory_search(\"auth\", cat:\"failure\")│");
|
|
127
145
|
lines.push(" └─────────────────────────────────────┘");
|
|
128
146
|
}
|
|
129
147
|
|