@memberjunction/ng-core-entity-forms 2.112.0 → 2.113.1

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 (152) hide show
  1. package/README.md +10 -10
  2. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.js +45 -45
  4. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.js.map +1 -1
  5. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.d.ts.map +1 -1
  6. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js +7 -6
  7. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js.map +1 -1
  8. package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.d.ts.map +1 -1
  9. package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.js +32 -17
  10. package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.js.map +1 -1
  11. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
  12. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +36 -37
  13. package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
  14. package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js +2 -2
  15. package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js.map +1 -1
  16. package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.d.ts +1 -1
  17. package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.d.ts.map +1 -1
  18. package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.js +25 -18
  19. package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.js.map +1 -1
  20. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
  21. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +11 -10
  22. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
  23. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  24. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +147 -159
  25. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  26. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
  27. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +10 -11
  28. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
  29. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
  30. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +32 -36
  31. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
  32. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +5 -5
  33. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
  34. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
  35. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +13 -15
  36. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
  37. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
  38. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +15 -13
  39. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
  40. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
  41. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +23 -28
  42. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
  43. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  44. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +12 -15
  45. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  46. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
  47. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +86 -105
  48. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  49. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
  50. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +20 -13
  51. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
  52. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  53. package/dist/lib/custom/Actions/action-execution-log-form.component.js +7 -4
  54. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  55. package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
  56. package/dist/lib/custom/Actions/action-form.component.js +80 -99
  57. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  58. package/dist/lib/custom/Actions/action-test-harness.component.d.ts.map +1 -1
  59. package/dist/lib/custom/Actions/action-test-harness.component.js +17 -24
  60. package/dist/lib/custom/Actions/action-test-harness.component.js.map +1 -1
  61. package/dist/lib/custom/Queries/query-category-dialog.component.d.ts.map +1 -1
  62. package/dist/lib/custom/Queries/query-category-dialog.component.js +8 -8
  63. package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
  64. package/dist/lib/custom/Queries/query-form.component.d.ts +2 -2
  65. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  66. package/dist/lib/custom/Queries/query-form.component.js +44 -32
  67. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  68. package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
  69. package/dist/lib/custom/Queries/query-run-dialog.component.js +22 -24
  70. package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
  71. package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
  72. package/dist/lib/custom/Templates/template-param-dialog.component.js +21 -15
  73. package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
  74. package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
  75. package/dist/lib/custom/Templates/template-params-grid.component.js +17 -29
  76. package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
  77. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  78. package/dist/lib/custom/Templates/templates-form.component.js +26 -25
  79. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  80. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  81. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +274 -335
  82. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  83. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts.map +1 -1
  84. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js +8 -8
  85. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js.map +1 -1
  86. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
  87. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +28 -24
  88. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
  89. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  90. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +30 -25
  91. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  92. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  93. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +21 -20
  94. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  95. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
  96. package/dist/lib/custom/shared/entity-selector-dialog.component.js +7 -6
  97. package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
  98. package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.d.ts.map +1 -1
  99. package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.js +33 -47
  100. package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.js.map +1 -1
  101. package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts.map +1 -1
  102. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js +31 -4
  103. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js.map +1 -1
  104. package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.d.ts.map +1 -1
  105. package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.js +33 -4
  106. package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.js.map +1 -1
  107. package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.d.ts.map +1 -1
  108. package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.js +33 -4
  109. package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.js.map +1 -1
  110. package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.d.ts.map +1 -1
  111. package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.js +22 -4
  112. package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.js.map +1 -1
  113. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js +6 -6
  114. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js.map +1 -1
  115. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js +8 -8
  116. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js.map +1 -1
  117. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js +34 -14
  118. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js.map +1 -1
  119. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.d.ts +10 -0
  120. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.d.ts.map +1 -0
  121. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.js +59 -0
  122. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.js.map +1 -0
  123. package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.d.ts +11 -0
  124. package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.d.ts.map +1 -0
  125. package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.js +129 -0
  126. package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.js.map +1 -0
  127. package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.js +24 -4
  128. package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.js.map +1 -1
  129. package/dist/lib/generated/Entities/CollectionArtifact/sections/details.component.js +10 -10
  130. package/dist/lib/generated/Entities/CollectionArtifact/sections/details.component.js.map +1 -1
  131. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js +6 -6
  132. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js.map +1 -1
  133. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js +18 -8
  134. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js.map +1 -1
  135. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.d.ts +10 -0
  136. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.d.ts.map +1 -0
  137. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.js +59 -0
  138. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.js.map +1 -0
  139. package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.d.ts +11 -0
  140. package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.d.ts.map +1 -0
  141. package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.js +120 -0
  142. package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.js.map +1 -0
  143. package/dist/lib/generated/Entities/User/user.form.component.js +49 -29
  144. package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
  145. package/dist/lib/generated/generated-forms.module.d.ts +336 -327
  146. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  147. package/dist/lib/generated/generated-forms.module.js +199 -126
  148. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  149. package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
  150. package/dist/lib/shared/components/template-editor.component.js +27 -26
  151. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  152. package/package.json +17 -16
