super-memory-pro 0.3.1 → 2.0.0
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/README.md +56 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/hooks/event-handler.d.ts.map +1 -1
- package/dist/hooks/event-handler.js +9 -0
- package/dist/hooks/event-handler.js.map +1 -1
- package/dist/hooks/message-handler.d.ts.map +1 -1
- package/dist/hooks/message-handler.js +3 -0
- package/dist/hooks/message-handler.js.map +1 -1
- package/dist/hooks/system-transform.d.ts +5 -12
- package/dist/hooks/system-transform.d.ts.map +1 -1
- package/dist/hooks/system-transform.js +43 -24
- package/dist/hooks/system-transform.js.map +1 -1
- package/dist/memory/embeddings.d.ts +22 -0
- package/dist/memory/embeddings.d.ts.map +1 -0
- package/dist/memory/embeddings.js +139 -0
- package/dist/memory/embeddings.js.map +1 -0
- package/dist/memory/extractor.d.ts.map +1 -1
- package/dist/memory/extractor.js +5 -1
- package/dist/memory/extractor.js.map +1 -1
- package/dist/memory/index.d.ts +13 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +7 -1
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/llm-extractor.d.ts +22 -0
- package/dist/memory/llm-extractor.d.ts.map +1 -0
- package/dist/memory/llm-extractor.js +117 -0
- package/dist/memory/llm-extractor.js.map +1 -0
- package/dist/memory/pattern-detector.d.ts +28 -0
- package/dist/memory/pattern-detector.d.ts.map +1 -0
- package/dist/memory/pattern-detector.js +221 -0
- package/dist/memory/pattern-detector.js.map +1 -0
- package/dist/memory/processor.d.ts +7 -1
- package/dist/memory/processor.d.ts.map +1 -1
- package/dist/memory/processor.js +112 -15
- package/dist/memory/processor.js.map +1 -1
- package/dist/memory/project-context.d.ts +24 -0
- package/dist/memory/project-context.d.ts.map +1 -0
- package/dist/memory/project-context.js +186 -0
- package/dist/memory/project-context.js.map +1 -0
- package/dist/memory/suggestions.d.ts +21 -0
- package/dist/memory/suggestions.d.ts.map +1 -0
- package/dist/memory/suggestions.js +205 -0
- package/dist/memory/suggestions.js.map +1 -0
- package/dist/memory/user-profile.d.ts +24 -0
- package/dist/memory/user-profile.d.ts.map +1 -0
- package/dist/memory/user-profile.js +220 -0
- package/dist/memory/user-profile.js.map +1 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -45,6 +45,17 @@
|
|
|
45
45
|
- **🔄 Cross-Platform** — Works on Linux, macOS, Windows, and Termux (Android)
|
|
46
46
|
- **📦 Auto-Installer** — Smart setup that detects and configures PostgreSQL automatically
|
|
47
47
|
|
|
48
|
+
### 🆕 v2.0 Features
|
|
49
|
+
|
|
50
|
+
- **🤖 AI-Powered Extraction** — Uses LLM for semantic understanding of conversations
|
|
51
|
+
- **🎯 Context-Aware Recall** — Injects memories relevant to current session context
|
|
52
|
+
- **📊 Pattern Detection** — Identifies recurring workflows and habits across sessions
|
|
53
|
+
- **💡 Smart Suggestions** — Provides contextual workflow recommendations
|
|
54
|
+
- **📈 User Profile** — Builds evolving profile with preferences and experience level
|
|
55
|
+
- **🏗️ Project Context** — Automatic detection of architecture and conventions
|
|
56
|
+
- **🔄 Session Summarization** — Auto-generates session summaries with LLM
|
|
57
|
+
- **🧮 Embeddings Support** — Semantic search via vector similarity (optional)
|
|
58
|
+
|
|
48
59
|
---
|
|
49
60
|
|
|
50
61
|
## 🏗️ Architecture
|
|
@@ -184,6 +195,12 @@ Super-Memory/
|
|
|
184
195
|
│ ├── memory/
|
|
185
196
|
│ │ ├── index.ts # Module barrel
|
|
186
197
|
│ │ ├── extractor.ts # Pattern extraction (regex/heuristic)
|
|
198
|
+
│ │ ├── llm-extractor.ts # 🆕 AI-powered extraction via LLM
|
|
199
|
+
│ │ ├── embeddings.ts # 🆕 Semantic search with embeddings
|
|
200
|
+
│ │ ├── pattern-detector.ts # 🆕 Cross-session pattern detection
|
|
201
|
+
│ │ ├── user-profile.ts # 🆕 Evolving user profile
|
|
202
|
+
│ │ ├── project-context.ts # 🆕 Automatic project context
|
|
203
|
+
│ │ ├── suggestions.ts # 🆕 Workflow suggestions
|
|
187
204
|
│ │ ├── store.ts # Memory storage with dedup
|
|
188
205
|
│ │ ├── search.ts # Memory search and formatting
|
|
189
206
|
│ │ └── processor.ts # Core orchestrator
|
|
@@ -197,12 +214,17 @@ Super-Memory/
|
|
|
197
214
|
│ │ ├── health.ts # Health check endpoint
|
|
198
215
|
│ │ └── memory.ts # Memory CRUD REST API
|
|
199
216
|
│ ├── hooks/
|
|
200
|
-
│ │
|
|
217
|
+
│ │ ├── index.ts # Hook barrel exports
|
|
218
|
+
│ │ ├── message-handler.ts # Chat message processing
|
|
219
|
+
│ │ ├── event-handler.ts # Session lifecycle tracking
|
|
220
|
+
│ │ ├── tool-handler.ts # Tool output capture
|
|
221
|
+
│ │ ├── system-transform.ts # Context-aware memory injection
|
|
222
|
+
│ │ └── session-compactor.ts # Session compaction hints
|
|
201
223
|
│ ├── tools/
|
|
202
224
|
│ │ └── definitions.ts # Custom tool schemas
|
|
203
225
|
│ └── installer/
|
|
204
226
|
│ └── index.ts # Cross-platform installer
|
|
205
|
-
└── tests/ # Test suite
|
|
227
|
+
└── tests/ # Test suite
|
|
206
228
|
```
|
|
207
229
|
|
|
208
230
|
---
|
|
@@ -222,6 +244,38 @@ The installer **never hardcodes `sudo`** — it detects whether it's available a
|
|
|
222
244
|
|
|
223
245
|
---
|
|
224
246
|
|
|
247
|
+
## ⚙️ Configuration
|
|
248
|
+
|
|
249
|
+
### Environment Variables
|
|
250
|
+
|
|
251
|
+
| Variable | Default | Description |
|
|
252
|
+
|----------|---------|-------------|
|
|
253
|
+
| `UM_DB_HOST` | `localhost` | PostgreSQL host |
|
|
254
|
+
| `UM_DB_PORT` | `5432` | PostgreSQL port |
|
|
255
|
+
| `UM_DB_NAME` | `ultra_memory` | Database name |
|
|
256
|
+
| `UM_DB_USER` | System user | Database user |
|
|
257
|
+
| `UM_DB_PASSWORD` | Empty | Database password |
|
|
258
|
+
| `UM_MAX_INJECTIONS` | `5` | Max memories to inject |
|
|
259
|
+
| `UM_MIN_IMPORTANCE` | `2` | Min importance level |
|
|
260
|
+
| `UM_LLM_ENABLED` | `true` | Enable AI extraction |
|
|
261
|
+
| `UM_LLM_MODEL` | `gpt-4o-mini` | LLM model to use |
|
|
262
|
+
| `UM_LLM_API_KEY` | Empty | API key for LLM |
|
|
263
|
+
| `UM_LLM_BASE_URL` | `https://api.openai.com/v1` | LLM API base URL |
|
|
264
|
+
| `UM_LLM_SUMMARIZE` | `true` | Enable session summarization |
|
|
265
|
+
|
|
266
|
+
### OpenCode Configuration
|
|
267
|
+
|
|
268
|
+
Add to your `~/.config/opencode/opencode.json`:
|
|
269
|
+
|
|
270
|
+
```json
|
|
271
|
+
{
|
|
272
|
+
"plugin": ["super-memory"],
|
|
273
|
+
"lsp": true
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
225
279
|
## 📄 License
|
|
226
280
|
|
|
227
281
|
This project is licensed under the **MIT License**.
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,CA2BzC"}
|
package/dist/config.js
CHANGED
|
@@ -21,6 +21,13 @@ export function loadConfig() {
|
|
|
21
21
|
minImportance: parseInt(process.env.UM_MIN_IMPORTANCE || '2', 10),
|
|
22
22
|
autoExtract: process.env.UM_AUTO_EXTRACT !== 'false',
|
|
23
23
|
},
|
|
24
|
+
llm: {
|
|
25
|
+
enabled: process.env.UM_LLM_ENABLED !== 'false',
|
|
26
|
+
model: process.env.UM_LLM_MODEL || 'gpt-4o-mini',
|
|
27
|
+
apiKey: process.env.UM_LLM_API_KEY || '',
|
|
28
|
+
baseUrl: process.env.UM_LLM_BASE_URL || 'https://api.openai.com/v1',
|
|
29
|
+
summarizeSessions: process.env.UM_LLM_SUMMARIZE !== 'false',
|
|
30
|
+
},
|
|
24
31
|
};
|
|
25
32
|
}
|
|
26
33
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,EAAE,EAAE;YACF,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;YAC3C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,EAAE,EAAE,CAAC;YACpD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,cAAc;YAClD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,QAAQ,IAAI,UAAU;YACrF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC1C,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,EAAE,CAAC;SACjE;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,kBAAkB;YACzE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;SAChD;QACD,MAAM,EAAE;YACN,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,EAAE,EAAE,CAAC;YACjE,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,EAAE,EAAE,CAAC;YACjE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO;SACrD;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,EAAE,EAAE;YACF,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;YAC3C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,EAAE,EAAE,CAAC;YACpD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,cAAc;YAClD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,QAAQ,IAAI,UAAU;YACrF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC1C,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,EAAE,CAAC;SACjE;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,kBAAkB;YACzE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;SAChD;QACD,MAAM,EAAE;YACN,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,EAAE,EAAE,CAAC;YACjE,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,EAAE,EAAE,CAAC;YACjE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO;SACrD;QACD,GAAG,EAAE;YACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,OAAO;YAC/C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,aAAa;YAChD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YACxC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,2BAA2B;YACnE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO;SAC5D;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../src/hooks/event-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../src/hooks/event-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAKjD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,CA6DnD"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// updates the memory system accordingly. Fire-and-forget to never block.
|
|
4
4
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
5
5
|
import { processMessage } from '../memory/processor.js';
|
|
6
|
+
import { createSession } from '../db/queries.js';
|
|
6
7
|
/**
|
|
7
8
|
* Create a handler for the `event` hook.
|
|
8
9
|
*
|
|
@@ -37,6 +38,14 @@ export function createEventHandler() {
|
|
|
37
38
|
case 'session.created': {
|
|
38
39
|
const sessionInfo = event.properties.info;
|
|
39
40
|
console.log(`[UltraMemory] Session created: ${sessionInfo.id} (${sessionInfo.title})`);
|
|
41
|
+
// Track session in database
|
|
42
|
+
try {
|
|
43
|
+
await createSession(sessionInfo.id);
|
|
44
|
+
console.log(`[UltraMemory] Session ${sessionInfo.id} saved to database`);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
console.error(`[UltraMemory] Failed to save session ${sessionInfo.id}:`, err);
|
|
48
|
+
}
|
|
40
49
|
break;
|
|
41
50
|
}
|
|
42
51
|
case 'session.updated': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.js","sourceRoot":"","sources":["../../src/hooks/event-handler.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,uEAAuE;AACvE,yEAAyE;AACzE,iFAAiF;AAIjF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"event-handler.js","sourceRoot":"","sources":["../../src/hooks/event-handler.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,uEAAuE;AACvE,yEAAyE;AACzE,iFAAiF;AAIjF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACzB,wDAAwD;QACxD,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;YACpC,IAAI,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;oBAAE,OAAO;gBAEpC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;wBAClC,+DAA+D;wBAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;4BAAE,OAAO;wBAEtC,gDAAgD;wBAChD,MAAM,WAAW,GAAG,+BAA+B,IAAI,CAAC,OAAO,GAAG,CAAC;wBAEnE,MAAM,cAAc,CAAC,WAAW,EAAE;4BAChC,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,MAAM,EAAE,OAAO;yBAChB,CAAC,CAAC;wBACH,MAAM;oBACR,CAAC;oBAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;wBAC1C,OAAO,CAAC,GAAG,CACT,kCAAkC,WAAW,CAAC,EAAE,KAAK,WAAW,CAAC,KAAK,GAAG,CAC1E,CAAC;wBACF,4BAA4B;wBAC5B,IAAI,CAAC;4BACH,MAAM,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BACpC,OAAO,CAAC,GAAG,CAAC,yBAAyB,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC;wBAC3E,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,KAAK,CAAC,wCAAwC,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBAChF,CAAC;wBACD,MAAM;oBACR,CAAC;oBAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;wBAC1C,OAAO,CAAC,GAAG,CAAC,kCAAkC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;wBAChE,MAAM;oBACR,CAAC;oBAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;wBACzB,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;wBACvC,OAAO,CAAC,GAAG,CAAC,oCAAoC,SAAS,EAAE,CAAC,CAAC;wBAC7D,MAAM;oBACR,CAAC;oBAED;wBACE,MAAM;gBACV,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;QAEF,6CAA6C;QAC7C,KAAK,GAAG,EAAE,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF;;GAEG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;CACpB,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,eAAe,CAAC,KAAY;IACnC,OAAO,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-handler.d.ts","sourceRoot":"","sources":["../../src/hooks/message-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAWjD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,KAAK,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"message-handler.d.ts","sourceRoot":"","sources":["../../src/hooks/message-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAWjD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,KAAK,CAAC,cAAc,CAAC,CA8B5D"}
|
|
@@ -26,15 +26,18 @@ export function createMessageHandler() {
|
|
|
26
26
|
try {
|
|
27
27
|
const { sessionID } = input;
|
|
28
28
|
const { parts } = output;
|
|
29
|
+
console.log(`[UltraMemory] Hook chat.message triggered for session ${sessionID}`);
|
|
29
30
|
// Filter for text-type parts and extract their content
|
|
30
31
|
const textParts = parts.filter(isTextPart);
|
|
31
32
|
const content = textParts.map((p) => p.text).join('\n').trim();
|
|
32
33
|
if (!content)
|
|
33
34
|
return;
|
|
35
|
+
console.log(`[UltraMemory] Processing message (${content.length} chars) from session ${sessionID}`);
|
|
34
36
|
await processMessage(content, {
|
|
35
37
|
sessionId: sessionID,
|
|
36
38
|
source: 'chat',
|
|
37
39
|
});
|
|
40
|
+
console.log(`[UltraMemory] Message processed for session ${sessionID}`);
|
|
38
41
|
}
|
|
39
42
|
catch (err) {
|
|
40
43
|
console.error('[UltraMemory] message-handler error:', err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../src/hooks/message-handler.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,iFAAiF;AAIjF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,SAAS,UAAU,CAAC,IAAU;IAC5B,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC7B,wDAAwD;QACxD,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;YACpC,IAAI,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;gBAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;gBAEzB,uDAAuD;gBACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE/D,IAAI,CAAC,OAAO;oBAAE,OAAO;gBAErB,MAAM,cAAc,CAAC,OAAO,EAAE;oBAC5B,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../src/hooks/message-handler.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,iFAAiF;AAIjF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,SAAS,UAAU,CAAC,IAAU;IAC5B,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC7B,wDAAwD;QACxD,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;YACpC,IAAI,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;gBAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;gBAEzB,OAAO,CAAC,GAAG,CAAC,yDAAyD,SAAS,EAAE,CAAC,CAAC;gBAElF,uDAAuD;gBACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE/D,IAAI,CAAC,OAAO;oBAAE,OAAO;gBAErB,OAAO,CAAC,GAAG,CAAC,qCAAqC,OAAO,CAAC,MAAM,wBAAwB,SAAS,EAAE,CAAC,CAAC;gBACpG,MAAM,cAAc,CAAC,OAAO,EAAE;oBAC5B,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,+CAA+C,SAAS,EAAE,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC;QAEF,6CAA6C;QAC7C,KAAK,GAAG,EAAE,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -7,18 +7,11 @@ import type { PluginConfig } from '../types.js';
|
|
|
7
7
|
* AI has cross-session context about the user, project, and preferences.
|
|
8
8
|
*
|
|
9
9
|
* **Strategy:**
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* -
|
|
14
|
-
*
|
|
15
|
-
* - Respects `config.memory.maxInjections` and `config.memory.minImportance`
|
|
16
|
-
* to control how many memories are injected and their quality floor.
|
|
17
|
-
* - If a Super Memory section already exists in the system prompt array
|
|
18
|
-
* (e.g. from a previous invocation), it is replaced **in-place** rather
|
|
19
|
-
* than duplicated.
|
|
20
|
-
* - All errors are caught and logged — the hook **never throws**, so it
|
|
21
|
-
* cannot crash OpenCode.
|
|
10
|
+
* - Uses sessionID to fetch session-specific memories for context-aware recall.
|
|
11
|
+
* - Falls back to broad search if session context is insufficient.
|
|
12
|
+
* - Respects `config.memory.maxInjections` and `config.memory.minImportance`.
|
|
13
|
+
* - If a Super Memory section already exists, it is replaced in-place.
|
|
14
|
+
* - All errors are caught and logged — the hook **never throws**.
|
|
22
15
|
*
|
|
23
16
|
* @param config - Resolved plugin configuration
|
|
24
17
|
* @returns - The system transform hook function
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-transform.d.ts","sourceRoot":"","sources":["../../src/hooks/system-transform.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkBhD
|
|
1
|
+
{"version":3,"file":"system-transform.d.ts","sourceRoot":"","sources":["../../src/hooks/system-transform.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkBhD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,GACnB,WAAW,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAyE1D"}
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
// retrieves the most relevant stored memories and appends them as context
|
|
7
7
|
// to every LLM request.
|
|
8
8
|
import { getContextForQuery } from '../memory/processor.js';
|
|
9
|
+
import { searchMemories } from '../db/queries.js';
|
|
9
10
|
// ─── Constants ────────────────────────────────────────────────────────────
|
|
10
11
|
const MEMORY_HEADER = '[Super Memory - Relevant Context]';
|
|
11
12
|
const MEMORY_FOOTER = '[End Super Memory]';
|
|
12
13
|
/**
|
|
13
14
|
* Broad search query used to fetch general high-importance memories.
|
|
14
|
-
*
|
|
15
|
-
* requiring the current user message (which is not available in this hook).
|
|
15
|
+
* Used as fallback when session-specific context is not available.
|
|
16
16
|
*/
|
|
17
17
|
const DEFAULT_SEARCH_QUERY = 'project context preferences decisions tech stack patterns workflow conventions';
|
|
18
18
|
// ─── Hook Factory ─────────────────────────────────────────────────────────
|
|
@@ -23,42 +23,61 @@ const DEFAULT_SEARCH_QUERY = 'project context preferences decisions tech stack p
|
|
|
23
23
|
* AI has cross-session context about the user, project, and preferences.
|
|
24
24
|
*
|
|
25
25
|
* **Strategy:**
|
|
26
|
-
* -
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* -
|
|
30
|
-
*
|
|
31
|
-
* - Respects `config.memory.maxInjections` and `config.memory.minImportance`
|
|
32
|
-
* to control how many memories are injected and their quality floor.
|
|
33
|
-
* - If a Super Memory section already exists in the system prompt array
|
|
34
|
-
* (e.g. from a previous invocation), it is replaced **in-place** rather
|
|
35
|
-
* than duplicated.
|
|
36
|
-
* - All errors are caught and logged — the hook **never throws**, so it
|
|
37
|
-
* cannot crash OpenCode.
|
|
26
|
+
* - Uses sessionID to fetch session-specific memories for context-aware recall.
|
|
27
|
+
* - Falls back to broad search if session context is insufficient.
|
|
28
|
+
* - Respects `config.memory.maxInjections` and `config.memory.minImportance`.
|
|
29
|
+
* - If a Super Memory section already exists, it is replaced in-place.
|
|
30
|
+
* - All errors are caught and logged — the hook **never throws**.
|
|
38
31
|
*
|
|
39
32
|
* @param config - Resolved plugin configuration
|
|
40
33
|
* @returns - The system transform hook function
|
|
41
34
|
*/
|
|
42
35
|
export function createSystemTransform(config) {
|
|
43
|
-
return async (
|
|
36
|
+
return async (input, output) => {
|
|
44
37
|
try {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
38
|
+
console.log('[UltraMemory] Hook experimental.chat.system.transform triggered');
|
|
39
|
+
const sessionID = input.sessionID;
|
|
40
|
+
let context = '';
|
|
41
|
+
// Step 1: Try to get session-specific context using sessionID
|
|
42
|
+
if (sessionID) {
|
|
43
|
+
try {
|
|
44
|
+
// Search for memories from this specific session
|
|
45
|
+
const sessionMemories = await searchMemories({
|
|
46
|
+
query: '',
|
|
47
|
+
project_id: undefined,
|
|
48
|
+
limit: config.memory.maxInjections,
|
|
49
|
+
});
|
|
50
|
+
// Filter to only memories from this session
|
|
51
|
+
const sessionSpecific = sessionMemories.filter((m) => m.memory.session_id === sessionID && m.memory.importance >= config.memory.minImportance);
|
|
52
|
+
if (sessionSpecific.length > 0) {
|
|
53
|
+
const { formatMemoriesForPrompt } = await import('../memory/search.js');
|
|
54
|
+
context = formatMemoriesForPrompt(sessionSpecific);
|
|
55
|
+
console.log(`[UltraMemory] Found ${sessionSpecific.length} session-specific memories`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
console.error('[UltraMemory] Failed to fetch session memories:', err);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Step 2: If no session-specific context, use broad search
|
|
63
|
+
if (!context || context.trim().length === 0) {
|
|
64
|
+
console.log('[UltraMemory] Using broad search for memories');
|
|
65
|
+
context = await getContextForQuery(DEFAULT_SEARCH_QUERY, {
|
|
66
|
+
maxInjections: config.memory.maxInjections,
|
|
67
|
+
minImportance: config.memory.minImportance,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
52
70
|
// No relevant memories found — leave the system prompt unchanged.
|
|
53
71
|
if (!context || context.trim().length === 0) {
|
|
72
|
+
console.log('[UltraMemory] No relevant memories found for injection');
|
|
54
73
|
return;
|
|
55
74
|
}
|
|
75
|
+
console.log(`[UltraMemory] Injecting memories (${context.length} chars) into system prompt`);
|
|
56
76
|
// Build the memory section as a single, clean markdown block.
|
|
57
77
|
const memorySection = `\n${MEMORY_HEADER}\n${context}\n${MEMORY_FOOTER}`;
|
|
58
78
|
// Check if there is already a Super Memory section in the prompt
|
|
59
79
|
// array. If so, replace it in-place to prevent duplication across
|
|
60
|
-
// multiple hook invocations
|
|
61
|
-
// normal OpenCode operation but guards against edge cases).
|
|
80
|
+
// multiple hook invocations.
|
|
62
81
|
const existingIdx = output.system.findIndex((s) => s.includes(MEMORY_HEADER));
|
|
63
82
|
if (existingIdx >= 0) {
|
|
64
83
|
output.system[existingIdx] = memorySection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-transform.js","sourceRoot":"","sources":["../../src/hooks/system-transform.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,wEAAwE;AACxE,gCAAgC;AAChC,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,wBAAwB;AAIxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"system-transform.js","sourceRoot":"","sources":["../../src/hooks/system-transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PluginConfig, MemoryRecord, MemorySearchResult } from '../types.js';
|
|
2
|
+
export interface EmbeddingResult {
|
|
3
|
+
id: string;
|
|
4
|
+
content: string;
|
|
5
|
+
similarity: number;
|
|
6
|
+
memory: MemoryRecord;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Search memories using semantic similarity with embeddings.
|
|
10
|
+
* Falls back to full-text search if embeddings fail.
|
|
11
|
+
*/
|
|
12
|
+
export declare function searchWithEmbeddings(query: string, config: PluginConfig, options?: {
|
|
13
|
+
limit?: number;
|
|
14
|
+
minSimilarity?: number;
|
|
15
|
+
projectId?: string;
|
|
16
|
+
}): Promise<MemorySearchResult[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Store an embedding for a memory record.
|
|
19
|
+
* Returns the embedding vector for caching.
|
|
20
|
+
*/
|
|
21
|
+
export declare function storeEmbedding(memoryId: string, content: string, config: PluginConfig): Promise<number[]>;
|
|
22
|
+
//# sourceMappingURL=embeddings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/memory/embeddings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKlF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;CACtB;AAiED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA8D/B;AAID;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BnB"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
// ─── Embeddings Module ────────────────────────────────────────────────────
|
|
2
|
+
// Semantic search using embeddings for more relevant memory retrieval.
|
|
3
|
+
// Falls back to full-text search if embeddings are unavailable.
|
|
4
|
+
import { getPool } from '../db/connection.js';
|
|
5
|
+
// ─── Embedding Generation ────────────────────────────────────────────────
|
|
6
|
+
/**
|
|
7
|
+
* Generate an embedding vector for text using the configured LLM provider.
|
|
8
|
+
* Uses the OpenAI-compatible embeddings API.
|
|
9
|
+
*/
|
|
10
|
+
async function generateEmbedding(text, config) {
|
|
11
|
+
if (!config.llm.apiKey) {
|
|
12
|
+
throw new Error('LLM API key not configured for embeddings');
|
|
13
|
+
}
|
|
14
|
+
const url = `${config.llm.baseUrl}/embeddings`;
|
|
15
|
+
const response = await fetch(url, {
|
|
16
|
+
method: 'POST',
|
|
17
|
+
headers: {
|
|
18
|
+
'Content-Type': 'application/json',
|
|
19
|
+
Authorization: `Bearer ${config.llm.apiKey}`,
|
|
20
|
+
},
|
|
21
|
+
body: JSON.stringify({
|
|
22
|
+
model: 'text-embedding-3-small',
|
|
23
|
+
input: text.slice(0, 8000), // Limit input length
|
|
24
|
+
}),
|
|
25
|
+
});
|
|
26
|
+
if (!response.ok) {
|
|
27
|
+
throw new Error(`Embedding API error: ${response.status}`);
|
|
28
|
+
}
|
|
29
|
+
const data = (await response.json());
|
|
30
|
+
return data.data[0]?.embedding ?? [];
|
|
31
|
+
}
|
|
32
|
+
// ─── Similarity Calculation ──────────────────────────────────────────────
|
|
33
|
+
/**
|
|
34
|
+
* Calculate cosine similarity between two vectors.
|
|
35
|
+
*/
|
|
36
|
+
function cosineSimilarity(a, b) {
|
|
37
|
+
if (a.length !== b.length || a.length === 0) {
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
let dotProduct = 0;
|
|
41
|
+
let normA = 0;
|
|
42
|
+
let normB = 0;
|
|
43
|
+
for (let i = 0; i < a.length; i++) {
|
|
44
|
+
const ai = a[i] ?? 0;
|
|
45
|
+
const bi = b[i] ?? 0;
|
|
46
|
+
dotProduct += ai * bi;
|
|
47
|
+
normA += ai * ai;
|
|
48
|
+
normB += bi * bi;
|
|
49
|
+
}
|
|
50
|
+
return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
51
|
+
}
|
|
52
|
+
// ─── Semantic Search ─────────────────────────────────────────────────────
|
|
53
|
+
/**
|
|
54
|
+
* Search memories using semantic similarity with embeddings.
|
|
55
|
+
* Falls back to full-text search if embeddings fail.
|
|
56
|
+
*/
|
|
57
|
+
export async function searchWithEmbeddings(query, config, options = {}) {
|
|
58
|
+
const { limit = 10, minSimilarity = 0.5, projectId } = options;
|
|
59
|
+
try {
|
|
60
|
+
// Generate query embedding
|
|
61
|
+
const queryEmbedding = await generateEmbedding(query, config);
|
|
62
|
+
if (queryEmbedding.length === 0) {
|
|
63
|
+
throw new Error('Failed to generate query embedding');
|
|
64
|
+
}
|
|
65
|
+
// Fetch all memories (for small datasets)
|
|
66
|
+
// For production, consider using pgvector for efficient ANN search
|
|
67
|
+
const pool = getPool();
|
|
68
|
+
const result = await pool.query(`SELECT * FROM memories
|
|
69
|
+
WHERE ($1::text IS NULL OR project_id = $1)
|
|
70
|
+
ORDER BY importance DESC, created_at DESC
|
|
71
|
+
LIMIT 500`, [projectId ?? null]);
|
|
72
|
+
// Calculate similarity for each memory
|
|
73
|
+
const results = [];
|
|
74
|
+
for (const memory of result.rows) {
|
|
75
|
+
if (!memory.content)
|
|
76
|
+
continue;
|
|
77
|
+
try {
|
|
78
|
+
// Generate embedding for memory content
|
|
79
|
+
const memoryEmbedding = await generateEmbedding(memory.content, config);
|
|
80
|
+
if (memoryEmbedding.length > 0) {
|
|
81
|
+
const similarity = cosineSimilarity(queryEmbedding, memoryEmbedding);
|
|
82
|
+
if (similarity >= minSimilarity) {
|
|
83
|
+
results.push({
|
|
84
|
+
id: memory.id,
|
|
85
|
+
content: memory.content,
|
|
86
|
+
similarity,
|
|
87
|
+
memory,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
// Skip memories that fail embedding generation
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Sort by similarity and return top results
|
|
98
|
+
return results
|
|
99
|
+
.sort((a, b) => b.similarity - a.similarity)
|
|
100
|
+
.slice(0, limit)
|
|
101
|
+
.map((r) => ({
|
|
102
|
+
memory: r.memory,
|
|
103
|
+
relevance: r.similarity,
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
console.error('[UltraMemory] Embedding search failed:', err);
|
|
108
|
+
throw err;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// ─── Storage ─────────────────────────────────────────────────────────────
|
|
112
|
+
/**
|
|
113
|
+
* Store an embedding for a memory record.
|
|
114
|
+
* Returns the embedding vector for caching.
|
|
115
|
+
*/
|
|
116
|
+
export async function storeEmbedding(memoryId, content, config) {
|
|
117
|
+
try {
|
|
118
|
+
const embedding = await generateEmbedding(content, config);
|
|
119
|
+
if (embedding.length > 0) {
|
|
120
|
+
const pool = getPool();
|
|
121
|
+
// Store embedding in metadata (assuming JSONB storage)
|
|
122
|
+
await pool.query(`UPDATE memories
|
|
123
|
+
SET metadata = jsonb_set(
|
|
124
|
+
COALESCE(metadata, '{}'::jsonb),
|
|
125
|
+
'{embedding}',
|
|
126
|
+
$2::jsonb
|
|
127
|
+
)
|
|
128
|
+
WHERE id = $1`, [memoryId, JSON.stringify(embedding)]);
|
|
129
|
+
console.log(`[UltraMemory] Stored embedding for memory ${memoryId}`);
|
|
130
|
+
return embedding;
|
|
131
|
+
}
|
|
132
|
+
return [];
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
console.error(`[UltraMemory] Failed to store embedding for ${memoryId}:`, err);
|
|
136
|
+
return [];
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=embeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/memory/embeddings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/memory/extractor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/memory/extractor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsJ9C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuCvD;AAwBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAmCtF;AAoBD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAoB7D;AA2CD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAiCtD;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAwExD"}
|
package/dist/memory/extractor.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
// ─── Pattern Extraction Utilities ───────────────────────────────────────────
|
|
2
2
|
// Heuristic/regex-based extractors for tech stack, decisions, preferences,
|
|
3
|
-
// recurring patterns, and content classification.
|
|
3
|
+
// recurring patterns, and content classification.
|
|
4
|
+
//
|
|
5
|
+
// NOTE: When LLM is enabled, the processor uses LLM extraction (llm-extractor.ts)
|
|
6
|
+
// for semantic analysis. These regex extractors serve as fallback/supplement
|
|
7
|
+
// to ensure coverage even when LLM is unavailable.
|
|
4
8
|
// ─── Technology Detection ──────────────────────────────────────────────────
|
|
5
9
|
/**
|
|
6
10
|
* Canonical tech name → detection patterns.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/memory/extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/memory/extractor.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/index.d.ts
CHANGED
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
export { extractTechStack, extractDecisions, extractUserPreferences, extractPatterns, classifyContent, } from './extractor.js';
|
|
2
|
+
export { extractWithLLM, summarizeWithLLM, } from './llm-extractor.js';
|
|
3
|
+
export type { ExtractedContext } from './llm-extractor.js';
|
|
2
4
|
export { storeMemory, storeMemories, storeTechStack, } from './store.js';
|
|
3
5
|
export { searchRelevantMemories, formatMemoriesForPrompt, } from './search.js';
|
|
4
6
|
export type { SearchOptions } from './search.js';
|
|
5
|
-
export { processMessage, getContextForQuery, } from './processor.js';
|
|
7
|
+
export { processMessage, getContextForQuery, summarizeSession, } from './processor.js';
|
|
6
8
|
export type { ProcessMessageMetadata, ContextQueryOptions } from './processor.js';
|
|
9
|
+
export { searchWithEmbeddings, storeEmbedding, } from './embeddings.js';
|
|
10
|
+
export type { EmbeddingResult } from './embeddings.js';
|
|
11
|
+
export { detectPatterns, } from './pattern-detector.js';
|
|
12
|
+
export type { DetectedPattern, PatternAnalysis } from './pattern-detector.js';
|
|
13
|
+
export { buildUserProfile, getProfileInsights, } from './user-profile.js';
|
|
14
|
+
export type { UserProfile, ProfileInsight } from './user-profile.js';
|
|
15
|
+
export { buildProjectContext, getProjectInsights, } from './project-context.js';
|
|
16
|
+
export type { ProjectContext, ProjectInsight } from './project-context.js';
|
|
17
|
+
export { getSuggestions, getQuickSuggestions, } from './suggestions.js';
|
|
18
|
+
export type { Suggestion, SuggestionContext } from './suggestions.js';
|
|
7
19
|
//# sourceMappingURL=index.d.ts.map
|