mnemocyte 0.4.0 → 0.5.1
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/README.md +117 -136
- package/dist/embedders/index.mjs +1 -2
- package/dist/embedders/openai.d.mts +3 -8
- package/dist/embedders/openai.mjs +3 -4
- package/dist/embedders/openai.mjs.map +1 -1
- package/dist/{errors-B_7ZdjEO.mjs → errors-Dgt2nAs1.mjs} +2 -3
- package/dist/{errors-B_7ZdjEO.mjs.map → errors-Dgt2nAs1.mjs.map} +1 -1
- package/dist/index.d.mts +16 -20
- package/dist/index.mjs +180 -1302
- package/dist/index.mjs.map +1 -1
- package/dist/postgres-BDti0rrm.mjs +904 -0
- package/dist/postgres-BDti0rrm.mjs.map +1 -0
- package/dist/postgres-runtime-51fQVwqa.mjs +8 -0
- package/dist/postgres-runtime-51fQVwqa.mjs.map +1 -0
- package/dist/store-config-BZ4J1hrM.mjs +304 -0
- package/dist/store-config-BZ4J1hrM.mjs.map +1 -0
- package/dist/stores/drizzle.d.mts +13 -0
- package/dist/stores/drizzle.mjs +19 -0
- package/dist/stores/drizzle.mjs.map +1 -0
- package/dist/{types-DH0inEay.d.mts → types-DXYtLiOT.d.mts} +37 -16
- package/migrations/fresh-install.sql +43 -0
- package/package.json +24 -17
- package/dist/embedders/openai.d.mts.map +0 -1
- package/dist/index.d.mts.map +0 -1
- package/dist/types-DH0inEay.d.mts.map +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/types.d.ts
|
|
2
1
|
/**
|
|
3
2
|
* Discriminator describing what kind of memory a {@link Memory} represents.
|
|
4
3
|
*
|
|
@@ -43,8 +42,9 @@ interface JsonObject {
|
|
|
43
42
|
/**
|
|
44
43
|
* Identifies which backend a {@link MnemocyteClient} is using.
|
|
45
44
|
*
|
|
46
|
-
* Selected automatically by {@link createMnemocyte}
|
|
47
|
-
* {@link MnemocyteConfig.
|
|
45
|
+
* Selected automatically by {@link createMnemocyte} from the configured
|
|
46
|
+
* {@link MnemocyteConfig.store} or {@link MnemocyteConfig.databaseUrl}, with
|
|
47
|
+
* in-memory storage used when neither is supplied.
|
|
48
48
|
*/
|
|
49
49
|
type MnemocyteBackend = "in-memory" | "postgres";
|
|
50
50
|
/**
|
|
@@ -141,6 +141,17 @@ interface ProviderResilienceConfig {
|
|
|
141
141
|
*/
|
|
142
142
|
shouldRetry?: (error: unknown, attempt: number) => boolean;
|
|
143
143
|
}
|
|
144
|
+
declare const mnemocyteStoreConfigBrand: unique symbol;
|
|
145
|
+
/**
|
|
146
|
+
* Opaque storage-adapter value accepted by {@link MnemocyteConfig.store}.
|
|
147
|
+
*
|
|
148
|
+
* Obtain this value from a supported adapter factory such as `drizzleStore()`
|
|
149
|
+
* from `mnemocyte/stores/drizzle`. The underlying `MemoryStore` contract stays
|
|
150
|
+
* internal; this type intentionally exposes no adapter implementation methods.
|
|
151
|
+
*/
|
|
152
|
+
interface MnemocyteStoreConfig {
|
|
153
|
+
readonly [mnemocyteStoreConfigBrand]: true;
|
|
154
|
+
}
|
|
144
155
|
/**
|
|
145
156
|
* Configuration passed to {@link createMnemocyte}.
|
|
146
157
|
*/
|
|
@@ -151,14 +162,23 @@ interface MnemocyteConfig {
|
|
|
151
162
|
* with `mnemocyte_meta.embedding_dimensions` matching the embedder and
|
|
152
163
|
* `embedding_model` metadata available). Must use the `postgres:` or
|
|
153
164
|
* `postgresql:` protocol.
|
|
154
|
-
*
|
|
165
|
+
* Cannot be combined with {@link MnemocyteConfig.store}. When both storage
|
|
166
|
+
* fields are omitted, an in-memory backend is used.
|
|
155
167
|
*/
|
|
156
168
|
databaseUrl?: string;
|
|
169
|
+
/**
|
|
170
|
+
* Caller-supplied storage adapter. Use `drizzleStore(db)` from
|
|
171
|
+
* `mnemocyte/stores/drizzle` for a caller-owned postgres.js Drizzle instance.
|
|
172
|
+
* Cannot be combined with {@link MnemocyteConfig.databaseUrl}.
|
|
173
|
+
*/
|
|
174
|
+
store?: MnemocyteStoreConfig;
|
|
157
175
|
/** Required embedder used to vectorise content for storage and retrieval. */
|
|
158
176
|
embedder: Embedder;
|
|
159
177
|
/** Default values applied to {@link RecallInput} when properties are omitted. */
|
|
160
178
|
defaults?: {
|
|
161
|
-
/** Default `limit` for {@link MnemocyteClient.recall}. */
|
|
179
|
+
/** Default `limit` for {@link MnemocyteClient.recall}. */
|
|
180
|
+
limit?: number;
|
|
181
|
+
/** Default `minScore` cutoff for {@link MnemocyteClient.recall}. */
|
|
162
182
|
minScore?: number;
|
|
163
183
|
};
|
|
164
184
|
/** Retrieval-ranking tuning. See {@link RetrievalConfig}. */
|
|
@@ -697,12 +717,14 @@ interface ConsolidateInput {
|
|
|
697
717
|
* Memories to mark as superseded by the survivor. Entries already
|
|
698
718
|
* superseded by this same survivor are skipped for idempotency. If any
|
|
699
719
|
* entry points to a different survivor, the entire call rejects with
|
|
700
|
-
* `"CONFLICT"`. Must not contain
|
|
720
|
+
* `"CONFLICT"`. Must not contain duplicates or
|
|
721
|
+
* {@link ConsolidateInput.survivorId}.
|
|
701
722
|
*/
|
|
702
723
|
supersededIds: readonly string[];
|
|
703
724
|
/**
|
|
704
725
|
* When `true`, the survivor's `tags` becomes the union of its own
|
|
705
|
-
* tags and the tags of every memory that was actually
|
|
726
|
+
* mutation-time tags and the tags of every memory that was actually
|
|
727
|
+
* superseded.
|
|
706
728
|
* @defaultValue `true`
|
|
707
729
|
*/
|
|
708
730
|
mergeTags?: boolean;
|
|
@@ -931,15 +953,16 @@ interface ExperimentalMnemocyteClient {
|
|
|
931
953
|
*
|
|
932
954
|
* @experimental Part of Phase 6 (consolidation tooling). API may change.
|
|
933
955
|
*
|
|
934
|
-
* @throws {MnemocyteError} `"VALIDATION"` for empty
|
|
935
|
-
* a `survivorId` that also appears in `supersededIds`, or
|
|
936
|
-
* that is itself already superseded.
|
|
956
|
+
* @throws {MnemocyteError} `"VALIDATION"` for empty or duplicate
|
|
957
|
+
* `supersededIds`, a `survivorId` that also appears in `supersededIds`, or
|
|
958
|
+
* a survivor that is itself already superseded.
|
|
937
959
|
* @throws {MnemocyteError} `"NOT_FOUND"` if the survivor or any
|
|
938
960
|
* memory in `supersededIds` does not belong to `entityId`.
|
|
939
961
|
* @throws {MnemocyteError} `"CONFLICT"` if any memory in
|
|
940
|
-
* `supersededIds` already points to a different survivor
|
|
941
|
-
*
|
|
942
|
-
*
|
|
962
|
+
* `supersededIds` already points to a different survivor, or if the
|
|
963
|
+
* survivor is deleted or becomes superseded between shared preflight and
|
|
964
|
+
* the atomic store mutation. The whole call is rejected before any loser,
|
|
965
|
+
* survivor tags, or audit events are changed.
|
|
943
966
|
*
|
|
944
967
|
* @example
|
|
945
968
|
* ```ts
|
|
@@ -955,6 +978,4 @@ interface ExperimentalMnemocyteClient {
|
|
|
955
978
|
*/
|
|
956
979
|
consolidate(input: ConsolidateInput): Promise<ConsolidateResult>;
|
|
957
980
|
}
|
|
958
|
-
|
|
959
|
-
export { PruneResult as A, MnemocyteConfig as C, ObservabilityConfig as D, MnemocyteOperation as E, RetrievalExplanation as F, RetrievalScoreWeights as I, RetrievalScores as L, RememberInput as M, RememberManyInput as N, ProviderResilienceConfig as O, RetrievalConfig as P, TokenCounter as R, MnemocyteClient as S, MnemocyteObservationPhase as T, ListAuditLogInput as _, ConsolidateInput as a, MemoryWithScore as b, DuplicatePair as c, ExperimentalMnemocyteClient as d, FindDuplicatesInput as f, JsonValue as g, JsonObject as h, BuildContextInput as i, RecallInput as j, PruneInput as k, Embedder as l, ImportanceLevel as m, AuditEvent as n, ConsolidateResult as o, GlobalStats as p, AuditLogCursor as r, ContextFormat as s, AuditConfig as t, EntityStats as u, Memory as v, MnemocyteObservation as w, MnemocyteBackend as x, MemoryType as y };
|
|
960
|
-
//# sourceMappingURL=types-DH0inEay.d.mts.map
|
|
981
|
+
export { PruneInput as A, MnemocyteConfig as C, MnemocyteStoreConfig as D, MnemocyteOperation as E, RetrievalConfig as F, RetrievalExplanation as I, RetrievalScoreWeights as L, RecallInput as M, RememberInput as N, ObservabilityConfig as O, RememberManyInput as P, RetrievalScores as R, MnemocyteClient as S, MnemocyteObservationPhase as T, ListAuditLogInput as _, ConsolidateInput as a, MemoryWithScore as b, DuplicatePair as c, ExperimentalMnemocyteClient as d, FindDuplicatesInput as f, JsonValue as g, JsonObject as h, BuildContextInput as i, PruneResult as j, ProviderResilienceConfig as k, Embedder as l, ImportanceLevel as m, AuditEvent as n, ConsolidateResult as o, GlobalStats as p, AuditLogCursor as r, ContextFormat as s, AuditConfig as t, EntityStats as u, Memory as v, MnemocyteObservation as w, MnemocyteBackend as x, MemoryType as y, TokenCounter as z };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
CREATE TABLE "mnemocyte_events" (
|
|
2
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
3
|
+
"entity_id" text NOT NULL,
|
|
4
|
+
"description" text NOT NULL,
|
|
5
|
+
"metadata" jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
6
|
+
"timestamp" timestamp with time zone DEFAULT now() NOT NULL
|
|
7
|
+
);
|
|
8
|
+
--> statement-breakpoint
|
|
9
|
+
CREATE TABLE "mnemocyte_meta" (
|
|
10
|
+
"key" text PRIMARY KEY NOT NULL,
|
|
11
|
+
"embedding_dimensions" integer NOT NULL,
|
|
12
|
+
"embedding_model" text
|
|
13
|
+
);
|
|
14
|
+
--> statement-breakpoint
|
|
15
|
+
INSERT INTO "mnemocyte_meta" ("key", "embedding_dimensions") VALUES ('installation', 1536);
|
|
16
|
+
--> statement-breakpoint
|
|
17
|
+
CREATE TABLE "mnemocyte_memories" (
|
|
18
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
19
|
+
"entity_id" text NOT NULL,
|
|
20
|
+
"content" text NOT NULL,
|
|
21
|
+
"type" text DEFAULT 'fact' NOT NULL,
|
|
22
|
+
"importance" text DEFAULT 'normal' NOT NULL,
|
|
23
|
+
"tags" text[] DEFAULT '{}'::text[] NOT NULL,
|
|
24
|
+
"source" text,
|
|
25
|
+
"metadata" jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
26
|
+
"confidence" real DEFAULT 1 NOT NULL,
|
|
27
|
+
"embedding" vector(1536),
|
|
28
|
+
"embedding_model" text NOT NULL,
|
|
29
|
+
"embedding_dimensions" integer NOT NULL,
|
|
30
|
+
"superseded_by" text,
|
|
31
|
+
"superseded_at" timestamp with time zone,
|
|
32
|
+
"expires_at" timestamp with time zone,
|
|
33
|
+
"last_accessed_at" timestamp with time zone,
|
|
34
|
+
"access_count" integer DEFAULT 0 NOT NULL,
|
|
35
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
36
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
37
|
+
);
|
|
38
|
+
--> statement-breakpoint
|
|
39
|
+
ALTER TABLE "mnemocyte_memories" ADD CONSTRAINT "mnemocyte_memories_superseded_by_mnemocyte_memories_id_fk" FOREIGN KEY ("superseded_by") REFERENCES "public"."mnemocyte_memories"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
40
|
+
CREATE INDEX "mnemocyte_events_entity_time_idx" ON "mnemocyte_events" USING btree ("entity_id","timestamp");--> statement-breakpoint
|
|
41
|
+
CREATE INDEX "mnemocyte_memories_entity_idx" ON "mnemocyte_memories" USING btree ("entity_id");--> statement-breakpoint
|
|
42
|
+
CREATE INDEX "mnemocyte_memories_entity_type_idx" ON "mnemocyte_memories" USING btree ("entity_id","type");--> statement-breakpoint
|
|
43
|
+
CREATE INDEX "mnemocyte_memories_embedding_hnsw_idx" ON "mnemocyte_memories" USING hnsw ("embedding" vector_cosine_ops);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mnemocyte",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Persistent memory for TypeScript AI apps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -11,22 +11,25 @@
|
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
13
|
"types": "./dist/index.d.mts",
|
|
14
|
-
"
|
|
14
|
+
"default": "./dist/index.mjs"
|
|
15
15
|
},
|
|
16
16
|
"./embedders": {
|
|
17
17
|
"types": "./dist/embedders/index.d.mts",
|
|
18
|
-
"
|
|
18
|
+
"default": "./dist/embedders/index.mjs"
|
|
19
19
|
},
|
|
20
|
-
"./embedders/
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
|
|
20
|
+
"./embedders/openai": {
|
|
21
|
+
"types": "./dist/embedders/openai.d.mts",
|
|
22
|
+
"default": "./dist/embedders/openai.mjs"
|
|
23
|
+
},
|
|
24
|
+
"./stores/drizzle": {
|
|
25
|
+
"types": "./dist/stores/drizzle.d.mts",
|
|
26
|
+
"default": "./dist/stores/drizzle.mjs"
|
|
24
27
|
}
|
|
25
28
|
},
|
|
26
29
|
"types": "./dist/index.d.mts",
|
|
27
30
|
"repository": {
|
|
28
31
|
"type": "git",
|
|
29
|
-
"url": "https://github.com/Meenic/mnemocyte.git"
|
|
32
|
+
"url": "git+https://github.com/Meenic/mnemocyte.git"
|
|
30
33
|
},
|
|
31
34
|
"keywords": [
|
|
32
35
|
"ai",
|
|
@@ -52,20 +55,23 @@
|
|
|
52
55
|
"node": ">=22.18"
|
|
53
56
|
},
|
|
54
57
|
"dependencies": {
|
|
55
|
-
"drizzle-orm": "^0.45.
|
|
58
|
+
"drizzle-orm": "^0.45.4",
|
|
56
59
|
"postgres": "^3.4.9"
|
|
57
60
|
},
|
|
58
61
|
"devDependencies": {
|
|
59
|
-
"@
|
|
60
|
-
"@
|
|
61
|
-
"
|
|
62
|
-
"
|
|
62
|
+
"@arethetypeswrong/cli": "0.18.5",
|
|
63
|
+
"@biomejs/biome": "2.6.3",
|
|
64
|
+
"@types/node": "^22.20.5",
|
|
65
|
+
"drizzle-kit": "^0.31.11",
|
|
66
|
+
"publint": "0.3.25",
|
|
67
|
+
"tsdown": "0.23.1",
|
|
63
68
|
"typescript": "^6.0.3",
|
|
64
|
-
"
|
|
69
|
+
"vite": "^8.3.5",
|
|
70
|
+
"vitest": "5.0.5"
|
|
65
71
|
},
|
|
66
72
|
"scripts": {
|
|
67
|
-
"build": "tsdown
|
|
68
|
-
"dev": "tsdown
|
|
73
|
+
"build": "tsdown",
|
|
74
|
+
"dev": "tsdown --watch",
|
|
69
75
|
"checktypes": "tsc --noEmit && tsc --noEmit --project tsconfig.test.json",
|
|
70
76
|
"test": "pnpm run test:ci",
|
|
71
77
|
"test:ci": "pnpm build && vitest run --typecheck --project unit --project package",
|
|
@@ -81,9 +87,10 @@
|
|
|
81
87
|
"test:retrieval": "vitest run --project unit test/retrieval/quality.test.ts",
|
|
82
88
|
"test:context": "vitest run --project unit test/context/builder.test.ts",
|
|
83
89
|
"test:integration": "vitest run --project integration",
|
|
84
|
-
"bench:retrieval": "vitest bench --project
|
|
90
|
+
"bench:retrieval": "pnpm build && vitest bench --project \"package (bench)\" test/benchmarks/retrieval.bench.ts",
|
|
85
91
|
"lint": "biome check --error-on-warnings .",
|
|
86
92
|
"lint:fix": "biome check --write .",
|
|
93
|
+
"lint:package": "pnpm build && node scripts/check-package.mjs",
|
|
87
94
|
"format": "biome format --write",
|
|
88
95
|
"migration:render": "node migrations/render-initial.mjs",
|
|
89
96
|
"db:generate": "drizzle-kit generate",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.mts","names":[],"sources":["../../src/embedders/openai.ts"],"mappings":";;;UAciB,qBAAA;;AAAjB;;WAIU,MAAA;EAJ4B;;;EAAA,SAQ5B,KAAA;EAUA;;AAAO;AAoIjB;EApIU,SALA,UAAA;;;;;WAKA,OAAA;AAAA;AAoI8D;;;;AAAA,iBAAxD,cAAA,CAAe,OAAA,EAAS,qBAAA,GAAwB,QAAQ"}
|
package/dist/index.d.mts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/client.ts","../src/errors.ts"],"mappings":";;;;;AAsCA;;;;;;;;AAAyE;;;;ACzBzE;;;;AAA8B;AA8B9B;;;;;;;;iBDLgB,eAAA,CAAgB,MAAA,EAAQ,eAAA,GAAkB,eAAe;;;;;;AAAzE;;;;;;;;AAAyE;;KCzB7D,kBAAA;;AAAZ;;;;AAA8B;AA8B9B;;;;;;;;;;;;;cAAa,cAAA,SAAuB,KAAA;EAWA;EAAA,SAT1B,IAAA,EAAM,kBAAA;EASwC;EAAA,SAPrC,KAAA;EAOoD;AAkBvE;;;;cAlBa,OAAA,UAAiB,IAAA,EAAM,kBAAA,EAAoB,KAAA;AAAA;;;AAkBiB;;;;;;;;iBAAzD,gBAAA,CAAiB,KAAA,YAAiB,KAAA,IAAS,cAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-DH0inEay.d.mts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
|