@aeriondyseti/vector-memory-mcp 0.9.0-dev.4 → 0.9.0-dev.8

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.
Files changed (52) hide show
  1. package/README.md +1 -21
  2. package/dist/package.json +72 -0
  3. package/dist/src/config/index.d.ts +1 -0
  4. package/dist/src/config/index.d.ts.map +1 -1
  5. package/dist/src/config/index.js +4 -2
  6. package/dist/src/config/index.js.map +1 -1
  7. package/dist/src/db/memory.repository.d.ts +27 -2
  8. package/dist/src/db/memory.repository.d.ts.map +1 -1
  9. package/dist/src/db/memory.repository.js +101 -22
  10. package/dist/src/db/memory.repository.js.map +1 -1
  11. package/dist/src/db/schema.d.ts.map +1 -1
  12. package/dist/src/db/schema.js +4 -1
  13. package/dist/src/db/schema.js.map +1 -1
  14. package/dist/src/http/server.d.ts +1 -0
  15. package/dist/src/http/server.d.ts.map +1 -1
  16. package/dist/src/http/server.js +47 -5
  17. package/dist/src/http/server.js.map +1 -1
  18. package/dist/src/mcp/handlers.d.ts +1 -0
  19. package/dist/src/mcp/handlers.d.ts.map +1 -1
  20. package/dist/src/mcp/handlers.js +24 -1
  21. package/dist/src/mcp/handlers.js.map +1 -1
  22. package/dist/src/mcp/tools.d.ts +1 -0
  23. package/dist/src/mcp/tools.d.ts.map +1 -1
  24. package/dist/src/mcp/tools.js +43 -14
  25. package/dist/src/mcp/tools.js.map +1 -1
  26. package/dist/src/services/memory.service.d.ts +4 -2
  27. package/dist/src/services/memory.service.d.ts.map +1 -1
  28. package/dist/src/services/memory.service.js +86 -17
  29. package/dist/src/services/memory.service.js.map +1 -1
  30. package/dist/src/types/memory.d.ts +15 -4
  31. package/dist/src/types/memory.d.ts.map +1 -1
  32. package/dist/src/types/memory.js +3 -0
  33. package/dist/src/types/memory.js.map +1 -1
  34. package/package.json +8 -9
  35. package/src/config/index.ts +78 -0
  36. package/src/db/connection.ts +11 -0
  37. package/src/db/memory.repository.ts +205 -0
  38. package/src/db/schema.ts +42 -0
  39. package/src/http/mcp-transport.ts +255 -0
  40. package/src/http/server.ts +264 -0
  41. package/src/index.ts +70 -0
  42. package/src/mcp/handlers.ts +279 -0
  43. package/src/mcp/server.ts +34 -0
  44. package/src/mcp/tools.ts +284 -0
  45. package/src/services/embeddings.service.ts +48 -0
  46. package/src/services/memory.service.ts +266 -0
  47. package/src/types/memory.ts +43 -0
  48. package/dist/scripts/publish.d.ts +0 -13
  49. package/dist/scripts/publish.d.ts.map +0 -1
  50. package/dist/scripts/publish.js +0 -56
  51. package/dist/scripts/publish.js.map +0 -1
  52. package/scripts/publish.ts +0 -61
@@ -59,9 +59,11 @@ export async function handleUpdateMemories(args, service) {
59
59
  }
