@hazeljs/memory 0.2.0-alpha.3

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 (114) hide show
  1. package/LICENSE +192 -0
  2. package/README.md +121 -0
  3. package/dist/__tests__/composite.store.test.d.ts +2 -0
  4. package/dist/__tests__/composite.store.test.d.ts.map +1 -0
  5. package/dist/__tests__/composite.store.test.js +216 -0
  6. package/dist/__tests__/composite.store.test.js.map +1 -0
  7. package/dist/__tests__/create-memory-store.test.d.ts +2 -0
  8. package/dist/__tests__/create-memory-store.test.d.ts.map +1 -0
  9. package/dist/__tests__/create-memory-store.test.js +85 -0
  10. package/dist/__tests__/create-memory-store.test.js.map +1 -0
  11. package/dist/__tests__/in-memory.store.test.d.ts +2 -0
  12. package/dist/__tests__/in-memory.store.test.d.ts.map +1 -0
  13. package/dist/__tests__/in-memory.store.test.js +336 -0
  14. package/dist/__tests__/in-memory.store.test.js.map +1 -0
  15. package/dist/__tests__/memory.config.test.d.ts +2 -0
  16. package/dist/__tests__/memory.config.test.d.ts.map +1 -0
  17. package/dist/__tests__/memory.config.test.js +39 -0
  18. package/dist/__tests__/memory.config.test.js.map +1 -0
  19. package/dist/__tests__/memory.service.test.d.ts +2 -0
  20. package/dist/__tests__/memory.service.test.d.ts.map +1 -0
  21. package/dist/__tests__/memory.service.test.js +231 -0
  22. package/dist/__tests__/memory.service.test.js.map +1 -0
  23. package/dist/config/memory.config.d.ts +17 -0
  24. package/dist/config/memory.config.d.ts.map +1 -0
  25. package/dist/config/memory.config.js +20 -0
  26. package/dist/config/memory.config.js.map +1 -0
  27. package/dist/generated/prisma/client.d.ts +1 -0
  28. package/dist/generated/prisma/client.js +5 -0
  29. package/dist/generated/prisma/default.d.ts +1 -0
  30. package/dist/generated/prisma/default.js +5 -0
  31. package/dist/generated/prisma/edge.d.ts +1 -0
  32. package/dist/generated/prisma/edge.js +213 -0
  33. package/dist/generated/prisma/index-browser.js +199 -0
  34. package/dist/generated/prisma/index.d.ts +2874 -0
  35. package/dist/generated/prisma/index.js +234 -0
  36. package/dist/generated/prisma/libquery_engine-debian-openssl-3.0.x.so.node +0 -0
  37. package/dist/generated/prisma/package.json +183 -0
  38. package/dist/generated/prisma/query_engine_bg.js +2 -0
  39. package/dist/generated/prisma/query_engine_bg.wasm +0 -0
  40. package/dist/generated/prisma/runtime/edge-esm.js +35 -0
  41. package/dist/generated/prisma/runtime/edge.js +35 -0
  42. package/dist/generated/prisma/runtime/index-browser.d.ts +370 -0
  43. package/dist/generated/prisma/runtime/index-browser.js +17 -0
  44. package/dist/generated/prisma/runtime/library.d.ts +3982 -0
  45. package/dist/generated/prisma/runtime/library.js +147 -0
  46. package/dist/generated/prisma/runtime/react-native.js +84 -0
  47. package/dist/generated/prisma/runtime/wasm-compiler-edge.js +85 -0
  48. package/dist/generated/prisma/runtime/wasm-engine-edge.js +38 -0
  49. package/dist/generated/prisma/schema.prisma +32 -0
  50. package/dist/generated/prisma/wasm-edge-light-loader.mjs +5 -0
  51. package/dist/generated/prisma/wasm-worker-loader.mjs +5 -0
  52. package/dist/generated/prisma/wasm.d.ts +1 -0
  53. package/dist/generated/prisma/wasm.js +220 -0
  54. package/dist/index.d.ts +16 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +50 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/prisma-client.d.ts +13 -0
  59. package/dist/prisma-client.d.ts.map +1 -0
  60. package/dist/prisma-client.js +37 -0
  61. package/dist/prisma-client.js.map +1 -0
  62. package/dist/prisma.d.ts +12 -0
  63. package/dist/prisma.d.ts.map +1 -0
  64. package/dist/prisma.js +20 -0
  65. package/dist/prisma.js.map +1 -0
  66. package/dist/service/memory.service.d.ts +63 -0
  67. package/dist/service/memory.service.d.ts.map +1 -0
  68. package/dist/service/memory.service.js +134 -0
  69. package/dist/service/memory.service.js.map +1 -0
  70. package/dist/store/adapters/postgres.store.d.ts +55 -0
  71. package/dist/store/adapters/postgres.store.d.ts.map +1 -0
  72. package/dist/store/adapters/postgres.store.js +263 -0
  73. package/dist/store/adapters/postgres.store.js.map +1 -0
  74. package/dist/store/adapters/prisma.store.d.ts +88 -0
  75. package/dist/store/adapters/prisma.store.d.ts.map +1 -0
  76. package/dist/store/adapters/prisma.store.js +202 -0
  77. package/dist/store/adapters/prisma.store.js.map +1 -0
  78. package/dist/store/adapters/redis.store.d.ts +44 -0
  79. package/dist/store/adapters/redis.store.d.ts.map +1 -0
  80. package/dist/store/adapters/redis.store.js +261 -0
  81. package/dist/store/adapters/redis.store.js.map +1 -0
  82. package/dist/store/adapters/vector-episodic.store.d.ts +55 -0
  83. package/dist/store/adapters/vector-episodic.store.d.ts.map +1 -0
  84. package/dist/store/adapters/vector-episodic.store.js +253 -0
  85. package/dist/store/adapters/vector-episodic.store.js.map +1 -0
  86. package/dist/store/composite.store.d.ts +37 -0
  87. package/dist/store/composite.store.d.ts.map +1 -0
  88. package/dist/store/composite.store.js +151 -0
  89. package/dist/store/composite.store.js.map +1 -0
  90. package/dist/store/create-memory-store.d.ts +26 -0
  91. package/dist/store/create-memory-store.d.ts.map +1 -0
  92. package/dist/store/create-memory-store.js +29 -0
  93. package/dist/store/create-memory-store.js.map +1 -0
  94. package/dist/store/in-memory.store.d.ts +45 -0
  95. package/dist/store/in-memory.store.d.ts.map +1 -0
  96. package/dist/store/in-memory.store.js +316 -0
  97. package/dist/store/in-memory.store.js.map +1 -0
  98. package/dist/store/memory-store.interface.d.ts +56 -0
  99. package/dist/store/memory-store.interface.d.ts.map +1 -0
  100. package/dist/store/memory-store.interface.js +6 -0
  101. package/dist/store/memory-store.interface.js.map +1 -0
  102. package/dist/types/category.types.d.ts +29 -0
  103. package/dist/types/category.types.d.ts.map +1 -0
  104. package/dist/types/category.types.js +44 -0
  105. package/dist/types/category.types.js.map +1 -0
  106. package/dist/types/memory-item.types.d.ts +32 -0
  107. package/dist/types/memory-item.types.d.ts.map +1 -0
  108. package/dist/types/memory-item.types.js +6 -0
  109. package/dist/types/memory-item.types.js.map +1 -0
  110. package/dist/types/store.types.d.ts +36 -0
  111. package/dist/types/store.types.d.ts.map +1 -0
  112. package/dist/types/store.types.js +6 -0
  113. package/dist/types/store.types.js.map +1 -0
  114. package/package.json +77 -0
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Store-agnostic interface for memory backends.
3
+ */
4
+ import { MemoryItem } from '../types/memory-item.types';
5
+ import { MemoryQuery, MemorySearchOptions, MemoryStats, PruneOptions } from '../types/store.types';
6
+ /**
7
+ * Interface for memory storage backends.
8
+ * All stores (in-memory, Postgres, Redis, vector) implement this.
9
+ */
10
+ export interface MemoryStore {
11
+ /**
12
+ * Initialize the store (e.g. connect to DB, create tables).
13
+ */
14
+ initialize(): Promise<void>;
15
+ /**
16
+ * Save a single memory item. Returns the item id.
17
+ */
18
+ save(item: MemoryItem): Promise<string>;
19
+ /**
20
+ * Save multiple memory items. Returns array of ids.
21
+ */
22
+ saveBatch(items: MemoryItem[]): Promise<string[]>;
23
+ /**
24
+ * Get a memory item by id.
25
+ */
26
+ get(id: string): Promise<MemoryItem | null>;
27
+ /**
28
+ * Update an existing memory item (partial update).
29
+ */
30
+ update(id: string, updates: Partial<MemoryItem>): Promise<void>;
31
+ /**
32
+ * Delete a memory item by id.
33
+ */
34
+ delete(id: string): Promise<void>;
35
+ /**
36
+ * Delete multiple memory items by id.
37
+ */
38
+ deleteBatch(ids: string[]): Promise<void>;
39
+ /**
40
+ * Query memory items with filters (userId, category, source, etc.).
41
+ */
42
+ query(options: MemoryQuery): Promise<MemoryItem[]>;
43
+ /**
44
+ * Search memories (text or vector). Optional; stores that do not support search may throw or return [].
45
+ */
46
+ search?(query: string | number[], options: MemorySearchOptions): Promise<MemoryItem[]>;
47
+ /**
48
+ * Get memory statistics (counts by category, oldest/newest).
49
+ */
50
+ getStats(userId?: string): Promise<MemoryStats>;
51
+ /**
52
+ * Prune old, expired, or low-confidence items. Returns number of items removed.
53
+ */
54
+ prune(options?: PruneOptions): Promise<number>;
55
+ }
56
+ //# sourceMappingURL=memory-store.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.interface.d.ts","sourceRoot":"","sources":["../../src/store/memory-store.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEnG;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAElD;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE5C;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnD;;OAEG;IACH,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEvF;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEhD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Store-agnostic interface for memory backends.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=memory-store.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.interface.js","sourceRoot":"","sources":["../../src/store/memory-store.interface.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Memory categories (buckets) for the unified memory model.
3
+ */
4
+ export declare enum MemoryCategory {
5
+ PROFILE = "profile",
6
+ PREFERENCE = "preference",
7
+ BEHAVIORAL = "behavioral",
8
+ EMOTIONAL = "emotional",
9
+ EPISODIC = "episodic",
10
+ SEMANTIC_SUMMARY = "semantic_summary"
11
+ }
12
+ /**
13
+ * Categories that are typically stored in the primary store (non-vector).
14
+ */
15
+ export declare const PRIMARY_CATEGORIES: MemoryCategory[];
16
+ /**
17
+ * Categories that benefit from vector search (episodic / semantic recall).
18
+ */
19
+ export declare const VECTOR_CATEGORIES: MemoryCategory[];
20
+ export interface CategoryBucketConfig {
21
+ defaultTtlMs?: number;
22
+ maxItemsPerUser?: number;
23
+ supportsVectorSearch?: boolean;
24
+ }
25
+ /**
26
+ * Default per-category configuration (e.g. TTL for emotional).
27
+ */
28
+ export declare const DEFAULT_CATEGORY_CONFIG: Record<MemoryCategory, CategoryBucketConfig>;
29
+ //# sourceMappingURL=category.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category.types.d.ts","sourceRoot":"","sources":["../../src/types/category.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,gBAAgB,qBAAqB;CACtC;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAAc,EAM9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAG7C,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,cAAc,EAAE,oBAAoB,CAOhF,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /**
3
+ * Memory categories (buckets) for the unified memory model.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DEFAULT_CATEGORY_CONFIG = exports.VECTOR_CATEGORIES = exports.PRIMARY_CATEGORIES = exports.MemoryCategory = void 0;
7
+ var MemoryCategory;
8
+ (function (MemoryCategory) {
9
+ MemoryCategory["PROFILE"] = "profile";
10
+ MemoryCategory["PREFERENCE"] = "preference";
11
+ MemoryCategory["BEHAVIORAL"] = "behavioral";
12
+ MemoryCategory["EMOTIONAL"] = "emotional";
13
+ MemoryCategory["EPISODIC"] = "episodic";
14
+ MemoryCategory["SEMANTIC_SUMMARY"] = "semantic_summary";
15
+ })(MemoryCategory || (exports.MemoryCategory = MemoryCategory = {}));
16
+ /**
17
+ * Categories that are typically stored in the primary store (non-vector).
18
+ */
19
+ exports.PRIMARY_CATEGORIES = [
20
+ MemoryCategory.PROFILE,
21
+ MemoryCategory.PREFERENCE,
22
+ MemoryCategory.BEHAVIORAL,
23
+ MemoryCategory.EMOTIONAL,
24
+ MemoryCategory.SEMANTIC_SUMMARY,
25
+ ];
26
+ /**
27
+ * Categories that benefit from vector search (episodic / semantic recall).
28
+ */
29
+ exports.VECTOR_CATEGORIES = [
30
+ MemoryCategory.EPISODIC,
31
+ MemoryCategory.SEMANTIC_SUMMARY,
32
+ ];
33
+ /**
34
+ * Default per-category configuration (e.g. TTL for emotional).
35
+ */
36
+ exports.DEFAULT_CATEGORY_CONFIG = {
37
+ [MemoryCategory.PROFILE]: { maxItemsPerUser: 500 },
38
+ [MemoryCategory.PREFERENCE]: { maxItemsPerUser: 1000 },
39
+ [MemoryCategory.BEHAVIORAL]: { maxItemsPerUser: 500 },
40
+ [MemoryCategory.EMOTIONAL]: { defaultTtlMs: 30 * 60 * 1000, maxItemsPerUser: 100 }, // 30 min default TTL
41
+ [MemoryCategory.EPISODIC]: { maxItemsPerUser: 5000, supportsVectorSearch: true },
42
+ [MemoryCategory.SEMANTIC_SUMMARY]: { maxItemsPerUser: 50, supportsVectorSearch: true },
43
+ };
44
+ //# sourceMappingURL=category.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category.types.js","sourceRoot":"","sources":["../../src/types/category.types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,2CAAyB,CAAA;IACzB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,uDAAqC,CAAA;AACvC,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB;AAED;;GAEG;AACU,QAAA,kBAAkB,GAAqB;IAClD,cAAc,CAAC,OAAO;IACtB,cAAc,CAAC,UAAU;IACzB,cAAc,CAAC,UAAU;IACzB,cAAc,CAAC,SAAS;IACxB,cAAc,CAAC,gBAAgB;CAChC,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAAqB;IACjD,cAAc,CAAC,QAAQ;IACvB,cAAc,CAAC,gBAAgB;CAChC,CAAC;AAQF;;GAEG;AACU,QAAA,uBAAuB,GAAiD;IACnF,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE;IAClD,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;IACtD,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE;IACrD,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,qBAAqB;IACzG,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;IAChF,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE;CACvF,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Core memory item schema (explicit / inferred / system).
3
+ */
4
+ import { MemoryCategory } from './category.types';
5
+ export type MemorySource = 'explicit' | 'inferred' | 'system';
6
+ /**
7
+ * Value can be string, structured object, or embedding vector.
8
+ */
9
+ export type MemoryValue = string | Record<string, unknown> | number[];
10
+ export interface MemoryItem {
11
+ id: string;
12
+ userId: string;
13
+ category: MemoryCategory;
14
+ key: string;
15
+ value: MemoryValue;
16
+ confidence: number;
17
+ source: MemorySource;
18
+ evidence: string[];
19
+ createdAt: Date;
20
+ updatedAt: Date;
21
+ expiresAt?: Date;
22
+ accessCount: number;
23
+ sessionId?: string;
24
+ }
25
+ /**
26
+ * Input for creating a memory (id and timestamps can be omitted).
27
+ */
28
+ export interface MemoryItemInput extends Omit<MemoryItem, 'id' | 'createdAt' | 'updatedAt' | 'accessCount'> {
29
+ id?: string;
30
+ accessCount?: number;
31
+ }
32
+ //# sourceMappingURL=memory-item.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-item.types.d.ts","sourceRoot":"","sources":["../../src/types/memory-item.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;AAEtE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,UAAU,EACV,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CACjD;IACC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Core memory item schema (explicit / inferred / system).
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=memory-item.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-item.types.js","sourceRoot":"","sources":["../../src/types/memory-item.types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Query, options, and stats for memory stores.
3
+ */
4
+ import { MemoryCategory } from './category.types';
5
+ export interface MemoryQuery {
6
+ userId: string;
7
+ category?: MemoryCategory | MemoryCategory[];
8
+ source?: import('./memory-item.types').MemorySource | import('./memory-item.types').MemorySource[];
9
+ minConfidence?: number;
10
+ notExpired?: boolean;
11
+ limit?: number;
12
+ offset?: number;
13
+ orderBy?: 'createdAt' | 'updatedAt';
14
+ order?: 'asc' | 'desc';
15
+ }
16
+ export interface MemorySearchOptions {
17
+ userId: string;
18
+ category?: MemoryCategory | MemoryCategory[];
19
+ topK?: number;
20
+ minScore?: number;
21
+ vectorQuery?: number[];
22
+ }
23
+ export interface MemoryStats {
24
+ total: number;
25
+ byCategory: Record<MemoryCategory, number>;
26
+ oldestMemory: Date | null;
27
+ newestMemory: Date | null;
28
+ }
29
+ export interface PruneOptions {
30
+ userId?: string;
31
+ olderThan?: Date;
32
+ minConfidence?: number;
33
+ category?: MemoryCategory;
34
+ maxItemsPerUser?: number;
35
+ }
36
+ //# sourceMappingURL=store.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../src/types/store.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAC7C,MAAM,CAAC,EACH,OAAO,qBAAqB,EAAE,YAAY,GAC1C,OAAO,qBAAqB,EAAE,YAAY,EAAE,CAAC;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IACpC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Query, options, and stats for memory stores.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=store.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.types.js","sourceRoot":"","sources":["../../src/types/store.types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "@hazeljs/memory",
3
+ "version": "0.2.0-alpha.3",
4
+ "description": "Pluggable user memory for HazelJS - profile, preferences, behavioral patterns, emotional state, episodic and semantic memory with multi-store support",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./prisma": {
13
+ "types": "./dist/prisma.d.ts",
14
+ "default": "./dist/prisma.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "scripts": {
21
+ "build": "prisma generate && tsc --skipLibCheck && (test -d src/generated && cp -r src/generated dist/ || true)",
22
+ "prisma:generate": "prisma generate",
23
+ "prisma:migrate": "prisma migrate dev",
24
+ "prisma:deploy": "prisma migrate deploy",
25
+ "test": "jest --coverage --passWithNoTests",
26
+ "lint": "eslint \"src/**/*.ts\"",
27
+ "lint:fix": "eslint \"src/**/*.ts\" --fix",
28
+ "clean": "rm -rf dist"
29
+ },
30
+ "optionalDependencies": {
31
+ "@prisma/client": "^6.8.2"
32
+ },
33
+ "devDependencies": {
34
+ "@types/jest": "^29.5.14",
35
+ "@types/node": "^20.17.50",
36
+ "@typescript-eslint/eslint-plugin": "^8.18.2",
37
+ "@typescript-eslint/parser": "^8.18.2",
38
+ "eslint": "^8.56.0",
39
+ "jest": "^29.7.0",
40
+ "prisma": "^6.8.2",
41
+ "ts-jest": "^29.1.2",
42
+ "typescript": "^5.3.3"
43
+ },
44
+ "peerDependencies": {
45
+ "ioredis": "^5.0.0",
46
+ "pg": "^8.0.0"
47
+ },
48
+ "peerDependenciesMeta": {
49
+ "pg": {
50
+ "optional": true
51
+ },
52
+ "ioredis": {
53
+ "optional": true
54
+ }
55
+ },
56
+ "publishConfig": {
57
+ "access": "public"
58
+ },
59
+ "repository": {
60
+ "type": "git",
61
+ "url": "https://github.com/hazeljs/hazeljs",
62
+ "directory": "packages/memory"
63
+ },
64
+ "keywords": [
65
+ "hazeljs",
66
+ "memory",
67
+ "user-memory",
68
+ "preferences",
69
+ "episodic",
70
+ "agent",
71
+ "rag",
72
+ "prisma"
73
+ ],
74
+ "author": "Muhammad Arslan <muhammad.arslan@hazeljs.com>",
75
+ "license": "Apache-2.0",
76
+ "gitHead": "17ca4464a7955c10c0e4e151a83daf900213bb7a"
77
+ }