@memberjunction/ng-core-entity-forms 5.37.0 → 5.39.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 (713) hide show
  1. package/README.md +23 -2
  2. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +10 -0
  3. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  4. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +664 -550
  5. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  6. package/dist/lib/custom/Queries/query-form.component.d.ts +22 -17
  7. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  8. package/dist/lib/custom/Queries/query-form.component.js +426 -478
  9. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  10. package/dist/lib/custom/Tests/test-form.component.js +2 -3
  11. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  12. package/dist/lib/custom/Tests/test-suite-form.component.js +1 -2
  13. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  14. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +24 -0
  15. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  16. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +381 -224
  17. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  18. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +1 -8
  19. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  20. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +4 -64
  21. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  22. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +20 -1
  23. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  24. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +152 -14
  25. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  26. package/dist/lib/custom/custom-forms.module.d.ts +13 -14
  27. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  28. package/dist/lib/custom/custom-forms.module.js +25 -14
  29. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  30. package/dist/lib/generated/Entities/MJAIAction/mjaiaction.form.component.js +32 -22
  31. package/dist/lib/generated/Entities/MJAIAction/mjaiaction.form.component.js.map +1 -1
  32. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
  33. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +185 -157
  34. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  35. package/dist/lib/generated/Entities/MJAIAgentAction/mjaiagentaction.form.component.js +23 -14
  36. package/dist/lib/generated/Entities/MJAIAgentAction/mjaiagentaction.form.component.js.map +1 -1
  37. package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.js +18 -9
  38. package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.js.map +1 -1
  39. package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.js +34 -24
  40. package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.js.map +1 -1
  41. package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js +19 -10
  42. package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js.map +1 -1
  43. package/dist/lib/generated/Entities/MJAIAgentConfiguration/mjaiagentconfiguration.form.component.js +19 -10
  44. package/dist/lib/generated/Entities/MJAIAgentConfiguration/mjaiagentconfiguration.form.component.js.map +1 -1
  45. package/dist/lib/generated/Entities/MJAIAgentDataSource/mjaiagentdatasource.form.component.js +23 -14
  46. package/dist/lib/generated/Entities/MJAIAgentDataSource/mjaiagentdatasource.form.component.js.map +1 -1
  47. package/dist/lib/generated/Entities/MJAIAgentExample/mjaiagentexample.form.component.js +25 -16
  48. package/dist/lib/generated/Entities/MJAIAgentExample/mjaiagentexample.form.component.js.map +1 -1
  49. package/dist/lib/generated/Entities/MJAIAgentLearningCycle/mjaiagentlearningcycle.form.component.js +21 -12
  50. package/dist/lib/generated/Entities/MJAIAgentLearningCycle/mjaiagentlearningcycle.form.component.js.map +1 -1
  51. package/dist/lib/generated/Entities/MJAIAgentModality/mjaiagentmodality.form.component.js +19 -10
  52. package/dist/lib/generated/Entities/MJAIAgentModality/mjaiagentmodality.form.component.js.map +1 -1
  53. package/dist/lib/generated/Entities/MJAIAgentModel/mjaiagentmodel.form.component.js +19 -10
  54. package/dist/lib/generated/Entities/MJAIAgentModel/mjaiagentmodel.form.component.js.map +1 -1
  55. package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.js +32 -22
  56. package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.js.map +1 -1
  57. package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js +24 -15
  58. package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js.map +1 -1
  59. package/dist/lib/generated/Entities/MJAIAgentPermission/mjaiagentpermission.form.component.js +21 -12
  60. package/dist/lib/generated/Entities/MJAIAgentPermission/mjaiagentpermission.form.component.js.map +1 -1
  61. package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.js +20 -11
  62. package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.js.map +1 -1
  63. package/dist/lib/generated/Entities/MJAIAgentRelationship/mjaiagentrelationship.form.component.js +21 -12
  64. package/dist/lib/generated/Entities/MJAIAgentRelationship/mjaiagentrelationship.form.component.js.map +1 -1
  65. package/dist/lib/generated/Entities/MJAIAgentRequest/mjaiagentrequest.form.component.js +21 -12
  66. package/dist/lib/generated/Entities/MJAIAgentRequest/mjaiagentrequest.form.component.js.map +1 -1
  67. package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.js +26 -16
  68. package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.js.map +1 -1
  69. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
  70. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +88 -80
  71. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
  72. package/dist/lib/generated/Entities/MJAIAgentRunMedia/mjaiagentrunmedia.form.component.js +21 -12
  73. package/dist/lib/generated/Entities/MJAIAgentRunMedia/mjaiagentrunmedia.form.component.js.map +1 -1
  74. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js +36 -26
  75. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js.map +1 -1
  76. package/dist/lib/generated/Entities/MJAIAgentSearchScope/mjaiagentsearchscope.form.component.js +23 -14
  77. package/dist/lib/generated/Entities/MJAIAgentSearchScope/mjaiagentsearchscope.form.component.js.map +1 -1
  78. package/dist/lib/generated/Entities/MJAIAgentStep/mjaiagentstep.form.component.js +36 -26
  79. package/dist/lib/generated/Entities/MJAIAgentStep/mjaiagentstep.form.component.js.map +1 -1
  80. package/dist/lib/generated/Entities/MJAIAgentStepPath/mjaiagentsteppath.form.component.js +19 -10
  81. package/dist/lib/generated/Entities/MJAIAgentStepPath/mjaiagentsteppath.form.component.js.map +1 -1
  82. package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js +30 -20
  83. package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js.map +1 -1
  84. package/dist/lib/generated/Entities/MJAIArchitecture/mjaiarchitecture.form.component.js +34 -24
  85. package/dist/lib/generated/Entities/MJAIArchitecture/mjaiarchitecture.form.component.js.map +1 -1
  86. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js +26 -16
  87. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js.map +1 -1
  88. package/dist/lib/generated/Entities/MJAIConfiguration/mjaiconfiguration.form.component.js +64 -54
  89. package/dist/lib/generated/Entities/MJAIConfiguration/mjaiconfiguration.form.component.js.map +1 -1
  90. package/dist/lib/generated/Entities/MJAIConfigurationParam/mjaiconfigurationparam.form.component.js +19 -10
  91. package/dist/lib/generated/Entities/MJAIConfigurationParam/mjaiconfigurationparam.form.component.js.map +1 -1
  92. package/dist/lib/generated/Entities/MJAICredentialBinding/mjaicredentialbinding.form.component.js +19 -10
  93. package/dist/lib/generated/Entities/MJAICredentialBinding/mjaicredentialbinding.form.component.js.map +1 -1
  94. package/dist/lib/generated/Entities/MJAIModality/mjaimodality.form.component.js +57 -47
  95. package/dist/lib/generated/Entities/MJAIModality/mjaimodality.form.component.js.map +1 -1
  96. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +150 -140
  97. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
  98. package/dist/lib/generated/Entities/MJAIModelAction/mjaimodelaction.form.component.js +19 -10
  99. package/dist/lib/generated/Entities/MJAIModelAction/mjaimodelaction.form.component.js.map +1 -1
  100. package/dist/lib/generated/Entities/MJAIModelArchitecture/mjaimodelarchitecture.form.component.js +19 -10
  101. package/dist/lib/generated/Entities/MJAIModelArchitecture/mjaimodelarchitecture.form.component.js.map +1 -1
  102. package/dist/lib/generated/Entities/MJAIModelCost/mjaimodelcost.form.component.js +25 -12
  103. package/dist/lib/generated/Entities/MJAIModelCost/mjaimodelcost.form.component.js.map +1 -1
  104. package/dist/lib/generated/Entities/MJAIModelModality/mjaimodelmodality.form.component.js +21 -12
  105. package/dist/lib/generated/Entities/MJAIModelModality/mjaimodelmodality.form.component.js.map +1 -1
  106. package/dist/lib/generated/Entities/MJAIModelPriceType/mjaimodelpricetype.form.component.js +24 -14
  107. package/dist/lib/generated/Entities/MJAIModelPriceType/mjaimodelpricetype.form.component.js.map +1 -1
  108. package/dist/lib/generated/Entities/MJAIModelPriceUnitType/mjaimodelpriceunittype.form.component.js +24 -14
  109. package/dist/lib/generated/Entities/MJAIModelPriceUnitType/mjaimodelpriceunittype.form.component.js.map +1 -1
  110. package/dist/lib/generated/Entities/MJAIModelType/mjaimodeltype.form.component.js +34 -24
  111. package/dist/lib/generated/Entities/MJAIModelType/mjaimodeltype.form.component.js.map +1 -1
  112. package/dist/lib/generated/Entities/MJAIModelVendor/mjaimodelvendor.form.component.js +26 -16
  113. package/dist/lib/generated/Entities/MJAIModelVendor/mjaimodelvendor.form.component.js.map +1 -1
  114. package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +99 -89
  115. package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js.map +1 -1
  116. package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.js +32 -22
  117. package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.js.map +1 -1
  118. package/dist/lib/generated/Entities/MJAIPromptModel/mjaipromptmodel.form.component.js +30 -20
  119. package/dist/lib/generated/Entities/MJAIPromptModel/mjaipromptmodel.form.component.js.map +1 -1
  120. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +64 -46
  121. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  122. package/dist/lib/generated/Entities/MJAIPromptRunMedia/mjaipromptrunmedia.form.component.js +28 -18
  123. package/dist/lib/generated/Entities/MJAIPromptRunMedia/mjaipromptrunmedia.form.component.js.map +1 -1
  124. package/dist/lib/generated/Entities/MJAIPromptType/mjaiprompttype.form.component.js +24 -14
  125. package/dist/lib/generated/Entities/MJAIPromptType/mjaiprompttype.form.component.js.map +1 -1
  126. package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js +23 -14
  127. package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js.map +1 -1
  128. package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +62 -52
  129. package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
  130. package/dist/lib/generated/Entities/MJAIVendorType/mjaivendortype.form.component.js +21 -12
  131. package/dist/lib/generated/Entities/MJAIVendorType/mjaivendortype.form.component.js.map +1 -1
  132. package/dist/lib/generated/Entities/MJAIVendorTypeDefinition/mjaivendortypedefinition.form.component.js +30 -20
  133. package/dist/lib/generated/Entities/MJAIVendorTypeDefinition/mjaivendortypedefinition.form.component.js.map +1 -1
  134. package/dist/lib/generated/Entities/MJAPIApplication/mjapiapplication.form.component.js +37 -27
  135. package/dist/lib/generated/Entities/MJAPIApplication/mjapiapplication.form.component.js.map +1 -1
  136. package/dist/lib/generated/Entities/MJAPIApplicationScope/mjapiapplicationscope.form.component.js +19 -10
  137. package/dist/lib/generated/Entities/MJAPIApplicationScope/mjapiapplicationscope.form.component.js.map +1 -1
  138. package/dist/lib/generated/Entities/MJAPIKey/mjapikey.form.component.js +39 -29
  139. package/dist/lib/generated/Entities/MJAPIKey/mjapikey.form.component.js.map +1 -1
  140. package/dist/lib/generated/Entities/MJAPIKeyApplication/mjapikeyapplication.form.component.js +17 -8
  141. package/dist/lib/generated/Entities/MJAPIKeyApplication/mjapikeyapplication.form.component.js.map +1 -1
  142. package/dist/lib/generated/Entities/MJAPIKeyScope/mjapikeyscope.form.component.js +19 -10
  143. package/dist/lib/generated/Entities/MJAPIKeyScope/mjapikeyscope.form.component.js.map +1 -1
  144. package/dist/lib/generated/Entities/MJAPIKeyUsageLog/mjapikeyusagelog.form.component.js +21 -12
  145. package/dist/lib/generated/Entities/MJAPIKeyUsageLog/mjapikeyusagelog.form.component.js.map +1 -1
  146. package/dist/lib/generated/Entities/MJAPIScope/mjapiscope.form.component.js +37 -27
  147. package/dist/lib/generated/Entities/MJAPIScope/mjapiscope.form.component.js.map +1 -1
  148. package/dist/lib/generated/Entities/MJAccessControlRule/mjaccesscontrolrule.form.component.js +21 -12
  149. package/dist/lib/generated/Entities/MJAccessControlRule/mjaccesscontrolrule.form.component.js.map +1 -1
  150. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js +86 -76
  151. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js.map +1 -1
  152. package/dist/lib/generated/Entities/MJActionAuthorization/mjactionauthorization.form.component.js +19 -10
  153. package/dist/lib/generated/Entities/MJActionAuthorization/mjactionauthorization.form.component.js.map +1 -1
  154. package/dist/lib/generated/Entities/MJActionCategory/mjactioncategory.form.component.js +37 -27
  155. package/dist/lib/generated/Entities/MJActionCategory/mjactioncategory.form.component.js.map +1 -1
  156. package/dist/lib/generated/Entities/MJActionContext/mjactioncontext.form.component.js +19 -10
  157. package/dist/lib/generated/Entities/MJActionContext/mjactioncontext.form.component.js.map +1 -1
  158. package/dist/lib/generated/Entities/MJActionContextType/mjactioncontexttype.form.component.js +24 -14
  159. package/dist/lib/generated/Entities/MJActionContextType/mjactioncontexttype.form.component.js.map +1 -1
  160. package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.js +21 -12
  161. package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.js.map +1 -1
  162. package/dist/lib/generated/Entities/MJActionFilter/mjactionfilter.form.component.js +24 -14
  163. package/dist/lib/generated/Entities/MJActionFilter/mjactionfilter.form.component.js.map +1 -1
  164. package/dist/lib/generated/Entities/MJActionLibrary/mjactionlibrary.form.component.js +19 -10
  165. package/dist/lib/generated/Entities/MJActionLibrary/mjactionlibrary.form.component.js.map +1 -1
  166. package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js +32 -22
  167. package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js.map +1 -1
  168. package/dist/lib/generated/Entities/MJActionResultCode/mjactionresultcode.form.component.js +19 -10
  169. package/dist/lib/generated/Entities/MJActionResultCode/mjactionresultcode.form.component.js.map +1 -1
  170. package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.d.ts.map +1 -1
  171. package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js +73 -45
  172. package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js.map +1 -1
  173. package/dist/lib/generated/Entities/MJApplicationEntity/mjapplicationentity.form.component.js +19 -10
  174. package/dist/lib/generated/Entities/MJApplicationEntity/mjapplicationentity.form.component.js.map +1 -1
  175. package/dist/lib/generated/Entities/MJApplicationRole/mjapplicationrole.form.component.js +19 -10
  176. package/dist/lib/generated/Entities/MJApplicationRole/mjapplicationrole.form.component.js.map +1 -1
  177. package/dist/lib/generated/Entities/MJApplicationSetting/mjapplicationsetting.form.component.js +19 -10
  178. package/dist/lib/generated/Entities/MJApplicationSetting/mjapplicationsetting.form.component.js.map +1 -1
  179. package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js +34 -24
  180. package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js.map +1 -1
  181. package/dist/lib/generated/Entities/MJArchiveConfigurationEntity/mjarchiveconfigurationentity.form.component.js +21 -12
  182. package/dist/lib/generated/Entities/MJArchiveConfigurationEntity/mjarchiveconfigurationentity.form.component.js.map +1 -1
  183. package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js +30 -20
  184. package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js.map +1 -1
  185. package/dist/lib/generated/Entities/MJArchiveRunDetail/mjarchiverundetail.form.component.js +21 -12
  186. package/dist/lib/generated/Entities/MJArchiveRunDetail/mjarchiverundetail.form.component.js.map +1 -1
  187. package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.js +32 -22
  188. package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.js.map +1 -1
  189. package/dist/lib/generated/Entities/MJArtifactPermission/mjartifactpermission.form.component.js +19 -10
  190. package/dist/lib/generated/Entities/MJArtifactPermission/mjartifactpermission.form.component.js.map +1 -1
  191. package/dist/lib/generated/Entities/MJArtifactType/mjartifacttype.form.component.js +47 -37
  192. package/dist/lib/generated/Entities/MJArtifactType/mjartifacttype.form.component.js.map +1 -1
  193. package/dist/lib/generated/Entities/MJArtifactUse/mjartifactuse.form.component.js +19 -10
  194. package/dist/lib/generated/Entities/MJArtifactUse/mjartifactuse.form.component.js.map +1 -1
  195. package/dist/lib/generated/Entities/MJArtifactVersion/mjartifactversion.form.component.js +51 -41
  196. package/dist/lib/generated/Entities/MJArtifactVersion/mjartifactversion.form.component.js.map +1 -1
  197. package/dist/lib/generated/Entities/MJArtifactVersionAttribute/mjartifactversionattribute.form.component.js +21 -12
  198. package/dist/lib/generated/Entities/MJArtifactVersionAttribute/mjartifactversionattribute.form.component.js.map +1 -1
  199. package/dist/lib/generated/Entities/MJAuditLog/mjauditlog.form.component.js +19 -10
  200. package/dist/lib/generated/Entities/MJAuditLog/mjauditlog.form.component.js.map +1 -1
  201. package/dist/lib/generated/Entities/MJAuditLogType/mjauditlogtype.form.component.js +32 -22
  202. package/dist/lib/generated/Entities/MJAuditLogType/mjauditlogtype.form.component.js.map +1 -1
  203. package/dist/lib/generated/Entities/MJAuthorization/mjauthorization.form.component.js +47 -37
  204. package/dist/lib/generated/Entities/MJAuthorization/mjauthorization.form.component.js.map +1 -1
  205. package/dist/lib/generated/Entities/MJAuthorizationRole/mjauthorizationrole.form.component.js +19 -10
  206. package/dist/lib/generated/Entities/MJAuthorizationRole/mjauthorizationrole.form.component.js.map +1 -1
  207. package/dist/lib/generated/Entities/MJCollection/mjcollection.form.component.js +39 -29
  208. package/dist/lib/generated/Entities/MJCollection/mjcollection.form.component.js.map +1 -1
  209. package/dist/lib/generated/Entities/MJCollectionArtifact/mjcollectionartifact.form.component.js +19 -10
  210. package/dist/lib/generated/Entities/MJCollectionArtifact/mjcollectionartifact.form.component.js.map +1 -1
  211. package/dist/lib/generated/Entities/MJCollectionPermission/mjcollectionpermission.form.component.js +19 -10
  212. package/dist/lib/generated/Entities/MJCollectionPermission/mjcollectionpermission.form.component.js.map +1 -1
  213. package/dist/lib/generated/Entities/MJCommunicationBaseMessageType/mjcommunicationbasemessagetype.form.component.js +32 -22
  214. package/dist/lib/generated/Entities/MJCommunicationBaseMessageType/mjcommunicationbasemessagetype.form.component.js.map +1 -1
  215. package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.js +20 -11
  216. package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.js.map +1 -1
  217. package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js +33 -23
  218. package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js.map +1 -1
  219. package/dist/lib/generated/Entities/MJCommunicationProviderMessageType/mjcommunicationprovidermessagetype.form.component.js +26 -16
  220. package/dist/lib/generated/Entities/MJCommunicationProviderMessageType/mjcommunicationprovidermessagetype.form.component.js.map +1 -1
  221. package/dist/lib/generated/Entities/MJCommunicationRun/mjcommunicationrun.form.component.js +28 -18
  222. package/dist/lib/generated/Entities/MJCommunicationRun/mjcommunicationrun.form.component.js.map +1 -1
  223. package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js +47 -37
  224. package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js.map +1 -1
  225. package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.js +53 -43
  226. package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.js.map +1 -1
  227. package/dist/lib/generated/Entities/MJCompanyIntegrationEntityMap/mjcompanyintegrationentitymap.form.component.js +34 -24
  228. package/dist/lib/generated/Entities/MJCompanyIntegrationEntityMap/mjcompanyintegrationentitymap.form.component.js.map +1 -1
  229. package/dist/lib/generated/Entities/MJCompanyIntegrationFieldMap/mjcompanyintegrationfieldmap.form.component.js +19 -10
  230. package/dist/lib/generated/Entities/MJCompanyIntegrationFieldMap/mjcompanyintegrationfieldmap.form.component.js.map +1 -1
  231. package/dist/lib/generated/Entities/MJCompanyIntegrationRecordMap/mjcompanyintegrationrecordmap.form.component.js +19 -10
  232. package/dist/lib/generated/Entities/MJCompanyIntegrationRecordMap/mjcompanyintegrationrecordmap.form.component.js.map +1 -1
  233. package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.js +39 -29
  234. package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.js.map +1 -1
  235. package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.js +20 -11
  236. package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.js.map +1 -1
  237. package/dist/lib/generated/Entities/MJCompanyIntegrationRunDetail/mjcompanyintegrationrundetail.form.component.js +28 -18
  238. package/dist/lib/generated/Entities/MJCompanyIntegrationRunDetail/mjcompanyintegrationrundetail.form.component.js.map +1 -1
  239. package/dist/lib/generated/Entities/MJCompanyIntegrationSyncWatermark/mjcompanyintegrationsyncwatermark.form.component.js +19 -10
  240. package/dist/lib/generated/Entities/MJCompanyIntegrationSyncWatermark/mjcompanyintegrationsyncwatermark.form.component.js.map +1 -1
  241. package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.d.ts.map +1 -1
  242. package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js +60 -32
  243. package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js.map +1 -1
  244. package/dist/lib/generated/Entities/MJComponentDependency/mjcomponentdependency.form.component.js +17 -8
  245. package/dist/lib/generated/Entities/MJComponentDependency/mjcomponentdependency.form.component.js.map +1 -1
  246. package/dist/lib/generated/Entities/MJComponentLibrary/mjcomponentlibrary.form.component.js +28 -18
  247. package/dist/lib/generated/Entities/MJComponentLibrary/mjcomponentlibrary.form.component.js.map +1 -1
  248. package/dist/lib/generated/Entities/MJComponentLibraryLink/mjcomponentlibrarylink.form.component.js +19 -10
  249. package/dist/lib/generated/Entities/MJComponentLibraryLink/mjcomponentlibrarylink.form.component.js.map +1 -1
  250. package/dist/lib/generated/Entities/MJComponentRegistry/mjcomponentregistry.form.component.js +26 -16
  251. package/dist/lib/generated/Entities/MJComponentRegistry/mjcomponentregistry.form.component.js.map +1 -1
  252. package/dist/lib/generated/Entities/MJContentFileType/mjcontentfiletype.form.component.js +28 -18
  253. package/dist/lib/generated/Entities/MJContentFileType/mjcontentfiletype.form.component.js.map +1 -1
  254. package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js +49 -39
  255. package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js.map +1 -1
  256. package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.js +13 -6
  257. package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.js.map +1 -1
  258. package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js +19 -10
  259. package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js.map +1 -1
  260. package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js +17 -8
  261. package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js.map +1 -1
  262. package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js +26 -16
  263. package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js.map +1 -1
  264. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js +28 -18
  265. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js.map +1 -1
  266. package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js +17 -8
  267. package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js.map +1 -1
  268. package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +51 -41
  269. package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
  270. package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.js +13 -6
  271. package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.js.map +1 -1
  272. package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js +35 -25
  273. package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js.map +1 -1
  274. package/dist/lib/generated/Entities/MJContentSourceTypeParam/mjcontentsourcetypeparam.form.component.js +15 -6
  275. package/dist/lib/generated/Entities/MJContentSourceTypeParam/mjcontentsourcetypeparam.form.component.js.map +1 -1
  276. package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js +36 -26
  277. package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
  278. package/dist/lib/generated/Entities/MJContentTypeAttribute/mjcontenttypeattribute.form.component.js +15 -6
  279. package/dist/lib/generated/Entities/MJContentTypeAttribute/mjcontenttypeattribute.form.component.js.map +1 -1
  280. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.d.ts.map +1 -1
  281. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +74 -50
  282. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
  283. package/dist/lib/generated/Entities/MJConversationArtifact/mjconversationartifact.form.component.js +37 -27
  284. package/dist/lib/generated/Entities/MJConversationArtifact/mjconversationartifact.form.component.js.map +1 -1
  285. package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.js +18 -9
  286. package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.js.map +1 -1
  287. package/dist/lib/generated/Entities/MJConversationArtifactVersion/mjconversationartifactversion.form.component.js +26 -16
  288. package/dist/lib/generated/Entities/MJConversationArtifactVersion/mjconversationartifactversion.form.component.js.map +1 -1
  289. package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js +72 -62
  290. package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js.map +1 -1
  291. package/dist/lib/generated/Entities/MJConversationDetailArtifact/mjconversationdetailartifact.form.component.js +19 -10
  292. package/dist/lib/generated/Entities/MJConversationDetailArtifact/mjconversationdetailartifact.form.component.js.map +1 -1
  293. package/dist/lib/generated/Entities/MJConversationDetailAttachment/mjconversationdetailattachment.form.component.js +21 -12
  294. package/dist/lib/generated/Entities/MJConversationDetailAttachment/mjconversationdetailattachment.form.component.js.map +1 -1
  295. package/dist/lib/generated/Entities/MJConversationDetailRating/mjconversationdetailrating.form.component.js +19 -10
  296. package/dist/lib/generated/Entities/MJConversationDetailRating/mjconversationdetailrating.form.component.js.map +1 -1
  297. package/dist/lib/generated/Entities/MJCountry/mjcountry.form.component.js +32 -22
  298. package/dist/lib/generated/Entities/MJCountry/mjcountry.form.component.js.map +1 -1
  299. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +59 -49
  300. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
  301. package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.js +32 -22
  302. package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.js.map +1 -1
  303. package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js +42 -32
  304. package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js.map +1 -1
  305. package/dist/lib/generated/Entities/MJDashboard/mjdashboard.form.component.js +44 -34
  306. package/dist/lib/generated/Entities/MJDashboard/mjdashboard.form.component.js.map +1 -1
  307. package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.js +42 -32
  308. package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.js.map +1 -1
  309. package/dist/lib/generated/Entities/MJDashboardCategoryLink/mjdashboardcategorylink.form.component.js +19 -10
  310. package/dist/lib/generated/Entities/MJDashboardCategoryLink/mjdashboardcategorylink.form.component.js.map +1 -1
  311. package/dist/lib/generated/Entities/MJDashboardCategoryPermission/mjdashboardcategorypermission.form.component.js +21 -12
  312. package/dist/lib/generated/Entities/MJDashboardCategoryPermission/mjdashboardcategorypermission.form.component.js.map +1 -1
  313. package/dist/lib/generated/Entities/MJDashboardPartType/mjdashboardparttype.form.component.js +19 -10
  314. package/dist/lib/generated/Entities/MJDashboardPartType/mjdashboardparttype.form.component.js.map +1 -1
  315. package/dist/lib/generated/Entities/MJDashboardPermission/mjdashboardpermission.form.component.js +19 -10
  316. package/dist/lib/generated/Entities/MJDashboardPermission/mjdashboardpermission.form.component.js.map +1 -1
  317. package/dist/lib/generated/Entities/MJDashboardUserPreference/mjdashboarduserpreference.form.component.js +21 -12
  318. package/dist/lib/generated/Entities/MJDashboardUserPreference/mjdashboarduserpreference.form.component.js.map +1 -1
  319. package/dist/lib/generated/Entities/MJDashboardUserState/mjdashboarduserstate.form.component.js +19 -10
  320. package/dist/lib/generated/Entities/MJDashboardUserState/mjdashboarduserstate.form.component.js.map +1 -1
  321. package/dist/lib/generated/Entities/MJDataContext/mjdatacontext.form.component.js +37 -27
  322. package/dist/lib/generated/Entities/MJDataContext/mjdatacontext.form.component.js.map +1 -1
  323. package/dist/lib/generated/Entities/MJDataContextItem/mjdatacontextitem.form.component.js +21 -12
  324. package/dist/lib/generated/Entities/MJDataContextItem/mjdatacontextitem.form.component.js.map +1 -1
  325. package/dist/lib/generated/Entities/MJDataset/mjdataset.form.component.js +24 -14
  326. package/dist/lib/generated/Entities/MJDataset/mjdataset.form.component.js.map +1 -1
  327. package/dist/lib/generated/Entities/MJDatasetItem/mjdatasetitem.form.component.js +21 -12
  328. package/dist/lib/generated/Entities/MJDatasetItem/mjdatasetitem.form.component.js.map +1 -1
  329. package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js +28 -18
  330. package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js.map +1 -1
  331. package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +26 -16
  332. package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js.map +1 -1
  333. package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js +19 -10
  334. package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js.map +1 -1
  335. package/dist/lib/generated/Entities/MJEmployee/mjemployee.form.component.js +49 -39
  336. package/dist/lib/generated/Entities/MJEmployee/mjemployee.form.component.js.map +1 -1
  337. package/dist/lib/generated/Entities/MJEmployeeCompanyIntegration/mjemployeecompanyintegration.form.component.js +19 -10
  338. package/dist/lib/generated/Entities/MJEmployeeCompanyIntegration/mjemployeecompanyintegration.form.component.js.map +1 -1
  339. package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.js +18 -9
  340. package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.js.map +1 -1
  341. package/dist/lib/generated/Entities/MJEmployeeSkill/mjemployeeskill.form.component.js +17 -8
  342. package/dist/lib/generated/Entities/MJEmployeeSkill/mjemployeeskill.form.component.js.map +1 -1
  343. package/dist/lib/generated/Entities/MJEncryptionAlgorithm/mjencryptionalgorithm.form.component.js +22 -12
  344. package/dist/lib/generated/Entities/MJEncryptionAlgorithm/mjencryptionalgorithm.form.component.js.map +1 -1
  345. package/dist/lib/generated/Entities/MJEncryptionKey/mjencryptionkey.form.component.js +22 -12
  346. package/dist/lib/generated/Entities/MJEncryptionKey/mjencryptionkey.form.component.js.map +1 -1
  347. package/dist/lib/generated/Entities/MJEncryptionKeySource/mjencryptionkeysource.form.component.js +22 -12
  348. package/dist/lib/generated/Entities/MJEncryptionKeySource/mjencryptionkeysource.form.component.js.map +1 -1
  349. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  350. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +346 -318
  351. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  352. package/dist/lib/generated/Entities/MJEntityAIAction/mjentityaiaction.form.component.js +21 -12
  353. package/dist/lib/generated/Entities/MJEntityAIAction/mjentityaiaction.form.component.js.map +1 -1
  354. package/dist/lib/generated/Entities/MJEntityAction/mjentityaction.form.component.js +37 -27
  355. package/dist/lib/generated/Entities/MJEntityAction/mjentityaction.form.component.js.map +1 -1
  356. package/dist/lib/generated/Entities/MJEntityActionFilter/mjentityactionfilter.form.component.js +19 -10
  357. package/dist/lib/generated/Entities/MJEntityActionFilter/mjentityactionfilter.form.component.js.map +1 -1
  358. package/dist/lib/generated/Entities/MJEntityActionInvocation/mjentityactioninvocation.form.component.js +19 -10
  359. package/dist/lib/generated/Entities/MJEntityActionInvocation/mjentityactioninvocation.form.component.js.map +1 -1
  360. package/dist/lib/generated/Entities/MJEntityActionInvocationType/mjentityactioninvocationtype.form.component.js +24 -14
  361. package/dist/lib/generated/Entities/MJEntityActionInvocationType/mjentityactioninvocationtype.form.component.js.map +1 -1
  362. package/dist/lib/generated/Entities/MJEntityActionParam/mjentityactionparam.form.component.js +19 -10
  363. package/dist/lib/generated/Entities/MJEntityActionParam/mjentityactionparam.form.component.js.map +1 -1
  364. package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.js +17 -9
  365. package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.js.map +1 -1
  366. package/dist/lib/generated/Entities/MJEntityCommunicationMessageType/mjentitycommunicationmessagetype.form.component.js +26 -16
  367. package/dist/lib/generated/Entities/MJEntityCommunicationMessageType/mjentitycommunicationmessagetype.form.component.js.map +1 -1
  368. package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js +44 -34
  369. package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js.map +1 -1
  370. package/dist/lib/generated/Entities/MJEntityDocumentRun/mjentitydocumentrun.form.component.js +19 -10
  371. package/dist/lib/generated/Entities/MJEntityDocumentRun/mjentitydocumentrun.form.component.js.map +1 -1
  372. package/dist/lib/generated/Entities/MJEntityDocumentSetting/mjentitydocumentsetting.form.component.js +19 -10
  373. package/dist/lib/generated/Entities/MJEntityDocumentSetting/mjentitydocumentsetting.form.component.js.map +1 -1
  374. package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js +24 -15
  375. package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js.map +1 -1
  376. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +34 -24
  377. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
  378. package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js +19 -10
  379. package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js.map +1 -1
  380. package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.d.ts +10 -0
  381. package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.d.ts.map +1 -0
  382. package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.js +92 -0
  383. package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.js.map +1 -0
  384. package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js +28 -18
  385. package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js.map +1 -1
  386. package/dist/lib/generated/Entities/MJEntityOrganicKeyRelatedEntity/mjentityorganickeyrelatedentity.form.component.js +21 -12
  387. package/dist/lib/generated/Entities/MJEntityOrganicKeyRelatedEntity/mjentityorganickeyrelatedentity.form.component.js.map +1 -1
  388. package/dist/lib/generated/Entities/MJEntityPermission/mjentitypermission.form.component.js +21 -12
  389. package/dist/lib/generated/Entities/MJEntityPermission/mjentitypermission.form.component.js.map +1 -1
  390. package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js +30 -20
  391. package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js.map +1 -1
  392. package/dist/lib/generated/Entities/MJEntityRelationship/mjentityrelationship.form.component.js +23 -14
  393. package/dist/lib/generated/Entities/MJEntityRelationship/mjentityrelationship.form.component.js.map +1 -1
  394. package/dist/lib/generated/Entities/MJEntityRelationshipDisplayComponent/mjentityrelationshipdisplaycomponent.form.component.js +24 -14
  395. package/dist/lib/generated/Entities/MJEntityRelationshipDisplayComponent/mjentityrelationshipdisplaycomponent.form.component.js.map +1 -1
  396. package/dist/lib/generated/Entities/MJEntitySetting/mjentitysetting.form.component.js +17 -8
  397. package/dist/lib/generated/Entities/MJEntitySetting/mjentitysetting.form.component.js.map +1 -1
  398. package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js +57 -48
  399. package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js.map +1 -1
  400. package/dist/lib/generated/Entities/MJErrorLog/mjerrorlog.form.component.js +21 -12
  401. package/dist/lib/generated/Entities/MJErrorLog/mjerrorlog.form.component.js.map +1 -1
  402. package/dist/lib/generated/Entities/MJExplorerNavigationItem/mjexplorernavigationitem.form.component.js +21 -12
  403. package/dist/lib/generated/Entities/MJExplorerNavigationItem/mjexplorernavigationitem.form.component.js.map +1 -1
  404. package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js +49 -39
  405. package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js.map +1 -1
  406. package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.js +32 -22
  407. package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.js.map +1 -1
  408. package/dist/lib/generated/Entities/MJFileEntityRecordLink/mjfileentityrecordlink.form.component.js +19 -10
  409. package/dist/lib/generated/Entities/MJFileEntityRecordLink/mjfileentityrecordlink.form.component.js.map +1 -1
  410. package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js +52 -42
  411. package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js.map +1 -1
  412. package/dist/lib/generated/Entities/MJFileStorageAccountPermission/mjfilestorageaccountpermission.form.component.js +19 -10
  413. package/dist/lib/generated/Entities/MJFileStorageAccountPermission/mjfilestorageaccountpermission.form.component.js.map +1 -1
  414. package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js +46 -36
  415. package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js.map +1 -1
  416. package/dist/lib/generated/Entities/MJGeneratedCode/mjgeneratedcode.form.component.js +23 -14
  417. package/dist/lib/generated/Entities/MJGeneratedCode/mjgeneratedcode.form.component.js.map +1 -1
  418. package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.js +32 -22
  419. package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.js.map +1 -1
  420. package/dist/lib/generated/Entities/MJInstanceConfiguration/mjinstanceconfiguration.form.component.js +19 -10
  421. package/dist/lib/generated/Entities/MJInstanceConfiguration/mjinstanceconfiguration.form.component.js.map +1 -1
  422. package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js +44 -34
  423. package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js.map +1 -1
  424. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.d.ts.map +1 -1
  425. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js +71 -27
  426. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js.map +1 -1
  427. package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js +23 -12
  428. package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js.map +1 -1
  429. package/dist/lib/generated/Entities/MJIntegrationSourceType/mjintegrationsourcetype.form.component.js +26 -16
  430. package/dist/lib/generated/Entities/MJIntegrationSourceType/mjintegrationsourcetype.form.component.js.map +1 -1
  431. package/dist/lib/generated/Entities/MJIntegrationURLFormat/mjintegrationurlformat.form.component.js +21 -12
  432. package/dist/lib/generated/Entities/MJIntegrationURLFormat/mjintegrationurlformat.form.component.js.map +1 -1
  433. package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js +21 -12
  434. package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js.map +1 -1
  435. package/dist/lib/generated/Entities/MJLibrary/mjlibrary.form.component.js +32 -22
  436. package/dist/lib/generated/Entities/MJLibrary/mjlibrary.form.component.js.map +1 -1
  437. package/dist/lib/generated/Entities/MJLibraryItem/mjlibraryitem.form.component.js +17 -8
  438. package/dist/lib/generated/Entities/MJLibraryItem/mjlibraryitem.form.component.js.map +1 -1
  439. package/dist/lib/generated/Entities/MJList/mjlist.form.component.js +45 -35
  440. package/dist/lib/generated/Entities/MJList/mjlist.form.component.js.map +1 -1
  441. package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.js +34 -24
  442. package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.js.map +1 -1
  443. package/dist/lib/generated/Entities/MJListDetail/mjlistdetail.form.component.js +19 -10
  444. package/dist/lib/generated/Entities/MJListDetail/mjlistdetail.form.component.js.map +1 -1
  445. package/dist/lib/generated/Entities/MJListInvitation/mjlistinvitation.form.component.js +17 -8
  446. package/dist/lib/generated/Entities/MJListInvitation/mjlistinvitation.form.component.js.map +1 -1
  447. package/dist/lib/generated/Entities/MJListShare/mjlistshare.form.component.js +17 -8
  448. package/dist/lib/generated/Entities/MJListShare/mjlistshare.form.component.js.map +1 -1
  449. package/dist/lib/generated/Entities/MJMCPServer/mjmcpserver.form.component.js +43 -33
  450. package/dist/lib/generated/Entities/MJMCPServer/mjmcpserver.form.component.js.map +1 -1
  451. package/dist/lib/generated/Entities/MJMCPServerConnection/mjmcpserverconnection.form.component.js +54 -44
  452. package/dist/lib/generated/Entities/MJMCPServerConnection/mjmcpserverconnection.form.component.js.map +1 -1
  453. package/dist/lib/generated/Entities/MJMCPServerConnectionPermission/mjmcpserverconnectionpermission.form.component.js +19 -10
  454. package/dist/lib/generated/Entities/MJMCPServerConnectionPermission/mjmcpserverconnectionpermission.form.component.js.map +1 -1
  455. package/dist/lib/generated/Entities/MJMCPServerConnectionTool/mjmcpserverconnectiontool.form.component.js +19 -10
  456. package/dist/lib/generated/Entities/MJMCPServerConnectionTool/mjmcpserverconnectiontool.form.component.js.map +1 -1
  457. package/dist/lib/generated/Entities/MJMCPServerTool/mjmcpservertool.form.component.js +39 -29
  458. package/dist/lib/generated/Entities/MJMCPServerTool/mjmcpservertool.form.component.js.map +1 -1
  459. package/dist/lib/generated/Entities/MJMCPToolExecutionLog/mjmcptoolexecutionlog.form.component.js +23 -14
  460. package/dist/lib/generated/Entities/MJMCPToolExecutionLog/mjmcptoolexecutionlog.form.component.js.map +1 -1
  461. package/dist/lib/generated/Entities/MJMCPToolFavorite/mjmcptoolfavorite.form.component.js +17 -8
  462. package/dist/lib/generated/Entities/MJMCPToolFavorite/mjmcptoolfavorite.form.component.js.map +1 -1
  463. package/dist/lib/generated/Entities/MJOAuthAuthServerMetadataCache/mjoauthauthservermetadatacache.form.component.js +15 -6
  464. package/dist/lib/generated/Entities/MJOAuthAuthServerMetadataCache/mjoauthauthservermetadatacache.form.component.js.map +1 -1
  465. package/dist/lib/generated/Entities/MJOAuthAuthorizationState/mjoauthauthorizationstate.form.component.js +15 -6
  466. package/dist/lib/generated/Entities/MJOAuthAuthorizationState/mjoauthauthorizationstate.form.component.js.map +1 -1
  467. package/dist/lib/generated/Entities/MJOAuthClientRegistration/mjoauthclientregistration.form.component.js +15 -6
  468. package/dist/lib/generated/Entities/MJOAuthClientRegistration/mjoauthclientregistration.form.component.js.map +1 -1
  469. package/dist/lib/generated/Entities/MJOAuthToken/mjoauthtoken.form.component.js +15 -6
  470. package/dist/lib/generated/Entities/MJOAuthToken/mjoauthtoken.form.component.js.map +1 -1
  471. package/dist/lib/generated/Entities/MJOpenApp/mjopenapp.form.component.js +33 -23
  472. package/dist/lib/generated/Entities/MJOpenApp/mjopenapp.form.component.js.map +1 -1
  473. package/dist/lib/generated/Entities/MJOpenAppDependency/mjopenappdependency.form.component.js +15 -6
  474. package/dist/lib/generated/Entities/MJOpenAppDependency/mjopenappdependency.form.component.js.map +1 -1
  475. package/dist/lib/generated/Entities/MJOpenAppInstallHistory/mjopenappinstallhistory.form.component.js +15 -6
  476. package/dist/lib/generated/Entities/MJOpenAppInstallHistory/mjopenappinstallhistory.form.component.js.map +1 -1
  477. package/dist/lib/generated/Entities/MJOutputDeliveryType/mjoutputdeliverytype.form.component.js +24 -14
  478. package/dist/lib/generated/Entities/MJOutputDeliveryType/mjoutputdeliverytype.form.component.js.map +1 -1
  479. package/dist/lib/generated/Entities/MJOutputFormatType/mjoutputformattype.form.component.js +24 -14
  480. package/dist/lib/generated/Entities/MJOutputFormatType/mjoutputformattype.form.component.js.map +1 -1
  481. package/dist/lib/generated/Entities/MJOutputTriggerType/mjoutputtriggertype.form.component.js +24 -14
  482. package/dist/lib/generated/Entities/MJOutputTriggerType/mjoutputtriggertype.form.component.js.map +1 -1
  483. package/dist/lib/generated/Entities/MJPermissionDomain/mjpermissiondomain.form.component.js +21 -12
  484. package/dist/lib/generated/Entities/MJPermissionDomain/mjpermissiondomain.form.component.js.map +1 -1
  485. package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +39 -29
  486. package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
  487. package/dist/lib/generated/Entities/MJPublicLink/mjpubliclink.form.component.js +21 -12
  488. package/dist/lib/generated/Entities/MJPublicLink/mjpubliclink.form.component.js.map +1 -1
  489. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +66 -56
  490. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
  491. package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.js +32 -22
  492. package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.js.map +1 -1
  493. package/dist/lib/generated/Entities/MJQueryDependency/mjquerydependency.form.component.js +19 -10
  494. package/dist/lib/generated/Entities/MJQueryDependency/mjquerydependency.form.component.js.map +1 -1
  495. package/dist/lib/generated/Entities/MJQueryEntity/mjqueryentity.form.component.js +19 -10
  496. package/dist/lib/generated/Entities/MJQueryEntity/mjqueryentity.form.component.js.map +1 -1
  497. package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js +19 -10
  498. package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js.map +1 -1
  499. package/dist/lib/generated/Entities/MJQueryParameter/mjqueryparameter.form.component.js +19 -10
  500. package/dist/lib/generated/Entities/MJQueryParameter/mjqueryparameter.form.component.js.map +1 -1
  501. package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.js +18 -9
  502. package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.js.map +1 -1
  503. package/dist/lib/generated/Entities/MJQuerySQL/mjquerysql.form.component.js +19 -10
  504. package/dist/lib/generated/Entities/MJQuerySQL/mjquerysql.form.component.js.map +1 -1
  505. package/dist/lib/generated/Entities/MJQueue/mjqueue.form.component.js +28 -18
  506. package/dist/lib/generated/Entities/MJQueue/mjqueue.form.component.js.map +1 -1
  507. package/dist/lib/generated/Entities/MJQueueTask/mjqueuetask.form.component.js +21 -12
  508. package/dist/lib/generated/Entities/MJQueueTask/mjqueuetask.form.component.js.map +1 -1
  509. package/dist/lib/generated/Entities/MJQueueType/mjqueuetype.form.component.js +26 -16
  510. package/dist/lib/generated/Entities/MJQueueType/mjqueuetype.form.component.js.map +1 -1
  511. package/dist/lib/generated/Entities/MJRecommendation/mjrecommendation.form.component.js +24 -14
  512. package/dist/lib/generated/Entities/MJRecommendation/mjrecommendation.form.component.js.map +1 -1
  513. package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.js +17 -9
  514. package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.js.map +1 -1
  515. package/dist/lib/generated/Entities/MJRecommendationProvider/mjrecommendationprovider.form.component.js +24 -14
  516. package/dist/lib/generated/Entities/MJRecommendationProvider/mjrecommendationprovider.form.component.js.map +1 -1
  517. package/dist/lib/generated/Entities/MJRecommendationRun/mjrecommendationrun.form.component.js +28 -18
  518. package/dist/lib/generated/Entities/MJRecommendationRun/mjrecommendationrun.form.component.js.map +1 -1
  519. package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js +36 -26
  520. package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js.map +1 -1
  521. package/dist/lib/generated/Entities/MJRecordChangeReplayRun/mjrecordchangereplayrun.form.component.js +26 -16
  522. package/dist/lib/generated/Entities/MJRecordChangeReplayRun/mjrecordchangereplayrun.form.component.js.map +1 -1
  523. package/dist/lib/generated/Entities/MJRecordGeoCode/mjrecordgeocode.form.component.js +21 -12
  524. package/dist/lib/generated/Entities/MJRecordGeoCode/mjrecordgeocode.form.component.js.map +1 -1
  525. package/dist/lib/generated/Entities/MJRecordLink/mjrecordlink.form.component.js +21 -12
  526. package/dist/lib/generated/Entities/MJRecordLink/mjrecordlink.form.component.js.map +1 -1
  527. package/dist/lib/generated/Entities/MJRecordMergeDeletionLog/mjrecordmergedeletionlog.form.component.js +17 -8
  528. package/dist/lib/generated/Entities/MJRecordMergeDeletionLog/mjrecordmergedeletionlog.form.component.js.map +1 -1
  529. package/dist/lib/generated/Entities/MJRecordMergeLog/mjrecordmergelog.form.component.js +34 -24
  530. package/dist/lib/generated/Entities/MJRecordMergeLog/mjrecordmergelog.form.component.js.map +1 -1
  531. package/dist/lib/generated/Entities/MJReport/mjreport.form.component.js +39 -29
  532. package/dist/lib/generated/Entities/MJReport/mjreport.form.component.js.map +1 -1
  533. package/dist/lib/generated/Entities/MJReportCategory/mjreportcategory.form.component.js +32 -22
  534. package/dist/lib/generated/Entities/MJReportCategory/mjreportcategory.form.component.js.map +1 -1
  535. package/dist/lib/generated/Entities/MJReportSnapshot/mjreportsnapshot.form.component.js +19 -10
  536. package/dist/lib/generated/Entities/MJReportSnapshot/mjreportsnapshot.form.component.js.map +1 -1
  537. package/dist/lib/generated/Entities/MJReportUserState/mjreportuserstate.form.component.js +19 -10
  538. package/dist/lib/generated/Entities/MJReportUserState/mjreportuserstate.form.component.js.map +1 -1
  539. package/dist/lib/generated/Entities/MJReportVersion/mjreportversion.form.component.js +19 -10
  540. package/dist/lib/generated/Entities/MJReportVersion/mjreportversion.form.component.js.map +1 -1
  541. package/dist/lib/generated/Entities/MJResourceLink/mjresourcelink.form.component.js +15 -6
  542. package/dist/lib/generated/Entities/MJResourceLink/mjresourcelink.form.component.js.map +1 -1
  543. package/dist/lib/generated/Entities/MJResourcePermission/mjresourcepermission.form.component.js +23 -14
  544. package/dist/lib/generated/Entities/MJResourcePermission/mjresourcepermission.form.component.js.map +1 -1
  545. package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js +45 -35
  546. package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js.map +1 -1
  547. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.d.ts.map +1 -1
  548. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js +94 -66
  549. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js.map +1 -1
  550. package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js +40 -31
  551. package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js.map +1 -1
  552. package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.js +32 -22
  553. package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.js.map +1 -1
  554. package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js +34 -24
  555. package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js.map +1 -1
  556. package/dist/lib/generated/Entities/MJScheduledActionParam/mjscheduledactionparam.form.component.js +19 -10
  557. package/dist/lib/generated/Entities/MJScheduledActionParam/mjscheduledactionparam.form.component.js.map +1 -1
  558. package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js +40 -28
  559. package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js.map +1 -1
  560. package/dist/lib/generated/Entities/MJScheduledJobRun/mjscheduledjobrun.form.component.js +34 -24
  561. package/dist/lib/generated/Entities/MJScheduledJobRun/mjscheduledjobrun.form.component.js.map +1 -1
  562. package/dist/lib/generated/Entities/MJScheduledJobType/mjscheduledjobtype.form.component.js +26 -16
  563. package/dist/lib/generated/Entities/MJScheduledJobType/mjscheduledjobtype.form.component.js.map +1 -1
  564. package/dist/lib/generated/Entities/MJSchemaInfo/mjschemainfo.form.component.js +19 -10
  565. package/dist/lib/generated/Entities/MJSchemaInfo/mjschemainfo.form.component.js.map +1 -1
  566. package/dist/lib/generated/Entities/MJSearchExecutionLog/mjsearchexecutionlog.form.component.js +23 -14
  567. package/dist/lib/generated/Entities/MJSearchExecutionLog/mjsearchexecutionlog.form.component.js.map +1 -1
  568. package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.js +28 -18
  569. package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.js.map +1 -1
  570. package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.js +68 -58
  571. package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.js.map +1 -1
  572. package/dist/lib/generated/Entities/MJSearchScopeEntity/mjsearchscopeentity.form.component.js +21 -12
  573. package/dist/lib/generated/Entities/MJSearchScopeEntity/mjsearchscopeentity.form.component.js.map +1 -1
  574. package/dist/lib/generated/Entities/MJSearchScopeExternalIndex/mjsearchscopeexternalindex.form.component.js +21 -12
  575. package/dist/lib/generated/Entities/MJSearchScopeExternalIndex/mjsearchscopeexternalindex.form.component.js.map +1 -1
  576. package/dist/lib/generated/Entities/MJSearchScopePermission/mjsearchscopepermission.form.component.js +19 -10
  577. package/dist/lib/generated/Entities/MJSearchScopePermission/mjsearchscopepermission.form.component.js.map +1 -1
  578. package/dist/lib/generated/Entities/MJSearchScopeProvider/mjsearchscopeprovider.form.component.js +21 -12
  579. package/dist/lib/generated/Entities/MJSearchScopeProvider/mjsearchscopeprovider.form.component.js.map +1 -1
  580. package/dist/lib/generated/Entities/MJSearchScopeStorageAccount/mjsearchscopestorageaccount.form.component.js +19 -10
  581. package/dist/lib/generated/Entities/MJSearchScopeStorageAccount/mjsearchscopestorageaccount.form.component.js.map +1 -1
  582. package/dist/lib/generated/Entities/MJSearchScopeTestQuery/mjsearchscopetestquery.form.component.js +21 -12
  583. package/dist/lib/generated/Entities/MJSearchScopeTestQuery/mjsearchscopetestquery.form.component.js.map +1 -1
  584. package/dist/lib/generated/Entities/MJSkill/mjskill.form.component.js +32 -22
  585. package/dist/lib/generated/Entities/MJSkill/mjskill.form.component.js.map +1 -1
  586. package/dist/lib/generated/Entities/MJStateProvince/mjstateprovince.form.component.js +26 -16
  587. package/dist/lib/generated/Entities/MJStateProvince/mjstateprovince.form.component.js.map +1 -1
  588. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +93 -83
  589. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
  590. package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js +19 -10
  591. package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js.map +1 -1
  592. package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js +19 -10
  593. package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js.map +1 -1
  594. package/dist/lib/generated/Entities/MJTagScope/mjtagscope.form.component.js +19 -10
  595. package/dist/lib/generated/Entities/MJTagScope/mjtagscope.form.component.js.map +1 -1
  596. package/dist/lib/generated/Entities/MJTagSuggestion/mjtagsuggestion.form.component.js +23 -14
  597. package/dist/lib/generated/Entities/MJTagSuggestion/mjtagsuggestion.form.component.js.map +1 -1
  598. package/dist/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.js +21 -10
  599. package/dist/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.js.map +1 -1
  600. package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js +19 -10
  601. package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js.map +1 -1
  602. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js +39 -29
  603. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js.map +1 -1
  604. package/dist/lib/generated/Entities/MJTaskDependency/mjtaskdependency.form.component.js +19 -10
  605. package/dist/lib/generated/Entities/MJTaskDependency/mjtaskdependency.form.component.js.map +1 -1
  606. package/dist/lib/generated/Entities/MJTaskType/mjtasktype.form.component.js +24 -14
  607. package/dist/lib/generated/Entities/MJTaskType/mjtasktype.form.component.js.map +1 -1
  608. package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js +64 -54
  609. package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js.map +1 -1
  610. package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.js +34 -24
  611. package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.js.map +1 -1
  612. package/dist/lib/generated/Entities/MJTemplateContent/mjtemplatecontent.form.component.js +26 -16
  613. package/dist/lib/generated/Entities/MJTemplateContent/mjtemplatecontent.form.component.js.map +1 -1
  614. package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js +24 -15
  615. package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js.map +1 -1
  616. package/dist/lib/generated/Entities/MJTemplateParam/mjtemplateparam.form.component.js +21 -12
  617. package/dist/lib/generated/Entities/MJTemplateParam/mjtemplateparam.form.component.js.map +1 -1
  618. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +34 -24
  619. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
  620. package/dist/lib/generated/Entities/MJTestRubric/mjtestrubric.form.component.js +15 -6
  621. package/dist/lib/generated/Entities/MJTestRubric/mjtestrubric.form.component.js.map +1 -1
  622. package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js +56 -46
  623. package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js.map +1 -1
  624. package/dist/lib/generated/Entities/MJTestRunFeedback/mjtestrunfeedback.form.component.js +19 -10
  625. package/dist/lib/generated/Entities/MJTestRunFeedback/mjtestrunfeedback.form.component.js.map +1 -1
  626. package/dist/lib/generated/Entities/MJTestRunOutput/mjtestrunoutput.form.component.js +21 -12
  627. package/dist/lib/generated/Entities/MJTestRunOutput/mjtestrunoutput.form.component.js.map +1 -1
  628. package/dist/lib/generated/Entities/MJTestRunOutputType/mjtestrunoutputtype.form.component.js +24 -14
  629. package/dist/lib/generated/Entities/MJTestRunOutputType/mjtestrunoutputtype.form.component.js.map +1 -1
  630. package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js +39 -29
  631. package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js.map +1 -1
  632. package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js +34 -24
  633. package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js.map +1 -1
  634. package/dist/lib/generated/Entities/MJTestSuiteTest/mjtestsuitetest.form.component.js +15 -6
  635. package/dist/lib/generated/Entities/MJTestSuiteTest/mjtestsuitetest.form.component.js.map +1 -1
  636. package/dist/lib/generated/Entities/MJTestType/mjtesttype.form.component.js +30 -20
  637. package/dist/lib/generated/Entities/MJTestType/mjtesttype.form.component.js.map +1 -1
  638. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  639. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +530 -502
  640. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  641. package/dist/lib/generated/Entities/MJUserApplication/mjuserapplication.form.component.js +26 -16
  642. package/dist/lib/generated/Entities/MJUserApplication/mjuserapplication.form.component.js.map +1 -1
  643. package/dist/lib/generated/Entities/MJUserApplicationEntity/mjuserapplicationentity.form.component.js +19 -10
  644. package/dist/lib/generated/Entities/MJUserApplicationEntity/mjuserapplicationentity.form.component.js.map +1 -1
  645. package/dist/lib/generated/Entities/MJUserFavorite/mjuserfavorite.form.component.js +19 -10
  646. package/dist/lib/generated/Entities/MJUserFavorite/mjuserfavorite.form.component.js.map +1 -1
  647. package/dist/lib/generated/Entities/MJUserNotification/mjusernotification.form.component.js +19 -10
  648. package/dist/lib/generated/Entities/MJUserNotification/mjusernotification.form.component.js.map +1 -1
  649. package/dist/lib/generated/Entities/MJUserNotificationPreference/mjusernotificationpreference.form.component.js +19 -10
  650. package/dist/lib/generated/Entities/MJUserNotificationPreference/mjusernotificationpreference.form.component.js.map +1 -1
  651. package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js +34 -24
  652. package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js.map +1 -1
  653. package/dist/lib/generated/Entities/MJUserRecordLog/mjuserrecordlog.form.component.js +21 -12
  654. package/dist/lib/generated/Entities/MJUserRecordLog/mjuserrecordlog.form.component.js.map +1 -1
  655. package/dist/lib/generated/Entities/MJUserRole/mjuserrole.form.component.js +17 -8
  656. package/dist/lib/generated/Entities/MJUserRole/mjuserrole.form.component.js.map +1 -1
  657. package/dist/lib/generated/Entities/MJUserSetting/mjusersetting.form.component.js +17 -8
  658. package/dist/lib/generated/Entities/MJUserSetting/mjusersetting.form.component.js.map +1 -1
  659. package/dist/lib/generated/Entities/MJUserView/mjuserview.form.component.js +48 -38
  660. package/dist/lib/generated/Entities/MJUserView/mjuserview.form.component.js.map +1 -1
  661. package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.js +34 -24
  662. package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.js.map +1 -1
  663. package/dist/lib/generated/Entities/MJUserViewRun/mjuserviewrun.form.component.js +26 -16
  664. package/dist/lib/generated/Entities/MJUserViewRun/mjuserviewrun.form.component.js.map +1 -1
  665. package/dist/lib/generated/Entities/MJUserViewRunDetail/mjuserviewrundetail.form.component.js +17 -8
  666. package/dist/lib/generated/Entities/MJUserViewRunDetail/mjuserviewrundetail.form.component.js.map +1 -1
  667. package/dist/lib/generated/Entities/MJVectorDatabase/mjvectordatabase.form.component.js +32 -22
  668. package/dist/lib/generated/Entities/MJVectorDatabase/mjvectordatabase.form.component.js.map +1 -1
  669. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +49 -39
  670. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
  671. package/dist/lib/generated/Entities/MJVersionInstallation/mjversioninstallation.form.component.js +21 -12
  672. package/dist/lib/generated/Entities/MJVersionInstallation/mjversioninstallation.form.component.js.map +1 -1
  673. package/dist/lib/generated/Entities/MJVersionLabel/mjversionlabel.form.component.js +44 -34
  674. package/dist/lib/generated/Entities/MJVersionLabel/mjversionlabel.form.component.js.map +1 -1
  675. package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.js +18 -9
  676. package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.js.map +1 -1
  677. package/dist/lib/generated/Entities/MJVersionLabelRestore/mjversionlabelrestore.form.component.js +19 -10
  678. package/dist/lib/generated/Entities/MJVersionLabelRestore/mjversionlabelrestore.form.component.js.map +1 -1
  679. package/dist/lib/generated/Entities/MJWorkflow/mjworkflow.form.component.js +32 -22
  680. package/dist/lib/generated/Entities/MJWorkflow/mjworkflow.form.component.js.map +1 -1
  681. package/dist/lib/generated/Entities/MJWorkflowEngine/mjworkflowengine.form.component.js +24 -14
  682. package/dist/lib/generated/Entities/MJWorkflowEngine/mjworkflowengine.form.component.js.map +1 -1
  683. package/dist/lib/generated/Entities/MJWorkflowRun/mjworkflowrun.form.component.js +19 -10
  684. package/dist/lib/generated/Entities/MJWorkflowRun/mjworkflowrun.form.component.js.map +1 -1
  685. package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js +26 -17
  686. package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js.map +1 -1
  687. package/dist/lib/generated/Entities/MJWorkspaceItem/mjworkspaceitem.form.component.js +21 -12
  688. package/dist/lib/generated/Entities/MJWorkspaceItem/mjworkspaceitem.form.component.js.map +1 -1
  689. package/dist/lib/generated/generated-forms.module.d.ts +161 -160
  690. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  691. package/dist/lib/generated/generated-forms.module.js +43 -40
  692. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  693. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts +62 -0
  694. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts.map +1 -0
  695. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +386 -0
  696. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -0
  697. package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts +41 -0
  698. package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts.map +1 -0
  699. package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +227 -0
  700. package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -0
  701. package/package.json +36 -36
  702. package/dist/lib/__tests__/content-source-form.test.d.ts +0 -2
  703. package/dist/lib/__tests__/content-source-form.test.d.ts.map +0 -1
  704. package/dist/lib/__tests__/content-source-form.test.js +0 -183
  705. package/dist/lib/__tests__/content-source-form.test.js.map +0 -1
  706. package/dist/lib/custom/ContentSources/content-source-form.component.d.ts +0 -76
  707. package/dist/lib/custom/ContentSources/content-source-form.component.d.ts.map +0 -1
  708. package/dist/lib/custom/ContentSources/content-source-form.component.js +0 -510
  709. package/dist/lib/custom/ContentSources/content-source-form.component.js.map +0 -1
  710. package/dist/lib/custom/Queries/query-category-dialog.component.d.ts +0 -34
  711. package/dist/lib/custom/Queries/query-category-dialog.component.d.ts.map +0 -1
  712. package/dist/lib/custom/Queries/query-category-dialog.component.js +0 -216
  713. package/dist/lib/custom/Queries/query-category-dialog.component.js.map +0 -1