@@ -8,7 +8,7 @@ import { Component, ViewChild } from '@angular/core';
8
8
  import { RegisterClass } from '@memberjunction/global';
9
9
  import { BaseFormComponent } from '@memberjunction/ng-base-forms';
10
10
  import { SharedService } from '@memberjunction/ng-shared';
11
- import { Metadata, RunView, CompositeKey } from '@memberjunction/global';
11
+ import { Metadata, RunView, CompositeKey } from '@memberjunction/core';
12
12
  import { MJNotificationService } from '@memberjunction/ng-notifications';
13
13
  import { AIPromptFormComponent } from '../../generated/Entities/AIPrompt/aiprompt.form.component';
14
14
  import { AIEngineBase } from '@memberjunction/ai-engine-base';
@@ -1578,7 +1578,7 @@ function AIPromptFormComponentExtended_Conditional_3_Template(rf, ctx) { if (rf
1578
1578
  let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends AIPromptFormComponent {
1579
1579
  // Main AI Prompt permissions inherited from BaseFormComponent:
1580
1580
  // - UserCanEdit (Update permission)
1581
- // - UserCanRead (Read permission)
1581
+ // - UserCanRead (Read permission)
1582
1582
  // - UserCanCreate (Create permission)
1583
1583
  // - UserCanDelete (Delete permission)
1584
1584
  /** Check if user can create Templates */
@@ -1629,7 +1629,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1629
1629
  return this._permissionCache.get(cacheKey);
1630
1630
  }
1631
1631
  try {
1632
- const entityInfo = this._metadata.Entities.find((e) => e.Name === entityName);
1632
+ const entityInfo = this._metadata.Entities.find(e => e.Name === entityName);
1633
1633
  if (!entityInfo) {
1634
1634
  console.warn(`Entity '${entityName}' not found for permission check`);
1635
1635
  this._permissionCache.set(cacheKey, false);
@@ -1671,7 +1671,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1671
1671
  return {
1672
1672
  allowEdit: this.EditMode && this.UserCanUpdateTemplateContents,
1673
1673
  showRunButton: false,
1674
- compactMode: false,
1674
+ compactMode: false
1675
1675
  };
1676
1676
  }
1677
1677
  constructor(elementRef, sharedService, router, route, cdr, testHarnessService, viewContainerRef, promptManagementService) {
@@ -1725,8 +1725,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1725
1725
  // make sure AI Engine Base is configured, this will load stuff only if not already
1726
1726
  // loaded in the current process space
1727
1727
  await AIEngineBase.Instance.Config(false, this._metadata.CurrentUser);
1728
- this.__InferenceProvider_VendorTypeDefinitionID =
1729
- AIEngineBase.Instance.VendorTypeDefinitions.find((vtd) => vtd.Name.trim().toLowerCase() === 'inference provider')?.ID || '';
1728
+ this.__InferenceProvider_VendorTypeDefinitionID = AIEngineBase.Instance.VendorTypeDefinitions.find(vtd => vtd.Name.trim().toLowerCase() === 'inference provider')?.ID || '';
1730
1729
  if (!this.__InferenceProvider_VendorTypeDefinitionID) {
1731
1730
  console.error('Inference Provider Vendor Type Definition ID not found');
1732
1731
  MJNotificationService.Instance.CreateSimpleNotification('Inference Provider Vendor Type Definition not found', 'error', 5000);
@@ -1748,7 +1747,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1748
1747
  this.loadAvailablePromptTypes(),
1749
1748
  this.loadAvailableConfigurations(),
1750
1749
  this.loadPromptModels(),
1751
- this.loadResultSelectorTreeData(),
1750
+ this.loadResultSelectorTreeData()
1752
1751
  ]);
1753
1752
  // Load execution history if record is saved
1754
1753
  if (this.record?.IsSaved) {
@@ -1776,7 +1775,8 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1776
1775
  return;
1777
1776
  }
1778
1777
  // First check if we already have this template in pending records (newly created)
1779
- const pendingTemplate = this.PendingRecords.find((p) => p.entityObject.EntityInfo.Name === 'Templates' && p.entityObject.Get('ID') === this.record.TemplateID);
1778
+ const pendingTemplate = this.PendingRecords.find(p => p.entityObject.EntityInfo.Name === 'Templates' &&
1779
+ p.entityObject.Get('ID') === this.record.TemplateID);
1780
1780
  if (pendingTemplate) {
1781
1781
  // Use the pending template
1782
1782
  this.template = pendingTemplate.entityObject;
@@ -1799,7 +1799,10 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1799
1799
  }
1800
1800
  else {
1801
1801
  // Load template content and parameters
1802
- await Promise.all([this.loadTemplateContent(), this.loadTemplateParams()]);
1802
+ await Promise.all([
1803
+ this.loadTemplateContent(),
1804
+ this.loadTemplateParams()
1805
+ ]);
1803
1806
  }
1804
1807
  }
1805
1808
  catch (error) {
@@ -1830,16 +1833,14 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1830
1833
  */
1831
1834
  async linkExistingTemplate() {
1832
1835
  try {
1833
- this.promptManagementService
1834
- .openTemplateSelectorDialog({
1836
+ this.promptManagementService.openTemplateSelectorDialog({
1835
1837
  title: 'Link Existing Template',
1836
1838
  multiSelect: false,
1837
1839
  showCreateNew: true,
1838
1840
  showActiveOnly: true,
1839
1841
  selectedTemplateIds: this.record.TemplateID ? [this.record.TemplateID] : [],
1840
- viewContainerRef: this.viewContainerRef,
1841
- })
1842
- .subscribe({
1842
+ viewContainerRef: this.viewContainerRef
1843
+ }).subscribe({
1843
1844
  next: async (result) => {
1844
1845
  if (result && result.selectedTemplates.length > 0) {
1845
1846
  const selectedTemplate = result.selectedTemplates[0];
@@ -1862,7 +1863,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1862
1863
  error: (error) => {
1863
1864
  console.error('Error opening template selector:', error);
1864
1865
  MJNotificationService.Instance.CreateSimpleNotification('Error opening template selector. Please try again.', 'error', 3000);
1865
- },
1866
+ }
1866
1867
  });
1867
1868
  }
1868
1869
  catch (error) {
@@ -1888,7 +1889,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1888
1889
  // First, clean up any pending changes related to the old template
1889
1890
  this.cleanupOldTemplateRecords();
1890
1891
  const newTemplate = await this._metadata.GetEntityObject('Templates');
1891
- console.log('Record Name:', this.record.Name);
1892
+ console.log("Record Name:", this.record.Name);
1892
1893
  newTemplate.NewRecord();
1893
1894
  newTemplate.Name = `${this.record.Name || 'AI Prompt'} Template`;
1894
1895
  newTemplate.Description = `Template for AI Prompt: ${this.record.Name}`;
@@ -1896,7 +1897,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1896
1897
  // Add to pending records instead of saving immediately
1897
1898
  this.PendingRecords.push({
1898
1899
  entityObject: newTemplate,
1899
- action: 'save',
1900
+ action: 'save'
1900
1901
  });
1901
1902
  // Update the AI prompt to reference the new template
1902
1903
  this.record.TemplateID = newTemplate.ID;
@@ -1949,7 +1950,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1949
1950
  EntityName: 'Template Contents',
1950
1951
  ExtraFilter: `TemplateID = '${this.template.ID}'`,
1951
1952
  OrderBy: 'Priority ASC',
1952
- ResultType: 'entity_object',
1953
+ ResultType: 'entity_object'
1953
1954
  });
1954
1955
  // Get the first content (highest priority)
1955
1956
  this.templateContent = results.Results?.[0] || null;
@@ -1973,7 +1974,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
1973
1974
  const results = await rv.RunView({
1974
1975
  EntityName: 'Template Params',
1975
1976
  ExtraFilter: `TemplateID = '${this.template.ID}'`,
1976
- OrderBy: 'Name ASC',
1977
+ OrderBy: 'Name ASC'
1977
1978
  });
1978
1979
  this.templateParams = results.Results || [];
1979
1980
  }
@@ -2020,7 +2021,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2020
2021
  error: (error) => {
2021
2022
  console.error('Test harness error:', error);
2022
2023
  MJNotificationService.Instance.CreateSimpleNotification('Test failed: ' + error.message, 'error', 5000);
2023
- },
2024
+ }
2024
2025
  });
2025
2026
  }
2026
2027
  /**
@@ -2049,7 +2050,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2049
2050
  // If it's saved, add to pending deletions
2050
2051
  this.PendingRecords.push({
2051
2052
  entityObject: templateContent,
2052
- action: 'delete',
2053
+ action: 'delete'
2053
2054
  });
2054
2055
  }
2055
2056
  else {
@@ -2058,7 +2059,8 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2058
2059
  for (let i = currentPendingRecords.length - 1; i >= 0; i--) {
2059
2060
  const record = currentPendingRecords[i];
2060
2061
  if (record.entityObject === templateContent ||
2061
- (record.entityObject.EntityInfo.Name === 'Template Contents' && record.entityObject.Get('ID') === templateContent.Get('ID'))) {
2062
+ (record.entityObject.EntityInfo.Name === 'Template Contents' &&
2063
+ record.entityObject.Get('ID') === templateContent.Get('ID'))) {
2062
2064
  currentPendingRecords.splice(i, 1);
2063
2065
  break;
2064
2066
  }
@@ -2075,7 +2077,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2075
2077
  // Add to pending saves
2076
2078
  this.PendingRecords.push({
2077
2079
  entityObject: templateContent,
2078
- action: 'save',
2080
+ action: 'save'
2079
2081
  });
2080
2082
  }
2081
2083
  this.hasUnsavedChanges = true;
@@ -2114,16 +2116,11 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2114
2116
  */
2115
2117
  getParallelizationModeDisplay() {
2116
2118
  switch (this.record?.ParallelizationMode) {
2117
- case 'None':
2118
- return 'None';
2119
- case 'StaticCount':
2120
- return `Static count (${this.record.ParallelCount || 1})`;
2121
- case 'ConfigParam':
2122
- return `Config parameter (${this.record.ParallelConfigParam || 'not set'})`;
2123
- case 'ModelSpecific':
2124
- return 'Model-specific configuration';
2125
- default:
2126
- return 'Unknown';
2119
+ case 'None': return 'None';
2120
+ case 'StaticCount': return `Static count (${this.record.ParallelCount || 1})`;
2121
+ case 'ConfigParam': return `Config parameter (${this.record.ParallelConfigParam || 'not set'})`;
2122
+ case 'ModelSpecific': return 'Model-specific configuration';
2123
+ default: return 'Unknown';
2127
2124
  }
2128
2125
  }
2129
2126
  /**
@@ -2144,12 +2141,9 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2144
2141
  */
2145
2142
  getValidationColor() {
2146
2143
  switch (this.record?.ValidationBehavior) {
2147
- case 'Strict':
2148
- return '#dc3545'; // red
2149
- case 'Warn':
2150
- return '#ffc107'; // yellow
2151
- default:
2152
- return '#6c757d'; // default gray
2144
+ case 'Strict': return '#dc3545'; // red
2145
+ case 'Warn': return '#ffc107'; // yellow
2146
+ default: return '#6c757d'; // default gray
2153
2147
  }
2154
2148
  }
2155
2149
  /**
@@ -2174,21 +2168,20 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2174
2168
  * Checks if the AI prompt can be executed
2175
2169
  */
2176
2170
  get canExecute() {
2177
- return !!(this.record?.ID && this.record.Status === 'Active' && this.record.TemplateID && this.template);
2171
+ return !!(this.record?.ID &&
2172
+ this.record.Status === 'Active' &&
2173
+ this.record.TemplateID &&
2174
+ this.template);
2178
2175
  }
2179
2176
  /**
2180
2177
  * Gets status badge color
2181
2178
  */
2182
2179
  getStatusBadgeColor() {
2183
2180
  switch (this.record?.Status) {
2184
- case 'Active':
2185
- return '#28a745';
2186
- case 'Pending':
2187
- return '#ffc107';
2188
- case 'Disabled':
2189
- return '#6c757d';
2190
- default:
2191
- return '#6c757d';
2181
+ case 'Active': return '#28a745';
2182
+ case 'Pending': return '#ffc107';
2183
+ case 'Disabled': return '#6c757d';
2184
+ default: return '#6c757d';
2192
2185
  }
2193
2186
  }
2194
2187
  /**
@@ -2274,9 +2267,9 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2274
2267
  // Load model vendors for this model, filtering by TypeID for inference providers only
2275
2268
  const engine = AIEngineBase.Instance;
2276
2269
  await engine.Config(false);
2277
- const modelVendors = engine.ModelVendors.filter((mv) => mv.ModelID === modelId && mv.TypeID === this.__InferenceProvider_VendorTypeDefinitionID);
2270
+ const modelVendors = engine.ModelVendors.filter(mv => mv.ModelID === modelId && mv.TypeID === this.__InferenceProvider_VendorTypeDefinitionID);
2278
2271
  // filter vendors to just the vendors in the modelVendors array in VendorID
2279
- const vendors = engine.Vendors.filter((v) => modelVendors.some((mv) => mv.VendorID === v.ID));
2272
+ const vendors = engine.Vendors.filter(v => modelVendors.some(mv => mv.VendorID === v.ID));
2280
2273
  const result = { vendors, modelVendors };
2281
2274
  this.modelVendorsMap.set(modelId, result);
2282
2275
  return result;
@@ -2300,7 +2293,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2300
2293
  const modelVendorData = this.modelVendorsMap.get(modelId);
2301
2294
  if (!modelVendorData)
2302
2295
  return 'Unknown';
2303
- const modelVendor = modelVendorData.modelVendors.find((mv) => mv.VendorID === vendorId);
2296
+ const modelVendor = modelVendorData.modelVendors.find(mv => mv.VendorID === vendorId);
2304
2297
  return modelVendor?.Status || 'Unknown';
2305
2298
  }
2306
2299
  /**
@@ -2309,14 +2302,10 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2309
2302
  getVendorStatusColor(modelId, vendorId) {
2310
2303
  const status = this.getModelVendorStatus(modelId, vendorId);
2311
2304
  switch (status) {
2312
- case 'Active':
2313
- return '#28a745'; // green
2314
- case 'Inactive':
2315
- return '#dc3545'; // red
2316
- case 'Pending':
2317
- return '#ffc107'; // yellow
2318
- default:
2319
- return '#6c757d'; // gray
2305
+ case 'Active': return '#28a745'; // green
2306
+ case 'Inactive': return '#dc3545'; // red
2307
+ case 'Pending': return '#ffc107'; // yellow
2308
+ default: return '#6c757d'; // gray
2320
2309
  }
2321
2310
  }
2322
2311
  /**
@@ -2380,14 +2369,16 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2380
2369
  try {
2381
2370
  const engine = AIEngineBase.Instance;
2382
2371
  await engine.Config(false);
2383
- this.promptModels = engine.PromptModels.filter((pm) => pm.PromptID === this.record.ID);
2372
+ this.promptModels = engine.PromptModels.filter(pm => pm.PromptID === this.record.ID);
2384
2373
  this.promptModels.sort((a, b) => {
2385
2374
  // first sort on priority (descending), then by created date (ascending)
2386
2375
  return b.Priority - a.Priority || new Date(a.__mj_CreatedAt).getTime() - new Date(b.__mj_CreatedAt).getTime();
2387
2376
  });
2388
2377
  // Load vendors for existing models
2389
- const modelIds = this.promptModels.map((pm) => pm.ModelID).filter((id) => id); // Filter out null/undefined
2390
- await Promise.all(modelIds.map((modelId) => this.loadVendorsForModel(modelId)));
2378
+ const modelIds = this.promptModels
2379
+ .map(pm => pm.ModelID)
2380
+ .filter(id => id); // Filter out null/undefined
2381
+ await Promise.all(modelIds.map(modelId => this.loadVendorsForModel(modelId)));
2391
2382
  }
2392
2383
  catch (error) {
2393
2384
  console.error('Error loading prompt models:', error);
@@ -2437,7 +2428,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2437
2428
  if (model.IsSaved) {
2438
2429
  this.PendingRecords.push({
2439
2430
  entityObject: model,
2440
- action: 'delete',
2431
+ action: 'delete'
2441
2432
  });
2442
2433
  }
2443
2434
  // Remove from local array
@@ -2460,7 +2451,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2460
2451
  getModelDisplayName(modelId) {
2461
2452
  if (!modelId)
2462
2453
  return '';
2463
- const model = this.availableModels.find((m) => m.ID === modelId);
2454
+ const model = this.availableModels.find(m => m.ID === modelId);
2464
2455
  return model ? model.Name : modelId;
2465
2456
  }
2466
2457
  /**
@@ -2469,7 +2460,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2469
2460
  getVendorDisplayName(vendorId) {
2470
2461
  if (!vendorId)
2471
2462
  return '';
2472
- const vendor = this.availableVendors.find((v) => v.ID === vendorId);
2463
+ const vendor = this.availableVendors.find(v => v.ID === vendorId);
2473
2464
  return vendor ? vendor.Name : vendorId;
2474
2465
  }
2475
2466
  /**
@@ -2478,7 +2469,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2478
2469
  getPromptTypeDisplayName(typeId) {
2479
2470
  if (!typeId)
2480
2471
  return '';
2481
- const type = this.availablePromptTypes.find((t) => t.ID === typeId);
2472
+ const type = this.availablePromptTypes.find(t => t.ID === typeId);
2482
2473
  return type ? type.Name : typeId;
2483
2474
  }
2484
2475
  /**
@@ -2487,7 +2478,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2487
2478
  getConfigurationDisplayName(configurationId) {
2488
2479
  if (!configurationId)
2489
2480
  return 'Default';
2490
- const config = this.availableConfigurations.find((c) => c.ID === configurationId);
2481
+ const config = this.availableConfigurations.find(c => c.ID === configurationId);
2491
2482
  return config ? config.Name : configurationId;
2492
2483
  }
2493
2484
  /**
@@ -2552,7 +2543,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2552
2543
  }
2553
2544
  this.PendingRecords.push({
2554
2545
  entityObject: model,
2555
- action: 'save',
2546
+ action: 'save'
2556
2547
  });
2557
2548
  }
2558
2549
  }
@@ -2569,7 +2560,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2569
2560
  const md = new Metadata();
2570
2561
  const transactionGroup = await md.CreateTransactionGroup();
2571
2562
  // First, save any templates that need to be saved (they must be saved before AI Prompts)
2572
- const templateRecords = this.PendingRecords.filter((p) => p.entityObject.EntityInfo.Name === 'Templates');
2563
+ const templateRecords = this.PendingRecords.filter(p => p.entityObject.EntityInfo.Name === 'Templates');
2573
2564
  for (const templateRecord of templateRecords) {
2574
2565
  templateRecord.entityObject.TransactionGroup = transactionGroup;
2575
2566
  if (templateRecord.action === 'save') {
@@ -2591,7 +2582,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2591
2582
  return false;
2592
2583
  }
2593
2584
  // Then save all other pending records (excluding templates which we already saved)
2594
- const otherRecords = this.PendingRecords.filter((p) => p.entityObject.EntityInfo.Name !== 'Templates');
2585
+ const otherRecords = this.PendingRecords.filter(p => p.entityObject.EntityInfo.Name !== 'Templates');
2595
2586
  for (const record of otherRecords) {
2596
2587
  record.entityObject.TransactionGroup = transactionGroup;
2597
2588
  if (record.action === 'save') {
@@ -2636,7 +2627,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2636
2627
  const engine = AIEngineBase.Instance;
2637
2628
  await engine.Config(false);
2638
2629
  const categories = engine.PromptCategories;
2639
- const prompts = engine.Prompts.filter((p) => p.Status === 'Active');
2630
+ const prompts = engine.Prompts.filter(p => p.Status === 'Active');
2640
2631
  categories.sort((a, b) => a.Name.localeCompare(b.Name));
2641
2632
  prompts.sort((a, b) => a.Name.localeCompare(b.Name));
2642
2633
  // Build tree structure
@@ -2661,11 +2652,11 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2661
2652
  value: null,
2662
2653
  hasChildren: false,
2663
2654
  isCategory: false,
2664
- isClearOption: true,
2655
+ isClearOption: true
2665
2656
  });
2666
2657
  // Create category nodes
2667
2658
  const categoryMap = new Map();
2668
- categories.forEach((category) => {
2659
+ categories.forEach(category => {
2669
2660
  const node = {
2670
2661
  text: category.Name,
2671
2662
  value: null, // Categories don't have values
@@ -2673,7 +2664,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2673
2664
  hasChildren: true,
2674
2665
  items: [],
2675
2666
  isCategory: true,
2676
- categoryId: category.ID,
2667
+ categoryId: category.ID
2677
2668
  };
2678
2669
  categoryMap.set(category.ID, node);
2679
2670
  // Handle parent-child relationships
@@ -2693,13 +2684,13 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2693
2684
  // Collect uncategorized prompts
2694
2685
  const uncategorizedPrompts = [];
2695
2686
  // Add prompts to their categories
2696
- prompts.forEach((prompt) => {
2687
+ prompts.forEach(prompt => {
2697
2688
  const promptNode = {
2698
2689
  text: prompt.Name,
2699
2690
  value: prompt.ID,
2700
2691
  hasChildren: false,
2701
2692
  isCategory: false,
2702
- promptId: prompt.ID,
2693
+ promptId: prompt.ID
2703
2694
  };
2704
2695
  if (prompt.CategoryID) {
2705
2696
  const categoryNode = categoryMap.get(prompt.CategoryID);
@@ -2725,7 +2716,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2725
2716
  hasChildren: true,
2726
2717
  items: uncategorizedPrompts,
2727
2718
  isCategory: true,
2728
- categoryId: 'uncategorized',
2719
+ categoryId: 'uncategorized'
2729
2720
  });
2730
2721
  }
2731
2722
  return tree;
@@ -2765,7 +2756,8 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2765
2756
  // Create new array to ensure Angular detects the change
2766
2757
  const newModels = [...this.promptModels];
2767
2758
  // Swap with previous item
2768
- [newModels[index - 1], newModels[index]] = [newModels[index], newModels[index - 1]];
2759
+ [newModels[index - 1], newModels[index]] =
2760
+ [newModels[index], newModels[index - 1]];
2769
2761
  // Replace the array and force full re-render
2770
2762
  this.promptModels = [...newModels];
2771
2763
  this.hasUnsavedChanges = true;
@@ -2786,7 +2778,8 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2786
2778
  // Create new array to ensure Angular detects the change
2787
2779
  const newModels = [...this.promptModels];
2788
2780
  // Swap with next item
2789
- [newModels[index], newModels[index + 1]] = [newModels[index + 1], newModels[index]];
2781
+ [newModels[index], newModels[index + 1]] =
2782
+ [newModels[index + 1], newModels[index]];
2790
2783
  // Replace the array and force full re-render
2791
2784
  this.promptModels = [...newModels];
2792
2785
  this.hasUnsavedChanges = true;
@@ -2874,7 +2867,7 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
2874
2867
  const result = await rv.RunView({
2875
2868
  EntityName: 'MJ: AI Prompt Runs',
2876
2869
  ExtraFilter: `PromptID='${this.record.ID}'`,
2877
- OrderBy: 'RunAt DESC',
2870
+ OrderBy: 'RunAt DESC'
2878
2871
  });
2879
2872
  this.executionHistory = result.Results;
2880
2873
  this.sortExecutionHistory();
@@ -3001,18 +2994,12 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
3001
2994
  */
3002
2995
  getParamTypeIcon(type) {
3003
2996
  switch (type) {
3004
- case 'Scalar':
3005
- return 'fa-font';
3006
- case 'Array':
3007
- return 'fa-list';
3008
- case 'Object':
3009
- return 'fa-cube';
3010
- case 'Record':
3011
- return 'fa-file-alt';
3012
- case 'Entity':
3013
- return 'fa-table';
3014
- default:
3015
- return 'fa-question';
2997
+ case 'Scalar': return 'fa-font';
2998
+ case 'Array': return 'fa-list';
2999
+ case 'Object': return 'fa-cube';
3000
+ case 'Record': return 'fa-file-alt';
3001
+ case 'Entity': return 'fa-table';
3002
+ default: return 'fa-question';
3016
3003
  }
3017
3004
  }
3018
3005
  /**
@@ -3020,18 +3007,12 @@ let AIPromptFormComponentExtended = class AIPromptFormComponentExtended extends
3020
3007
  */
3021
3008
  getParamTypeColor(type) {
3022
3009
  switch (type) {
3023
- case 'Scalar':
3024
- return '#17a2b8';
3025
- case 'Array':
3026
- return '#28a745';
3027
- case 'Object':
3028
- return '#6f42c1';
3029
- case 'Record':
3030
- return '#fd7e14';
3031
- case 'Entity':
3032
- return '#dc3545';
3033
- default:
3034
- return '#6c757d';
3010
+ case 'Scalar': return '#17a2b8';
3011
+ case 'Array': return '#28a745';
3012
+ case 'Object': return '#6f42c1';
3013
+ case 'Record': return '#fd7e14';
3014
+ case 'Entity': return '#dc3545';
3015
+ default: return '#6c757d';
3035
3016
  }
3036
3017
  }
3037
3018
  /**
@@ -3088,7 +3069,7 @@ export { AIPromptFormComponentExtended };
3088
3069
  type: ViewChild,
3089
3070
  args: ['templateEditor']
3090
3071
  }] }); })();
3091
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIPromptFormComponentExtended, { className: "AIPromptFormComponentExtended", filePath: "src/lib/custom/AIPrompts/ai-prompt-form.component.ts", lineNumber: 34 }); })();
3072
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIPromptFormComponentExtended, { className: "AIPromptFormComponentExtended", filePath: "src/lib/custom/AIPrompts/ai-prompt-form.component.ts", lineNumber: 21 }); })();
3092
3073
  export function LoadAIPromptFormComponentExtended() {
3093
3074
  // This function ensures the class isn't tree-shaken and registers it with MemberJunction
3094
3075
  }