@memberjunction/ai-vector-dupe 5.23.0 → 5.25.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.
@@ -53,8 +53,27 @@ export declare class DuplicateRecordDetector extends VectorBase {
53
53
  * Run duplicate detection for records identified by ListID, ViewID, ExtraFilter,
54
54
  * or all records in the entity (vector-first approach).
55
55
  *
56
- * Flow: validate -> vectorize -> init providers -> load/create run ->
57
- * load record IDs -> batch(embed -> query -> persist) -> complete run -> auto-merge
56
+ * **Batching strategy:**
57
+ * - Records are loaded as lightweight IDs first, then processed in outer batches of
58
+ * {@link DEFAULT_BATCH_SIZE} (500) records.
59
+ * - Within each outer batch, embedding and vector similarity queries are further
60
+ * sub-batched into chunks of {@link VECTOR_QUERY_BATCH_SIZE} (100) records to keep
61
+ * API payloads and memory bounded.
62
+ * - Vector queries within each sub-batch run with configurable concurrency
63
+ * (default {@link DEFAULT_QUERY_CONCURRENCY} = 10).
64
+ *
65
+ * **Resume support:**
66
+ * - {@link MJDuplicateRunEntity.ProcessedItemCount} and
67
+ * {@link MJDuplicateRunEntity.LastProcessedOffset} are persisted after each outer batch.
68
+ * - On restart, processing resumes from {@link MJDuplicateRunEntity.LastProcessedOffset}.
69
+ *
70
+ * **Cancellation:**
71
+ * - {@link MJDuplicateRunEntity.CancellationRequested} is re-loaded from the database
72
+ * between outer batches. If set to `true`, processing stops and the run can be resumed later.
73
+ *
74
+ * @param params - The detection request specifying entity, document, list/view/filter, and options
75
+ * @param contextUser - The user context for entity operations and security
76
+ * @returns A response containing all potential duplicate results and an overall status
58
77
  */
59
78
  GetDuplicateRecords(params: PotentialDuplicateRequest, contextUser?: UserInfo): Promise<PotentialDuplicateResponse>;
60
79
  /**
@@ -63,7 +82,30 @@ export declare class DuplicateRecordDetector extends VectorBase {
63
82
  */
64
83
  CheckSingleRecord(EntityDocumentID: string, RecordID: CompositeKey, Options?: DuplicateDetectionOptions, ContextUser?: UserInfo): Promise<PotentialDuplicateResult>;
65
84
  /**
66
- * Result from processing a single batch of records.
85
+ * Process a single outer batch of record IDs through the full duplicate detection pipeline.
86
+ *
87
+ * Steps:
88
+ * 1. Load full record data for template rendering
89
+ * 2. Build source metadata for rich UI display
90
+ * 3. Create DuplicateRunDetail records
91
+ * 4. Sub-batch records into chunks of {@link VECTOR_QUERY_BATCH_SIZE} (default 100)
92
+ * for embedding + vector similarity querying, keeping memory and API payloads bounded
93
+ * 5. Persist match results and update run details
94
+ *
95
+ * @param batchIDs - Primary key values for records in this batch
96
+ * @param entityInfo - Entity metadata
97
+ * @param entityDocument - The entity document driving vectorization
98
+ * @param templateParser - Reusable template parser instance
99
+ * @param duplicateRunID - ID of the parent DuplicateRun record
100
+ * @param topK - Number of nearest neighbors to retrieve per record
101
+ * @param concurrency - Max parallel vector queries within each sub-batch
102
+ * @param options - Detection options (thresholds, callbacks, etc.)
103
+ * @param startTime - Epoch ms for elapsed-time progress reporting
104
+ * @param totalRecords - Total records across all batches (for progress reporting)
105
+ * @param processedSoFar - Records processed before this batch (for progress reporting)
106
+ * @param matchesSoFar - Matches found before this batch (for progress reporting)
107
+ * @param contextUser - The user context for entity operations
108
+ * @returns Combined results and match count for this batch
67
109
  */
68
110
  private ProcessBatch;
69
111
  /**
@@ -87,9 +129,15 @@ export declare class DuplicateRecordDetector extends VectorBase {
87
129
  /**
88
130
  * Validate and return an entity document, or null if not found.
89
131
  */
132
+ /**
133
+ * Validates that an entity document exists and is usable. Uses the
134
+ * KnowledgeHubMetadataEngine cache for instant lookups without database queries.
135
+ */
90
136
  protected ValidateEntityDocument(entityDocumentID: string): Promise<MJEntityDocumentEntity | null>;
91
137
  /**
92
- * Initialize embedding and vector DB providers via ClassFactory.
138
+ * Initializes embedding model, vector DB, and index name providers.
139
+ * Called once per detection run rather than per-record. Uses AIEngine
140
+ * and KnowledgeHubMetadataEngine caches to avoid redundant database queries.
93
141
  */
94
142
  protected InitializeProviders(entityDocument: MJEntityDocumentEntity): Promise<void>;
95
143
  /**
@@ -138,7 +186,27 @@ export declare class DuplicateRecordDetector extends VectorBase {
138
186
  protected loadTemplate(entityDocument: MJEntityDocumentEntity): MJTemplateEntityExtended;
139
187
  /**
140
188
  * Query the vector DB for duplicates of each record, with concurrency control.
141
- * Supports hybrid search and RRF fusion when the vector DB supports it.
189
+ *
190
+ * Creates one async task per record, then executes them via {@link RunWithConcurrency}
191
+ * with the specified concurrency limit. Each task embeds and queries a single record
192
+ * against the vector index.
193
+ *
194
+ * Supports hybrid search (vector + keyword) with RRF fusion when the vector DB provider
195
+ * supports it (checked via `SupportsHybridSearch`).
196
+ *
197
+ * Post-query, results are:
198
+ * 1. Parsed from raw vector matches into typed {@link PotentialDuplicate} objects
199
+ * 2. Filtered to remove self-matches (same record as source)
200
+ * 3. Filtered by the potential match threshold (from options or entity document)
201
+ *
202
+ * @param records - The source records to find duplicates for
203
+ * @param vectors - Pre-computed embedding vectors, one per record (same index order)
204
+ * @param templateTexts - Rendered template texts for hybrid keyword search
205
+ * @param entityDocument - The entity document providing thresholds and configuration
206
+ * @param topK - Number of nearest neighbors to retrieve per record
207
+ * @param options - Detection options including threshold overrides
208
+ * @param concurrency - Max parallel vector queries
209
+ * @returns One {@link RecordQueryResult} per input record
142
210
  */
143
211
  protected QueryDuplicatesForRecords(records: BaseEntity[], vectors: number[][], templateTexts: string[], entityDocument: MJEntityDocumentEntity, topK: number, options: DuplicateDetectionOptions, concurrency: number): Promise<RecordQueryResult[]>;
144
212
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"duplicateRecordDetector.d.ts","sourceRoot":"","sources":["../src/duplicateRecordDetector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duplicateRecordDetector.d.ts","sourceRoot":"","sources":["../src/duplicateRecordDetector.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,10 @@
15
15
  * @module @memberjunction/ai-vector-dupe
16
16
  */
17
17
  import { BaseEmbeddings, GetAIAPIKey } from "@memberjunction/ai";
18
- import { PotentialDuplicateResponse, CompositeKey, PotentialDuplicateResult, LogError, LogStatus, RecordMergeRequest, PotentialDuplicate, RunView, } from "@memberjunction/core";
18
+ import { PotentialDuplicateResponse, CompositeKey, PotentialDuplicateResult, LogError, LogStatus, RecordMergeRequest, PotentialDuplicate, } from "@memberjunction/core";
19
19
  import { VectorDBBase } from "@memberjunction/ai-vectordb";
20
20
  import { MJGlobal, UUIDsEqual } from "@memberjunction/global";
21
+ import { KnowledgeHubMetadataEngine, } from "@memberjunction/core-entities";
21
22
  import { VectorBase } from "@memberjunction/ai-vectors";
22
23
  import { EntityDocumentTemplateParser, EntityVectorSyncer } from "@memberjunction/ai-vector-sync";
23
24
  import { TemplateEngineServer } from "@memberjunction/templates";
@@ -27,6 +28,11 @@ const DEFAULT_TOP_K = 5;
27
28
  const DEFAULT_QUERY_CONCURRENCY = 10;
28
29
  /** Default batch size for loading records and parallel database saves */
29
30
  const DEFAULT_BATCH_SIZE = 500;
31
+ /**
32
+ * Maximum number of records to embed and query in a single vector similarity sub-batch.
33
+ * Keeps memory and API payload sizes bounded within each outer processing batch.
34
+ */
35
+ const VECTOR_QUERY_BATCH_SIZE = 100;
30
36
  /** Default batch size for parallel database saves */
31
37
  const SAVE_BATCH_SIZE = 20;
32
38
  /**
@@ -53,8 +59,27 @@ export class DuplicateRecordDetector extends VectorBase {
53
59
  * Run duplicate detection for records identified by ListID, ViewID, ExtraFilter,
54
60
  * or all records in the entity (vector-first approach).
55
61
  *
56
- * Flow: validate -> vectorize -> init providers -> load/create run ->
57
- * load record IDs -> batch(embed -> query -> persist) -> complete run -> auto-merge
62
+ * **Batching strategy:**
63
+ * - Records are loaded as lightweight IDs first, then processed in outer batches of
64
+ * {@link DEFAULT_BATCH_SIZE} (500) records.
65
+ * - Within each outer batch, embedding and vector similarity queries are further
66
+ * sub-batched into chunks of {@link VECTOR_QUERY_BATCH_SIZE} (100) records to keep
67
+ * API payloads and memory bounded.
68
+ * - Vector queries within each sub-batch run with configurable concurrency
69
+ * (default {@link DEFAULT_QUERY_CONCURRENCY} = 10).
70
+ *
71
+ * **Resume support:**
72
+ * - {@link MJDuplicateRunEntity.ProcessedItemCount} and
73
+ * {@link MJDuplicateRunEntity.LastProcessedOffset} are persisted after each outer batch.
74
+ * - On restart, processing resumes from {@link MJDuplicateRunEntity.LastProcessedOffset}.
75
+ *
76
+ * **Cancellation:**
77
+ * - {@link MJDuplicateRunEntity.CancellationRequested} is re-loaded from the database
78
+ * between outer batches. If set to `true`, processing stops and the run can be resumed later.
79
+ *
80
+ * @param params - The detection request specifying entity, document, list/view/filter, and options
81
+ * @param contextUser - The user context for entity operations and security
82
+ * @returns A response containing all potential duplicate results and an overall status
58
83
  */
59
84
  async GetDuplicateRecords(params, contextUser) {
60
85
  this.CurrentUser = contextUser;
@@ -93,17 +118,40 @@ export class DuplicateRecordDetector extends VectorBase {
93
118
  response.Status = 'Error';
94
119
  return response;
95
120
  }
96
- // Step 6: Process in batches
121
+ // Step 6: Process in batches with resume support
97
122
  const batchSize = DEFAULT_BATCH_SIZE;
98
123
  const concurrency = this.GetQueryConcurrency(entityDocument);
99
124
  const topK = options.TopK ?? DEFAULT_TOP_K;
100
125
  const templateParser = EntityDocumentTemplateParser.CreateInstance();
101
126
  let totalMatchesFound = 0;
102
- for (let offset = 0; offset < recordIDs.length; offset += batchSize) {
127
+ // Update run with total count for progress tracking
128
+ duplicateRun.TotalItemCount = recordIDs.length;
129
+ duplicateRun.BatchSize = batchSize;
130
+ await this.SaveEntity(duplicateRun);
131
+ // Resume from last processed offset if available
132
+ const resumeOffset = duplicateRun.LastProcessedOffset ?? 0;
133
+ if (resumeOffset > 0) {
134
+ LogStatus(`Duplicate detection: resuming from offset ${resumeOffset}`);
135
+ }
136
+ for (let offset = resumeOffset; offset < recordIDs.length; offset += batchSize) {
137
+ // Check for cancellation between batches
138
+ await duplicateRun.Load(duplicateRun.ID);
139
+ if (duplicateRun.CancellationRequested) {
140
+ LogStatus(`Duplicate detection: cancellation requested at offset ${offset}`);
141
+ duplicateRun.ProcessingStatus = 'In Progress'; // Will be resumed later
142
+ duplicateRun.EndedAt = new Date();
143
+ await this.SaveEntity(duplicateRun);
144
+ response.Status = 'Success'; // Partial success — can be resumed
145
+ return response;
146
+ }
103
147
  const batchIDs = recordIDs.slice(offset, offset + batchSize);
104
148
  const batchResults = await this.ProcessBatch(batchIDs, entityInfo, entityDocument, templateParser, duplicateRun.ID, topK, concurrency, options, startTime, recordIDs.length, offset, totalMatchesFound, contextUser);
105
149
  response.PotentialDuplicateResult.push(...batchResults.Results);
106
150
  totalMatchesFound += batchResults.MatchesFound;
151
+ // Update cursor for resume support
152
+ duplicateRun.ProcessedItemCount = offset + batchIDs.length;
153
+ duplicateRun.LastProcessedOffset = offset + batchSize;
154
+ await this.SaveEntity(duplicateRun);
107
155
  }
108
156
  // Step 7: Complete the duplicate run
109
157
  duplicateRun.ProcessingStatus = 'Complete';
@@ -156,7 +204,30 @@ export class DuplicateRecordDetector extends VectorBase {
156
204
  // Batch Processing
157
205
  // ─────────────────────────────────────────────
158
206
  /**
159
- * Result from processing a single batch of records.
207
+ * Process a single outer batch of record IDs through the full duplicate detection pipeline.
208
+ *
209
+ * Steps:
210
+ * 1. Load full record data for template rendering
211
+ * 2. Build source metadata for rich UI display
212
+ * 3. Create DuplicateRunDetail records
213
+ * 4. Sub-batch records into chunks of {@link VECTOR_QUERY_BATCH_SIZE} (default 100)
214
+ * for embedding + vector similarity querying, keeping memory and API payloads bounded
215
+ * 5. Persist match results and update run details
216
+ *
217
+ * @param batchIDs - Primary key values for records in this batch
218
+ * @param entityInfo - Entity metadata
219
+ * @param entityDocument - The entity document driving vectorization
220
+ * @param templateParser - Reusable template parser instance
221
+ * @param duplicateRunID - ID of the parent DuplicateRun record
222
+ * @param topK - Number of nearest neighbors to retrieve per record
223
+ * @param concurrency - Max parallel vector queries within each sub-batch
224
+ * @param options - Detection options (thresholds, callbacks, etc.)
225
+ * @param startTime - Epoch ms for elapsed-time progress reporting
226
+ * @param totalRecords - Total records across all batches (for progress reporting)
227
+ * @param processedSoFar - Records processed before this batch (for progress reporting)
228
+ * @param matchesSoFar - Matches found before this batch (for progress reporting)
229
+ * @param contextUser - The user context for entity operations
230
+ * @returns Combined results and match count for this batch
160
231
  */
161
232
  async ProcessBatch(batchIDs, entityInfo, entityDocument, templateParser, duplicateRunID, topK, concurrency, options, startTime, totalRecords, processedSoFar, matchesSoFar, contextUser) {
162
233
  // 6a: Load full record data for this batch (needed for template rendering)
@@ -173,16 +244,24 @@ export class DuplicateRecordDetector extends VectorBase {
173
244
  const sourceMetadataMap = this.buildSourceMetadataMap(records, entityInfo);
174
245
  // 6c: Create DuplicateRunDetail records for this batch
175
246
  const duplicateRunDetails = await this.CreateRunDetailRecords(batchIDs, duplicateRunID, entityInfo, sourceMetadataMap);
176
- // 6c: Generate template texts and embed
177
- this.reportProgress(options, 'Embedding', totalRecords, processedSoFar, matchesSoFar, startTime);
178
- const templateTexts = await this.GenerateTemplateTexts(templateParser, entityDocument, records, contextUser);
179
- const embedResult = await this.embedding.EmbedTexts({ texts: templateTexts, model: null });
180
- // 6d: Query vector DB for each record with concurrency control
181
- this.reportProgress(options, 'Querying', totalRecords, processedSoFar, matchesSoFar, startTime);
182
- const queryResults = await this.QueryDuplicatesForRecords(records, embedResult.vectors, templateTexts, entityDocument, topK, options, concurrency);
247
+ // 6d: Sub-batch embedding + vector queries in chunks of VECTOR_QUERY_BATCH_SIZE
248
+ // to keep API payload sizes and memory bounded
249
+ const allQueryResults = [];
250
+ const subBatches = chunkArray(records, VECTOR_QUERY_BATCH_SIZE);
251
+ for (let i = 0; i < subBatches.length; i++) {
252
+ const subRecords = subBatches[i];
253
+ // Embed this sub-batch
254
+ this.reportProgress(options, 'Embedding', totalRecords, processedSoFar, matchesSoFar, startTime);
255
+ const subTemplateTexts = await this.GenerateTemplateTexts(templateParser, entityDocument, subRecords, contextUser);
256
+ const subEmbedResult = await this.embedding.EmbedTexts({ texts: subTemplateTexts, model: null });
257
+ // Query vector DB for each record in the sub-batch with concurrency control
258
+ this.reportProgress(options, 'Querying', totalRecords, processedSoFar, matchesSoFar, startTime);
259
+ const subQueryResults = await this.QueryDuplicatesForRecords(subRecords, subEmbedResult.vectors, subTemplateTexts, entityDocument, topK, options, concurrency);
260
+ allQueryResults.push(...subQueryResults);
261
+ }
183
262
  // 6e: Persist match results and update run details
184
263
  this.reportProgress(options, 'Matching', totalRecords, processedSoFar + records.length, matchesSoFar, startTime);
185
- const results = await this.PersistMatchResults(queryResults, duplicateRunDetails, entityDocument, options, startTime);
264
+ const results = await this.PersistMatchResults(allQueryResults, duplicateRunDetails, entityDocument, options, startTime);
186
265
  const batchMatches = results.reduce((sum, r) => sum + r.Duplicates.length, 0);
187
266
  return { Results: results, MatchesFound: batchMatches };
188
267
  }
@@ -264,15 +343,26 @@ export class DuplicateRecordDetector extends VectorBase {
264
343
  /**
265
344
  * Validate and return an entity document, or null if not found.
266
345
  */
346
+ /**
347
+ * Validates that an entity document exists and is usable. Uses the
348
+ * KnowledgeHubMetadataEngine cache for instant lookups without database queries.
349
+ */
267
350
  async ValidateEntityDocument(entityDocumentID) {
268
- const vectorizer = new EntityVectorSyncer();
269
- vectorizer.CurrentUser = this.CurrentUser;
270
- return vectorizer.GetEntityDocument(entityDocumentID);
351
+ // Ensure KH engine is initialized (no-op if already loaded)
352
+ await KnowledgeHubMetadataEngine.Instance.Config(false, this.CurrentUser);
353
+ const doc = KnowledgeHubMetadataEngine.Instance.GetEntityDocumentById(entityDocumentID);
354
+ return doc ?? null;
271
355
  }
272
356
  /**
273
- * Initialize embedding and vector DB providers via ClassFactory.
357
+ * Initializes embedding model, vector DB, and index name providers.
358
+ * Called once per detection run rather than per-record. Uses AIEngine
359
+ * and KnowledgeHubMetadataEngine caches to avoid redundant database queries.
274
360
  */
275
361
  async InitializeProviders(entityDocument) {
362
+ // Skip re-initialization if providers are already set for this entity document
363
+ if (this.embedding && this.vectorDB && this.indexName) {
364
+ return;
365
+ }
276
366
  const aiModel = this.GetAIModel(entityDocument.AIModelID);
277
367
  const vectorDB = this.GetVectorDatabase(entityDocument.VectorDatabaseID);
278
368
  const embeddingAPIKey = GetAIAPIKey(aiModel.DriverClass);
@@ -292,22 +382,17 @@ export class DuplicateRecordDetector extends VectorBase {
292
382
  throw new Error(`Failed to create VectorDB instance for ${vectorDB.ClassKey}`);
293
383
  }
294
384
  // Resolve the vector index name from the entity document's VectorIndexID
295
- // This is the actual Pinecone/pgvector/Qdrant index name needed for QueryIndex calls
385
+ // Uses KnowledgeHubMetadataEngine cache instead of a RunView query
296
386
  if (entityDocument.VectorIndexID) {
297
- const rv = new RunView();
298
- const indexResult = await rv.RunView({
299
- EntityName: 'MJ: Vector Indexes',
300
- ExtraFilter: `ID='${entityDocument.VectorIndexID}'`,
301
- Fields: ['Name'],
302
- ResultType: 'simple',
303
- MaxRows: 1
304
- }, this.CurrentUser);
305
- if (indexResult.Success && indexResult.Results.length > 0) {
306
- this.indexName = indexResult.Results[0].Name;
387
+ const vectorIndex = KnowledgeHubMetadataEngine.Instance.GetVectorIndexById(entityDocument.VectorIndexID);
388
+ if (vectorIndex) {
389
+ this.indexName = vectorIndex.Name;
307
390
  }
308
391
  }
309
392
  if (!this.indexName) {
310
- throw new Error(`No vector index found for entity document "${entityDocument.Name}". Ensure VectorIndexID is set on the entity document.`);
393
+ throw new Error(`No vector index found for entity document "${entityDocument.Name}" (ID: ${entityDocument.ID}). ` +
394
+ `Ensure VectorIndexID is set on the entity document. You can create and assign a Vector Index ` +
395
+ `in the Knowledge Hub > Vector Indexes section.`);
311
396
  }
312
397
  LogStatus(`Providers initialized: AI Model=${aiModel.DriverClass}, VectorDB=${vectorDB.ClassKey}, Index=${this.indexName}`);
313
398
  }
@@ -500,7 +585,27 @@ export class DuplicateRecordDetector extends VectorBase {
500
585
  // ─────────────────────────────────────────────
501
586
  /**
502
587
  * Query the vector DB for duplicates of each record, with concurrency control.
503
- * Supports hybrid search and RRF fusion when the vector DB supports it.
588
+ *
589
+ * Creates one async task per record, then executes them via {@link RunWithConcurrency}
590
+ * with the specified concurrency limit. Each task embeds and queries a single record
591
+ * against the vector index.
592
+ *
593
+ * Supports hybrid search (vector + keyword) with RRF fusion when the vector DB provider
594
+ * supports it (checked via `SupportsHybridSearch`).
595
+ *
596
+ * Post-query, results are:
597
+ * 1. Parsed from raw vector matches into typed {@link PotentialDuplicate} objects
598
+ * 2. Filtered to remove self-matches (same record as source)
599
+ * 3. Filtered by the potential match threshold (from options or entity document)
600
+ *
601
+ * @param records - The source records to find duplicates for
602
+ * @param vectors - Pre-computed embedding vectors, one per record (same index order)
603
+ * @param templateTexts - Rendered template texts for hybrid keyword search
604
+ * @param entityDocument - The entity document providing thresholds and configuration
605
+ * @param topK - Number of nearest neighbors to retrieve per record
606
+ * @param options - Detection options including threshold overrides
607
+ * @param concurrency - Max parallel vector queries
608
+ * @returns One {@link RecordQueryResult} per input record
504
609
  */
505
610
  async QueryDuplicatesForRecords(records, vectors, templateTexts, entityDocument, topK, options, concurrency) {
506
611
  const tasks = records.map((record, index) => async () => {
@@ -581,10 +686,19 @@ export class DuplicateRecordDetector extends VectorBase {
581
686
  */
582
687
  buildSourceMetadataMap(records, entityInfo) {
583
688
  const metadataMap = new Map();
584
- const nameField = entityInfo.NameField;
585
- // Collect a small set of useful display fields
586
- const displayFieldNames = ['Name', 'Title', 'Description', 'Status', 'Type']
587
- .filter(fn => entityInfo.Fields.find(f => f.Name === fn));
689
+ // Combine all IsNameField fields in Sequence order for the display name
690
+ const nameFields = entityInfo.Fields
691
+ .filter(f => f.IsNameField)
692
+ .sort((a, b) => (a.Sequence ?? 9999) - (b.Sequence ?? 9999));
693
+ // Fall back to singular NameField if no IsNameField flags
694
+ if (nameFields.length === 0 && entityInfo.NameField) {
695
+ nameFields.push(entityInfo.NameField);
696
+ }
697
+ // Use DefaultInView fields for display, plus IsNameField fields
698
+ const internalNames = new Set(['ID', '__mj_CreatedAt', '__mj_UpdatedAt']);
699
+ const displayFields = entityInfo.Fields
700
+ .filter(f => f.DefaultInView && !f.IsPrimaryKey && !internalNames.has(f.Name))
701
+ .sort((a, b) => (a.Sequence ?? 9999) - (b.Sequence ?? 9999));
588
702
  for (const record of records) {
589
703
  const pk = record.PrimaryKey;
590
704
  const id = pk.KeyValuePairs.length === 1 ? String(pk.KeyValuePairs[0].Value) : pk.Values();
@@ -594,17 +708,27 @@ export class DuplicateRecordDetector extends VectorBase {
594
708
  if (entityInfo.Icon) {
595
709
  meta['EntityIcon'] = entityInfo.Icon;
596
710
  }
597
- if (nameField) {
598
- const nameVal = record.Get(nameField.Name);
599
- if (nameVal != null)
600
- meta['Name'] = String(nameVal);
711
+ // Store combined name from all IsNameField fields
712
+ const nameParts = nameFields
713
+ .map(f => record.Get(f.Name))
714
+ .filter(v => v != null && String(v).trim() !== '')
715
+ .map(v => String(v));
716
+ if (nameParts.length > 0) {
717
+ meta['Name'] = nameParts.join(' ');
718
+ }
719
+ // Store all IsNameField values individually for downstream resolution
720
+ for (const nf of nameFields) {
721
+ const val = record.Get(nf.Name);
722
+ if (val != null)
723
+ meta[nf.Name] = String(val);
601
724
  }
602
- for (const fn of displayFieldNames) {
603
- if (fn !== nameField?.Name) {
604
- const val = record.Get(fn);
725
+ // Store DefaultInView fields for rich display
726
+ for (const field of displayFields) {
727
+ if (!meta[field.Name]) { // Don't overwrite name fields
728
+ const val = record.Get(field.Name);
605
729
  if (val != null) {
606
730
  const str = String(val);
607
- meta[fn] = str.length > 200 ? str.substring(0, 197) + '...' : str;
731
+ meta[field.Name] = str.length > 200 ? str.substring(0, 197) + '...' : str;
608
732
  }
609
733
  }
610
734
  }
@@ -1 +1 @@
1
- {"version":3,"file":"duplicateRecordDetector.js","sourceRoot":"","sources":["../src/duplicateRecordDetector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duplicateRecordDetector.js","sourceRoot":"","sources":["../src/duplicateRecordDetector.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/ai-vector-dupe",
3
3
  "type": "module",
4
- "version": "5.23.0",
4
+ "version": "5.25.0",
5
5
  "description": "MemberJunction: AI Vector/Entity Sync Package - Handles synchronization between Vector DB and MJ CDP Data",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -17,15 +17,15 @@
17
17
  "author": "MemberJunction.com",
18
18
  "license": "ISC",
19
19
  "dependencies": {
20
- "@memberjunction/ai": "5.23.0",
21
- "@memberjunction/ai-vectordb": "5.23.0",
22
- "@memberjunction/ai-vectors": "5.23.0",
23
- "@memberjunction/templates": "5.23.0",
24
- "@memberjunction/ai-vector-sync": "5.23.0",
25
- "@memberjunction/aiengine": "5.23.0",
26
- "@memberjunction/core": "5.23.0",
27
- "@memberjunction/global": "5.23.0",
28
- "@memberjunction/core-entities": "5.23.0",
20
+ "@memberjunction/ai": "5.25.0",
21
+ "@memberjunction/ai-vectordb": "5.25.0",
22
+ "@memberjunction/ai-vectors": "5.25.0",
23
+ "@memberjunction/templates": "5.25.0",
24
+ "@memberjunction/ai-vector-sync": "5.25.0",
25
+ "@memberjunction/aiengine": "5.25.0",
26
+ "@memberjunction/core": "5.25.0",
27
+ "@memberjunction/global": "5.25.0",
28
+ "@memberjunction/core-entities": "5.25.0",
29
29
  "dotenv": "^17.2.4"
30
30
  },
31
31
  "devDependencies": {