@danielzfliu/memory 1.0.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/dist/store.d.ts CHANGED
@@ -2,15 +2,18 @@ import { Piece, MemoryConfig, QueryOptions, QueryResult } from "./types";
2
2
  export declare class PieceStore {
3
3
  private readonly chromaClient;
4
4
  private readonly embeddingClient;
5
- private collection;
5
+ private readonly collectionCache;
6
+ private initialized;
6
7
  private readonly config;
7
8
  constructor(config?: MemoryConfig);
8
9
  init(): Promise<void>;
9
- private getCollection;
10
- addPiece(content: string, tags: string[]): Promise<Piece>;
11
- getPiece(id: string): Promise<Piece | null>;
12
- deletePiece(id: string): Promise<void>;
13
- updatePiece(id: string, content?: string, tags?: string[]): Promise<Piece | null>;
14
- queryPieces(query: string, options?: QueryOptions): Promise<QueryResult[]>;
10
+ private resolveCollection;
11
+ listCollections(): Promise<string[]>;
12
+ deleteCollection(name: string): Promise<void>;
13
+ addPiece(content: string, tags: string[], title?: string, collection?: string): Promise<Piece>;
14
+ getPiece(id: string, collection?: string): Promise<Piece | null>;
15
+ deletePiece(id: string, collection?: string): Promise<void>;
16
+ updatePiece(id: string, content?: string, tags?: string[], title?: string | null, collection?: string): Promise<Piece | null>;
17
+ queryPieces(query: string, options?: QueryOptions, collection?: string): Promise<QueryResult[]>;
15
18
  }
16
19
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,KAAK,EACL,YAAY,EAEZ,YAAY,EACZ,WAAW,EACd,MAAM,SAAS,CAAC;AAYjB,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,MAAM,GAAE,YAAiB;IAS/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,aAAa;IAOf,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IAezD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAgB3C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,WAAW,CACb,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IA8BlB,WAAW,CACb,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,YAAiB,GAC3B,OAAO,CAAC,WAAW,EAAE,CAAC;CAiD5B"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACd,MAAM,SAAS,CAAC;AAwEjB,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,MAAM,GAAE,YAAiB;IAS/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YASb,iBAAiB;IAgBzB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOpC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAsB9F,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAmBhE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,WAAW,CACb,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAyClB,WAAW,CACb,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,YAAiB,EAC1B,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,EAAE,CAAC;CAyE5B"}
package/dist/store.js CHANGED
@@ -4,105 +4,183 @@ exports.PieceStore = void 0;
4
4
  const chromadb_1 = require("chromadb");
5
5
  const uuid_1 = require("uuid");
6
6
  const embeddings_1 = require("./embeddings");
