@memberjunction/ai-vectors 5.33.0 → 5.34.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.
package/README.md CHANGED
@@ -20,7 +20,7 @@ npm install @memberjunction/ai-vectors
20
20
  | `IVectorIndex` | Interface | Contract for CRUD operations on vector records within an index |
21
21
  | `ChunkTextParams` | Type | Configuration for `TextChunker.ChunkText()` |
22
22
  | `TextChunk` | Type | Output chunk with text, offsets, token count, and index |
23
- | `PageRecordsParams` | Type | Paginated entity record retrieval configuration |
23
+ | `PageRecordsParams` | Type | Paginated entity record retrieval configuration. Supports both OFFSET-based pagination (`PageNumber`) and keyset/seek pagination (`AfterKey`) — see [KEYSET_PAGINATION_GUIDE.md](../../../../guides/KEYSET_PAGINATION_GUIDE.md). |
24
24
 
25
25
  ## Architecture
26
26
 
@@ -320,9 +320,47 @@ export class MyVectorProcessor extends VectorBase {
320
320
  page++;
321
321
  }
322
322
  }
323
+
324
+ // Preferred for deep iteration: keyset (seek) pagination via AfterKey.
325
+ // O(log N) per page regardless of depth — `PageNumber`-based OFFSET pagination
326
+ // gets progressively slower as pages climb into the thousands.
327
+ async ProcessInKeysetPages(entityId: string): Promise<void> {
328
+ // Check upfront — falls back to PageNumber path if the entity has a composite PK.
329
+ if (!this.CanUseKeysetPagination(entityId)) {
330
+ // ... use the PageNumber loop above
331
+ return;
332
+ }
333
+ const entity = this.Metadata.Entities.find(e => e.ID === entityId)!;
334
+ const pkField = entity.FirstPrimaryKey!;
335
+
336
+ let lastSeenKey: CompositeKey | undefined; // undefined => first page
337
+ while (true) {
338
+ const records = await this.PageRecordsByEntityID<Record<string, unknown>>({
339
+ EntityID: entityId,
340
+ PageNumber: 0, // ignored when AfterKey is set
341
+ PageSize: 500,
342
+ ResultType: 'simple',
343
+ Filter: "Status = 'Active'",
344
+ AfterKey: lastSeenKey,
345
+ });
346
+ if (records.length === 0) break;
347
+ for (const r of records) { /* process */ }
348
+ if (records.length < 500) break;
349
+ lastSeenKey = CompositeKey.FromKeyValuePair(pkField.Name, records[records.length - 1][pkField.Name]);
350
+ }
351
+ }
323
352
  }
324
353
  ```
325
354
 
355
+ ### Keyset Pagination Helpers
356
+
357
+ `VectorBase` exposes two helpers for keyset (seek) pagination:
358
+
359
+ - **`PageRecordsParams.AfterKey?: CompositeKey`** — optional cursor that switches `PageRecordsByEntityID` from OFFSET (`PageNumber`) mode to keyset mode. When set, the query uses `WHERE pk > @lastSeen ORDER BY pk LIMIT N` and stays O(log N) per page.
360
+ - **`CanUseKeysetPagination(entityID)`** — returns true if the entity has a single-column PK on an orderable type (i.e. it's safe to pass `AfterKey`). Use it to choose between the keyset and OFFSET paths.
361
+
362
+ See **[KEYSET_PAGINATION_GUIDE.md](../../../../guides/KEYSET_PAGINATION_GUIDE.md)** for the full pattern, constraints (composite-PK entities throw `AfterKeyNotSupportedError`), and reference implementations across the framework.
363
+
326
364
  ### Filtering with Composite Keys
327
365
 
328
366
  ```typescript
