@memberjunction/ng-core-entity-forms 6.1.0-edge.2 → 6.1.0-edge.4

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 (499) hide show
  1. package/LICENSE +180 -4
  2. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.d.ts +12 -0
  3. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.d.ts.map +1 -0
  4. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js +138 -0
  5. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js.map +1 -0
  6. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts +20 -0
  7. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts.map +1 -0
  8. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js +173 -0
  9. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js.map +1 -0
  10. package/dist/lib/custom/Actions/action-execution-log-form.component.js +193 -182
  11. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  12. package/dist/lib/custom/Companies/company-header.panel.d.ts +12 -0
  13. package/dist/lib/custom/Companies/company-header.panel.d.ts.map +1 -0
  14. package/dist/lib/custom/Companies/company-header.panel.js +190 -0
  15. package/dist/lib/custom/Companies/company-header.panel.js.map +1 -0
  16. package/dist/lib/custom/Companies/company-overview.panel.d.ts +21 -0
  17. package/dist/lib/custom/Companies/company-overview.panel.d.ts.map +1 -0
  18. package/dist/lib/custom/Companies/company-overview.panel.js +180 -0
  19. package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -0
  20. package/dist/lib/custom/Conversations/conversation-header.panel.d.ts +12 -0
  21. package/dist/lib/custom/Conversations/conversation-header.panel.d.ts.map +1 -0
  22. package/dist/lib/custom/Conversations/conversation-header.panel.js +150 -0
  23. package/dist/lib/custom/Conversations/conversation-header.panel.js.map +1 -0
  24. package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +23 -0
  25. package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts.map +1 -0
  26. package/dist/lib/custom/Conversations/conversation-overview.panel.js +199 -0
  27. package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -0
  28. package/dist/lib/custom/Employees/employee-header.panel.d.ts +12 -0
  29. package/dist/lib/custom/Employees/employee-header.panel.d.ts.map +1 -0
  30. package/dist/lib/custom/Employees/employee-header.panel.js +180 -0
  31. package/dist/lib/custom/Employees/employee-header.panel.js.map +1 -0
  32. package/dist/lib/custom/Employees/employee-overview.panel.d.ts +21 -0
  33. package/dist/lib/custom/Employees/employee-overview.panel.d.ts.map +1 -0
  34. package/dist/lib/custom/Employees/employee-overview.panel.js +180 -0
  35. package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -0
  36. package/dist/lib/custom/Entities/entity-form.component.d.ts +4 -1
  37. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  38. package/dist/lib/custom/Entities/entity-form.component.js +216 -173
  39. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  40. package/dist/lib/custom/Files/file-form.component.d.ts +40 -0
  41. package/dist/lib/custom/Files/file-form.component.d.ts.map +1 -0
  42. package/dist/lib/custom/Files/file-form.component.js +654 -0
  43. package/dist/lib/custom/Files/file-form.component.js.map +1 -0
  44. package/dist/lib/custom/HierarchyPanels/hierarchy-form-panels.d.ts +101 -0
  45. package/dist/lib/custom/HierarchyPanels/hierarchy-form-panels.d.ts.map +1 -0
  46. package/dist/lib/custom/HierarchyPanels/hierarchy-form-panels.js +1202 -0
  47. package/dist/lib/custom/HierarchyPanels/hierarchy-form-panels.js.map +1 -0
  48. package/dist/lib/custom/Users/user-header.panel.d.ts +12 -0
  49. package/dist/lib/custom/Users/user-header.panel.d.ts.map +1 -0
  50. package/dist/lib/custom/Users/user-header.panel.js +164 -0
  51. package/dist/lib/custom/Users/user-header.panel.js.map +1 -0
  52. package/dist/lib/custom/Users/user-overview.panel.d.ts +19 -0
  53. package/dist/lib/custom/Users/user-overview.panel.d.ts.map +1 -0
  54. package/dist/lib/custom/Users/user-overview.panel.js +172 -0
  55. package/dist/lib/custom/Users/user-overview.panel.js.map +1 -0
  56. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +18 -1
  57. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
  58. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +118 -75
  59. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
  60. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +46 -1
  61. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  62. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +141 -18
  63. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  64. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +4 -4
  65. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  66. package/dist/lib/custom/ai-agent-run/run-tree-timeline-projection.d.ts +9 -1
  67. package/dist/lib/custom/ai-agent-run/run-tree-timeline-projection.d.ts.map +1 -1
  68. package/dist/lib/custom/ai-agent-run/run-tree-timeline-projection.js +85 -8
  69. package/dist/lib/custom/ai-agent-run/run-tree-timeline-projection.js.map +1 -1
  70. package/dist/lib/custom/custom-forms.module.d.ts +33 -29
  71. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  72. package/dist/lib/custom/custom-forms.module.js +23 -8
  73. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  74. package/dist/lib/generated/Entities/MJAIAction/mjaiaction.form.component.js +3 -3
  75. package/dist/lib/generated/Entities/MJAIAction/mjaiaction.form.component.js.map +1 -1
  76. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +300 -294
  77. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  78. package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.js +31 -23
  79. package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.js.map +1 -1
  80. package/dist/lib/generated/Entities/MJAIAgentChannel/mjaiagentchannel.form.component.js +3 -3
  81. package/dist/lib/generated/Entities/MJAIAgentChannel/mjaiagentchannel.form.component.js.map +1 -1
  82. package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.js +14 -16
  83. package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.js.map +1 -1
  84. package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js +2 -2
  85. package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js.map +1 -1
  86. package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.js +2 -2
  87. package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.js.map +1 -1
  88. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +123 -117
  89. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
  90. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js +35 -27
  91. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js.map +1 -1
  92. package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js +47 -49
  93. package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js.map +1 -1
  94. package/dist/lib/generated/Entities/MJAIAgentSessionBridge/mjaiagentsessionbridge.form.component.js +2 -2
  95. package/dist/lib/generated/Entities/MJAIAgentSessionBridge/mjaiagentsessionbridge.form.component.js.map +1 -1
  96. package/dist/lib/generated/Entities/MJAIAgentStep/mjaiagentstep.form.component.js +3 -3
  97. package/dist/lib/generated/Entities/MJAIAgentStep/mjaiagentstep.form.component.js.map +1 -1
  98. package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js +3 -3
  99. package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js.map +1 -1
  100. package/dist/lib/generated/Entities/MJAIArchitecture/mjaiarchitecture.form.component.js +30 -22
  101. package/dist/lib/generated/Entities/MJAIArchitecture/mjaiarchitecture.form.component.js.map +1 -1
  102. package/dist/lib/generated/Entities/MJAIBridgeProvider/mjaibridgeprovider.form.component.js +4 -4
  103. package/dist/lib/generated/Entities/MJAIBridgeProvider/mjaibridgeprovider.form.component.js.map +1 -1
  104. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js +2 -2
  105. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js.map +1 -1
  106. package/dist/lib/generated/Entities/MJAIConfiguration/mjaiconfiguration.form.component.js +72 -64
  107. package/dist/lib/generated/Entities/MJAIConfiguration/mjaiconfiguration.form.component.js.map +1 -1
  108. package/dist/lib/generated/Entities/MJAIModality/mjaimodality.form.component.js +8 -8
  109. package/dist/lib/generated/Entities/MJAIModality/mjaimodality.form.component.js.map +1 -1
  110. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +28 -28
  111. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
  112. package/dist/lib/generated/Entities/MJAIModelPriceType/mjaimodelpricetype.form.component.js +2 -2
  113. package/dist/lib/generated/Entities/MJAIModelPriceType/mjaimodelpricetype.form.component.js.map +1 -1
  114. package/dist/lib/generated/Entities/MJAIModelPriceUnitType/mjaimodelpriceunittype.form.component.js +2 -2
  115. package/dist/lib/generated/Entities/MJAIModelPriceUnitType/mjaimodelpriceunittype.form.component.js.map +1 -1
  116. package/dist/lib/generated/Entities/MJAIModelType/mjaimodeltype.form.component.js +3 -3
  117. package/dist/lib/generated/Entities/MJAIModelType/mjaimodeltype.form.component.js.map +1 -1
  118. package/dist/lib/generated/Entities/MJAIModelVendor/mjaimodelvendor.form.component.js +2 -2
  119. package/dist/lib/generated/Entities/MJAIModelVendor/mjaimodelvendor.form.component.js.map +1 -1
  120. package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +171 -173
  121. package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js.map +1 -1
  122. package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.d.ts.map +1 -1
  123. package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.js +33 -19
  124. package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.js.map +1 -1
  125. package/dist/lib/generated/Entities/MJAIPromptModel/mjaipromptmodel.form.component.js +2 -2
  126. package/dist/lib/generated/Entities/MJAIPromptModel/mjaipromptmodel.form.component.js.map +1 -1
  127. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +85 -79
  128. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  129. package/dist/lib/generated/Entities/MJAIPromptRunMedia/mjaipromptrunmedia.form.component.js +2 -2
  130. package/dist/lib/generated/Entities/MJAIPromptRunMedia/mjaipromptrunmedia.form.component.js.map +1 -1
  131. package/dist/lib/generated/Entities/MJAIPromptType/mjaiprompttype.form.component.js +2 -2
  132. package/dist/lib/generated/Entities/MJAIPromptType/mjaiprompttype.form.component.js.map +1 -1
  133. package/dist/lib/generated/Entities/MJAISkill/mjaiskill.form.component.js +7 -7
  134. package/dist/lib/generated/Entities/MJAISkill/mjaiskill.form.component.js.map +1 -1
  135. package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +11 -11
  136. package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
  137. package/dist/lib/generated/Entities/MJAIVendorTypeDefinition/mjaivendortypedefinition.form.component.js +3 -3
  138. package/dist/lib/generated/Entities/MJAIVendorTypeDefinition/mjaivendortypedefinition.form.component.js.map +1 -1
  139. package/dist/lib/generated/Entities/MJAPIApplication/mjapiapplication.form.component.js +4 -4
  140. package/dist/lib/generated/Entities/MJAPIApplication/mjapiapplication.form.component.js.map +1 -1
  141. package/dist/lib/generated/Entities/MJAPIKey/mjapikey.form.component.js +4 -4
  142. package/dist/lib/generated/Entities/MJAPIKey/mjapikey.form.component.js.map +1 -1
  143. package/dist/lib/generated/Entities/MJAPIScope/mjapiscope.form.component.js +36 -28
  144. package/dist/lib/generated/Entities/MJAPIScope/mjapiscope.form.component.js.map +1 -1
  145. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js +108 -100
  146. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js.map +1 -1
  147. package/dist/lib/generated/Entities/MJActionCategory/mjactioncategory.form.component.js +36 -28
  148. package/dist/lib/generated/Entities/MJActionCategory/mjactioncategory.form.component.js.map +1 -1
  149. package/dist/lib/generated/Entities/MJActionContextType/mjactioncontexttype.form.component.js +2 -2
  150. package/dist/lib/generated/Entities/MJActionContextType/mjactioncontexttype.form.component.js.map +1 -1
  151. package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.js +3 -3
  152. package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.js.map +1 -1
  153. package/dist/lib/generated/Entities/MJActionFilter/mjactionfilter.form.component.js +2 -2
  154. package/dist/lib/generated/Entities/MJActionFilter/mjactionfilter.form.component.js.map +1 -1
  155. package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js +2 -2
  156. package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js.map +1 -1
  157. package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js +11 -11
  158. package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js.map +1 -1
  159. package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js +3 -3
  160. package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js.map +1 -1
  161. package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js +2 -2
  162. package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js.map +1 -1
  163. package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.js +4 -4
  164. package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.js.map +1 -1
  165. package/dist/lib/generated/Entities/MJArtifactType/mjartifacttype.form.component.js +48 -40
  166. package/dist/lib/generated/Entities/MJArtifactType/mjartifacttype.form.component.js.map +1 -1
  167. package/dist/lib/generated/Entities/MJArtifactVersion/mjartifactversion.form.component.js +7 -7
  168. package/dist/lib/generated/Entities/MJArtifactVersion/mjartifactversion.form.component.js.map +1 -1
  169. package/dist/lib/generated/Entities/MJAuditLogType/mjauditlogtype.form.component.js +29 -21
  170. package/dist/lib/generated/Entities/MJAuditLogType/mjauditlogtype.form.component.js.map +1 -1
  171. package/dist/lib/generated/Entities/MJAuthenticationProvider/mjauthenticationprovider.form.component.d.ts +10 -0
  172. package/dist/lib/generated/Entities/MJAuthenticationProvider/mjauthenticationprovider.form.component.d.ts.map +1 -0
  173. package/dist/lib/generated/Entities/MJAuthenticationProvider/mjauthenticationprovider.form.component.js +108 -0
  174. package/dist/lib/generated/Entities/MJAuthenticationProvider/mjauthenticationprovider.form.component.js.map +1 -0
  175. package/dist/lib/generated/Entities/MJAuthorization/mjauthorization.form.component.js +50 -42
  176. package/dist/lib/generated/Entities/MJAuthorization/mjauthorization.form.component.js.map +1 -1
  177. package/dist/lib/generated/Entities/MJClusterAnalysis/mjclusteranalysis.form.component.js +2 -2
  178. package/dist/lib/generated/Entities/MJClusterAnalysis/mjclusteranalysis.form.component.js.map +1 -1
  179. package/dist/lib/generated/Entities/MJCollection/mjcollection.form.component.js +44 -36
  180. package/dist/lib/generated/Entities/MJCollection/mjcollection.form.component.js.map +1 -1
  181. package/dist/lib/generated/Entities/MJCommunicationBaseMessageType/mjcommunicationbasemessagetype.form.component.js +3 -3
  182. package/dist/lib/generated/Entities/MJCommunicationBaseMessageType/mjcommunicationbasemessagetype.form.component.js.map +1 -1
  183. package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js +2 -2
  184. package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js.map +1 -1
  185. package/dist/lib/generated/Entities/MJCommunicationProviderMessageType/mjcommunicationprovidermessagetype.form.component.js +2 -2
  186. package/dist/lib/generated/Entities/MJCommunicationProviderMessageType/mjcommunicationprovidermessagetype.form.component.js.map +1 -1
  187. package/dist/lib/generated/Entities/MJCommunicationRun/mjcommunicationrun.form.component.js +2 -2
  188. package/dist/lib/generated/Entities/MJCommunicationRun/mjcommunicationrun.form.component.js.map +1 -1
  189. package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js +7 -7
  190. package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js.map +1 -1
  191. package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.d.ts.map +1 -1
  192. package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.js +32 -14
  193. package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.js.map +1 -1
  194. package/dist/lib/generated/Entities/MJCompanyIntegrationEntityMap/mjcompanyintegrationentitymap.form.component.js +3 -3
  195. package/dist/lib/generated/Entities/MJCompanyIntegrationEntityMap/mjcompanyintegrationentitymap.form.component.js.map +1 -1
  196. package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.d.ts.map +1 -1
  197. package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.js +44 -26
  198. package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.js.map +1 -1
  199. package/dist/lib/generated/Entities/MJCompanyIntegrationRunDetail/mjcompanyintegrationrundetail.form.component.js +2 -2
  200. package/dist/lib/generated/Entities/MJCompanyIntegrationRunDetail/mjcompanyintegrationrundetail.form.component.js.map +1 -1
  201. package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js +5 -5
  202. package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js.map +1 -1
  203. package/dist/lib/generated/Entities/MJComponentLibrary/mjcomponentlibrary.form.component.js +2 -2
  204. package/dist/lib/generated/Entities/MJComponentLibrary/mjcomponentlibrary.form.component.js.map +1 -1
  205. package/dist/lib/generated/Entities/MJComponentRegistry/mjcomponentregistry.form.component.js +2 -2
  206. package/dist/lib/generated/Entities/MJComponentRegistry/mjcomponentregistry.form.component.js.map +1 -1
  207. package/dist/lib/generated/Entities/MJContentFileType/mjcontentfiletype.form.component.js +3 -3
  208. package/dist/lib/generated/Entities/MJContentFileType/mjcontentfiletype.form.component.js.map +1 -1
  209. package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js +60 -52
  210. package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js.map +1 -1
  211. package/dist/lib/generated/Entities/MJContentItemChunk/mjcontentitemchunk.form.component.js +28 -20
  212. package/dist/lib/generated/Entities/MJContentItemChunk/mjcontentitemchunk.form.component.js.map +1 -1
  213. package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js +2 -2
  214. package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js.map +1 -1
  215. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js +2 -2
  216. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js.map +1 -1
  217. package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +6 -6
  218. package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
  219. package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js +4 -4
  220. package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js.map +1 -1
  221. package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js +3 -3
  222. package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
  223. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +77 -79
  224. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
  225. package/dist/lib/generated/Entities/MJConversationArtifact/mjconversationartifact.form.component.js +4 -4
  226. package/dist/lib/generated/Entities/MJConversationArtifact/mjconversationartifact.form.component.js.map +1 -1
  227. package/dist/lib/generated/Entities/MJConversationArtifactVersion/mjconversationartifactversion.form.component.js +2 -2
  228. package/dist/lib/generated/Entities/MJConversationArtifactVersion/mjconversationartifactversion.form.component.js.map +1 -1
  229. package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js +76 -68
  230. package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js.map +1 -1
  231. package/dist/lib/generated/Entities/MJCountry/mjcountry.form.component.js +3 -3
  232. package/dist/lib/generated/Entities/MJCountry/mjcountry.form.component.js.map +1 -1
  233. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.d.ts.map +1 -1
  234. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +42 -24
  235. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
  236. package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.d.ts.map +1 -1
  237. package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.js +33 -19
  238. package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.js.map +1 -1
  239. package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js +6 -6
  240. package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js.map +1 -1
  241. package/dist/lib/generated/Entities/MJDashboard/mjdashboard.form.component.js +5 -5
  242. package/dist/lib/generated/Entities/MJDashboard/mjdashboard.form.component.js.map +1 -1
  243. package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.d.ts.map +1 -1
  244. package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.js +47 -33
  245. package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.js.map +1 -1
  246. package/dist/lib/generated/Entities/MJDataContext/mjdatacontext.form.component.js +3 -3
  247. package/dist/lib/generated/Entities/MJDataContext/mjdatacontext.form.component.js.map +1 -1
  248. package/dist/lib/generated/Entities/MJDataset/mjdataset.form.component.js +2 -2
  249. package/dist/lib/generated/Entities/MJDataset/mjdataset.form.component.js.map +1 -1
  250. package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js +2 -2
  251. package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js.map +1 -1
  252. package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +2 -2
  253. package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js.map +1 -1
  254. package/dist/lib/generated/Entities/MJEmployee/mjemployee.form.component.js +6 -6
  255. package/dist/lib/generated/Entities/MJEmployee/mjemployee.form.component.js.map +1 -1
  256. package/dist/lib/generated/Entities/MJEncryptionAlgorithm/mjencryptionalgorithm.form.component.js +2 -2
  257. package/dist/lib/generated/Entities/MJEncryptionAlgorithm/mjencryptionalgorithm.form.component.js.map +1 -1
  258. package/dist/lib/generated/Entities/MJEncryptionKey/mjencryptionkey.form.component.js +2 -2
  259. package/dist/lib/generated/Entities/MJEncryptionKey/mjencryptionkey.form.component.js.map +1 -1
  260. package/dist/lib/generated/Entities/MJEncryptionKeySource/mjencryptionkeysource.form.component.js +2 -2
  261. package/dist/lib/generated/Entities/MJEncryptionKeySource/mjencryptionkeysource.form.component.js.map +1 -1
  262. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  263. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +622 -530
  264. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  265. package/dist/lib/generated/Entities/MJEntityAction/mjentityaction.form.component.js +5 -5
  266. package/dist/lib/generated/Entities/MJEntityAction/mjentityaction.form.component.js.map +1 -1
  267. package/dist/lib/generated/Entities/MJEntityActionInvocationType/mjentityactioninvocationtype.form.component.js +3 -3
  268. package/dist/lib/generated/Entities/MJEntityActionInvocationType/mjentityactioninvocationtype.form.component.js.map +1 -1
  269. package/dist/lib/generated/Entities/MJEntityCommunicationMessageType/mjentitycommunicationmessagetype.form.component.js +2 -2
  270. package/dist/lib/generated/Entities/MJEntityCommunicationMessageType/mjentitycommunicationmessagetype.form.component.js.map +1 -1
  271. package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js +5 -5
  272. package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js.map +1 -1
  273. package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js +2 -2
  274. package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js.map +1 -1
  275. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.d.ts.map +1 -1
  276. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +28 -18
  277. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
  278. package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js +2 -2
  279. package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js.map +1 -1
  280. package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js +2 -2
  281. package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js.map +1 -1
  282. package/dist/lib/generated/Entities/MJEntityRelationship/mjentityrelationship.form.component.js +10 -8
  283. package/dist/lib/generated/Entities/MJEntityRelationship/mjentityrelationship.form.component.js.map +1 -1
  284. package/dist/lib/generated/Entities/MJEntityRelationshipDisplayComponent/mjentityrelationshipdisplaycomponent.form.component.js +2 -2
  285. package/dist/lib/generated/Entities/MJEntityRelationshipDisplayComponent/mjentityrelationshipdisplaycomponent.form.component.js.map +1 -1
  286. package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js +8 -8
  287. package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js.map +1 -1
  288. package/dist/lib/generated/Entities/MJExperiment/mjexperiment.form.component.js +2 -2
  289. package/dist/lib/generated/Entities/MJExperiment/mjexperiment.form.component.js.map +1 -1
  290. package/dist/lib/generated/Entities/MJExperimentSession/mjexperimentsession.form.component.js +2 -2
  291. package/dist/lib/generated/Entities/MJExperimentSession/mjexperimentsession.form.component.js.map +1 -1
  292. package/dist/lib/generated/Entities/MJExperimentSessionIteration/mjexperimentsessioniteration.form.component.js +2 -2
  293. package/dist/lib/generated/Entities/MJExperimentSessionIteration/mjexperimentsessioniteration.form.component.js.map +1 -1
  294. package/dist/lib/generated/Entities/MJExternalDataSource/mjexternaldatasource.form.component.js +3 -3
  295. package/dist/lib/generated/Entities/MJExternalDataSource/mjexternaldatasource.form.component.js.map +1 -1
  296. package/dist/lib/generated/Entities/MJExternalDataSourceType/mjexternaldatasourcetype.form.component.js +2 -2
  297. package/dist/lib/generated/Entities/MJExternalDataSourceType/mjexternaldatasourcetype.form.component.js.map +1 -1
  298. package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js +9 -9
  299. package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js.map +1 -1
  300. package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.d.ts.map +1 -1
  301. package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.js +33 -19
  302. package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.js.map +1 -1
  303. package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js +7 -7
  304. package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js.map +1 -1
  305. package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js +6 -6
  306. package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js.map +1 -1
  307. package/dist/lib/generated/Entities/MJFormChromeRule/mjformchromerule.form.component.d.ts +10 -0
  308. package/dist/lib/generated/Entities/MJFormChromeRule/mjformchromerule.form.component.d.ts.map +1 -0
  309. package/dist/lib/generated/Entities/MJFormChromeRule/mjformchromerule.form.component.js +82 -0
  310. package/dist/lib/generated/Entities/MJFormChromeRule/mjformchromerule.form.component.js.map +1 -0
  311. package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.d.ts.map +1 -1
  312. package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.js +33 -19
  313. package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.js.map +1 -1
  314. package/dist/lib/generated/Entities/MJIdentityClaim/mjidentityclaim.form.component.d.ts +10 -0
  315. package/dist/lib/generated/Entities/MJIdentityClaim/mjidentityclaim.form.component.d.ts.map +1 -0
  316. package/dist/lib/generated/Entities/MJIdentityClaim/mjidentityclaim.form.component.js +100 -0
  317. package/dist/lib/generated/Entities/MJIdentityClaim/mjidentityclaim.form.component.js.map +1 -0
  318. package/dist/lib/generated/Entities/MJIdentityClaimType/mjidentityclaimtype.form.component.d.ts +10 -0
  319. package/dist/lib/generated/Entities/MJIdentityClaimType/mjidentityclaimtype.form.component.d.ts.map +1 -0
  320. package/dist/lib/generated/Entities/MJIdentityClaimType/mjidentityclaimtype.form.component.js +97 -0
  321. package/dist/lib/generated/Entities/MJIdentityClaimType/mjidentityclaimtype.form.component.js.map +1 -0
  322. package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js +5 -5
  323. package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js.map +1 -1
  324. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js +3 -3
  325. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js.map +1 -1
  326. package/dist/lib/generated/Entities/MJIntegrationSourceType/mjintegrationsourcetype.form.component.js +2 -2
  327. package/dist/lib/generated/Entities/MJIntegrationSourceType/mjintegrationsourcetype.form.component.js.map +1 -1
  328. package/dist/lib/generated/Entities/MJLibrary/mjlibrary.form.component.js +3 -3
  329. package/dist/lib/generated/Entities/MJLibrary/mjlibrary.form.component.js.map +1 -1
  330. package/dist/lib/generated/Entities/MJList/mjlist.form.component.js +6 -6
  331. package/dist/lib/generated/Entities/MJList/mjlist.form.component.js.map +1 -1
  332. package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.d.ts.map +1 -1
  333. package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.js +33 -19
  334. package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.js.map +1 -1
  335. package/dist/lib/generated/Entities/MJMCPServer/mjmcpserver.form.component.js +4 -4
  336. package/dist/lib/generated/Entities/MJMCPServer/mjmcpserver.form.component.js.map +1 -1
  337. package/dist/lib/generated/Entities/MJMCPServerConnection/mjmcpserverconnection.form.component.js +7 -7
  338. package/dist/lib/generated/Entities/MJMCPServerConnection/mjmcpserverconnection.form.component.js.map +1 -1
  339. package/dist/lib/generated/Entities/MJMCPServerTool/mjmcpservertool.form.component.js +4 -4
  340. package/dist/lib/generated/Entities/MJMCPServerTool/mjmcpservertool.form.component.js.map +1 -1
  341. package/dist/lib/generated/Entities/MJMLAlgorithm/mjmlalgorithm.form.component.js +5 -5
  342. package/dist/lib/generated/Entities/MJMLAlgorithm/mjmlalgorithm.form.component.js.map +1 -1
  343. package/dist/lib/generated/Entities/MJMLAlgorithmUseCase/mjmlalgorithmusecase.form.component.js +2 -2
  344. package/dist/lib/generated/Entities/MJMLAlgorithmUseCase/mjmlalgorithmusecase.form.component.js.map +1 -1
  345. package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.js +3 -3
  346. package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.js.map +1 -1
  347. package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.js +3 -3
  348. package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.js.map +1 -1
  349. package/dist/lib/generated/Entities/MJMagicLinkInvite/mjmagiclinkinvite.form.component.d.ts.map +1 -1
  350. package/dist/lib/generated/Entities/MJMagicLinkInvite/mjmagiclinkinvite.form.component.js +32 -14
  351. package/dist/lib/generated/Entities/MJMagicLinkInvite/mjmagiclinkinvite.form.component.js.map +1 -1
  352. package/dist/lib/generated/Entities/MJMaterializedResult/mjmaterializedresult.form.component.d.ts +10 -0
  353. package/dist/lib/generated/Entities/MJMaterializedResult/mjmaterializedresult.form.component.d.ts.map +1 -0
  354. package/dist/lib/generated/Entities/MJMaterializedResult/mjmaterializedresult.form.component.js +117 -0
  355. package/dist/lib/generated/Entities/MJMaterializedResult/mjmaterializedresult.form.component.js.map +1 -0
  356. package/dist/lib/generated/Entities/MJMaterializedResultQuery/mjmaterializedresultquery.form.component.d.ts +10 -0
  357. package/dist/lib/generated/Entities/MJMaterializedResultQuery/mjmaterializedresultquery.form.component.d.ts.map +1 -0
  358. package/dist/lib/generated/Entities/MJMaterializedResultQuery/mjmaterializedresultquery.form.component.js +58 -0
  359. package/dist/lib/generated/Entities/MJMaterializedResultQuery/mjmaterializedresultquery.form.component.js.map +1 -0
  360. package/dist/lib/generated/Entities/MJOpenApp/mjopenapp.form.component.js +4 -4
  361. package/dist/lib/generated/Entities/MJOpenApp/mjopenapp.form.component.js.map +1 -1
  362. package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js +2 -2
  363. package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js.map +1 -1
  364. package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +38 -30
  365. package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
  366. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.d.ts.map +1 -1
  367. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +85 -65
  368. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
  369. package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.d.ts.map +1 -1
  370. package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.js +33 -19
  371. package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.js.map +1 -1
  372. package/dist/lib/generated/Entities/MJQueue/mjqueue.form.component.js +2 -2
  373. package/dist/lib/generated/Entities/MJQueue/mjqueue.form.component.js.map +1 -1
  374. package/dist/lib/generated/Entities/MJQueueType/mjqueuetype.form.component.js +2 -2
  375. package/dist/lib/generated/Entities/MJQueueType/mjqueuetype.form.component.js.map +1 -1
  376. package/dist/lib/generated/Entities/MJRSUPendingWork/mjrsupendingwork.form.component.d.ts +10 -0
  377. package/dist/lib/generated/Entities/MJRSUPendingWork/mjrsupendingwork.form.component.d.ts.map +1 -0
  378. package/dist/lib/generated/Entities/MJRSUPendingWork/mjrsupendingwork.form.component.js +64 -0
  379. package/dist/lib/generated/Entities/MJRSUPendingWork/mjrsupendingwork.form.component.js.map +1 -0
  380. package/dist/lib/generated/Entities/MJRecommendation/mjrecommendation.form.component.js +2 -2
  381. package/dist/lib/generated/Entities/MJRecommendation/mjrecommendation.form.component.js.map +1 -1
  382. package/dist/lib/generated/Entities/MJRecommendationProvider/mjrecommendationprovider.form.component.js +2 -2
  383. package/dist/lib/generated/Entities/MJRecommendationProvider/mjrecommendationprovider.form.component.js.map +1 -1
  384. package/dist/lib/generated/Entities/MJRecommendationRun/mjrecommendationrun.form.component.js +2 -2
  385. package/dist/lib/generated/Entities/MJRecommendationRun/mjrecommendationrun.form.component.js.map +1 -1
  386. package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js +21 -23
  387. package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js.map +1 -1
  388. package/dist/lib/generated/Entities/MJRecordChangeReplayRun/mjrecordchangereplayrun.form.component.js +2 -2
  389. package/dist/lib/generated/Entities/MJRecordChangeReplayRun/mjrecordchangereplayrun.form.component.js.map +1 -1
  390. package/dist/lib/generated/Entities/MJRecordMergeLog/mjrecordmergelog.form.component.js +3 -3
  391. package/dist/lib/generated/Entities/MJRecordMergeLog/mjrecordmergelog.form.component.js.map +1 -1
  392. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js +4 -4
  393. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js.map +1 -1
  394. package/dist/lib/generated/Entities/MJRecordProcessCategory/mjrecordprocesscategory.form.component.d.ts.map +1 -1
  395. package/dist/lib/generated/Entities/MJRecordProcessCategory/mjrecordprocesscategory.form.component.js +33 -19
  396. package/dist/lib/generated/Entities/MJRecordProcessCategory/mjrecordprocesscategory.form.component.js.map +1 -1
  397. package/dist/lib/generated/Entities/MJRemoteOperationCategory/mjremoteoperationcategory.form.component.d.ts.map +1 -1
  398. package/dist/lib/generated/Entities/MJRemoteOperationCategory/mjremoteoperationcategory.form.component.js +33 -19
  399. package/dist/lib/generated/Entities/MJRemoteOperationCategory/mjremoteoperationcategory.form.component.js.map +1 -1
  400. package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js +6 -6
  401. package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js.map +1 -1
  402. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js +17 -17
  403. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js.map +1 -1
  404. package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js +7 -7
  405. package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js.map +1 -1
  406. package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.js +3 -3
  407. package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.js.map +1 -1
  408. package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js +4 -4
  409. package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js.map +1 -1
  410. package/dist/lib/generated/Entities/MJScheduledJobRun/mjscheduledjobrun.form.component.js +4 -4
  411. package/dist/lib/generated/Entities/MJScheduledJobRun/mjscheduledjobrun.form.component.js.map +1 -1
  412. package/dist/lib/generated/Entities/MJScheduledJobType/mjscheduledjobtype.form.component.js +2 -2
  413. package/dist/lib/generated/Entities/MJScheduledJobType/mjscheduledjobtype.form.component.js.map +1 -1
  414. package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.js +2 -2
  415. package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.js.map +1 -1
  416. package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.js +10 -10
  417. package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.js.map +1 -1
  418. package/dist/lib/generated/Entities/MJSignatureAccount/mjsignatureaccount.form.component.js +2 -2
  419. package/dist/lib/generated/Entities/MJSignatureAccount/mjsignatureaccount.form.component.js.map +1 -1
  420. package/dist/lib/generated/Entities/MJSignatureProvider/mjsignatureprovider.form.component.js +2 -2
  421. package/dist/lib/generated/Entities/MJSignatureProvider/mjsignatureprovider.form.component.js.map +1 -1
  422. package/dist/lib/generated/Entities/MJSignatureRequest/mjsignaturerequest.form.component.js +4 -4
  423. package/dist/lib/generated/Entities/MJSignatureRequest/mjsignaturerequest.form.component.js.map +1 -1
  424. package/dist/lib/generated/Entities/MJSkill/mjskill.form.component.js +29 -21
  425. package/dist/lib/generated/Entities/MJSkill/mjskill.form.component.js.map +1 -1
  426. package/dist/lib/generated/Entities/MJStateProvince/mjstateprovince.form.component.js +2 -2
  427. package/dist/lib/generated/Entities/MJStateProvince/mjstateprovince.form.component.js.map +1 -1
  428. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.d.ts.map +1 -1
  429. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +104 -92
  430. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
  431. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.d.ts.map +1 -1
  432. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js +47 -33
  433. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js.map +1 -1
  434. package/dist/lib/generated/Entities/MJTaskType/mjtasktype.form.component.js +2 -2
  435. package/dist/lib/generated/Entities/MJTaskType/mjtasktype.form.component.js.map +1 -1
  436. package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js +10 -10
  437. package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js.map +1 -1
  438. package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.d.ts.map +1 -1
  439. package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.js +33 -19
  440. package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.js.map +1 -1
  441. package/dist/lib/generated/Entities/MJTemplateContent/mjtemplatecontent.form.component.js +2 -2
  442. package/dist/lib/generated/Entities/MJTemplateContent/mjtemplatecontent.form.component.js.map +1 -1
  443. package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js +2 -2
  444. package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js.map +1 -1
  445. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +3 -3
  446. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
  447. package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js +7 -7
  448. package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js.map +1 -1
  449. package/dist/lib/generated/Entities/MJTestRunOutputType/mjtestrunoutputtype.form.component.js +2 -2
  450. package/dist/lib/generated/Entities/MJTestRunOutputType/mjtestrunoutputtype.form.component.js.map +1 -1
  451. package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js +39 -31
  452. package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js.map +1 -1
  453. package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js +2 -2
  454. package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js.map +1 -1
  455. package/dist/lib/generated/Entities/MJTestType/mjtesttype.form.component.js +3 -3
  456. package/dist/lib/generated/Entities/MJTestType/mjtesttype.form.component.js.map +1 -1
  457. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  458. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +230 -212
  459. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  460. package/dist/lib/generated/Entities/MJUserApplication/mjuserapplication.form.component.js +2 -2
  461. package/dist/lib/generated/Entities/MJUserApplication/mjuserapplication.form.component.js.map +1 -1
  462. package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js +3 -3
  463. package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js.map +1 -1
  464. package/dist/lib/generated/Entities/MJUserRoutine/mjuserroutine.form.component.js +3 -3
  465. package/dist/lib/generated/Entities/MJUserRoutine/mjuserroutine.form.component.js.map +1 -1
  466. package/dist/lib/generated/Entities/MJUserView/mjuserview.form.component.js +6 -6
  467. package/dist/lib/generated/Entities/MJUserView/mjuserview.form.component.js.map +1 -1
  468. package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.d.ts.map +1 -1
  469. package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.js +33 -19
  470. package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.js.map +1 -1
  471. package/dist/lib/generated/Entities/MJUserViewRun/mjuserviewrun.form.component.js +2 -2
  472. package/dist/lib/generated/Entities/MJUserViewRun/mjuserviewrun.form.component.js.map +1 -1
  473. package/dist/lib/generated/Entities/MJVectorDatabase/mjvectordatabase.form.component.js +3 -3
  474. package/dist/lib/generated/Entities/MJVectorDatabase/mjvectordatabase.form.component.js.map +1 -1
  475. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +6 -6
  476. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
  477. package/dist/lib/generated/Entities/MJVersionLabel/mjversionlabel.form.component.js +44 -36
  478. package/dist/lib/generated/Entities/MJVersionLabel/mjversionlabel.form.component.js.map +1 -1
  479. package/dist/lib/generated/Entities/MJViewType/mjviewtype.form.component.js +2 -2
  480. package/dist/lib/generated/Entities/MJViewType/mjviewtype.form.component.js.map +1 -1
  481. package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js +2 -2
  482. package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js.map +1 -1
  483. package/dist/lib/generated/generated-forms.module.d.ts +298 -286
  484. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  485. package/dist/lib/generated/generated-forms.module.js +197 -146
  486. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  487. package/dist/lib/panels/form-chrome/entity-form-chrome-editor.component.d.ts +37 -0
  488. package/dist/lib/panels/form-chrome/entity-form-chrome-editor.component.d.ts.map +1 -0
  489. package/dist/lib/panels/form-chrome/entity-form-chrome-editor.component.js +185 -0
  490. package/dist/lib/panels/form-chrome/entity-form-chrome-editor.component.js.map +1 -0
  491. package/dist/lib/panels/form-chrome/entity-relationship-form-role.panel.d.ts +20 -0
  492. package/dist/lib/panels/form-chrome/entity-relationship-form-role.panel.d.ts.map +1 -0
  493. package/dist/lib/panels/form-chrome/entity-relationship-form-role.panel.js +87 -0
  494. package/dist/lib/panels/form-chrome/entity-relationship-form-role.panel.js.map +1 -0
  495. package/dist/public-api.d.ts +12 -0
  496. package/dist/public-api.d.ts.map +1 -1
  497. package/dist/public-api.js +14 -2
  498. package/dist/public-api.js.map +1 -1
  499. package/package.json +44 -42
