@sonamu-kit/ai-agent-memory 0.1.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.
@@ -0,0 +1,7 @@
1
+ import { type MemoryContextProvider, type MemoryStore } from "./types";
2
+ /**
3
+ * 앱이 제공한 MemoryStore를 agent가 읽을 수 있는 context provider로 감쌉니다.
4
+ * runner가 system prompt나 tool 호출 전에 현재 scope의 메모리를 주입할 때 씁니다.
5
+ */
6
+ export declare function createMemoryContextProvider(store: MemoryStore): MemoryContextProvider;
7
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,GAAG,qBAAqB,CAYrF"}
@@ -0,0 +1,16 @@
1
+ //#region src/context.ts
2
+ /**
3
+ * 앱이 제공한 MemoryStore를 agent가 읽을 수 있는 context provider로 감쌉니다.
4
+ * runner가 system prompt나 tool 호출 전에 현재 scope의 메모리를 주입할 때 씁니다.
5
+ */
6
+ function createMemoryContextProvider(store) {
7
+ return { getContext: async (input = {}) => {
8
+ const result = await store.list(input.query ?? { scope: input.scope });
9
+ if (Array.isArray(result)) return result;
10
+ return result.entries;
11
+ } };
12
+ }
13
+ //#endregion
14
+ export { createMemoryContextProvider };
15
+
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIE1lbW9yeUNvbnRleHRQcm92aWRlcixcbiAgdHlwZSBNZW1vcnlDb250ZXh0UHJvdmlkZXJJbnB1dCxcbiAgdHlwZSBNZW1vcnlTdG9yZSxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiDslbHsnbQg7KCc6rO17ZWcIE1lbW9yeVN0b3Jl66W8IGFnZW506rCAIOydveydhCDsiJgg7J6I64qUIGNvbnRleHQgcHJvdmlkZXLroZwg6rCQ7IyJ64uI64ukLlxuICogcnVubmVy6rCAIHN5c3RlbSBwcm9tcHTrgpggdG9vbCDtmLjstpwg7KCE7JeQIO2YhOyerCBzY29wZeydmCDrqZTrqqjrpqzrpbwg7KO87J6F7ZWgIOuVjCDslIHri4jri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZW1vcnlDb250ZXh0UHJvdmlkZXIoc3RvcmU6IE1lbW9yeVN0b3JlKTogTWVtb3J5Q29udGV4dFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBnZXRDb250ZXh0OiBhc3luYyAoaW5wdXQ6IE1lbW9yeUNvbnRleHRQcm92aWRlcklucHV0ID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JlLmxpc3QoaW5wdXQucXVlcnkgPz8geyBzY29wZTogaW5wdXQuc2NvcGUgfSk7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdC5lbnRyaWVzO1xuICAgIH0sXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBVUEsU0FBZ0IsNEJBQTRCLE9BQTJDO0NBQ3JGLE9BQU8sRUFDTCxZQUFZLE9BQU8sUUFBb0MsQ0FBQyxNQUFNO0VBQzVELE1BQU0sU0FBUyxNQUFNLE1BQU0sS0FBSyxNQUFNLFNBQVMsRUFBRSxPQUFPLE1BQU0sTUFBTSxDQUFDO0VBRXJFLElBQUksTUFBTSxRQUFRLE1BQU0sR0FDdEIsT0FBTztFQUdULE9BQU8sT0FBTztDQUNoQixFQUNGO0FBQ0YifQ==
@@ -0,0 +1,4 @@
1
+ export { createMemoryContextProvider } from "./context";
2
+ export { createMemorySynthesizer } from "./synthesizer";
3
+ export type * from "./types";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,mBAAmB,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ import { createMemoryContextProvider } from "./context.js";
2
+ import { createMemorySynthesizer } from "./synthesizer.js";
3
+ export { createMemoryContextProvider, createMemorySynthesizer };
@@ -0,0 +1,7 @@
1
+ import { type MemorySynthesizer, type MemorySynthesizerOptions } from "./types";
2
+ /**
3
+ * redacted source를 모델로 합성하고, 결과를 store와 log writer에 반영합니다.
4
+ * background workflow가 batch memory update를 실행할 때 쓰는 core entrypoint입니다.
5
+ */
6
+ export declare function createMemorySynthesizer(options: MemorySynthesizerOptions): MemorySynthesizer;
7
+ //# sourceMappingURL=synthesizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synthesizer.d.ts","sourceRoot":"","sources":["../src/synthesizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC9B,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAwB5F"}
@@ -0,0 +1,59 @@
1
+ //#region src/synthesizer.ts
2
+ /**
3
+ * redacted source를 모델로 합성하고, 결과를 store와 log writer에 반영합니다.
4
+ * background workflow가 batch memory update를 실행할 때 쓰는 core entrypoint입니다.
5
+ */
6
+ function createMemorySynthesizer(options) {
7
+ return { synthesize: async (input) => {
8
+ const sources = await redactSources(input, options);
9
+ const redactedInput = {
10
+ ...input,
11
+ sources
12
+ };
13
+ const result = await options.model.synthesize(redactedInput);
14
+ await Promise.all(result.entries.map((entry) => options.store.upsert(entry)));
15
+ await Promise.all(result.diff.filter((diff) => diff.action === "delete" && diff.memoryId !== void 0).map((diff) => options.store.delete(diff.scope, diff.memoryId)));
16
+ if (options.logWriter) await options.logWriter.write(createLog(redactedInput, result));
17
+ return result;
18
+ } };
19
+ }
20
+ /**
21
+ * caller가 주입한 redactor를 모든 source에 적용합니다.
22
+ * core가 도메인별 개인정보 정책을 알지 않고도 모델 입력과 로그를 정리할 때 씁니다.
23
+ */
24
+ async function redactSources(input, options) {
25
+ if (!options.redactor) return input.sources;
26
+ const { redactor } = options;
27
+ return Promise.all(input.sources.map(async (source) => {
28
+ const redacted = await redactor.redact({
29
+ metadata: source.metadata,
30
+ sourceReference: source.reference,
31
+ text: source.text
32
+ });
33
+ return {
34
+ ...source,
35
+ metadata: redacted.metadata ?? source.metadata,
36
+ reference: redacted.sourceReference ?? source.reference,
37
+ text: redacted.text
38
+ };
39
+ }));
40
+ }
41
+ /**
42
+ * 합성 결과를 내부 추적 로그 형태로 축약합니다.
43
+ * 원문 source text 없이 source reference와 diff만 저장해야 할 때 씁니다.
44
+ */
45
+ function createLog(input, result) {
46
+ return {
47
+ actor: input.actor,
48
+ diff: result.diff,
49
+ eventType: input.eventType,
50
+ metadata: result.metadata,
51
+ sourceReferences: input.sources.map((source) => source.reference),
52
+ summary: result.summary,
53
+ usage: result.usage
54
+ };
55
+ }
56
+ //#endregion
57
+ export { createMemorySynthesizer };
58
+
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGhlc2l6ZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3N5bnRoZXNpemVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgTWVtb3J5RGlmZixcbiAgdHlwZSBNZW1vcnlTb3VyY2UsXG4gIHR5cGUgTWVtb3J5U3ludGhlc2lzSW5wdXQsXG4gIHR5cGUgTWVtb3J5U3ludGhlc2lzTG9nLFxuICB0eXBlIE1lbW9yeVN5bnRoZXNpc1Jlc3VsdCxcbiAgdHlwZSBNZW1vcnlTeW50aGVzaXplcixcbiAgdHlwZSBNZW1vcnlTeW50aGVzaXplck9wdGlvbnMsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogcmVkYWN0ZWQgc291cmNl66W8IOuqqOuNuOuhnCDtlanshLHtlZjqs6AsIOqysOqzvOulvCBzdG9yZeyZgCBsb2cgd3JpdGVy7JeQIOuwmOyYge2VqeuLiOuLpC5cbiAqIGJhY2tncm91bmQgd29ya2Zsb3fqsIAgYmF0Y2ggbWVtb3J5IHVwZGF0ZeulvCDsi6TtlontlaAg65WMIOyTsOuKlCBjb3JlIGVudHJ5cG9pbnTsnoXri4jri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZW1vcnlTeW50aGVzaXplcihvcHRpb25zOiBNZW1vcnlTeW50aGVzaXplck9wdGlvbnMpOiBNZW1vcnlTeW50aGVzaXplciB7XG4gIHJldHVybiB7XG4gICAgc3ludGhlc2l6ZTogYXN5bmMgKGlucHV0KSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VzID0gYXdhaXQgcmVkYWN0U291cmNlcyhpbnB1dCwgb3B0aW9ucyk7XG4gICAgICBjb25zdCByZWRhY3RlZElucHV0ID0geyAuLi5pbnB1dCwgc291cmNlcyB9O1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgb3B0aW9ucy5tb2RlbC5zeW50aGVzaXplKHJlZGFjdGVkSW5wdXQpO1xuXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChyZXN1bHQuZW50cmllcy5tYXAoKGVudHJ5KSA9PiBvcHRpb25zLnN0b3JlLnVwc2VydChlbnRyeSkpKTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICByZXN1bHQuZGlmZlxuICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAoZGlmZik6IGRpZmYgaXMgTWVtb3J5RGlmZiAmIHsgbWVtb3J5SWQ6IHN0cmluZyB9ID0+XG4gICAgICAgICAgICAgIGRpZmYuYWN0aW9uID09PSBcImRlbGV0ZVwiICYmIGRpZmYubWVtb3J5SWQgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcCgoZGlmZikgPT4gb3B0aW9ucy5zdG9yZS5kZWxldGUoZGlmZi5zY29wZSwgZGlmZi5tZW1vcnlJZCkpLFxuICAgICAgKTtcblxuICAgICAgaWYgKG9wdGlvbnMubG9nV3JpdGVyKSB7XG4gICAgICAgIGF3YWl0IG9wdGlvbnMubG9nV3JpdGVyLndyaXRlKGNyZWF0ZUxvZyhyZWRhY3RlZElucHV0LCByZXN1bHQpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIGNhbGxlcuqwgCDso7zsnoXtlZwgcmVkYWN0b3Lrpbwg66qo65OgIHNvdXJjZeyXkCDsoIHsmqntlanri4jri6QuXG4gKiBjb3Jl6rCAIOuPhOuplOyduOuzhCDqsJzsnbjsoJXrs7Qg7KCV7LGF7J2EIOyVjOyngCDslYrqs6Drj4Qg66qo6424IOyeheugpeqzvCDroZzqt7jrpbwg7KCV66as7ZWgIOuVjCDslIHri4jri6QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlZGFjdFNvdXJjZXMoXG4gIGlucHV0OiBNZW1vcnlTeW50aGVzaXNJbnB1dCxcbiAgb3B0aW9uczogTWVtb3J5U3ludGhlc2l6ZXJPcHRpb25zLFxuKTogUHJvbWlzZTxNZW1vcnlTb3VyY2VbXT4ge1xuICBpZiAoIW9wdGlvbnMucmVkYWN0b3IpIHtcbiAgICByZXR1cm4gaW5wdXQuc291cmNlcztcbiAgfVxuICBjb25zdCB7IHJlZGFjdG9yIH0gPSBvcHRpb25zO1xuXG4gIHJldHVybiBQcm9taXNlLmFsbChcbiAgICBpbnB1dC5zb3VyY2VzLm1hcChhc3luYyAoc291cmNlKSA9PiB7XG4gICAgICAvLyDrr7zqsJDsoJXrs7Qg7KCc6rGwIOygleyxheydgCDtmLjstpzsnpDqsIAg7KO87J6F7ZWY6rOgLCBjb3Jl64qUIOqysOqzvOunjCDsoITri6ztlanri4jri6QuXG4gICAgICBjb25zdCByZWRhY3RlZCA9IGF3YWl0IHJlZGFjdG9yLnJlZGFjdCh7XG4gICAgICAgIG1ldGFkYXRhOiBzb3VyY2UubWV0YWRhdGEsXG4gICAgICAgIHNvdXJjZVJlZmVyZW5jZTogc291cmNlLnJlZmVyZW5jZSxcbiAgICAgICAgdGV4dDogc291cmNlLnRleHQsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnNvdXJjZSxcbiAgICAgICAgbWV0YWRhdGE6IHJlZGFjdGVkLm1ldGFkYXRhID8/IHNvdXJjZS5tZXRhZGF0YSxcbiAgICAgICAgcmVmZXJlbmNlOiByZWRhY3RlZC5zb3VyY2VSZWZlcmVuY2UgPz8gc291cmNlLnJlZmVyZW5jZSxcbiAgICAgICAgdGV4dDogcmVkYWN0ZWQudGV4dCxcbiAgICAgIH07XG4gICAgfSksXG4gICk7XG59XG5cbi8qKlxuICog7ZWp7ISxIOqysOqzvOulvCDrgrTrtoAg7LaU7KCBIOuhnOq3uCDtmJXtg5zroZwg7LaV7JW97ZWp64uI64ukLlxuICog7JuQ66y4IHNvdXJjZSB0ZXh0IOyXhuydtCBzb3VyY2UgcmVmZXJlbmNl7JmAIGRpZmbrp4wg7KCA7J6l7ZW07JW8IO2VoCDrlYwg7JSB64uI64ukLlxuICovXG5mdW5jdGlvbiBjcmVhdGVMb2coaW5wdXQ6IE1lbW9yeVN5bnRoZXNpc0lucHV0LCByZXN1bHQ6IE1lbW9yeVN5bnRoZXNpc1Jlc3VsdCk6IE1lbW9yeVN5bnRoZXNpc0xvZyB7XG4gIHJldHVybiB7XG4gICAgYWN0b3I6IGlucHV0LmFjdG9yLFxuICAgIGRpZmY6IHJlc3VsdC5kaWZmLFxuICAgIGV2ZW50VHlwZTogaW5wdXQuZXZlbnRUeXBlLFxuICAgIG1ldGFkYXRhOiByZXN1bHQubWV0YWRhdGEsXG4gICAgLy8g66Gc6re47JeQ64qUIOybkOusuCDrjIDsi6AgcmVkYWN0aW9u7J20IOuBneuCnCBzb3VyY2UgcmVmZXJlbmNl66eMIOuCqOq5geuLiOuLpC5cbiAgICBzb3VyY2VSZWZlcmVuY2VzOiBpbnB1dC5zb3VyY2VzLm1hcCgoc291cmNlKSA9PiBzb3VyY2UucmVmZXJlbmNlKSxcbiAgICBzdW1tYXJ5OiByZXN1bHQuc3VtbWFyeSxcbiAgICB1c2FnZTogcmVzdWx0LnVzYWdlLFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQWNBLFNBQWdCLHdCQUF3QixTQUFzRDtDQUM1RixPQUFPLEVBQ0wsWUFBWSxPQUFPLFVBQVU7RUFDM0IsTUFBTSxVQUFVLE1BQU0sY0FBYyxPQUFPLE9BQU87RUFDbEQsTUFBTSxnQkFBZ0I7R0FBRSxHQUFHO0dBQU87RUFBUTtFQUMxQyxNQUFNLFNBQVMsTUFBTSxRQUFRLE1BQU0sV0FBVyxhQUFhO0VBRTNELE1BQU0sUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFVBQVUsUUFBUSxNQUFNLE9BQU8sS0FBSyxDQUFDLENBQUM7RUFDNUUsTUFBTSxRQUFRLElBQ1osT0FBTyxLQUNKLFFBQ0UsU0FDQyxLQUFLLFdBQVcsWUFBWSxLQUFLLGFBQWEsTUFDbEQsQ0FBQyxDQUNBLEtBQUssU0FBUyxRQUFRLE1BQU0sT0FBTyxLQUFLLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FDbEU7RUFFQSxJQUFJLFFBQVEsV0FDVixNQUFNLFFBQVEsVUFBVSxNQUFNLFVBQVUsZUFBZSxNQUFNLENBQUM7RUFHaEUsT0FBTztDQUNULEVBQ0Y7QUFDRjs7Ozs7QUFNQSxlQUFlLGNBQ2IsT0FDQSxTQUN5QjtDQUN6QixJQUFJLENBQUMsUUFBUSxVQUNYLE9BQU8sTUFBTTtDQUVmLE1BQU0sRUFBRSxhQUFhO0NBRXJCLE9BQU8sUUFBUSxJQUNiLE1BQU0sUUFBUSxJQUFJLE9BQU8sV0FBVztFQUVsQyxNQUFNLFdBQVcsTUFBTSxTQUFTLE9BQU87R0FDckMsVUFBVSxPQUFPO0dBQ2pCLGlCQUFpQixPQUFPO0dBQ3hCLE1BQU0sT0FBTztFQUNmLENBQUM7RUFDRCxPQUFPO0dBQ0wsR0FBRztHQUNILFVBQVUsU0FBUyxZQUFZLE9BQU87R0FDdEMsV0FBVyxTQUFTLG1CQUFtQixPQUFPO0dBQzlDLE1BQU0sU0FBUztFQUNqQjtDQUNGLENBQUMsQ0FDSDtBQUNGOzs7OztBQU1BLFNBQVMsVUFBVSxPQUE2QixRQUFtRDtDQUNqRyxPQUFPO0VBQ0wsT0FBTyxNQUFNO0VBQ2IsTUFBTSxPQUFPO0VBQ2IsV0FBVyxNQUFNO0VBQ2pCLFVBQVUsT0FBTztFQUVqQixrQkFBa0IsTUFBTSxRQUFRLEtBQUssV0FBVyxPQUFPLFNBQVM7RUFDaEUsU0FBUyxPQUFPO0VBQ2hCLE9BQU8sT0FBTztDQUNoQjtBQUNGIn0=
@@ -0,0 +1,129 @@
1
+ export type MemoryScopeKey = string;
2
+ export interface MemoryScope {
3
+ key: MemoryScopeKey;
4
+ metadata?: MemoryMetadata;
5
+ }
6
+ export type MemoryMetadata = null | string | number | boolean | MemoryMetadata[] | {
7
+ readonly [key: string]: MemoryMetadata;
8
+ };
9
+ export interface SourceReference {
10
+ id: string;
11
+ type?: string;
12
+ metadata?: MemoryMetadata;
13
+ }
14
+ export interface MemorySource {
15
+ reference: SourceReference;
16
+ text: string;
17
+ metadata?: MemoryMetadata;
18
+ }
19
+ export interface MemoryActor {
20
+ id: string;
21
+ type?: string;
22
+ metadata?: MemoryMetadata;
23
+ }
24
+ export interface MemoryUsage {
25
+ inputTokens?: number;
26
+ outputTokens?: number;
27
+ totalTokens?: number;
28
+ raw?: unknown;
29
+ }
30
+ export type MemoryDiffAction = "upsert" | "delete" | "noop";
31
+ export interface MemoryDiff {
32
+ action: MemoryDiffAction;
33
+ scope: MemoryScope;
34
+ memoryId?: string;
35
+ content?: string;
36
+ reason?: string;
37
+ metadata?: MemoryMetadata;
38
+ }
39
+ export interface MemoryEntry {
40
+ id?: string;
41
+ scope: MemoryScope;
42
+ content: string;
43
+ metadata?: MemoryMetadata;
44
+ sourceReferences?: SourceReference[];
45
+ createdAt?: Date;
46
+ updatedAt?: Date;
47
+ }
48
+ export interface MemoryQuery {
49
+ scope?: MemoryScope;
50
+ limit?: number;
51
+ cursor?: string;
52
+ metadata?: MemoryMetadata;
53
+ }
54
+ export interface MemoryListResult {
55
+ entries: MemoryEntry[];
56
+ cursor?: string;
57
+ }
58
+ export interface MemoryStore {
59
+ get(scope: MemoryScope, id: string): Promise<MemoryEntry | undefined>;
60
+ list(query?: MemoryQuery): Promise<MemoryListResult | MemoryEntry[]>;
61
+ upsert(entry: MemoryEntry): Promise<MemoryEntry>;
62
+ delete(scope: MemoryScope, id: string): Promise<void>;
63
+ }
64
+ export interface MemoryRedactionInput {
65
+ text: string;
66
+ sourceReference: SourceReference;
67
+ metadata?: MemoryMetadata;
68
+ }
69
+ export interface MemoryRedactionResult {
70
+ text: string;
71
+ metadata?: MemoryMetadata;
72
+ sourceReference?: SourceReference;
73
+ }
74
+ export interface MemoryRedactor {
75
+ redact(input: MemoryRedactionInput): Promise<MemoryRedactionResult>;
76
+ }
77
+ export interface MemorySynthesisInput {
78
+ eventType: string;
79
+ sources: MemorySource[];
80
+ actor?: MemoryActor;
81
+ scope?: MemoryScope;
82
+ metadata?: MemoryMetadata;
83
+ }
84
+ export interface RedactedMemorySynthesisInput {
85
+ eventType: string;
86
+ sources: MemorySource[];
87
+ actor?: MemoryActor;
88
+ scope?: MemoryScope;
89
+ metadata?: MemoryMetadata;
90
+ }
91
+ export interface MemorySynthesisResult {
92
+ entries: MemoryEntry[];
93
+ summary: string;
94
+ diff: MemoryDiff[];
95
+ usage?: MemoryUsage;
96
+ metadata?: MemoryMetadata;
97
+ }
98
+ export interface MemorySynthesisModelAdapter {
99
+ synthesize(input: RedactedMemorySynthesisInput): Promise<MemorySynthesisResult>;
100
+ }
101
+ export interface MemorySynthesisLog {
102
+ eventType: string;
103
+ sourceReferences: SourceReference[];
104
+ actor?: MemoryActor;
105
+ summary: string;
106
+ diff: MemoryDiff[];
107
+ usage?: MemoryUsage;
108
+ metadata?: MemoryMetadata;
109
+ }
110
+ export interface MemorySynthesisLogWriter {
111
+ write(log: MemorySynthesisLog): Promise<void>;
112
+ }
113
+ export interface MemorySynthesizer {
114
+ synthesize(input: MemorySynthesisInput): Promise<MemorySynthesisResult>;
115
+ }
116
+ export interface MemorySynthesizerOptions {
117
+ model: MemorySynthesisModelAdapter;
118
+ store: MemoryStore;
119
+ redactor?: MemoryRedactor;
120
+ logWriter?: MemorySynthesisLogWriter;
121
+ }
122
+ export interface MemoryContextProviderInput {
123
+ query?: MemoryQuery;
124
+ scope?: MemoryScope;
125
+ }
126
+ export interface MemoryContextProvider {
127
+ getContext(input?: MemoryContextProviderInput): Promise<MemoryEntry[]>;
128
+ }
129
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@sonamu-kit/ai-agent-memory",
3
+ "version": "0.1.0",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "git+https://github.com/cartanova-ai/sonamu-ai.git",
7
+ "directory": "packages/agent-memory"
8
+ },
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "type": "module",
13
+ "exports": {
14
+ ".": {
15
+ "import": "./dist/index.js",
16
+ "types": "./dist/index.d.ts"
17
+ }
18
+ },
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "devDependencies": {
23
+ "@types/node": "25.0.7",
24
+ "tsdown": "^0.22.3",
25
+ "typescript": "^6.0.3",
26
+ "vitest": "^4.1.9"
27
+ },
28
+ "engines": {
29
+ "node": ">=20.19.0"
30
+ },
31
+ "scripts": {
32
+ "build": "tsdown && tsc --emitDeclarationOnly",
33
+ "typecheck": "tsc --noEmit",
34
+ "test": "vitest run"
35
+ }
36
+ }