7
- const types_1 = require("./types");
8
- function toChromaMetadata(tags) {
9
- return { tags };
7
+ const hybrid_1 = require("./hybrid");
8
+ const config_1 = require("./config");
9
+ function toTagMetadataKey(tag) {
10
+ return `tag_${Buffer.from(tag, "utf8").toString("base64url")}`;
11
+ }
12
+ function toChromaMetadata(tags, title) {
13
+ const normalizedTags = normalizeTags(tags);
14
+ const normalizedTitle = normalizeTitle(title);
15
+ return {
16
+ tags: JSON.stringify(normalizedTags),
17
+ ...Object.fromEntries(normalizedTags.map((tag) => [toTagMetadataKey(tag), true])),
18
+ ...(normalizedTitle !== undefined ? { title: normalizedTitle } : {}),
19
+ };
20
+ }
21
+ function normalizeTags(value) {
22
+ if (Array.isArray(value)) {
23
+ return value.filter((tag) => typeof tag === "string");
24
+ }
25
+ if (typeof value === "string") {
26
+ try {
27
+ const parsed = JSON.parse(value);
28
+ return Array.isArray(parsed)
29
+ ? parsed.filter((tag) => typeof tag === "string")
30
+ : [];
31
+ }
32
+ catch {
33
+ return [];
34
+ }
35
+ }
36
+ return [];
37
+ }
38
+ function normalizeTitle(value) {
39
+ return typeof value === "string" ? value : undefined;
10
40
  }
11
41
  function parseTags(metadata) {
12
- return metadata?.tags ?? [];
42
+ return normalizeTags(metadata?.tags);
43
+ }
44
+ function parseTitle(metadata) {
45
+ return normalizeTitle(metadata?.title);
46
+ }
47
+ function toEmbeddingText(content, title) {
48
+ return title ? `${title}\n\n${content}` : content;
49
+ }
50
+ function buildTagWhereClause(tags) {
51
+ if (tags.length === 0) {
52
+ return undefined;
53
+ }
54
+ if (tags.length === 1) {
55
+ return { [toTagMetadataKey(tags[0])]: true };
56
+ }
57
+ return {
58
+ $and: tags.map((tag) => ({
59
+ [toTagMetadataKey(tag)]: true,
60
+ })),
61
+ };
13
62
  }
14
63
  class PieceStore {
15
64
  chromaClient;
16
65
  embeddingClient;
17
- collection = null;
66
+ collectionCache = new Map();
67
+ initialized = false;
18
68
  config;
19
69
  constructor(config = {}) {
20
- this.config = { ...types_1.DEFAULT_MEMORY_CONFIG, ...config };
70
+ this.config = (0, config_1.resolveConfig)(config);
21
71
  this.chromaClient = new chromadb_1.ChromaClient({ path: this.config.chromaUrl });
22
72
  this.embeddingClient = new embeddings_1.EmbeddingClient(this.config.ollamaUrl, this.config.embeddingModel);
23
73
  }
24
74
  async init() {
25
- this.collection = await this.chromaClient.getOrCreateCollection({
75
+ const collection = await this.chromaClient.getOrCreateCollection({
26
76
  name: this.config.collectionName,
27
77
  metadata: { "hnsw:space": "cosine" },
28
78
  });
79
+ this.collectionCache.set(this.config.collectionName, collection);
80
+ this.initialized = true;
29
81
  }
30
- getCollection() {
31
- if (!this.collection) {
82
+ async resolveCollection(name) {
83
+ if (!this.initialized) {
32
84
  throw new Error("PieceStore not initialized. Call init() first.");
33
85
  }
34
- return this.collection;
86
+ const collectionName = name ?? this.config.collectionName;
87
+ let collection = this.collectionCache.get(collectionName);
88
+ if (!collection) {
89
+ collection = await this.chromaClient.getOrCreateCollection({
90
+ name: collectionName,
91
+ metadata: { "hnsw:space": "cosine" },
92
+ });
93
+ this.collectionCache.set(collectionName, collection);
94
+ }
95
+ return collection;
35
96
  }
36
- async addPiece(content, tags) {
37
- const collection = this.getCollection();
97
+ async listCollections() {
98
+ if (!this.initialized) {
99
+ throw new Error("PieceStore not initialized. Call init() first.");
100
+ }
101
+ return this.chromaClient.listCollections();
102
+ }
103
+ async deleteCollection(name) {
104
+ if (!this.initialized) {
105
+ throw new Error("PieceStore not initialized. Call init() first.");
106
+ }
107
+ await this.chromaClient.deleteCollection({ name });
108
+ this.collectionCache.delete(name);
109
+ }
110
+ async addPiece(content, tags, title, collection) {
111
+ const col = await this.resolveCollection(collection);
38
112
  const id = (0, uuid_1.v4)();
39
- const embedding = await this.embeddingClient.embed(content);
40
- await collection.add({
113
+ const embedding = await this.embeddingClient.embed(toEmbeddingText(content, title));
114
+ await col.add({
41
115
  ids: [id],
42
116
  embeddings: [embedding],
43
117
  documents: [content],
44
- metadatas: [toChromaMetadata(tags)],
118
+ metadatas: [toChromaMetadata(tags, title)],
45
119
  });
46
- return { id, content, tags };
120
+ return {
121
+ id,
122
+ content,
123
+ ...(title !== undefined ? { title } : {}),
124
+ tags,
125
+ };
47
126
  }
48
- async getPiece(id) {
49
- const collection = this.getCollection();
50
- const result = await collection.get({
127
+ async getPiece(id, collection) {
128
+ const col = await this.resolveCollection(collection);
129
+ const result = await col.get({
51
130
  ids: [id],
52
131
  include: [chromadb_1.IncludeEnum.Documents, chromadb_1.IncludeEnum.Metadatas],
53
132
  });
54
133
  if (!result.ids.length)
55
134
  return null;
135
+ const title = parseTitle(result.metadatas[0]);
56
136
  return {
57
137
  id: result.ids[0],
58
138
  content: result.documents[0] ?? "",
139
+ ...(title !== undefined ? { title } : {}),
59
140
  tags: parseTags(result.metadatas[0]),
60
141
  };
61
142
  }
62
- async deletePiece(id) {
63
- const collection = this.getCollection();
64
- await collection.delete({ ids: [id] });
143
+ async deletePiece(id, collection) {
144
+ const col = await this.resolveCollection(collection);
145
+ await col.delete({ ids: [id] });
65
146
  }
66
- async updatePiece(id, content, tags) {
67
- const collection = this.getCollection();
68
- const existing = await this.getPiece(id);
147
+ async updatePiece(id, content, tags, title, collection) {
148
+ const col = await this.resolveCollection(collection);
149
+ const existing = await this.getPiece(id, collection);
69
150
  if (!existing)
70
151
  return null;
71
152
  const newContent = content ?? existing.content;
72
153
  const newTags = tags ?? existing.tags;
154
+ const newTitle = title === undefined ? existing.title : title ?? undefined;
73
155
  const updateData = {
74
156
  ids: [id],
75
- metadatas: [toChromaMetadata(newTags)],
157
+ metadatas: [toChromaMetadata(newTags, newTitle)],
76
158
  };
77
159
  if (content !== undefined) {
78
160
  updateData.documents = [newContent];
161
+ }
162
+ if (content !== undefined || title !== undefined) {
79
163
  updateData.embeddings = [
80
- await this.embeddingClient.embed(newContent),
164
+ await this.embeddingClient.embed(toEmbeddingText(newContent, newTitle)),
81
165
  ];
82
166
  }
83
- await collection.update(updateData);
84
- return { id, content: newContent, tags: newTags };
167
+ await col.update(updateData);
168
+ return {
169
+ id,
170
+ content: newContent,
171
+ ...(newTitle !== undefined ? { title: newTitle } : {}),
172
+ tags: newTags,
173
+ };
85
174
  }
86
- async queryPieces(query, options = {}) {
87
- const collection = this.getCollection();
88
- const { tags, topK = 10 } = options;
175
+ async queryPieces(query, options = {}, collection) {
176
+ const col = await this.resolveCollection(collection);
177
+ const { tags, topK = 10, useHybridSearch = false } = options;
89
178
  const queryEmbedding = await this.embeddingClient.embed(query);
90
- let whereClause;
91
- if (tags && tags.length > 0) {
92
- if (tags.length === 1) {
93
- whereClause = { tags: { $contains: tags[0] } };
94
- }
95
- else {
96
- whereClause = {
97
- $and: tags.map((tag) => ({
98
- tags: { $contains: tag },
99
- })),
100
- };
101
- }
102
- }
103
- const results = await collection.query({
179
+ const whereClause = buildTagWhereClause(tags ?? []);
180
+ const fetchK = useHybridSearch ? topK * 3 : topK;
181
+ const results = await col.query({
104
182
  queryEmbeddings: [queryEmbedding],
105
- nResults: topK,
183
+ nResults: fetchK,
106
184
  where: whereClause,
107
185
  include: [
108
186
  chromadb_1.IncludeEnum.Documents,
@@ -110,22 +188,44 @@ class PieceStore {
110
188
  chromadb_1.IncludeEnum.Distances,
111
189
  ],
112
190
  });
113
- const queryResults = [];
114
191
  const ids = results.ids[0] ?? [];
115
192
  const documents = results.documents[0] ?? [];
116
193
  const metadatas = results.metadatas[0] ?? [];
117
194
  const distances = results.distances?.[0] ?? [];
195
+ const queryResults = [];
118
196
  for (let i = 0; i < ids.length; i++) {
197
+ const title = parseTitle(metadatas[i]);
119
198
  queryResults.push({
120
199
  piece: {
121
200
  id: ids[i],
122
201
  content: documents[i] ?? "",
202
+ ...(title !== undefined ? { title } : {}),
123
203
  tags: parseTags(metadatas[i]),
124
204
  },
125
205
  score: 1 - (distances[i] ?? 0), // cosine distance → similarity
126
206
  });
127
207
  }
128
- return queryResults;
208
+ if (!useHybridSearch) {
209
+ return queryResults;
210
+ }
211
+ // ── Hybrid: RRF merge of vector ranking + keyword ranking ────────
212
+ const queryTokens = (0, hybrid_1.tokenize)(query);
213
+ const vectorRanking = queryResults.map((r) => ({
214
+ item: r,
215
+ score: r.score,
216
+ }));
217
+ const keywordRanking = queryResults
218
+ .map((r) => ({
219
+ item: r,
220
+ score: (0, hybrid_1.keywordScore)(queryTokens, toEmbeddingText(r.piece.content, r.piece.title)),
221
+ }))
222
+ .filter((r) => r.score > 0)
223
+ .sort((a, b) => b.score - a.score);
224
+ const fused = (0, hybrid_1.reciprocalRankFusion)([vectorRanking, keywordRanking], (r) => r.piece.id);
225
+ return fused.slice(0, topK).map((f) => ({
226
+ ...f.item,
227
+ score: f.score,
228
+ }));
129
229
  }
130
230
  }
131
231
  exports.PieceStore = PieceStore;
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export interface Piece {
2
2
  id: string;
3
3
  content: string;
4
+ title?: string;
4
5
  tags: string[];
5
6
  }
6
7
  export interface MemoryConfig {
@@ -10,10 +11,10 @@ export interface MemoryConfig {
10
11
  generationModel?: string;
11
12
  collectionName?: string;
12
13
  }
13
- export declare const DEFAULT_MEMORY_CONFIG: Required<MemoryConfig>;
14
14
  export interface QueryOptions {
15
15
  tags?: string[];
16
16
  topK?: number;
17
+ useHybridSearch?: boolean;
17
18
  }
18
19
  export interface QueryResult {
19
20
  piece: Piece;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CAMxD,CAAC;AAEF,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,EAAE,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,EAAE,CAAC;CAC1B"}
package/dist/types.js CHANGED
@@ -1,11 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_MEMORY_CONFIG = void 0;
4
- exports.DEFAULT_MEMORY_CONFIG = {
5
- chromaUrl: "http://localhost:8000",
6
- ollamaUrl: "http://localhost:11434",
7
- embeddingModel: "nomic-embed-text-v2-moe",
8
- generationModel: "llama3.2",
9
- collectionName: "pieces",
10
- };
11
3
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAca,QAAA,qBAAqB,GAA2B;IACzD,SAAS,EAAE,uBAAuB;IAClC,SAAS,EAAE,wBAAwB;IACnC,cAAc,EAAE,yBAAyB;IACzC,eAAe,EAAE,UAAU;IAC3B,cAAc,EAAE,QAAQ;CAC3B,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,62 +1,74 @@
1
- {
2
- "name": "@danielzfliu/memory",
3
- "version": "1.0.1",
4
- "description": "A local RAG system for storing, searching, and querying tagged text pieces using ChromaDB and Ollama",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "exports": {
8
- ".": {
9
- "types": "./dist/index.d.ts",
10
- "require": "./dist/index.js"
11
- }
12
- },
13
- "files": [
14
- "dist",
15
- "README.md",
16
- "LICENSE"
17
- ],
18
- "repository": {
19
- "type": "git",
20
- "url": "git+https://github.com/DanielZFLiu/memory.git"
21
- },
22
- "engines": {
23
- "node": ">=18"
24
- },
25
- "keywords": [
26
- "rag",
27
- "chromadb",
28
- "ollama",
29
- "vector-search",
30
- "embeddings",
31
- "local-ai"
32
- ],
33
- "scripts": {
34
- "build": "tsc",
35
- "dev": "tsx src/main.ts",
36
- "start": "node dist/main.js",
37
- "test": "vitest run",
38
- "test:watch": "vitest",
39
- "test:coverage": "vitest run --coverage",
40
- "prepublishOnly": "npm run build",
41
- "db": "chroma run --port 8000",
42
- "db:port": "node ./package_scripts/serve-chroma.js",
43
- "ollama": "ollama serve",
44
- "ollama:port": "node ./package_scripts/serve-ollama.js"
45
- },
46
- "license": "GPL-3.0",
47
- "dependencies": {
48
- "chromadb": "^1.9.2",
49
- "express": "^4.21.0",
50
- "ollama": "^0.5.11",
51
- "uuid": "^11.0.3"
52
- },
53
- "devDependencies": {
54
- "@types/express": "^5.0.0",
55
- "@types/supertest": "^6.0.3",
56
- "@types/uuid": "^10.0.0",
57
- "supertest": "^7.2.2",
58
- "tsx": "^4.19.0",
59
- "typescript": "^5.6.0",
60
- "vitest": "^4.0.18"
61
- }
62
- }
1
+ {
2
+ "name": "@danielzfliu/memory",
3
+ "version": "2.0.0",
4
+ "description": "A local MCP server and Node.js library for storing, searching, and querying tagged text pieces using ChromaDB and Ollama",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "require": "./dist/index.js"
11
+ }
12
+ },
13
+ "bin": {
14
+ "memory-mcp": "dist/main.js"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md",
19
+ "LICENSE"
20
+ ],
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/DanielZFLiu/memory.git"
24
+ },
25
+ "engines": {
26
+ "node": ">=18"
27
+ },
28
+ "keywords": [
29
+ "mcp",
30
+ "model-context-protocol",
31
+ "rag",
32
+ "chromadb",
33
+ "ollama",
34
+ "vector-search",
35
+ "embeddings",
36
+ "local-ai"
37
+ ],
38
+ "scripts": {
39
+ "build": "tsc",
40
+ "dev": "tsx src/main.ts",
41
+ "dev:http": "tsx src/http-main.ts",
42
+ "start": "node dist/main.js",
43
+ "start:http": "node dist/http-main.js",
44
+ "test": "vitest run",
45
+ "test:watch": "vitest",
46
+ "test:coverage": "vitest run --coverage",
47
+ "docker:up": "docker compose up -d",
48
+ "docker:down": "docker compose down",
49
+ "docker:logs": "docker compose logs -f chromadb",
50
+ "prepublishOnly": "npm run build",
51
+ "db": "chroma run --port 8000",
52
+ "db:port": "node ./package_scripts/serve-chroma.js",
53
+ "ollama": "ollama serve",
54
+ "ollama:port": "node ./package_scripts/serve-ollama.js"
55
+ },
56
+ "license": "GPL-3.0",
57
+ "dependencies": {
58
+ "@modelcontextprotocol/sdk": "^1.26.0",
59
+ "chromadb": "^1.10.5",
60
+ "express": "^4.21.0",
61
+ "ollama": "^0.5.11",
62
+ "uuid": "^11.0.3",
63
+ "zod": "^4.3.6"
64
+ },
65
+ "devDependencies": {
66
+ "@types/express": "^5.0.0",
67
+ "@types/supertest": "^6.0.3",
68
+ "@types/uuid": "^10.0.0",
69
+ "supertest": "^7.2.2",
70
+ "tsx": "^4.19.0",
71
+ "typescript": "^5.6.0",
72
+ "vitest": "^4.0.18"
73
+ }
74
+ }