@@ -117,6 +117,18 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_26_Template(rf,
117
117
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_28_Conditional_2_Template(rf, ctx) { if (rf & 1) {
118
118
  i0.ɵɵelement(0, "mj-alert", 31);
119
119
  } }
120
+ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_28_Conditional_6_Template(rf, ctx) { if (rf & 1) {
121
+ i0.ɵɵelement(0, "mj-task-graph-run-view", 34);
122
+ } if (rf & 2) {
123
+ const ctx_r1 = i0.ɵɵnextContext(3);
124
+ i0.ɵɵproperty("Provider", ctx_r1.Provider)("ParentTaskID", ctx)("WorkflowName", (ctx_r1.stepTaskGraph == null ? null : ctx_r1.stepTaskGraph.workflowName) || "Workflow");
125
+ } }
126
+ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_28_Conditional_7_Template(rf, ctx) { if (rf & 1) {
127
+ i0.ɵɵelement(0, "mj-task-graph-editor", 35);
128
+ } if (rf & 2) {
129
+ const ctx_r1 = i0.ɵɵnextContext(3);
130
+ i0.ɵɵproperty("Spec", ctx_r1.stepTaskGraph)("NodePositions", ctx_r1.stepTaskGraphPositions)("ReadOnly", true)("ShowPalette", false)("ShowLegend", false);
131
+ } }
120
132
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_28_Template(rf, ctx) { if (rf & 1) {
121
133
  const _r9 = i0.ɵɵgetCurrentView();
122
134
  i0.ɵɵelementStart(0, "div", 14)(1, "div", 30);
@@ -126,18 +138,19 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_28_Template(rf,
126
138
  i0.ɵɵelement(4, "i", 33);
127
139
  i0.ɵɵtext(5, " Save as Workflow ");
128
140
  i0.ɵɵelementEnd()();
129
- i0.ɵɵelement(6, "mj-task-graph-editor", 34);
141
+ i0.ɵɵconditionalCreate(6, AIAgentRunStepDetailComponent_Conditional_0_Conditional_28_Conditional_6_Template, 1, 3, "mj-task-graph-run-view", 34)(7, AIAgentRunStepDetailComponent_Conditional_0_Conditional_28_Conditional_7_Template, 1, 5, "mj-task-graph-editor", 35);
130
142
  i0.ɵɵelementEnd();
131
143
  } if (rf & 2) {
144
+ let tmp_4_0;
132
145
  const ctx_r1 = i0.ɵɵnextContext(2);
133
146
  i0.ɵɵadvance(2);
134
147
  i0.ɵɵconditional(ctx_r1.stepTaskGraphWasFolded ? 2 : -1);
135
148
  i0.ɵɵadvance(4);
136
- i0.ɵɵproperty("Spec", ctx_r1.stepTaskGraph)("NodePositions", ctx_r1.stepTaskGraphPositions)("ReadOnly", true)("ShowPalette", false);
149
+ i0.ɵɵconditional((tmp_4_0 = ctx_r1.stepTaskGraphParentTaskID) ? 6 : 7, tmp_4_0);
137
150
  } }
138
151
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
139
- i0.ɵɵelementStart(0, "div", 39);
140
- i0.ɵɵelement(1, "i", 46);
152
+ i0.ɵɵelementStart(0, "div", 40);
153
+ i0.ɵɵelement(1, "i", 47);
141
154
  i0.ɵɵtext(2);
142
155
  i0.ɵɵelementEnd();
143
156
  } if (rf & 2) {
@@ -146,45 +159,45 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_For_2_Condit
146
159
  i0.ɵɵtextInterpolate1(" ", inv_r10.Reason, " ");
147
160
  } }