@@ -1,10 +1,15 @@
1
+ import type { CompositeKey } from '@memberjunction/core';
1
2
  export type PageRecordsParams = {
2
3
  /**
3
4
  * The ID of the entitiy to get the records from
4
5
  */
5
6
  EntityID: string | number;
6
7
  /**
7
- * Number of records to offset. This number will be multiplied by the PageSize to get the actual offset
8
+ * OFFSET-mode pagination cursor — multiplied by PageSize to compute SQL OFFSET.
9
+ *
10
+ * Ignored when `AfterKey` is provided (keyset mode). For deep iteration over large
11
+ * entities, prefer the keyset form — pass an undefined `AfterKey` on the first call,
12
+ * then pass the PK of the last record returned on each subsequent call.
8
13
  */
9
14
  PageNumber: number;
10
15
  /**
@@ -19,5 +24,16 @@ export type PageRecordsParams = {
19
24
  * Filter to apply to the query
20
25
  */
21
26
  Filter?: string;
27
+ /**
28
+ * Keyset (seek) pagination cursor — when present, the query returns records ordered
29
+ * by the entity's single-column PK with `WHERE pk > @lastSeen`. Keep each page O(log N)
30
+ * regardless of how deep you go. Requires a single-column PK on the target entity.
31
+ *
32
+ * Pass `undefined` (or omit) to fetch the first page. On subsequent calls, pass a
33
+ * CompositeKey containing the PK column name and the last returned record's PK value.
34
+ *
35
+ * See `guides/KEYSET_PAGINATION_GUIDE.md` for the full pattern.
36
+ */
37
+ AfterKey?: CompositeKey;
22
38
  };
23
39
  //# sourceMappingURL=VectorCore.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VectorCore.types.d.ts","sourceRoot":"","sources":["../../src/generic/VectorCore.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC5B;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,eAAe,GAAG,QAAQ,GAAG,YAAY,CAAC;IACtD;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"VectorCore.types.d.ts","sourceRoot":"","sources":["../../src/generic/VectorCore.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,iBAAiB,GAAG;IAC5B;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,eAAe,GAAG,QAAQ,GAAG,YAAY,CAAC;IACtD;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC"}
@@ -21,6 +21,12 @@ export declare class VectorBase {
21
21
  set Provider(value: IMetadataProvider | null);
22
22
  protected GetRecordsByEntityID(entityID: string, recordIDs?: CompositeKey[]): Promise<BaseEntity[]>;
23
23
  protected PageRecordsByEntityID<T>(params: PageRecordsParams): Promise<T[]>;
24
+ /**
25
+ * Returns true when {@link PageRecordsByEntityID} can serve the given entity via
26
+ * keyset (seek) pagination — i.e. the entity has a single-column PK on a comparable
27
+ * type. Callers iterating large tables should consult this and pass `AfterKey` when true.
28
+ */
29
+ protected CanUseKeysetPagination(entityID: string | number): boolean;
24
30
  /**
25
31
  * Builds a SQL filter from composite keys. Values are sanitized to prevent SQL injection.
26
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"VectorBase.d.ts","sourceRoot":"","sources":["../../src/models/VectorBase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAuC,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,qBAAa,UAAU;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,QAAQ,CAAC;IACpB,YAAY,EAAE,QAAQ,CAAC;IACvB,OAAO,CAAC,SAAS,CAAkC;;IAQnD,IAAW,QAAQ,IAAI,QAAQ,CAA2B;IAC1D,IAAW,OAAO,IAAI,OAAO,CAA0B;IACvD,IAAW,WAAW,IAAI,QAAQ,CAA8B;IAChE,IAAW,WAAW,CAAC,IAAI,EAAE,QAAQ,EAA+B;IAEpE;;;;OAIG;IACH,IAAW,QAAQ,IAAI,iBAAiB,CAEvC;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAElD;cAEe,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;cAqBzF,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAqBjF;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM;IASjE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,uBAAuB;IAe1D,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,sBAAsB;cAgBhD,qBAAqB,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAgBvH;;;QAGI;cACY,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;CAInE"}
1
+ {"version":3,"file":"VectorBase.d.ts","sourceRoot":"","sources":["../../src/models/VectorBase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAuC,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,qBAAa,UAAU;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,QAAQ,CAAC;IACpB,YAAY,EAAE,QAAQ,CAAC;IACvB,OAAO,CAAC,SAAS,CAAkC;;IAQnD,IAAW,QAAQ,IAAI,QAAQ,CAA2B;IAC1D,IAAW,OAAO,IAAI,OAAO,CAA0B;IACvD,IAAW,WAAW,IAAI,QAAQ,CAA8B;IAChE,IAAW,WAAW,CAAC,IAAI,EAAE,QAAQ,EAA+B;IAEpE;;;;OAIG;IACH,IAAW,QAAQ,IAAI,iBAAiB,CAEvC;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAElD;cAEe,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;cAqBzF,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IA4BjF;;;;OAIG;IACH,SAAS,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAcpE;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM;IASjE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,uBAAuB;IAe1D,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,sBAAsB;cAgBhD,qBAAqB,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAgBvH;;;QAGI;cACY,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;CAInE"}
@@ -45,11 +45,17 @@ export class VectorBase {
45
45
  if (!entity) {
46
46
  throw new Error(`Entity with ID ${params.EntityID} not found.`);
47
47
  }
48
+ // Prefer keyset (seek) pagination when the caller provides AfterKey.
49
+ // The framework will throw AfterKeyNotSupportedError if the entity has a composite
50
+ // PK — callers iterating those entities must use the PageNumber path.
51
+ const useKeyset = !!params.AfterKey;
48
52
  const rvResult = await this._runView.RunView({
49
53
  EntityName: entity.Name,
50
54
  ResultType: params.ResultType,
51
55
  MaxRows: params.PageSize,
52
- StartRow: Math.max(0, (params.PageNumber - 1) * params.PageSize),
56
+ ...(useKeyset
57
+ ? { AfterKey: params.AfterKey, OrderBy: entity.FirstPrimaryKey.Name }
58
+ : { StartRow: Math.max(0, (params.PageNumber - 1) * params.PageSize) }),
53
59
  ExtraFilter: params.Filter
54
60
  }, this.CurrentUser);
55
61
  if (!rvResult.Success) {
@@ -57,6 +63,26 @@ export class VectorBase {
57
63
  }
58
64
  return rvResult.Results;
59
65
  }
66
+ /**
67
+ * Returns true when {@link PageRecordsByEntityID} can serve the given entity via
68
+ * keyset (seek) pagination — i.e. the entity has a single-column PK on a comparable
69
+ * type. Callers iterating large tables should consult this and pass `AfterKey` when true.
70
+ */
71
+ CanUseKeysetPagination(entityID) {
72
+ const entity = this.Metadata.Entities.find(e => UUIDsEqual(e.ID, entityID));
73
+ if (!entity || !entity.FirstPrimaryKey)
74
+ return false;
75
+ if (entity.PrimaryKeys.length !== 1)
76
+ return false;
77
+ // Inline allowlist check (avoid pulling in the helper here)
78
+ const t = (entity.FirstPrimaryKey.Type || '').replace(/\s*\([^)]*\)\s*$/, '').trim().toLowerCase();
79
+ // Same set as KEYSET_PAGINATION_ORDERABLE_PK_TYPES in @memberjunction/core
80
+ return ['uniqueidentifier', 'uuid', 'int', 'bigint', 'smallint', 'tinyint', 'decimal', 'numeric', 'money', 'smallmoney',
81
+ 'float', 'real', 'double precision', 'char', 'varchar', 'nchar', 'nvarchar', 'text', 'ntext',
82
+ 'date', 'datetime', 'datetime2', 'datetimeoffset', 'smalldatetime', 'time', 'bit',
83
+ 'integer', 'bigserial', 'serial', 'character varying', 'character', 'timestamp',
84
+ 'timestamp with time zone', 'timestamp without time zone', 'boolean'].includes(t);
85
+ }
60
86
  /**
61
87
  * Builds a SQL filter from composite keys. Values are sanitized to prevent SQL injection.
62
88
  */