@@ -6,9 +6,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Component, ViewChild, inject } from '@angular/core';
8
8
  import { Subject } from 'rxjs';
9
- import { CompositeKey } from '@memberjunction/core';
9
+ import { BaseEntity, CompositeKey } from '@memberjunction/core';
10
10
  import { BaseFormComponent } from '@memberjunction/ng-base-forms';
11
- import { RegisterClass } from '@memberjunction/global';
11
+ import { MJGlobal, MJEventType, RegisterClass, UUIDsEqual } from '@memberjunction/global';
12
12
  import { SharedService, NavigationService } from '@memberjunction/ng-shared';
13
13
  import { AIAgentRunTimelineComponent } from './ai-agent-run-timeline.component';
14
14
  import { MJAIAgentRunFormComponent } from '../../generated/Entities/MJAIAgentRun/mjaiagentrun.form.component';
@@ -214,7 +214,7 @@ function MJAIAgentRunFormComponentExtended_Conditional_53_Conditional_4_Template
214
214
  function MJAIAgentRunFormComponentExtended_Conditional_53_Template(rf, ctx) { if (rf & 1) {
215
215
  const _r6 = i0.ɵɵgetCurrentView();
216
216
  i0.ɵɵelementStart(0, "div", 34)(1, "as-split", 49)(2, "as-split-area", 50)(3, "mj-ai-agent-run-timeline", 51);
217
- i0.ɵɵlistener("itemSelected", function MJAIAgentRunFormComponentExtended_Conditional_53_Template_mj_ai_agent_run_timeline_itemSelected_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.selectTimelineItem($event)); })("navigateToEntity", function MJAIAgentRunFormComponentExtended_Conditional_53_Template_mj_ai_agent_run_timeline_navigateToEntity_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToEntityRecord($event)); })("agentRunCompleted", function MJAIAgentRunFormComponentExtended_Conditional_53_Template_mj_ai_agent_run_timeline_agentRunCompleted_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onAgentRunCompleted($event)); });
217
+ i0.ɵɵlistener("itemSelected", function MJAIAgentRunFormComponentExtended_Conditional_53_Template_mj_ai_agent_run_timeline_itemSelected_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.selectTimelineItem($event)); })("navigateToEntity", function MJAIAgentRunFormComponentExtended_Conditional_53_Template_mj_ai_agent_run_timeline_navigateToEntity_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToEntityRecord($event)); });
218
218
  i0.ɵɵelementEnd()();
