@memberjunction/ng-core-entity-forms 2.52.0 → 2.54.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 (433) hide show
  1. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +20 -0
  2. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +188 -40
  4. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  5. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +5 -7
  6. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  7. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +19 -1
  8. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
  9. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +680 -395
  10. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  11. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +1 -0
  12. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  13. package/dist/lib/custom/Actions/action-execution-log-form.component.js +212 -293
  14. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  15. package/dist/lib/custom/Actions/action-form.component.js +6 -8
  16. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  17. package/dist/lib/custom/Entities/entities-form.component.js +14 -16
  18. package/dist/lib/custom/Entities/entities-form.component.js.map +1 -1
  19. package/dist/lib/custom/EntityActions/entityaction.form.component.js +10 -12
  20. package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
  21. package/dist/lib/custom/Templates/template-params-grid.component.d.ts +37 -0
  22. package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -0
  23. package/dist/lib/custom/Templates/template-params-grid.component.js +537 -0
  24. package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -0
  25. package/dist/lib/custom/Templates/templates-form.component.js +20 -25
  26. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  27. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +25 -0
  28. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -0
  29. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +261 -0
  30. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -0
  31. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +73 -0
  32. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -0
  33. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +510 -0
  34. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -0
  35. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +40 -0
  36. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -0
  37. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +490 -0
  38. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -0
  39. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.d.ts +31 -2
  40. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.d.ts.map +1 -1
  41. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.js +167 -65
  42. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.js.map +1 -1
  43. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.d.ts +44 -2
  44. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.d.ts.map +1 -1
  45. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.js +487 -247
  46. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.js.map +1 -1
  47. package/dist/lib/custom/custom-forms.module.d.ts +39 -33
  48. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  49. package/dist/lib/custom/custom-forms.module.js +36 -3
  50. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  51. package/dist/lib/generated/Entities/AIAction/aiaction.form.component.js +6 -8
  52. package/dist/lib/generated/Entities/AIAction/aiaction.form.component.js.map +1 -1
  53. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +14 -16
  54. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
  55. package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.js +3 -5
  56. package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.js.map +1 -1
  57. package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.js +3 -5
  58. package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.js.map +1 -1
  59. package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.js +3 -5
  60. package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.js.map +1 -1
  61. package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.js +3 -5
  62. package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.js.map +1 -1
  63. package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.js +5 -7
  64. package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.js.map +1 -1
  65. package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.js +3 -5
  66. package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.js.map +1 -1
  67. package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.js +3 -5
  68. package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.js.map +1 -1
  69. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js +7 -9
  70. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js.map +1 -1
  71. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js +3 -5
  72. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js.map +1 -1
  73. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts.map +1 -1
  74. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js +13 -4
  75. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js.map +1 -1
  76. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js +5 -7
  77. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js.map +1 -1
  78. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js +9 -11
  79. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js.map +1 -1
  80. package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.js +3 -5
  81. package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.js.map +1 -1
  82. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js +17 -19
  83. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js.map +1 -1
  84. package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.js +3 -5
  85. package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.js.map +1 -1
  86. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js +3 -5
  87. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js.map +1 -1
  88. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js +5 -7
  89. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js.map +1 -1
  90. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js +5 -7
  91. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js.map +1 -1
  92. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js +6 -8
  93. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js.map +1 -1
  94. package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.js +3 -5
  95. package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.js.map +1 -1
  96. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js +13 -15
  97. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js.map +1 -1
  98. package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.js +6 -8
  99. package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.js.map +1 -1
  100. package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.js +3 -5
  101. package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.js.map +1 -1
  102. package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js +6 -8
  103. package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js.map +1 -1
  104. package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.js +5 -7
  105. package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.js.map +1 -1
  106. package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.js +3 -5
  107. package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.js.map +1 -1
  108. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js +10 -12
  109. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js.map +1 -1
  110. package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.js +3 -5
  111. package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.js.map +1 -1
  112. package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.js +6 -8
  113. package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.js.map +1 -1
  114. package/dist/lib/generated/Entities/Action/action.form.component.js +24 -15
  115. package/dist/lib/generated/Entities/Action/action.form.component.js.map +1 -1
  116. package/dist/lib/generated/Entities/Action/sections/code.component.js +3 -4
  117. package/dist/lib/generated/Entities/Action/sections/code.component.js.map +1 -1
  118. package/dist/lib/generated/Entities/Action/sections/details.component.d.ts.map +1 -1
  119. package/dist/lib/generated/Entities/Action/sections/details.component.js +24 -4
  120. package/dist/lib/generated/Entities/Action/sections/details.component.js.map +1 -1
  121. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js +3 -5
  122. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js.map +1 -1
  123. package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.js +6 -8
  124. package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.js.map +1 -1
  125. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js +3 -5
  126. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js.map +1 -1
  127. package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.js +5 -7
  128. package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.js.map +1 -1
  129. package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.js +3 -5
  130. package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.js.map +1 -1
  131. package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.js +5 -7
  132. package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.js.map +1 -1
  133. package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.js +3 -5
  134. package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.js.map +1 -1
  135. package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.js +6 -8
  136. package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.js.map +1 -1
  137. package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.js +3 -5
  138. package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.js.map +1 -1
  139. package/dist/lib/generated/Entities/Application/application.form.component.js +9 -11
  140. package/dist/lib/generated/Entities/Application/application.form.component.js.map +1 -1
  141. package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.js +3 -5
  142. package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.js.map +1 -1
  143. package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.js +3 -5
  144. package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.js.map +1 -1
  145. package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.js +5 -7
  146. package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.js.map +1 -1
  147. package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.js +3 -5
  148. package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.js.map +1 -1
  149. package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.js +6 -8
  150. package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.js.map +1 -1
  151. package/dist/lib/generated/Entities/Authorization/authorization.form.component.js +9 -11
  152. package/dist/lib/generated/Entities/Authorization/authorization.form.component.js.map +1 -1
  153. package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.js +3 -5
  154. package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.js.map +1 -1
  155. package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.js +6 -8
  156. package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.js.map +1 -1
  157. package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.js +3 -5
  158. package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.js.map +1 -1
  159. package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.js +7 -9
  160. package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.js.map +1 -1
  161. package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.js +5 -7
  162. package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.js.map +1 -1
  163. package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.js +5 -7
  164. package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.js.map +1 -1
  165. package/dist/lib/generated/Entities/Company/company.form.component.js +7 -9
  166. package/dist/lib/generated/Entities/Company/company.form.component.js.map +1 -1
  167. package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.js +8 -10
  168. package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.js.map +1 -1
  169. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.js +3 -5
  170. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.js.map +1 -1
  171. package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.js +7 -9
  172. package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.js.map +1 -1
  173. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.js +3 -5
  174. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.js.map +1 -1
  175. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.js +5 -7
  176. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.js.map +1 -1
  177. package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.js +6 -8
  178. package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.js.map +1 -1
  179. package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.js +6 -8
  180. package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.js.map +1 -1
  181. package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.js +3 -5
  182. package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.js.map +1 -1
  183. package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.js +3 -5
  184. package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.js.map +1 -1
  185. package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.js +3 -5
  186. package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.js.map +1 -1
  187. package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.js +7 -9
  188. package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.js.map +1 -1
  189. package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.js +3 -5
  190. package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.js.map +1 -1
  191. package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.js +6 -8
  192. package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.js.map +1 -1
  193. package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.js +3 -5
  194. package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.js.map +1 -1
  195. package/dist/lib/generated/Entities/ContentType/contenttype.form.component.js +6 -8
  196. package/dist/lib/generated/Entities/ContentType/contenttype.form.component.js.map +1 -1
  197. package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.js +3 -5
  198. package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.js.map +1 -1
  199. package/dist/lib/generated/Entities/Conversation/conversation.form.component.js +8 -10
  200. package/dist/lib/generated/Entities/Conversation/conversation.form.component.js.map +1 -1
  201. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js +7 -9
  202. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js.map +1 -1
  203. package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.js +3 -5
  204. package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.js.map +1 -1
  205. package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.js +5 -7
  206. package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.js.map +1 -1
  207. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js +5 -7
  208. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js.map +1 -1
  209. package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.js +6 -8
  210. package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.js.map +1 -1
  211. package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.js +6 -8
  212. package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.js.map +1 -1
  213. package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.js +3 -5
  214. package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.js.map +1 -1
  215. package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.js +3 -5
  216. package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.js.map +1 -1
  217. package/dist/lib/generated/Entities/DataContext/datacontext.form.component.js +7 -9
  218. package/dist/lib/generated/Entities/DataContext/datacontext.form.component.js.map +1 -1
  219. package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.js +3 -5
  220. package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.js.map +1 -1
  221. package/dist/lib/generated/Entities/Dataset/dataset.form.component.js +5 -7
  222. package/dist/lib/generated/Entities/Dataset/dataset.form.component.js.map +1 -1
  223. package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.js +3 -5
  224. package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.js.map +1 -1
  225. package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.js +5 -7
  226. package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.js.map +1 -1
  227. package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.js +5 -7
  228. package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.js.map +1 -1
  229. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.js +3 -5
  230. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.js.map +1 -1
  231. package/dist/lib/generated/Entities/Employee/employee.form.component.js +9 -11
  232. package/dist/lib/generated/Entities/Employee/employee.form.component.js.map +1 -1
  233. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.js +3 -5
  234. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.js.map +1 -1
  235. package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.js +3 -5
  236. package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.js.map +1 -1
  237. package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.js +3 -5
  238. package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.js.map +1 -1
  239. package/dist/lib/generated/Entities/Entity/entity.form.component.js +41 -43
  240. package/dist/lib/generated/Entities/Entity/entity.form.component.js.map +1 -1
  241. package/dist/lib/generated/Entities/Entity/sections/ui.component.js +3 -4
  242. package/dist/lib/generated/Entities/Entity/sections/ui.component.js.map +1 -1
  243. package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.js +3 -5
  244. package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.js.map +1 -1
  245. package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.js +7 -9
  246. package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.js.map +1 -1
  247. package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.js +3 -5
  248. package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.js.map +1 -1
  249. package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.js +3 -5
  250. package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.js.map +1 -1
  251. package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.js +5 -7
  252. package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.js.map +1 -1
  253. package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.js +3 -5
  254. package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.js.map +1 -1
  255. package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.js +3 -5
  256. package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.js.map +1 -1
  257. package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.js +5 -7
  258. package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.js.map +1 -1
  259. package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.js +7 -9
  260. package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.js.map +1 -1
  261. package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.js +3 -5
  262. package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.js.map +1 -1
  263. package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.js +3 -5
  264. package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.js.map +1 -1
  265. package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.js +5 -7
  266. package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.js.map +1 -1
  267. package/dist/lib/generated/Entities/EntityField/entityfield.form.component.js +5 -7
  268. package/dist/lib/generated/Entities/EntityField/entityfield.form.component.js.map +1 -1
  269. package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.js +3 -5
  270. package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.js.map +1 -1
  271. package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.js +3 -5
  272. package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.js.map +1 -1
  273. package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.js +3 -5
  274. package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.js.map +1 -1
  275. package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.js +3 -5
  276. package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.js.map +1 -1
  277. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.js +5 -7
  278. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.js.map +1 -1
  279. package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.js +3 -5
  280. package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.js.map +1 -1
  281. package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.js +3 -5
  282. package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.js.map +1 -1
  283. package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.js +3 -5
  284. package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.js.map +1 -1
  285. package/dist/lib/generated/Entities/File/file.form.component.js +5 -7
  286. package/dist/lib/generated/Entities/File/file.form.component.js.map +1 -1
  287. package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.js +6 -8
  288. package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.js.map +1 -1
  289. package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.js +3 -5
  290. package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.js.map +1 -1
  291. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.js +5 -7
  292. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.js.map +1 -1
  293. package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.js +3 -5
  294. package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.js.map +1 -1
  295. package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.js +6 -8
  296. package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.js.map +1 -1
  297. package/dist/lib/generated/Entities/Integration/integration.form.component.js +7 -9
  298. package/dist/lib/generated/Entities/Integration/integration.form.component.js.map +1 -1
  299. package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.js +3 -5
  300. package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.js.map +1 -1
  301. package/dist/lib/generated/Entities/Library/library.form.component.js +6 -8
  302. package/dist/lib/generated/Entities/Library/library.form.component.js.map +1 -1
  303. package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.js +3 -5
  304. package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.js.map +1 -1
  305. package/dist/lib/generated/Entities/List/list.form.component.js +6 -8
  306. package/dist/lib/generated/Entities/List/list.form.component.js.map +1 -1
  307. package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.js +6 -8
  308. package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.js.map +1 -1
  309. package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.js +3 -5
  310. package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.js.map +1 -1
  311. package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.js +5 -7
  312. package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.js.map +1 -1
  313. package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.js +5 -7
  314. package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.js.map +1 -1
  315. package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.js +5 -7
  316. package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.js.map +1 -1
  317. package/dist/lib/generated/Entities/Query/query.form.component.js +8 -10
  318. package/dist/lib/generated/Entities/Query/query.form.component.js.map +1 -1
  319. package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.js +6 -8
  320. package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.js.map +1 -1
  321. package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.js +3 -5
  322. package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.js.map +1 -1
  323. package/dist/lib/generated/Entities/QueryField/queryfield.form.component.js +3 -5
  324. package/dist/lib/generated/Entities/QueryField/queryfield.form.component.js.map +1 -1
  325. package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.js +3 -5
  326. package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.js.map +1 -1
  327. package/dist/lib/generated/Entities/Queue/queue.form.component.js +5 -7
  328. package/dist/lib/generated/Entities/Queue/queue.form.component.js.map +1 -1
  329. package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.js +3 -5
  330. package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.js.map +1 -1
  331. package/dist/lib/generated/Entities/QueueType/queuetype.form.component.js +5 -7
  332. package/dist/lib/generated/Entities/QueueType/queuetype.form.component.js.map +1 -1
  333. package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.js +5 -7
  334. package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.js.map +1 -1
  335. package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.js +3 -5
  336. package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.js.map +1 -1
  337. package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.js +5 -7
  338. package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.js.map +1 -1
  339. package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.js +5 -7
  340. package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.js.map +1 -1
  341. package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.js +3 -5
  342. package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.js.map +1 -1
  343. package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.js +5 -7
  344. package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.js.map +1 -1
  345. package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.js +3 -5
  346. package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.js.map +1 -1
  347. package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.js +6 -8
  348. package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.js.map +1 -1
  349. package/dist/lib/generated/Entities/Report/report.form.component.js +7 -9
  350. package/dist/lib/generated/Entities/Report/report.form.component.js.map +1 -1
  351. package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.js +6 -8
  352. package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.js.map +1 -1
  353. package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.js +3 -5
  354. package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.js.map +1 -1
  355. package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.js +3 -5
  356. package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.js.map +1 -1
  357. package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.js +3 -5
  358. package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.js.map +1 -1
  359. package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.js +3 -5
  360. package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.js.map +1 -1
  361. package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.js +3 -5
  362. package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.js.map +1 -1
  363. package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.js +8 -10
  364. package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.js.map +1 -1
  365. package/dist/lib/generated/Entities/Role/role.form.component.js +10 -12
  366. package/dist/lib/generated/Entities/Role/role.form.component.js.map +1 -1
  367. package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.js +5 -7
  368. package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.js.map +1 -1
  369. package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.js +5 -7
  370. package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.js.map +1 -1
  371. package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.js +3 -5
  372. package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.js.map +1 -1
  373. package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.js +3 -5
  374. package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.js.map +1 -1
  375. package/dist/lib/generated/Entities/Skill/skill.form.component.js +6 -8
  376. package/dist/lib/generated/Entities/Skill/skill.form.component.js.map +1 -1
  377. package/dist/lib/generated/Entities/Tag/tag.form.component.js +6 -8
  378. package/dist/lib/generated/Entities/Tag/tag.form.component.js.map +1 -1
  379. package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.js +3 -5
  380. package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.js.map +1 -1
  381. package/dist/lib/generated/Entities/Template/template.form.component.js +8 -10
  382. package/dist/lib/generated/Entities/Template/template.form.component.js.map +1 -1
  383. package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.js +6 -8
  384. package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.js.map +1 -1
  385. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.d.ts.map +1 -1
  386. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js +19 -10
  387. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js.map +1 -1
  388. package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.js +5 -7
  389. package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.js.map +1 -1
  390. package/dist/lib/generated/Entities/TemplateParam/sections/details.component.d.ts.map +1 -1
  391. package/dist/lib/generated/Entities/TemplateParam/sections/details.component.js +15 -4
  392. package/dist/lib/generated/Entities/TemplateParam/sections/details.component.js.map +1 -1
  393. package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.js +3 -5
  394. package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.js.map +1 -1
  395. package/dist/lib/generated/Entities/User/user.form.component.js +46 -48
  396. package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
  397. package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.js +5 -7
  398. package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.js.map +1 -1
  399. package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.js +3 -5
  400. package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.js.map +1 -1
  401. package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.js +3 -5
  402. package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.js.map +1 -1
  403. package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.js +3 -5
  404. package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.js.map +1 -1
  405. package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.js +3 -5
  406. package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.js.map +1 -1
  407. package/dist/lib/generated/Entities/UserRole/userrole.form.component.js +3 -5
  408. package/dist/lib/generated/Entities/UserRole/userrole.form.component.js.map +1 -1
  409. package/dist/lib/generated/Entities/UserView/userview.form.component.js +7 -9
  410. package/dist/lib/generated/Entities/UserView/userview.form.component.js.map +1 -1
  411. package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.js +6 -8
  412. package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.js.map +1 -1
  413. package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.js +5 -7
  414. package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.js.map +1 -1
  415. package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.js +3 -5
  416. package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.js.map +1 -1
  417. package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.js +6 -8
  418. package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.js.map +1 -1
  419. package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.js +5 -7
  420. package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.js.map +1 -1
  421. package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.js +3 -5
  422. package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.js.map +1 -1
  423. package/dist/lib/generated/Entities/Workflow/workflow.form.component.js +6 -8
  424. package/dist/lib/generated/Entities/Workflow/workflow.form.component.js.map +1 -1
  425. package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.js +5 -7
  426. package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.js.map +1 -1
  427. package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.js +3 -5
  428. package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.js.map +1 -1
  429. package/dist/lib/generated/Entities/Workspace/workspace.form.component.js +5 -7
  430. package/dist/lib/generated/Entities/Workspace/workspace.form.component.js.map +1 -1
  431. package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.js +3 -5
  432. package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.js.map +1 -1
  433. package/package.json +12 -12