148
161
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_For_2_Template(rf, ctx) { if (rf & 1) {
149
- i0.ɵɵelementStart(0, "div", 35)(1, "div", 36)(2, "span", 37);
162
+ i0.ɵɵelementStart(0, "div", 36)(1, "div", 37)(2, "span", 38);
150
163
  i0.ɵɵelement(3, "i", 27);
151
164
  i0.ɵɵtext(4);
152
165
  i0.ɵɵelementEnd();
153
- i0.ɵɵelementStart(5, "span", 38);
166
+ i0.ɵɵelementStart(5, "span", 39);
154
167
  i0.ɵɵtext(6);
155
168
  i0.ɵɵelementEnd()();
156
- i0.ɵɵconditionalCreate(7, AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_For_2_Conditional_7_Template, 3, 1, "div", 39);
157
- i0.ɵɵelementStart(8, "div", 40)(9, "div", 41);
169
+ i0.ɵɵconditionalCreate(7, AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_For_2_Conditional_7_Template, 3, 1, "div", 40);
170
+ i0.ɵɵelementStart(8, "div", 41)(9, "div", 42);
158
171
  i0.ɵɵtext(10, "Provenance of Authority");
159
172
  i0.ɵɵelementEnd();
160
- i0.ɵɵelementStart(11, "div", 42)(12, "span", 43);
173
+ i0.ɵɵelementStart(11, "div", 43)(12, "span", 44);
161
174
  i0.ɵɵtext(13, "Requested By");
162
175
  i0.ɵɵelementEnd();
163
- i0.ɵɵelementStart(14, "span", 44);
176
+ i0.ɵɵelementStart(14, "span", 45);
164
177
  i0.ɵɵtext(15);
165
178
  i0.ɵɵelementEnd()();
166
- i0.ɵɵelementStart(16, "div", 42)(17, "span", 43);
179
+ i0.ɵɵelementStart(16, "div", 43)(17, "span", 44);
167
180
  i0.ɵɵtext(18, "Agent AcceptsSkills");
168
181
  i0.ɵɵelementEnd();
169
- i0.ɵɵelementStart(19, "span", 44);
182
+ i0.ɵɵelementStart(19, "span", 45);
170
183
  i0.ɵɵtext(20);
171
184
  i0.ɵɵelementEnd()();
172
- i0.ɵɵelementStart(21, "div", 42)(22, "span", 43);
185
+ i0.ɵɵelementStart(21, "div", 43)(22, "span", 44);
173
186
  i0.ɵɵtext(23, "Skill ActivationMode");
174
187
  i0.ɵɵelementEnd();
175
- i0.ɵɵelementStart(24, "span", 44);
188
+ i0.ɵɵelementStart(24, "span", 45);
176
189
  i0.ɵɵtext(25);
177
190
  i0.ɵɵelementEnd()();
178
- i0.ɵɵelementStart(26, "div", 42)(27, "span", 43);
191
+ i0.ɵɵelementStart(26, "div", 43)(27, "span", 44);
179
192
  i0.ɵɵtext(28, "Agent SkillActivationMode");
180
193
  i0.ɵɵelementEnd();
181
- i0.ɵɵelementStart(29, "span", 44);
194
+ i0.ɵɵelementStart(29, "span", 45);
182
195
  i0.ɵɵtext(30);
183
196
  i0.ɵɵelementEnd()();
184
- i0.ɵɵelementStart(31, "div", 42)(32, "span", 43);
197
+ i0.ɵɵelementStart(31, "div", 43)(32, "span", 44);
185
198
  i0.ɵɵtext(33, "Skill ID");
186
199
  i0.ɵɵelementEnd();
187
- i0.ɵɵelementStart(34, "span", 45);
200
+ i0.ɵɵelementStart(34, "span", 46);
188
201
  i0.ɵɵtext(35);
189
202
  i0.ɵɵelementEnd()()()();
190
203
  } if (rf & 2) {
@@ -212,7 +225,7 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_For_2_Templa
212
225
  } }
