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.
@@ -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} based on whether
47
- * {@link MnemocyteConfig.databaseUrl} was provided.
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
- * When omitted, an in-memory backend is used.
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}. */limit?: number; /** Default `minScore` cutoff 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 {@link ConsolidateInput.survivorId}.
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 superseded.
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 `supersededIds`,
935
- * a `survivorId` that also appears in `supersededIds`, or a survivor
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. The whole
941
- * call is rejected before any loser, survivor tags, or audit events
942
- * are changed.
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
- //#endregion
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.4.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
- "import": "./dist/index.mjs"
14
+ "default": "./dist/index.mjs"
15
15
  },
16
16
  "./embedders": {
17
17
  "types": "./dist/embedders/index.d.mts",
18
- "import": "./dist/embedders/index.mjs"
18
+ "default": "./dist/embedders/index.mjs"
19
19
  },
20
- "./embedders/index": null,
21
- "./embedders/*": {
22
- "types": "./dist/embedders/*.d.mts",
23
- "import": "./dist/embedders/*.mjs"
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.2",
58
+ "drizzle-orm": "^0.45.4",
56
59
  "postgres": "^3.4.9"
57
60
  },
58
61
  "devDependencies": {
59
- "@biomejs/biome": "2.4.15",
60
- "@types/node": "^22.18.0",
61
- "drizzle-kit": "^0.31.10",
62
- "tsdown": "^0.22.0",
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
- "vitest": "4.1.6"
69
+ "vite": "^8.3.5",
70
+ "vitest": "5.0.5"
65
71
  },
66
72
  "scripts": {
67
- "build": "tsdown src/index.ts \"src/embedders/*.ts\"",
68
- "dev": "tsdown src/index.ts \"src/embedders/*.ts\" --watch",
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 unit test/benchmarks/retrieval.bench.ts",
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"}
@@ -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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"}