@memberjunction/core-entities-server 5.22.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 (37) hide show
  1. package/dist/custom/MJDuplicateRunEntityServer.server.d.ts +14 -0
  2. package/dist/custom/MJDuplicateRunEntityServer.server.d.ts.map +1 -1
  3. package/dist/custom/MJDuplicateRunEntityServer.server.js +95 -4
  4. package/dist/custom/MJDuplicateRunEntityServer.server.js.map +1 -1
  5. package/dist/custom/MJTagEntityServer.server.d.ts +18 -0
  6. package/dist/custom/MJTagEntityServer.server.d.ts.map +1 -0
  7. package/dist/custom/MJTagEntityServer.server.js +56 -0
  8. package/dist/custom/MJTagEntityServer.server.js.map +1 -0
  9. package/dist/custom/MJTemplateContentEntityServer.server.d.ts +0 -1
  10. package/dist/custom/MJTemplateContentEntityServer.server.d.ts.map +1 -1
  11. package/dist/custom/MJTemplateContentEntityServer.server.js +13 -68
  12. package/dist/custom/MJTemplateContentEntityServer.server.js.map +1 -1
  13. package/dist/custom/MJVectorIndexEntityServer.server.d.ts +6 -0
  14. package/dist/custom/MJVectorIndexEntityServer.server.d.ts.map +1 -1
  15. package/dist/custom/MJVectorIndexEntityServer.server.js +47 -14
  16. package/dist/custom/MJVectorIndexEntityServer.server.js.map +1 -1
  17. package/dist/custom/template-extraction/index.d.ts +5 -0
  18. package/dist/custom/template-extraction/index.d.ts.map +1 -0
  19. package/dist/custom/template-extraction/index.js +6 -0
  20. package/dist/custom/template-extraction/index.js.map +1 -0
  21. package/dist/custom/template-extraction/parser.d.ts +9 -0
  22. package/dist/custom/template-extraction/parser.d.ts.map +1 -0
  23. package/dist/custom/template-extraction/parser.js +685 -0
  24. package/dist/custom/template-extraction/parser.js.map +1 -0
  25. package/dist/custom/template-extraction/pipeline.d.ts +22 -0
  26. package/dist/custom/template-extraction/pipeline.d.ts.map +1 -0
  27. package/dist/custom/template-extraction/pipeline.js +181 -0
  28. package/dist/custom/template-extraction/pipeline.js.map +1 -0
  29. package/dist/custom/template-extraction/types.d.ts +101 -0
  30. package/dist/custom/template-extraction/types.d.ts.map +1 -0
  31. package/dist/custom/template-extraction/types.js +5 -0
  32. package/dist/custom/template-extraction/types.js.map +1 -0
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -0
  36. package/dist/index.js.map +1 -1
  37. package/package.json +22 -20
@@ -6,5 +6,19 @@ export declare class MJDuplicateRunEntityServer extends MJDuplicateRunEntity {
6
6
  * ProcessingStatus to 'Error' so the UI can surface the problem.
7
7
  */
8
8
  private runDetectionAsync;
9
+ /**
10
+ * Convert a DuplicateDetectionProgress callback into a PipelineProgress notification.
11
+ */
12
+ private publishProgress;
13
+ /**
14
+ * Publish a pipeline progress notification via the global PubSubManager.
15
+ * Uses GetGlobalObjectStore to access PubSubManager without a direct dependency
16
+ * on @memberjunction/server.
17
+ */
18
+ /**
19
+ * Normalize a threshold value — treat <= 0 or >= 1.0 as "unconfigured" and use the fallback.
20
+ */
21
+ private normalizeThreshold;
22
+ private publishPipelineNotification;
9
23
  }
10
24
  //# sourceMappingURL=MJDuplicateRunEntityServer.server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MJDuplicateRunEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJDuplicateRunEntityServer.server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGrE,qBACa,0BAA2B,SAAQ,oBAAoB;IACnD,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAarC;;;OAGG;YACW,iBAAiB;CAuBlC"}
1
+ {"version":3,"file":"MJDuplicateRunEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJDuplicateRunEntityServer.server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAA0B,MAAM,+BAA+B,CAAC;AAe7F,qBACa,0BAA2B,SAAQ,oBAAoB;IACnD,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAarC;;;OAGG;YACW,iBAAiB;IAmE/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;;;OAIG;IACH;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,2BAA2B;CA8BtC"}
@@ -4,10 +4,20 @@ 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
- import { BaseEntity, LogError, LogStatus, PotentialDuplicateRequest } from "@memberjunction/core";
8
- import { RegisterClass } from "@memberjunction/global";
7
+ import { BaseEntity, LogError, LogStatus, PotentialDuplicateRequest, RunView } from "@memberjunction/core";
8
+ import { RegisterClass, GetGlobalObjectStore } from "@memberjunction/global";
9
9
  import { MJDuplicateRunEntity } from "@memberjunction/core-entities";
10
10
  import { DuplicateRecordDetector } from "@memberjunction/ai-vector-dupe";