213
226
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_Template(rf, ctx) { if (rf & 1) {
214
227
  i0.ɵɵelementStart(0, "div", 15);
215
- i0.ɵɵrepeaterCreate(1, AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_For_2_Template, 36, 10, "div", 35, _forTrack0);
228
+ i0.ɵɵrepeaterCreate(1, AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_For_2_Template, 36, 10, "div", 36, _forTrack0);
216
229
  i0.ɵɵelementEnd();
217
230
  } if (rf & 2) {
218
231
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -221,7 +234,7 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_Template(rf,
221
234
  } }
222
235
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_30_Template(rf, ctx) { if (rf & 1) {
223
236
  i0.ɵɵelementStart(0, "div", 16);
224
- i0.ɵɵelement(1, "mj-deep-diff", 47);
237
+ i0.ɵɵelement(1, "mj-deep-diff", 48);
225
238
  i0.ɵɵelementEnd();
226
239
  } if (rf & 2) {
227
240
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -229,7 +242,7 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_30_Template(rf,
229
242
  i0.ɵɵproperty("oldValue", ctx_r1.stepPayloadAtStartObject)("newValue", ctx_r1.stepPayloadAtEndObject)("title", "")("showSummary", true)("showUnchanged", false)("expandAll", false)("maxDepth", 8)("maxStringLength", 150)("treatNullAsUndefined", true);
230
243
  } }
231
244
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_1_Template(rf, ctx) { if (rf & 1) {
232
- i0.ɵɵelement(0, "mj-deep-diff", 47);
245
+ i0.ɵɵelement(0, "mj-deep-diff", 48);
233
246
  } if (rf & 2) {
234
247
  const ctx_r1 = i0.ɵɵnextContext(4);
235
248
  i0.ɵɵproperty("oldValue", ctx_r1.stepScratchpadInput)("newValue", ctx_r1.stepScratchpadOutput)("title", "")("showSummary", true)("showUnchanged", false)("expandAll", true)("maxDepth", 6)("maxStringLength", 300)("treatNullAsUndefined", true);
@@ -238,9 +251,9 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_
238
251
  i0.ɵɵelementContainer(0);
239
252
  } }
240
253
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_2_Template(rf, ctx) { if (rf & 1) {
241
- i0.ɵɵelement(0, "mj-empty-state", 56);
242
- i0.ɵɵelementStart(1, "div", 57);
243
- i0.ɵɵtemplate(2, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_2_ng_container_2_Template, 1, 0, "ng-container", 58);
254
+ i0.ɵɵelement(0, "mj-empty-state", 57);
255
+ i0.ɵɵelementStart(1, "div", 58);
256
+ i0.ɵɵtemplate(2, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_2_ng_container_2_Template, 1, 0, "ng-container", 59);
244
257
  i0.ɵɵelementEnd();
245
258
  } if (rf & 2) {
246
259
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -249,11 +262,11 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_
249
262
  i0.ɵɵproperty("ngTemplateOutlet", scratchpadSnapshotTpl_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, ctx_r1.stepScratchpadOutput));
250
263
  } }
251
264
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_3_Template(rf, ctx) { if (rf & 1) {
252
- i0.ɵɵelement(0, "mj-empty-state", 55);
265
+ i0.ɵɵelement(0, "mj-empty-state", 56);
253
266
  } }
254
267
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Template(rf, ctx) { if (rf & 1) {
255
- i0.ɵɵelementStart(0, "div", 53);
256
- i0.ɵɵconditionalCreate(1, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_1_Template, 1, 9, "mj-deep-diff", 47)(2, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_2_Template, 3, 4)(3, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_3_Template, 1, 0, "mj-empty-state", 55);
268
+ i0.ɵɵelementStart(0, "div", 54);
269
+ i0.ɵɵconditionalCreate(1, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_1_Template, 1, 9, "mj-deep-diff", 48)(2, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_2_Template, 3, 4)(3, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Conditional_3_Template, 1, 0, "mj-empty-state", 56);
257
270
  i0.ɵɵelementEnd();
258
271
  } if (rf & 2) {
259
272
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -264,18 +277,18 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_
264
277
  i0.ɵɵelementContainer(0);
265
278
  } }
266
279
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Conditional_1_Template(rf, ctx) { if (rf & 1) {
267
- i0.ɵɵtemplate(0, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Conditional_1_ng_container_0_Template, 1, 0, "ng-container", 58);
280
+ i0.ɵɵtemplate(0, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Conditional_1_ng_container_0_Template, 1, 0, "ng-container", 59);
268
281
  } if (rf & 2) {
269
282
  const ctx_r1 = i0.ɵɵnextContext(4);
270
283
  const scratchpadSnapshotTpl_r12 = i0.ɵɵreference(2);
271
284
  i0.ɵɵproperty("ngTemplateOutlet", scratchpadSnapshotTpl_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, ctx_r1.stepScratchpadInput));
272
285
  } }
273
286
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Conditional_2_Template(rf, ctx) { if (rf & 1) {
274
- i0.ɵɵelement(0, "mj-empty-state", 59);
287
+ i0.ɵɵelement(0, "mj-empty-state", 60);
275
288
  } }
276
289
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Template(rf, ctx) { if (rf & 1) {
277
- i0.ɵɵelementStart(0, "div", 54);
278
- i0.ɵɵconditionalCreate(1, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Conditional_1_Template, 1, 4, "ng-container")(2, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Conditional_2_Template, 1, 0, "mj-empty-state", 59);
290
+ i0.ɵɵelementStart(0, "div", 55);
291
+ i0.ɵɵconditionalCreate(1, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Conditional_1_Template, 1, 4, "ng-container")(2, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Conditional_2_Template, 1, 0, "mj-empty-state", 60);
279
292
  i0.ɵɵelementEnd();
280
293
  } if (rf & 2) {
281
294
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -286,18 +299,18 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_
286
299
  i0.ɵɵelementContainer(0);
287
300
  } }
288
301
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Conditional_1_Template(rf, ctx) { if (rf & 1) {
289
- i0.ɵɵtemplate(0, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Conditional_1_ng_container_0_Template, 1, 0, "ng-container", 58);
302
+ i0.ɵɵtemplate(0, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Conditional_1_ng_container_0_Template, 1, 0, "ng-container", 59);
290
303
  } if (rf & 2) {
291
304
  const ctx_r1 = i0.ɵɵnextContext(4);
292
305
  const scratchpadSnapshotTpl_r12 = i0.ɵɵreference(2);
293
306
  i0.ɵɵproperty("ngTemplateOutlet", scratchpadSnapshotTpl_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, ctx_r1.stepScratchpadOutput));
294
307
  } }
295
308
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Conditional_2_Template(rf, ctx) { if (rf & 1) {
296
- i0.ɵɵelement(0, "mj-empty-state", 60);
309
+ i0.ɵɵelement(0, "mj-empty-state", 61);
297
310
  } }
298
311
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Template(rf, ctx) { if (rf & 1) {
299
- i0.ɵɵelementStart(0, "div", 54);
300
- i0.ɵɵconditionalCreate(1, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Conditional_1_Template, 1, 4, "ng-container")(2, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Conditional_2_Template, 1, 0, "mj-empty-state", 60);
312
+ i0.ɵɵelementStart(0, "div", 55);
313
+ i0.ɵɵconditionalCreate(1, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Conditional_1_Template, 1, 4, "ng-container")(2, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Conditional_2_Template, 1, 0, "mj-empty-state", 61);
301
314
  i0.ɵɵelementEnd();
302
315
  } if (rf & 2) {
303
316
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -306,24 +319,24 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_
306
319
  } }
307
320
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Template(rf, ctx) { if (rf & 1) {
308
321
  const _r11 = i0.ɵɵgetCurrentView();
309
- i0.ɵɵelementStart(0, "div", 17)(1, "div", 48)(2, "button", 49);
322
+ i0.ɵɵelementStart(0, "div", 17)(1, "div", 49)(2, "button", 50);
310
323
  i0.ɵɵlistener("click", function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.scratchpadSubTab = "diff"); });
311
- i0.ɵɵelement(3, "i", 50);
324
+ i0.ɵɵelement(3, "i", 51);
312
325
  i0.ɵɵtext(4, " Diff ");
313
326
  i0.ɵɵelementEnd();
314
- i0.ɵɵelementStart(5, "button", 49);
327
+ i0.ɵɵelementStart(5, "button", 50);
315
328
  i0.ɵɵlistener("click", function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.scratchpadSubTab = "input"); });
316
- i0.ɵɵelement(6, "i", 51);
329
+ i0.ɵɵelement(6, "i", 52);
317
330
  i0.ɵɵtext(7, " Input ");
318
331
  i0.ɵɵelementEnd();
319
- i0.ɵɵelementStart(8, "button", 49);
332
+ i0.ɵɵelementStart(8, "button", 50);
320
333
  i0.ɵɵlistener("click", function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.scratchpadSubTab = "output"); });
321
- i0.ɵɵelement(9, "i", 52);
334
+ i0.ɵɵelement(9, "i", 53);
322
335
  i0.ɵɵtext(10, " Output ");
323
336
  i0.ɵɵelementEnd()();
324
- i0.ɵɵconditionalCreate(11, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Template, 4, 1, "div", 53);
325
- i0.ɵɵconditionalCreate(12, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Template, 3, 1, "div", 54);
326
- i0.ɵɵconditionalCreate(13, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Template, 3, 1, "div", 54);
337
+ i0.ɵɵconditionalCreate(11, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_11_Template, 4, 1, "div", 54);
338
+ i0.ɵɵconditionalCreate(12, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_12_Template, 3, 1, "div", 55);
339
+ i0.ɵɵconditionalCreate(13, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Conditional_13_Template, 3, 1, "div", 55);
327
340
  i0.ɵɵelementEnd();
328
341
  } if (rf & 2) {
329
342
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -342,11 +355,11 @@ function AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Template(rf,
342
355
  } }
343
356
  function AIAgentRunStepDetailComponent_Conditional_0_Conditional_32_Template(rf, ctx) { if (rf & 1) {
344
357
  const _r13 = i0.ɵɵgetCurrentView();
345
- i0.ɵɵelementStart(0, "div", 18)(1, "div", 61)(2, "button", 62);
358
+ i0.ɵɵelementStart(0, "div", 18)(1, "div", 62)(2, "button", 63);
346
359
  i0.ɵɵlistener("click", function AIAgentRunStepDetailComponent_Conditional_0_Conditional_32_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onCopyToClipboard()); });
347
- i0.ɵɵelement(3, "i", 63);
360
+ i0.ɵɵelement(3, "i", 64);
348
361
  i0.ɵɵelementEnd()();
349
- i0.ɵɵelementStart(4, "mj-code-editor", 64);
362
+ i0.ɵɵelementStart(4, "mj-code-editor", 65);
350
363
  i0.ɵɵtwoWayListener("ngModelChange", function AIAgentRunStepDetailComponent_Conditional_0_Conditional_32_Template_mj_code_editor_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.selectedItemJsonString, $event) || (ctx_r1.selectedItemJsonString = $event); return i0.ɵɵresetView($event); });
351
364
  i0.ɵɵelementEnd()();
352
365
  } if (rf & 2) {
@@ -387,7 +400,7 @@ function AIAgentRunStepDetailComponent_Conditional_0_Template(rf, ctx) { if (rf
387
400
  i0.ɵɵconditionalCreate(25, AIAgentRunStepDetailComponent_Conditional_0_Conditional_25_Template, 4, 0, "div", 11);
388
401
  i0.ɵɵconditionalCreate(26, AIAgentRunStepDetailComponent_Conditional_0_Conditional_26_Template, 8, 6, "div", 12);
389
402
  i0.ɵɵelementStart(27, "div", 13);
390
- i0.ɵɵconditionalCreate(28, AIAgentRunStepDetailComponent_Conditional_0_Conditional_28_Template, 7, 5, "div", 14);
403
+ i0.ɵɵconditionalCreate(28, AIAgentRunStepDetailComponent_Conditional_0_Conditional_28_Template, 8, 2, "div", 14);
391
404
  i0.ɵɵconditionalCreate(29, AIAgentRunStepDetailComponent_Conditional_0_Conditional_29_Template, 3, 0, "div", 15);
392
405
  i0.ɵɵconditionalCreate(30, AIAgentRunStepDetailComponent_Conditional_0_Conditional_30_Template, 2, 9, "div", 16);
393
406
  i0.ɵɵconditionalCreate(31, AIAgentRunStepDetailComponent_Conditional_0_Conditional_31_Template, 14, 9, "div", 17);
@@ -427,11 +440,11 @@ function AIAgentRunStepDetailComponent_Conditional_0_Template(rf, ctx) { if (rf
427
440
  i0.ɵɵconditional(ctx_r1.detailPaneTab === "json" || !ctx_r1.showStepPayloadDiff && !ctx_r1.showScratchpadTab ? 32 : -1);
428
441
  } }
429
442
  function AIAgentRunStepDetailComponent_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
430
- i0.ɵɵelementStart(0, "div", 65)(1, "h4");
431
- i0.ɵɵelement(2, "i", 68);
443
+ i0.ɵɵelementStart(0, "div", 66)(1, "h4");
444
+ i0.ɵɵelement(2, "i", 69);
432
445
  i0.ɵɵtext(3, " Notes");
433
446
  i0.ɵɵelementEnd();
434
- i0.ɵɵelementStart(4, "div", 69);
447
+ i0.ɵɵelementStart(4, "div", 70);
435
448
  i0.ɵɵtext(5);
436
449
  i0.ɵɵelementEnd()();
437
450
  } if (rf & 2) {
@@ -440,19 +453,19 @@ function AIAgentRunStepDetailComponent_ng_template_1_Conditional_1_Template(rf,
440
453
  i0.ɵɵtextInterpolate(snapshot_r14.notes);
441
454
  } }
442
455
  function AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_2_Template(rf, ctx) { if (rf & 1) {
443
- i0.ɵɵelement(0, "i", 74);
456
+ i0.ɵɵelement(0, "i", 75);
444
457
  } }
445
458
  function AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_3_Template(rf, ctx) { if (rf & 1) {
446
- i0.ɵɵelement(0, "i", 75);
459
+ i0.ɵɵelement(0, "i", 76);
447
460
  } }
448
461
  function AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_4_Template(rf, ctx) { if (rf & 1) {
449
- i0.ɵɵelement(0, "i", 76);
462
+ i0.ɵɵelement(0, "i", 77);
450
463
  } }
451
464
  function AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_5_Template(rf, ctx) { if (rf & 1) {
452
- i0.ɵɵelement(0, "i", 77);
465
+ i0.ɵɵelement(0, "i", 78);
453
466
  } }
454
467
  function AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Conditional_11_Template(rf, ctx) { if (rf & 1) {
455
- i0.ɵɵelementStart(0, "span", 81);
468
+ i0.ɵɵelementStart(0, "span", 82);
456
469
  i0.ɵɵtext(1);
457
470
  i0.ɵɵelementEnd();
458
471
  } if (rf & 2) {
@@ -461,18 +474,18 @@ function AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Conditi
461
474
  i0.ɵɵtextInterpolate(task_r15.notes);
462
475
  } }
463
476
  function AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Template(rf, ctx) { if (rf & 1) {
464
- i0.ɵɵelementStart(0, "div", 72)(1, "span", 73);
465
- i0.ɵɵconditionalCreate(2, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_2_Template, 1, 0, "i", 74)(3, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_3_Template, 1, 0, "i", 75)(4, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_4_Template, 1, 0, "i", 76)(5, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_5_Template, 1, 0, "i", 77);
477
+ i0.ɵɵelementStart(0, "div", 73)(1, "span", 74);
478
+ i0.ɵɵconditionalCreate(2, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_2_Template, 1, 0, "i", 75)(3, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_3_Template, 1, 0, "i", 76)(4, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_4_Template, 1, 0, "i", 77)(5, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Case_5_Template, 1, 0, "i", 78);
466
479
  i0.ɵɵelementEnd();
467
- i0.ɵɵelementStart(6, "div", 78)(7, "span", 79);
480
+ i0.ɵɵelementStart(6, "div", 79)(7, "span", 80);
468
481
  i0.ɵɵtext(8);
469
482
  i0.ɵɵelementEnd();
470
- i0.ɵɵelementStart(9, "span", 80);
483
+ i0.ɵɵelementStart(9, "span", 81);
471
484
  i0.ɵɵtext(10);
472
485
  i0.ɵɵelementEnd();
473
- i0.ɵɵconditionalCreate(11, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Conditional_11_Template, 2, 1, "span", 81);
486
+ i0.ɵɵconditionalCreate(11, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Conditional_11_Template, 2, 1, "span", 82);
474
487
  i0.ɵɵelementEnd();
475
- i0.ɵɵelementStart(12, "span", 82);
488
+ i0.ɵɵelementStart(12, "span", 83);
476
489
  i0.ɵɵtext(13);
477
490
  i0.ɵɵelementEnd()();
478
491
  } if (rf & 2) {
@@ -495,12 +508,12 @@ function AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Templat
495
508
  i0.ɵɵtextInterpolate(task_r15.status);
496
509
  } }
497
510
  function AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
498
- i0.ɵɵelementStart(0, "div", 66)(1, "h4");
499
- i0.ɵɵelement(2, "i", 70);
511
+ i0.ɵɵelementStart(0, "div", 67)(1, "h4");
512
+ i0.ɵɵelement(2, "i", 71);
500
513
  i0.ɵɵtext(3);
501
514
  i0.ɵɵelementEnd();
502
- i0.ɵɵelementStart(4, "div", 71);
503
- i0.ɵɵrepeaterCreate(5, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Template, 14, 8, "div", 72, _forTrack1);
515
+ i0.ɵɵelementStart(4, "div", 72);
516
+ i0.ɵɵrepeaterCreate(5, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_For_6_Template, 14, 8, "div", 73, _forTrack1);
504
517
  i0.ɵɵelementEnd()();
505
518
  } if (rf & 2) {
506
519
  const snapshot_r14 = i0.ɵɵnextContext().$implicit;
@@ -510,13 +523,13 @@ function AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_Template(rf,
510
523
  i0.ɵɵrepeater(snapshot_r14.tasks);
511
524
  } }
512
525
  function AIAgentRunStepDetailComponent_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
513
- i0.ɵɵelement(0, "mj-empty-state", 67);
526
+ i0.ɵɵelement(0, "mj-empty-state", 68);
514
527
  } }