@@ -1 +1 @@
1
- {"version":3,"file":"VectorBase.js","sourceRoot":"","sources":["../../src/models/VectorBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VectorBase.js","sourceRoot":"","sources":["../../src/models/VectorBase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/ai-vectors",
3
3
  "type": "module",
4
- "version": "5.33.0",
4
+ "version": "5.34.0",
5
5
  "description": "MemberJunction: AI Vectors Module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -17,13 +17,13 @@
17
17
  "author": "MemberJunction.com",
18
18
  "license": "ISC",
19
19
  "dependencies": {
20
- "@memberjunction/core": "5.33.0",
21
- "@memberjunction/global": "5.33.0",
22
- "@memberjunction/core-entities": "5.33.0",
23
- "@memberjunction/aiengine": "5.33.0",
24
- "@memberjunction/ai": "5.33.0",
25
- "@memberjunction/ai-core-plus": "5.33.0",
26
- "@memberjunction/ai-vectordb": "5.33.0",
20
+ "@memberjunction/core": "5.34.0",
21
+ "@memberjunction/global": "5.34.0",
22
+ "@memberjunction/core-entities": "5.34.0",
23
+ "@memberjunction/aiengine": "5.34.0",
24
+ "@memberjunction/ai": "5.34.0",
25
+ "@memberjunction/ai-core-plus": "5.34.0",
26
+ "@memberjunction/ai-vectordb": "5.34.0",
27
27
  "dotenv": "^17.2.4",
28
28
  "openai": "^6.18.0"
29
29
  },