11
+ const PIPELINE_PROGRESS_TOPIC = 'PIPELINE_PROGRESS';
12
+ /** Map DuplicateDetectionProgress phases to pipeline stage names */
13
+ const PHASE_TO_STAGE = {
14
+ 'Loading': 'extract',
15
+ 'Vectorizing': 'vectorize',
16
+ 'Embedding': 'autotag',
17
+ 'Querying': 'extract',
18
+ 'Matching': 'autotag',
19
+ 'Merging': 'complete'
20
+ };
11
21
  let MJDuplicateRunEntityServer = class MJDuplicateRunEntityServer extends MJDuplicateRunEntity {
12
22
  async Save() {
13
23
  const saveResult = await super.Save();
@@ -24,17 +34,50 @@ let MJDuplicateRunEntityServer = class MJDuplicateRunEntityServer extends MJDupl
24
34
  * ProcessingStatus to 'Error' so the UI can surface the problem.
25
35
  */
26
36
  async runDetectionAsync() {
37
+ const startTime = Date.now();
27
38
  try {
28
39
  const detector = new DuplicateRecordDetector();
29
40
  const request = new PotentialDuplicateRequest();
30
41
  request.EntityID = this.EntityID;
31
- request.ListID = this.SourceListID;
32
- request.Options = { DuplicateRunID: this.ID };
42
+ request.ListID = this.SourceListID || undefined; // Optional — if not set, scans all entity records
43
+ // Find the first active entity document for this entity to get template/thresholds
44
+ const rv = new RunView();
45
+ const edResult = await rv.RunView({
46
+ EntityName: 'MJ: Entity Documents',
47
+ ExtraFilter: `EntityID='${this.EntityID}' AND Status='Active'`,
48
+ MaxRows: 1,
49
+ ResultType: 'entity_object'
50
+ }, this.ContextCurrentUser);
51
+ if (edResult.Success && edResult.Results.length > 0) {
52
+ request.EntityDocumentID = edResult.Results[0].ID;
53
+ }
54
+ // Build detection options with threshold normalization.
55
+ // Entity document defaults are 1.0 (100%) which means nothing ever matches.
56
+ // Normalize to sensible fallbacks when the stored value is effectively unconfigured.
57
+ const potentialThreshold = this.normalizeThreshold(edResult.Success && edResult.Results.length > 0 ? edResult.Results[0].PotentialMatchThreshold : 1.0, 0.70 // fallback: 70% for potential matches
58
+ );
59
+ const absoluteThreshold = this.normalizeThreshold(edResult.Success && edResult.Results.length > 0 ? edResult.Results[0].AbsoluteMatchThreshold : 1.0, 0.95 // fallback: 95% for absolute matches
60
+ );
61
+ const detectionOptions = {
62
+ DuplicateRunID: this.ID,
63
+ PotentialMatchThreshold: potentialThreshold,
64
+ AbsoluteMatchThreshold: absoluteThreshold,
65
+ OnProgress: (progress) => {
66
+ this.publishProgress(progress, startTime);
67
+ }
68
+ };
69
+ request.Options = detectionOptions;
70
+ // Publish initial progress
71
+ this.publishPipelineNotification('autotag', 0, 0, 0, startTime, 'Starting duplicate detection...');
33
72
  await detector.GetDuplicateRecords(request, this.ContextCurrentUser);
34
73
  LogStatus(`Duplicate detection completed for run ${this.ID}`);
74
+ // Publish completion
75
+ this.publishPipelineNotification('complete', 100, 100, 100, startTime);
35
76
  }
36
77
  catch (error) {
37
78
  LogError(`Duplicate detection error for run ${this.ID}`, undefined, error);
79
+ // Publish error
80
+ this.publishPipelineNotification('error', 0, 0, 0, startTime, String(error));
38
81
  // Update the run record to reflect the error
39
82
  try {
40
83
  this.ProcessingStatus = 'Failed';
@@ -46,6 +89,54 @@ let MJDuplicateRunEntityServer = class MJDuplicateRunEntityServer extends MJDupl
46
89
  }
47
90
  }
48
91
  }
92
+ /**
93
+ * Convert a DuplicateDetectionProgress callback into a PipelineProgress notification.
94
+ */
95
+ publishProgress(progress, startTime) {
96
+ const stage = PHASE_TO_STAGE[progress.Phase] ?? 'autotag';
97
+ const pct = progress.TotalRecords > 0
98
+ ? Math.round((progress.ProcessedRecords / progress.TotalRecords) * 100)
99
+ : 0;
100
+ this.publishPipelineNotification(stage, progress.TotalRecords, progress.ProcessedRecords, pct, startTime, progress.CurrentRecordID);
101
+ }
102
+ /**
103
+ * Publish a pipeline progress notification via the global PubSubManager.
104
+ * Uses GetGlobalObjectStore to access PubSubManager without a direct dependency
105
+ * on @memberjunction/server.
106
+ */
107
+ /**
108
+ * Normalize a threshold value — treat <= 0 or >= 1.0 as "unconfigured" and use the fallback.
109
+ */
110
+ normalizeThreshold(value, fallback) {
111
+ if (value == null || value <= 0 || value >= 1.0) {
112
+ return fallback;
113
+ }
114
+ return value;
115
+ }
116
+ publishPipelineNotification(stage, totalItems, processedItems, percentComplete, startTime, currentItem) {
117
+ try {
118
+ // Access PubSubManager through the global object store
119
+ // PubSubManager is a BaseSingleton stored in the global registry
120
+ const globalStore = GetGlobalObjectStore();
121
+ const pubSubManager = globalStore['___SINGLETON__PubSubManager'];
122
+ if (pubSubManager && typeof pubSubManager.Publish === 'function') {
123
+ const elapsedMs = Date.now() - startTime;
124
+ pubSubManager.Publish(PIPELINE_PROGRESS_TOPIC, {
125
+ PipelineRunID: this.ID,
126
+ Stage: stage,
127
+ TotalItems: totalItems,
128
+ ProcessedItems: processedItems,
129
+ CurrentItem: currentItem,
130
+ ElapsedMs: elapsedMs,
131
+ PercentComplete: percentComplete
132
+ });
133
+ }
134
+ }
135
+ catch (error) {
136
+ // Don't let progress publishing errors break detection
137
+ LogError(`Failed to publish pipeline progress for run ${this.ID}`, undefined, error);
138
+ }
139
+ }
49
140
  };
50
141
  MJDuplicateRunEntityServer = __decorate([
51
142
  RegisterClass(BaseEntity, 'MJ: Duplicate Runs')
@@ -1 +1 @@
1
- {"version":3,"file":"MJDuplicateRunEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJDuplicateRunEntityServer.server.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,oBAAoB;IACzD,KAAK,CAAC,IAAI;QACb,MAAM,UAAU,GAAY,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAE/C,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACtC,gFAAgF;YAChF,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrC,QAAQ,CAAC,4CAA4C,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB;QAC3B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,yBAAyB,EAAE,CAAC;YAChD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YACnC,OAAO,CAAC,OAAO,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YAE9C,MAAM,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrE,SAAS,CAAC,yCAAyC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,QAAQ,CAAC,qCAAqC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAE3E,6CAA6C;YAC7C,IAAI,CAAC;gBACD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;gBACjC,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC1B,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACnB,QAAQ,CAAC,wBAAwB,IAAI,CAAC,EAAE,wBAAwB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAC9F,CAAC;QACL,CAAC;IACL,CAAC;CACJ,CAAA;AAzCY,0BAA0B;IADtC,aAAa,CAAC,UAAU,EAAE,oBAAoB,CAAC;GACnC,0BAA0B,CAyCtC"}
1
+ {"version":3,"file":"MJDuplicateRunEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJDuplicateRunEntityServer.server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { MJTagEntity } from '@memberjunction/core-entities';
2
+ /**
3
+ * Server-side Tag entity that keeps TagEngine's vector service in sync.
4
+ *
5
+ * After every Save (insert or update), the tag's embedding is added/updated
6
+ * in the SimpleVectorService so that semantic matching in ResolveTag() stays
7
+ * current. On Delete, the embedding is removed.
8
+ *
9
+ * This runs SYNCHRONOUSLY within the Save() call — the caller's
10
+ * `await tag.Save()` does not resolve until the embedding is updated.
11
+ * This eliminates the race condition where concurrent ResolveTag() calls
12
+ * miss a just-created tag because the embedding wasn't ready yet.
13
+ */
14
+ export declare class MJTagEntityServer extends MJTagEntity {
15
+ Save(): Promise<boolean>;
16
+ Delete(): Promise<boolean>;
17
+ }
18
+ //# sourceMappingURL=MJTagEntityServer.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MJTagEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJTagEntityServer.server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D;;;;;;;;;;;GAWG;AACH,qBACa,iBAAkB,SAAQ,WAAW;IACxB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAexB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAgBnD"}
@@ -0,0 +1,56 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { BaseEntity, LogError } from '@memberjunction/core';
8
+ import { RegisterClass } from '@memberjunction/global';
9
+ import { MJTagEntity } from '@memberjunction/core-entities';
10
+ import { TagEngine } from '@memberjunction/tag-engine';
11
+ /**
12
+ * Server-side Tag entity that keeps TagEngine's vector service in sync.
13
+ *
14
+ * After every Save (insert or update), the tag's embedding is added/updated
15
+ * in the SimpleVectorService so that semantic matching in ResolveTag() stays
16
+ * current. On Delete, the embedding is removed.
17
+ *
18
+ * This runs SYNCHRONOUSLY within the Save() call — the caller's
19
+ * `await tag.Save()` does not resolve until the embedding is updated.
20
+ * This eliminates the race condition where concurrent ResolveTag() calls
21
+ * miss a just-created tag because the embedding wasn't ready yet.
22
+ */
23
+ let MJTagEntityServer = class MJTagEntityServer extends MJTagEntity {
24
+ async Save() {
25
+ const saveResult = await super.Save();
26
+ if (saveResult) {
27
+ try {
28
+ await TagEngine.Instance.ReEmbedTag(this);
29
+ }
30
+ catch (error) {
31
+ // Non-blocking — embedding failure should not fail the save
32
+ LogError(`[MJTagEntityServer] Failed to embed tag "${this.Name}" after save: ${error instanceof Error ? error.message : String(error)}`);
33
+ }
34
+ }
35
+ return saveResult;
36
+ }
37
+ async Delete() {
38
+ const tagName = this.Name;
39
+ const tagID = this.ID;
40
+ const deleteResult = await super.Delete();
41
+ if (deleteResult) {
42
+ try {
43
+ TagEngine.Instance.RemoveTagFromVectorService(tagID);
44
+ }
45
+ catch (error) {
46
+ LogError(`[MJTagEntityServer] Failed to remove embedding for tag "${tagName}" after delete: ${error instanceof Error ? error.message : String(error)}`);
47
+ }
48
+ }
49
+ return deleteResult;
50
+ }
51
+ };
52
+ MJTagEntityServer = __decorate([
53
+ RegisterClass(BaseEntity, 'MJ: Tags')
54
+ ], MJTagEntityServer);
55
+ export { MJTagEntityServer };
56
+ //# sourceMappingURL=MJTagEntityServer.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MJTagEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJTagEntityServer.server.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAa,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD;;;;;;;;;;;GAWG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,WAAW;IAC9B,KAAK,CAAC,IAAI;QACtB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC;gBACD,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,4DAA4D;gBAC5D,QAAQ,CAAC,4CAA4C,IAAI,CAAC,IAAI,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7I,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEe,KAAK,CAAC,MAAM;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;QAEtB,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QAE1C,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,CAAC;gBACD,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,QAAQ,CAAC,2DAA2D,OAAO,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5J,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ,CAAA;AAhCY,iBAAiB;IAD7B,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;GACzB,iBAAiB,CAgC7B"}
@@ -3,7 +3,6 @@ import { MJTemplateContentEntity } from "@memberjunction/core-entities";
3
3
  export declare class MJTemplateContentEntityServer extends MJTemplateContentEntity {
4
4
  Save(options?: EntitySaveOptions): Promise<boolean>;
5
5
  private extractAndSyncParameters;
6
- private normalizeParameterType;
7
6
  private syncTemplateParameters;
8
7
  }
9
8
  //# sourceMappingURL=MJTemplateContentEntityServer.server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MJTemplateContentEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJTemplateContentEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAkD,MAAM,sBAAsB,CAAC;AACrH,OAAO,EAAE,uBAAuB,EAA2C,MAAM,+BAA+B,CAAC;AAoBjH,qBACa,6BAA8B,SAAQ,uBAAuB;IACvD,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;YAmCpD,wBAAwB;IAiDtC,OAAO,CAAC,sBAAsB;YA2BhB,sBAAsB;CAyHvC"}
1
+ {"version":3,"file":"MJTemplateContentEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJTemplateContentEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAkD,MAAM,sBAAsB,CAAC;AACrH,OAAO,EAAE,uBAAuB,EAA2C,MAAM,+BAA+B,CAAC;AAMjH,qBACa,6BAA8B,SAAQ,uBAAuB;IACvD,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;YAmCpD,wBAAwB;YAuBxB,sBAAsB;CAkHvC"}
@@ -7,9 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { BaseEntity, LogError, Metadata } from "@memberjunction/core";
8
8
  import { MJTemplateContentEntity } from "@memberjunction/core-entities";
9
9
  import { RegisterClass, UUIDsEqual } from "@memberjunction/global";
10
- import { AIEngine } from "@memberjunction/aiengine";
11
- import { AIPromptRunner } from "@memberjunction/ai-prompts";
12
- import { AIPromptParams } from "@memberjunction/ai-core-plus";
10
+ import { RunTemplateExtractionPipeline } from "./template-extraction/index.js";
13
11
  let MJTemplateContentEntityServer = class MJTemplateContentEntityServer extends MJTemplateContentEntity {
14
12
  async Save(options) {
15
13
  const provider = Metadata.Provider;
@@ -42,36 +40,14 @@ let MJTemplateContentEntityServer = class MJTemplateContentEntityServer extends
42
40
  }
43
41
  async extractAndSyncParameters() {
44
42
  try {
45
- if (this.Template === "Template Parameter Extraction") {
46
- return; // Skip extraction for this special case - this is ourselves!
43
+ // Run the hybrid extraction pipeline: deterministic parse + AI enrichment
44
+ const result = await RunTemplateExtractionPipeline(this.TemplateText, this.Template, this.ContextCurrentUser);
45
+ if (result.warnings.length > 0) {
46
+ console.warn('Template parameter extraction warnings:', result.warnings);
47
47
  }
48
- // Ensure AIEngine is configured
49
- await AIEngine.Instance.Config(false, this.ContextCurrentUser);
50
- // Find the Template Parameter Extraction prompt
51
- const aiPrompt = AIEngine.Instance.Prompts.find(p => p.Name === 'Template Parameter Extraction' &&
52
- p.Category === 'MJ: System');
53
- if (!aiPrompt) {
54
- // prompt not configured, non-fatl, just warn and return
55
- console.warn('AI prompt for Template Parameter Extraction not found. Skipping parameter extraction.');
56
- return;
48
+ if (result.parameters.length > 0) {
49
+ await this.syncTemplateParameters(result.parameters);
57
50
  }
58
- // Prepare prompt data
59
- const promptData = {
60
- templateText: this.TemplateText
61
- };
62
- // Execute the prompt using AIPromptRunner
63
- const promptRunner = new AIPromptRunner();
64
- const params = new AIPromptParams();
65
- params.prompt = aiPrompt;
66
- params.data = promptData;
67
- params.contextUser = this.ContextCurrentUser;
68
- const result = await promptRunner.ExecutePrompt(params);
69
- if (!result.success || !result.result) {
70
- LogError('Failed to extract template parameters:', result.errorMessage);
71
- return;
72
- }
73
- // Process the extracted parameters
74
- await this.syncTemplateParameters(result.result.parameters);
75
51
  }
76
52
  catch (e) {
77
53
  LogError('Error extracting template parameters:', e);
@@ -79,32 +55,6 @@ let MJTemplateContentEntityServer = class MJTemplateContentEntityServer extends
79
55
  // The user can still manually manage parameters if needed
80
56
  }
81
57
  }
82
- normalizeParameterType(type) {
83
- // Normalize LLM output to match database constraint values
84
- const normalized = type.toLowerCase();
85
- switch (normalized) {
86
- case 'scalar':
87
- case 'string':
88
- case 'number':
89
- case 'boolean':
90
- case 'date':
91
- return 'Scalar';
92
- case 'array':
93
- case 'list':
94
- return 'Array';
95
- case 'object':
96
- case 'dict':
97
- case 'dictionary':
98
- return 'Object';
99
- case 'record':
100
- return 'Record';
101
- case 'entity':
102
- return 'Entity';
103
- default:
104
- console.warn(`Unknown parameter type '${type}', defaulting to 'Scalar'`);
105
- return 'Scalar';
106
- }
107
- }
108
58
  async syncTemplateParameters(extractedParams) {
109
59
  // Use the entity's provider instead of creating new Metadata instance
110
60
  const md = this.ProviderToUse;
@@ -119,7 +69,7 @@ let MJTemplateContentEntityServer = class MJTemplateContentEntityServer extends
119
69
  if (!existingParamsResult.Success) {
120
70
  throw new Error(`Failed to load existing template parameters: ${existingParamsResult.ErrorMessage}`);
121
71
  }
122
- const existingParams = existingParamsResult.Results || [];
72
+ const existingParams = existingParamsResult.Results ?? [];
123
73
  // Determine if we're in single or multiple template content scenario
124
74
  const templateContentsResult = await rv.RunView({
125
75
  EntityName: 'MJ: Template Contents',
@@ -148,8 +98,8 @@ let MJTemplateContentEntityServer = class MJTemplateContentEntityServer extends
148
98
  newParam.TemplateID = this.TemplateID;
149
99
  newParam.TemplateContentID = templateContentID;
150
100
  newParam.Name = param.name;
151
- newParam.Type = this.normalizeParameterType(param.type);
152
- newParam.IsRequired = false; // LLM has been unreliable here, make them ALL optional so we don't break template rendering in case it picks up stuff that is NOT really a param... param.isRequired;
101
+ newParam.Type = param.type;
102
+ newParam.IsRequired = param.isRequired;
153
103
  newParam.DefaultValue = param.defaultValue;
154
104
  newParam.Description = param.description;
155
105
  promises.push(newParam.Save());
@@ -159,14 +109,12 @@ let MJTemplateContentEntityServer = class MJTemplateContentEntityServer extends
159
109
  const extractedParam = extractedParams.find(p => p.name.toLowerCase() === existingParam.Name.toLowerCase());
160
110
  if (extractedParam) {
161
111
  let hasChanges = false;
162
- // Check each property for changes
163
- const normalizedType = this.normalizeParameterType(extractedParam.type);
164
- if (existingParam.Type !== normalizedType) {
165
- existingParam.Type = normalizedType;
112
+ if (existingParam.Type !== extractedParam.type) {
113
+ existingParam.Type = extractedParam.type;
166
114
  hasChanges = true;
167
115
  }
168
116
  if (existingParam.IsRequired !== extractedParam.isRequired) {
169
- existingParam.IsRequired = false; // SEE ABOVE - make not required in all cases.... extractedParam.isRequired;
117
+ existingParam.IsRequired = extractedParam.isRequired;
170
118
  hasChanges = true;
171
119
  }
172
120
  if (existingParam.DefaultValue !== extractedParam.defaultValue) {
@@ -190,9 +138,6 @@ let MJTemplateContentEntityServer = class MJTemplateContentEntityServer extends
190
138
  if (promises.length > 0) {
191
139
  await Promise.all(promises); // saving these is non-critical
192
140
  }
193
- // If this is multiple contents scenario, we might need to handle global params
194
- // This is a more complex scenario that would require analyzing all template contents
195
- // For now, we're handling content-specific params only
196
141
  }
197
142
  catch (e) {
198
143
  LogError('Failed to sync template parameters:', e);
@@ -1 +1 @@
1
- {"version":3,"file":"MJTemplateContentEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJTemplateContentEntityServer.server.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAqB,QAAQ,EAAE,QAAQ,EAA8B,MAAM,sBAAsB,CAAC;AACrH,OAAO,EAAE,uBAAuB,EAA2C,MAAM,+BAA+B,CAAC;AACjH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAgBvD,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,uBAAuB;IAC7D,KAAK,CAAC,IAAI,CAAC,OAA2B;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAiC,CAAC;QAE5D,+BAA+B;QAC/B,MAAM,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAElC,IAAI,CAAC;YACD,+DAA+D;YAC/D,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAC9D,MAAM,mBAAmB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC;YAErE,kCAAkC;YAClC,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE7C,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,wCAAwC;YACxC,IAAI,mBAAmB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClF,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC1C,CAAC;YAED,yBAAyB;YACzB,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,wBAAwB;YACxB,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YACrC,QAAQ,CAAC,yDAAyD,EAAE,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,wBAAwB;QAClC,IAAI,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,KAAK,+BAA+B,EAAE,CAAC;gBACpD,OAAO,CAAC,6DAA6D;YACzE,CAAC;YACD,gCAAgC;YAChC,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAE/D,gDAAgD;YAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAChD,CAAC,CAAC,IAAI,KAAK,+BAA+B;gBAC1C,CAAC,CAAC,QAAQ,KAAK,YAAY,CAC9B,CAAC;YAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,wDAAwD;gBACxD,OAAO,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;gBACtG,OAAO;YACX,CAAC;YAED,sBAAsB;YACtB,MAAM,UAAU,GAAG;gBACf,YAAY,EAAE,IAAI,CAAC,YAAY;aAClC,CAAC;YAEF,0CAA0C;YAC1C,MAAM,YAAY,GAAG,IAAI,cAAc,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;YACzB,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;YACzB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAE7C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAA4B,MAAM,CAAC,CAAC;YAEnF,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACpC,QAAQ,CAAC,wCAAwC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;gBACxE,OAAO;YACX,CAAC;YAED,mCAAmC;YACnC,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEhE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,QAAQ,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;YACrD,kFAAkF;YAClF,0DAA0D;QAC9D,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,IAAY;QACvC,2DAA2D;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,QAAQ,UAAU,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS,CAAC;YACf,KAAK,MAAM;gBACP,OAAO,QAAQ,CAAC;YACpB,KAAK,OAAO,CAAC;YACb,KAAK,MAAM;gBACP,OAAO,OAAO,CAAC;YACnB,KAAK,QAAQ,CAAC;YACd,KAAK,MAAM,CAAC;YACZ,KAAK,YAAY;gBACb,OAAO,QAAQ,CAAC;YACpB,KAAK,QAAQ;gBACT,OAAO,QAAQ,CAAC;YACpB,KAAK,QAAQ;gBACT,OAAO,QAAQ,CAAC;YACpB;gBACI,OAAO,CAAC,IAAI,CAAC,2BAA2B,IAAI,2BAA2B,CAAC,CAAC;gBACzE,OAAO,QAAQ,CAAC;QACxB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,eAAqC;QACtE,sEAAsE;QACtE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAyC,CAAC;QAE1D,IAAI,CAAC;YACD,mCAAmC;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrC,MAAM,oBAAoB,GAAG,MAAM,EAAE,CAAC,OAAO,CAAwB;gBACjE,UAAU,EAAE,qBAAqB;gBACjC,WAAW,EAAE,eAAe,IAAI,CAAC,UAAU,GAAG;gBAC9C,UAAU,EAAE,eAAe;aAC9B,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAE5B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,gDAAgD,oBAAoB,CAAC,YAAY,EAAE,CAAC,CAAC;YACzG,CAAC;YAED,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,IAAI,EAAE,CAAC;YAE1D,qEAAqE;YACrE,MAAM,sBAAsB,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;gBAC5C,UAAU,EAAE,uBAAuB;gBACnC,WAAW,EAAE,eAAe,IAAI,CAAC,UAAU,GAAG;gBAC9C,UAAU,EAAE,QAAQ;aACvB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAE5B,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,OAAO;gBAChC,sBAAsB,CAAC,OAAO;gBAC9B,sBAAsB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAEnE,wEAAwE;YACxE,4FAA4F;YAC5F,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAE9D,kDAAkD;YAClD,MAAM,sBAAsB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACrD,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,IAAI,CAC9F,CAAC;YAEF,4DAA4D;YAC5D,MAAM,mBAAmB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAE3E,4CAA4C;YAC5C,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC3C,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACrF,CAAC;YAEF,MAAM,cAAc,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CACtD,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAC5E,CAAC;YAEF,MAAM,cAAc,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CACtD,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACvD,CAAC;YAEF,qCAAqC;YACrC,MAAM,QAAQ,GAAuB,EAAE,CAAC;YAExC,qBAAqB;YACrB,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,eAAe,CAAwB,qBAAqB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjH,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;gBAC/C,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC3B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxD,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,sKAAsK;gBACnM,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;gBAC3C,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;gBACzC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACnC,CAAC;YAED,mDAAmD;YACnD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBACzC,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC5G,IAAI,cAAc,EAAE,CAAC;oBACjB,IAAI,UAAU,GAAG,KAAK,CAAC;oBAEvB,kCAAkC;oBAClC,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBACxE,IAAI,aAAa,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBACxC,aAAa,CAAC,IAAI,GAAG,cAAc,CAAC;wBACpC,UAAU,GAAG,IAAI,CAAC;oBACtB,CAAC;oBACD,IAAI,aAAa,CAAC,UAAU,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;wBACzD,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,6EAA6E;wBAC/G,UAAU,GAAG,IAAI,CAAC;oBACtB,CAAC;oBACD,IAAI,aAAa,CAAC,YAAY,KAAK,cAAc,CAAC,YAAY,EAAE,CAAC;wBAC7D,aAAa,CAAC,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;wBACzD,UAAU,GAAG,IAAI,CAAC;oBACtB,CAAC;oBACD,IAAI,aAAa,CAAC,WAAW,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;wBAC3D,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;wBACvD,UAAU,GAAG,IAAI,CAAC;oBACtB,CAAC;oBAED,IAAI,UAAU,EAAE,CAAC;wBACb,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,uDAAuD;YACvD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBACzC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1C,CAAC;YAED,qCAAqC;YACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,+BAA+B;YAChE,CAAC;YAED,+EAA+E;YAC/E,qFAAqF;YACrF,uDAAuD;QAE3D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,QAAQ,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,CAAC,CAAC,wCAAwC;QACrD,CAAC;IACL,CAAC;CACJ,CAAA;AAzOY,6BAA6B;IADzC,aAAa,CAAC,UAAU,EAAE,uBAAuB,CAAC;GACtC,6BAA6B,CAyOzC"}
1
+ {"version":3,"file":"MJTemplateContentEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJTemplateContentEntityServer.server.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,12 @@ export declare class MJVectorIndexEntityServer extends MJVectorIndexEntity {
13
13
  * Before deleting, remove the index from the provider.
14
14
  */
15
15
  Delete(): Promise<boolean>;
16
+ /**
17
+ * Validates and sanitizes the index name for use with vector DB providers.
18
+ * Pinecone index names must be lowercase alphanumeric + hyphens, max 45 chars.
19
+ * Returns the sanitized name.
20
+ */
21
+ private sanitizeIndexName;
16
22
  /**
17
23
  * Create the index in the vector database provider.
18
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MJVectorIndexEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAA0B,MAAM,+BAA+B,CAAC;AAI5F;;;;GAIG;AACH,qBACa,yBAA0B,SAAQ,mBAAmB;IAC9D;;OAEG;IACmB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAa9C;;OAEG;IACmB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAShD;;OAEG;YACW,qBAAqB;IA6BnC;;OAEG;YACW,uBAAuB;IAgBrC;;;OAGG;YACW,mBAAmB;IAmCjC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;OAGG;YACW,oBAAoB;CAgCrC"}
1
+ {"version":3,"file":"MJVectorIndexEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAA0B,MAAM,+BAA+B,CAAC;AAI5F;;;;GAIG;AACH,qBACa,yBAA0B,SAAQ,mBAAmB;IAC9D;;OAEG;IACmB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAa9C;;OAEG;IACmB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAShD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;YACW,qBAAqB;IAuCnC;;OAEG;YACW,uBAAuB;IAkBrC;;;OAGG;YACW,mBAAmB;IAmCjC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;OAGG;YACW,oBAAoB;CAiCrC"}
@@ -38,6 +38,27 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
38
38
  });
39
39
  return super.Delete();
40
40
  }
41
+ /**
42
+ * Validates and sanitizes the index name for use with vector DB providers.
43
+ * Pinecone index names must be lowercase alphanumeric + hyphens, max 45 chars.
44
+ * Returns the sanitized name.
45
+ */
46
+ sanitizeIndexName(name) {
47
+ // Replace spaces and underscores with hyphens, remove invalid chars, lowercase, trim to 45 chars
48
+ let sanitized = name
49
+ .toLowerCase()
50
+ .replace(/[\s_]+/g, '-')
51
+ .replace(/[^a-z0-9-]/g, '')
52
+ .replace(/-+/g, '-') // collapse multiple hyphens
53
+ .replace(/^-|-$/g, ''); // trim leading/trailing hyphens
54
+ if (sanitized.length > 45) {
55
+ sanitized = sanitized.substring(0, 45).replace(/-$/, '');
56
+ }
57
+ if (sanitized.length === 0) {
58
+ throw new Error(`Index name "${name}" results in an empty string after sanitization. Please use a name with alphanumeric characters.`);
59
+ }
60
+ return sanitized;
61
+ }
41
62
  /**
42
63
  * Create the index in the vector database provider.
43
64
  */
@@ -47,8 +68,13 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
47
68
  LogError(`Cannot create index: no VectorDB instance for database ${this.VectorDatabaseID}`);
48
69
  return;
49
70
  }
71
+ // Sanitize the index name for the provider (e.g., Pinecone requires lowercase, no spaces)
72
+ const sanitizedName = this.sanitizeIndexName(this.Name);
73
+ if (sanitizedName !== this.Name) {
74
+ LogStatus(`Index name sanitized from "${this.Name}" to "${sanitizedName}" for vector DB provider compatibility`);
75
+ }
50
76
  const params = {
51
- id: this.Name,
77
+ id: sanitizedName,
52
78
  dimension: this.resolveDimensions(),
53
79
  metric: 'cosine',
54
80
  additionalParams: {
@@ -58,14 +84,19 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
58
84
  }
59
85
  }
60
86
  };
61
- LogStatus(`Creating index "${this.Name}" in vector DB provider...`);
62
- const result = await vectorDB.CreateIndex(params);
63
- if (result.success) {
64
- LogStatus(`Index "${this.Name}" created successfully in provider`);
65
- await this.saveProviderMetadata(result.data, params);
87
+ LogStatus(`Creating index "${sanitizedName}" in vector DB provider...`);
88
+ try {
89
+ const result = await vectorDB.CreateIndex(params);
90
+ if (result.success) {
91
+ LogStatus(`Index "${sanitizedName}" created successfully in provider`);
92
+ await this.saveProviderMetadata(result.data, params, sanitizedName);
93
+ }
94
+ else {
95
+ LogError(`Provider returned error creating index "${sanitizedName}": ${result.message}`);
96
+ }
66
97
  }
67
- else {
68
- LogError(`Provider returned error creating index "${this.Name}": ${result.message}`);
98
+ catch (error) {
99
+ LogError(`Exception while creating index "${sanitizedName}" in vector DB provider`, undefined, error);
69
100
  }
70
101
  }
71
102
  /**
@@ -77,13 +108,15 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
77
108
  LogError(`Cannot delete index: no VectorDB instance for database ${this.VectorDatabaseID}`);
78
109
  return;
79
110
  }
80
- LogStatus(`Deleting index "${this.Name}" from vector DB provider...`);
81
- const result = await vectorDB.DeleteIndex({ id: this.Name });
111
+ // Use ExternalID if available (the sanitized name stored in the provider), fall back to Name
112
+ const providerIndexName = this.ExternalID || this.sanitizeIndexName(this.Name);
113
+ LogStatus(`Deleting index "${providerIndexName}" from vector DB provider...`);
114
+ const result = await vectorDB.DeleteIndex({ id: providerIndexName });
82
115
  if (result.success) {
83
- LogStatus(`Index "${this.Name}" deleted from provider`);
116
+ LogStatus(`Index "${providerIndexName}" deleted from provider`);
84
117
  }
85
118
  else {
86
- LogError(`Provider returned error deleting index "${this.Name}": ${result.message}`);
119
+ LogError(`Provider returned error deleting index "${providerIndexName}": ${result.message}`);
87
120
  }
88
121
  }
89
122
  /**
@@ -130,10 +163,10 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
130
163
  * After provider creates the index, save the returned metadata back to our record.
131
164
  * Stores ExternalID, Dimensions, Metric, and full provider config as JSON.
132
165
  */
133
- async saveProviderMetadata(providerResult, params) {
166
+ async saveProviderMetadata(providerResult, params, sanitizedName) {
134
167
  try {
135
168
  // Save what we know from our params + whatever the provider returned
136
- this.ExternalID = this.Name; // For Pinecone, name IS the external ID
169
+ this.ExternalID = sanitizedName; // The sanitized name used in the provider
137
170
  this.Dimensions = params.dimension;
138
171
  this.Metric = params.metric;
139
172
  // Store full provider response + our spec as JSON config
@@ -1 +1 @@
1
- {"version":3,"file":"MJVectorIndexEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MJVectorIndexEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { RunTemplateExtractionPipeline } from "./pipeline.js";
2
+ export type { TemplateExtractionResult } from "./pipeline.js";
3
+ export { ParseTemplateParameters } from "./parser.js";
4
+ export type { TemplateParamType, PropertyAccess, DeterministicParameter, ParameterUsage, ParseResult, EnrichmentResult, EnrichedParameterInfo, MergedTemplateParameter, } from "./types.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/template-extraction/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAGnD,YAAY,EACR,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,GAC1B,MAAM,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Template Extraction Pipeline — barrel exports
2
+ // Pipeline orchestrator
3
+ export { RunTemplateExtractionPipeline } from "./pipeline.js";
4
+ // Parser (deterministic AST extraction)
5
+ export { ParseTemplateParameters } from "./parser.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/custom/template-extraction/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,wBAAwB;AACxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAG3D,wCAAwC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ParseResult } from './types.js';
2
+ /**
3
+ * Parse a Nunjucks template and deterministically extract all template parameters.
4
+ *
5
+ * @param templateText The raw Nunjucks template string
6
+ * @returns ParseResult with extracted parameters and any warnings
7
+ */
8
+ export declare function ParseTemplateParameters(templateText: string): ParseResult;
9
+ //# sourceMappingURL=parser.d.ts.map