@mastra/lance 1.1.0 → 1.1.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.
@@ -18,6 +18,12 @@ interface LanceQueryVectorParams extends QueryVectorParams<LanceVectorFilter> {
18
18
  tableName?: string;
19
19
  columns?: string[];
20
20
  includeAllColumns?: boolean;
21
+ /**
22
+ * Distance metric used to compute `_distance` and convert it into a similarity `score`.
23
+ * Defaults to the table's vector index metric when one exists, otherwise 'cosine'
24
+ * (matching `createIndex`'s default and `@mastra/memory`'s usage).
25
+ */
26
+ metric?: 'cosine' | 'euclidean' | 'dotproduct';
21
27
  }
22
28
  export declare class LanceVectorStore extends MastraVector<LanceVectorFilter> {
23
29
  private lanceClient;
@@ -52,7 +58,33 @@ export declare class LanceVectorStore extends MastraVector<LanceVectorFilter> {
52
58
  */
53
59
  private constructor();
54
60
  close(): void;
55
- query({ tableName, indexName, queryVector, filter, includeVector, topK, columns, includeAllColumns, }: LanceQueryVectorParams): Promise<QueryResult[]>;
61
+ query({ tableName, indexName, queryVector, filter, includeVector, topK, columns, includeAllColumns, metric, }: LanceQueryVectorParams): Promise<QueryResult[]>;
62
+ /**
63
+ * Maps a Mastra distance metric to the LanceDB distance type.
64
+ */
65
+ private mastraMetricToLance;
66
+ /**
67
+ * Determines the distance metric to use for a query.
68
+ *
69
+ * Precedence: the table's vector index metric wins when an index exists because
70
+ * LanceDB requires indexed searches to use the same distance type the index was
71
+ * trained with; otherwise an explicitly provided metric is used; otherwise it
72
+ * defaults to 'cosine'.
73
+ */
74
+ private resolveQueryMetric;
75
+ private lanceMetricToMastra;
76
+ /**
77
+ * Converts a LanceDB `_distance` (smaller = more similar) into a Mastra similarity
78
+ * `score` (larger = more similar), consistent with every other Mastra vector store.
79
+ *
80
+ * - cosine: LanceDB returns cosine distance (`1 - cosine_similarity`), so `1 - distance`
81
+ * recovers the cosine similarity.
82
+ * - dotproduct: LanceDB's dot distance is `1 - dot_product`, so `1 - distance` recovers
83
+ * the dot product (matching `@mastra/pg`).
84
+ * - euclidean: LanceDB returns squared L2 distance for `l2`, so use its square root
85
+ * before mapping into (0, 1] (matching `@mastra/pg`).
86
+ */
87
+ private distanceToScore;
56
88
  private filterTranslator;
57
89
  upsert({ tableName, indexName, vectors, metadata, ids }: LanceUpsertVectorParams): Promise<string[]>;
58
90
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vector/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vector/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/lance",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Lance provider for Mastra - includes both vector and db storage capabilities",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -31,10 +31,10 @@
31
31
  "tsx": "^4.22.4",
32
32
  "typescript": "^6.0.3",
33
33
  "vitest": "4.1.8",
34
- "@internal/lint": "0.0.107",
35
- "@internal/storage-test-utils": "0.0.103",
36
- "@mastra/core": "^1.45.0",
37
- "@internal/types-builder": "0.0.82"
34
+ "@internal/lint": "0.0.108",
35
+ "@internal/storage-test-utils": "0.0.104",
36
+ "@internal/types-builder": "0.0.83",
37
+ "@mastra/core": "^1.46.0"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "@mastra/core": ">=1.0.0-0 <2.0.0-0"