@memberjunction/content-autotagging 5.23.0 → 5.24.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.
Files changed (42) hide show
  1. package/dist/CloudStorage/generic/CloudStorageBase.js +1 -1
  2. package/dist/CloudStorage/generic/CloudStorageBase.js.map +1 -1
  3. package/dist/CloudStorage/index.d.ts +5 -0
  4. package/dist/CloudStorage/index.d.ts.map +1 -1
  5. package/dist/CloudStorage/index.js +5 -0
  6. package/dist/CloudStorage/index.js.map +1 -1
  7. package/dist/CloudStorage/providers/AutotagCloudStorage.d.ts +61 -0
  8. package/dist/CloudStorage/providers/AutotagCloudStorage.d.ts.map +1 -0
  9. package/dist/CloudStorage/providers/AutotagCloudStorage.js +256 -0
  10. package/dist/CloudStorage/providers/AutotagCloudStorage.js.map +1 -0
  11. package/dist/Core/generic/AutotagBase.d.ts +7 -1
  12. package/dist/Core/generic/AutotagBase.d.ts.map +1 -1
  13. package/dist/Core/generic/AutotagBase.js.map +1 -1
  14. package/dist/Engine/generic/AutotagBaseEngine.d.ts +318 -18
  15. package/dist/Engine/generic/AutotagBaseEngine.d.ts.map +1 -1
  16. package/dist/Engine/generic/AutotagBaseEngine.js +1024 -176
  17. package/dist/Engine/generic/AutotagBaseEngine.js.map +1 -1
  18. package/dist/Engine/generic/RateLimiter.d.ts +49 -0
  19. package/dist/Engine/generic/RateLimiter.d.ts.map +1 -0
  20. package/dist/Engine/generic/RateLimiter.js +98 -0
  21. package/dist/Engine/generic/RateLimiter.js.map +1 -0
  22. package/dist/Engine/index.d.ts +1 -0
  23. package/dist/Engine/index.d.ts.map +1 -1
  24. package/dist/Engine/index.js +1 -0
  25. package/dist/Engine/index.js.map +1 -1
  26. package/dist/Entity/generic/AutotagEntity.d.ts +63 -14
  27. package/dist/Entity/generic/AutotagEntity.d.ts.map +1 -1
  28. package/dist/Entity/generic/AutotagEntity.js +362 -83
  29. package/dist/Entity/generic/AutotagEntity.js.map +1 -1
  30. package/dist/LocalFileSystem/generic/AutotagLocalFileSystem.js +1 -1
  31. package/dist/LocalFileSystem/generic/AutotagLocalFileSystem.js.map +1 -1
  32. package/dist/RSSFeed/generic/AutotagRSSFeed.d.ts +47 -16
  33. package/dist/RSSFeed/generic/AutotagRSSFeed.d.ts.map +1 -1
  34. package/dist/RSSFeed/generic/AutotagRSSFeed.js +238 -120
  35. package/dist/RSSFeed/generic/AutotagRSSFeed.js.map +1 -1
  36. package/dist/Websites/generic/AutotagWebsite.js +1 -1
  37. package/dist/Websites/generic/AutotagWebsite.js.map +1 -1
  38. package/dist/index.d.ts +1 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +1 -0
  41. package/dist/index.js.map +1 -1
  42. package/package.json +16 -11
@@ -4,127 +4,406 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { RegisterClass } from "@memberjunction/global";
7
+ import { RegisterClass, UUIDsEqual, NormalizeUUID } from "@memberjunction/global";
11
8
  import { AutotagBase } from "../../Core/index.js";
12
9
  import { AutotagBaseEngine } from "../../Engine/index.js";