219
219
  i0.ɵɵconditionalCreate(4, MJAIAgentRunFormComponentExtended_Conditional_53_Conditional_4_Template, 2, 2, "as-split-area", 50);
220
220
  i0.ɵɵelementEnd()();
@@ -223,7 +223,7 @@ function MJAIAgentRunFormComponentExtended_Conditional_53_Template(rf, ctx) { if
223
223
  i0.ɵɵadvance(2);
224
224
  i0.ɵɵproperty("size", ctx_r0.selectedTimelineItem ? 55 : 100);
225
225
  i0.ɵɵadvance();
226
- i0.ɵɵproperty("aiAgentRunId", ctx_r0.record.ID)("dataHelper", ctx_r0.dataHelper)("autoRefresh", ctx_r0.record.Status === "Running")("refreshInterval", 30000);
226
+ i0.ɵɵproperty("aiAgentRunId", ctx_r0.record.ID)("dataHelper", ctx_r0.dataHelper);
227
227
  i0.ɵɵadvance();
228
228
  i0.ɵɵconditional(ctx_r0.selectedTimelineItem ? 4 : -1);
229
229
  } }
@@ -741,6 +741,12 @@ let MJAIAgentRunFormComponentExtended = class MJAIAgentRunFormComponentExtended
741
741
  constructor() {
742
742
  super(...arguments);
743
743
  this.destroy$ = new Subject();
744
+ // MJGlobal BaseEntity event subscription — fires on both local Save()
745
+ // and server-side remote-invalidate events. While the run is Running,
746
+ // this is how we hear about new steps and status changes without
747
+ // polling the DB on a timer. Only attached when Status === 'Running'.
748
+ this.entityEventSubscription = null;
749
+ this.refreshInFlight = false;
744
750
  // UI state
745
751
  this.activeTab = 'timeline';
746
752
  this.selectedTimelineItem = null;
@@ -774,16 +780,155 @@ let MJAIAgentRunFormComponentExtended = class MJAIAgentRunFormComponentExtended
774
780
  await this.loadCostMetrics();
775
781
  // Parse all JSON fields on form load for instant access later
776
782
  this.parseAllFields();
783
+ // If the run is in progress, subscribe to BaseEntity events so we
784
+ // pick up new steps / status changes the moment AgentRunner saves
785
+ // them — no 30s polling timer. Same pattern used by the Form
786
+ // Builder cockpit. See `handleEntityEvent` below for filtering.
787
+ if (this.record.Status === 'Running') {
788
+ this.subscribeToRunEvents();
789
+ }
777
790
  }