515
528
  function AIAgentRunStepDetailComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
516
- i0.ɵɵelementStart(0, "div", 57);
517
- i0.ɵɵconditionalCreate(1, AIAgentRunStepDetailComponent_ng_template_1_Conditional_1_Template, 6, 1, "div", 65);
518
- i0.ɵɵconditionalCreate(2, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_Template, 7, 1, "div", 66);
519
- i0.ɵɵconditionalCreate(3, AIAgentRunStepDetailComponent_ng_template_1_Conditional_3_Template, 1, 0, "mj-empty-state", 67);
529
+ i0.ɵɵelementStart(0, "div", 58);
530
+ i0.ɵɵconditionalCreate(1, AIAgentRunStepDetailComponent_ng_template_1_Conditional_1_Template, 6, 1, "div", 66);
531
+ i0.ɵɵconditionalCreate(2, AIAgentRunStepDetailComponent_ng_template_1_Conditional_2_Template, 7, 1, "div", 67);
532
+ i0.ɵɵconditionalCreate(3, AIAgentRunStepDetailComponent_ng_template_1_Conditional_3_Template, 1, 0, "mj-empty-state", 68);
520
533
  i0.ɵɵelementEnd();
521
534
  } if (rf & 2) {
522
535
  const snapshot_r14 = ctx.$implicit;
@@ -531,6 +544,8 @@ export class AIAgentRunStepDetailComponent {
531
544
  constructor(cdr) {
532
545
  this.cdr = cdr;
533
546
  this.selectedTimelineItem = null;
547
+ /** The provider the host is on, so the run view reads through the right one. */
548
+ this.Provider = null;
534
549
  this.closePanel = new EventEmitter();
535
550
  this.navigateToActionLog = new EventEmitter();
536
551
  this.copyToClipboard = new EventEmitter();
@@ -812,6 +827,32 @@ export class AIAgentRunStepDetailComponent {
812
827
  return null;
813
828
  return ResolveTaskGraphPositions(spec);
814
829
  }
830
+ /**
831
+ * The graph's parent `MJ: Tasks` row, when this step actually dispatched one.
832
+ *
833
+ * **This is what turns the panel from a picture of the plan into a picture of the run.** With it,
834
+ * the same `mj-task-graph-run-view` the Workflows app uses reads the Task rows and draws what
835
+ * happened — declined branches hatched, untravelled edges absent, the toolbar available and the
836
+ * legend off. Without it the panel had only the SPEC, so it rendered in design mode: every branch
837
+ * drawn as though it had run, on a canvas that could not know otherwise.
838
+ *
839
+ * Null for a graph that was constant-folded (D9) — it never reached the dispatcher, so there are no
840
+ * rows and no run to show. The spec view is the honest rendering there: it is a plan, and it is
841
+ * drawn as one.
842
+ */
843
+ get stepTaskGraphParentTaskID() {
844
+ const raw = this.selectedTimelineItem?.data?.OutputData;
845
+ if (!raw)
846
+ return null;
847
+ try {
848
+ const parsed = typeof raw === 'string' ? JSON.parse(raw) : raw;
849
+ const id = parsed?.parentTaskID;
850
+ return typeof id === 'string' && id.length > 0 ? id : null;
851
+ }
852
+ catch {
853
+ return null;
854
+ }
855
+ }
815
856
  /** True when the recorded graph was constant-folded rather than dispatched (D9). */
816
857
  get stepTaskGraphWasFolded() {
817
858
  if (!this.selectedTimelineItem)
@@ -907,18 +948,20 @@ export class AIAgentRunStepDetailComponent {
907
948
  }
908
949
  }
909
950
  static { this.ɵfac = function AIAgentRunStepDetailComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AIAgentRunStepDetailComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
910
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentRunStepDetailComponent, selectors: [["mj-ai-agent-run-step-detail"]], inputs: { selectedTimelineItem: "selectedTimelineItem" }, outputs: { closePanel: "closePanel", navigateToActionLog: "navigateToActionLog", copyToClipboard: "copyToClipboard", saveAsWorkflowRequested: "saveAsWorkflowRequested" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 1, consts: [["scratchpadSnapshotTpl", ""], [1, "json-detail-pane"], [1, "json-pane-header"], [1, "fas", 3, "ngClass"], ["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"], [1, "step-notice"], [1, "action-link"], [1, "detail-pane-tabs"], [1, "detail-pane-content"], [1, "detail-graph"], [1, "skills-content"], [1, "step-payload-diff"], [1, "scratchpad-content"], [1, "json-viewer"], ["Size", "sm", 3, "Variant", "Message"], [1, "btn-link", 3, "click"], [1, "fas", "fa-external-link-alt"], [1, "detail-tab", 3, "active"], [1, "detail-tab", 3, "click"], [1, "fa-solid", "fa-code"], [1, "fa-solid", "fa-diagram-project"], [1, "fa-solid", "fa-code-branch"], [1, "fa-solid", "fa-wand-magic-sparkles"], [1, "tab-badge"], [1, "fa-solid", "fa-clipboard-list"], [1, "detail-graph__actions"], ["Variant", "info", "Size", "sm", "Message", "This ran inline as a single step \u2014 a workflow of one needs no scheduling. You can still save it."], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-floppy-disk"], [1, "detail-graph__canvas", 3, "Spec", "NodePositions", "ReadOnly", "ShowPalette"], [1, "skill-invocation-card"], [1, "skill-invocation-header"], [1, "skill-invocation-name"], [1, "skill-invocation-type"], [1, "skill-invocation-reason"], [1, "skill-invocation-provenance"], [1, "provenance-title"], [1, "provenance-row"], [1, "provenance-label"], [1, "provenance-value"], [1, "provenance-value", "provenance-id"], [1, "fa-solid", "fa-quote-left"], [3, "oldValue", "newValue", "title", "showSummary", "showUnchanged", "expandAll", "maxDepth", "maxStringLength", "treatNullAsUndefined"], [1, "scratchpad-sub-tabs"], [1, "scratchpad-sub-tab", 3, "click"], [1, "fa-solid", "fa-code-compare"], [1, "fa-solid", "fa-arrow-right-to-bracket"], [1, "fa-solid", "fa-arrow-right-from-bracket"], [1, "scratchpad-diff-view"], [1, "scratchpad-snapshot-view"], ["Size", "compact", "Icon", "fa-solid fa-circle-info", "Title", "No scratchpad changes in this step"], ["Size", "compact", "Icon", "fa-solid fa-circle-plus", "Title", "Scratchpad created in this step (no prior state)"], [1, "scratchpad-snapshot"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["Size", "compact", "Icon", "fa-solid fa-circle-info", "Title", "No scratchpad input for this step"], ["Size", "compact", "Icon", "fa-solid fa-circle-info", "Title", "No scratchpad output for this step"], [1, "json-toolbar"], ["title", "Copy JSON", 1, "btn-icon", 3, "click"], [1, "fas", "fa-copy"], [2, "width", "100%", 3, "ngModelChange", "ngModel", "language", "readonly"], [1, "scratchpad-notes-section"], [1, "scratchpad-tasks-section"], ["Size", "compact", "Icon", "fa-solid fa-circle-info", "Title", "Empty scratchpad"], [1, "fa-solid", "fa-note-sticky"], [1, "scratchpad-notes-content"], [1, "fa-solid", "fa-list-check"], [1, "scratchpad-task-list"], [1, "scratchpad-task-item"], [1, "task-status-indicator"], [1, "fa-solid", "fa-circle-check"], [1, "fa-solid", "fa-spinner"], [1, "fa-solid", "fa-circle-xmark"], [1, "fa-regular", "fa-circle"], [1, "task-content"], [1, "task-id"], [1, "task-title"], [1, "task-notes"], [1, "task-status-badge"]], template: function AIAgentRunStepDetailComponent_Template(rf, ctx) { if (rf & 1) {
951
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentRunStepDetailComponent, selectors: [["mj-ai-agent-run-step-detail"]], inputs: { selectedTimelineItem: "selectedTimelineItem", Provider: "Provider" }, outputs: { closePanel: "closePanel", navigateToActionLog: "navigateToActionLog", copyToClipboard: "copyToClipboard", saveAsWorkflowRequested: "saveAsWorkflowRequested" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 1, consts: [["scratchpadSnapshotTpl", ""], [1, "json-detail-pane"], [1, "json-pane-header"], [1, "fas", 3, "ngClass"], ["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"], [1, "step-notice"], [1, "action-link"], [1, "detail-pane-tabs"], [1, "detail-pane-content"], [1, "detail-graph"], [1, "skills-content"], [1, "step-payload-diff"], [1, "scratchpad-content"], [1, "json-viewer"], ["Size", "sm", 3, "Variant", "Message"], [1, "btn-link", 3, "click"], [1, "fas", "fa-external-link-alt"], [1, "detail-tab", 3, "active"], [1, "detail-tab", 3, "click"], [1, "fa-solid", "fa-code"], [1, "fa-solid", "fa-diagram-project"], [1, "fa-solid", "fa-code-branch"], [1, "fa-solid", "fa-wand-magic-sparkles"], [1, "tab-badge"], [1, "fa-solid", "fa-clipboard-list"], [1, "detail-graph__actions"], ["Variant", "info", "Size", "sm", "Message", "This ran inline as a single step \u2014 a workflow of one needs no scheduling. You can still save it."], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-floppy-disk"], ["Height", "100%", 1, "detail-graph__canvas", 3, "Provider", "ParentTaskID", "WorkflowName"], [1, "detail-graph__canvas", 3, "Spec", "NodePositions", "ReadOnly", "ShowPalette", "ShowLegend"], [1, "skill-invocation-card"], [1, "skill-invocation-header"], [1, "skill-invocation-name"], [1, "skill-invocation-type"], [1, "skill-invocation-reason"], [1, "skill-invocation-provenance"], [1, "provenance-title"], [1, "provenance-row"], [1, "provenance-label"], [1, "provenance-value"], [1, "provenance-value", "provenance-id"], [1, "fa-solid", "fa-quote-left"], [3, "oldValue", "newValue", "title", "showSummary", "showUnchanged", "expandAll", "maxDepth", "maxStringLength", "treatNullAsUndefined"], [1, "scratchpad-sub-tabs"], [1, "scratchpad-sub-tab", 3, "click"], [1, "fa-solid", "fa-code-compare"], [1, "fa-solid", "fa-arrow-right-to-bracket"], [1, "fa-solid", "fa-arrow-right-from-bracket"], [1, "scratchpad-diff-view"], [1, "scratchpad-snapshot-view"], ["Size", "compact", "Icon", "fa-solid fa-circle-info", "Title", "No scratchpad changes in this step"], ["Size", "compact", "Icon", "fa-solid fa-circle-plus", "Title", "Scratchpad created in this step (no prior state)"], [1, "scratchpad-snapshot"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["Size", "compact", "Icon", "fa-solid fa-circle-info", "Title", "No scratchpad input for this step"], ["Size", "compact", "Icon", "fa-solid fa-circle-info", "Title", "No scratchpad output for this step"], [1, "json-toolbar"], ["title", "Copy JSON", 1, "btn-icon", 3, "click"], [1, "fas", "fa-copy"], [2, "width", "100%", 3, "ngModelChange", "ngModel", "language", "readonly"], [1, "scratchpad-notes-section"], [1, "scratchpad-tasks-section"], ["Size", "compact", "Icon", "fa-solid fa-circle-info", "Title", "Empty scratchpad"], [1, "fa-solid", "fa-note-sticky"], [1, "scratchpad-notes-content"], [1, "fa-solid", "fa-list-check"], [1, "scratchpad-task-list"], [1, "scratchpad-task-item"], [1, "task-status-indicator"], [1, "fa-solid", "fa-circle-check"], [1, "fa-solid", "fa-spinner"], [1, "fa-solid", "fa-circle-xmark"], [1, "fa-regular", "fa-circle"], [1, "task-content"], [1, "task-id"], [1, "task-title"], [1, "task-notes"], [1, "task-status-badge"]], template: function AIAgentRunStepDetailComponent_Template(rf, ctx) { if (rf & 1) {
911
952
  i0.ɵɵconditionalCreate(0, AIAgentRunStepDetailComponent_Conditional_0_Template, 33, 16, "div", 1);
912
953
  i0.ɵɵtemplate(1, AIAgentRunStepDetailComponent_ng_template_1_Template, 4, 3, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
913
954
  } if (rf & 2) {
914
955
  i0.ɵɵconditional(ctx.selectedTimelineItem ? 0 : -1);
915
- } }, dependencies: [i1.NgClass, i1.NgTemplateOutlet, i2.NgControlStatus, i2.NgModel, i3.MJEmptyStateComponent, i3.MJAlertComponent, i3.MJButtonDirective, i4.CodeEditorComponent, i5.DeepDiffComponent, i6.TaskGraphEditorComponent], styles: [".json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--mj-bg-surface-sunken);\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n background: none;\n border: none;\n padding: 4px 8px;\n cursor: pointer;\n color: var(--mj-text-muted);\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n color: var(--mj-text-secondary);\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;\n display: flex;\n gap: 24px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n\n.meta-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-badge.small[_ngcontent-%COMP%] {\n padding: 2px 6px;\n font-size: 10px;\n}\n\n.status-badge[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.status-badge[data-status=\"Completed\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-badge[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.status-badge[data-status=\"Cancelled\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.action-link[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\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 font-size: 13px;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.detail-pane-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 0 16px;\n}\n\n.detail-tab[_ngcontent-%COMP%] {\n padding: 12px 16px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 13px;\n color: var(--mj-text-muted);\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, transparent);\n}\n\n.detail-tab.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.detail-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0; \n\n}\n\n\n\n\n\n\n\n\n.json-viewer[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n min-height: 0; \n\n}\n\n.json-toolbar[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 10;\n display: flex;\n gap: 4px;\n}\n\n.step-payload-diff[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n min-height: 0; \n\n}\n\n\n\n.json-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n\n\n.tab-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 9px;\n font-size: 10px;\n font-weight: 700;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n\n\n.scratchpad-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n}\n\n\n\n.scratchpad-sub-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n padding: 0 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n}\n\n.scratchpad-sub-tab[_ngcontent-%COMP%] {\n padding: 8px 12px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 12px;\n color: var(--mj-text-muted);\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n\n.scratchpad-sub-tab[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, transparent);\n}\n\n.scratchpad-sub-tab.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n\n\n.scratchpad-diff-view[_ngcontent-%COMP%], \n.scratchpad-snapshot-view[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n min-height: 0;\n}\n\n\n\n.scratchpad-snapshot[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.scratchpad-notes-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], \n.scratchpad-tasks-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.scratchpad-notes-content[_ngcontent-%COMP%] {\n padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n border: 1px solid var(--mj-border-subtle);\n font-size: 13px;\n line-height: 1.5;\n color: var(--mj-text-primary);\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n\n\n.scratchpad-task-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.scratchpad-task-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 6px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-subtle);\n transition: background 0.15s;\n}\n\n.scratchpad-task-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n\n\n.task-status-indicator[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 16px;\n margin-top: 2px;\n font-size: 14px;\n}\n\n.task-status-indicator[data-status=\"completed\"][_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.task-status-indicator[data-status=\"in_progress\"][_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.task-status-indicator[data-status=\"blocked\"][_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.task-status-indicator[data-status=\"pending\"][_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n\n\n.task-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.task-id[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n.task-title[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n line-height: 1.4;\n}\n\n.task-notes[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n font-style: italic;\n}\n\n\n\n.task-status-badge[_ngcontent-%COMP%] {\n flex-shrink: 0;\n padding: 2px 6px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n white-space: nowrap;\n}\n\n.task-status-badge[data-status=\"completed\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.task-status-badge[data-status=\"in_progress\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.task-status-badge[data-status=\"blocked\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.task-status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-text-muted) 15%, var(--mj-bg-surface));\n color: var(--mj-text-muted);\n}\n\n\n\n\n\n.skills-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n}\n\n.skill-invocation-card[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 14px;\n background: var(--mj-bg-surface);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.skill-invocation-card[data-activation=\"auto\"][_ngcontent-%COMP%] {\n border-left-color: var(--mj-status-warning);\n}\n\n.skill-invocation-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.skill-invocation-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.skill-invocation-name[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.skill-invocation-type[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 2px 10px;\n border-radius: 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.skill-invocation-type[data-activation=\"auto\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 12%, var(--mj-bg-surface));\n color: var(--mj-status-warning-text);\n}\n\n.skill-invocation-reason[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 13px;\n font-style: italic;\n color: var(--mj-text-secondary);\n display: flex;\n gap: 8px;\n align-items: baseline;\n}\n\n.skill-invocation-reason[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 10px;\n}\n\n.skill-invocation-provenance[_ngcontent-%COMP%] {\n margin-top: 10px;\n padding-top: 10px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.provenance-title[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n}\n\n.provenance-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n font-size: 12px;\n padding: 2px 0;\n}\n\n.provenance-label[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n.provenance-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.provenance-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n\n\n.detail-graph[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n.detail-graph__actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-sm, 0.5rem);\n padding: var(--mj-space-sm, 0.5rem);\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n\n\n.detail-graph__canvas[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n min-height: 0;\n}\n\n\n\n\n.step-notice[_ngcontent-%COMP%] {\n padding: 0 var(--mj-space-3, 12px) var(--mj-space-2, 8px);\n}"] }); }
956
+ } }, dependencies: [i1.NgClass, i1.NgTemplateOutlet, i2.NgControlStatus, i2.NgModel, i3.MJEmptyStateComponent, i3.MJAlertComponent, i3.MJButtonDirective, i4.CodeEditorComponent, i5.DeepDiffComponent, i6.TaskGraphEditorComponent, i6.TaskGraphRunViewComponent], styles: [".json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--mj-bg-surface-sunken);\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n background: none;\n border: none;\n padding: 4px 8px;\n cursor: pointer;\n color: var(--mj-text-muted);\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n color: var(--mj-text-secondary);\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;\n display: flex;\n gap: 24px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n\n.meta-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-badge.small[_ngcontent-%COMP%] {\n padding: 2px 6px;\n font-size: 10px;\n}\n\n.status-badge[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.status-badge[data-status=\"Completed\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-badge[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.status-badge[data-status=\"Cancelled\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.action-link[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\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 font-size: 13px;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.detail-pane-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 0 16px;\n}\n\n.detail-tab[_ngcontent-%COMP%] {\n padding: 12px 16px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 13px;\n color: var(--mj-text-muted);\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, transparent);\n}\n\n.detail-tab.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.detail-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0; \n\n}\n\n\n\n\n\n\n\n\n.json-viewer[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n min-height: 0; \n\n}\n\n.json-toolbar[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 10;\n display: flex;\n gap: 4px;\n}\n\n.step-payload-diff[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n min-height: 0; \n\n}\n\n\n\n.json-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n\n\n.tab-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 9px;\n font-size: 10px;\n font-weight: 700;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n\n\n.scratchpad-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n}\n\n\n\n.scratchpad-sub-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n padding: 0 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n}\n\n.scratchpad-sub-tab[_ngcontent-%COMP%] {\n padding: 8px 12px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 12px;\n color: var(--mj-text-muted);\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n\n.scratchpad-sub-tab[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, transparent);\n}\n\n.scratchpad-sub-tab.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n\n\n.scratchpad-diff-view[_ngcontent-%COMP%], \n.scratchpad-snapshot-view[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n min-height: 0;\n}\n\n\n\n.scratchpad-snapshot[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.scratchpad-notes-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], \n.scratchpad-tasks-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.scratchpad-notes-content[_ngcontent-%COMP%] {\n padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n border: 1px solid var(--mj-border-subtle);\n font-size: 13px;\n line-height: 1.5;\n color: var(--mj-text-primary);\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n\n\n.scratchpad-task-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.scratchpad-task-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 6px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-subtle);\n transition: background 0.15s;\n}\n\n.scratchpad-task-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n\n\n.task-status-indicator[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 16px;\n margin-top: 2px;\n font-size: 14px;\n}\n\n.task-status-indicator[data-status=\"completed\"][_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.task-status-indicator[data-status=\"in_progress\"][_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.task-status-indicator[data-status=\"blocked\"][_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.task-status-indicator[data-status=\"pending\"][_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n\n\n.task-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.task-id[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n.task-title[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n line-height: 1.4;\n}\n\n.task-notes[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n font-style: italic;\n}\n\n\n\n.task-status-badge[_ngcontent-%COMP%] {\n flex-shrink: 0;\n padding: 2px 6px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n white-space: nowrap;\n}\n\n.task-status-badge[data-status=\"completed\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.task-status-badge[data-status=\"in_progress\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.task-status-badge[data-status=\"blocked\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.task-status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-text-muted) 15%, var(--mj-bg-surface));\n color: var(--mj-text-muted);\n}\n\n\n\n\n\n.skills-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n}\n\n.skill-invocation-card[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 14px;\n background: var(--mj-bg-surface);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.skill-invocation-card[data-activation=\"auto\"][_ngcontent-%COMP%] {\n border-left-color: var(--mj-status-warning);\n}\n\n.skill-invocation-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.skill-invocation-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.skill-invocation-name[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.skill-invocation-type[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 2px 10px;\n border-radius: 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.skill-invocation-type[data-activation=\"auto\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 12%, var(--mj-bg-surface));\n color: var(--mj-status-warning-text);\n}\n\n.skill-invocation-reason[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 13px;\n font-style: italic;\n color: var(--mj-text-secondary);\n display: flex;\n gap: 8px;\n align-items: baseline;\n}\n\n.skill-invocation-reason[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 10px;\n}\n\n.skill-invocation-provenance[_ngcontent-%COMP%] {\n margin-top: 10px;\n padding-top: 10px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.provenance-title[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n}\n\n.provenance-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n font-size: 12px;\n padding: 2px 0;\n}\n\n.provenance-label[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n.provenance-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.provenance-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n\n\n.detail-graph[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n.detail-graph__actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-sm, 0.5rem);\n padding: var(--mj-space-sm, 0.5rem);\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n\n\n.detail-graph__canvas[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n min-height: 0;\n}\n\n\n\n\n.step-notice[_ngcontent-%COMP%] {\n padding: 0 var(--mj-space-3, 12px) var(--mj-space-2, 8px);\n}\n\n\n\n\n.detail-graph[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n height: 100%;\n}\n\n.detail-graph__canvas[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n min-height: 0;\n}"] }); }
916
957
  }