13
- import { Metadata, RunView, LogStatus } from "@memberjunction/core";
10
+ import { Metadata, RunView, LogStatus, LogError } from "@memberjunction/core";
11
+ import { EntityDocumentTemplateParser } from "@memberjunction/ai-vector-sync";
12
+ import { TemplateEngineServer } from "@memberjunction/templates";
13
+ import { TagEngine } from "@memberjunction/tag-engine";
14
+ /**
15
+ * Autotag provider for MJ entity records. Uses the EntityDocument template pipeline
16
+ * to render records into text, creates EntityRecordDocument snapshots, links them
17
+ * to ContentItems, and feeds the text through the LLM autotagging pipeline.
18
+ *
19
+ * Configuration is driven by ContentSource.EntityID and ContentSource.EntityDocumentID
20
+ * rather than the legacy ContentSourceParam key/value approach.
21
+ */
14
22
  let AutotagEntity = class AutotagEntity extends AutotagBase {
15
23
  constructor() {
16
- super();
17
- this.engine = AutotagBaseEngine.Instance;
24
+ super(...arguments);
25
+ /** Cached content source configs keyed by normalized source ID for bridge callback */
26
+ this.sourceConfigMap = new Map();
27
+ /** Cached content source entities keyed by normalized source ID for ERD lookups */
28
+ this.contentSourceMap = new Map();
18
29
  }
19
- async Autotag(contextUser, onProgress) {
30
+ async Autotag(contextUser, onProgress, contentSourceIDs) {
20
31
  this.contextUser = contextUser;
32
+ this.engine = AutotagBaseEngine.Instance;
21
33
  this.contentSourceTypeID = this.engine.SetSubclassContentSourceType('Entity');
22
- const contentSources = await this.engine.getAllContentSources(this.contextUser, this.contentSourceTypeID) || [];
34
+ let contentSources = await this.engine.getAllContentSources(contextUser, this.contentSourceTypeID);
35
+ // Apply source ID filter if specified
36
+ if (contentSourceIDs && contentSourceIDs.length > 0) {
37
+ contentSources = contentSources.filter(s => contentSourceIDs.some(id => UUIDsEqual(id, s.ID)));
38
+ }
39
+ // Cache content source configs and set up taxonomy
40
+ await this.SetupTaxonomyAndBridge(contentSources, contextUser);
23
41
  const contentItemsToProcess = await this.SetContentItemsToProcess(contentSources);
24
- await this.engine.ExtractTextAndProcessWithLLM(contentItemsToProcess, this.contextUser, undefined, onProgress);
42
+ if (contentItemsToProcess.length > 0) {
43
+ await this.engine.ExtractTextAndProcessWithLLM(contentItemsToProcess, contextUser, undefined, undefined, onProgress);
44
+ }
45
+ else {
46
+ LogStatus('AutotagEntity: no new or modified entity records to process');
47
+ }
48
+ // Clean up engine state
49
+ this.engine.TaxonomyContext = null;
50
+ this.engine.OnContentItemTagSaved = null;
51
+ }
52
+ /**
53
+ * Initialize the TagEngine, inject taxonomy into the prompt, and set up the
54
+ * bridge callback that links ContentItemTags to formal Tag + TaggedItem records.
55
+ */
56
+ async SetupTaxonomyAndBridge(contentSources, contextUser) {
57
+ // Cache source configs for bridge callback — use CodeGen-generated typed accessor
58
+ for (const source of contentSources) {
59
+ const normalizedID = NormalizeUUID(source.ID);
60
+ this.contentSourceMap.set(normalizedID, source);
61
+ const config = source.ConfigurationObject;
62
+ if (config) {
63
+ this.sourceConfigMap.set(normalizedID, config);
64
+ }
65
+ }
66
+ // Initialize TagEngine (loads tags + generates embeddings)
67
+ try {
68
+ await TagEngine.Instance.Config(false, contextUser);
69
+ }
70
+ catch (e) {
71
+ const msg = e instanceof Error ? e.message : String(e);
72
+ LogError(`AutotagEntity: TagEngine initialization failed, taxonomy features disabled: ${msg}`);
73
+ return;
74
+ }
75
+ // Inject taxonomy context into the prompt (if any source has ShareTaxonomyWithLLM enabled)
76
+ const shouldShareTaxonomy = Array.from(this.sourceConfigMap.values()).some(c => c.ShareTaxonomyWithLLM !== false // default true
77
+ );
78
+ if (shouldShareTaxonomy && TagEngine.Instance.Tags.length > 0) {
79
+ // Determine the narrowest taxonomy root across all sources
80
+ const rootIDs = Array.from(this.sourceConfigMap.values())
81
+ .map(c => c.TagRootID)
82
+ .filter((id) => id != null);
83
+ const taxonomyRoot = rootIDs.length === 1 ? rootIDs[0] : undefined;
84
+ const tree = TagEngine.Instance.GetTaxonomyTree(taxonomyRoot);
85
+ this.engine.TaxonomyContext = JSON.stringify(tree, null, 2);
86
+ }
87
+ // Set up the bridge callback for tag taxonomy linking
88
+ this.engine.OnContentItemTagSaved = async (contentItemTag, parentTagName, ctxUser) => {
89
+ await this.BridgeContentItemTagToTaxonomy(contentItemTag, parentTagName, ctxUser);
90
+ };
91
+ }
92
+ /**
93
+ * Bridge a ContentItemTag to the formal MJ Tag taxonomy.
94
+ * Uses TagEngine.ResolveTag() for semantic matching with mode/threshold from source config.
95
+ * Creates a TaggedItem linking the resolved Tag to the source entity record.
96
+ */
97
+ async BridgeContentItemTagToTaxonomy(contentItemTag, parentTagName, contextUser) {
98
+ // Find the source config for this content item
99
+ const rv = new RunView();
100
+ const ciResult = await rv.RunView({
101
+ EntityName: 'MJ: Content Items',
102
+ ExtraFilter: `ID='${contentItemTag.ItemID}'`,
103
+ Fields: ['ID', 'ContentSourceID', 'EntityRecordDocumentID'],
104
+ ResultType: 'simple',
105
+ MaxRows: 1
106
+ }, contextUser);
107
+ if (!ciResult.Success || ciResult.Results.length === 0)
108
+ return;
109
+ const ci = ciResult.Results[0];
110
+ const erdID = ci.EntityRecordDocumentID;
111
+ if (!erdID)
112
+ return; // not entity-sourced
113
+ const sourceID = ci.ContentSourceID;
114
+ const config = this.sourceConfigMap.get(NormalizeUUID(sourceID));
115
+ const mode = config?.TagTaxonomyMode ?? 'auto-grow';
116
+ const rootID = config?.TagRootID ?? null;
117
+ const threshold = config?.TagMatchThreshold ?? 0.9;
118
+ // If parent tag is suggested by LLM, resolve it through the mutex too
119
+ // to prevent duplicate parent tags from concurrent batch processing.
120
+ // ResolveTag handles find-or-create atomically.
121
+ if (parentTagName && mode !== 'constrained') {
122
+ await TagEngine.Instance.ResolveTag(parentTagName, 0, mode, rootID, threshold, contextUser);
123
+ }
124
+ // Resolve the tag to a formal Tag record
125
+ const formalTag = await TagEngine.Instance.ResolveTag(contentItemTag.Tag, contentItemTag.Weight, mode, rootID, threshold, contextUser);
126
+ if (!formalTag)
127
+ return; // constrained mode, no match
128
+ // Link ContentItemTag to formal Tag
129
+ contentItemTag.TagID = formalTag.ID;
130
+ await contentItemTag.Save();
131
+ // Load ERD to get source entity info
132
+ const erdResult = await rv.RunView({
133
+ EntityName: 'MJ: Entity Record Documents',
134
+ ExtraFilter: `ID='${erdID}'`,
135
+ Fields: ['ID', 'EntityID', 'RecordID'],
136
+ ResultType: 'simple',
137
+ MaxRows: 1
138
+ }, contextUser);
139
+ if (!erdResult.Success || erdResult.Results.length === 0)
140
+ return;
141
+ const erd = erdResult.Results[0];
142
+ // Create TaggedItem linking formal Tag to source entity record
143
+ await TagEngine.Instance.CreateTaggedItem(formalTag.ID, erd.EntityID, erd.RecordID, contentItemTag.Weight, contextUser);
25
144
  }
26
145
  async SetContentItemsToProcess(contentSources) {
27
146
  const contentItemsToProcess = [];
28
147
  for (const contentSource of contentSources) {
29
- const contentSourceParamsMap = await this.engine.getContentSourceParams(contentSource, this.contextUser);
30
- if (contentSourceParamsMap) {
31
- this.applyContentSourceParams(contentSourceParamsMap);
32
- }
33
- const contentSourceParams = {
34
- contentSourceID: contentSource.ID,
35
- name: contentSource.Name,
36
- ContentTypeID: contentSource.ContentTypeID,
37
- ContentFileTypeID: contentSource.ContentFileTypeID,
38
- ContentSourceTypeID: contentSource.ContentSourceTypeID,
39
- URL: contentSource.URL
40
- };
41
- const contentItems = await this.getNewOrModifiedContentItems(contentSourceParams, this.contextUser);
42
- if (contentItems && contentItems.length > 0) {
43
- contentItemsToProcess.push(...contentItems);
148
+ try {
149
+ const items = await this.ProcessContentSource(contentSource);
150
+ contentItemsToProcess.push(...items);
44
151
  }
45
- else {
46
- LogStatus(`No content items found to process for content source: ${contentSource.Name}`);
152
+ catch (e) {
153
+ const msg = e instanceof Error ? e.message : String(e);
154
+ LogError(`AutotagEntity: failed to process content source "${contentSource.Name}": ${msg}`);
47
155
  }
48
156
  }
49
157
  return contentItemsToProcess;
50
158
  }
51
159
  /**
52
- * Applies content source parameters to this instance's known configurable fields.
160
+ * Process a single entity-type ContentSource: load entity records modified since last run,
161
+ * render via EntityDocument template, create/update ERD and ContentItem records.
53
162
  */
54
- applyContentSourceParams(params) {
55
- const configurableKeys = new Set(['EntityName', 'EntityFields']);
56
- params.forEach((value, key) => {
57
- if (configurableKeys.has(key)) {
58
- if (key === 'EntityName' && typeof value === 'string') {
59
- this.EntityName = value;
60
- }
61
- else if (key === 'EntityFields' && Array.isArray(value)) {
62
- this.EntityFields = value;
163
+ async ProcessContentSource(contentSource) {
164
+ const entityID = contentSource.EntityID;
165
+ const entityDocumentID = contentSource.EntityDocumentID;
166
+ if (!entityID || !entityDocumentID) {
167
+ LogError(`AutotagEntity: content source "${contentSource.Name}" is missing EntityID or EntityDocumentID`);
168
+ return [];
169
+ }
170
+ // Load the EntityDocument
171
+ const entityDocument = await this.LoadEntityDocument(entityDocumentID);
172
+ if (!entityDocument) {
173
+ LogError(`AutotagEntity: EntityDocument ${entityDocumentID} not found for source "${contentSource.Name}"`);
174
+ return [];
175
+ }
176
+ const templateText = await this.GetTemplateText(entityDocument);
177
+ if (!templateText) {
178
+ LogError(`AutotagEntity: no template content found for EntityDocument "${entityDocument.Name}"`);
179
+ return [];
180
+ }
181
+ // Resolve the entity name from metadata
182
+ const md = new Metadata();
183
+ const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityID));
184
+ if (!entityInfo) {
185
+ LogError(`AutotagEntity: entity with ID ${entityID} not found in metadata`);
186
+ return [];
187
+ }
188
+ // Get records modified since last run
189
+ const lastRunDate = await this.engine.getContentSourceLastRunDate(contentSource.ID, this.contextUser);
190
+ const modifiedRecords = await this.GetModifiedRecords(entityInfo.Name, lastRunDate);
191
+ if (modifiedRecords.length === 0) {
192
+ LogStatus(`AutotagEntity: no modified records for entity "${entityInfo.Name}" since ${lastRunDate.toISOString()}`);
193
+ return [];
194
+ }
195
+ LogStatus(`AutotagEntity: processing ${modifiedRecords.length} modified records for entity "${entityInfo.Name}"`);
196
+ // Load existing ERD records for this entity document to enable upsert
197
+ const existingERDs = await this.LoadExistingERDs(entityDocumentID, entityID);
198
+ // Load existing ContentItems for this source to enable upsert
199
+ const existingContentItems = await this.LoadExistingContentItems(contentSource.ID);
200
+ // Process each record: render template → create/update ERD → create/update ContentItem
201
+ const contentItems = [];
202
+ const parser = EntityDocumentTemplateParser.CreateInstance();
203
+ const pkFieldName = entityInfo.FirstPrimaryKey.Name;
204
+ for (const record of modifiedRecords) {
205
+ const recordID = String(record[pkFieldName] ?? '');
206
+ try {
207
+ const contentItem = await this.ProcessSingleRecord(record, recordID, contentSource, entityDocument, templateText, parser, existingERDs, existingContentItems);
208
+ if (contentItem) {
209
+ contentItems.push(contentItem);
63
210
  }
64
211
  }
65
- });
212
+ catch (e) {
213
+ const msg = e instanceof Error ? e.message : String(e);
214
+ LogError(`AutotagEntity: failed to process record ${recordID} for entity "${entityInfo.Name}": ${msg}`);
215
+ }
216
+ }
217
+ return contentItems;
66
218
  }
67
- async getNewOrModifiedContentItems(contentSourceParams, contextUser) {
68
- const lastRunDate = await this.engine.getContentSourceLastRunDate(contentSourceParams.contentSourceID, contextUser);
69
- const lastRunDateISOString = lastRunDate.toISOString();
219
+ /**
220
+ * Load an EntityDocument by ID using RunView.
221
+ */
222
+ async LoadEntityDocument(entityDocumentID) {
70
223
  const rv = new RunView();
71
- const results = await rv.RunView({
72
- EntityName: this.EntityName,
73
- Fields: this.EntityFields,
74
- ExtraFilter: `__mj_UpdatedAt > '${lastRunDateISOString}'`,
75
- ResultType: 'entity_object'
76
- }, contextUser);
77
- if (results.Results && results.Results.length > 0) {
78
- return this.setContentItemsFromEntityResults(results.Results, contentSourceParams, lastRunDate);
224
+ const result = await rv.RunView({
225
+ EntityName: 'MJ: Entity Documents',
226
+ ExtraFilter: `ID='${entityDocumentID}'`,
227
+ ResultType: 'entity_object',
228
+ MaxRows: 1
229
+ }, this.contextUser);
230
+ if (result.Success && result.Results.length > 0) {
231
+ return result.Results[0];
232
+ }
233
+ return null;
234
+ }
235
+ /**
236
+ * Retrieves the template text from the EntityDocument's linked Template.
237
+ * Ensures TemplateEngineServer is configured before accessing Templates.
238
+ */
239
+ async GetTemplateText(entityDocument) {
240
+ if (!entityDocument.TemplateID)
241
+ return null;
242
+ // Ensure engine is loaded (no-op if already configured)
243
+ await TemplateEngineServer.Instance.Config(false, this.contextUser);
244
+ const template = TemplateEngineServer.Instance.Templates.find((t) => UUIDsEqual(t.ID, entityDocument.TemplateID));
245
+ if (!template || template.Content.length === 0) {
246
+ return null;
247
+ }
248
+ return template.Content[0].TemplateText;
249
+ }
250
+ /**
251
+ * Query entity records modified since lastRunDate using __mj_UpdatedAt.
252
+ */
253
+ async GetModifiedRecords(entityName, lastRunDate) {
254
+ const rv = new RunView();
255
+ const result = await rv.RunView({
256
+ EntityName: entityName,
257
+ ExtraFilter: `__mj_UpdatedAt > '${lastRunDate.toISOString()}'`,
258
+ ResultType: 'simple'
259
+ }, this.contextUser);
260
+ if (result.Success) {
261
+ return result.Results;
79
262
  }
80
263
  return [];
81
264
  }
82
- async setContentItemsFromEntityResults(results, contentSourceParams, lastRunDate) {
83
- const contentItems = [];
84
- for (const result of results) {
85
- const lastUpdatedAt = result.Get('__mj_UpdatedAt');
86
- if (lastUpdatedAt > lastRunDate) {
87
- const contentItem = await this.setNewContentItem(result, contentSourceParams);
88
- if (contentItem) {
89
- contentItems.push(contentItem);
265
+ /**
266
+ * Load existing EntityRecordDocument records for this entity document,
267
+ * keyed by normalized RecordID for fast lookup.
268
+ */
269
+ async LoadExistingERDs(entityDocumentID, entityID) {
270
+ const rv = new RunView();
271
+ const result = await rv.RunView({
272
+ EntityName: 'MJ: Entity Record Documents',
273
+ ExtraFilter: `EntityDocumentID='${entityDocumentID}' AND EntityID='${entityID}'`,
274
+ ResultType: 'entity_object'
275
+ }, this.contextUser);
276
+ const map = new Map();
277
+ if (result.Success) {
278
+ for (const erd of result.Results) {
279
+ map.set(erd.RecordID, erd);
280
+ }
281
+ }
282
+ return map;
283
+ }
284
+ /**
285
+ * Load existing ContentItems for this content source, keyed by normalized
286
+ * EntityRecordDocumentID for fast lookup during upsert.
287
+ */
288
+ async LoadExistingContentItems(contentSourceID) {
289
+ const rv = new RunView();
290
+ const result = await rv.RunView({
291
+ EntityName: 'MJ: Content Items',
292
+ ExtraFilter: `ContentSourceID='${contentSourceID}'`,
293
+ ResultType: 'entity_object'
294
+ }, this.contextUser);
295
+ const map = new Map();
296
+ if (result.Success) {
297
+ for (const ci of result.Results) {
298
+ if (ci.EntityRecordDocumentID) {
299
+ map.set(NormalizeUUID(ci.EntityRecordDocumentID), ci);
90
300
  }
91
301
  }
92
302
  }
93
- return contentItems;
303
+ return map;
304
+ }
305
+ /**
306
+ * Process a single entity record: render template, create/update ERD, create/update ContentItem.
307
+ */
308
+ async ProcessSingleRecord(record, recordID, contentSource, entityDocument, templateText, parser, existingERDs, existingContentItems) {
309
+ const entityID = contentSource.EntityID;
310
+ // 1. Render the template for this record
311
+ const renderedText = await parser.Parse(templateText, entityID, record, this.contextUser);
312
+ if (!renderedText || renderedText.trim().length === 0) {
313
+ LogStatus(`AutotagEntity: empty rendered text for record ${recordID}, skipping`);
314
+ return null;
315
+ }
316
+ // 2. Create or update EntityRecordDocument
317
+ const erd = await this.UpsertEntityRecordDocument(entityID, recordID, entityDocument, renderedText, existingERDs);
318
+ // 3. Compute checksum to detect content changes
319
+ const checksum = await this.engine.getChecksumFromText(renderedText);
320
+ // 4. Create or update ContentItem linked to ERD
321
+ const contentItem = await this.UpsertContentItem(contentSource, erd, renderedText, checksum, record, existingContentItems);
322
+ return contentItem;
94
323
  }
95
- async setNewContentItem(item, contentSourceParams) {
324
+ /**
325
+ * Create or update an EntityRecordDocument snapshot.
326
+ */
327
+ async UpsertEntityRecordDocument(entityID, recordID, entityDocument, documentText, existingERDs) {
96
328
  const md = new Metadata();
97
- const text = this.getTextFromEntityResult(item);
98
- const contentItem = await md.GetEntityObject('MJ: Content Items', this.contextUser);
99
- contentItem.NewRecord();
100
- contentItem.ContentSourceID = contentSourceParams.contentSourceID;
101
- contentItem.Name = contentSourceParams.name;
102
- contentItem.Description = this.engine.GetContentItemDescription(contentSourceParams);
103
- contentItem.ContentTypeID = contentSourceParams.ContentTypeID;
104
- contentItem.ContentFileTypeID = contentSourceParams.ContentFileTypeID;
105
- contentItem.ContentSourceTypeID = contentSourceParams.ContentSourceTypeID;
106
- contentItem.Text = text;
107
- contentItem.Checksum = await this.engine.getChecksumFromText(text);
108
- contentItem.URL = contentSourceParams.URL;
109
- if (await contentItem.Save()) {
110
- return contentItem;
329
+ let erd = existingERDs.get(recordID);
330
+ if (erd) {
331
+ // Update existing
332
+ erd.DocumentText = documentText;
333
+ erd.EntityRecordUpdatedAt = new Date();
334
+ }
335
+ else {
336
+ // Create new
337
+ erd = await md.GetEntityObject('MJ: Entity Record Documents', this.contextUser);
338
+ erd.NewRecord();
339
+ erd.EntityID = entityID;
340
+ erd.RecordID = recordID;
341
+ erd.EntityDocumentID = entityDocument.ID;
342
+ erd.DocumentText = documentText;
343
+ erd.VectorIndexID = entityDocument.VectorIndexID;
344
+ erd.EntityRecordUpdatedAt = new Date();
345
+ }
346
+ const saved = await erd.Save();
347
+ if (!saved) {
348
+ throw new Error(`Failed to save EntityRecordDocument for record ${recordID}`);
111
349
  }
112
- throw new Error('Failed to save content item');
350
+ // Update cache for subsequent lookups in this batch
351
+ existingERDs.set(recordID, erd);
352
+ return erd;
113
353
  }
114
354
  /**
115
- * Concatenates entity field values into a text string for processing.
116
- * Uses typed property access via GetAll() since entity fields are dynamic.
355
+ * Create or update a ContentItem linked to the EntityRecordDocument.
356
+ * Only creates a new ContentItem if the checksum changed (content actually changed)
357
+ * or if no ContentItem exists yet for this ERD.
117
358
  */
118
- getTextFromEntityResult(result) {
119
- const allData = result.GetAll();
120
- return this.EntityFields
121
- .map(field => `${field}: ${allData[field] ?? ''}`)
122
- .join('\n');
359
+ async UpsertContentItem(contentSource, erd, text, checksum, record, existingContentItems) {
360
+ const md = new Metadata();
361
+ const erdNormalizedID = NormalizeUUID(erd.ID);
362
+ const existing = existingContentItems.get(erdNormalizedID);
363
+ // If content hasn't changed, skip
364
+ if (existing && existing.Checksum === checksum) {
365
+ return null;
366
+ }
367
+ const contentSourceParams = {
368
+ contentSourceID: contentSource.ID,
369
+ name: contentSource.Name ?? '',
370
+ ContentTypeID: contentSource.ContentTypeID,
371
+ ContentFileTypeID: contentSource.ContentFileTypeID,
372
+ ContentSourceTypeID: contentSource.ContentSourceTypeID,
373
+ URL: contentSource.URL
374
+ };
375
+ let contentItem;
376
+ if (existing) {
377
+ // Update existing content item
378
+ contentItem = existing;
379
+ }
380
+ else {
381
+ // Create new content item
382
+ contentItem = await md.GetEntityObject('MJ: Content Items', this.contextUser);
383
+ contentItem.NewRecord();
384
+ contentItem.ContentSourceID = contentSourceParams.contentSourceID;
385
+ contentItem.ContentTypeID = contentSourceParams.ContentTypeID;
386
+ contentItem.ContentFileTypeID = contentSourceParams.ContentFileTypeID;
387
+ contentItem.ContentSourceTypeID = contentSourceParams.ContentSourceTypeID;
388
+ contentItem.URL = contentSourceParams.URL;
389
+ }
390
+ // Set/update fields
391
+ contentItem.Name = record['Name'] ?? contentSourceParams.name;
392
+ contentItem.Description = this.engine.GetContentItemDescription(contentSourceParams);
393
+ contentItem.Text = text;
394
+ contentItem.Checksum = checksum;
395
+ contentItem.EntityRecordDocumentID = erd.ID;
396
+ const saved = await contentItem.Save();
397
+ if (!saved) {
398
+ throw new Error(`Failed to save ContentItem for ERD ${erd.ID}`);
399
+ }
400
+ // Update cache
401
+ existingContentItems.set(erdNormalizedID, contentItem);
402
+ return contentItem;
123
403
  }
124
404
  };
125
405
  AutotagEntity = __decorate([
126
- RegisterClass(AutotagBase, 'AutotagEntity'),
127
- __metadata("design:paramtypes", [])
406
+ RegisterClass(AutotagBase, 'AutotagEntity')
128
407
  ], AutotagEntity);
129
408
  export { AutotagEntity };
130
409
  //# sourceMappingURL=AutotagEntity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutotagEntity.js","sourceRoot":"","sources":["../../../src/Entity/generic/AutotagEntity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutotagEntity.js","sourceRoot":"","sources":["../../../src/Entity/generic/AutotagEntity.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ let AutotagLocalFileSystem = class AutotagLocalFileSystem extends AutotagBase {
33
33
  this.contentSourceTypeID = this.engine.SetSubclassContentSourceType('Local File System');
34
34
  const contentSources = await this.engine.getAllContentSources(this.contextUser, this.contentSourceTypeID) || [];
35
35
  const contentItemsToProcess = await this.SetContentItemsToProcess(contentSources);
36
- await this.engine.ExtractTextAndProcessWithLLM(contentItemsToProcess, this.contextUser, undefined, onProgress);
36
+ await this.engine.ExtractTextAndProcessWithLLM(contentItemsToProcess, this.contextUser, undefined, undefined, onProgress);
37
37
  }
38
38
  /**
39
39
  * Implemented abstract method from the AutotagBase class. Given a list of content sources, this method should return a list
@@ -1 +1 @@
1
- {"version":3,"file":"AutotagLocalFileSystem.js","sourceRoot":"","sources":["../../../src/LocalFileSystem/generic/AutotagLocalFileSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutotagLocalFileSystem.js","sourceRoot":"","sources":["../../../src/LocalFileSystem/generic/AutotagLocalFileSystem.ts"],"names":[],"mappings":"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"}