@mastra/lance 1.4.0 → 1.5.0-alpha.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.
@@ -1,4 +1,4 @@
1
- import type { ConnectionOptions, CreateTableOptions, Table, TableLike } from '@lancedb/lancedb';
1
+ import type { ConnectionOptions, CreateTableOptions, OptimizeStats, Table, TableLike } from '@lancedb/lancedb';
2
2
  import type { CreateIndexParams, DeleteIndexParams, DeleteVectorParams, DescribeIndexParams, IndexStats, QueryResult, QueryVectorParams, UpdateVectorParams, UpsertVectorParams, DeleteVectorsParams } from '@mastra/core/vector';
3
3
  import { MastraVector } from '@mastra/core/vector';
4
4
  import type { LanceVectorFilter } from './filter.js';
@@ -25,8 +25,27 @@ interface LanceQueryVectorParams extends QueryVectorParams<LanceVectorFilter> {
25
25
  */
26
26
  metric?: 'cosine' | 'euclidean' | 'dotproduct';
27
27
  }
28
+ export interface LanceTableTargetParams {
29
+ tableName?: string;
30
+ /** Used as the table name when `tableName` is omitted, matching `upsert` and `query`. */
31
+ indexName?: string;
32
+ }
33
+ export interface LanceOptimizeParams extends LanceTableTargetParams {
34
+ /** Remove table versions older than this date. Defaults to LanceDB's retention (7 days). */
35
+ cleanupOlderThan?: Date;
36
+ /** Also delete unverified files newer than 7 days. Only safe when no other writer is active. Defaults to `false`. */
37
+ deleteUnverified?: boolean;
38
+ }
39
+ export interface LanceIndexCoverage {
40
+ indexName: string;
41
+ indexType: string;
42
+ columns: string[];
43
+ numIndexedRows: number;
44
+ numUnindexedRows: number;
45
+ }
28
46
  export declare class LanceVectorStore extends MastraVector<LanceVectorFilter> {
29
47
  private lanceClient;
48
+ private optimizeInFlight;
30
49
  /**
31
50
  * Creates a new instance of LanceVectorStore
32
51
  * @param uri The URI to connect to LanceDB
@@ -112,6 +131,19 @@ export declare class LanceVectorStore extends MastraVector<LanceVectorFilter> {
112
131
  listIndexes(): Promise<string[]>;
113
132
  describeIndex({ indexName }: DescribeIndexParams): Promise<IndexStats>;
114
133
  deleteIndex({ indexName }: DeleteIndexParams): Promise<void>;
134
+ private openExistingTable;
135
+ /**
136
+ * Runs LanceDB table maintenance: compacts fragments, adds unindexed rows to existing indexes
137
+ * (without retraining them), and prunes old table versions.
138
+ *
139
+ * Never runs implicitly. Concurrent calls for the same table share a single in-flight run.
140
+ */
141
+ optimize(params: LanceOptimizeParams): Promise<OptimizeStats>;
142
+ /**
143
+ * Reports how many rows each index on a table covers. Rows written after an index was built
144
+ * stay unindexed until `optimize()` runs; use this to decide when to optimize.
145
+ */
146
+ getIndexCoverage(params: LanceTableTargetParams): Promise<LanceIndexCoverage[]>;
115
147
  /**
116
148
  * Deletes all tables in the database
117
149
  */
@@ -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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"}
@@ -1,4 +1,4 @@
1
- export type IndexType = 'ivfflat' | 'hnsw';
1
+ export type IndexType = 'ivfflat' | 'ivfpq' | 'hnsw';
2
2
  interface IVFConfig {
3
3
  lists?: number;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vector/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3C,UAAU,SAAS;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vector/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAErD,UAAU,SAAS;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/lance",
3
- "version": "1.4.0",
3
+ "version": "1.5.0-alpha.0",
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.23.1",
32
32
  "typescript": "^7.0.2",
33
33
  "vitest": "4.1.11",
34
- "@internal/lint": "0.0.138",
35
- "@mastra/core": "^1.72.0",
36
- "@internal/types-builder": "0.0.113",
37
- "@internal/storage-test-utils": "0.0.134"
34
+ "@internal/storage-test-utils": "0.0.136",
35
+ "@internal/types-builder": "0.0.115",
36
+ "@internal/lint": "0.0.140",
37
+ "@mastra/core": "^1.75.0-alpha.8"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "@mastra/core": ">=1.53.0-0 <2.0.0-0"