@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.
- package/LICENSE +192 -0
- package/README.md +121 -0
- package/dist/__tests__/composite.store.test.d.ts +2 -0
- package/dist/__tests__/composite.store.test.d.ts.map +1 -0
- package/dist/__tests__/composite.store.test.js +216 -0
- package/dist/__tests__/composite.store.test.js.map +1 -0
- package/dist/__tests__/create-memory-store.test.d.ts +2 -0
- package/dist/__tests__/create-memory-store.test.d.ts.map +1 -0
- package/dist/__tests__/create-memory-store.test.js +85 -0
- package/dist/__tests__/create-memory-store.test.js.map +1 -0
- package/dist/__tests__/in-memory.store.test.d.ts +2 -0
- package/dist/__tests__/in-memory.store.test.d.ts.map +1 -0
- package/dist/__tests__/in-memory.store.test.js +336 -0
- package/dist/__tests__/in-memory.store.test.js.map +1 -0
- package/dist/__tests__/memory.config.test.d.ts +2 -0
- package/dist/__tests__/memory.config.test.d.ts.map +1 -0
- package/dist/__tests__/memory.config.test.js +39 -0
- package/dist/__tests__/memory.config.test.js.map +1 -0
- package/dist/__tests__/memory.service.test.d.ts +2 -0
- package/dist/__tests__/memory.service.test.d.ts.map +1 -0
- package/dist/__tests__/memory.service.test.js +231 -0
- package/dist/__tests__/memory.service.test.js.map +1 -0
- package/dist/config/memory.config.d.ts +17 -0
- package/dist/config/memory.config.d.ts.map +1 -0
- package/dist/config/memory.config.js +20 -0
- package/dist/config/memory.config.js.map +1 -0
- package/dist/generated/prisma/client.d.ts +1 -0
- package/dist/generated/prisma/client.js +5 -0
- package/dist/generated/prisma/default.d.ts +1 -0
- package/dist/generated/prisma/default.js +5 -0
- package/dist/generated/prisma/edge.d.ts +1 -0
- package/dist/generated/prisma/edge.js +213 -0
- package/dist/generated/prisma/index-browser.js +199 -0
- package/dist/generated/prisma/index.d.ts +2874 -0
- package/dist/generated/prisma/index.js +234 -0
- package/dist/generated/prisma/libquery_engine-debian-openssl-3.0.x.so.node +0 -0
- package/dist/generated/prisma/package.json +183 -0
- package/dist/generated/prisma/query_engine_bg.js +2 -0
- package/dist/generated/prisma/query_engine_bg.wasm +0 -0
- package/dist/generated/prisma/runtime/edge-esm.js +35 -0
- package/dist/generated/prisma/runtime/edge.js +35 -0
- package/dist/generated/prisma/runtime/index-browser.d.ts +370 -0
- package/dist/generated/prisma/runtime/index-browser.js +17 -0
- package/dist/generated/prisma/runtime/library.d.ts +3982 -0
- package/dist/generated/prisma/runtime/library.js +147 -0
- package/dist/generated/prisma/runtime/react-native.js +84 -0
- package/dist/generated/prisma/runtime/wasm-compiler-edge.js +85 -0
- package/dist/generated/prisma/runtime/wasm-engine-edge.js +38 -0
- package/dist/generated/prisma/schema.prisma +32 -0
- package/dist/generated/prisma/wasm-edge-light-loader.mjs +5 -0
- package/dist/generated/prisma/wasm-worker-loader.mjs +5 -0
- package/dist/generated/prisma/wasm.d.ts +1 -0
- package/dist/generated/prisma/wasm.js +220 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/prisma-client.d.ts +13 -0
- package/dist/prisma-client.d.ts.map +1 -0
- package/dist/prisma-client.js +37 -0
- package/dist/prisma-client.js.map +1 -0
- package/dist/prisma.d.ts +12 -0
- package/dist/prisma.d.ts.map +1 -0
- package/dist/prisma.js +20 -0
- package/dist/prisma.js.map +1 -0
- package/dist/service/memory.service.d.ts +63 -0
- package/dist/service/memory.service.d.ts.map +1 -0
- package/dist/service/memory.service.js +134 -0
- package/dist/service/memory.service.js.map +1 -0
- package/dist/store/adapters/postgres.store.d.ts +55 -0
- package/dist/store/adapters/postgres.store.d.ts.map +1 -0
- package/dist/store/adapters/postgres.store.js +263 -0
- package/dist/store/adapters/postgres.store.js.map +1 -0
- package/dist/store/adapters/prisma.store.d.ts +88 -0
- package/dist/store/adapters/prisma.store.d.ts.map +1 -0
- package/dist/store/adapters/prisma.store.js +202 -0
- package/dist/store/adapters/prisma.store.js.map +1 -0
- package/dist/store/adapters/redis.store.d.ts +44 -0
- package/dist/store/adapters/redis.store.d.ts.map +1 -0
- package/dist/store/adapters/redis.store.js +261 -0
- package/dist/store/adapters/redis.store.js.map +1 -0
- package/dist/store/adapters/vector-episodic.store.d.ts +55 -0
- package/dist/store/adapters/vector-episodic.store.d.ts.map +1 -0
- package/dist/store/adapters/vector-episodic.store.js +253 -0
- package/dist/store/adapters/vector-episodic.store.js.map +1 -0
- package/dist/store/composite.store.d.ts +37 -0
- package/dist/store/composite.store.d.ts.map +1 -0
- package/dist/store/composite.store.js +151 -0
- package/dist/store/composite.store.js.map +1 -0
- package/dist/store/create-memory-store.d.ts +26 -0
- package/dist/store/create-memory-store.d.ts.map +1 -0
- package/dist/store/create-memory-store.js +29 -0
- package/dist/store/create-memory-store.js.map +1 -0
- package/dist/store/in-memory.store.d.ts +45 -0
- package/dist/store/in-memory.store.d.ts.map +1 -0
- package/dist/store/in-memory.store.js +316 -0
- package/dist/store/in-memory.store.js.map +1 -0
- package/dist/store/memory-store.interface.d.ts +56 -0
- package/dist/store/memory-store.interface.d.ts.map +1 -0
- package/dist/store/memory-store.interface.js +6 -0
- package/dist/store/memory-store.interface.js.map +1 -0
- package/dist/types/category.types.d.ts +29 -0
- package/dist/types/category.types.d.ts.map +1 -0
- package/dist/types/category.types.js +44 -0
- package/dist/types/category.types.js.map +1 -0
- package/dist/types/memory-item.types.d.ts +32 -0
- package/dist/types/memory-item.types.d.ts.map +1 -0
- package/dist/types/memory-item.types.js +6 -0
- package/dist/types/memory-item.types.js.map +1 -0
- package/dist/types/store.types.d.ts +36 -0
- package/dist/types/store.types.d.ts.map +1 -0
- package/dist/types/store.types.js +6 -0
- package/dist/types/store.types.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|