778
791
  }
779
792
  ngOnDestroy() {
780
793
  this.destroy$.next();
781
794
  this.destroy$.complete();
795
+ this.entityEventSubscription?.unsubscribe();
796
+ this.entityEventSubscription = null;
782
797
  this.clearParsedCache();
783
798
  this.dataHelper.clearData();
784
799
  this.costMetrics = null;
785
800
  this.agent = null;
786
801
  }
802
+ subscribeToRunEvents() {
803
+ if (this.entityEventSubscription)
804
+ return;
805
+ this.entityEventSubscription = MJGlobal.Instance.GetEventListener(false)
806
+ .subscribe(mjEvent => this.handleEntityEvent(mjEvent));
807
+ }
808
+ unsubscribeFromRunEvents() {
809
+ this.entityEventSubscription?.unsubscribe();
810
+ this.entityEventSubscription = null;
811
+ }
812
+ /**
813
+ * Filter the global BaseEntity event firehose down to saves on the
814
+ * current Agent Run row, its Steps, or its Prompt Runs — and only when
815
+ * AgentRunID matches `this.record.ID`. Local `save` events come from
816
+ * the in-process AgentRunner (dev/same-tab case, which is the primary
817
+ * use case here); `remote-invalidate` covers writes from a separate
818
+ * server process if GraphQL cache-invalidation is wired up.
819
+ */
820
+ handleEntityEvent(mjEvent) {
821
+ if (mjEvent.event !== MJEventType.ComponentEvent)
822
+ return;
823
+ if (mjEvent.eventCode !== BaseEntity.BaseEventCode)
824
+ return;
825
+ const evt = mjEvent.args;
826
+ if (!evt)
827
+ return;
828
+ if (evt.type !== 'save' && evt.type !== 'remote-invalidate')
829
+ return;
830
+ const entityName = evt.entityName ?? evt.baseEntity?.EntityInfo?.Name;
831
+ if (!entityName)
832
+ return;
833
+ const runId = this.record?.ID;
834
+ if (!runId)
835
+ return;
836
+ if (entityName === 'MJ: AI Agent Runs') {
837
+ // Status change on THIS run row.
838
+ const savedID = this.resolveEventID(evt);
839
+ if (savedID && UUIDsEqual(savedID, runId)) {
840
+ this.refreshData();
841
+ // If the run completed, drop the subscription — no further
842
+ // writes are expected and we don't want to hold the listener.
843
+ const newStatus = this.resolveEventField(evt, 'Status');
844
+ if (newStatus && newStatus !== 'Running') {
845
+ this.unsubscribeFromRunEvents();
846
+ }
847
+ }
848
+ return;
849
+ }
850
+ if (entityName === 'MJ: AI Agent Run Steps' ||
851
+ entityName === 'MJ: AI Prompt Runs' ||
852
+ entityName === 'MJ: Action Execution Logs') {
853
+ // A child row was written for SOME run — only react if it belongs
854
+ // to ours. AgentRunID is the FK on steps; for prompt runs and
855
+ // action logs we just refresh if any field matches (cheap and the
856
+ // data helper handles dedupe).
857
+ const childAgentRunId = this.resolveEventField(evt, 'AgentRunID');
858
+ if (childAgentRunId && UUIDsEqual(childAgentRunId, runId)) {
859
+ this.refreshRunDataDebounced();
860
+ }
861
+ }
862
+ }
863
+ resolveEventID(evt) {
864
+ if (evt.baseEntity) {
865
+ return evt.baseEntity.PrimaryKey?.ToConcatenatedString() ?? null;
866
+ }
867
+ const payload = evt.payload;
868
+ if (!payload)
869
+ return null;
870
+ try {
871
+ if (payload.primaryKeyValues) {
872
+ const pk = JSON.parse(payload.primaryKeyValues);
873
+ if (Array.isArray(pk)) {
874
+ const idPair = pk.find(p => p.FieldName === 'ID');
875
+ if (idPair?.Value != null)
876
+ return String(idPair.Value);
877
+ }
878
+ else if (pk && typeof pk === 'object' && 'ID' in pk) {
879
+ const v = pk.ID;
880
+ if (v != null)
881
+ return String(v);
882
+ }
883
+ }
884
+ }
885
+ catch {
886
+ // bad JSON — fall through to recordData
887
+ }
888
+ try {
889
+ if (payload.recordData) {
890
+ const row = JSON.parse(payload.recordData);
891
+ if (typeof row?.ID === 'string')
892
+ return row.ID;
893
+ }
894
+ }
895
+ catch {
896
+ // ignore
897
+ }
898
+ return null;
899
+ }
900
+ resolveEventField(evt, fieldName) {
901
+ if (evt.baseEntity) {
902
+ const val = evt.baseEntity.Get?.(fieldName);
903
+ return val ?? null;
904
+ }
905
+ const payload = evt.payload;
906
+ if (!payload?.recordData)
907
+ return null;
908
+ try {
909
+ const row = JSON.parse(payload.recordData);
910
+ const v = row?.[fieldName];
911
+ return (v ?? null);
912
+ }
913
+ catch {
914
+ return null;
915
+ }
916
+ }
917
+ /**
918
+ * Collapse rapid bursts of step/prompt/action events into a single
919
+ * reload — AgentRunner often saves several rows in quick succession.
920
+ */
921
+ refreshRunDataDebounced() {
922
+ if (this.refreshInFlight)
923
+ return;
924
+ this.refreshInFlight = true;
925
+ queueMicrotask(() => {
926
+ this.refreshInFlight = false;
927
+ if (!this.record?.ID)
928
+ return;
929
+ this.dataHelper.loadAgentRunData(this.record.ID, true);
930
+ });
931
+ }
787
932
  async loadAgent() {
788
933
  if (!this.record?.AgentID)
789
934
  return;
@@ -924,13 +1069,6 @@ let MJAIAgentRunFormComponentExtended = class MJAIAgentRunFormComponentExtended
924
1069
  console.error('Failed to copy to clipboard:', err);
925
1070
  }