@@ -0,0 +1,40 @@
1
+ import { OnInit, OnDestroy, ChangeDetectorRef, ElementRef } from '@angular/core';
2
+ import { Router, ActivatedRoute } from '@angular/router';
3
+ import { AIAgentRunEntity, AIAgentEntity } from '@memberjunction/core-entities';
4
+ import { BaseFormComponent } from '@memberjunction/ng-base-forms';
5
+ import { SharedService } from '@memberjunction/ng-shared';
6
+ import { TimelineItem } from './ai-agent-run-timeline.component';
7
+ import * as i0 from "@angular/core";
8
+ export declare class AIAgentRunFormComponent extends BaseFormComponent implements OnInit, OnDestroy {
9
+ protected router: Router;
10
+ record: AIAgentRunEntity;
11
+ private destroy$;
12
+ activeTab: string;
13
+ selectedTimelineItem: TimelineItem | null;
14
+ jsonPanelExpanded: boolean;
15
+ loading: boolean;
16
+ error: string | null;
17
+ selectedItemJsonString: string;
18
+ agent: AIAgentEntity | null;
19
+ constructor(elementRef: ElementRef, sharedService: SharedService, router: Router, route: ActivatedRoute, cdr: ChangeDetectorRef);
20
+ ngOnInit(): Promise<void>;
21
+ ngOnDestroy(): void;
22
+ private loadAgent;
23
+ calculateDuration(start: Date, end?: Date | null): string;
24
+ selectTimelineItem(item: TimelineItem): void;
25
+ closeJsonPanel(): void;
26
+ navigateToSubRun(runId: string): void;
27
+ navigateToParentRun(): void;
28
+ navigateToActionLog(logId: string): void;
29
+ navigateToEntityRecord(event: {
30
+ entityName: string;
31
+ recordId: string;
32
+ }): void;
33
+ refreshData(): void;
34
+ getSelectedItemJson(): string;
35
+ getStatusIcon(status: string): string;
36
+ copyToClipboard(text: string): Promise<void>;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<AIAgentRunFormComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<AIAgentRunFormComponent, "mj-ai-agent-run-form", never, {}, {}, never, never, false, never>;
39
+ }
40
+ //# sourceMappingURL=ai-agent-run.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-agent-run.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAa,iBAAiB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIzD,OAAO,EAAE,gBAAgB,EAAqE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;;AAEjE,qBAMa,uBAAwB,SAAQ,iBAAkB,YAAW,MAAM,EAAE,SAAS;IAkBvF,SAAS,CAAC,MAAM,EAAE,MAAM;IAjBnB,MAAM,EAAG,gBAAgB,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAuB;IAGvC,SAAS,SAAc;IACvB,oBAAoB,EAAE,YAAY,GAAG,IAAI,CAAQ;IACjD,iBAAiB,UAAS;IAC1B,OAAO,UAAS;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,sBAAsB,SAAQ;IAE9B,KAAK,EAAE,aAAa,GAAG,IAAI,CAAQ;gBAGjC,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACxB,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,iBAAiB;IAKlB,QAAQ;IAQd,WAAW;YAKG,SAAS;IAevB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM;IAUzD,kBAAkB,CAAC,IAAI,EAAE,YAAY;IAOrC,cAAc;IAMd,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAI9B,mBAAmB;IAMnB,mBAAmB,CAAC,KAAK,EAAE,MAAM;IAIjC,sBAAsB,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAItE,WAAW;IAIX,mBAAmB,IAAI,MAAM;IAK7B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAW/B,eAAe,CAAC,IAAI,EAAE,MAAM;yCAlHvB,uBAAuB;2CAAvB,uBAAuB;CA0HnC"}
@@ -0,0 +1,490 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component } from '@angular/core';
8
+ import { Subject } from 'rxjs';
9
+ import { CompositeKey, Metadata } from '@memberjunction/core';
10
+ import { BaseFormComponent } from '@memberjunction/ng-base-forms';
11
+ import { RegisterClass } from '@memberjunction/global';
12
+ import { SharedService } from '@memberjunction/ng-shared';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@memberjunction/ng-shared";
15
+ import * as i2 from "@angular/router";
16
+ import * as i3 from "@angular/common";
17
+ import * as i4 from "@angular/forms";
18
+ import * as i5 from "@progress/kendo-angular-layout";
19
+ import * as i6 from "@memberjunction/ng-code-editor";
20
+ import * as i7 from "./ai-agent-run-timeline.component";
21
+ function AIAgentRunFormComponent_span_11_Template(rf, ctx) { if (rf & 1) {
22
+ i0.ɵɵelementStart(0, "span", 30);
23
+ i0.ɵɵtext(1);
24
+ i0.ɵɵelementEnd();
25
+ } if (rf & 2) {
26
+ const ctx_r0 = i0.ɵɵnextContext();
27
+ i0.ɵɵadvance();
28
+ i0.ɵɵtextInterpolate(ctx_r0.agent.Name);
29
+ } }
30
+ function AIAgentRunFormComponent_span_14_Template(rf, ctx) { if (rf & 1) {
31
+ const _r2 = i0.ɵɵgetCurrentView();
32
+ i0.ɵɵelementStart(0, "span", 31);
33
+ i0.ɵɵelement(1, "i", 32);
34
+ i0.ɵɵelementStart(2, "a", 33);
35
+ i0.ɵɵlistener("click", function AIAgentRunFormComponent_span_14_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToParentRun()); });
36
+ i0.ɵɵtext(3, "Parent Run");
37
+ i0.ɵɵelementEnd()();
38
+ } }
39
+ function AIAgentRunFormComponent_div_29_Template(rf, ctx) { if (rf & 1) {
40
+ i0.ɵɵelementStart(0, "div", 19)(1, "span", 20);
41
+ i0.ɵɵtext(2, "Completed");
42
+ i0.ɵɵelementEnd();
43
+ i0.ɵɵelementStart(3, "span", 21);
44
+ i0.ɵɵtext(4);
45
+ i0.ɵɵpipe(5, "date");
46
+ i0.ɵɵelementEnd()();
47
+ } if (rf & 2) {
48
+ const ctx_r0 = i0.ɵɵnextContext();
49
+ i0.ɵɵadvance(4);
50
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(5, 1, ctx_r0.record.CompletedAt, "medium"));
51
+ } }
52
+ function AIAgentRunFormComponent_div_30_Template(rf, ctx) { if (rf & 1) {
53
+ i0.ɵɵelementStart(0, "div", 19)(1, "span", 20);
54
+ i0.ɵɵtext(2, "Duration");
55
+ i0.ɵɵelementEnd();
56
+ i0.ɵɵelementStart(3, "span", 21);
57
+ i0.ɵɵtext(4);
58
+ i0.ɵɵelementEnd()();
59
+ } if (rf & 2) {
60
+ const ctx_r0 = i0.ɵɵnextContext();
61
+ i0.ɵɵadvance(4);
62
+ i0.ɵɵtextInterpolate(ctx_r0.calculateDuration(ctx_r0.record.StartedAt, ctx_r0.record.CompletedAt));
63
+ } }
64
+ function AIAgentRunFormComponent_div_31_Template(rf, ctx) { if (rf & 1) {
65
+ i0.ɵɵelementStart(0, "div", 19)(1, "span", 20);
66
+ i0.ɵɵtext(2, "Result");
67
+ i0.ɵɵelementEnd();
68
+ i0.ɵɵelementStart(3, "span", 21);
69
+ i0.ɵɵtext(4);
70
+ i0.ɵɵelementEnd()();
71
+ } if (rf & 2) {
72
+ const ctx_r0 = i0.ɵɵnextContext();
73
+ i0.ɵɵadvance(3);
74
+ i0.ɵɵclassProp("success", ctx_r0.record.Success)("error", !ctx_r0.record.Success);
75
+ i0.ɵɵadvance();
76
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.Success ? "Success" : "Failed", " ");
77
+ } }
78
+ function AIAgentRunFormComponent_div_40_div_5_div_24_Template(rf, ctx) { if (rf & 1) {
79
+ const _r5 = i0.ɵɵgetCurrentView();
80
+ i0.ɵɵelementStart(0, "div", 54)(1, "button", 55);
81
+ i0.ɵɵlistener("click", function AIAgentRunFormComponent_div_40_div_5_div_24_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.navigateToActionLog(ctx_r0.selectedTimelineItem.data.ID)); });
82
+ i0.ɵɵelement(2, "i", 56);
83
+ i0.ɵɵtext(3, " View Action Execution Log ");
84
+ i0.ɵɵelementEnd()();
85
+ } }
86
+ function AIAgentRunFormComponent_div_40_div_5_Template(rf, ctx) { if (rf & 1) {
87
+ const _r4 = i0.ɵɵgetCurrentView();
88
+ i0.ɵɵelementStart(0, "div", 40)(1, "div", 41)(2, "h3");
89
+ i0.ɵɵelement(3, "i", 14);
90
+ i0.ɵɵtext(4);
91
+ i0.ɵɵelementEnd();
92
+ i0.ɵɵelementStart(5, "button", 42);
93
+ i0.ɵɵlistener("click", function AIAgentRunFormComponent_div_40_div_5_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.closeJsonPanel()); });
94
+ i0.ɵɵelement(6, "i", 43);
95
+ i0.ɵɵelementEnd()();
96
+ i0.ɵɵelementStart(7, "div", 44)(8, "div", 45)(9, "div", 46)(10, "label");
97
+ i0.ɵɵtext(11, "Type");
98
+ i0.ɵɵelementEnd();
99
+ i0.ɵɵelementStart(12, "span");
100
+ i0.ɵɵtext(13);
101
+ i0.ɵɵelementEnd()();
102
+ i0.ɵɵelementStart(14, "div", 46)(15, "label");
103
+ i0.ɵɵtext(16, "Status");
104
+ i0.ɵɵelementEnd();
105
+ i0.ɵɵelementStart(17, "span", 47);
106
+ i0.ɵɵtext(18);
107
+ i0.ɵɵelementEnd()();
108
+ i0.ɵɵelementStart(19, "div", 46)(20, "label");
109
+ i0.ɵɵtext(21, "Duration");
110
+ i0.ɵɵelementEnd();
111
+ i0.ɵɵelementStart(22, "span");
112
+ i0.ɵɵtext(23);
113
+ i0.ɵɵelementEnd()()();
114
+ i0.ɵɵtemplate(24, AIAgentRunFormComponent_div_40_div_5_div_24_Template, 4, 0, "div", 48);
115
+ i0.ɵɵelementStart(25, "div", 49)(26, "div", 50)(27, "button", 51);
116
+ i0.ɵɵlistener("click", function AIAgentRunFormComponent_div_40_div_5_Template_button_click_27_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.copyToClipboard(ctx_r0.getSelectedItemJson())); });
117
+ i0.ɵɵelement(28, "i", 52);
118
+ i0.ɵɵelementEnd()();
119
+ i0.ɵɵelementStart(29, "mj-code-editor", 53);
120
+ i0.ɵɵtwoWayListener("ngModelChange", function AIAgentRunFormComponent_div_40_div_5_Template_mj_code_editor_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.selectedItemJsonString, $event) || (ctx_r0.selectedItemJsonString = $event); return i0.ɵɵresetView($event); });
121
+ i0.ɵɵelementEnd()()()();
122
+ } if (rf & 2) {
123
+ const ctx_r0 = i0.ɵɵnextContext(2);
124
+ i0.ɵɵadvance(3);
125
+ i0.ɵɵproperty("ngClass", ctx_r0.selectedTimelineItem.icon);
126
+ i0.ɵɵadvance();
127
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.selectedTimelineItem.title, " ");
128
+ i0.ɵɵadvance(9);
129
+ i0.ɵɵtextInterpolate(ctx_r0.selectedTimelineItem.type);
130
+ i0.ɵɵadvance(4);
131
+ i0.ɵɵattribute("data-status", ctx_r0.selectedTimelineItem.status);
132
+ i0.ɵɵadvance();
133
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.selectedTimelineItem.status, " ");
134
+ i0.ɵɵadvance(5);
135
+ i0.ɵɵtextInterpolate(ctx_r0.selectedTimelineItem.duration || "N/A");
136
+ i0.ɵɵadvance();
137
+ i0.ɵɵproperty("ngIf", ctx_r0.selectedTimelineItem.type === "action" && (ctx_r0.selectedTimelineItem.data == null ? null : ctx_r0.selectedTimelineItem.data.ID));
138
+ i0.ɵɵadvance(5);
139
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r0.selectedItemJsonString);
140
+ i0.ɵɵproperty("language", "json")("readonly", true);
141
+ } }
142
+ function AIAgentRunFormComponent_div_40_Template(rf, ctx) { if (rf & 1) {
143
+ const _r3 = i0.ɵɵgetCurrentView();
144
+ i0.ɵɵelementStart(0, "div", 34)(1, "kendo-splitter", 35)(2, "kendo-splitter-pane", 36)(3, "mj-ai-agent-run-timeline", 37);
145
+ i0.ɵɵlistener("itemSelected", function AIAgentRunFormComponent_div_40_Template_mj_ai_agent_run_timeline_itemSelected_3_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.selectTimelineItem($event)); })("navigateToEntity", function AIAgentRunFormComponent_div_40_Template_mj_ai_agent_run_timeline_navigateToEntity_3_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToEntityRecord($event)); });
146
+ i0.ɵɵelementEnd()();
147
+ i0.ɵɵelementStart(4, "kendo-splitter-pane", 38);
148
+ i0.ɵɵtemplate(5, AIAgentRunFormComponent_div_40_div_5_Template, 30, 10, "div", 39);
149
+ i0.ɵɵelementEnd()()();
150
+ } if (rf & 2) {
151
+ const ctx_r0 = i0.ɵɵnextContext();
152
+ i0.ɵɵadvance(2);
153
+ i0.ɵɵproperty("min", "400px");
154
+ i0.ɵɵadvance();
155
+ i0.ɵɵproperty("aiAgentRunId", ctx_r0.record.ID)("autoRefresh", ctx_r0.record.Status === "Running")("refreshInterval", 3000);
156
+ i0.ɵɵadvance();
157
+ i0.ɵɵproperty("size", "45%")("min", "300px")("collapsed", !ctx_r0.selectedTimelineItem);
158
+ i0.ɵɵadvance();
159
+ i0.ɵɵproperty("ngIf", ctx_r0.selectedTimelineItem);
160
+ } }
161
+ function AIAgentRunFormComponent_div_41_ng_template_3_Template(rf, ctx) { if (rf & 1) {
162
+ i0.ɵɵelementStart(0, "div", 63)(1, "div", 64)(2, "label");
163
+ i0.ɵɵtext(3, "Run ID");
164
+ i0.ɵɵelementEnd();
165
+ i0.ɵɵelementStart(4, "span");
166
+ i0.ɵɵtext(5);
167
+ i0.ɵɵelementEnd()();
168
+ i0.ɵɵelementStart(6, "div", 64)(7, "label");
169
+ i0.ɵɵtext(8, "Agent ID");
170
+ i0.ɵɵelementEnd();
171
+ i0.ɵɵelementStart(9, "span");
172
+ i0.ɵɵtext(10);
173
+ i0.ɵɵelementEnd()();
174
+ i0.ɵɵelementStart(11, "div", 64)(12, "label");
175
+ i0.ɵɵtext(13, "Agent Name");
176
+ i0.ɵɵelementEnd();
177
+ i0.ɵɵelementStart(14, "span");
178
+ i0.ɵɵtext(15);
179
+ i0.ɵɵelementEnd()();
180
+ i0.ɵɵelementStart(16, "div", 64)(17, "label");
181
+ i0.ɵɵtext(18, "Parent Run ID");
182
+ i0.ɵɵelementEnd();
183
+ i0.ɵɵelementStart(19, "span");
184
+ i0.ɵɵtext(20);
185
+ i0.ɵɵelementEnd()();
186
+ i0.ɵɵelementStart(21, "div", 64)(22, "label");
187
+ i0.ɵɵtext(23, "Conversation ID");
188
+ i0.ɵɵelementEnd();
189
+ i0.ɵɵelementStart(24, "span");
190
+ i0.ɵɵtext(25);
191
+ i0.ɵɵelementEnd()();
192
+ i0.ɵɵelementStart(26, "div", 64)(27, "label");
193
+ i0.ɵɵtext(28, "User");
194
+ i0.ɵɵelementEnd();
195
+ i0.ɵɵelementStart(29, "span");
196
+ i0.ɵɵtext(30);
197
+ i0.ɵɵelementEnd()()();
198
+ } if (rf & 2) {
199
+ const ctx_r0 = i0.ɵɵnextContext(2);
200
+ i0.ɵɵadvance(5);
201
+ i0.ɵɵtextInterpolate(ctx_r0.record.ID);
202
+ i0.ɵɵadvance(5);
203
+ i0.ɵɵtextInterpolate(ctx_r0.record.AgentID);
204
+ i0.ɵɵadvance(5);
205
+ i0.ɵɵtextInterpolate((ctx_r0.agent == null ? null : ctx_r0.agent.Name) || "N/A");
206
+ i0.ɵɵadvance(5);
207
+ i0.ɵɵtextInterpolate(ctx_r0.record.ParentRunID || "None (Root)");
208
+ i0.ɵɵadvance(5);
209
+ i0.ɵɵtextInterpolate(ctx_r0.record.ConversationID || "N/A");
210
+ i0.ɵɵadvance(5);
211
+ i0.ɵɵtextInterpolate(ctx_r0.record.User || "N/A");
212
+ } }
213
+ function AIAgentRunFormComponent_div_41_ng_template_5_div_11_Template(rf, ctx) { if (rf & 1) {
214
+ i0.ɵɵelementStart(0, "div", 66)(1, "label");
215
+ i0.ɵɵtext(2, "Error Message");
216
+ i0.ɵɵelementEnd();
217
+ i0.ɵɵelementStart(3, "div", 67);
218
+ i0.ɵɵtext(4);
219
+ i0.ɵɵelementEnd()();
220
+ } if (rf & 2) {
221
+ const ctx_r0 = i0.ɵɵnextContext(3);
222
+ i0.ɵɵadvance(4);
223
+ i0.ɵɵtextInterpolate(ctx_r0.record.ErrorMessage);
224
+ } }
225
+ function AIAgentRunFormComponent_div_41_ng_template_5_Template(rf, ctx) { if (rf & 1) {
226
+ i0.ɵɵelementStart(0, "div", 63)(1, "div", 64)(2, "label");
227
+ i0.ɵɵtext(3, "Status");
228
+ i0.ɵɵelementEnd();
229
+ i0.ɵɵelementStart(4, "span", 13);
230
+ i0.ɵɵtext(5);
231
+ i0.ɵɵelementEnd()();
232
+ i0.ɵɵelementStart(6, "div", 64)(7, "label");
233
+ i0.ɵɵtext(8, "Success");
234
+ i0.ɵɵelementEnd();
235
+ i0.ɵɵelementStart(9, "span");
236
+ i0.ɵɵtext(10);
237
+ i0.ɵɵelementEnd()();
238
+ i0.ɵɵtemplate(11, AIAgentRunFormComponent_div_41_ng_template_5_div_11_Template, 5, 1, "div", 65);
239
+ i0.ɵɵelementEnd();
240
+ } if (rf & 2) {
241
+ const ctx_r0 = i0.ɵɵnextContext(2);
242
+ i0.ɵɵadvance(4);
243
+ i0.ɵɵattribute("data-status", ctx_r0.record.Status);
244
+ i0.ɵɵadvance();
245
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.Status, " ");
246
+ i0.ɵɵadvance(4);
247
+ i0.ɵɵclassProp("success", ctx_r0.record.Success)("error", ctx_r0.record.Success === false);
248
+ i0.ɵɵadvance();
249
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.Success === null ? "In Progress" : ctx_r0.record.Success ? "Yes" : "No", " ");
250
+ i0.ɵɵadvance();
251
+ i0.ɵɵproperty("ngIf", ctx_r0.record.ErrorMessage);
252
+ } }
253
+ function AIAgentRunFormComponent_div_41_kendo_panelbar_item_6_ng_template_1_Template(rf, ctx) { if (rf & 1) {
254
+ const _r6 = i0.ɵɵgetCurrentView();
255
+ i0.ɵɵelementStart(0, "div", 69)(1, "mj-code-editor", 70);
256
+ i0.ɵɵtwoWayListener("ngModelChange", function AIAgentRunFormComponent_div_41_kendo_panelbar_item_6_ng_template_1_Template_mj_code_editor_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r0.record.Result, $event) || (ctx_r0.record.Result = $event); return i0.ɵɵresetView($event); });
257
+ i0.ɵɵelementEnd()();
258
+ } if (rf & 2) {
259
+ const ctx_r0 = i0.ɵɵnextContext(3);
260
+ i0.ɵɵadvance();
261
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r0.record.Result);
262
+ i0.ɵɵproperty("language", "json")("readonly", true);
263
+ } }
264
+ function AIAgentRunFormComponent_div_41_kendo_panelbar_item_6_Template(rf, ctx) { if (rf & 1) {
265
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 68);
266
+ i0.ɵɵtemplate(1, AIAgentRunFormComponent_div_41_kendo_panelbar_item_6_ng_template_1_Template, 2, 3, "ng-template", 59);
267
+ i0.ɵɵelementEnd();
268
+ } }
269
+ function AIAgentRunFormComponent_div_41_kendo_panelbar_item_7_ng_template_1_Template(rf, ctx) { if (rf & 1) {
270
+ const _r7 = i0.ɵɵgetCurrentView();
271
+ i0.ɵɵelementStart(0, "div", 72)(1, "mj-code-editor", 73);
272
+ i0.ɵɵtwoWayListener("ngModelChange", function AIAgentRunFormComponent_div_41_kendo_panelbar_item_7_ng_template_1_Template_mj_code_editor_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r0.record.AgentState, $event) || (ctx_r0.record.AgentState = $event); return i0.ɵɵresetView($event); });
273
+ i0.ɵɵelementEnd()();
274
+ } if (rf & 2) {
275
+ const ctx_r0 = i0.ɵɵnextContext(3);
276
+ i0.ɵɵadvance();
277
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r0.record.AgentState);
278
+ i0.ɵɵproperty("language", "json")("readonly", true);
279
+ } }
280
+ function AIAgentRunFormComponent_div_41_kendo_panelbar_item_7_Template(rf, ctx) { if (rf & 1) {
281
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 71);
282
+ i0.ɵɵtemplate(1, AIAgentRunFormComponent_div_41_kendo_panelbar_item_7_ng_template_1_Template, 2, 3, "ng-template", 59);
283
+ i0.ɵɵelementEnd();
284
+ } }
285
+ function AIAgentRunFormComponent_div_41_Template(rf, ctx) { if (rf & 1) {
286
+ i0.ɵɵelementStart(0, "div", 57)(1, "kendo-panelbar")(2, "kendo-panelbar-item", 58);
287
+ i0.ɵɵtemplate(3, AIAgentRunFormComponent_div_41_ng_template_3_Template, 31, 6, "ng-template", 59);
288
+ i0.ɵɵelementEnd();
289
+ i0.ɵɵelementStart(4, "kendo-panelbar-item", 60);
290
+ i0.ɵɵtemplate(5, AIAgentRunFormComponent_div_41_ng_template_5_Template, 12, 8, "ng-template", 59);
291
+ i0.ɵɵelementEnd();
292
+ i0.ɵɵtemplate(6, AIAgentRunFormComponent_div_41_kendo_panelbar_item_6_Template, 2, 0, "kendo-panelbar-item", 61)(7, AIAgentRunFormComponent_div_41_kendo_panelbar_item_7_Template, 2, 0, "kendo-panelbar-item", 62);
293
+ i0.ɵɵelementEnd()();
294
+ } if (rf & 2) {
295
+ const ctx_r0 = i0.ɵɵnextContext();
296
+ i0.ɵɵadvance(2);
297
+ i0.ɵɵproperty("expanded", true);
298
+ i0.ɵɵadvance(4);
299
+ i0.ɵɵproperty("ngIf", ctx_r0.record.Result);
300
+ i0.ɵɵadvance();
301
+ i0.ɵɵproperty("ngIf", ctx_r0.record.AgentState);
302
+ } }
303
+ let AIAgentRunFormComponent = class AIAgentRunFormComponent extends BaseFormComponent {
304
+ constructor(elementRef, sharedService, router, route, cdr) {
305
+ super(elementRef, sharedService, router, route, cdr);
306
+ this.router = router;
307
+ this.destroy$ = new Subject();
308
+ // UI state
309
+ this.activeTab = 'timeline';
310
+ this.selectedTimelineItem = null;
311
+ this.jsonPanelExpanded = false;
312
+ this.loading = false;
313
+ this.error = null;
314
+ this.selectedItemJsonString = '{}';
315
+ this.agent = null;
316
+ }
317
+ async ngOnInit() {
318
+ await super.ngOnInit();
319
+ if (this.record) {
320
+ await this.loadAgent();
321
+ }
322
+ }
323
+ ngOnDestroy() {
324
+ this.destroy$.next();
325
+ this.destroy$.complete();
326
+ }
327
+ async loadAgent() {
328
+ if (!this.record?.AgentID)
329
+ return;
330
+ try {
331
+ const md = new Metadata();
332
+ const agent = await md.GetEntityObject('AI Agents');
333
+ if (agent && await agent.Load(this.record.AgentID)) {
334
+ this.agent = agent;
335
+ }
336
+ }
337
+ catch (error) {
338
+ console.error('Error loading agent:', error);
339
+ }
340
+ }
341
+ calculateDuration(start, end) {
342
+ if (!end)
343
+ return 'Running...';
344
+ const ms = end.getTime() - start.getTime();
345
+ if (ms < 1000)
346
+ return `${ms}ms`;
347
+ if (ms < 60000)
348
+ return `${(ms / 1000).toFixed(1)}s`;
349
+ if (ms < 3600000)
350
+ return `${Math.floor(ms / 60000)}m ${Math.floor((ms % 60000) / 1000)}s`;
351
+ return `${Math.floor(ms / 3600000)}h ${Math.floor((ms % 3600000) / 60000)}m`;
352
+ }
353
+ selectTimelineItem(item) {
354
+ this.selectedTimelineItem = item;
355
+ this.selectedItemJsonString = this.getSelectedItemJson();
356
+ this.jsonPanelExpanded = true;
357
+ this.cdr.detectChanges();
358
+ }
359
+ closeJsonPanel() {
360
+ this.selectedTimelineItem = null;
361
+ this.selectedItemJsonString = '{}';
362
+ this.cdr.detectChanges();
363
+ }
364
+ navigateToSubRun(runId) {
365
+ SharedService.Instance.OpenEntityRecord("MJ: AI Agent Runs", CompositeKey.FromID(runId));
366
+ }
367
+ navigateToParentRun() {
368
+ if (this.record.ParentRunID) {
369
+ SharedService.Instance.OpenEntityRecord("MJ: AI Agent Runs", CompositeKey.FromID(this.record.ParentRunID));
370
+ }
371
+ }
372
+ navigateToActionLog(logId) {
373
+ SharedService.Instance.OpenEntityRecord("Action Execution Logs", CompositeKey.FromID(logId));
374
+ }
375
+ navigateToEntityRecord(event) {
376
+ SharedService.Instance.OpenEntityRecord(event.entityName, CompositeKey.FromID(event.recordId));
377
+ }
378
+ refreshData() {
379
+ // Timeline component will handle its own refresh
380
+ }
381
+ getSelectedItemJson() {
382
+ if (!this.selectedTimelineItem)
383
+ return '{}';
384
+ return JSON.stringify(this.selectedTimelineItem.data.GetAll(), null, 2);
385
+ }
386
+ getStatusIcon(status) {
387
+ const iconMap = {
388
+ 'Running': 'fa-circle-notch fa-spin',
389
+ 'Completed': 'fa-check-circle',
390
+ 'Failed': 'fa-times-circle',
391
+ 'Cancelled': 'fa-ban',
392
+ 'Paused': 'fa-pause-circle'
393
+ };
394
+ return iconMap[status] || 'fa-question-circle';
395
+ }
396
+ async copyToClipboard(text) {
397
+ try {
398
+ await navigator.clipboard.writeText(text);
399
+ // Could show a toast notification here
400
+ }
401
+ catch (err) {
402
+ console.error('Failed to copy to clipboard:', err);
403
+ }
404
+ }
405
+ static { this.ɵfac = function AIAgentRunFormComponent_Factory(t) { return new (t || AIAgentRunFormComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
406
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentRunFormComponent, selectors: [["mj-ai-agent-run-form"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 42, vars: 19, consts: [[1, "record-form-container", "ai-agent-run-form"], [1, "record-form"], [1, "header"], [1, "header-content"], [1, "header-left"], [1, "icon-wrapper"], [1, "fas", "fa-robot"], [1, "header-info"], [1, "meta-info"], ["class", "agent-name", 4, "ngIf"], [1, "run-id"], ["class", "parent-run", 4, "ngIf"], [1, "header-right"], [1, "status-badge"], [1, "fas", 3, "ngClass"], [1, "header-actions"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sync-alt"], [1, "header-stats"], [1, "stat"], [1, "label"], [1, "value"], ["class", "stat", 4, "ngIf"], [1, "tabs"], [1, "tab", 3, "click"], [1, "fas", "fa-stream"], [1, "fas", "fa-info-circle"], [1, "content-area"], ["class", "tab-content", "style", "height: 100%;", 4, "ngIf"], ["class", "tab-content", 4, "ngIf"], [1, "agent-name"], [1, "parent-run"], [1, "fas", "fa-level-up-alt"], [1, "parent-link", 3, "click"], [1, "tab-content", 2, "height", "100%"], ["orientation", "horizontal", 2, "height", "100%"], [3, "min"], [3, "itemSelected", "navigateToEntity", "aiAgentRunId", "autoRefresh", "refreshInterval"], [3, "size", "min", "collapsed"], ["class", "json-detail-pane", 4, "ngIf"], [1, "json-detail-pane"], [1, "json-pane-header"], ["title", "Close", 1, "btn-icon", 3, "click"], [1, "fas", "fa-times"], [1, "json-pane-content"], [1, "json-meta"], [1, "meta-item"], [1, "status-badge", "small"], ["class", "action-link", 4, "ngIf"], [1, "json-viewer"], [1, "json-toolbar"], ["title", "Copy JSON", 1, "btn-icon", 3, "click"], [1, "fas", "fa-copy"], [2, "height", "calc(100% - 160px)", "width", "100%", 3, "ngModelChange", "ngModel", "language", "readonly"], [1, "action-link"], [1, "btn-link", 3, "click"], [1, "fas", "fa-external-link-alt"], [1, "tab-content"], ["title", "General Information", 3, "expanded"], ["kendoPanelBarContent", ""], ["title", "Execution Status"], ["title", "Result", 4, "ngIf"], ["title", "Agent State", 4, "ngIf"], [1, "details-grid"], [1, "detail-item"], ["class", "detail-item full-width", 4, "ngIf"], [1, "detail-item", "full-width"], [1, "error-message"], ["title", "Result"], [1, "result-viewer"], [2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "language", "readonly"], ["title", "Agent State"], [1, "state-viewer"], [2, "height", "400px", "width", "100%", 3, "ngModelChange", "ngModel", "language", "readonly"]], template: function AIAgentRunFormComponent_Template(rf, ctx) { if (rf & 1) {
407
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4)(5, "div", 5);
408
+ i0.ɵɵelement(6, "i", 6);
409
+ i0.ɵɵelementEnd();
410
+ i0.ɵɵelementStart(7, "div", 7)(8, "h2");
411
+ i0.ɵɵtext(9, "AI Agent Run");
412
+ i0.ɵɵelementEnd();
413
+ i0.ɵɵelementStart(10, "div", 8);
414
+ i0.ɵɵtemplate(11, AIAgentRunFormComponent_span_11_Template, 2, 1, "span", 9);
415
+ i0.ɵɵelementStart(12, "span", 10);
416
+ i0.ɵɵtext(13);
417
+ i0.ɵɵelementEnd();
418
+ i0.ɵɵtemplate(14, AIAgentRunFormComponent_span_14_Template, 4, 0, "span", 11);
419
+ i0.ɵɵelementEnd()()();
420
+ i0.ɵɵelementStart(15, "div", 12)(16, "div", 13);
421
+ i0.ɵɵelement(17, "i", 14);
422
+ i0.ɵɵtext(18);
423
+ i0.ɵɵelementEnd();
424
+ i0.ɵɵelementStart(19, "div", 15)(20, "button", 16);
425
+ i0.ɵɵlistener("click", function AIAgentRunFormComponent_Template_button_click_20_listener() { return ctx.refreshData(); });
426
+ i0.ɵɵelement(21, "i", 17);
427
+ i0.ɵɵelementEnd()()()();
428
+ i0.ɵɵelementStart(22, "div", 18)(23, "div", 19)(24, "span", 20);
429
+ i0.ɵɵtext(25, "Started");
430
+ i0.ɵɵelementEnd();
431
+ i0.ɵɵelementStart(26, "span", 21);
432
+ i0.ɵɵtext(27);
433
+ i0.ɵɵpipe(28, "date");
434
+ i0.ɵɵelementEnd()();
435
+ i0.ɵɵtemplate(29, AIAgentRunFormComponent_div_29_Template, 6, 4, "div", 22)(30, AIAgentRunFormComponent_div_30_Template, 5, 1, "div", 22)(31, AIAgentRunFormComponent_div_31_Template, 5, 5, "div", 22);
436
+ i0.ɵɵelementEnd()();
437
+ i0.ɵɵelementStart(32, "div", 23)(33, "button", 24);
438
+ i0.ɵɵlistener("click", function AIAgentRunFormComponent_Template_button_click_33_listener() { return ctx.activeTab = "timeline"; });
439
+ i0.ɵɵelement(34, "i", 25);
440
+ i0.ɵɵtext(35, " Timeline ");
441
+ i0.ɵɵelementEnd();
442
+ i0.ɵɵelementStart(36, "button", 24);
443
+ i0.ɵɵlistener("click", function AIAgentRunFormComponent_Template_button_click_36_listener() { return ctx.activeTab = "details"; });
444
+ i0.ɵɵelement(37, "i", 26);
445
+ i0.ɵɵtext(38, " Details ");
446
+ i0.ɵɵelementEnd()();
447
+ i0.ɵɵelementStart(39, "div", 27);
448
+ i0.ɵɵtemplate(40, AIAgentRunFormComponent_div_40_Template, 6, 8, "div", 28)(41, AIAgentRunFormComponent_div_41_Template, 8, 3, "div", 29);
449
+ i0.ɵɵelementEnd()()();
450
+ } if (rf & 2) {
451
+ i0.ɵɵadvance(11);
452
+ i0.ɵɵproperty("ngIf", ctx.agent);
453
+ i0.ɵɵadvance(2);
454
+ i0.ɵɵtextInterpolate(ctx.record.ID);
455
+ i0.ɵɵadvance();
456
+ i0.ɵɵproperty("ngIf", ctx.record.ParentRunID);
457
+ i0.ɵɵadvance(2);
458
+ i0.ɵɵattribute("data-status", ctx.record.Status);
459
+ i0.ɵɵadvance();
460
+ i0.ɵɵproperty("ngClass", ctx.getStatusIcon(ctx.record.Status || ""));
461
+ i0.ɵɵadvance();
462
+ i0.ɵɵtextInterpolate1(" ", ctx.record.Status, " ");
463
+ i0.ɵɵadvance(9);
464
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(28, 16, ctx.record.StartedAt, "medium"));
465
+ i0.ɵɵadvance(2);
466
+ i0.ɵɵproperty("ngIf", ctx.record.CompletedAt);
467
+ i0.ɵɵadvance();
468
+ i0.ɵɵproperty("ngIf", ctx.record.CompletedAt);
469
+ i0.ɵɵadvance();
470
+ i0.ɵɵproperty("ngIf", ctx.record.Success !== null);
471
+ i0.ɵɵadvance(2);
472
+ i0.ɵɵclassProp("active", ctx.activeTab === "timeline");
473
+ i0.ɵɵadvance(3);
474
+ i0.ɵɵclassProp("active", ctx.activeTab === "details");
475
+ i0.ɵɵadvance(4);
476
+ i0.ɵɵproperty("ngIf", ctx.activeTab === "timeline");
477
+ i0.ɵɵadvance();
478
+ i0.ɵɵproperty("ngIf", ctx.activeTab === "details");
479
+ } }, dependencies: [i3.NgClass, i3.NgIf, i4.NgControlStatus, i4.NgModel, i5.PanelBarComponent, i5.PanelBarItemComponent, i5.PanelBarContentDirective, i5.SplitterComponent, i5.SplitterPaneComponent, i6.CodeEditorComponent, i7.AIAgentRunTimelineComponent, i3.DatePipe], styles: [".ai-agent-run-form[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n}\n\n\n\n.header[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #2196f3, #1976d2);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n}\n\n.header-info[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: #6c757d;\n}\n\n.parent-run[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link[_ngcontent-%COMP%] {\n color: #ff6358;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link[_ngcontent-%COMP%]:hover {\n color: #ff4444;\n text-decoration: underline;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #495057;\n}\n\n.run-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n.header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\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\"][_ngcontent-%COMP%] {\n background: #e3f2fd;\n color: #1976d2;\n}\n\n.status-badge[data-status=\"Completed\"][_ngcontent-%COMP%] {\n background: #d4edda;\n color: #155724;\n}\n\n.status-badge[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.status-badge[data-status=\"Cancelled\"][_ngcontent-%COMP%] {\n background: #fff3cd;\n color: #856404;\n}\n\n.status-badge[data-status=\"Paused\"][_ngcontent-%COMP%] {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.status-badge.small[_ngcontent-%COMP%] {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 1px solid #dee2e6;\n background: white;\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: #6c757d;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid #e9ecef;\n}\n\n.stat[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: #495057;\n}\n\n.stat[_ngcontent-%COMP%] .value.success[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.stat[_ngcontent-%COMP%] .value.error[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n border-bottom: 1px solid #dee2e6;\n background: #f8f9fa;\n}\n\n.tab[_ngcontent-%COMP%] {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: #6c757d;\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[_ngcontent-%COMP%]:hover {\n color: #495057;\n background: rgba(0,0,0,0.02);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: #2196f3;\n border-bottom-color: #2196f3;\n background: white;\n}\n\n\n\n.content-area[_ngcontent-%COMP%] {\n position: relative;\n height: calc(100vh - 280px);\n overflow: auto;\n background: white;\n}\n\n.tab-content[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n}\n\n\n\n.tab-content[ng-reflect-ng-if=\"true\"][_ngcontent-%COMP%] > kendo-panelbar[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n}\n\n\n\n.json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f8f9fa;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e0e6ed;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6b7280;\n font-size: 14px;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n color: #6b7280;\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: #2196f3;\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[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%]:hover {\n background: rgba(33, 150, 243, 0.08);\n color: #1976d2;\n}\n\n.json-viewer[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e6ed;\n overflow: auto;\n}\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n}\n\n\n\n.timeline-container[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container[_ngcontent-%COMP%] > .timeline[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: #e9ecef;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected[_ngcontent-%COMP%] {\n transform: translateX(8px);\n}\n\n.timeline-item.selected[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: #f0f7ff;\n border-color: #2196f3;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\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: white;\n border: 3px solid #e9ecef;\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"][_ngcontent-%COMP%] {\n border-color: #28a745;\n color: #28a745;\n}\n\n.timeline-marker[data-color=\"error\"][_ngcontent-%COMP%] {\n border-color: #dc3545;\n color: #dc3545;\n}\n\n.timeline-marker[data-color=\"info\"][_ngcontent-%COMP%] {\n border-color: #17a2b8;\n color: #17a2b8;\n}\n\n.timeline-marker[data-color=\"warning\"][_ngcontent-%COMP%] {\n border-color: #ffc107;\n color: #ffc107;\n}\n\n.timeline-marker[data-color=\"secondary\"][_ngcontent-%COMP%] {\n border-color: #6c757d;\n color: #6c757d;\n}\n\n.timeline-marker.small[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e9ecef;\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n transition: all 0.2s ease;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.timeline-header[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.timeline-time[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n font-family: monospace;\n}\n\n.timeline-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #6c757d;\n margin-bottom: 8px;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: #6c757d;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] .status[data-status=\"Completed\"][_ngcontent-%COMP%] {\n background: #d4edda;\n color: #155724;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: #cce5ff;\n color: #004085;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Paused\"][_ngcontent-%COMP%] {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.duration[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: #2196f3;\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[_ngcontent-%COMP%]:hover {\n background: rgba(33, 150, 243, 0.1);\n}\n\n.btn-expand[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: 1px solid #dee2e6;\n background: white;\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: #6c757d;\n font-size: 12px;\n}\n\n.btn-expand[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n\n\n.timeline-children[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: #e9ecef;\n}\n\n.child-item[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.child-item[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: #f8f9fa;\n border-color: #e0e6ed;\n}\n\n\n\n.sub-run-timeline[_ngcontent-%COMP%] {\n background: rgba(33, 150, 243, 0.02);\n border-left: 2px solid rgba(33, 150, 243, 0.2);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item[_ngcontent-%COMP%] .timeline-marker[_ngcontent-%COMP%] {\n border-width: 2px;\n}\n\n.sub-run-item[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n transition: all 0.2s ease;\n}\n\n\n\n.json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n padding: 16px 20px;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #7c8798;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link[_ngcontent-%COMP%] {\n padding: 12px 20px;\n border-bottom: 1px solid #e0e6ed;\n flex-shrink: 0;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: #2196f3;\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: #f0f7ff;\n border: 1px solid #d0e5ff;\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%]:hover {\n background: #e1f0ff;\n border-color: #b0d5ff;\n text-decoration: none;\n}\n\n.json-viewer[_ngcontent-%COMP%] {\n flex: 1;\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n overflow: auto;\n}\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.detail-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #495057;\n}\n\n.error-message[_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #721c24;\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer[_ngcontent-%COMP%], \n.state-viewer[_ngcontent-%COMP%] {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%], \n.state-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n\n\n@media (max-width: 768px) {\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n \n .json-detail-pane[_ngcontent-%COMP%] {\n width: 100%;\n }\n \n .timeline[_ngcontent-%COMP%] {\n padding-left: 30px;\n }\n \n .timeline-marker[_ngcontent-%COMP%] {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content[_ngcontent-%COMP%] {\n margin-left: 10px;\n }\n}"] }); }
480
+ };
481
+ AIAgentRunFormComponent = __decorate([
482
+ RegisterClass(BaseFormComponent, 'MJ: AI Agent Runs')
483
+ ], AIAgentRunFormComponent);
484
+ export { AIAgentRunFormComponent };
485
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentRunFormComponent, [{
486
+ type: Component,
487
+ args: [{ 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 <i class=\"fas fa-robot\"></i>\n </div>\n <div class=\"header-info\">\n <h2>AI Agent Run</h2>\n <div class=\"meta-info\">\n <span class=\"agent-name\" *ngIf=\"agent\">{{ agent.Name }}</span>\n <span class=\"run-id\">{{ record.ID }}</span>\n <span class=\"parent-run\" *ngIf=\"record.ParentRunID\">\n <i class=\"fas fa-level-up-alt\"></i>\n <a (click)=\"navigateToParentRun()\" class=\"parent-link\">Parent Run</a>\n </span>\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 <div class=\"stat\" *ngIf=\"record.CompletedAt\">\n <span class=\"label\">Completed</span>\n <span class=\"value\">{{ record.CompletedAt | date:'medium' }}</span>\n </div>\n <div class=\"stat\" *ngIf=\"record.CompletedAt\">\n <span class=\"label\">Duration</span>\n <span class=\"value\">{{ calculateDuration(record.StartedAt, record.CompletedAt) }}</span>\n </div>\n <div class=\"stat\" *ngIf=\"record.Success !== null\">\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 </div>\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs\">\n <button class=\"tab\" [class.active]=\"activeTab === 'timeline'\" (click)=\"activeTab = 'timeline'\">\n <i class=\"fas fa-stream\"></i> Timeline\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'details'\" (click)=\"activeTab = '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 <div class=\"tab-content\" *ngIf=\"activeTab === 'timeline'\" style=\"height: 100%;\">\n <kendo-splitter style=\"height: 100%;\" orientation=\"horizontal\">\n <!-- Timeline Pane -->\n <kendo-splitter-pane [min]=\"'400px'\">\n <mj-ai-agent-run-timeline\n [aiAgentRunId]=\"record.ID\"\n [autoRefresh]=\"record.Status === 'Running'\"\n [refreshInterval]=\"3000\"\n (itemSelected)=\"selectTimelineItem($event)\"\n (navigateToEntity)=\"navigateToEntityRecord($event)\">\n </mj-ai-agent-run-timeline>\n </kendo-splitter-pane>\n \n <!-- JSON Detail Pane -->\n <kendo-splitter-pane [size]=\"'45%'\" [min]=\"'300px'\" [collapsed]=\"!selectedTimelineItem\">\n <div class=\"json-detail-pane\" *ngIf=\"selectedTimelineItem\">\n <div class=\"json-pane-header\">\n <h3>\n <i class=\"fas\" [ngClass]=\"selectedTimelineItem.icon\"></i>\n {{ selectedTimelineItem.title }}\n </h3>\n <button class=\"btn-icon\" (click)=\"closeJsonPanel()\" title=\"Close\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n <div class=\"json-pane-content\">\n <div class=\"json-meta\">\n <div class=\"meta-item\">\n <label>Type</label>\n <span>{{ selectedTimelineItem.type }}</span>\n </div>\n <div class=\"meta-item\">\n <label>Status</label>\n <span class=\"status-badge small\" [attr.data-status]=\"selectedTimelineItem.status\">\n {{ selectedTimelineItem.status }}\n </span>\n </div>\n <div class=\"meta-item\">\n <label>Duration</label>\n <span>{{ selectedTimelineItem.duration || 'N/A' }}</span>\n </div>\n </div>\n \n <!-- Action-specific link -->\n <div class=\"action-link\" *ngIf=\"selectedTimelineItem.type === 'action' && selectedTimelineItem.data?.ID\">\n <button class=\"btn-link\" (click)=\"navigateToActionLog(selectedTimelineItem.data.ID)\">\n <i class=\"fas fa-external-link-alt\"></i> View Action Execution Log\n </button>\n </div>\n \n <div class=\"json-viewer\">\n <div class=\"json-toolbar\">\n <button class=\"btn-icon\" title=\"Copy JSON\" (click)=\"copyToClipboard(getSelectedItemJson())\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n <mj-code-editor\n [(ngModel)]=\"selectedItemJsonString\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: calc(100% - 160px); width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n\n <!-- Details Tab -->\n <div class=\"tab-content\" *ngIf=\"activeTab === 'details'\">\n <kendo-panelbar>\n <kendo-panelbar-item title=\"General Information\" [expanded]=\"true\">\n <ng-template kendoPanelBarContent>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Run ID</label>\n <span>{{ record.ID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Agent ID</label>\n <span>{{ record.AgentID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Agent Name</label>\n <span>{{ agent?.Name || 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Parent Run ID</label>\n <span>{{ record.ParentRunID || 'None (Root)' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Conversation ID</label>\n <span>{{ record.ConversationID || 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>User</label>\n <span>{{ record.User || 'N/A' }}</span>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Execution Status\">\n <ng-template kendoPanelBarContent>\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 <span [class.success]=\"record.Success\" [class.error]=\"record.Success === false\">\n {{ record.Success === null ? 'In Progress' : (record.Success ? 'Yes' : 'No') }}\n </span>\n </div>\n <div class=\"detail-item full-width\" *ngIf=\"record.ErrorMessage\">\n <label>Error Message</label>\n <div class=\"error-message\">{{ record.ErrorMessage }}</div>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Result\" *ngIf=\"record.Result\">\n <ng-template kendoPanelBarContent>\n <div class=\"result-viewer\">\n <mj-code-editor\n [(ngModel)]=\"record.Result\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Agent State\" *ngIf=\"record.AgentState\">\n <ng-template kendoPanelBarContent>\n <div class=\"state-viewer\">\n <mj-code-editor\n [(ngModel)]=\"record.AgentState\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n </kendo-panelbar>\n </div>\n </div>\n </div>\n</div>", styles: [".ai-agent-run-form {\n height: 100%;\n overflow: auto;\n}\n\n/* Header Styles */\n.header {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\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: linear-gradient(135deg, #2196f3, #1976d2);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n}\n\n.header-info h2 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.meta-info {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: #6c757d;\n}\n\n.parent-run {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link {\n color: #ff6358;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link:hover {\n color: #ff4444;\n text-decoration: underline;\n}\n\n.agent-name {\n font-weight: 500;\n color: #495057;\n}\n\n.run-id {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\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: #e3f2fd;\n color: #1976d2;\n}\n\n.status-badge[data-status=\"Completed\"] {\n background: #d4edda;\n color: #155724;\n}\n\n.status-badge[data-status=\"Failed\"] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.status-badge[data-status=\"Cancelled\"] {\n background: #fff3cd;\n color: #856404;\n}\n\n.status-badge[data-status=\"Paused\"] {\n background: #e2e3e5;\n color: #383d41;\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 #dee2e6;\n background: white;\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: #6c757d;\n}\n\n.btn-icon:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n.header-stats {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid #e9ecef;\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: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat .value {\n font-size: 14px;\n font-weight: 500;\n color: #495057;\n}\n\n.stat .value.success {\n color: #28a745;\n}\n\n.stat .value.error {\n color: #dc3545;\n}\n\n/* Tabs */\n.tabs {\n display: flex;\n border-bottom: 1px solid #dee2e6;\n background: #f8f9fa;\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: #6c757d;\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: #495057;\n background: rgba(0,0,0,0.02);\n}\n\n.tab.active {\n color: #2196f3;\n border-bottom-color: #2196f3;\n background: white;\n}\n\n/* Content Area */\n.content-area {\n position: relative;\n height: calc(100vh - 280px);\n overflow: auto;\n background: white;\n}\n\n.tab-content {\n height: 100%;\n overflow: auto;\n}\n\n/* Details tab specific */\n.tab-content[ng-reflect-ng-if=\"true\"] > kendo-panelbar {\n height: 100%;\n overflow-y: auto;\n}\n\n/* JSON Detail Pane */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f8f9fa;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e0e6ed;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.json-pane-header h3 i {\n color: #6b7280;\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: #6b7280;\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta .meta-item span {\n font-size: 14px;\n color: #2c3e50;\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: #2196f3;\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: rgba(33, 150, 243, 0.08);\n color: #1976d2;\n}\n\n.json-viewer {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e6ed;\n overflow: auto;\n}\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\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: #e9ecef;\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: #f0f7ff;\n border-color: #2196f3;\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: white;\n border: 3px solid #e9ecef;\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"] {\n border-color: #28a745;\n color: #28a745;\n}\n\n.timeline-marker[data-color=\"error\"] {\n border-color: #dc3545;\n color: #dc3545;\n}\n\n.timeline-marker[data-color=\"info\"] {\n border-color: #17a2b8;\n color: #17a2b8;\n}\n\n.timeline-marker[data-color=\"warning\"] {\n border-color: #ffc107;\n color: #ffc107;\n}\n\n.timeline-marker[data-color=\"secondary\"] {\n border-color: #6c757d;\n color: #6c757d;\n}\n\n.timeline-marker.small {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content {\n background: white;\n border: 1px solid #e9ecef;\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\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: #2c3e50;\n}\n\n.timeline-header h5 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.timeline-time {\n font-size: 12px;\n color: #6c757d;\n font-family: monospace;\n}\n\n.timeline-subtitle {\n font-size: 13px;\n color: #6c757d;\n margin-bottom: 8px;\n}\n\n.timeline-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: #6c757d;\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: #d4edda;\n color: #155724;\n}\n\n.timeline-meta .status[data-status=\"Failed\"] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.timeline-meta .status[data-status=\"Running\"] {\n background: #cce5ff;\n color: #004085;\n}\n\n.timeline-meta .status[data-status=\"Paused\"] {\n background: #e2e3e5;\n color: #383d41;\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: #2196f3;\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: rgba(33, 150, 243, 0.1);\n}\n\n.btn-expand {\n width: 24px;\n height: 24px;\n border: 1px solid #dee2e6;\n background: white;\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: #6c757d;\n font-size: 12px;\n}\n\n.btn-expand:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\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: #e9ecef;\n}\n\n.child-item {\n margin-bottom: 12px;\n}\n\n.child-item .timeline-content {\n background: #f8f9fa;\n border-color: #e0e6ed;\n}\n\n/* Sub-run timeline styles */\n.sub-run-timeline {\n background: rgba(33, 150, 243, 0.02);\n border-left: 2px solid rgba(33, 150, 243, 0.2);\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: white;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header {\n padding: 16px 20px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\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: #2c3e50;\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 #e0e6ed;\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: #7c8798;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta span {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link {\n padding: 12px 20px;\n border-bottom: 1px solid #e0e6ed;\n flex-shrink: 0;\n}\n\n.action-link .btn-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: #2196f3;\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: #f0f7ff;\n border: 1px solid #d0e5ff;\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link .btn-link:hover {\n background: #e1f0ff;\n border-color: #b0d5ff;\n text-decoration: none;\n}\n\n.json-viewer {\n flex: 1;\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n overflow: auto;\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: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item span {\n font-size: 14px;\n color: #495057;\n}\n\n.error-message {\n background: #f8d7da;\n color: #721c24;\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: #6c757d;\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}"] }]
488
+ }], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }], null); })();
489
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentRunFormComponent, { className: "AIAgentRunFormComponent", filePath: "src/lib/custom/ai-agent-run/ai-agent-run.component.ts", lineNumber: 18 }); })();
490
+ //# sourceMappingURL=ai-agent-run.component.js.map