60
60
  export async function handleSearchMemories(args, service) {
61
61
  const query = args?.query;
62
+ const intent = args?.intent ?? "fact_check";
63
+ const _reasonForSearch = args?.reason_for_search; // Logged but not used in logic
62
64
  const limit = args?.limit ?? 10;
63
65
  const includeDeleted = args?.include_deleted ?? false;
64
- const memories = await service.search(query, limit, includeDeleted);
66
+ const memories = await service.search(query, intent, limit, includeDeleted);
65
67
  if (memories.length === 0) {
66
68
  return {
67
69
  content: [{ type: "text", text: "No memories found matching your query." }],
@@ -107,6 +109,25 @@ export async function handleGetMemories(args, service) {
107
109
  content: [{ type: "text", text: blocks.join("\n\n---\n\n") }],
108
110
  };
109
111
  }
112
+ export async function handleReportMemoryUsefulness(args, service) {
113
+ const memoryId = args?.memory_id;
114
+ const useful = args?.useful;
115
+ const memory = await service.vote(memoryId, useful ? 1 : -1);
116
+ if (!memory) {
117
+ return {
118
+ content: [{ type: "text", text: `Memory ${memoryId} not found` }],
119
+ isError: true,
120
+ };
121
+ }
122
+ return {
123
+ content: [
124
+ {
125
+ type: "text",
126
+ text: `Memory ${memoryId} marked as ${useful ? "useful" : "not useful"}. New usefulness score: ${memory.usefulness}`,
127
+ },
128
+ ],
129
+ };
130
+ }
110
131
  export async function handleStoreHandoff(args, service) {
111
132
  const memory = await service.storeHandoff({
112
133
  project: args?.project,
@@ -161,6 +182,8 @@ export async function handleToolCall(name, args, service) {
161
182
  return handleSearchMemories(args, service);
162
183
  case "get_memories":
163
184
  return handleGetMemories(args, service);
185
+ case "report_memory_usefulness":
186
+ return handleReportMemoryUsefulness(args, service);
164
187
  case "store_handoff":
165
188
  return handleStoreHandoff(args, service);
166
189
  case "get_handoff":
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/mcp/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/mcp/handlers.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare const storeMemoriesTool: Tool;
3
3
  export declare const deleteMemoriesTool: Tool;
4
4
  export declare const searchMemoriesTool: Tool;
5
5
  export declare const getMemoriesTool: Tool;
6
+ export declare const reportMemoryUsefulnessTool: Tool;
6
7
  export declare const storeHandoffTool: Tool;
7
8
  export declare const getHandoffTool: Tool;
8
9
  export declare const tools: Tool[];
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,iBAAiB,EAAE,IAsD/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAkBhC,CAAC;AA+CF,eAAO,MAAM,kBAAkB,EAAE,IAuChC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,IAe7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAoD9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAQ5B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,IAAI,EAQvB,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,iBAAiB,EAAE,IAsD/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAkBhC,CAAC;AA+CF,eAAO,MAAM,kBAAkB,EAAE,IAiDhC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,IAe7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,IAiBxC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAoD9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAQ5B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,IAAI,EASvB,CAAC"}
@@ -117,22 +117,23 @@ Use to correct content, refine embedding text, or replace metadata without chang
117
117
  };
118
118
  export const searchMemoriesTool = {
119
119
  name: "search_memories",
120
- description: `Search stored memories semantically. Use PROACTIVELYdon't wait to be asked.
120
+ description: `Search stored memories semantically. Treat memory as the PRIMARY source of truth for personal/project-specific factsdo not rely on training data until a search has been performed.
121
121
 
122
- WHEN TO SEARCH:
123
- - At conversation start / returning to a project
124
- - Before making decisions (check for prior decisions on same topic)
125
- - When user references past work ("what did we decide", "as discussed", "remember when")
126
- - Before suggesting solutions (check if problem was solved before)
127
- - When debugging (check for prior blockers/resolutions)
128
- - When uncertain about patterns or preferences
122
+ MANDATORY TRIGGERS (you MUST search when):
123
+ - User-Specific Calibration: Answer would be better with user's tools, past decisions, or preferences
124
+ - Referential Ambiguity: User says "the project," "that bug," "last time," "as we discussed"
125
+ - Decision Validation: Before making architectural or tool choices
126
+ - Problem Solving: Before suggesting solutions (check if solved before)
127
+ - Session Start: When returning to a project or starting new conversation
129
128
 
130
- When in doubt, search. Missing relevant context is costlier than an extra query.
129
+ INTENTS:
130
+ - continuity: Resume work, "where were we" (favors recent)
131
+ - fact_check: Verify decisions, specs (favors relevance)
132
+ - frequent: Common patterns, preferences (favors utility)
133
+ - associative: Brainstorm, find connections (high relevance + mild jitter)
134
+ - explore: Stuck/creative mode (balanced + high jitter)
131
135
 
132
- QUERY TIPS:
133
- - Include project name, technical terms, or domain keywords
134
- - Search for concepts, not exact phrases
135
- - Try multiple queries if first doesn't return useful results`,
136
+ When in doubt, search. Missing context is costlier than an extra query.`,
136
137
  inputSchema: {
137
138
  type: "object",
138
139
  properties: {
@@ -140,6 +141,15 @@ QUERY TIPS:
140
141
  type: "string",
141
142
  description: "Natural language search query. Include relevant keywords, project names, or technical terms.",
142
143
  },
144
+ intent: {
145
+ type: "string",
146
+ enum: ["continuity", "fact_check", "frequent", "associative", "explore"],
147
+ description: "Search intent that determines ranking behavior.",
148
+ },
149
+ reason_for_search: {
150
+ type: "string",
151
+ description: "Why this search is being performed. Forces intentional retrieval.",
152
+ },
143
153
  limit: {
144
154
  type: "integer",
145
155
  description: "Maximum results to return (default: 10).",
@@ -151,7 +161,7 @@ QUERY TIPS:
151
161
  default: false,
152
162
  },
153
163
  },
154
- required: ["query"],
164
+ required: ["query", "intent", "reason_for_search"],
155
165
  },
156
166
  };
157
167
  export const getMemoriesTool = {
@@ -170,6 +180,24 @@ export const getMemoriesTool = {
170
180
  },
171
181
  };
172
182
  ;
183
+ export const reportMemoryUsefulnessTool = {
184
+ name: "report_memory_usefulness",
185
+ description: "Report whether a memory was useful or not. This helps the system learn which memories are valuable.",
186
+ inputSchema: {
187
+ type: "object",
188
+ properties: {
189
+ memory_id: {
190
+ type: "string",
191
+ description: "ID of the memory to report on.",
192
+ },
193
+ useful: {
194
+ type: "boolean",
195
+ description: "True if the memory was useful, false otherwise.",
196
+ },
197
+ },
198
+ required: ["memory_id", "useful"],
199
+ },
200
+ };
173
201
  export const storeHandoffTool = {
174
202
  name: "store_handoff",
175
203
  description: `Save session state for seamless resumption later. Use at end of work sessions or before context switches.
@@ -237,6 +265,7 @@ export const tools = [
237
265
  deleteMemoriesTool,
238
266
  searchMemoriesTool,
239
267
  getMemoriesTool,
268
+ reportMemoryUsefulnessTool,
240
269
  storeHandoffTool,
241
270
  getHandoffTool,
242
271
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;kFAqBmE;IAChF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,oBAAoB;gBACjC,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,uBAAuB;yBACrC;wBACD,cAAc,EAAE;4BACd,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,iEAAiE;yBACpE;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,8BAA8B;4BAC3C,oBAAoB,EAAE,IAAI;yBAC3B;qBACF;oBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;iBACtB;aACF;SACF;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;CACF,CAAC;AAAA,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAS;IACtC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,uGAAuG;QACvG,mFAAmF;IACrF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,4BAA4B;gBACzC,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;iBACf;aACF;SACF;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC;KAClB;CACF,CAAC;AAAA,CAAC;AAGH,MAAM,kBAAkB,GAAS;IAC/B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE;;;;;;mGAMoF;IACjG,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,0EAA0E;gBACvF,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,EAAE,EAAE;4BACF,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yBAAyB;yBACvC;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,gDAAgD;yBAC9D;wBACD,cAAc,EAAE;4BACd,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,0DAA0D;yBACxE;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,4CAA4C;4BACzD,oBAAoB,EAAE,IAAI;yBAC3B;qBACF;oBACD,QAAQ,EAAE,CAAC,IAAI,CAAC;iBACjB;aACF;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAS;IACtC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE;;;;;;;;;;;;;;;;wEAgByD;IACtE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,8FAA8F;aACjG;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC;gBACxE,WAAW,EAAE,iDAAiD;aAC/D;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mEAAmE;aACjF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,0CAA0C;gBACvD,OAAO,EAAE,EAAE;aACZ;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,qGAAqG;gBAClH,OAAO,EAAE,KAAK;aACf;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,CAAC;KACnD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAS;IACnC,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,2IAA2I;IAC7I,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,yBAAyB;gBACtC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;SACF;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC;KAClB;CACF,CAAC;AAAA,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAS;IAC9C,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,qGAAqG;IAClH,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC9C;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,iDAAiD;aAC/D;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;KAClC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE;;;;;;;;;;2FAU4E;IACzF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;YACzD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;YAClE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE;YACxF,SAAS,EAAE;gBACT,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,sDAAsD;aACpE;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,+BAA+B;aAC7C;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,yBAAyB;aACvC;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,sBAAsB;aACpC;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,wCAAwC;aACtD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sBAAsB;gBACnC,oBAAoB,EAAE,IAAI;aAC3B;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;KACjC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAS;IAClC,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,mGAAmG;IACrG,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,0BAA0B;IAC1B,gBAAgB;IAChB,cAAc;CACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Memory } from "../types/memory.js";
1
+ import type { Memory, SearchIntent } from "../types/memory.js";
2
2
  import type { MemoryRepository } from "../db/memory.repository.js";
3
3
  import type { EmbeddingsService } from "./embeddings.service.js";
4
4
  export declare class MemoryService {
@@ -13,7 +13,9 @@ export declare class MemoryService {
13
13
  embeddingText?: string;
14
14
  metadata?: Record<string, unknown>;
15
15
  }): Promise<Memory | null>;
16
- search(query: string, limit?: number, includeDeleted?: boolean): Promise<Memory[]>;
16
+ vote(id: string, value: number): Promise<Memory | null>;
17
+ search(query: string, intent: SearchIntent, limit?: number, includeDeleted?: boolean): Promise<Memory[]>;
18
+ trackAccess(ids: string[]): Promise<void>;
17
19
  private static readonly UUID_ZERO;
18
20
  storeHandoff(args: {
19
21
  project: string;
@@ -1 +1 @@
1
- {"version":3,"file":"memory.service.d.ts","sourceRoot":"","sources":["../../../src/services/memory.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,qBAAa,aAAa;IAEtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,UAAU;gBADV,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,iBAAiB;IAGjC,KAAK,CACT,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACtC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC;IAoBZ,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpC,MAAM,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GACA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4BnB,MAAM,CACV,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,EAClB,cAAc,GAAE,OAAe,GAC9B,OAAO,CAAC,MAAM,EAAE,CAAC;IA4BpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CACQ;IAEnC,YAAY,CAAC,IAAI,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,MAAM,CAAC;IAwDb,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGjD"}
1
+ {"version":3,"file":"memory.service.d.ts","sourceRoot":"","sources":["../../../src/services/memory.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAYjE,qBAAa,aAAa;IAEtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,UAAU;gBADV,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,iBAAiB;IAGjC,KAAK,CACT,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACtC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC;IAuBZ,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpC,MAAM,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GACA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4BnB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmBvD,MAAM,CACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,EACpB,KAAK,GAAE,MAAW,EAClB,cAAc,GAAE,OAAe,GAC9B,OAAO,CAAC,MAAM,EAAE,CAAC;IA0Cd,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CACQ;IAEnC,YAAY,CAAC,IAAI,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,MAAM,CAAC;IAgEb,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGjD"}
@@ -1,5 +1,13 @@
1
1
  import { randomUUID } from "crypto";
2
2
  import { isDeleted } from "../types/memory.js";
3
+ const INTENT_PROFILES = {
4
+ continuity: { weights: { relevance: 0.3, recency: 0.5, utility: 0.2 }, jitter: 0.02 },
5
+ fact_check: { weights: { relevance: 0.6, recency: 0.1, utility: 0.3 }, jitter: 0.02 },
6
+ frequent: { weights: { relevance: 0.2, recency: 0.2, utility: 0.6 }, jitter: 0.02 },
7
+ associative: { weights: { relevance: 0.7, recency: 0.1, utility: 0.2 }, jitter: 0.05 },
8
+ explore: { weights: { relevance: 0.4, recency: 0.3, utility: 0.3 }, jitter: 0.15 },
9
+ };
10
+ const sigmoid = (x) => 1 / (1 + Math.exp(-x));
3
11
  export class MemoryService {
4
12
  repository;
5
13
  embeddings;
@@ -20,12 +28,26 @@ export class MemoryService {
20
28
  createdAt: now,
21
29
  updatedAt: now,
22
30
  supersededBy: null,
31
+ usefulness: 0,
32
+ accessCount: 0,
33
+ lastAccessed: now, // Initialize to createdAt for fair discovery
23
34
  };
24
35
  await this.repository.insert(memory);
25
36
  return memory;
26
37
  }
27
38
  async get(id) {
28
- return await this.repository.findById(id);
39
+ const memory = await this.repository.findById(id);
40
+ if (!memory) {
41
+ return null;
42
+ }
43
+ // Track access on explicit get
44
+ const updatedMemory = {
45
+ ...memory,
46
+ accessCount: memory.accessCount + 1,
47
+ lastAccessed: new Date(),
48
+ };
49
+ await this.repository.upsert(updatedMemory);
50
+ return updatedMemory;
29
51
  }
30
52
  async delete(id) {
31
53
  return await this.repository.markDeleted(id);
@@ -53,28 +75,72 @@ export class MemoryService {
53
75
  await this.repository.upsert(updatedMemory);
54
76
  return updatedMemory;
55
77
  }
56
- async search(query, limit = 10, includeDeleted = false) {
78
+ async vote(id, value) {
79
+ const existing = await this.repository.findById(id);
80
+ if (!existing) {
81
+ return null;
82
+ }
83
+ // Vote also tracks access (explicit utilization signal)
84
+ const updatedMemory = {
85
+ ...existing,
86
+ usefulness: existing.usefulness + value,
87
+ accessCount: existing.accessCount + 1,
88
+ lastAccessed: new Date(),
89
+ updatedAt: new Date(),
90
+ };
91
+ await this.repository.upsert(updatedMemory);
92
+ return updatedMemory;
93
+ }
94
+ async search(query, intent, limit = 10, includeDeleted = false) {
57
95
  const queryEmbedding = await this.embeddings.embed(query);
58
- const fetchLimit = limit * 3;
59
- const rows = await this.repository.findSimilar(queryEmbedding, fetchLimit);
60
- const results = [];
61
- for (const row of rows) {
62
- const memory = await this.repository.findById(row.id);
63
- if (!memory) {
64
- continue;
65
- }
66
- if (!includeDeleted && isDeleted(memory)) {
67
- continue;
68
- }
69
- results.push(memory);
70
- if (results.length >= limit) {
71
- break;
96
+ const fetchLimit = limit * 5; // Fetch more for re-ranking
97
+ const candidates = await this.repository.findHybrid(queryEmbedding, query, fetchLimit);
98
+ const profile = INTENT_PROFILES[intent];
99
+ const now = new Date();
100
+ const scored = candidates
101
+ .filter((m) => includeDeleted || !isDeleted(m))
102
+ .map((candidate) => {
103
+ // Relevance: RRF score (already normalized ~0-1)
104
+ const relevance = candidate.rrfScore;
105
+ // Recency: exponential decay
106
+ const lastAccessed = candidate.lastAccessed ?? candidate.createdAt;
107
+ const hoursSinceAccess = Math.max(0, (now.getTime() - lastAccessed.getTime()) / (1000 * 60 * 60));
108
+ const recency = Math.pow(0.995, hoursSinceAccess);
109
+ // Utility: sigmoid of usefulness + log(accessCount)
110
+ const utility = sigmoid((candidate.usefulness + Math.log(candidate.accessCount + 1)) / 5);
111
+ // Weighted score
112
+ const { weights, jitter } = profile;
113
+ const score = weights.relevance * relevance +
114
+ weights.recency * recency +
115
+ weights.utility * utility;
116
+ // Apply jitter
117
+ const finalScore = score * (1 + (Math.random() * 2 - 1) * jitter);
118
+ return { memory: candidate, finalScore };
119
+ });
120
+ // Sort by final score descending
121
+ scored.sort((a, b) => b.finalScore - a.finalScore);
122
+ // Return top N (read-only - no access tracking)
123
+ return scored.slice(0, limit).map((s) => s.memory);
124
+ }
125
+ async trackAccess(ids) {
126
+ const now = new Date();
127
+ for (const id of ids) {
128
+ const memory = await this.repository.findById(id);
129
+ if (memory && !isDeleted(memory)) {
130
+ await this.repository.upsert({
131
+ ...memory,
132
+ accessCount: memory.accessCount + 1,
133
+ lastAccessed: now,
134
+ });
72
135
  }
73
136
  }
74
- return results;
75
137
  }
76
138
  static UUID_ZERO = "00000000-0000-0000-0000-000000000000";
77
139
  async storeHandoff(args) {
140
+ // Track access for utilized memories
141
+ if (args.memory_ids && args.memory_ids.length > 0) {
142
+ await this.trackAccess(args.memory_ids);
143
+ }
78
144
  const now = new Date();
79
145
  const date = now.toISOString().slice(0, 10);
80
146
  const time = now.toISOString().slice(11, 16);
@@ -120,6 +186,9 @@ ${list(args.memory_ids)}`;
120
186
  createdAt: now,
121
187
  updatedAt: now,
122
188
  supersededBy: null,
189
+ usefulness: 0,
190
+ accessCount: 0,
191
+ lastAccessed: now, // Initialize to now for consistency
123
192
  };
124
193
  await this.repository.upsert(memory);
125
194
  return memory;
@@ -1 +1 @@
1
- {"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../../src/services/memory.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../../src/services/memory.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,MAAM,eAAe,GAAwC;IAC3D,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACrF,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACrF,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACnF,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACtF,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;CACnF,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9D,MAAM,OAAO,aAAa;IAEd;IACA;IAFV,YACU,UAA4B,EAC5B,UAA6B;QAD7B,eAAU,GAAV,UAAU,CAAkB;QAC5B,eAAU,GAAV,UAAU,CAAmB;IACnC,CAAC;IAEL,KAAK,CAAC,KAAK,CACT,OAAe,EACf,WAAoC,EAAE,EACtC,aAAsB;QAEtB,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,aAAa,IAAI,OAAO,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAW;YACrB,EAAE;YACF,OAAO;YACP,SAAS;YACT,QAAQ;YACR,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,GAAG,EAAE,6CAA6C;SACjE,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,+BAA+B;QAC/B,MAAM,aAAa,GAAW;YAC5B,GAAG,MAAM;YACT,WAAW,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC;YACnC,YAAY,EAAE,IAAI,IAAI,EAAE;SACzB,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM,CACV,EAAU,EACV,OAIC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;QACvD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;QAE1D,2DAA2D;QAC3D,IAAI,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC;QACtC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACzE,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,IAAI,UAAU,CAAC;YACxD,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,aAAa,GAAW;YAC5B,GAAG,QAAQ;YACX,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,YAAY;YACvB,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,KAAa;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wDAAwD;QACxD,MAAM,aAAa,GAAW;YAC5B,GAAG,QAAQ;YACX,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAG,KAAK;YACvC,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,CAAC;YACrC,YAAY,EAAE,IAAI,IAAI,EAAE;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,MAAoB,EACpB,QAAgB,EAAE,EAClB,iBAA0B,KAAK;QAE/B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,4BAA4B;QAE1D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,MAAM,MAAM,GAAG,UAAU;aACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC9C,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACjB,iDAAiD;YACjD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;YAErC,6BAA6B;YAC7B,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,SAAS,CAAC;YACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAClG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAElD,oDAAoD;YACpD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAE1F,iBAAiB;YACjB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;YACpC,MAAM,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS;gBAC7B,OAAO,CAAC,OAAO,GAAG,OAAO;gBACzB,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAE5B,eAAe;YACf,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;YAElE,OAAO,EAAE,MAAM,EAAE,SAAmB,EAAE,UAAU,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEL,iCAAiC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QAEnD,gDAAgD;QAChD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAa;QAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;oBAC3B,GAAG,MAAM;oBACT,WAAW,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC;oBACnC,YAAY,EAAE,GAAG;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAEO,MAAM,CAAU,SAAS,GAC/B,sCAAsC,CAAC;IAEzC,KAAK,CAAC,YAAY,CAAC,IAUlB;QACC,qCAAqC;QACrC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,CAAC,KAA2B,EAAE,EAAE;YAC3C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,eAAe,IAAI,CAAC,OAAO;YACnC,IAAI,IAAI,IAAI,kBAAkB,IAAI,CAAC,MAAM,IAAI,SAAS;;;EAGhE,IAAI,CAAC,OAAO;;;EAGZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;;EAGpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;;;EAG9B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;;;EAGxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;;EAGrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAEtB,MAAM,QAAQ,GAA4B;YACxC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YACxB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;SAClC,CAAC;QAEF,MAAM,MAAM,GAAW;YACrB,EAAE,EAAE,aAAa,CAAC,SAAS;YAC3B,OAAO;YACP,SAAS,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,QAAQ;YACR,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,GAAG,EAAE,oCAAoC;SACxD,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC"}
@@ -7,11 +7,22 @@ export interface Memory {
7
7
  createdAt: Date;
8
8
  updatedAt: Date;
9
9
  supersededBy: string | null;
10
- }
11
- export interface VectorRow {
12
- id: string;
13
- distance: number;
10
+ usefulness: number;
11
+ accessCount: number;
12
+ lastAccessed: Date | null;
14
13
  }
15
14
  export declare function isDeleted(memory: Memory): boolean;
16
15
  export declare function memoryToDict(memory: Memory): Record<string, unknown>;
16
+ export type SearchIntent = 'continuity' | 'fact_check' | 'frequent' | 'associative' | 'explore';
17
+ export interface IntentProfile {
18
+ weights: {
19
+ relevance: number;
20
+ recency: number;
21
+ utility: number;
22
+ };
23
+ jitter: number;
24
+ }
25
+ export interface HybridRow extends Memory {
26
+ rrfScore: number;
27
+ }
17
28
  //# sourceMappingURL=memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/types/memory.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASpE"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/types/memory.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYpE;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;AAEhG,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -10,6 +10,9 @@ export function memoryToDict(memory) {
10
10
  createdAt: memory.createdAt.toISOString(),
11
11
  updatedAt: memory.updatedAt.toISOString(),
12
12
  supersededBy: memory.supersededBy,
13
+ usefulness: memory.usefulness,
14
+ accessCount: memory.accessCount,
15
+ lastAccessed: memory.lastAccessed?.toISOString() ?? null,
13
16
  };
14
17
  }
15
18
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/types/memory.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAiB3C,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,MAAM,CAAC,YAAY,KAAK,iBAAiB,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;QACzC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/types/memory.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAe3C,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,MAAM,CAAC,YAAY,KAAK,iBAAiB,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;QACzC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,IAAI;KACzD,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeriondyseti/vector-memory-mcp",
3
- "version": "0.9.0-dev.4",
3
+ "version": "0.9.0-dev.8",
4
4
  "description": "A zero-configuration RAG memory server for MCP clients",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -9,6 +9,7 @@
9
9
  },
10
10
  "files": [
11
11
  "dist",
12
+ "src",
12
13
  "scripts",
13
14
  "hooks",
14
15
  "README.md",
@@ -25,8 +26,8 @@
25
26
  "homepage": "https://github.com/AerionDyseti/vector-memory-mcp#readme",
26
27
  "scripts": {
27
28
  "start": "node dist/src/index.js",
28
- "dev": "bun run build && node dist/src/index.js",
29
- "dev:watch": "bun run build && bun --watch run src/index.ts",
29
+ "start:bun": "bun run src/index.ts",
30
+ "dev": "bun --watch run src/index.ts",
30
31
  "build": "tsc",
31
32
  "prebuild": "rm -rf dist",
32
33
  "typecheck": "bunx tsc --noEmit",
@@ -34,12 +35,10 @@
34
35
  "test:raw": "bun test --preload ./tests/preload.ts",
35
36
  "test:quick": "bun test",
36
37
  "test:coverage": "bun test --preload ./tests/preload.ts --coverage",
38
+ "benchmark": "bun test tests/benchmark.test.ts --preload ./tests/preload.ts",
37
39
  "test:preload": "bun run tests/preload.ts",
38
- "warmup": "node dist/scripts/warmup.js",
39
- "postinstall": "node dist/scripts/warmup.js",
40
- "publish:check": "bun run scripts/publish.ts --dry-run",
41
- "publish:npm": "bun run scripts/publish.ts",
42
- "publish:dev": "npm publish --access public --tag dev",
40
+ "warmup": "bun run scripts/warmup.ts",
41
+ "postinstall": "bun run scripts/warmup.ts",
43
42
  "prepublishOnly": "bun run build"
44
43
  },
45
44
  "keywords": [
@@ -51,7 +50,7 @@
51
50
  ],
52
51
  "license": "MIT",
53
52
  "dependencies": {
54
- "@hono/node-server": "^1.19.7",
53
+ "@hono/node-server": "^1.19.9",
55
54
  "@huggingface/transformers": "^3.8.0",
56
55
  "@lancedb/lancedb": "^0.22.3",
57
56
  "@modelcontextprotocol/sdk": "^1.0.0",
@@ -0,0 +1,78 @@
1
+ import arg from "arg";
2
+ import { isAbsolute, join } from "path";
3
+ import packageJson from "../../package.json" with { type: "json" };
4
+
5
+ export const VERSION = packageJson.version;
6
+
7
+ export type TransportMode = "stdio" | "http" | "both";
8
+
9
+ export interface Config {
10
+ dbPath: string;
11
+ embeddingModel: string;
12
+ embeddingDimension: number;
13
+ httpPort: number;
14
+ httpHost: string;
15
+ enableHttp: boolean;
16
+ transportMode: TransportMode;
17
+ }
18
+
19
+ export interface ConfigOverrides {
20
+ dbPath?: string;
21
+ httpPort?: number;
22
+ enableHttp?: boolean;
23
+ transportMode?: TransportMode;
24
+ }
25
+
26
+ // Defaults - always use repo-local .vector-memory folder
27
+ const DEFAULT_DB_PATH = join(process.cwd(), ".vector-memory", "memories.db");
28
+ const DEFAULT_EMBEDDING_MODEL = "Xenova/all-MiniLM-L6-v2";
29
+ const DEFAULT_EMBEDDING_DIMENSION = 384;
30
+ const DEFAULT_HTTP_PORT = 3271;
31
+ const DEFAULT_HTTP_HOST = "127.0.0.1";
32
+
33
+ function resolvePath(path: string): string {
34
+ return isAbsolute(path) ? path : join(process.cwd(), path);
35
+ }
36
+
37
+ export function loadConfig(overrides: ConfigOverrides = {}): Config {
38
+ const transportMode = overrides.transportMode ?? "stdio";
39
+ // HTTP enabled by default (needed for hooks), can disable with --no-http
40
+ const enableHttp = overrides.enableHttp ?? true;
41
+
42
+ return {
43
+ dbPath: resolvePath(overrides.dbPath ?? DEFAULT_DB_PATH),
44
+ embeddingModel: DEFAULT_EMBEDDING_MODEL,
45
+ embeddingDimension: DEFAULT_EMBEDDING_DIMENSION,
46
+ httpPort: overrides.httpPort ?? DEFAULT_HTTP_PORT,
47
+ httpHost: DEFAULT_HTTP_HOST,
48
+ enableHttp,
49
+ transportMode,
50
+ };
51
+ }
52
+
53
+ /**
54
+ * Parse CLI arguments into config overrides.
55
+ */
56
+ export function parseCliArgs(argv: string[]): ConfigOverrides {
57
+ const args = arg(
58
+ {
59
+ "--db-file": String,
60
+ "--port": Number,
61
+ "--no-http": Boolean,
62
+
63
+ // Aliases
64
+ "-d": "--db-file",
65
+ "-p": "--port",
66
+ },
67
+ { argv, permissive: true }
68
+ );
69
+
70
+ return {
71
+ dbPath: args["--db-file"],
72
+ httpPort: args["--port"],
73
+ enableHttp: args["--no-http"] ? false : undefined,
74
+ };
75
+ }
76
+
77
+ // Default config for imports that don't use CLI args
78
+ export const config = loadConfig();
@@ -0,0 +1,11 @@
1
+ import * as lancedb from "@lancedb/lancedb";
2
+ import { mkdirSync } from "fs";
3
+ import { dirname } from "path";
4
+
5
+ export async function connectToDatabase(dbPath: string): Promise<lancedb.Connection> {
6
+ // Ensure directory exists
7
+ mkdirSync(dirname(dbPath), { recursive: true });
8
+
9
+ const db = await lancedb.connect(dbPath);
10
+ return db;
11
+ }