@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,220 @@
|
|
|
1
|
+
|
|
2
|
+
/* !!! This is code generated by Prisma. Do not edit directly. !!!
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
// biome-ignore-all lint: generated file
|
|
5
|
+
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
|
|
8
|
+
const {
|
|
9
|
+
PrismaClientKnownRequestError,
|
|
10
|
+
PrismaClientUnknownRequestError,
|
|
11
|
+
PrismaClientRustPanicError,
|
|
12
|
+
PrismaClientInitializationError,
|
|
13
|
+
PrismaClientValidationError,
|
|
14
|
+
getPrismaClient,
|
|
15
|
+
sqltag,
|
|
16
|
+
empty,
|
|
17
|
+
join,
|
|
18
|
+
raw,
|
|
19
|
+
skip,
|
|
20
|
+
Decimal,
|
|
21
|
+
Debug,
|
|
22
|
+
objectEnumValues,
|
|
23
|
+
makeStrictEnum,
|
|
24
|
+
Extensions,
|
|
25
|
+
warnOnce,
|
|
26
|
+
defineDmmfProperty,
|
|
27
|
+
Public,
|
|
28
|
+
getRuntime,
|
|
29
|
+
createParam,
|
|
30
|
+
} = require('./runtime/wasm-engine-edge.js')
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
const Prisma = {}
|
|
34
|
+
|
|
35
|
+
exports.Prisma = Prisma
|
|
36
|
+
exports.$Enums = {}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Prisma Client JS version: 6.19.2
|
|
40
|
+
* Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
|
|
41
|
+
*/
|
|
42
|
+
Prisma.prismaVersion = {
|
|
43
|
+
client: "6.19.2",
|
|
44
|
+
engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7"
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;
|
|
48
|
+
Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError
|
|
49
|
+
Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError
|
|
50
|
+
Prisma.PrismaClientInitializationError = PrismaClientInitializationError
|
|
51
|
+
Prisma.PrismaClientValidationError = PrismaClientValidationError
|
|
52
|
+
Prisma.Decimal = Decimal
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Re-export of sql-template-tag
|
|
56
|
+
*/
|
|
57
|
+
Prisma.sql = sqltag
|
|
58
|
+
Prisma.empty = empty
|
|
59
|
+
Prisma.join = join
|
|
60
|
+
Prisma.raw = raw
|
|
61
|
+
Prisma.validator = Public.validator
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Extensions
|
|
65
|
+
*/
|
|
66
|
+
Prisma.getExtensionContext = Extensions.getExtensionContext
|
|
67
|
+
Prisma.defineExtension = Extensions.defineExtension
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Shorthand utilities for JSON filtering
|
|
71
|
+
*/
|
|
72
|
+
Prisma.DbNull = objectEnumValues.instances.DbNull
|
|
73
|
+
Prisma.JsonNull = objectEnumValues.instances.JsonNull
|
|
74
|
+
Prisma.AnyNull = objectEnumValues.instances.AnyNull
|
|
75
|
+
|
|
76
|
+
Prisma.NullTypes = {
|
|
77
|
+
DbNull: objectEnumValues.classes.DbNull,
|
|
78
|
+
JsonNull: objectEnumValues.classes.JsonNull,
|
|
79
|
+
AnyNull: objectEnumValues.classes.AnyNull
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Enums
|
|
88
|
+
*/
|
|
89
|
+
exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
|
|
90
|
+
ReadUncommitted: 'ReadUncommitted',
|
|
91
|
+
ReadCommitted: 'ReadCommitted',
|
|
92
|
+
RepeatableRead: 'RepeatableRead',
|
|
93
|
+
Serializable: 'Serializable'
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
exports.Prisma.MemoryItemScalarFieldEnum = {
|
|
97
|
+
id: 'id',
|
|
98
|
+
userId: 'userId',
|
|
99
|
+
category: 'category',
|
|
100
|
+
key: 'key',
|
|
101
|
+
value: 'value',
|
|
102
|
+
confidence: 'confidence',
|
|
103
|
+
source: 'source',
|
|
104
|
+
evidence: 'evidence',
|
|
105
|
+
createdAt: 'createdAt',
|
|
106
|
+
updatedAt: 'updatedAt',
|
|
107
|
+
expiresAt: 'expiresAt',
|
|
108
|
+
accessCount: 'accessCount',
|
|
109
|
+
sessionId: 'sessionId'
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
exports.Prisma.SortOrder = {
|
|
113
|
+
asc: 'asc',
|
|
114
|
+
desc: 'desc'
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
exports.Prisma.JsonNullValueInput = {
|
|
118
|
+
JsonNull: Prisma.JsonNull
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
exports.Prisma.QueryMode = {
|
|
122
|
+
default: 'default',
|
|
123
|
+
insensitive: 'insensitive'
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
exports.Prisma.JsonNullValueFilter = {
|
|
127
|
+
DbNull: Prisma.DbNull,
|
|
128
|
+
JsonNull: Prisma.JsonNull,
|
|
129
|
+
AnyNull: Prisma.AnyNull
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
exports.Prisma.NullsOrder = {
|
|
133
|
+
first: 'first',
|
|
134
|
+
last: 'last'
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
exports.Prisma.ModelName = {
|
|
139
|
+
MemoryItem: 'MemoryItem'
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Create the Client
|
|
143
|
+
*/
|
|
144
|
+
const config = {
|
|
145
|
+
"generator": {
|
|
146
|
+
"name": "client",
|
|
147
|
+
"provider": {
|
|
148
|
+
"fromEnvVar": null,
|
|
149
|
+
"value": "prisma-client-js"
|
|
150
|
+
},
|
|
151
|
+
"output": {
|
|
152
|
+
"value": "/home/runner/work/hazeljs/hazeljs/packages/memory/src/generated/prisma",
|
|
153
|
+
"fromEnvVar": null
|
|
154
|
+
},
|
|
155
|
+
"config": {
|
|
156
|
+
"engineType": "library"
|
|
157
|
+
},
|
|
158
|
+
"binaryTargets": [
|
|
159
|
+
{
|
|
160
|
+
"fromEnvVar": null,
|
|
161
|
+
"value": "debian-openssl-3.0.x",
|
|
162
|
+
"native": true
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"previewFeatures": [],
|
|
166
|
+
"sourceFilePath": "/home/runner/work/hazeljs/hazeljs/packages/memory/prisma/schema.prisma",
|
|
167
|
+
"isCustomOutput": true
|
|
168
|
+
},
|
|
169
|
+
"relativeEnvPaths": {
|
|
170
|
+
"rootEnvPath": null
|
|
171
|
+
},
|
|
172
|
+
"relativePath": "../../../prisma",
|
|
173
|
+
"clientVersion": "6.19.2",
|
|
174
|
+
"engineVersion": "c2990dca591cba766e3b7ef5d9e8a84796e47ab7",
|
|
175
|
+
"datasourceNames": [
|
|
176
|
+
"db"
|
|
177
|
+
],
|
|
178
|
+
"activeProvider": "postgresql",
|
|
179
|
+
"postinstall": false,
|
|
180
|
+
"ciName": "GitHub Actions",
|
|
181
|
+
"inlineDatasources": {
|
|
182
|
+
"db": {
|
|
183
|
+
"url": {
|
|
184
|
+
"fromEnvVar": "DATABASE_URL",
|
|
185
|
+
"value": null
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"inlineSchema": "// @hazeljs/memory - User memory Prisma schema\n// Use with createPrismaMemoryStore(prisma) from '@hazeljs/memory/prisma'\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel MemoryItem {\n id String @id\n userId String @map(\"user_id\")\n category String\n key String\n value Json\n confidence Float\n source String\n evidence Json // string[]\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n expiresAt DateTime? @map(\"expires_at\")\n accessCount Int @default(0) @map(\"access_count\")\n sessionId String? @map(\"session_id\")\n\n @@index([userId, category])\n @@index([expiresAt])\n @@map(\"memory_items\")\n}\n",
|
|
190
|
+
"inlineSchemaHash": "fe3946530583fb0bf4d1d9520787f790b9f058936c3537e93d3661bc517f4dc9",
|
|
191
|
+
"copyEngine": true
|
|
192
|
+
}
|
|
193
|
+
config.dirname = '/'
|
|
194
|
+
|
|
195
|
+
config.runtimeDataModel = JSON.parse("{\"models\":{\"MemoryItem\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"category\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"confidence\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"source\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evidence\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"accessCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"access_count\"},{\"name\":\"sessionId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"session_id\"}],\"dbName\":\"memory_items\"}},\"enums\":{},\"types\":{}}")
|
|
196
|
+
defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
|
|
197
|
+
config.engineWasm = {
|
|
198
|
+
getRuntime: async () => require('./query_engine_bg.js'),
|
|
199
|
+
getQueryEngineWasmModule: async () => {
|
|
200
|
+
const loader = (await import('#wasm-engine-loader')).default
|
|
201
|
+
const engine = (await loader).default
|
|
202
|
+
return engine
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
config.compilerWasm = undefined
|
|
206
|
+
|
|
207
|
+
config.injectableEdgeEnv = () => ({
|
|
208
|
+
parsed: {
|
|
209
|
+
DATABASE_URL: typeof globalThis !== 'undefined' && globalThis['DATABASE_URL'] || typeof process !== 'undefined' && process.env && process.env.DATABASE_URL || undefined
|
|
210
|
+
}
|
|
211
|
+
})
|
|
212
|
+
|
|
213
|
+
if (typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) {
|
|
214
|
+
Debug.enable(typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined)
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
const PrismaClient = getPrismaClient(config)
|
|
218
|
+
exports.PrismaClient = PrismaClient
|
|
219
|
+
Object.assign(exports, Prisma)
|
|
220
|
+
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hazeljs/memory — Pluggable user memory with multi-store support
|
|
3
|
+
*/
|
|
4
|
+
export * from './types/memory-item.types';
|
|
5
|
+
export * from './types/category.types';
|
|
6
|
+
export * from './types/store.types';
|
|
7
|
+
export type { MemoryStore } from './store/memory-store.interface';
|
|
8
|
+
export { InMemoryStore, createDefaultMemoryStore, type InMemoryStoreOptions, } from './store/in-memory.store';
|
|
9
|
+
export { createMemoryStore, type MemoryStoreConfig } from './store/create-memory-store';
|
|
10
|
+
export { CompositeMemoryStore, type CompositeMemoryStoreOptions } from './store/composite.store';
|
|
11
|
+
export { PostgresStore, type PostgresStoreOptions } from './store/adapters/postgres.store';
|
|
12
|
+
export { RedisStore, type RedisStoreOptions } from './store/adapters/redis.store';
|
|
13
|
+
export { VectorEpisodicStore, type VectorEpisodicStoreOptions, type VectorStoreAdapter, } from './store/adapters/vector-episodic.store';
|
|
14
|
+
export { MemoryService } from './service/memory.service';
|
|
15
|
+
export { DEFAULT_CATEGORY_CONFIG, DEFAULT_MEMORY_SERVICE_CONFIG, getDefaultTtlForCategory, type MemoryServiceConfig, } from './config/memory.config';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAGpC,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGxF,OAAO,EAAE,oBAAoB,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAGjG,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,GACxB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @hazeljs/memory — Pluggable user memory with multi-store support
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.getDefaultTtlForCategory = exports.DEFAULT_MEMORY_SERVICE_CONFIG = exports.DEFAULT_CATEGORY_CONFIG = exports.MemoryService = exports.VectorEpisodicStore = exports.RedisStore = exports.PostgresStore = exports.CompositeMemoryStore = exports.createMemoryStore = exports.createDefaultMemoryStore = exports.InMemoryStore = void 0;
|
|
21
|
+
// Types
|
|
22
|
+
__exportStar(require("./types/memory-item.types"), exports);
|
|
23
|
+
__exportStar(require("./types/category.types"), exports);
|
|
24
|
+
__exportStar(require("./types/store.types"), exports);
|
|
25
|
+
// Default in-memory store
|
|
26
|
+
var in_memory_store_1 = require("./store/in-memory.store");
|
|
27
|
+
Object.defineProperty(exports, "InMemoryStore", { enumerable: true, get: function () { return in_memory_store_1.InMemoryStore; } });
|
|
28
|
+
Object.defineProperty(exports, "createDefaultMemoryStore", { enumerable: true, get: function () { return in_memory_store_1.createDefaultMemoryStore; } });
|
|
29
|
+
// Store factory
|
|
30
|
+
var create_memory_store_1 = require("./store/create-memory-store");
|
|
31
|
+
Object.defineProperty(exports, "createMemoryStore", { enumerable: true, get: function () { return create_memory_store_1.createMemoryStore; } });
|
|
32
|
+
// Composite store
|
|
33
|
+
var composite_store_1 = require("./store/composite.store");
|
|
34
|
+
Object.defineProperty(exports, "CompositeMemoryStore", { enumerable: true, get: function () { return composite_store_1.CompositeMemoryStore; } });
|
|
35
|
+
// Adapters
|
|
36
|
+
var postgres_store_1 = require("./store/adapters/postgres.store");
|
|
37
|
+
Object.defineProperty(exports, "PostgresStore", { enumerable: true, get: function () { return postgres_store_1.PostgresStore; } });
|
|
38
|
+
var redis_store_1 = require("./store/adapters/redis.store");
|
|
39
|
+
Object.defineProperty(exports, "RedisStore", { enumerable: true, get: function () { return redis_store_1.RedisStore; } });
|
|
40
|
+
var vector_episodic_store_1 = require("./store/adapters/vector-episodic.store");
|
|
41
|
+
Object.defineProperty(exports, "VectorEpisodicStore", { enumerable: true, get: function () { return vector_episodic_store_1.VectorEpisodicStore; } });
|
|
42
|
+
// Service
|
|
43
|
+
var memory_service_1 = require("./service/memory.service");
|
|
44
|
+
Object.defineProperty(exports, "MemoryService", { enumerable: true, get: function () { return memory_service_1.MemoryService; } });
|
|
45
|
+
// Config
|
|
46
|
+
var memory_config_1 = require("./config/memory.config");
|
|
47
|
+
Object.defineProperty(exports, "DEFAULT_CATEGORY_CONFIG", { enumerable: true, get: function () { return memory_config_1.DEFAULT_CATEGORY_CONFIG; } });
|
|
48
|
+
Object.defineProperty(exports, "DEFAULT_MEMORY_SERVICE_CONFIG", { enumerable: true, get: function () { return memory_config_1.DEFAULT_MEMORY_SERVICE_CONFIG; } });
|
|
49
|
+
Object.defineProperty(exports, "getDefaultTtlForCategory", { enumerable: true, get: function () { return memory_config_1.getDefaultTtlForCategory; } });
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,QAAQ;AACR,4DAA0C;AAC1C,yDAAuC;AACvC,sDAAoC;AAKpC,0BAA0B;AAC1B,2DAIiC;AAH/B,gHAAA,aAAa,OAAA;AACb,2HAAA,wBAAwB,OAAA;AAI1B,gBAAgB;AAChB,mEAAwF;AAA/E,wHAAA,iBAAiB,OAAA;AAE1B,kBAAkB;AAClB,2DAAiG;AAAxF,uHAAA,oBAAoB,OAAA;AAE7B,WAAW;AACX,kEAA2F;AAAlF,+GAAA,aAAa,OAAA;AACtB,4DAAkF;AAAzE,yGAAA,UAAU,OAAA;AACnB,gFAIgD;AAH9C,4HAAA,mBAAmB,OAAA;AAKrB,UAAU;AACV,2DAAyD;AAAhD,+GAAA,aAAa,OAAA;AAEtB,SAAS;AACT,wDAKgC;AAJ9B,wHAAA,uBAAuB,OAAA;AACvB,8HAAA,6BAA6B,OAAA;AAC7B,yHAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prisma client for @hazeljs/memory (generated to src/generated/prisma).
|
|
3
|
+
* Use getMemoryPrismaClient() or pass your own PrismaClient to createPrismaMemoryStore().
|
|
4
|
+
*/
|
|
5
|
+
import { PrismaClient } from './generated/prisma';
|
|
6
|
+
export declare function createMemoryPrismaClient(databaseUrl?: string): PrismaClient;
|
|
7
|
+
/**
|
|
8
|
+
* Get or create the default memory Prisma client.
|
|
9
|
+
* Call createMemoryPrismaClient(url) first if you need a custom URL.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getMemoryPrismaClient(databaseUrl?: string): PrismaClient;
|
|
12
|
+
export declare function resetMemoryPrismaClient(): void;
|
|
13
|
+
//# sourceMappingURL=prisma-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prisma-client.d.ts","sourceRoot":"","sources":["../src/prisma-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,wBAAgB,wBAAwB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAU3E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAKxE;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAK9C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Prisma client for @hazeljs/memory (generated to src/generated/prisma).
|
|
4
|
+
* Use getMemoryPrismaClient() or pass your own PrismaClient to createPrismaMemoryStore().
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.createMemoryPrismaClient = createMemoryPrismaClient;
|
|
8
|
+
exports.getMemoryPrismaClient = getMemoryPrismaClient;
|
|
9
|
+
exports.resetMemoryPrismaClient = resetMemoryPrismaClient;
|
|
10
|
+
const prisma_1 = require("./generated/prisma");
|
|
11
|
+
let memoryPrismaInstance = null;
|
|
12
|
+
function createMemoryPrismaClient(databaseUrl) {
|
|
13
|
+
const url = databaseUrl ?? process.env.DATABASE_URL;
|
|
14
|
+
if (!url) {
|
|
15
|
+
throw new Error('DATABASE_URL is required. Set it in environment or pass to createMemoryPrismaClient().');
|
|
16
|
+
}
|
|
17
|
+
return new prisma_1.PrismaClient({
|
|
18
|
+
datasources: { db: { url } },
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get or create the default memory Prisma client.
|
|
23
|
+
* Call createMemoryPrismaClient(url) first if you need a custom URL.
|
|
24
|
+
*/
|
|
25
|
+
function getMemoryPrismaClient(databaseUrl) {
|
|
26
|
+
if (!memoryPrismaInstance) {
|
|
27
|
+
memoryPrismaInstance = createMemoryPrismaClient(databaseUrl);
|
|
28
|
+
}
|
|
29
|
+
return memoryPrismaInstance;
|
|
30
|
+
}
|
|
31
|
+
function resetMemoryPrismaClient() {
|
|
32
|
+
if (memoryPrismaInstance) {
|
|
33
|
+
memoryPrismaInstance.$disconnect();
|
|
34
|
+
memoryPrismaInstance = null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=prisma-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prisma-client.js","sourceRoot":"","sources":["../src/prisma-client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAMH,4DAUC;AAMD,sDAKC;AAED,0DAKC;AAhCD,+CAAkD;AAElD,IAAI,oBAAoB,GAAwB,IAAI,CAAC;AAErD,SAAgB,wBAAwB,CAAC,WAAoB;IAC3D,MAAM,GAAG,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACpD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,qBAAY,CAAC;QACtB,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,WAAoB;IACxD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,oBAAoB,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,SAAgB,uBAAuB;IACrC,IAAI,oBAAoB,EAAE,CAAC;QACzB,oBAAoB,CAAC,WAAW,EAAE,CAAC;QACnC,oBAAoB,GAAG,IAAI,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
package/dist/prisma.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prisma-backed memory store for @hazeljs/memory.
|
|
3
|
+
* Import from '@hazeljs/memory/prisma' when you want PostgreSQL persistence with Prisma.
|
|
4
|
+
* Requires @prisma/client and the memory schema applied (migrations).
|
|
5
|
+
*/
|
|
6
|
+
import type { MemoryStore } from './store/memory-store.interface';
|
|
7
|
+
import { type PrismaMemoryStoreOptions } from './store/adapters/prisma.store';
|
|
8
|
+
export declare function createPrismaMemoryStore(prisma: PrismaMemoryStoreOptions['prisma']): MemoryStore;
|
|
9
|
+
export type { PrismaMemoryStoreOptions } from './store/adapters/prisma.store';
|
|
10
|
+
export { createMemoryPrismaClient, getMemoryPrismaClient, resetMemoryPrismaClient, } from './prisma-client';
|
|
11
|
+
export { PrismaClient } from './generated/prisma';
|
|
12
|
+
//# sourceMappingURL=prisma.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../src/prisma.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEjG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,GAAG,WAAW,CAE/F;AAED,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/prisma.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Prisma-backed memory store for @hazeljs/memory.
|
|
4
|
+
* Import from '@hazeljs/memory/prisma' when you want PostgreSQL persistence with Prisma.
|
|
5
|
+
* Requires @prisma/client and the memory schema applied (migrations).
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.PrismaClient = exports.resetMemoryPrismaClient = exports.getMemoryPrismaClient = exports.createMemoryPrismaClient = void 0;
|
|
9
|
+
exports.createPrismaMemoryStore = createPrismaMemoryStore;
|
|
10
|
+
const prisma_store_1 = require("./store/adapters/prisma.store");
|
|
11
|
+
function createPrismaMemoryStore(prisma) {
|
|
12
|
+
return new prisma_store_1.PrismaMemoryStore(prisma);
|
|
13
|
+
}
|
|
14
|
+
var prisma_client_1 = require("./prisma-client");
|
|
15
|
+
Object.defineProperty(exports, "createMemoryPrismaClient", { enumerable: true, get: function () { return prisma_client_1.createMemoryPrismaClient; } });
|
|
16
|
+
Object.defineProperty(exports, "getMemoryPrismaClient", { enumerable: true, get: function () { return prisma_client_1.getMemoryPrismaClient; } });
|
|
17
|
+
Object.defineProperty(exports, "resetMemoryPrismaClient", { enumerable: true, get: function () { return prisma_client_1.resetMemoryPrismaClient; } });
|
|
18
|
+
var prisma_1 = require("./generated/prisma");
|
|
19
|
+
Object.defineProperty(exports, "PrismaClient", { enumerable: true, get: function () { return prisma_1.PrismaClient; } });
|
|
20
|
+
//# sourceMappingURL=prisma.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../src/prisma.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAKH,0DAEC;AAJD,gEAAiG;AAEjG,SAAgB,uBAAuB,CAAC,MAA0C;IAChF,OAAO,IAAI,gCAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAGD,iDAIyB;AAHvB,yHAAA,wBAAwB,OAAA;AACxB,sHAAA,qBAAqB,OAAA;AACrB,wHAAA,uBAAuB,OAAA;AAEzB,6CAAkD;AAAzC,sGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level memory API — store-agnostic service.
|
|
3
|
+
*/
|
|
4
|
+
import { MemoryCategory } from '../types/category.types';
|
|
5
|
+
import { MemoryItem, MemoryItemInput } from '../types/memory-item.types';
|
|
6
|
+
import { MemoryQuery, MemorySearchOptions, MemoryStats, PruneOptions } from '../types/store.types';
|
|
7
|
+
import { MemoryStore } from '../store/memory-store.interface';
|
|
8
|
+
import { MemoryServiceConfig } from '../config/memory.config';
|
|
9
|
+
export declare class MemoryService {
|
|
10
|
+
private readonly store;
|
|
11
|
+
private readonly config;
|
|
12
|
+
constructor(store: MemoryStore, config?: MemoryServiceConfig);
|
|
13
|
+
/**
|
|
14
|
+
* Initialize the underlying store.
|
|
15
|
+
*/
|
|
16
|
+
initialize(): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Save a memory item (generates id and timestamps if omitted).
|
|
19
|
+
*/
|
|
20
|
+
save(input: MemoryItemInput): Promise<MemoryItem>;
|
|
21
|
+
/**
|
|
22
|
+
* Get a memory item by id.
|
|
23
|
+
*/
|
|
24
|
+
get(id: string): Promise<MemoryItem | null>;
|
|
25
|
+
/**
|
|
26
|
+
* Query memory items with filters.
|
|
27
|
+
*/
|
|
28
|
+
query(options: MemoryQuery): Promise<MemoryItem[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Get memories by user and category.
|
|
31
|
+
*/
|
|
32
|
+
getByUserAndCategory(userId: string, category: MemoryCategory, options?: {
|
|
33
|
+
limit?: number;
|
|
34
|
+
offset?: number;
|
|
35
|
+
orderBy?: 'createdAt' | 'updatedAt';
|
|
36
|
+
order?: 'asc' | 'desc';
|
|
37
|
+
}): Promise<MemoryItem[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Update an existing memory. If explicitOverInferred is true, explicit source overrides inferred.
|
|
40
|
+
*/
|
|
41
|
+
update(id: string, updates: Partial<MemoryItem>): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Delete a memory item.
|
|
44
|
+
*/
|
|
45
|
+
delete(id: string): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Increment access count and updatedAt.
|
|
48
|
+
*/
|
|
49
|
+
incrementAccess(id: string): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Search memories (text or vector). No-op if store does not support search.
|
|
52
|
+
*/
|
|
53
|
+
search(query: string | number[], options: MemorySearchOptions): Promise<MemoryItem[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Get memory statistics.
|
|
56
|
+
*/
|
|
57
|
+
getStats(userId?: string): Promise<MemoryStats>;
|
|
58
|
+
/**
|
|
59
|
+
* Prune expired, old, or low-confidence items.
|
|
60
|
+
*/
|
|
61
|
+
prune(options?: PruneOptions): Promise<number>;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=memory.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.service.d.ts","sourceRoot":"","sources":["../../src/service/memory.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EACL,mBAAmB,EAGpB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE3C,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,mBAAmB;IAK5D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAgCvD;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIjD;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIxD;;OAEG;IACG,oBAAoB,CACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;QACpC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KACxB,GACA,OAAO,CAAC,UAAU,EAAE,CAAC;IAYxB;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrE;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAShD;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAK3F;;OAEG;IACG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrD;;OAEG;IACG,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;CAGrD"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* High-level memory API — store-agnostic service.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MemoryService = void 0;
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
8
|
+
const category_types_1 = require("../types/category.types");
|
|
9
|
+
const memory_config_1 = require("../config/memory.config");
|
|
10
|
+
class MemoryService {
|
|
11
|
+
constructor(store, config) {
|
|
12
|
+
this.store = store;
|
|
13
|
+
this.config = { ...memory_config_1.DEFAULT_MEMORY_SERVICE_CONFIG, ...config };
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Initialize the underlying store.
|
|
17
|
+
*/
|
|
18
|
+
async initialize() {
|
|
19
|
+
await this.store.initialize();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Save a memory item (generates id and timestamps if omitted).
|
|
23
|
+
*/
|
|
24
|
+
async save(input) {
|
|
25
|
+
const now = new Date();
|
|
26
|
+
let expiresAt = input.expiresAt;
|
|
27
|
+
if (input.category === category_types_1.MemoryCategory.EMOTIONAL &&
|
|
28
|
+
expiresAt == null &&
|
|
29
|
+
(0, memory_config_1.getDefaultTtlForCategory)(category_types_1.MemoryCategory.EMOTIONAL)) {
|
|
30
|
+
expiresAt = new Date(Date.now() +
|
|
31
|
+
(this.config.defaultEmotionalTtlMs ?? (0, memory_config_1.getDefaultTtlForCategory)(category_types_1.MemoryCategory.EMOTIONAL)));
|
|
32
|
+
}
|
|
33
|
+
const item = {
|
|
34
|
+
id: input.id ?? (0, crypto_1.randomUUID)(),
|
|
35
|
+
userId: input.userId,
|
|
36
|
+
category: input.category,
|
|
37
|
+
key: input.key,
|
|
38
|
+
value: input.value,
|
|
39
|
+
confidence: input.confidence,
|
|
40
|
+
source: input.source,
|
|
41
|
+
evidence: input.evidence ?? [],
|
|
42
|
+
createdAt: now,
|
|
43
|
+
updatedAt: now,
|
|
44
|
+
expiresAt,
|
|
45
|
+
accessCount: input.accessCount ?? 0,
|
|
46
|
+
sessionId: input.sessionId,
|
|
47
|
+
};
|
|
48
|
+
const id = await this.store.save(item);
|
|
49
|
+
return { ...item, id };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get a memory item by id.
|
|
53
|
+
*/
|
|
54
|
+
async get(id) {
|
|
55
|
+
return this.store.get(id);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Query memory items with filters.
|
|
59
|
+
*/
|
|
60
|
+
async query(options) {
|
|
61
|
+
return this.store.query(options);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get memories by user and category.
|
|
65
|
+
*/
|
|
66
|
+
async getByUserAndCategory(userId, category, options) {
|
|
67
|
+
return this.store.query({
|
|
68
|
+
userId,
|
|
69
|
+
category,
|
|
70
|
+
notExpired: true,
|
|
71
|
+
limit: options?.limit ?? 100,
|
|
72
|
+
offset: options?.offset ?? 0,
|
|
73
|
+
orderBy: options?.orderBy ?? 'updatedAt',
|
|
74
|
+
order: options?.order ?? 'desc',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Update an existing memory. If explicitOverInferred is true, explicit source overrides inferred.
|
|
79
|
+
*/
|
|
80
|
+
async update(id, updates) {
|
|
81
|
+
const existing = await this.store.get(id);
|
|
82
|
+
if (!existing)
|
|
83
|
+
return;
|
|
84
|
+
if (this.config.explicitOverInferred &&
|
|
85
|
+
updates.source === 'inferred' &&
|
|
86
|
+
existing.source === 'explicit') {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
await this.store.update(id, {
|
|
90
|
+
...updates,
|
|
91
|
+
updatedAt: new Date(),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Delete a memory item.
|
|
96
|
+
*/
|
|
97
|
+
async delete(id) {
|
|
98
|
+
await this.store.delete(id);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Increment access count and updatedAt.
|
|
102
|
+
*/
|
|
103
|
+
async incrementAccess(id) {
|
|
104
|
+
const item = await this.store.get(id);
|
|
105
|
+
if (!item)
|
|
106
|
+
return;
|
|
107
|
+
await this.store.update(id, {
|
|
108
|
+
accessCount: item.accessCount + 1,
|
|
109
|
+
updatedAt: new Date(),
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Search memories (text or vector). No-op if store does not support search.
|
|
114
|
+
*/
|
|
115
|
+
async search(query, options) {
|
|
116
|
+
if (typeof this.store.search !== 'function')
|
|
117
|
+
return [];
|
|
118
|
+
return this.store.search(query, options);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get memory statistics.
|
|
122
|
+
*/
|
|
123
|
+
async getStats(userId) {
|
|
124
|
+
return this.store.getStats(userId);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Prune expired, old, or low-confidence items.
|
|
128
|
+
*/
|
|
129
|
+
async prune(options) {
|
|
130
|
+
return this.store.prune(options);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.MemoryService = MemoryService;
|
|
134
|
+
//# sourceMappingURL=memory.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../src/service/memory.service.ts"],"names":[],"mappings":"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"}
|