917
958
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentRunStepDetailComponent, [{
918
959
  type: Component,
919
- args: [{ standalone: false, selector: 'mj-ai-agent-run-step-detail', template: "@if (selectedTimelineItem) {\n <div class=\"json-detail-pane\">\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)=\"onClosePanel()\" 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 <!-- Why a workflow step has nothing to show: it never ran. Above the tabs, because it explains\n the emptiness the reader is about to look at. -->\n @if (StepNotice) {\n <div class=\"step-notice\">\n <mj-alert [Variant]=\"StepNotice.Variant\" Size=\"sm\" [Message]=\"StepNotice.Message\"></mj-alert>\n </div>\n }\n <!-- Action-specific link -->\n @if (selectedTimelineItem.type === 'action' && selectedTimelineItem.data?.ID) {\n <div class=\"action-link\">\n <button class=\"btn-link\" (click)=\"onNavigateToActionLog(selectedTimelineItem.data.ID)\">\n <i class=\"fas fa-external-link-alt\"></i> View Action Execution Log\n </button>\n </div>\n }\n <!-- Tab Navigation - Show when we have payload diff or scratchpad data -->\n @if (showStepPayloadDiff || showScratchpadTab || showSkillsTab || showGraphTab) {\n <div class=\"detail-pane-tabs\">\n @if (showGraphTab) {\n <button\n class=\"detail-tab\"\n [class.active]=\"detailPaneTab === 'graph'\"\n (click)=\"detailPaneTab = 'graph'\">\n <i class=\"fa-solid fa-diagram-project\"></i>\n Workflow\n </button>\n }\n @if (showStepPayloadDiff) {\n <button\n class=\"detail-tab\"\n [class.active]=\"detailPaneTab === 'diff'\"\n (click)=\"detailPaneTab = 'diff'\">\n <i class=\"fa-solid fa-code-branch\"></i>\n Payload Changes\n </button>\n }\n @if (showSkillsTab) {\n <button\n class=\"detail-tab\"\n [class.active]=\"detailPaneTab === 'skills'\"\n (click)=\"detailPaneTab = 'skills'\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n Skills\n <span class=\"tab-badge\">{{ stepSkillInvocations.length }}</span>\n </button>\n }\n @if (showScratchpadTab) {\n <button\n class=\"detail-tab\"\n [class.active]=\"detailPaneTab === 'scratchpad'\"\n (click)=\"detailPaneTab = 'scratchpad'\">\n <i class=\"fa-solid fa-clipboard-list\"></i>\n Scratchpad\n @if (scratchpadTaskChangeCount > 0) {\n <span class=\"tab-badge\">{{ scratchpadTaskChangeCount }}</span>\n }\n </button>\n }\n <button\n class=\"detail-tab\"\n [class.active]=\"detailPaneTab === 'json'\"\n (click)=\"detailPaneTab = 'json'\">\n <i class=\"fa-solid fa-code\"></i>\n Full JSON\n </button>\n </div>\n }\n <!-- Tab Content -->\n <div class=\"detail-pane-content\" [class.with-tabs]=\"showStepPayloadDiff || showScratchpadTab || showSkillsTab || showGraphTab\">\n <!-- Skills Tab \u2014 skill-invocation observability (activation type, provenance of authority, reason) -->\n @if (detailPaneTab === 'graph' && showGraphTab) {\n <div class=\"detail-graph\">\n <div class=\"detail-graph__actions\">\n @if (stepTaskGraphWasFolded) {\n <!-- The fold is recorded rather than silent (D9), so the reader can see WHY this\n graph never reached the dispatcher instead of inferring it. -->\n <mj-alert Variant=\"info\" Size=\"sm\"\n Message=\"This ran inline as a single step \u2014 a workflow of one needs no scheduling. You can still save it.\">\n </mj-alert>\n }\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"RequestSaveAsWorkflow()\">\n <i class=\"fa-solid fa-floppy-disk\"></i> Save as Workflow\n </button>\n </div>\n <mj-task-graph-editor\n class=\"detail-graph__canvas\"\n [Spec]=\"stepTaskGraph\"\n [NodePositions]=\"stepTaskGraphPositions\"\n [ReadOnly]=\"true\"\n [ShowPalette]=\"false\">\n </mj-task-graph-editor>\n </div>\n }\n @if (detailPaneTab === 'skills' && showSkillsTab) {\n <div class=\"skills-content\">\n @for (inv of stepSkillInvocations; track inv.SkillID) {\n <div class=\"skill-invocation-card\" [attr.data-activation]=\"inv.ActivationType\">\n <div class=\"skill-invocation-header\">\n <span class=\"skill-invocation-name\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n {{ inv.SkillName }}\n </span>\n <span class=\"skill-invocation-type\" [attr.data-activation]=\"inv.ActivationType\">\n {{ GetActivationTypeLabel(inv) }}\n </span>\n </div>\n @if (inv.Reason) {\n <div class=\"skill-invocation-reason\">\n <i class=\"fa-solid fa-quote-left\"></i>\n {{ inv.Reason }}\n </div>\n }\n <div class=\"skill-invocation-provenance\">\n <div class=\"provenance-title\">Provenance of Authority</div>\n <div class=\"provenance-row\">\n <span class=\"provenance-label\">Requested By</span>\n <span class=\"provenance-value\">{{ inv.Provenance.RequestedBy === 'user-request' ? 'User (/skill mention)' : 'Agent decision' }}</span>\n </div>\n <div class=\"provenance-row\">\n <span class=\"provenance-label\">Agent AcceptsSkills</span>\n <span class=\"provenance-value\">{{ inv.Provenance.AgentAcceptsSkills }}</span>\n </div>\n <div class=\"provenance-row\">\n <span class=\"provenance-label\">Skill ActivationMode</span>\n <span class=\"provenance-value\">{{ inv.Provenance.SkillActivationMode }}</span>\n </div>\n <div class=\"provenance-row\">\n <span class=\"provenance-label\">Agent SkillActivationMode</span>\n <span class=\"provenance-value\">{{ inv.Provenance.AgentSkillActivationMode }}</span>\n </div>\n <div class=\"provenance-row\">\n <span class=\"provenance-label\">Skill ID</span>\n <span class=\"provenance-value provenance-id\">{{ inv.SkillID }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n }\n <!-- Payload Diff Tab -->\n @if (detailPaneTab === 'diff' && showStepPayloadDiff) {\n <div class=\"step-payload-diff\">\n <mj-deep-diff\n [oldValue]=\"stepPayloadAtStartObject\"\n [newValue]=\"stepPayloadAtEndObject\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"false\"\n [maxDepth]=\"8\"\n [maxStringLength]=\"150\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n </div>\n }\n <!-- Scratchpad Tab -->\n @if (detailPaneTab === 'scratchpad' && showScratchpadTab) {\n <div class=\"scratchpad-content\">\n <div class=\"scratchpad-sub-tabs\">\n <button\n class=\"scratchpad-sub-tab\"\n [class.active]=\"scratchpadSubTab === 'diff'\"\n (click)=\"scratchpadSubTab = 'diff'\">\n <i class=\"fa-solid fa-code-compare\"></i> Diff\n </button>\n <button\n class=\"scratchpad-sub-tab\"\n [class.active]=\"scratchpadSubTab === 'input'\"\n (click)=\"scratchpadSubTab = 'input'\">\n <i class=\"fa-solid fa-arrow-right-to-bracket\"></i> Input\n </button>\n <button\n class=\"scratchpad-sub-tab\"\n [class.active]=\"scratchpadSubTab === 'output'\"\n (click)=\"scratchpadSubTab = 'output'\">\n <i class=\"fa-solid fa-arrow-right-from-bracket\"></i> Output\n </button>\n </div>\n <!-- Scratchpad Diff Sub-Tab -->\n @if (scratchpadSubTab === 'diff') {\n <div class=\"scratchpad-diff-view\">\n @if (stepScratchpadInput && stepScratchpadOutput) {\n <mj-deep-diff\n [oldValue]=\"stepScratchpadInput\"\n [newValue]=\"stepScratchpadOutput\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"true\"\n [maxDepth]=\"6\"\n [maxStringLength]=\"300\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n } @else if (stepScratchpadOutput) {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-circle-plus\"\n Title=\"Scratchpad created in this step (no prior state)\" />\n <div class=\"scratchpad-snapshot\">\n <ng-container *ngTemplateOutlet=\"scratchpadSnapshotTpl; context: { $implicit: stepScratchpadOutput }\"></ng-container>\n </div>\n } @else {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-circle-info\"\n Title=\"No scratchpad changes in this step\" />\n }\n </div>\n }\n <!-- Scratchpad Input Sub-Tab -->\n @if (scratchpadSubTab === 'input') {\n <div class=\"scratchpad-snapshot-view\">\n @if (stepScratchpadInput) {\n <ng-container *ngTemplateOutlet=\"scratchpadSnapshotTpl; context: { $implicit: stepScratchpadInput }\"></ng-container>\n } @else {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-circle-info\"\n Title=\"No scratchpad input for this step\" />\n }\n </div>\n }\n <!-- Scratchpad Output Sub-Tab -->\n @if (scratchpadSubTab === 'output') {\n <div class=\"scratchpad-snapshot-view\">\n @if (stepScratchpadOutput) {\n <ng-container *ngTemplateOutlet=\"scratchpadSnapshotTpl; context: { $implicit: stepScratchpadOutput }\"></ng-container>\n } @else {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-circle-info\"\n Title=\"No scratchpad output for this step\" />\n }\n </div>\n }\n </div>\n }\n <!-- Full JSON Tab -->\n @if (detailPaneTab === 'json' || (!showStepPayloadDiff && !showScratchpadTab)) {\n <div class=\"json-viewer\">\n <div class=\"json-toolbar\">\n <button class=\"btn-icon\" title=\"Copy JSON\" (click)=\"onCopyToClipboard()\">\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=\"width: 100%;\">\n </mj-code-editor>\n </div>\n }\n </div>\n </div>\n </div>\n}\n\n<!-- Reusable scratchpad snapshot template -->\n<ng-template #scratchpadSnapshotTpl let-snapshot>\n <div class=\"scratchpad-snapshot\">\n @if (snapshot.notes) {\n <div class=\"scratchpad-notes-section\">\n <h4><i class=\"fa-solid fa-note-sticky\"></i> Notes</h4>\n <div class=\"scratchpad-notes-content\">{{ snapshot.notes }}</div>\n </div>\n }\n @if (snapshot.tasks?.length > 0) {\n <div class=\"scratchpad-tasks-section\">\n <h4><i class=\"fa-solid fa-list-check\"></i> Tasks ({{ snapshot.tasks.length }})</h4>\n <div class=\"scratchpad-task-list\">\n @for (task of snapshot.tasks; track task.id) {\n <div class=\"scratchpad-task-item\" [attr.data-status]=\"task.status\">\n <span class=\"task-status-indicator\" [attr.data-status]=\"task.status\">\n @switch (task.status) {\n @case ('completed') { <i class=\"fa-solid fa-circle-check\"></i> }\n @case ('in_progress') { <i class=\"fa-solid fa-spinner\"></i> }\n @case ('blocked') { <i class=\"fa-solid fa-circle-xmark\"></i> }\n @default { <i class=\"fa-regular fa-circle\"></i> }\n }\n </span>\n <div class=\"task-content\">\n <span class=\"task-id\">{{ task.id }}</span>\n <span class=\"task-title\">{{ task.title }}</span>\n @if (task.notes) {\n <span class=\"task-notes\">{{ task.notes }}</span>\n }\n </div>\n <span class=\"task-status-badge\" [attr.data-status]=\"task.status\">{{ task.status }}</span>\n </div>\n }\n </div>\n </div>\n }\n @if (!snapshot.notes && (!snapshot.tasks || snapshot.tasks.length === 0)) {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-circle-info\"\n Title=\"Empty scratchpad\" />\n }\n </div>\n</ng-template>", styles: [".json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header {\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--mj-bg-surface-sunken);\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-icon {\n background: none;\n border: none;\n padding: 4px 8px;\n cursor: pointer;\n color: var(--mj-text-muted);\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.btn-icon:hover {\n background: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n color: var(--mj-text-secondary);\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;\n display: flex;\n gap: 24px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-item label {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n\n.meta-item span {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-badge.small {\n padding: 2px 6px;\n font-size: 10px;\n}\n\n.status-badge[data-status=\"Running\"] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.status-badge[data-status=\"Completed\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-badge[data-status=\"Failed\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.status-badge[data-status=\"Cancelled\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.action-link {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\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 font-size: 13px;\n}\n\n.btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.detail-pane-tabs {\n display: flex;\n gap: 0;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 0 16px;\n}\n\n.detail-tab {\n padding: 12px 16px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 13px;\n color: var(--mj-text-muted);\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, transparent);\n}\n\n.detail-tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.detail-pane-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0; /* Allow flexbox to properly size */\n}\n\n/* \n.detail-pane-content.with-tabs {\n // No explicit height needed with flexbox \n} \n*/\n\n.json-viewer {\n flex: 1;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n min-height: 0; /* Important for flexbox children to respect overflow */\n}\n\n.json-toolbar {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 10;\n display: flex;\n gap: 4px;\n}\n\n.step-payload-diff {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n min-height: 0; /* Allow proper scrolling */\n}\n\n/* Specific styling for mj-code-editor container */\n.json-viewer mj-code-editor {\n flex: 1;\n overflow: hidden;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n/* Tab badge for change count */\n.tab-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 9px;\n font-size: 10px;\n font-weight: 700;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n/* Scratchpad content area */\n.scratchpad-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n}\n\n/* Scratchpad sub-tabs */\n.scratchpad-sub-tabs {\n display: flex;\n gap: 0;\n padding: 0 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n}\n\n.scratchpad-sub-tab {\n padding: 8px 12px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 12px;\n color: var(--mj-text-muted);\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n\n.scratchpad-sub-tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, transparent);\n}\n\n.scratchpad-sub-tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n/* Scratchpad diff and snapshot views */\n.scratchpad-diff-view,\n.scratchpad-snapshot-view {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n min-height: 0;\n}\n\n/* Scratchpad snapshot rendering */\n.scratchpad-snapshot {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.scratchpad-notes-section h4,\n.scratchpad-tasks-section h4 {\n margin: 0 0 8px 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.scratchpad-notes-content {\n padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n border: 1px solid var(--mj-border-subtle);\n font-size: 13px;\n line-height: 1.5;\n color: var(--mj-text-primary);\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/* Task list */\n.scratchpad-task-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.scratchpad-task-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 6px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-subtle);\n transition: background 0.15s;\n}\n\n.scratchpad-task-item:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n/* Task status indicator icon */\n.task-status-indicator {\n flex-shrink: 0;\n width: 16px;\n margin-top: 2px;\n font-size: 14px;\n}\n\n.task-status-indicator[data-status=\"completed\"] {\n color: var(--mj-status-success);\n}\n\n.task-status-indicator[data-status=\"in_progress\"] {\n color: var(--mj-brand-primary);\n}\n\n.task-status-indicator[data-status=\"blocked\"] {\n color: var(--mj-status-error);\n}\n\n.task-status-indicator[data-status=\"pending\"] {\n color: var(--mj-text-muted);\n}\n\n/* Task content */\n.task-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.task-id {\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n.task-title {\n font-size: 13px;\n color: var(--mj-text-primary);\n line-height: 1.4;\n}\n\n.task-notes {\n font-size: 12px;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n font-style: italic;\n}\n\n/* Task status badge */\n.task-status-badge {\n flex-shrink: 0;\n padding: 2px 6px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n white-space: nowrap;\n}\n\n.task-status-badge[data-status=\"completed\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.task-status-badge[data-status=\"in_progress\"] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.task-status-badge[data-status=\"blocked\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.task-status-badge[data-status=\"pending\"] {\n background: color-mix(in srgb, var(--mj-text-muted) 15%, var(--mj-bg-surface));\n color: var(--mj-text-muted);\n}\n\n/* ============================================================\n Skills tab \u2014 skill-invocation observability cards\n ============================================================ */\n.skills-content {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n}\n\n.skill-invocation-card {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 14px;\n background: var(--mj-bg-surface);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.skill-invocation-card[data-activation=\"auto\"] {\n border-left-color: var(--mj-status-warning);\n}\n\n.skill-invocation-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.skill-invocation-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.skill-invocation-name i {\n color: var(--mj-brand-primary);\n}\n\n.skill-invocation-type {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 2px 10px;\n border-radius: 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.skill-invocation-type[data-activation=\"auto\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 12%, var(--mj-bg-surface));\n color: var(--mj-status-warning-text);\n}\n\n.skill-invocation-reason {\n margin-top: 8px;\n font-size: 13px;\n font-style: italic;\n color: var(--mj-text-secondary);\n display: flex;\n gap: 8px;\n align-items: baseline;\n}\n\n.skill-invocation-reason i {\n color: var(--mj-text-muted);\n font-size: 10px;\n}\n\n.skill-invocation-provenance {\n margin-top: 10px;\n padding-top: 10px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.provenance-title {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n}\n\n.provenance-row {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n font-size: 12px;\n padding: 2px 0;\n}\n\n.provenance-label {\n color: var(--mj-text-secondary);\n}\n\n.provenance-value {\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.provenance-id {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n/* Workflow tab \u2014 the recorded task graph, read-only, with the Save as Workflow action. */\n.detail-graph {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n.detail-graph__actions {\n display: flex;\n align-items: center;\n gap: var(--mj-space-sm, 0.5rem);\n padding: var(--mj-space-sm, 0.5rem);\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n/* min-height:0 is what lets the canvas actually shrink inside the flex column. */\n.detail-graph__canvas {\n flex: 1 1 auto;\n min-height: 0;\n}\n\n/* Explanation for a step that never executed \u2014 see StepNotice. Sits above the tabs because it\n accounts for the emptiness the reader is about to look at. */\n.step-notice {\n padding: 0 var(--mj-space-3, 12px) var(--mj-space-2, 8px);\n}\n"] }]
960
+ args: [{ standalone: false, selector: 'mj-ai-agent-run-step-detail', template: "@if (selectedTimelineItem) {\n <div class=\"json-detail-pane\">\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)=\"onClosePanel()\" 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 <!-- Why a workflow step has nothing to show: it never ran. Above the tabs, because it explains\n the emptiness the reader is about to look at. -->\n @if (StepNotice) {\n <div class=\"step-notice\">\n <mj-alert [Variant]=\"StepNotice.Variant\" Size=\"sm\" [Message]=\"StepNotice.Message\"></mj-alert>\n </div>\n }\n <!-- Action-specific link -->\n @if (selectedTimelineItem.type === 'action' && selectedTimelineItem.data?.ID) {\n <div class=\"action-link\">\n <button class=\"btn-link\" (click)=\"onNavigateToActionLog(selectedTimelineItem.data.ID)\">\n <i class=\"fas fa-external-link-alt\"></i> View Action Execution Log\n </button>\n </div>\n }\n <!-- Tab Navigation - Show when we have payload diff or scratchpad data -->\n @if (showStepPayloadDiff || showScratchpadTab || showSkillsTab || showGraphTab) {\n <div class=\"detail-pane-tabs\">\n @if (showGraphTab) {\n <button\n class=\"detail-tab\"\n [class.active]=\"detailPaneTab === 'graph'\"\n (click)=\"detailPaneTab = 'graph'\">\n <i class=\"fa-solid fa-diagram-project\"></i>\n Workflow\n </button>\n }\n @if (showStepPayloadDiff) {\n <button\n class=\"detail-tab\"\n [class.active]=\"detailPaneTab === 'diff'\"\n (click)=\"detailPaneTab = 'diff'\">\n <i class=\"fa-solid fa-code-branch\"></i>\n Payload Changes\n </button>\n }\n @if (showSkillsTab) {\n <button\n class=\"detail-tab\"\n [class.active]=\"detailPaneTab === 'skills'\"\n (click)=\"detailPaneTab = 'skills'\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n Skills\n <span class=\"tab-badge\">{{ stepSkillInvocations.length }}</span>\n </button>\n }\n @if (showScratchpadTab) {\n <button\n class=\"detail-tab\"\n [class.active]=\"detailPaneTab === 'scratchpad'\"\n (click)=\"detailPaneTab = 'scratchpad'\">\n <i class=\"fa-solid fa-clipboard-list\"></i>\n Scratchpad\n @if (scratchpadTaskChangeCount > 0) {\n <span class=\"tab-badge\">{{ scratchpadTaskChangeCount }}</span>\n }\n </button>\n }\n <button\n class=\"detail-tab\"\n [class.active]=\"detailPaneTab === 'json'\"\n (click)=\"detailPaneTab = 'json'\">\n <i class=\"fa-solid fa-code\"></i>\n Full JSON\n </button>\n </div>\n }\n <!-- Tab Content -->\n <div class=\"detail-pane-content\" [class.with-tabs]=\"showStepPayloadDiff || showScratchpadTab || showSkillsTab || showGraphTab\">\n <!-- Skills Tab \u2014 skill-invocation observability (activation type, provenance of authority, reason) -->\n @if (detailPaneTab === 'graph' && showGraphTab) {\n <div class=\"detail-graph\">\n <div class=\"detail-graph__actions\">\n @if (stepTaskGraphWasFolded) {\n <!-- The fold is recorded rather than silent (D9), so the reader can see WHY this\n graph never reached the dispatcher instead of inferring it. -->\n <mj-alert Variant=\"info\" Size=\"sm\"\n Message=\"This ran inline as a single step \u2014 a workflow of one needs no scheduling. You can still save it.\">\n </mj-alert>\n }\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"RequestSaveAsWorkflow()\">\n <i class=\"fa-solid fa-floppy-disk\"></i> Save as Workflow\n </button>\n </div>\n @if (stepTaskGraphParentTaskID; as parentTaskID) {\n <!-- The RUN, not the plan. Same component the Workflows app uses, so a workflow is\n drawn identically wherever it is opened from \u2014 declined branches hatched,\n untravelled edges absent, toolbar on, legend off. -->\n <mj-task-graph-run-view\n class=\"detail-graph__canvas\"\n [Provider]=\"Provider\"\n [ParentTaskID]=\"parentTaskID\"\n [WorkflowName]=\"stepTaskGraph?.workflowName || 'Workflow'\"\n Height=\"100%\">\n </mj-task-graph-run-view>\n } @else {\n <!-- No dispatcher rows to read: a folded graph never ran. Drawing the spec is the\n honest rendering \u2014 it is a plan, and it is drawn as one. -->\n <mj-task-graph-editor\n class=\"detail-graph__canvas\"\n [Spec]=\"stepTaskGraph\"\n [NodePositions]=\"stepTaskGraphPositions\"\n [ReadOnly]=\"true\"\n [ShowPalette]=\"false\"\n [ShowLegend]=\"false\">\n </mj-task-graph-editor>\n }\n </div>\n }\n @if (detailPaneTab === 'skills' && showSkillsTab) {\n <div class=\"skills-content\">\n @for (inv of stepSkillInvocations; track inv.SkillID) {\n <div class=\"skill-invocation-card\" [attr.data-activation]=\"inv.ActivationType\">\n <div class=\"skill-invocation-header\">\n <span class=\"skill-invocation-name\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n {{ inv.SkillName }}\n </span>\n <span class=\"skill-invocation-type\" [attr.data-activation]=\"inv.ActivationType\">\n {{ GetActivationTypeLabel(inv) }}\n </span>\n </div>\n @if (inv.Reason) {\n <div class=\"skill-invocation-reason\">\n <i class=\"fa-solid fa-quote-left\"></i>\n {{ inv.Reason }}\n </div>\n }\n <div class=\"skill-invocation-provenance\">\n <div class=\"provenance-title\">Provenance of Authority</div>\n <div class=\"provenance-row\">\n <span class=\"provenance-label\">Requested By</span>\n <span class=\"provenance-value\">{{ inv.Provenance.RequestedBy === 'user-request' ? 'User (/skill mention)' : 'Agent decision' }}</span>\n </div>\n <div class=\"provenance-row\">\n <span class=\"provenance-label\">Agent AcceptsSkills</span>\n <span class=\"provenance-value\">{{ inv.Provenance.AgentAcceptsSkills }}</span>\n </div>\n <div class=\"provenance-row\">\n <span class=\"provenance-label\">Skill ActivationMode</span>\n <span class=\"provenance-value\">{{ inv.Provenance.SkillActivationMode }}</span>\n </div>\n <div class=\"provenance-row\">\n <span class=\"provenance-label\">Agent SkillActivationMode</span>\n <span class=\"provenance-value\">{{ inv.Provenance.AgentSkillActivationMode }}</span>\n </div>\n <div class=\"provenance-row\">\n <span class=\"provenance-label\">Skill ID</span>\n <span class=\"provenance-value provenance-id\">{{ inv.SkillID }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n }\n <!-- Payload Diff Tab -->\n @if (detailPaneTab === 'diff' && showStepPayloadDiff) {\n <div class=\"step-payload-diff\">\n <mj-deep-diff\n [oldValue]=\"stepPayloadAtStartObject\"\n [newValue]=\"stepPayloadAtEndObject\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"false\"\n [maxDepth]=\"8\"\n [maxStringLength]=\"150\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n </div>\n }\n <!-- Scratchpad Tab -->\n @if (detailPaneTab === 'scratchpad' && showScratchpadTab) {\n <div class=\"scratchpad-content\">\n <div class=\"scratchpad-sub-tabs\">\n <button\n class=\"scratchpad-sub-tab\"\n [class.active]=\"scratchpadSubTab === 'diff'\"\n (click)=\"scratchpadSubTab = 'diff'\">\n <i class=\"fa-solid fa-code-compare\"></i> Diff\n </button>\n <button\n class=\"scratchpad-sub-tab\"\n [class.active]=\"scratchpadSubTab === 'input'\"\n (click)=\"scratchpadSubTab = 'input'\">\n <i class=\"fa-solid fa-arrow-right-to-bracket\"></i> Input\n </button>\n <button\n class=\"scratchpad-sub-tab\"\n [class.active]=\"scratchpadSubTab === 'output'\"\n (click)=\"scratchpadSubTab = 'output'\">\n <i class=\"fa-solid fa-arrow-right-from-bracket\"></i> Output\n </button>\n </div>\n <!-- Scratchpad Diff Sub-Tab -->\n @if (scratchpadSubTab === 'diff') {\n <div class=\"scratchpad-diff-view\">\n @if (stepScratchpadInput && stepScratchpadOutput) {\n <mj-deep-diff\n [oldValue]=\"stepScratchpadInput\"\n [newValue]=\"stepScratchpadOutput\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"true\"\n [maxDepth]=\"6\"\n [maxStringLength]=\"300\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n } @else if (stepScratchpadOutput) {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-circle-plus\"\n Title=\"Scratchpad created in this step (no prior state)\" />\n <div class=\"scratchpad-snapshot\">\n <ng-container *ngTemplateOutlet=\"scratchpadSnapshotTpl; context: { $implicit: stepScratchpadOutput }\"></ng-container>\n </div>\n } @else {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-circle-info\"\n Title=\"No scratchpad changes in this step\" />\n }\n </div>\n }\n <!-- Scratchpad Input Sub-Tab -->\n @if (scratchpadSubTab === 'input') {\n <div class=\"scratchpad-snapshot-view\">\n @if (stepScratchpadInput) {\n <ng-container *ngTemplateOutlet=\"scratchpadSnapshotTpl; context: { $implicit: stepScratchpadInput }\"></ng-container>\n } @else {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-circle-info\"\n Title=\"No scratchpad input for this step\" />\n }\n </div>\n }\n <!-- Scratchpad Output Sub-Tab -->\n @if (scratchpadSubTab === 'output') {\n <div class=\"scratchpad-snapshot-view\">\n @if (stepScratchpadOutput) {\n <ng-container *ngTemplateOutlet=\"scratchpadSnapshotTpl; context: { $implicit: stepScratchpadOutput }\"></ng-container>\n } @else {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-circle-info\"\n Title=\"No scratchpad output for this step\" />\n }\n </div>\n }\n </div>\n }\n <!-- Full JSON Tab -->\n @if (detailPaneTab === 'json' || (!showStepPayloadDiff && !showScratchpadTab)) {\n <div class=\"json-viewer\">\n <div class=\"json-toolbar\">\n <button class=\"btn-icon\" title=\"Copy JSON\" (click)=\"onCopyToClipboard()\">\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=\"width: 100%;\">\n </mj-code-editor>\n </div>\n }\n </div>\n </div>\n </div>\n}\n\n<!-- Reusable scratchpad snapshot template -->\n<ng-template #scratchpadSnapshotTpl let-snapshot>\n <div class=\"scratchpad-snapshot\">\n @if (snapshot.notes) {\n <div class=\"scratchpad-notes-section\">\n <h4><i class=\"fa-solid fa-note-sticky\"></i> Notes</h4>\n <div class=\"scratchpad-notes-content\">{{ snapshot.notes }}</div>\n </div>\n }\n @if (snapshot.tasks?.length > 0) {\n <div class=\"scratchpad-tasks-section\">\n <h4><i class=\"fa-solid fa-list-check\"></i> Tasks ({{ snapshot.tasks.length }})</h4>\n <div class=\"scratchpad-task-list\">\n @for (task of snapshot.tasks; track task.id) {\n <div class=\"scratchpad-task-item\" [attr.data-status]=\"task.status\">\n <span class=\"task-status-indicator\" [attr.data-status]=\"task.status\">\n @switch (task.status) {\n @case ('completed') { <i class=\"fa-solid fa-circle-check\"></i> }\n @case ('in_progress') { <i class=\"fa-solid fa-spinner\"></i> }\n @case ('blocked') { <i class=\"fa-solid fa-circle-xmark\"></i> }\n @default { <i class=\"fa-regular fa-circle\"></i> }\n }\n </span>\n <div class=\"task-content\">\n <span class=\"task-id\">{{ task.id }}</span>\n <span class=\"task-title\">{{ task.title }}</span>\n @if (task.notes) {\n <span class=\"task-notes\">{{ task.notes }}</span>\n }\n </div>\n <span class=\"task-status-badge\" [attr.data-status]=\"task.status\">{{ task.status }}</span>\n </div>\n }\n </div>\n </div>\n }\n @if (!snapshot.notes && (!snapshot.tasks || snapshot.tasks.length === 0)) {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-circle-info\"\n Title=\"Empty scratchpad\" />\n }\n </div>\n</ng-template>", styles: [".json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header {\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--mj-bg-surface-sunken);\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-icon {\n background: none;\n border: none;\n padding: 4px 8px;\n cursor: pointer;\n color: var(--mj-text-muted);\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.btn-icon:hover {\n background: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n color: var(--mj-text-secondary);\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;\n display: flex;\n gap: 24px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-item label {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n\n.meta-item span {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-badge.small {\n padding: 2px 6px;\n font-size: 10px;\n}\n\n.status-badge[data-status=\"Running\"] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.status-badge[data-status=\"Completed\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-badge[data-status=\"Failed\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.status-badge[data-status=\"Cancelled\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.action-link {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\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 font-size: 13px;\n}\n\n.btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.detail-pane-tabs {\n display: flex;\n gap: 0;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 0 16px;\n}\n\n.detail-tab {\n padding: 12px 16px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 13px;\n color: var(--mj-text-muted);\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, transparent);\n}\n\n.detail-tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.detail-pane-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0; /* Allow flexbox to properly size */\n}\n\n/* \n.detail-pane-content.with-tabs {\n // No explicit height needed with flexbox \n} \n*/\n\n.json-viewer {\n flex: 1;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n min-height: 0; /* Important for flexbox children to respect overflow */\n}\n\n.json-toolbar {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 10;\n display: flex;\n gap: 4px;\n}\n\n.step-payload-diff {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n min-height: 0; /* Allow proper scrolling */\n}\n\n/* Specific styling for mj-code-editor container */\n.json-viewer mj-code-editor {\n flex: 1;\n overflow: hidden;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n/* Tab badge for change count */\n.tab-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 9px;\n font-size: 10px;\n font-weight: 700;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n/* Scratchpad content area */\n.scratchpad-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n}\n\n/* Scratchpad sub-tabs */\n.scratchpad-sub-tabs {\n display: flex;\n gap: 0;\n padding: 0 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n}\n\n.scratchpad-sub-tab {\n padding: 8px 12px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 12px;\n color: var(--mj-text-muted);\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n\n.scratchpad-sub-tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, transparent);\n}\n\n.scratchpad-sub-tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n/* Scratchpad diff and snapshot views */\n.scratchpad-diff-view,\n.scratchpad-snapshot-view {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n min-height: 0;\n}\n\n/* Scratchpad snapshot rendering */\n.scratchpad-snapshot {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.scratchpad-notes-section h4,\n.scratchpad-tasks-section h4 {\n margin: 0 0 8px 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.scratchpad-notes-content {\n padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n border: 1px solid var(--mj-border-subtle);\n font-size: 13px;\n line-height: 1.5;\n color: var(--mj-text-primary);\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/* Task list */\n.scratchpad-task-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.scratchpad-task-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 6px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-subtle);\n transition: background 0.15s;\n}\n\n.scratchpad-task-item:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n/* Task status indicator icon */\n.task-status-indicator {\n flex-shrink: 0;\n width: 16px;\n margin-top: 2px;\n font-size: 14px;\n}\n\n.task-status-indicator[data-status=\"completed\"] {\n color: var(--mj-status-success);\n}\n\n.task-status-indicator[data-status=\"in_progress\"] {\n color: var(--mj-brand-primary);\n}\n\n.task-status-indicator[data-status=\"blocked\"] {\n color: var(--mj-status-error);\n}\n\n.task-status-indicator[data-status=\"pending\"] {\n color: var(--mj-text-muted);\n}\n\n/* Task content */\n.task-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.task-id {\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n.task-title {\n font-size: 13px;\n color: var(--mj-text-primary);\n line-height: 1.4;\n}\n\n.task-notes {\n font-size: 12px;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n font-style: italic;\n}\n\n/* Task status badge */\n.task-status-badge {\n flex-shrink: 0;\n padding: 2px 6px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n white-space: nowrap;\n}\n\n.task-status-badge[data-status=\"completed\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.task-status-badge[data-status=\"in_progress\"] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.task-status-badge[data-status=\"blocked\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.task-status-badge[data-status=\"pending\"] {\n background: color-mix(in srgb, var(--mj-text-muted) 15%, var(--mj-bg-surface));\n color: var(--mj-text-muted);\n}\n\n/* ============================================================\n Skills tab \u2014 skill-invocation observability cards\n ============================================================ */\n.skills-content {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n}\n\n.skill-invocation-card {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 14px;\n background: var(--mj-bg-surface);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.skill-invocation-card[data-activation=\"auto\"] {\n border-left-color: var(--mj-status-warning);\n}\n\n.skill-invocation-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.skill-invocation-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.skill-invocation-name i {\n color: var(--mj-brand-primary);\n}\n\n.skill-invocation-type {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 2px 10px;\n border-radius: 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.skill-invocation-type[data-activation=\"auto\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 12%, var(--mj-bg-surface));\n color: var(--mj-status-warning-text);\n}\n\n.skill-invocation-reason {\n margin-top: 8px;\n font-size: 13px;\n font-style: italic;\n color: var(--mj-text-secondary);\n display: flex;\n gap: 8px;\n align-items: baseline;\n}\n\n.skill-invocation-reason i {\n color: var(--mj-text-muted);\n font-size: 10px;\n}\n\n.skill-invocation-provenance {\n margin-top: 10px;\n padding-top: 10px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.provenance-title {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n}\n\n.provenance-row {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n font-size: 12px;\n padding: 2px 0;\n}\n\n.provenance-label {\n color: var(--mj-text-secondary);\n}\n\n.provenance-value {\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.provenance-id {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n/* Workflow tab \u2014 the recorded task graph, read-only, with the Save as Workflow action. */\n.detail-graph {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n.detail-graph__actions {\n display: flex;\n align-items: center;\n gap: var(--mj-space-sm, 0.5rem);\n padding: var(--mj-space-sm, 0.5rem);\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n/* min-height:0 is what lets the canvas actually shrink inside the flex column. */\n.detail-graph__canvas {\n flex: 1 1 auto;\n min-height: 0;\n}\n\n/* Explanation for a step that never executed \u2014 see StepNotice. Sits above the tabs because it\n accounts for the emptiness the reader is about to look at. */\n.step-notice {\n padding: 0 var(--mj-space-3, 12px) var(--mj-space-2, 8px);\n}\n\n/* The run view fills the tab rather than taking its intrinsic size \u2014 a canvas that stops halfway\n down its pane with dead space beneath reads as a broken layout. */\n.detail-graph {\n display: flex;\n flex-direction: column;\n min-height: 0;\n height: 100%;\n}\n\n.detail-graph__canvas {\n flex: 1 1 auto;\n min-height: 0;\n}\n"] }]
920
961
  }], () => [{ type: i0.ChangeDetectorRef }], { selectedTimelineItem: [{
921
962
  type: Input
963
+ }], Provider: [{
964
+ type: Input
922
965
  }], closePanel: [{
923
966
  type: Output
924
967
  }], navigateToActionLog: [{
@@ -928,5 +971,5 @@ export class AIAgentRunStepDetailComponent {
928
971
  }], saveAsWorkflowRequested: [{
929
972
  type: Output
930
973
  }] }); })();
931
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentRunStepDetailComponent, { className: "AIAgentRunStepDetailComponent", filePath: "src/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.ts", lineNumber: 24 }); })();
974
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentRunStepDetailComponent, { className: "AIAgentRunStepDetailComponent", filePath: "src/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.ts", lineNumber: 25 }); })();
932
975
  //# sourceMappingURL=ai-agent-run-step-detail.component.js.map