926
1071
  }
927
- onAgentRunCompleted(status) {
928
- // Update the record status
929
- this.record.Status = status;
930
- this.cdr.markForCheck();
931
- // Reload the full record to get updated data
932
- this.refreshData();
933
- }
934
1072
  /**
935
1073
  * Get the Result field with recursive JSON parsing applied
936
1074
  */
@@ -1284,7 +1422,7 @@ let MJAIAgentRunFormComponentExtended = class MJAIAgentRunFormComponentExtended
1284
1422
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timelineComponent = _t.first);
1285
1423
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.analyticsComponent = _t.first);
1286
1424
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.visualizationComponent = _t.first);
1287
- } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 57, vars: 33, consts: [["visualizationComponent", ""], ["analyticsComponent", ""], [1, "record-form-container", "ai-agent-run-form"], [1, "record-form"], [1, "header"], [1, "header-content"], [1, "header-left"], [1, "icon-wrapper"], [1, "agent-logo", 3, "src", "alt"], [1, "fas", 3, "ngClass"], [1, "fas", "fa-robot"], [1, "header-info"], [1, "meta-info"], [1, "agent-name"], [1, "run-id"], [1, "parent-run"], ["title", "Open conversation in Chat app", 1, "conversation-pill"], [1, "header-right"], [1, "status-badge"], [1, "header-actions"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sync-alt"], [1, "header-stats"], [1, "stat"], [1, "label"], [1, "value"], [1, "configuration-bar"], [1, "tabs"], [1, "tab", 3, "click"], [1, "fas", "fa-stream"], [1, "fas", "fa-diagram-project"], [1, "fas", "fa-chart-line"], [1, "fas", "fa-info-circle"], [1, "content-area"], [1, "tab-content", 2, "height", "100%"], [1, "tab-content"], ["href", "javascript:void(0)", 1, "entity-link", 3, "click"], [1, "fas", "fa-level-up-alt"], [1, "parent-link", 3, "click"], ["title", "Open conversation in Chat app", 1, "conversation-pill", 3, "click"], [1, "fas", "fa-comments"], [1, "fas", "fa-external-link-alt", "pill-action"], [1, "value", "loading"], [1, "fas", "fa-spinner", "fa-spin"], [1, "config-item"], [1, "fas", "fa-cog"], [1, "config-content"], [1, "config-label"], [1, "config-value"], ["direction", "horizontal", 2, "height", "100%"], [3, "size"], [3, "itemSelected", "navigateToEntity", "agentRunCompleted", "aiAgentRunId", "dataHelper", "autoRefresh", "refreshInterval"], [3, "closePanel", "navigateToActionLog", "copyToClipboard", "selectedTimelineItem"], [3, "aiAgentRunId", "dataHelper"], [3, "agentRunId"], [3, "Expanded"], ["mjAccordionTitle", ""], [1, "details-grid"], [1, "detail-item"], ["href", "javascript:void(0)", 1, "entity-link"], [1, "success"], [1, "error-message"], [1, "detail-item", "full-width"], [1, "fas", "fa-cogs"], [1, "fas", "fa-tasks"], [1, "message"], [1, "fas", "fa-dollar-sign"], [1, "result-viewer"], [2, "height", "300px", "width", "100%", 3, "ngModel", "language", "readonly"], [2, "padding", "20px", "text-align", "center", "color", "var(--mj-text-muted)"], [1, "fas", "fa-code"], [1, "fas", "fa-upload"], [1, "fas", "fa-database"], [1, "fas", "fa-download"], [2, "padding", "20px", "background", "var(--mj-bg-surface-card)"], [3, "oldValue", "newValue", "title", "showSummary", "showUnchanged", "expandAll", "maxDepth", "maxStringLength", "treatNullAsUndefined"], [1, "fas", "fa-code-compare"]], template: function MJAIAgentRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
1425
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 57, vars: 33, consts: [["visualizationComponent", ""], ["analyticsComponent", ""], [1, "record-form-container", "ai-agent-run-form"], [1, "record-form"], [1, "header"], [1, "header-content"], [1, "header-left"], [1, "icon-wrapper"], [1, "agent-logo", 3, "src", "alt"], [1, "fas", 3, "ngClass"], [1, "fas", "fa-robot"], [1, "header-info"], [1, "meta-info"], [1, "agent-name"], [1, "run-id"], [1, "parent-run"], ["title", "Open conversation in Chat app", 1, "conversation-pill"], [1, "header-right"], [1, "status-badge"], [1, "header-actions"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sync-alt"], [1, "header-stats"], [1, "stat"], [1, "label"], [1, "value"], [1, "configuration-bar"], [1, "tabs"], [1, "tab", 3, "click"], [1, "fas", "fa-stream"], [1, "fas", "fa-diagram-project"], [1, "fas", "fa-chart-line"], [1, "fas", "fa-info-circle"], [1, "content-area"], [1, "tab-content", 2, "height", "100%"], [1, "tab-content"], ["href", "javascript:void(0)", 1, "entity-link", 3, "click"], [1, "fas", "fa-level-up-alt"], [1, "parent-link", 3, "click"], ["title", "Open conversation in Chat app", 1, "conversation-pill", 3, "click"], [1, "fas", "fa-comments"], [1, "fas", "fa-external-link-alt", "pill-action"], [1, "value", "loading"], [1, "fas", "fa-spinner", "fa-spin"], [1, "config-item"], [1, "fas", "fa-cog"], [1, "config-content"], [1, "config-label"], [1, "config-value"], ["direction", "horizontal", 2, "height", "100%"], [3, "size"], [3, "itemSelected", "navigateToEntity", "aiAgentRunId", "dataHelper"], [3, "closePanel", "navigateToActionLog", "copyToClipboard", "selectedTimelineItem"], [3, "aiAgentRunId", "dataHelper"], [3, "agentRunId"], [3, "Expanded"], ["mjAccordionTitle", ""], [1, "details-grid"], [1, "detail-item"], ["href", "javascript:void(0)", 1, "entity-link"], [1, "success"], [1, "error-message"], [1, "detail-item", "full-width"], [1, "fas", "fa-cogs"], [1, "fas", "fa-tasks"], [1, "message"], [1, "fas", "fa-dollar-sign"], [1, "result-viewer"], [2, "height", "300px", "width", "100%", 3, "ngModel", "language", "readonly"], [2, "padding", "20px", "text-align", "center", "color", "var(--mj-text-muted)"], [1, "fas", "fa-code"], [1, "fas", "fa-upload"], [1, "fas", "fa-database"], [1, "fas", "fa-download"], [2, "padding", "20px", "background", "var(--mj-bg-surface-card)"], [3, "oldValue", "newValue", "title", "showSummary", "showUnchanged", "expandAll", "maxDepth", "maxStringLength", "treatNullAsUndefined"], [1, "fas", "fa-code-compare"]], template: function MJAIAgentRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
1288
1426
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5)(4, "div", 6)(5, "div", 7);
1289
1427
  i0.ɵɵconditionalCreate(6, MJAIAgentRunFormComponentExtended_Conditional_6_Template, 1, 2, "img", 8);
1290
1428
  i0.ɵɵconditionalCreate(7, MJAIAgentRunFormComponentExtended_Conditional_7_Template, 1, 1, "i", 9);
@@ -1346,7 +1484,7 @@ let MJAIAgentRunFormComponentExtended = class MJAIAgentRunFormComponentExtended
1346
1484
  i0.ɵɵtext(51, " Details ");
1347
1485
  i0.ɵɵelementEnd()();
1348
1486
  i0.ɵɵelementStart(52, "div", 33);
1349
- i0.ɵɵconditionalCreate(53, MJAIAgentRunFormComponentExtended_Conditional_53_Template, 5, 6, "div", 34);
1487
+ i0.ɵɵconditionalCreate(53, MJAIAgentRunFormComponentExtended_Conditional_53_Template, 5, 4, "div", 34);
1350
1488
  i0.ɵɵconditionalCreate(54, MJAIAgentRunFormComponentExtended_Conditional_54_Template, 2, 1, "div", 34);
1351
1489
  i0.ɵɵconditionalCreate(55, MJAIAgentRunFormComponentExtended_Conditional_55_Template, 2, 1, "div", 34);
1352
1490
  i0.ɵɵconditionalCreate(56, MJAIAgentRunFormComponentExtended_Conditional_56_Template, 108, 48, "div", 35);
@@ -1412,7 +1550,7 @@ MJAIAgentRunFormComponentExtended = __decorate([
1412
1550
  export { MJAIAgentRunFormComponentExtended };
1413
1551
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJAIAgentRunFormComponentExtended, [{
1414
1552
  type: Component,
1415
- args: [{ standalone: false, selector: 'mj-ai-agent-run-form', template: "<div class=\"record-form-container ai-agent-run-form\">\n <div class=\"record-form\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n @if (agent && agent.LogoURL) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name || 'Agent'\" class=\"agent-logo\" />\n }\n @if (agent && !agent.LogoURL && agent.IconClass) {\n <i class=\"fas\" [ngClass]=\"agent.IconClass\"></i>\n }\n @if (!agent || (!agent.LogoURL && !agent.IconClass)) {\n <i class=\"fas fa-robot\"></i>\n }\n </div>\n <div class=\"header-info\">\n <h2>AI Agent Run</h2>\n <div class=\"meta-info\">\n @if (agent) {\n <span class=\"agent-name\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agents', record.AgentID)\">\n {{ agent.Name }}\n </a>\n </span>\n }\n <span class=\"run-id\">{{ record.ID }}</span>\n @if (record.ParentRunID) {\n <span class=\"parent-run\">\n <i class=\"fas fa-level-up-alt\"></i>\n <a (click)=\"navigateToParentRun()\" class=\"parent-link\">Parent Run</a>\n </span>\n }\n <!-- Conversation Link Pill -->\n @if (record.ConversationID) {\n <span class=\"conversation-pill\" (click)=\"navigateToConversation()\" title=\"Open conversation in Chat app\">\n <i class=\"fas fa-comments\"></i>\n <span>Conversation</span>\n <i class=\"fas fa-external-link-alt pill-action\"></i>\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"header-right\">\n <div class=\"status-badge\" [attr.data-status]=\"record.Status\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon(record.Status || '')\"></i>\n {{ record.Status }}\n </div>\n <div class=\"header-actions\">\n <button class=\"btn-icon\" (click)=\"refreshData()\" title=\"Refresh\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"header-stats\">\n <div class=\"stat\">\n <span class=\"label\">Started</span>\n <span class=\"value\">{{ record.StartedAt | date:'medium' }}</span>\n </div>\n @if (record.CompletedAt) {\n <div class=\"stat\">\n <span class=\"label\">Completed</span>\n <span class=\"value\">{{ record.CompletedAt | date:'medium' }}</span>\n </div>\n }\n @if (record.CompletedAt) {\n <div class=\"stat\">\n <span class=\"label\">Duration</span>\n <span class=\"value\">{{ calculateDuration(record.StartedAt, record.CompletedAt) }}</span>\n </div>\n }\n @if (record.Success !== null && record.CompletedAt !== null) {\n <div class=\"stat\">\n <span class=\"label\">Result</span>\n <span class=\"value\" [class.success]=\"record.Success\" [class.error]=\"!record.Success\">\n {{ record.Success ? 'Success' : 'Failed' }}\n </span>\n </div>\n }\n @if (costMetrics && (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) > 0) {\n <div class=\"stat\">\n <span class=\"label\">Tokens</span>\n @if (!costMetrics.isLoading) {\n <span class=\"value\">{{ (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) | number:'1.0-0' }}</span>\n }\n @if (costMetrics.isLoading) {\n <span class=\"value loading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n }\n </div>\n }\n @if (costMetrics && costMetrics.totalCost > 0) {\n <div class=\"stat\">\n <span class=\"label\">Cost</span>\n @if (!costMetrics.isLoading) {\n <span class=\"value\">${{ costMetrics.totalCost | number:'1.2-4' }}</span>\n }\n @if (costMetrics.isLoading) {\n <span class=\"value loading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n }\n </div>\n }\n @if (record.EffortLevel) {\n <div class=\"stat\">\n <span class=\"label\">Effort Level</span>\n <span class=\"value\">{{ record.EffortLevel }}</span>\n </div>\n }\n </div>\n\n <!-- Configuration Bar (shown below header stats when ConfigurationID exists) -->\n @if (record.ConfigurationID) {\n <div class=\"configuration-bar\">\n <div class=\"config-item\">\n <i class=\"fas fa-cog\"></i>\n <div class=\"config-content\">\n <div class=\"config-label\">Configuration</div>\n <div class=\"config-value\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Configurations', record.ConfigurationID)\">\n {{ record.Configuration || 'Unknown' }}\n </a>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs\">\n <button class=\"tab\" [class.active]=\"activeTab === 'timeline'\" (click)=\"changeTab('timeline')\">\n <i class=\"fas fa-stream\"></i> Timeline\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'visualization'\" (click)=\"changeTab('visualization')\">\n <i class=\"fas fa-diagram-project\"></i> Visualization\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'analytics'\" (click)=\"changeTab('analytics')\">\n <i class=\"fas fa-chart-line\"></i> Analytics\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'details'\" (click)=\"changeTab('details')\">\n <i class=\"fas fa-info-circle\"></i> Details\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"content-area\">\n <!-- Timeline Tab -->\n @if (activeTab === 'timeline') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n <as-split direction=\"horizontal\" style=\"height: 100%;\">\n <!-- Timeline Pane -->\n <as-split-area [size]=\"selectedTimelineItem ? 55 : 100\">\n <mj-ai-agent-run-timeline\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n [autoRefresh]=\"record.Status === 'Running'\"\n [refreshInterval]=\"30000\"\n (itemSelected)=\"selectTimelineItem($event)\"\n (navigateToEntity)=\"navigateToEntityRecord($event)\"\n (agentRunCompleted)=\"onAgentRunCompleted($event)\">\n </mj-ai-agent-run-timeline>\n </as-split-area>\n <!-- JSON Detail Pane -->\n @if (selectedTimelineItem) {\n <as-split-area [size]=\"45\">\n <mj-ai-agent-run-step-detail\n [selectedTimelineItem]=\"selectedTimelineItem\"\n (closePanel)=\"closeJsonPanel()\"\n (navigateToActionLog)=\"navigateToActionLog($event)\"\n (copyToClipboard)=\"copyToClipboard($event)\">\n </mj-ai-agent-run-step-detail>\n </as-split-area>\n }\n </as-split>\n </div>\n }\n\n <!-- Visualization Tab -->\n @if (activeTab === 'visualization') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n @if (visualizationLoaded) {\n <mj-ai-agent-run-visualization\n #visualizationComponent\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n >\n </mj-ai-agent-run-visualization>\n }\n </div>\n }\n\n <!-- Analytics Tab -->\n @if (activeTab === 'analytics') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n @if (analyticsLoaded) {\n <mj-ai-agent-run-analytics\n #analyticsComponent\n [agentRunId]=\"record.ID\"\n >\n </mj-ai-agent-run-analytics>\n }\n </div>\n }\n\n <!-- Details Tab -->\n @if (activeTab === 'details') {\n <div class=\"tab-content\">\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-info-circle\"></i> General Information\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Agent</label>\n <span>\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agents', record.AgentID)\">\n {{ agent?.Name || 'N/A' }}\n </a>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Parent Run ID</label>\n <span>\n @if (record.ParentRunID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.ParentRunID)\">\n {{ record.ParentRunID }}\n </a>\n }\n @if (!record.ParentRunID) {\n <span>None (Root)</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Last Run ID</label>\n <span>\n @if (record.LastRunID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.LastRunID)\">\n {{ record.LastRunID }}\n </a>\n }\n @if (!record.LastRunID) {\n <span>None</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Conversation ID</label>\n <span>\n @if (record.ConversationID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: Conversations', record.ConversationID)\">\n {{ record.ConversationID }}\n </a>\n }\n @if (!record.ConversationID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>User</label>\n <span>\n @if (record.UserID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: Users', record.UserID)\">\n {{ record.User || 'N/A' }}\n </a>\n }\n @if (!record.UserID) {\n <span>N/A</span>\n }\n </span>\n </div>\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-cogs\"></i> Execution Settings\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Override Model</label>\n <span>\n @if (record.OverrideModelID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Models', record.OverrideModelID)\">\n {{ record.OverrideModel || 'N/A' }}\n </a>\n }\n @if (!record.OverrideModelID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Override Vendor</label>\n <span>\n @if (record.OverrideVendorID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Vendors', record.OverrideVendorID)\">\n {{ record.OverrideVendor || 'N/A' }}\n </a>\n }\n @if (!record.OverrideVendorID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Verbose Logging</label>\n <span>{{ record.Verbose ? 'Yes' : 'No' }}</span>\n </div>\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-tasks\"></i> Execution Status\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Status</label>\n <span class=\"status-badge\" [attr.data-status]=\"record.Status\">\n {{ record.Status }}\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Success</label>\n @if (record.Success === null) {\n <span>In Progress</span>\n }\n @else if (record.Success) {\n <span class=\"success\">Yes</span>\n }\n @else {\n <span class=\"error-message\">No</span>\n }\n </div>\n @if (record.Message) {\n <div class=\"detail-item full-width\">\n <label>Message</label>\n <div class=\"message\">{{ record.Message }}</div>\n </div>\n }\n @if (record.ErrorMessage) {\n <div class=\"detail-item full-width\">\n <label>Error Message</label>\n <div class=\"error-message\">{{ record.ErrorMessage }}</div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-dollar-sign\"></i> Usage &amp; Cost\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Total Tokens Used</label>\n <span>{{ record.TotalTokensUsed ? (record.TotalTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Prompt Tokens</label>\n <span>{{ record.TotalPromptTokensUsed ? (record.TotalPromptTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Completion Tokens</label>\n <span>{{ record.TotalCompletionTokensUsed ? (record.TotalCompletionTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Cost</label>\n <span>{{ record.TotalCost != null ? ('$' + (record.TotalCost | number:'1.2-4')) : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Prompt Iterations</label>\n <span>{{ record.TotalPromptIterations != null ? (record.TotalPromptIterations | number:'1.0-0') : 'N/A' }}</span>\n </div>\n </div>\n </mj-accordion-panel>\n @if (record.Result) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-code\"></i> Result\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedResult\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading result data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.StartingPayload) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-upload\"></i> Starting Payload\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedStartingPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.Data) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-database\"></i> Execution Data\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedData\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading execution data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.FinalPayload) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-download\"></i> Final Payload\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedFinalPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading final payload data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (showPayloadDiff) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-code-compare\"></i> Payload Diff\n </ng-template>\n <div style=\"padding: 20px; background: var(--mj-bg-surface-card);\">\n @if (isParsingComplete) {\n <mj-deep-diff\n [oldValue]=\"startingPayloadObject\"\n [newValue]=\"finalPayloadObject\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"false\"\n [maxDepth]=\"10\"\n [maxStringLength]=\"200\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload diff...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n </div>\n }\n</div>\n</div>\n</div>", styles: [".ai-agent-run-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.record-form-container.ai-agent-run-form > .record-form,\n.ai-agent-run-form > .record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n/* Header Styles */\n.header {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 20px;\n box-shadow: var(--mj-shadow-sm);\n flex-shrink: 0;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper {\n width: 48px;\n height: 48px;\n background: var(--mj-brand-primary);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: 20px;\n overflow: hidden;\n}\n\n.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.header-info h2 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.meta-info {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: var(--mj-text-muted);\n}\n\n.parent-run {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link:hover {\n color: var(--mj-status-error);\n text-decoration: underline;\n}\n\n.agent-name {\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.run-id {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n/* Conversation Link Pill */\n.conversation-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 16px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-brand-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n}\n\n.conversation-pill:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.conversation-pill i:first-child {\n font-size: 11px;\n opacity: 0.9;\n}\n\n.conversation-pill .pill-action {\n font-size: 9px;\n opacity: 0.6;\n transition: opacity 0.2s ease;\n}\n\n.conversation-pill:hover .pill-action {\n opacity: 1;\n}\n\n.header-right {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.status-badge[data-status=\"Completed\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-badge[data-status=\"Failed\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.status-badge[data-status=\"Cancelled\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.status-badge[data-status=\"Paused\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.small {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.btn-icon:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n.header-stats {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n/* Configuration Bar */\n.configuration-bar {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n margin-top: 16px;\n}\n\n.config-item {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-item > i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.config-content {\n display: flex;\n flex-direction: column;\n}\n\n.config-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.config-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-value .entity-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-value .entity-link:hover {\n color: var(--mj-brand-primary-hover);\n text-decoration: underline;\n}\n\n.stat {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat .label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat .value {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.stat .value.success {\n color: var(--mj-status-success);\n}\n\n.stat .value.error {\n color: var(--mj-status-error);\n}\n\n/* Tabs */\n.tabs {\n display: flex;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n flex-shrink: 0;\n}\n\n.tab {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n border-bottom: 3px solid transparent;\n}\n\n.tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n}\n\n/* Content Area */\n.content-area {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--mj-bg-surface);\n}\n\n.tab-content {\n height: 100%;\n min-height: 0;\n overflow: auto;\n}\n\n/* Details tab accordion panels */\n.tab-content mj-accordion-panel {\n display: block;\n margin-bottom: 8px;\n}\n\n/* JSON Detail Pane */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface-sunken);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.json-pane-header h3 i {\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.json-pane-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta .meta-item label {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta .meta-item span {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link {\n margin-bottom: 12px;\n}\n\n.action-link .btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n font-size: 14px;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-link .btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.json-viewer {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n overflow: auto;\n padding: 20px;\n gap: 10px;\n min-height: 0;\n margin-bottom: 45px;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n/* Timeline Styles */\n.timeline-container {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container > .timeline {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.timeline-item {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected {\n transform: translateX(8px);\n}\n\n.timeline-item.selected .timeline-content {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-marker {\n position: absolute;\n left: -30px;\n top: 0;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: 3px solid var(--mj-border-default);\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"] {\n border-color: var(--mj-status-success);\n color: var(--mj-status-success);\n}\n\n.timeline-marker[data-color=\"error\"] {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n}\n\n.timeline-marker[data-color=\"info\"] {\n border-color: var(--mj-status-info);\n color: var(--mj-status-info);\n}\n\n.timeline-marker[data-color=\"warning\"] {\n border-color: var(--mj-status-warning);\n color: var(--mj-status-warning);\n}\n\n.timeline-marker[data-color=\"secondary\"] {\n border-color: var(--mj-text-muted);\n color: var(--mj-text-muted);\n}\n\n.timeline-marker.small {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: var(--mj-shadow-sm);\n transition: all 0.2s ease;\n}\n\n.timeline-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header h4 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-header h5 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.timeline-time {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-family: monospace;\n}\n\n.timeline-subtitle {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n}\n\n.timeline-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.timeline-meta .status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.timeline-meta .status[data-status=\"Completed\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.timeline-meta .status[data-status=\"Failed\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.timeline-meta .status[data-status=\"Running\"] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.timeline-meta .status[data-status=\"Paused\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.duration {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions {\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.btn-expand {\n width: 24px;\n height: 24px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n.btn-expand:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n/* Timeline Children */\n.timeline-children {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.child-item {\n margin-bottom: 12px;\n}\n\n.child-item .timeline-content {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n}\n\n/* Sub-run timeline styles */\n.sub-run-timeline {\n background: color-mix(in srgb, var(--mj-brand-primary) 2%, var(--mj-bg-surface));\n border-left: 2px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item .timeline-marker {\n border-width: 2px;\n}\n\n.sub-run-item .timeline-content {\n transition: all 0.2s ease;\n}\n\n/* JSON Detail Pane (in splitter) */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header {\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta {\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta label {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta span {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link {\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.action-link .btn-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-brand-primary);\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link .btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n text-decoration: none;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n/* Details Tab */\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width {\n grid-column: 1 / -1;\n}\n\n.detail-item label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item span {\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.error-message {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer,\n.state-viewer {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer mj-code-editor,\n.state-viewer mj-code-editor {\n flex: 1;\n min-height: 0;\n}\n\n/* Empty States */\n.empty-state,\n.loading-state,\n.error-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i,\n.loading-state i,\n.error-state i {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats {\n flex-wrap: wrap;\n }\n \n .json-detail-pane {\n width: 100%;\n }\n \n .timeline {\n padding-left: 30px;\n }\n \n .timeline-marker {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content {\n margin-left: 10px;\n }\n}\n\n/* Entity Link Styles */\n.entity-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n transition: all 0.2s ease;\n border-bottom: 1px solid transparent;\n display: inline-block;\n}\n\n.entity-link:hover {\n color: var(--mj-brand-primary-hover);\n border-bottom-color: var(--mj-brand-primary-hover);\n}\n\n.entity-link:active {\n color: var(--mj-brand-primary-hover);\n}\n\n/* Detail Pane Tabs */\n.detail-pane-tabs {\n display: flex;\n gap: 8px;\n margin: 8px 0 0 0;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 0 16px;\n}\n\n.detail-tab {\n padding: 10px 16px;\n background: none;\n border: none;\n border-bottom: 3px solid transparent;\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.detail-tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.detail-tab i {\n font-size: 14px;\n}\n\n/* Detail Pane Content */\n.detail-pane-content {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n margin-bottom: 35px;\n}\n\n.detail-pane-content.with-tabs {\n /* When tabs are shown, content starts right after tabs */\n margin-top: 0;\n}\n\n/* Step Payload Diff */\n.step-payload-diff {\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n}\n\n.step-payload-diff mj-deep-diff {\n display: block;\n height: 100%;\n}\n\n/* JSON Viewer adjustments when no tabs */\n.detail-pane-content:not(.with-tabs) .json-viewer {\n margin-top: 16px;\n}"] }]
1553
+ args: [{ standalone: false, selector: 'mj-ai-agent-run-form', template: "<div class=\"record-form-container ai-agent-run-form\">\n <div class=\"record-form\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n @if (agent && agent.LogoURL) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name || 'Agent'\" class=\"agent-logo\" />\n }\n @if (agent && !agent.LogoURL && agent.IconClass) {\n <i class=\"fas\" [ngClass]=\"agent.IconClass\"></i>\n }\n @if (!agent || (!agent.LogoURL && !agent.IconClass)) {\n <i class=\"fas fa-robot\"></i>\n }\n </div>\n <div class=\"header-info\">\n <h2>AI Agent Run</h2>\n <div class=\"meta-info\">\n @if (agent) {\n <span class=\"agent-name\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agents', record.AgentID)\">\n {{ agent.Name }}\n </a>\n </span>\n }\n <span class=\"run-id\">{{ record.ID }}</span>\n @if (record.ParentRunID) {\n <span class=\"parent-run\">\n <i class=\"fas fa-level-up-alt\"></i>\n <a (click)=\"navigateToParentRun()\" class=\"parent-link\">Parent Run</a>\n </span>\n }\n <!-- Conversation Link Pill -->\n @if (record.ConversationID) {\n <span class=\"conversation-pill\" (click)=\"navigateToConversation()\" title=\"Open conversation in Chat app\">\n <i class=\"fas fa-comments\"></i>\n <span>Conversation</span>\n <i class=\"fas fa-external-link-alt pill-action\"></i>\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"header-right\">\n <div class=\"status-badge\" [attr.data-status]=\"record.Status\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon(record.Status || '')\"></i>\n {{ record.Status }}\n </div>\n <div class=\"header-actions\">\n <button class=\"btn-icon\" (click)=\"refreshData()\" title=\"Refresh\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"header-stats\">\n <div class=\"stat\">\n <span class=\"label\">Started</span>\n <span class=\"value\">{{ record.StartedAt | date:'medium' }}</span>\n </div>\n @if (record.CompletedAt) {\n <div class=\"stat\">\n <span class=\"label\">Completed</span>\n <span class=\"value\">{{ record.CompletedAt | date:'medium' }}</span>\n </div>\n }\n @if (record.CompletedAt) {\n <div class=\"stat\">\n <span class=\"label\">Duration</span>\n <span class=\"value\">{{ calculateDuration(record.StartedAt, record.CompletedAt) }}</span>\n </div>\n }\n @if (record.Success !== null && record.CompletedAt !== null) {\n <div class=\"stat\">\n <span class=\"label\">Result</span>\n <span class=\"value\" [class.success]=\"record.Success\" [class.error]=\"!record.Success\">\n {{ record.Success ? 'Success' : 'Failed' }}\n </span>\n </div>\n }\n @if (costMetrics && (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) > 0) {\n <div class=\"stat\">\n <span class=\"label\">Tokens</span>\n @if (!costMetrics.isLoading) {\n <span class=\"value\">{{ (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) | number:'1.0-0' }}</span>\n }\n @if (costMetrics.isLoading) {\n <span class=\"value loading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n }\n </div>\n }\n @if (costMetrics && costMetrics.totalCost > 0) {\n <div class=\"stat\">\n <span class=\"label\">Cost</span>\n @if (!costMetrics.isLoading) {\n <span class=\"value\">${{ costMetrics.totalCost | number:'1.2-4' }}</span>\n }\n @if (costMetrics.isLoading) {\n <span class=\"value loading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n }\n </div>\n }\n @if (record.EffortLevel) {\n <div class=\"stat\">\n <span class=\"label\">Effort Level</span>\n <span class=\"value\">{{ record.EffortLevel }}</span>\n </div>\n }\n </div>\n\n <!-- Configuration Bar (shown below header stats when ConfigurationID exists) -->\n @if (record.ConfigurationID) {\n <div class=\"configuration-bar\">\n <div class=\"config-item\">\n <i class=\"fas fa-cog\"></i>\n <div class=\"config-content\">\n <div class=\"config-label\">Configuration</div>\n <div class=\"config-value\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Configurations', record.ConfigurationID)\">\n {{ record.Configuration || 'Unknown' }}\n </a>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs\">\n <button class=\"tab\" [class.active]=\"activeTab === 'timeline'\" (click)=\"changeTab('timeline')\">\n <i class=\"fas fa-stream\"></i> Timeline\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'visualization'\" (click)=\"changeTab('visualization')\">\n <i class=\"fas fa-diagram-project\"></i> Visualization\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'analytics'\" (click)=\"changeTab('analytics')\">\n <i class=\"fas fa-chart-line\"></i> Analytics\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'details'\" (click)=\"changeTab('details')\">\n <i class=\"fas fa-info-circle\"></i> Details\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"content-area\">\n <!-- Timeline Tab -->\n @if (activeTab === 'timeline') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n <as-split direction=\"horizontal\" style=\"height: 100%;\">\n <!-- Timeline Pane -->\n <as-split-area [size]=\"selectedTimelineItem ? 55 : 100\">\n <mj-ai-agent-run-timeline\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n (itemSelected)=\"selectTimelineItem($event)\"\n (navigateToEntity)=\"navigateToEntityRecord($event)\">\n </mj-ai-agent-run-timeline>\n </as-split-area>\n <!-- JSON Detail Pane -->\n @if (selectedTimelineItem) {\n <as-split-area [size]=\"45\">\n <mj-ai-agent-run-step-detail\n [selectedTimelineItem]=\"selectedTimelineItem\"\n (closePanel)=\"closeJsonPanel()\"\n (navigateToActionLog)=\"navigateToActionLog($event)\"\n (copyToClipboard)=\"copyToClipboard($event)\">\n </mj-ai-agent-run-step-detail>\n </as-split-area>\n }\n </as-split>\n </div>\n }\n\n <!-- Visualization Tab -->\n @if (activeTab === 'visualization') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n @if (visualizationLoaded) {\n <mj-ai-agent-run-visualization\n #visualizationComponent\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n >\n </mj-ai-agent-run-visualization>\n }\n </div>\n }\n\n <!-- Analytics Tab -->\n @if (activeTab === 'analytics') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n @if (analyticsLoaded) {\n <mj-ai-agent-run-analytics\n #analyticsComponent\n [agentRunId]=\"record.ID\"\n >\n </mj-ai-agent-run-analytics>\n }\n </div>\n }\n\n <!-- Details Tab -->\n @if (activeTab === 'details') {\n <div class=\"tab-content\">\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-info-circle\"></i> General Information\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Agent</label>\n <span>\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agents', record.AgentID)\">\n {{ agent?.Name || 'N/A' }}\n </a>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Parent Run ID</label>\n <span>\n @if (record.ParentRunID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.ParentRunID)\">\n {{ record.ParentRunID }}\n </a>\n }\n @if (!record.ParentRunID) {\n <span>None (Root)</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Last Run ID</label>\n <span>\n @if (record.LastRunID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.LastRunID)\">\n {{ record.LastRunID }}\n </a>\n }\n @if (!record.LastRunID) {\n <span>None</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Conversation ID</label>\n <span>\n @if (record.ConversationID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: Conversations', record.ConversationID)\">\n {{ record.ConversationID }}\n </a>\n }\n @if (!record.ConversationID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>User</label>\n <span>\n @if (record.UserID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: Users', record.UserID)\">\n {{ record.User || 'N/A' }}\n </a>\n }\n @if (!record.UserID) {\n <span>N/A</span>\n }\n </span>\n </div>\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-cogs\"></i> Execution Settings\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Override Model</label>\n <span>\n @if (record.OverrideModelID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Models', record.OverrideModelID)\">\n {{ record.OverrideModel || 'N/A' }}\n </a>\n }\n @if (!record.OverrideModelID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Override Vendor</label>\n <span>\n @if (record.OverrideVendorID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Vendors', record.OverrideVendorID)\">\n {{ record.OverrideVendor || 'N/A' }}\n </a>\n }\n @if (!record.OverrideVendorID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Verbose Logging</label>\n <span>{{ record.Verbose ? 'Yes' : 'No' }}</span>\n </div>\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-tasks\"></i> Execution Status\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Status</label>\n <span class=\"status-badge\" [attr.data-status]=\"record.Status\">\n {{ record.Status }}\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Success</label>\n @if (record.Success === null) {\n <span>In Progress</span>\n }\n @else if (record.Success) {\n <span class=\"success\">Yes</span>\n }\n @else {\n <span class=\"error-message\">No</span>\n }\n </div>\n @if (record.Message) {\n <div class=\"detail-item full-width\">\n <label>Message</label>\n <div class=\"message\">{{ record.Message }}</div>\n </div>\n }\n @if (record.ErrorMessage) {\n <div class=\"detail-item full-width\">\n <label>Error Message</label>\n <div class=\"error-message\">{{ record.ErrorMessage }}</div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-dollar-sign\"></i> Usage &amp; Cost\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Total Tokens Used</label>\n <span>{{ record.TotalTokensUsed ? (record.TotalTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Prompt Tokens</label>\n <span>{{ record.TotalPromptTokensUsed ? (record.TotalPromptTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Completion Tokens</label>\n <span>{{ record.TotalCompletionTokensUsed ? (record.TotalCompletionTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Cost</label>\n <span>{{ record.TotalCost != null ? ('$' + (record.TotalCost | number:'1.2-4')) : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Prompt Iterations</label>\n <span>{{ record.TotalPromptIterations != null ? (record.TotalPromptIterations | number:'1.0-0') : 'N/A' }}</span>\n </div>\n </div>\n </mj-accordion-panel>\n @if (record.Result) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-code\"></i> Result\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedResult\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading result data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.StartingPayload) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-upload\"></i> Starting Payload\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedStartingPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.Data) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-database\"></i> Execution Data\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedData\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading execution data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.FinalPayload) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-download\"></i> Final Payload\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedFinalPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading final payload data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (showPayloadDiff) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-code-compare\"></i> Payload Diff\n </ng-template>\n <div style=\"padding: 20px; background: var(--mj-bg-surface-card);\">\n @if (isParsingComplete) {\n <mj-deep-diff\n [oldValue]=\"startingPayloadObject\"\n [newValue]=\"finalPayloadObject\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"false\"\n [maxDepth]=\"10\"\n [maxStringLength]=\"200\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload diff...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n </div>\n }\n</div>\n</div>\n</div>", styles: [".ai-agent-run-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.record-form-container.ai-agent-run-form > .record-form,\n.ai-agent-run-form > .record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n/* Header Styles */\n.header {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 20px;\n box-shadow: var(--mj-shadow-sm);\n flex-shrink: 0;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper {\n width: 48px;\n height: 48px;\n background: var(--mj-brand-primary);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: 20px;\n overflow: hidden;\n}\n\n.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.header-info h2 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.meta-info {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: var(--mj-text-muted);\n}\n\n.parent-run {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link:hover {\n color: var(--mj-status-error);\n text-decoration: underline;\n}\n\n.agent-name {\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.run-id {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n/* Conversation Link Pill */\n.conversation-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 16px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-brand-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n}\n\n.conversation-pill:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.conversation-pill i:first-child {\n font-size: 11px;\n opacity: 0.9;\n}\n\n.conversation-pill .pill-action {\n font-size: 9px;\n opacity: 0.6;\n transition: opacity 0.2s ease;\n}\n\n.conversation-pill:hover .pill-action {\n opacity: 1;\n}\n\n.header-right {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.status-badge[data-status=\"Completed\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-badge[data-status=\"Failed\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.status-badge[data-status=\"Cancelled\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.status-badge[data-status=\"Paused\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.small {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.btn-icon:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n.header-stats {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n/* Configuration Bar */\n.configuration-bar {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n margin-top: 16px;\n}\n\n.config-item {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-item > i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.config-content {\n display: flex;\n flex-direction: column;\n}\n\n.config-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.config-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-value .entity-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-value .entity-link:hover {\n color: var(--mj-brand-primary-hover);\n text-decoration: underline;\n}\n\n.stat {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat .label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat .value {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.stat .value.success {\n color: var(--mj-status-success);\n}\n\n.stat .value.error {\n color: var(--mj-status-error);\n}\n\n/* Tabs */\n.tabs {\n display: flex;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n flex-shrink: 0;\n}\n\n.tab {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n border-bottom: 3px solid transparent;\n}\n\n.tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n}\n\n/* Content Area */\n.content-area {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--mj-bg-surface);\n}\n\n.tab-content {\n height: 100%;\n min-height: 0;\n overflow: auto;\n}\n\n/* Details tab accordion panels */\n.tab-content mj-accordion-panel {\n display: block;\n margin-bottom: 8px;\n}\n\n/* JSON Detail Pane */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface-sunken);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.json-pane-header h3 i {\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.json-pane-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta .meta-item label {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta .meta-item span {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link {\n margin-bottom: 12px;\n}\n\n.action-link .btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n font-size: 14px;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-link .btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.json-viewer {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n overflow: auto;\n padding: 20px;\n gap: 10px;\n min-height: 0;\n margin-bottom: 45px;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n/* Timeline Styles */\n.timeline-container {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container > .timeline {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.timeline-item {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected {\n transform: translateX(8px);\n}\n\n.timeline-item.selected .timeline-content {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-marker {\n position: absolute;\n left: -30px;\n top: 0;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: 3px solid var(--mj-border-default);\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"] {\n border-color: var(--mj-status-success);\n color: var(--mj-status-success);\n}\n\n.timeline-marker[data-color=\"error\"] {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n}\n\n.timeline-marker[data-color=\"info\"] {\n border-color: var(--mj-status-info);\n color: var(--mj-status-info);\n}\n\n.timeline-marker[data-color=\"warning\"] {\n border-color: var(--mj-status-warning);\n color: var(--mj-status-warning);\n}\n\n.timeline-marker[data-color=\"secondary\"] {\n border-color: var(--mj-text-muted);\n color: var(--mj-text-muted);\n}\n\n.timeline-marker.small {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: var(--mj-shadow-sm);\n transition: all 0.2s ease;\n}\n\n.timeline-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header h4 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-header h5 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.timeline-time {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-family: monospace;\n}\n\n.timeline-subtitle {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n}\n\n.timeline-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.timeline-meta .status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.timeline-meta .status[data-status=\"Completed\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.timeline-meta .status[data-status=\"Failed\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.timeline-meta .status[data-status=\"Running\"] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.timeline-meta .status[data-status=\"Paused\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.duration {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions {\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.btn-expand {\n width: 24px;\n height: 24px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n.btn-expand:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n/* Timeline Children */\n.timeline-children {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.child-item {\n margin-bottom: 12px;\n}\n\n.child-item .timeline-content {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n}\n\n/* Sub-run timeline styles */\n.sub-run-timeline {\n background: color-mix(in srgb, var(--mj-brand-primary) 2%, var(--mj-bg-surface));\n border-left: 2px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item .timeline-marker {\n border-width: 2px;\n}\n\n.sub-run-item .timeline-content {\n transition: all 0.2s ease;\n}\n\n/* JSON Detail Pane (in splitter) */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header {\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta {\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta label {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta span {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link {\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.action-link .btn-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-brand-primary);\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link .btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n text-decoration: none;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n/* Details Tab */\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width {\n grid-column: 1 / -1;\n}\n\n.detail-item label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item span {\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.error-message {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer,\n.state-viewer {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer mj-code-editor,\n.state-viewer mj-code-editor {\n flex: 1;\n min-height: 0;\n}\n\n/* Empty States */\n.empty-state,\n.loading-state,\n.error-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i,\n.loading-state i,\n.error-state i {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats {\n flex-wrap: wrap;\n }\n \n .json-detail-pane {\n width: 100%;\n }\n \n .timeline {\n padding-left: 30px;\n }\n \n .timeline-marker {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content {\n margin-left: 10px;\n }\n}\n\n/* Entity Link Styles */\n.entity-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n transition: all 0.2s ease;\n border-bottom: 1px solid transparent;\n display: inline-block;\n}\n\n.entity-link:hover {\n color: var(--mj-brand-primary-hover);\n border-bottom-color: var(--mj-brand-primary-hover);\n}\n\n.entity-link:active {\n color: var(--mj-brand-primary-hover);\n}\n\n/* Detail Pane Tabs */\n.detail-pane-tabs {\n display: flex;\n gap: 8px;\n margin: 8px 0 0 0;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 0 16px;\n}\n\n.detail-tab {\n padding: 10px 16px;\n background: none;\n border: none;\n border-bottom: 3px solid transparent;\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.detail-tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.detail-tab i {\n font-size: 14px;\n}\n\n/* Detail Pane Content */\n.detail-pane-content {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n margin-bottom: 35px;\n}\n\n.detail-pane-content.with-tabs {\n /* When tabs are shown, content starts right after tabs */\n margin-top: 0;\n}\n\n/* Step Payload Diff */\n.step-payload-diff {\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n}\n\n.step-payload-diff mj-deep-diff {\n display: block;\n height: 100%;\n}\n\n/* JSON Viewer adjustments when no tabs */\n.detail-pane-content:not(.with-tabs) .json-viewer {\n margin-top: 16px;\n}"] }]
1416
1554
  }], null, { timelineComponent: [{
1417
1555
  type: ViewChild,
1418
1556
  args: [AIAgentRunTimelineComponent]