@aeriondyseti/vector-memory-mcp 1.1.0-dev.5 → 1.1.0-dev.6
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/dist/package.json +1 -1
- package/dist/src/db/conversation.repository.d.ts.map +1 -1
- package/dist/src/db/conversation.repository.js +2 -1
- package/dist/src/db/conversation.repository.js.map +1 -1
- package/dist/src/db/conversation.schema.js +1 -1
- package/dist/src/db/conversation.schema.js.map +1 -1
- package/dist/src/db/lancedb-utils.d.ts +12 -0
- package/dist/src/db/lancedb-utils.d.ts.map +1 -1
- package/dist/src/db/lancedb-utils.js +18 -0
- package/dist/src/db/lancedb-utils.js.map +1 -1
- package/dist/src/db/memory.repository.js +4 -4
- package/dist/src/db/memory.repository.js.map +1 -1
- package/dist/src/db/schema.d.ts.map +1 -1
- package/dist/src/db/schema.js +1 -1
- package/dist/src/db/schema.js.map +1 -1
- package/package.json +1 -1
- package/src/db/conversation.repository.ts +2 -1
- package/src/db/conversation.schema.ts +1 -1
- package/src/db/lancedb-utils.ts +17 -0
- package/src/db/memory.repository.ts +4 -4
- package/src/db/schema.ts +1 -1
package/dist/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.repository.d.ts","sourceRoot":"","sources":["../../../src/db/conversation.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation.repository.d.ts","sourceRoot":"","sources":["../../../src/db/conversation.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAO5C,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AASlC,qBAAa,sBAAsB;IASrB,OAAO,CAAC,EAAE;IARtB,OAAO,CAAC,YAAY,CAA+B;IAGnD,OAAO,CAAC,cAAc,CAAyC;IAG/D,OAAO,CAAC,WAAW,CAAyB;gBAExB,EAAE,EAAE,OAAO,CAAC,UAAU;IAE1C,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,0BAA0B;IAa5B,WAAW,CACf,IAAI,EAAE,KAAK,CAAC;QACV,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,mBAAmB,EAAE,MAAM,CAAC;QAC5B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,GACD,OAAO,CAAC,IAAI,CAAC;IAQV,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,UAAU,CACd,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,qBAAqB,EAAE,CAAC;CA+BpC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CONVERSATION_TABLE_NAME, conversationSchema, } from "./conversation.schema.js";
|
|
2
|
+
import { arrowTimestampToDate } from "./lancedb-utils.js";
|
|
2
3
|
import { getOrCreateTable, createFtsMutex, createRerankerMutex, escapeSql, safeParseJsonObject, } from "./lancedb-utils.js";
|
|
3
4
|
export class ConversationRepository {
|
|
4
5
|
db;
|
|
@@ -25,7 +26,7 @@ export class ConversationRepository {
|
|
|
25
26
|
id: row.id,
|
|
26
27
|
content: row.content,
|
|
27
28
|
metadata,
|
|
28
|
-
createdAt:
|
|
29
|
+
createdAt: arrowTimestampToDate(row.created_at),
|
|
29
30
|
rrfScore: row._relevance_score ?? 0,
|
|
30
31
|
};
|
|
31
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.repository.js","sourceRoot":"","sources":["../../../src/db/conversation.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation.repository.js","sourceRoot":"","sources":["../../../src/db/conversation.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export const conversationSchema = new Schema([
|
|
|
5
5
|
new Field("vector", new FixedSizeList(384, new Field("item", new Float32(), false)), false),
|
|
6
6
|
new Field("content", new Utf8(), false),
|
|
7
7
|
new Field("metadata", new Utf8(), false), // JSON string
|
|
8
|
-
new Field("created_at", new Timestamp(TimeUnit.MILLISECOND), false),
|
|
8
|
+
new Field("created_at", new Timestamp(TimeUnit.MILLISECOND, "UTC"), false),
|
|
9
9
|
new Field("session_id", new Utf8(), false),
|
|
10
10
|
new Field("role", new Utf8(), false),
|
|
11
11
|
new Field("message_index_start", new Int32(), false),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.schema.js","sourceRoot":"","sources":["../../../src/db/conversation.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,aAAa,EACb,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC;IAC3C,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;IAClC,IAAI,KAAK,CACP,QAAQ,EACR,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,EAC/D,KAAK,CACN;IACD,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;IACvC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,cAAc;IACxD,IAAI,KAAK,CACP,YAAY,EACZ,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"conversation.schema.js","sourceRoot":"","sources":["../../../src/db/conversation.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,aAAa,EACb,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC;IAC3C,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;IAClC,IAAI,KAAK,CACP,QAAQ,EACR,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,EAC/D,KAAK,CACN;IACD,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;IACvC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,cAAc;IACxD,IAAI,KAAK,CACP,YAAY,EACZ,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,EAC1C,KAAK,CACN;IACD,IAAI,KAAK,CAAC,YAAY,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,CAAC,qBAAqB,EAAE,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC;IACpD,IAAI,KAAK,CAAC,mBAAmB,EAAE,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC;IAClD,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;CACxC,CAAC,CAAC"}
|
|
@@ -17,6 +17,18 @@ export declare const RRF_K = 60;
|
|
|
17
17
|
* LanceDB returns an Arrow Vector object which is iterable but not an array.
|
|
18
18
|
*/
|
|
19
19
|
export declare function arrowVectorToArray(value: unknown): number[];
|
|
20
|
+
/**
|
|
21
|
+
* Converts an Arrow Timestamp value to a JavaScript Date.
|
|
22
|
+
*
|
|
23
|
+
* LanceDB/Arrow can return timestamp column values as:
|
|
24
|
+
* - number (most common: raw int64 ms since epoch, fits in JS float64)
|
|
25
|
+
* - BigInt (large int64 values that overflow float64 — rare for timestamps)
|
|
26
|
+
* - Date (hypothetical: some future Arrow-JS build may decode for us)
|
|
27
|
+
*
|
|
28
|
+
* Doing `new Date(row.ts as number)` is a TypeScript lie that silently breaks
|
|
29
|
+
* when Arrow returns a BigInt. This helper handles all three cases safely.
|
|
30
|
+
*/
|
|
31
|
+
export declare function arrowTimestampToDate(value: unknown): Date;
|
|
20
32
|
/**
|
|
21
33
|
* Safely parse a JSON string into an object, returning an empty object on failure.
|
|
22
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lancedb-utils.d.ts","sourceRoot":"","sources":["../../../src/db/lancedb-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAS,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,gEAAgE;AAChE,eAAO,MAAM,KAAK,KAAK,CAAC;AAExB;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMxE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,OAAO,CAAC,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,KAAK,CAAC,CAgBhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAC7B,MAAM,OAAO,CAAC,IAAI,CAAC,CA0BrB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,GAAE,MAAc,GAChB,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAYtC"}
|
|
1
|
+
{"version":3,"file":"lancedb-utils.d.ts","sourceRoot":"","sources":["../../../src/db/lancedb-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAS,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,gEAAgE;AAChE,eAAO,MAAM,KAAK,KAAK,CAAC;AAExB;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAIzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMxE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,OAAO,CAAC,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,KAAK,CAAC,CAgBhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAC7B,MAAM,OAAO,CAAC,IAAI,CAAC,CA0BrB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,GAAE,MAAc,GAChB,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAYtC"}
|
|
@@ -21,6 +21,24 @@ export function arrowVectorToArray(value) {
|
|
|
21
21
|
? value
|
|
22
22
|
: Array.from(value);
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Converts an Arrow Timestamp value to a JavaScript Date.
|
|
26
|
+
*
|
|
27
|
+
* LanceDB/Arrow can return timestamp column values as:
|
|
28
|
+
* - number (most common: raw int64 ms since epoch, fits in JS float64)
|
|
29
|
+
* - BigInt (large int64 values that overflow float64 — rare for timestamps)
|
|
30
|
+
* - Date (hypothetical: some future Arrow-JS build may decode for us)
|
|
31
|
+
*
|
|
32
|
+
* Doing `new Date(row.ts as number)` is a TypeScript lie that silently breaks
|
|
33
|
+
* when Arrow returns a BigInt. This helper handles all three cases safely.
|
|
34
|
+
*/
|
|
35
|
+
export function arrowTimestampToDate(value) {
|
|
36
|
+
if (value instanceof Date)
|
|
37
|
+
return new Date(value.getTime());
|
|
38
|
+
if (typeof value === "bigint")
|
|
39
|
+
return new Date(Number(value));
|
|
40
|
+
return new Date(value);
|
|
41
|
+
}
|
|
24
42
|
/**
|
|
25
43
|
* Safely parse a JSON string into an object, returning an empty object on failure.
|
|
26
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lancedb-utils.js","sourceRoot":"","sources":["../../../src/db/lancedb-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lancedb-utils.js","sourceRoot":"","sources":["../../../src/db/lancedb-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TABLE_NAME, memorySchema } from "./schema.js";
|
|
2
|
-
import { arrowVectorToArray, createFtsMutex, createRerankerMutex, escapeSql, safeParseJsonObject } from "./lancedb-utils.js";
|
|
2
|
+
import { arrowTimestampToDate, arrowVectorToArray, createFtsMutex, createRerankerMutex, escapeSql, safeParseJsonObject } from "./lancedb-utils.js";
|
|
3
3
|
import { DELETED_TOMBSTONE, } from "../types/memory.js";
|
|
4
4
|
export class MemoryRepository {
|
|
5
5
|
db;
|
|
@@ -67,13 +67,13 @@ export class MemoryRepository {
|
|
|
67
67
|
content: row.content,
|
|
68
68
|
embedding: arrowVectorToArray(row.vector),
|
|
69
69
|
metadata: safeParseJsonObject(row.metadata),
|
|
70
|
-
createdAt:
|
|
71
|
-
updatedAt:
|
|
70
|
+
createdAt: arrowTimestampToDate(row.created_at),
|
|
71
|
+
updatedAt: arrowTimestampToDate(row.updated_at),
|
|
72
72
|
supersededBy: row.superseded_by,
|
|
73
73
|
usefulness: row.usefulness ?? 0,
|
|
74
74
|
accessCount: row.access_count ?? 0,
|
|
75
75
|
lastAccessed: row.last_accessed
|
|
76
|
-
?
|
|
76
|
+
? arrowTimestampToDate(row.last_accessed)
|
|
77
77
|
: null,
|
|
78
78
|
};
|
|
79
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.repository.js","sourceRoot":"","sources":["../../../src/db/memory.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"memory.repository.js","sourceRoot":"","sources":["../../../src/db/memory.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,aAAa,EACb,OAAO,EAEP,SAAS,EAGV,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,WAAW,qCAKrB,CAAC;AAEJ,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,kBAAgB,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,aAAa,EACb,OAAO,EAEP,SAAS,EAGV,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,WAAW,qCAKrB,CAAC;AAEJ,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,kBAAgB,kQACU,CAAC;AAExE,eAAO,MAAM,UAAU,aAAa,CAAC;AAErC,eAAO,MAAM,YAAY,aAWvB,CAAC"}
|
package/dist/src/db/schema.js
CHANGED
|
@@ -2,7 +2,7 @@ import { Schema, Field, FixedSizeList, Float32, Utf8, Timestamp, TimeUnit, Int32
|
|
|
2
2
|
// Shared field helpers — used by both memory and conversation history schemas
|
|
3
3
|
export const EMBEDDING_DIMENSION = 384;
|
|
4
4
|
export const vectorField = () => new Field("vector", new FixedSizeList(EMBEDDING_DIMENSION, new Field("item", new Float32())), false);
|
|
5
|
-
export const timestampField = (name, nullable = false) => new Field(name, new Timestamp(TimeUnit.MILLISECOND), nullable);
|
|
5
|
+
export const timestampField = (name, nullable = false) => new Field(name, new Timestamp(TimeUnit.MILLISECOND, "UTC"), nullable);
|
|
6
6
|
export const TABLE_NAME = "memories";
|
|
7
7
|
export const memorySchema = new Schema([
|
|
8
8
|
new Field("id", new Utf8(), false),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,aAAa,EACb,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAC9B,IAAI,KAAK,CACP,QAAQ,EACR,IAAI,aAAa,CAAC,mBAAmB,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC,EACxE,KAAK,CACN,CAAC;AAEJ,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,CAC/D,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,aAAa,EACb,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAC9B,IAAI,KAAK,CACP,QAAQ,EACR,IAAI,aAAa,CAAC,mBAAmB,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC,EACxE,KAAK,CACN,CAAC;AAEJ,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,CAC/D,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;AAErC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC;IACrC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;IAClC,WAAW,EAAE;IACb,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;IACvC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,cAAc;IACxD,cAAc,CAAC,YAAY,CAAC;IAC5B,cAAc,CAAC,YAAY,CAAC;IAC5B,IAAI,KAAK,CAAC,eAAe,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW;IACzD,IAAI,KAAK,CAAC,YAAY,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC;IAC7C,IAAI,KAAK,CAAC,cAAc,EAAE,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC;IAC7C,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC;CACtC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
CONVERSATION_TABLE_NAME,
|
|
5
5
|
conversationSchema,
|
|
6
6
|
} from "./conversation.schema.js";
|
|
7
|
+
import { arrowTimestampToDate } from "./lancedb-utils.js";
|
|
7
8
|
import type {
|
|
8
9
|
ConversationHybridRow,
|
|
9
10
|
HistoryFilters,
|
|
@@ -49,7 +50,7 @@ export class ConversationRepository {
|
|
|
49
50
|
id: row.id as string,
|
|
50
51
|
content: row.content as string,
|
|
51
52
|
metadata,
|
|
52
|
-
createdAt:
|
|
53
|
+
createdAt: arrowTimestampToDate(row.created_at),
|
|
53
54
|
rrfScore: (row._relevance_score as number) ?? 0,
|
|
54
55
|
};
|
|
55
56
|
}
|
|
@@ -22,7 +22,7 @@ export const conversationSchema = new Schema([
|
|
|
22
22
|
new Field("metadata", new Utf8(), false), // JSON string
|
|
23
23
|
new Field(
|
|
24
24
|
"created_at",
|
|
25
|
-
new Timestamp(TimeUnit.MILLISECOND),
|
|
25
|
+
new Timestamp(TimeUnit.MILLISECOND, "UTC"),
|
|
26
26
|
false
|
|
27
27
|
),
|
|
28
28
|
new Field("session_id", new Utf8(), false),
|
package/src/db/lancedb-utils.ts
CHANGED
|
@@ -27,6 +27,23 @@ export function arrowVectorToArray(value: unknown): number[] {
|
|
|
27
27
|
: (Array.from(value as Iterable<number>) as number[]);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Converts an Arrow Timestamp value to a JavaScript Date.
|
|
32
|
+
*
|
|
33
|
+
* LanceDB/Arrow can return timestamp column values as:
|
|
34
|
+
* - number (most common: raw int64 ms since epoch, fits in JS float64)
|
|
35
|
+
* - BigInt (large int64 values that overflow float64 — rare for timestamps)
|
|
36
|
+
* - Date (hypothetical: some future Arrow-JS build may decode for us)
|
|
37
|
+
*
|
|
38
|
+
* Doing `new Date(row.ts as number)` is a TypeScript lie that silently breaks
|
|
39
|
+
* when Arrow returns a BigInt. This helper handles all three cases safely.
|
|
40
|
+
*/
|
|
41
|
+
export function arrowTimestampToDate(value: unknown): Date {
|
|
42
|
+
if (value instanceof Date) return new Date(value.getTime());
|
|
43
|
+
if (typeof value === "bigint") return new Date(Number(value));
|
|
44
|
+
return new Date(value as number);
|
|
45
|
+
}
|
|
46
|
+
|
|
30
47
|
/**
|
|
31
48
|
* Safely parse a JSON string into an object, returning an empty object on failure.
|
|
32
49
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as lancedb from "@lancedb/lancedb";
|
|
2
2
|
import { type Table } from "@lancedb/lancedb";
|
|
3
3
|
import { TABLE_NAME, memorySchema } from "./schema.js";
|
|
4
|
-
import { arrowVectorToArray, createFtsMutex, createRerankerMutex, escapeSql, safeParseJsonObject } from "./lancedb-utils.js";
|
|
4
|
+
import { arrowTimestampToDate, arrowVectorToArray, createFtsMutex, createRerankerMutex, escapeSql, safeParseJsonObject } from "./lancedb-utils.js";
|
|
5
5
|
import {
|
|
6
6
|
type Memory,
|
|
7
7
|
type HybridRow,
|
|
@@ -84,13 +84,13 @@ export class MemoryRepository {
|
|
|
84
84
|
content: row.content as string,
|
|
85
85
|
embedding: arrowVectorToArray(row.vector),
|
|
86
86
|
metadata: safeParseJsonObject(row.metadata as string),
|
|
87
|
-
createdAt:
|
|
88
|
-
updatedAt:
|
|
87
|
+
createdAt: arrowTimestampToDate(row.created_at),
|
|
88
|
+
updatedAt: arrowTimestampToDate(row.updated_at),
|
|
89
89
|
supersededBy: row.superseded_by as string | null,
|
|
90
90
|
usefulness: (row.usefulness as number) ?? 0,
|
|
91
91
|
accessCount: (row.access_count as number) ?? 0,
|
|
92
92
|
lastAccessed: row.last_accessed
|
|
93
|
-
?
|
|
93
|
+
? arrowTimestampToDate(row.last_accessed)
|
|
94
94
|
: null,
|
|
95
95
|
};
|
|
96
96
|
}
|
package/src/db/schema.ts
CHANGED
|
@@ -20,7 +20,7 @@ export const vectorField = () =>
|
|
|
20
20
|
);
|
|
21
21
|
|
|
22
22
|
export const timestampField = (name: string, nullable = false) =>
|
|
23
|
-
new Field(name, new Timestamp(TimeUnit.MILLISECOND), nullable);
|
|
23
|
+
new Field(name, new Timestamp(TimeUnit.MILLISECOND, "UTC"), nullable);
|
|
24
24
|
|
|
25
25
|
export const TABLE_NAME = "memories";
|
|
26
26
|
|