@memberjunction/ng-core-entity-forms 5.37.0 → 5.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -2
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +20 -20
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-category-dialog.component.d.ts +2 -2
- package/dist/lib/custom/Queries/query-category-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-category-dialog.component.js +8 -21
- package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts +11 -15
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +52 -152
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +1 -8
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +4 -64
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +20 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +152 -14
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +31 -30
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +17 -5
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAction/mjaiaction.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJAIAction/mjaiaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +185 -157
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentAction/mjaiagentaction.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJAIAgentAction/mjaiagentaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.js +18 -9
- package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentConfiguration/mjaiagentconfiguration.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIAgentConfiguration/mjaiagentconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentDataSource/mjaiagentdatasource.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJAIAgentDataSource/mjaiagentdatasource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentExample/mjaiagentexample.form.component.js +25 -16
- package/dist/lib/generated/Entities/MJAIAgentExample/mjaiagentexample.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentLearningCycle/mjaiagentlearningcycle.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIAgentLearningCycle/mjaiagentlearningcycle.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentModality/mjaiagentmodality.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIAgentModality/mjaiagentmodality.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentModel/mjaiagentmodel.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIAgentModel/mjaiagentmodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js +24 -15
- package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentPermission/mjaiagentpermission.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIAgentPermission/mjaiagentpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.js +20 -11
- package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRelationship/mjaiagentrelationship.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIAgentRelationship/mjaiagentrelationship.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRequest/mjaiagentrequest.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIAgentRequest/mjaiagentrequest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +79 -69
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRunMedia/mjaiagentrunmedia.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIAgentRunMedia/mjaiagentrunmedia.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js +36 -26
- package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentSearchScope/mjaiagentsearchscope.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJAIAgentSearchScope/mjaiagentsearchscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentStep/mjaiagentstep.form.component.js +36 -26
- package/dist/lib/generated/Entities/MJAIAgentStep/mjaiagentstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentStepPath/mjaiagentsteppath.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIAgentStepPath/mjaiagentsteppath.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIArchitecture/mjaiarchitecture.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJAIArchitecture/mjaiarchitecture.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIConfiguration/mjaiconfiguration.form.component.js +64 -54
- package/dist/lib/generated/Entities/MJAIConfiguration/mjaiconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIConfigurationParam/mjaiconfigurationparam.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIConfigurationParam/mjaiconfigurationparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAICredentialBinding/mjaicredentialbinding.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAICredentialBinding/mjaicredentialbinding.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModality/mjaimodality.form.component.js +57 -47
- package/dist/lib/generated/Entities/MJAIModality/mjaimodality.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +149 -139
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelAction/mjaimodelaction.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIModelAction/mjaimodelaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelArchitecture/mjaimodelarchitecture.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIModelArchitecture/mjaimodelarchitecture.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelCost/mjaimodelcost.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIModelCost/mjaimodelcost.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelModality/mjaimodelmodality.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIModelModality/mjaimodelmodality.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelPriceType/mjaimodelpricetype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJAIModelPriceType/mjaimodelpricetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelPriceUnitType/mjaimodelpriceunittype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJAIModelPriceUnitType/mjaimodelpriceunittype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelType/mjaimodeltype.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJAIModelType/mjaimodeltype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelVendor/mjaimodelvendor.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJAIModelVendor/mjaimodelvendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +98 -88
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptModel/mjaipromptmodel.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJAIPromptModel/mjaipromptmodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +53 -43
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRunMedia/mjaipromptrunmedia.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJAIPromptRunMedia/mjaipromptrunmedia.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptType/mjaiprompttype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJAIPromptType/mjaiprompttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +62 -52
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendorType/mjaivendortype.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIVendorType/mjaivendortype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendorTypeDefinition/mjaivendortypedefinition.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJAIVendorTypeDefinition/mjaivendortypedefinition.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIApplication/mjapiapplication.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJAPIApplication/mjapiapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIApplicationScope/mjapiapplicationscope.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAPIApplicationScope/mjapiapplicationscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIKey/mjapikey.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJAPIKey/mjapikey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIKeyApplication/mjapikeyapplication.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJAPIKeyApplication/mjapikeyapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIKeyScope/mjapikeyscope.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAPIKeyScope/mjapikeyscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIKeyUsageLog/mjapikeyusagelog.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAPIKeyUsageLog/mjapikeyusagelog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIScope/mjapiscope.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJAPIScope/mjapiscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAccessControlRule/mjaccesscontrolrule.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAccessControlRule/mjaccesscontrolrule.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js +86 -76
- package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionAuthorization/mjactionauthorization.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJActionAuthorization/mjactionauthorization.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionCategory/mjactioncategory.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJActionCategory/mjactioncategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionContext/mjactioncontext.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJActionContext/mjactioncontext.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionContextType/mjactioncontexttype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJActionContextType/mjactioncontexttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionFilter/mjactionfilter.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJActionFilter/mjactionfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionLibrary/mjactionlibrary.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJActionLibrary/mjactionlibrary.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionResultCode/mjactionresultcode.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJActionResultCode/mjactionresultcode.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js +73 -45
- package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJApplicationEntity/mjapplicationentity.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJApplicationEntity/mjapplicationentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJApplicationRole/mjapplicationrole.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJApplicationRole/mjapplicationrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJApplicationSetting/mjapplicationsetting.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJApplicationSetting/mjapplicationsetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArchiveConfigurationEntity/mjarchiveconfigurationentity.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJArchiveConfigurationEntity/mjarchiveconfigurationentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArchiveRunDetail/mjarchiverundetail.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJArchiveRunDetail/mjarchiverundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactPermission/mjartifactpermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJArtifactPermission/mjartifactpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactType/mjartifacttype.form.component.js +47 -37
- package/dist/lib/generated/Entities/MJArtifactType/mjartifacttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactUse/mjartifactuse.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJArtifactUse/mjartifactuse.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactVersion/mjartifactversion.form.component.js +51 -41
- package/dist/lib/generated/Entities/MJArtifactVersion/mjartifactversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactVersionAttribute/mjartifactversionattribute.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJArtifactVersionAttribute/mjartifactversionattribute.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAuditLog/mjauditlog.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAuditLog/mjauditlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAuditLogType/mjauditlogtype.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJAuditLogType/mjauditlogtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAuthorization/mjauthorization.form.component.js +47 -37
- package/dist/lib/generated/Entities/MJAuthorization/mjauthorization.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAuthorizationRole/mjauthorizationrole.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAuthorizationRole/mjauthorizationrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCollection/mjcollection.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJCollection/mjcollection.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCollectionArtifact/mjcollectionartifact.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJCollectionArtifact/mjcollectionartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCollectionPermission/mjcollectionpermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJCollectionPermission/mjcollectionpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationBaseMessageType/mjcommunicationbasemessagetype.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJCommunicationBaseMessageType/mjcommunicationbasemessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.js +20 -11
- package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js +33 -23
- package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationProviderMessageType/mjcommunicationprovidermessagetype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJCommunicationProviderMessageType/mjcommunicationprovidermessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationRun/mjcommunicationrun.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJCommunicationRun/mjcommunicationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js +47 -37
- package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.js +53 -43
- package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationEntityMap/mjcompanyintegrationentitymap.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJCompanyIntegrationEntityMap/mjcompanyintegrationentitymap.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationFieldMap/mjcompanyintegrationfieldmap.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJCompanyIntegrationFieldMap/mjcompanyintegrationfieldmap.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRecordMap/mjcompanyintegrationrecordmap.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJCompanyIntegrationRecordMap/mjcompanyintegrationrecordmap.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.js +20 -11
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunDetail/mjcompanyintegrationrundetail.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunDetail/mjcompanyintegrationrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationSyncWatermark/mjcompanyintegrationsyncwatermark.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJCompanyIntegrationSyncWatermark/mjcompanyintegrationsyncwatermark.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js +60 -32
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponentDependency/mjcomponentdependency.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJComponentDependency/mjcomponentdependency.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponentLibrary/mjcomponentlibrary.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJComponentLibrary/mjcomponentlibrary.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponentLibraryLink/mjcomponentlibrarylink.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJComponentLibraryLink/mjcomponentlibrarylink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponentRegistry/mjcomponentregistry.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJComponentRegistry/mjcomponentregistry.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentFileType/mjcontentfiletype.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJContentFileType/mjcontentfiletype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js +49 -39
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.js +13 -6
- package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +51 -41
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.js +13 -6
- package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js +35 -25
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceTypeParam/mjcontentsourcetypeparam.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJContentSourceTypeParam/mjcontentsourcetypeparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js +36 -26
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentTypeAttribute/mjcontenttypeattribute.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJContentTypeAttribute/mjcontenttypeattribute.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +74 -50
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationArtifact/mjconversationartifact.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJConversationArtifact/mjconversationartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.js +18 -9
- package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationArtifactVersion/mjconversationartifactversion.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJConversationArtifactVersion/mjconversationartifactversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js +72 -62
- package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationDetailArtifact/mjconversationdetailartifact.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJConversationDetailArtifact/mjconversationdetailartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationDetailAttachment/mjconversationdetailattachment.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJConversationDetailAttachment/mjconversationdetailattachment.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationDetailRating/mjconversationdetailrating.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJConversationDetailRating/mjconversationdetailrating.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCountry/mjcountry.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJCountry/mjcountry.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +59 -49
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js +42 -32
- package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboard/mjdashboard.form.component.js +44 -34
- package/dist/lib/generated/Entities/MJDashboard/mjdashboard.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.js +42 -32
- package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardCategoryLink/mjdashboardcategorylink.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJDashboardCategoryLink/mjdashboardcategorylink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardCategoryPermission/mjdashboardcategorypermission.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJDashboardCategoryPermission/mjdashboardcategorypermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardPartType/mjdashboardparttype.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJDashboardPartType/mjdashboardparttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardPermission/mjdashboardpermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJDashboardPermission/mjdashboardpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardUserPreference/mjdashboarduserpreference.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJDashboardUserPreference/mjdashboarduserpreference.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardUserState/mjdashboarduserstate.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJDashboardUserState/mjdashboarduserstate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDataContext/mjdatacontext.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJDataContext/mjdatacontext.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDataContextItem/mjdatacontextitem.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJDataContextItem/mjdatacontextitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDataset/mjdataset.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJDataset/mjdataset.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDatasetItem/mjdatasetitem.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJDatasetItem/mjdatasetitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEmployee/mjemployee.form.component.js +49 -39
- package/dist/lib/generated/Entities/MJEmployee/mjemployee.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEmployeeCompanyIntegration/mjemployeecompanyintegration.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEmployeeCompanyIntegration/mjemployeecompanyintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.js +18 -9
- package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEmployeeSkill/mjemployeeskill.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJEmployeeSkill/mjemployeeskill.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEncryptionAlgorithm/mjencryptionalgorithm.form.component.js +22 -12
- package/dist/lib/generated/Entities/MJEncryptionAlgorithm/mjencryptionalgorithm.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEncryptionKey/mjencryptionkey.form.component.js +22 -12
- package/dist/lib/generated/Entities/MJEncryptionKey/mjencryptionkey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEncryptionKeySource/mjencryptionkeysource.form.component.js +22 -12
- package/dist/lib/generated/Entities/MJEncryptionKeySource/mjencryptionkeysource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +346 -318
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityAIAction/mjentityaiaction.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJEntityAIAction/mjentityaiaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityAction/mjentityaction.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJEntityAction/mjentityaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityActionFilter/mjentityactionfilter.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityActionFilter/mjentityactionfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityActionInvocation/mjentityactioninvocation.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityActionInvocation/mjentityactioninvocation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityActionInvocationType/mjentityactioninvocationtype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJEntityActionInvocationType/mjentityactioninvocationtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityActionParam/mjentityactionparam.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityActionParam/mjentityactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.js +17 -9
- package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityCommunicationMessageType/mjentitycommunicationmessagetype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJEntityCommunicationMessageType/mjentitycommunicationmessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js +44 -34
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocumentRun/mjentitydocumentrun.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityDocumentRun/mjentitydocumentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocumentSetting/mjentitydocumentsetting.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityDocumentSetting/mjentitydocumentsetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js +24 -15
- package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.js +92 -0
- package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityOrganicKeyRelatedEntity/mjentityorganickeyrelatedentity.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJEntityOrganicKeyRelatedEntity/mjentityorganickeyrelatedentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityPermission/mjentitypermission.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJEntityPermission/mjentitypermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRelationship/mjentityrelationship.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJEntityRelationship/mjentityrelationship.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRelationshipDisplayComponent/mjentityrelationshipdisplaycomponent.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJEntityRelationshipDisplayComponent/mjentityrelationshipdisplaycomponent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntitySetting/mjentitysetting.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJEntitySetting/mjentitysetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js +57 -48
- package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJErrorLog/mjerrorlog.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJErrorLog/mjerrorlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJExplorerNavigationItem/mjexplorernavigationitem.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJExplorerNavigationItem/mjexplorernavigationitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js +49 -39
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileEntityRecordLink/mjfileentityrecordlink.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJFileEntityRecordLink/mjfileentityrecordlink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js +52 -42
- package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileStorageAccountPermission/mjfilestorageaccountpermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJFileStorageAccountPermission/mjfilestorageaccountpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js +46 -36
- package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJGeneratedCode/mjgeneratedcode.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJGeneratedCode/mjgeneratedcode.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJInstanceConfiguration/mjinstanceconfiguration.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJInstanceConfiguration/mjinstanceconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js +44 -34
- package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js +36 -26
- package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationSourceType/mjintegrationsourcetype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJIntegrationSourceType/mjintegrationsourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationURLFormat/mjintegrationurlformat.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJIntegrationURLFormat/mjintegrationurlformat.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJLibrary/mjlibrary.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJLibrary/mjlibrary.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJLibraryItem/mjlibraryitem.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJLibraryItem/mjlibraryitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJList/mjlist.form.component.js +45 -35
- package/dist/lib/generated/Entities/MJList/mjlist.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJListDetail/mjlistdetail.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJListDetail/mjlistdetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJListInvitation/mjlistinvitation.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJListInvitation/mjlistinvitation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJListShare/mjlistshare.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJListShare/mjlistshare.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServer/mjmcpserver.form.component.js +43 -33
- package/dist/lib/generated/Entities/MJMCPServer/mjmcpserver.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServerConnection/mjmcpserverconnection.form.component.js +54 -44
- package/dist/lib/generated/Entities/MJMCPServerConnection/mjmcpserverconnection.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServerConnectionPermission/mjmcpserverconnectionpermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJMCPServerConnectionPermission/mjmcpserverconnectionpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServerConnectionTool/mjmcpserverconnectiontool.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJMCPServerConnectionTool/mjmcpserverconnectiontool.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServerTool/mjmcpservertool.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJMCPServerTool/mjmcpservertool.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPToolExecutionLog/mjmcptoolexecutionlog.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJMCPToolExecutionLog/mjmcptoolexecutionlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPToolFavorite/mjmcptoolfavorite.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJMCPToolFavorite/mjmcptoolfavorite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOAuthAuthServerMetadataCache/mjoauthauthservermetadatacache.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOAuthAuthServerMetadataCache/mjoauthauthservermetadatacache.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOAuthAuthorizationState/mjoauthauthorizationstate.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOAuthAuthorizationState/mjoauthauthorizationstate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOAuthClientRegistration/mjoauthclientregistration.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOAuthClientRegistration/mjoauthclientregistration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOAuthToken/mjoauthtoken.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOAuthToken/mjoauthtoken.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOpenApp/mjopenapp.form.component.js +33 -23
- package/dist/lib/generated/Entities/MJOpenApp/mjopenapp.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOpenAppDependency/mjopenappdependency.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOpenAppDependency/mjopenappdependency.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOpenAppInstallHistory/mjopenappinstallhistory.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOpenAppInstallHistory/mjopenappinstallhistory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOutputDeliveryType/mjoutputdeliverytype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJOutputDeliveryType/mjoutputdeliverytype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOutputFormatType/mjoutputformattype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJOutputFormatType/mjoutputformattype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOutputTriggerType/mjoutputtriggertype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJOutputTriggerType/mjoutputtriggertype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJPermissionDomain/mjpermissiondomain.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJPermissionDomain/mjpermissiondomain.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJPublicLink/mjpubliclink.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJPublicLink/mjpubliclink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +66 -56
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryDependency/mjquerydependency.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJQueryDependency/mjquerydependency.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryEntity/mjqueryentity.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJQueryEntity/mjqueryentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryParameter/mjqueryparameter.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJQueryParameter/mjqueryparameter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.js +18 -9
- package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQuerySQL/mjquerysql.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJQuerySQL/mjquerysql.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueue/mjqueue.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJQueue/mjqueue.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueueTask/mjqueuetask.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJQueueTask/mjqueuetask.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueueType/mjqueuetype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJQueueType/mjqueuetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendation/mjrecommendation.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJRecommendation/mjrecommendation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.js +17 -9
- package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendationProvider/mjrecommendationprovider.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJRecommendationProvider/mjrecommendationprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendationRun/mjrecommendationrun.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJRecommendationRun/mjrecommendationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js +36 -26
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChangeReplayRun/mjrecordchangereplayrun.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJRecordChangeReplayRun/mjrecordchangereplayrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordGeoCode/mjrecordgeocode.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJRecordGeoCode/mjrecordgeocode.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordLink/mjrecordlink.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJRecordLink/mjrecordlink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordMergeDeletionLog/mjrecordmergedeletionlog.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJRecordMergeDeletionLog/mjrecordmergedeletionlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordMergeLog/mjrecordmergelog.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJRecordMergeLog/mjrecordmergelog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReport/mjreport.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJReport/mjreport.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReportCategory/mjreportcategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJReportCategory/mjreportcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReportSnapshot/mjreportsnapshot.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJReportSnapshot/mjreportsnapshot.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReportUserState/mjreportuserstate.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJReportUserState/mjreportuserstate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReportVersion/mjreportversion.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJReportVersion/mjreportversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJResourceLink/mjresourcelink.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJResourceLink/mjresourcelink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJResourcePermission/mjresourcepermission.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJResourcePermission/mjresourcepermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js +45 -35
- package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js +94 -66
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js +40 -31
- package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledActionParam/mjscheduledactionparam.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJScheduledActionParam/mjscheduledactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js +38 -28
- package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledJobRun/mjscheduledjobrun.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJScheduledJobRun/mjscheduledjobrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledJobType/mjscheduledjobtype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJScheduledJobType/mjscheduledjobtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSchemaInfo/mjschemainfo.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJSchemaInfo/mjschemainfo.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchExecutionLog/mjsearchexecutionlog.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJSearchExecutionLog/mjsearchexecutionlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.js +68 -58
- package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopeEntity/mjsearchscopeentity.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJSearchScopeEntity/mjsearchscopeentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopeExternalIndex/mjsearchscopeexternalindex.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJSearchScopeExternalIndex/mjsearchscopeexternalindex.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopePermission/mjsearchscopepermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJSearchScopePermission/mjsearchscopepermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopeProvider/mjsearchscopeprovider.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJSearchScopeProvider/mjsearchscopeprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopeStorageAccount/mjsearchscopestorageaccount.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJSearchScopeStorageAccount/mjsearchscopestorageaccount.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopeTestQuery/mjsearchscopetestquery.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJSearchScopeTestQuery/mjsearchscopetestquery.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSkill/mjskill.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJSkill/mjskill.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJStateProvince/mjstateprovince.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJStateProvince/mjstateprovince.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +93 -83
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagScope/mjtagscope.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTagScope/mjtagscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagSuggestion/mjtagsuggestion.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJTagSuggestion/mjtagsuggestion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTaskDependency/mjtaskdependency.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTaskDependency/mjtaskdependency.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTaskType/mjtasktype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJTaskType/mjtasktype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js +64 -54
- package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateContent/mjtemplatecontent.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJTemplateContent/mjtemplatecontent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js +24 -15
- package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateParam/mjtemplateparam.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJTemplateParam/mjtemplateparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRubric/mjtestrubric.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJTestRubric/mjtestrubric.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js +56 -46
- package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRunFeedback/mjtestrunfeedback.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTestRunFeedback/mjtestrunfeedback.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRunOutput/mjtestrunoutput.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJTestRunOutput/mjtestrunoutput.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRunOutputType/mjtestrunoutputtype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJTestRunOutputType/mjtestrunoutputtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteTest/mjtestsuitetest.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJTestSuiteTest/mjtestsuitetest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestType/mjtesttype.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJTestType/mjtesttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +530 -502
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserApplication/mjuserapplication.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJUserApplication/mjuserapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserApplicationEntity/mjuserapplicationentity.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJUserApplicationEntity/mjuserapplicationentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserFavorite/mjuserfavorite.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJUserFavorite/mjuserfavorite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserNotification/mjusernotification.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJUserNotification/mjusernotification.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserNotificationPreference/mjusernotificationpreference.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJUserNotificationPreference/mjusernotificationpreference.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserRecordLog/mjuserrecordlog.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJUserRecordLog/mjuserrecordlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserRole/mjuserrole.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJUserRole/mjuserrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserSetting/mjusersetting.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJUserSetting/mjusersetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserView/mjuserview.form.component.js +48 -38
- package/dist/lib/generated/Entities/MJUserView/mjuserview.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserViewRun/mjuserviewrun.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJUserViewRun/mjuserviewrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserViewRunDetail/mjuserviewrundetail.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJUserViewRunDetail/mjuserviewrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVectorDatabase/mjvectordatabase.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJVectorDatabase/mjvectordatabase.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +49 -39
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVersionInstallation/mjversioninstallation.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJVersionInstallation/mjversioninstallation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVersionLabel/mjversionlabel.form.component.js +44 -34
- package/dist/lib/generated/Entities/MJVersionLabel/mjversionlabel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.js +18 -9
- package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVersionLabelRestore/mjversionlabelrestore.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJVersionLabelRestore/mjversionlabelrestore.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkflow/mjworkflow.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJWorkflow/mjworkflow.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkflowEngine/mjworkflowengine.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJWorkflowEngine/mjworkflowengine.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkflowRun/mjworkflowrun.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJWorkflowRun/mjworkflowrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js +26 -17
- package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkspaceItem/mjworkspaceitem.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJWorkspaceItem/mjworkspaceitem.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +161 -160
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +43 -40
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts +62 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts.map +1 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +386 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -0
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts +41 -0
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts.map +1 -0
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +227 -0
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -0
- package/package.json +36 -36
- package/dist/lib/__tests__/content-source-form.test.d.ts +0 -2
- package/dist/lib/__tests__/content-source-form.test.d.ts.map +0 -1
- package/dist/lib/__tests__/content-source-form.test.js +0 -183
- package/dist/lib/__tests__/content-source-form.test.js.map +0 -1
- package/dist/lib/custom/ContentSources/content-source-form.component.d.ts +0 -76
- package/dist/lib/custom/ContentSources/content-source-form.component.d.ts.map +0 -1
- package/dist/lib/custom/ContentSources/content-source-form.component.js +0 -510
- package/dist/lib/custom/ContentSources/content-source-form.component.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-prompt-run-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIPromptRuns/ai-prompt-run-form.component.ts","../../../../src/lib/custom/AIPromptRuns/ai-prompt-run-form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, AfterViewInit, ViewContainerRef, OnDestroy, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent, CUSTOM_LAYOUT_TOOLBAR_CONFIG } from '@memberjunction/ng-base-forms';\nimport { MJAIPromptRunEntityExtended, MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';\nimport { MJAIModelEntity } from \"@memberjunction/core-entities\";\nimport { Metadata, RunView, CompositeKey } from '@memberjunction/core';\nimport { MJAIPromptRunFormComponent } from '../../generated/Entities/MJAIPromptRun/mjaipromptrun.form.component';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { ChatMessage } from '@memberjunction/ai';\nimport { TestHarnessWindowManagerService } from '@memberjunction/ng-ai-test-harness';\nimport { ParseJSONOptions, ParseJSONRecursive } from '@memberjunction/global';\n\n@RegisterClass(BaseFormComponent, 'MJ: AI Prompt Runs')\n@Component({\n standalone: false,\n selector: 'mj-ai-prompt-run-form',\n templateUrl: './ai-prompt-run-form.component.html',\n styleUrls: ['./ai-prompt-run-form.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MJAIPromptRunFormComponentExtended extends MJAIPromptRunFormComponent implements AfterViewInit, OnDestroy {\n public record!: MJAIPromptRunEntityExtended;\n public readonly toolbarConfig = CUSTOM_LAYOUT_TOOLBAR_CONFIG;\n\n /** Custom-layout AI Prompt Run form looks best full-width on first open. */\n public override getDefaultFormWidthMode(): 'centered' | 'full-width' { return 'full-width'; }\n\n // Related entities\n public prompt: MJAIPromptEntityExtended | null = null;\n public model: MJAIModelEntity | null = null;\n public parentRun: MJAIPromptRunEntityExtended | null = null;\n public childRuns: MJAIPromptRunEntityExtended[] = [];\n \n // UI state\n public isLoadingRelatedData = false;\n public isParsingMessages = false; // Will be set to true in ngOnInit if there are messages\n public inputExpanded = true; // Start open as users want to see this\n public messagesExpanded = true;\n public dataExpanded = false; // Changed to false - often blank\n public rawExpanded = false;\n public resultExpanded = false; // Start closed for lazy loading\n public metricsExpanded = false;\n public hierarchyExpanded = false;\n public validationExpanded = false; // Start closed for lazy loading\n public modelSpecificExpanded = false; // Start closed for lazy loading\n \n // Track what has been loaded\n private hasLoadedInput = false;\n private hasLoadedResult = false;\n private hasLoadedValidation = false;\n private hasLoadedMetrics = false;\n private hasLoadedModelSpecific = false;\n \n // Formatted values\n public formattedMessages = '';\n public formattedResult = '';\n public formattedValidationSummary = '';\n public formattedValidationAttempts = '';\n public formattedData = '';\n public formattedModelSelection = '';\n public formattedErrorDetails = '';\n public formattedModelSpecificResponseDetails = '';\n \n // Parsed input data\n public chatMessages: ChatMessage[] = [];\n public inputData: any = null;\n \n // Validation data\n public validationAttempts: any[] = [];\n public validationSummary: any = null;\n\n // Full-screen overlay state\n public FullScreenContent: string | null = null;\n public FullScreenLanguage = 'json';\n public FullScreenTitle = '';\n\n // Field injections\n private testHarnessWindowService = inject(TestHarnessWindowManagerService);\n private viewContainerRef = inject(ViewContainerRef);\n \n async ngOnInit() {\n await super.ngOnInit();\n if (this.record?.ID) {\n // Set loading state immediately if input panel will be loaded and has messages\n if (this.inputExpanded && this.record.Messages && this.record.Messages.trim() !== '') {\n this.isParsingMessages = true;\n this.cdr.detectChanges(); // Force immediate update to show spinner\n }\n \n // Load related entities\n await this.loadRelatedData();\n \n // Format ALL JSON fields immediately on load - it's inexpensive\n console.log('🚀 Formatting all JSON fields on init...');\n this.formatAllJsonFields();\n \n // Mark all data as loaded since we're doing it all upfront\n this.hasLoadedInput = true;\n this.hasLoadedResult = true;\n this.hasLoadedValidation = true;\n this.hasLoadedMetrics = true;\n this.hasLoadedModelSpecific = true;\n \n this.isParsingMessages = false;\n this.cdr.detectChanges();\n }\n }\n \n ngAfterViewInit() {\n // Force change detection to ensure expansion panels render correctly\n setTimeout(() => {\n this.cdr.detectChanges();\n }, 0);\n }\n \n ngOnDestroy() {\n // Clean up any resources\n // Currently no subscriptions or timers to clean up\n // This is here for future use and to complete the lifecycle\n }\n \n onInputPanelToggle(event: any) {\n const expanded = event as boolean;\n this.inputExpanded = expanded;\n // Data is already formatted on init, no need to do anything\n }\n \n onResultPanelToggle(event: any) {\n const expanded = event as boolean;\n this.resultExpanded = expanded;\n // Data is already formatted on init, no need to do anything\n }\n \n onValidationPanelToggle(event: any) {\n const expanded = event as boolean;\n this.validationExpanded = expanded;\n // Data is already formatted on init, no need to do anything\n }\n \n onMetricsPanelToggle(event: any) {\n const expanded = event as boolean;\n this.metricsExpanded = expanded;\n // Data is already formatted on init, no need to do anything\n }\n \n onModelSpecificPanelToggle(event: any) {\n const expanded = event as boolean;\n this.modelSpecificExpanded = expanded;\n // Data is already formatted on init, no need to do anything\n }\n \n onModelSelectionPanelToggle(event: any) {\n const expanded = event as boolean;\n // Data is already formatted on init, no need to do anything\n }\n \n private async loadRelatedData() {\n this.isLoadingRelatedData = true;\n try {\n const md = this.ProviderToUse;\n \n // Load prompt\n if (this.record.PromptID) {\n this.prompt = await md.GetEntityObject<MJAIPromptEntityExtended>('MJ: AI Prompts');\n if (this.prompt) {\n await this.prompt.Load(this.record.PromptID);\n }\n }\n \n // Load model\n if (this.record.ModelID) {\n this.model = await md.GetEntityObject<MJAIModelEntity>('MJ: AI Models');\n if (this.model) {\n await this.model.Load(this.record.ModelID);\n }\n }\n \n // Load parent run if exists\n if (this.record.ParentID) {\n this.parentRun = await md.GetEntityObject<MJAIPromptRunEntityExtended>('MJ: AI Prompt Runs');\n if (this.parentRun) {\n await this.parentRun.Load(this.record.ParentID);\n }\n }\n \n // Load child runs\n await this.loadChildRuns();\n } catch (error) {\n console.error('Error loading related data:', error);\n } finally {\n this.isLoadingRelatedData = false;\n }\n }\n \n private async loadChildRuns() {\n if (!this.record.ID) return;\n \n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJAIPromptRunEntityExtended>({\n EntityName: 'MJ: AI Prompt Runs',\n ExtraFilter: `ParentID='${this.record.ID}'`,\n OrderBy: 'ExecutionOrder ASC, RunAt DESC',\n ResultType: 'entity_object'\n });\n \n if (result.Success) {\n this.childRuns = result.Results || [];\n }\n }\n \n private formatAllJsonFields() {\n if (!this.record) {\n console.warn('formatAllJsonFields called but record is not available');\n return;\n }\n \n console.log('📄 Formatting input data...');\n // Format input/messages data\n const messageData = this.record.ParseMessagesData();\n this.chatMessages = messageData.chatMessages;\n this.inputData = messageData.inputData;\n this.formattedMessages = messageData.formattedMessages;\n this.formattedData = messageData.formattedData;\n console.log('📄 Input data formatted. Chat messages:', this.chatMessages.length, 'Input data exists:', !!this.inputData);\n \n console.log('📊 Formatting result data...');\n // Format result data\n this.formattedResult = this.record.GetFormattedResult();\n console.log('📊 Result formatted:', !!this.formattedResult, 'Length:', this.formattedResult?.length);\n \n console.log('🔍 Formatting validation data...');\n // Format validation data\n this.loadValidationData();\n \n console.log('📈 Formatting metrics data...');\n // Format metrics data (ModelSelection, ErrorDetails)\n this.formatMetricsData();\n \n console.log('🔧 Formatting model specific data...');\n // Format model specific response details\n this.formatModelSpecificResponseDetails();\n \n // Format error details if available\n if (this.record.ErrorDetails && !this.formattedErrorDetails) {\n console.log('⚠️ Formatting error details...');\n this.formatErrorDetails();\n }\n \n console.log('✅ All JSON fields formatted');\n }\n \n \n private formatMetricsData() {\n // Format v2.78 JSON fields related to metrics\n const parseOptions: ParseJSONOptions = {\n extractInlineJson: true,\n maxDepth: 100,\n debug: false\n };\n \n // Format ModelSelection\n if (this.record.ModelSelection) {\n try {\n const modelSelection = JSON.parse(this.record.ModelSelection);\n const parsed = ParseJSONRecursive(modelSelection, parseOptions);\n this.formattedModelSelection = JSON.stringify(parsed, null, 2);\n } catch (error) {\n this.formattedModelSelection = this.record.ModelSelection;\n }\n }\n \n // Format ErrorDetails\n if (this.record.ErrorDetails) {\n try {\n const errorDetails = JSON.parse(this.record.ErrorDetails);\n const parsed = ParseJSONRecursive(errorDetails, parseOptions);\n this.formattedErrorDetails = JSON.stringify(parsed, null, 2);\n } catch (error) {\n this.formattedErrorDetails = this.record.ErrorDetails;\n }\n }\n \n // Note: ModelSpecificResponseDetails is now formatted in its own panel toggle method\n }\n \n private formatErrorDetails() {\n if (!this.record.ErrorDetails) {\n this.formattedErrorDetails = '';\n return;\n }\n \n const parseOptions: ParseJSONOptions = {\n extractInlineJson: true,\n maxDepth: 100,\n debug: false\n };\n \n try {\n const errorDetails = JSON.parse(this.record.ErrorDetails);\n const parsed = ParseJSONRecursive(errorDetails, parseOptions);\n this.formattedErrorDetails = JSON.stringify(parsed, null, 2);\n } catch (error) {\n this.formattedErrorDetails = this.record.ErrorDetails;\n }\n }\n \n private formatModelSpecificResponseDetails() {\n if (!this.record.ModelSpecificResponseDetails) {\n this.formattedModelSpecificResponseDetails = '';\n return;\n }\n \n const parseOptions: ParseJSONOptions = {\n extractInlineJson: true,\n maxDepth: 100,\n debug: false\n };\n \n try {\n const modelDetails = JSON.parse(this.record.ModelSpecificResponseDetails);\n const parsed = ParseJSONRecursive(modelDetails, parseOptions);\n this.formattedModelSpecificResponseDetails = JSON.stringify(parsed, null, 2);\n } catch (error) {\n this.formattedModelSpecificResponseDetails = this.record.ModelSpecificResponseDetails;\n }\n }\n \n getStatusColor(): string {\n if (!this.record) return '#6c757d';\n \n if (this.record.Success === true) {\n return '#28a745'; // Green\n } else if (this.record.Success === false) {\n return '#dc3545'; // Red\n } else if (this.record.CompletedAt) {\n return '#17a2b8'; // Blue (completed but no success flag)\n } else {\n return '#ffc107'; // Yellow (running)\n }\n }\n \n getStatusIcon(): string {\n if (!this.record) return 'fa-circle';\n \n if (this.record.Success === true) {\n return 'fa-check-circle';\n } else if (this.record.Success === false) {\n return 'fa-times-circle';\n } else if (this.record.CompletedAt) {\n return 'fa-info-circle';\n } else {\n return 'fa-spinner fa-spin';\n }\n }\n \n getStatusText(): string {\n if (!this.record) return 'Unknown';\n \n if (this.record.Success === true) {\n return 'Success';\n } else if (this.record.Success === false) {\n return 'Failed';\n } else if (this.record.CompletedAt) {\n return 'Completed';\n } else {\n return 'Running';\n }\n }\n \n formatDuration(ms: number | null): string {\n if (!ms) return '-';\n \n if (ms < 1000) {\n return `${ms}ms`;\n } else if (ms < 60000) {\n return `${(ms / 1000).toFixed(1)}s`;\n } else {\n const minutes = Math.floor(ms / 60000);\n const seconds = ((ms % 60000) / 1000).toFixed(0);\n return `${minutes}m ${seconds}s`;\n }\n }\n \n formatCost(cost: number | null): string {\n if (!cost) return '-';\n return `$${cost.toFixed(4)}`;\n }\n \n formatTokens(tokens: number | null): string {\n if (!tokens) return '-';\n return tokens.toLocaleString();\n }\n \n getRunTypeIcon(runType: string | null): string {\n switch (runType) {\n case 'Single':\n return 'fa-play-circle';\n case 'ParallelParent':\n return 'fa-layer-group';\n case 'ParallelChild':\n return 'fa-clone';\n case 'ResultSelector':\n return 'fa-filter';\n default:\n return 'fa-circle';\n }\n }\n \n getRunTypeColor(runType: string | null): string {\n switch (runType) {\n case 'Single':\n return '#6f42c1';\n case 'ParallelParent':\n return '#007bff';\n case 'ParallelChild':\n return '#17a2b8';\n case 'ResultSelector':\n return '#28a745';\n default:\n return '#6c757d';\n }\n }\n \n navigateToEntity(entityName: string, recordId: string | null) {\n if (!recordId) return;\n \n SharedService.Instance.OpenEntityRecord(entityName, CompositeKey.FromID(recordId));\n }\n \n navigateToOriginalRun() {\n if (this.record?.RerunFromPromptRunID) {\n SharedService.Instance.OpenEntityRecord('MJ: AI Prompt Runs', CompositeKey.FromID(this.record.RerunFromPromptRunID));\n }\n }\n \n reRunPrompt() {\n console.log('🚀 Re-Run button clicked');\n console.log('📋 Current record:', this.record);\n console.log('🆔 Record ID:', this.record?.ID);\n console.log('🎯 Prompt ID:', this.record?.PromptID);\n \n if (!this.record?.ID || !this.record.PromptID) {\n console.error('❌ Cannot re-run: missing record ID or PromptID');\n return;\n }\n \n const params = {\n promptId: this.record.PromptID,\n promptRunId: this.record.ID,\n title: `Re-Run: ${this.prompt?.Name || 'Prompt'}`,\n width: '80vw',\n height: '80vh',\n viewContainerRef: this.viewContainerRef\n };\n \n console.log('📞 Calling openPromptTestHarness with params:', params);\n \n // Open AI Test Harness dialog with the prompt run ID\n this.testHarnessWindowService.openPromptTestHarness(params).subscribe({\n next: (result: any) => {\n if (result) {\n // Optionally refresh the current view or show a success message\n console.log('Test harness completed', result);\n }\n },\n error: (error: any) => {\n console.error('Error in test harness:', error);\n }\n });\n }\n \n copyToClipboard(text: string, fieldName: string) {\n navigator.clipboard.writeText(text).then(() => {\n // Just show a console log for now, as ShowSimpleNotification may not exist\n console.log(`${fieldName} copied to clipboard`);\n }).catch(err => {\n console.error('Failed to copy:', err);\n });\n }\n \n async refreshData() {\n console.log('🔄 refreshData called');\n if (this.record?.ID) {\n console.log('🔄 Reloading record and formatting all data...');\n \n await this.record.Load(this.record.ID);\n await this.loadRelatedData();\n console.log('🔄 Record reloaded. Result field exists:', !!this.record.Result);\n \n // Format all JSON fields again\n this.formatAllJsonFields();\n \n this.cdr.detectChanges();\n }\n }\n \n public openFullScreen(content: string, language: string, title: string): void {\n this.FullScreenContent = content;\n this.FullScreenLanguage = language;\n this.FullScreenTitle = title;\n this.cdr.detectChanges();\n }\n\n public closeFullScreen(): void {\n this.FullScreenContent = null;\n this.cdr.detectChanges();\n }\n\n private loadValidationData() {\n const parseOptions: ParseJSONOptions = {\n extractInlineJson: true,\n maxDepth: 100,\n debug: false\n };\n\n // Parse validation attempts if available\n if (this.record.ValidationAttempts) {\n try {\n this.validationAttempts = JSON.parse(this.record.ValidationAttempts);\n const recursivelyParsed = ParseJSONRecursive(this.validationAttempts, parseOptions);\n this.formattedValidationAttempts = JSON.stringify(recursivelyParsed, null, 2);\n } catch (error) {\n console.error('Error parsing ValidationAttempts:', error);\n this.validationAttempts = [];\n this.formattedValidationAttempts = '';\n }\n } else {\n this.validationAttempts = [];\n this.formattedValidationAttempts = '';\n }\n \n // Parse validation summary if available\n if (this.record.ValidationSummary) {\n try {\n this.validationSummary = JSON.parse(this.record.ValidationSummary);\n const recursivelyParsed = ParseJSONRecursive(this.validationSummary, parseOptions);\n this.formattedValidationSummary = JSON.stringify(recursivelyParsed, null, 2);\n } catch (error) {\n console.error('Error parsing ValidationSummary:', error);\n this.validationSummary = null;\n this.formattedValidationSummary = '';\n }\n } else {\n this.validationSummary = null;\n this.formattedValidationSummary = '';\n }\n \n // Don't auto-expand validation panel anymore - let user expand when needed\n }\n}","@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n [ToolbarConfig]=\"toolbarConfig\"\n [WidthMode]=\"'full-width'\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n\n <!-- Header Section -->\n <div class=\"prompt-run-header\">\n <div class=\"header-content\">\n <div class=\"run-overview\">\n <div class=\"run-icon-wrapper\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getStatusIcon()\" [style.color]=\"getStatusColor()\"></i>\n </div>\n <div class=\"run-info\">\n <h1 class=\"run-title\">\n Prompt Run\n @if (record.ID) {\n <span class=\"run-id\">#{{ record.ID.substring(0, 8) }}</span>\n }\n </h1>\n <div class=\"run-meta\">\n <!-- Status Card -->\n <div class=\"meta-card status-card\">\n <div class=\"c3-card-label\">Status</div>\n <div class=\"meta-card-body\">\n <span class=\"status-indicator\" [style.background-color]=\"getStatusColor()\"></span>\n <i [class]=\"'fa-solid ' + getStatusIcon()\" [style.color]=\"getStatusColor()\"></i>\n {{ getStatusText() }}\n </div>\n </div>\n\n <!-- Execution Card -->\n @if (record.RunType) {\n <div class=\"meta-card execution-card\">\n <div class=\"c3-card-label\">Execution</div>\n <div class=\"meta-card-body\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(record.RunType)\" [style.color]=\"getRunTypeColor(record.RunType)\"></i>\n {{ record.RunType }}\n </div>\n </div>\n }\n\n <!-- Prompt Card -->\n @if (prompt) {\n @if (record.ChildPromptID) {\n <!-- C3 Stacked Connector: child prompt prominent, parent nested -->\n <div class=\"prompt-card-c3\">\n <div class=\"c3-card-label\">Prompt</div>\n <div class=\"c3-child-section\" (click)=\"navigateToEntity('MJ: AI Prompts', record.ChildPromptID)\" title=\"View Agent Prompt\">\n <i class=\"fa-solid fa-comment prompt-icon\"></i>\n {{ record.ChildPrompt }}\n </div>\n <div class=\"c3-divider\">\n <span class=\"c3-line\"></span>\n <span class=\"c3-divider-label\">wrapped by</span>\n <span class=\"c3-line\"></span>\n </div>\n <div class=\"c3-parent-section\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\" title=\"View System Prompt\">\n <i class=\"fa-solid fa-cog\"></i>\n {{ prompt.Name }}\n <i class=\"fa-solid fa-arrow-up-right-from-square c3-link-icon\"></i>\n </div>\n </div>\n } @else {\n <!-- Single prompt (no child) — same card style -->\n <div class=\"meta-card prompt-single-card\">\n <div class=\"c3-card-label\">Prompt</div>\n <div class=\"meta-card-body clickable\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\" title=\"View Prompt\">\n <i class=\"fa-solid fa-comment-dots\" style=\"color: var(--mj-brand-primary);\"></i>\n {{ prompt.Name }}\n </div>\n </div>\n }\n }\n\n <!-- Model Card -->\n @if (model) {\n <div class=\"model-card-c3\">\n <div class=\"c3-card-label\">Model</div>\n <div class=\"c3-card-body\" (click)=\"navigateToEntity('MJ: AI Models', model.ID)\" title=\"View Model\">\n <span class=\"c3-model-name\"><i class=\"fa-solid fa-microchip\"></i> {{ model.Name }}</span>\n @if (record.Vendor) {\n <span class=\"c3-vendor-name\">{{ record.Vendor }}</span>\n }\n </div>\n </div>\n }\n @if (record.RerunFromPromptRunID) {\n <span class=\"original-run\" title=\"View Original Run\">\n <i class=\"fa-solid fa-level-up-alt\"></i>\n <a (click)=\"navigateToOriginalRun()\" class=\"original-link\">Original Run</a>\n </span>\n }\n </div>\n </div>\n </div>\n \n <!-- Action Buttons -->\n <div class=\"run-actions\">\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"reRunPrompt()\" title=\"Re-run this prompt\">\n <i class=\"fa-solid fa-play-circle\"></i>\n Re-Run\n </button>\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"refreshData()\" title=\"Refresh data\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n \n <!-- Key Metrics Bar -->\n @if (record.ConfigurationID) {\n <!-- Configuration Bar -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-cog\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Configuration</div>\n <div class=\"metric-value\">\n <a href=\"javascript:void(0)\" class=\"config-link\" (click)=\"navigateToEntity('MJ: AI Configurations', record.ConfigurationID)\">\n {{ record.Configuration || 'Unknown' }}\n </a>\n </div>\n </div>\n </div>\n @if (record.Temperature !== null && record.Temperature !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-temperature-high\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Temperature</div>\n <div class=\"metric-value\">{{ record.Temperature }}</div>\n </div>\n </div>\n }\n @if (record.TopP !== null && record.TopP !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-percentage\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Top P</div>\n <div class=\"metric-value\">{{ record.TopP }}</div>\n </div>\n </div>\n }\n @if (record.TopK !== null && record.TopK !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-list-ol\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Top K</div>\n <div class=\"metric-value\">{{ record.TopK }}</div>\n </div>\n </div>\n }\n @if (record.EffortLevel !== null && record.EffortLevel !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-tachometer-alt\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Effort Level</div>\n <div class=\"metric-value\">{{ record.EffortLevel }}</div>\n </div>\n </div>\n }\n @if (record.ResponseFormat) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-code\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Response Format</div>\n <div class=\"metric-value\">{{ record.ResponseFormat }}</div>\n </div>\n </div>\n }\n </div>\n \n <!-- Execution Metrics Bar (always show when configuration exists) -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Duration</div>\n <div class=\"metric-value\">{{ formatDuration(record.ExecutionTimeMS) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-coins\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Total Tokens</div>\n <div class=\"metric-value\">{{ formatTokens(record.TokensUsed) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Cost</div>\n <div class=\"metric-value\">{{ formatCost(record.TotalCost || record.Cost) }}</div>\n </div>\n </div>\n @if (record.RunAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-calendar\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Started</div>\n <div class=\"metric-value\">{{ record.RunAt | date:'short' }}</div>\n </div>\n </div>\n }\n </div>\n } @else {\n <!-- Execution Metrics Bar (original behavior when no configuration) -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Duration</div>\n <div class=\"metric-value\">{{ formatDuration(record.ExecutionTimeMS) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-coins\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Total Tokens</div>\n <div class=\"metric-value\">{{ formatTokens(record.TokensUsed) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Cost</div>\n <div class=\"metric-value\">{{ formatCost(record.TotalCost || record.Cost) }}</div>\n </div>\n </div>\n @if (record.RunAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-calendar\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Started</div>\n <div class=\"metric-value\">{{ record.RunAt | date:'short' }}</div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Main Content with Expansion Panels -->\n <div class=\"form-content\" style=\"display: flex; flex-direction: column; flex: 1; min-height: 0; overflow-y: auto;\">\n\n <!-- Input Panel with nested sub-panels -->\n <mj-accordion-panel [Expanded]=\"inputExpanded\" (ExpandedChange)=\"onInputPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n Input\n @if (record.Messages && record.Messages.trim() !== '') {\n <span class=\"panel-badge\">JSON</span>\n }\n </span>\n </ng-template>\n <div class=\"panel-content\">\n @if (record.Messages && record.Messages.trim() !== '') {\n <!-- Nested expansion panels for sub-sections -->\n <div class=\"nested-panels\">\n <!-- Messages Sub-Panel -->\n <mj-accordion-panel\n [Expanded]=\"messagesExpanded\"\n class=\"sub-expansion-panel\"\n style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-comments\"></i>\n Messages\n @if (chatMessages.length > 0) {\n <span class=\"panel-count\">({{ chatMessages.length }})</span>\n }\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n @if (isParsingMessages || isLoadingRelatedData) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <p>Loading messages...</p>\n </div>\n } @else if (chatMessages.length > 0) {\n <mj-chat-message-viewer \n [messages]=\"chatMessages\">\n </mj-chat-message-viewer>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comment-slash\"></i>\n <p>No chat messages found</p>\n </div>\n }\n </div>\n </mj-accordion-panel>\n\n <!-- Data Sub-Panel -->\n <mj-accordion-panel\n [Expanded]=\"dataExpanded\"\n class=\"sub-expansion-panel\"\n style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-database\"></i>\n Data\n @if (inputData) {\n <span class=\"panel-badge\">Object</span>\n }\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n @if (inputData && formattedData) {\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"copyToClipboard(formattedData, 'Data')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedData, 'json', 'Data')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedData\"\n name=\"formattedData\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-database\"></i>\n <p>No data object found</p>\n </div>\n }\n </div>\n </mj-accordion-panel>\n\n <!-- Raw Sub-Panel -->\n <mj-accordion-panel\n [Expanded]=\"rawExpanded\"\n class=\"sub-expansion-panel\"\n style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-code\"></i>\n Raw\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"copyToClipboard(formattedMessages, 'Messages')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedMessages, 'json', 'Raw Messages')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedMessages\"\n name=\"formattedMessages\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </mj-accordion-panel>\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comment-slash\"></i>\n <p>No input messages recorded</p>\n </div>\n }\n </div>\n </mj-accordion-panel>\n \n <!-- Result Panel -->\n <mj-accordion-panel [Expanded]=\"resultExpanded\" (ExpandedChange)=\"onResultPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-square-check\"></i>\n Result\n @if (record.Result && record.Result.trim() !== '') {\n <span class=\"panel-badge\">JSON</span>\n }\n @if (record.ErrorMessage) {\n <span class=\"panel-badge error\">Error</span>\n }\n </span>\n </ng-template>\n <div class=\"panel-content\">\n @if (record.ErrorMessage) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <div class=\"error-content\">\n <h4>Error Message</h4>\n <p>{{ record.ErrorMessage }}</p>\n </div>\n </div>\n }\n \n @if (record.Result && record.Result.trim() !== '') {\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"copyToClipboard(formattedResult, 'Result')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedResult, 'json', 'Result')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedResult\"\n name=\"formattedResult\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else if (!record.ErrorMessage) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No result data recorded</p>\n @if (record.Status === 'Failed' || record.Success === false) {\n <div class=\"error-info\">\n @if (record.Status) {\n <p class=\"finish-reason\">\n <strong>Status:</strong> {{ record.Status }}\n </p>\n }\n @if (formattedErrorDetails) {\n <div class=\"error-details\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Error Details</h4>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedErrorDetails, 'json', 'Error Details')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor\n [ngModel]=\"formattedErrorDetails\"\n [disabled]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n @if (!formattedErrorDetails) {\n <p class=\"error-hint\">\n The prompt execution failed but no additional error information is available.\n </p>\n }\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n\n <!-- Token Usage & Metrics Panel -->\n <mj-accordion-panel [Expanded]=\"metricsExpanded\" (ExpandedChange)=\"onMetricsPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-chart-line\"></i>\n Token Usage & Metrics\n </span>\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"metrics-grid\">\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-message\"></i>\n <h4>Prompt Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensPrompt) }}</div>\n @if (record.TokensPromptRollup && record.TokensPromptRollup !== record.TokensPrompt) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensPromptRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-reply\"></i>\n <h4>Completion Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensCompletion) }}</div>\n @if (record.TokensCompletionRollup && record.TokensCompletionRollup !== record.TokensCompletion) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensCompletionRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-coins\"></i>\n <h4>Total Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensUsed) }}</div>\n @if (record.TokensUsedRollup && record.TokensUsedRollup !== record.TokensUsed) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensUsedRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <h4>Cost</h4>\n </div>\n <div class=\"metric-value large\">{{ formatCost(record.Cost) }}</div>\n @if (record.TotalCost && record.TotalCost !== record.Cost) {\n <div class=\"metric-rollup\">\n <span>Total: {{ formatCost(record.TotalCost) }}</span>\n </div>\n }\n @if (record.CostCurrency) {\n <div class=\"metric-currency\">{{ record.CostCurrency }}</div>\n }\n </div>\n \n <!-- Timing Metrics -->\n @if (record.QueueTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-hourglass-start\"></i>\n <h4>Queue Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.QueueTime) }}</div>\n </div>\n }\n \n @if (record.PromptTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-brain\"></i>\n <h4>Prompt Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.PromptTime) }}</div>\n </div>\n }\n \n @if (record.CompletionTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-flag-checkered\"></i>\n <h4>Completion Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.CompletionTime) }}</div>\n </div>\n }\n </div>\n \n <!-- Additional Metrics -->\n <div class=\"additional-metrics\">\n @if (record.ExecutionOrder !== null) {\n <div class=\"metric-row\">\n <span class=\"metric-label\">Execution Order:</span>\n <span class=\"metric-value\">{{ record.ExecutionOrder }}</span>\n </div>\n }\n @if (record.AgentID) {\n <div class=\"metric-row\">\n <span class=\"metric-label\">Agent:</span>\n <span class=\"metric-value link\" (click)=\"navigateToEntity('MJ: AI Agents', record.AgentID)\">\n {{ record.Agent }}\n <i class=\"fa-solid fa-external-link\"></i>\n </span>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Validation & Retry Panel -->\n @if (record && ((record.ValidationAttemptCount && record.ValidationAttemptCount > 0) || record.ValidationBehavior)) {\n <mj-accordion-panel [Expanded]=\"validationExpanded\" (ExpandedChange)=\"onValidationPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-shield-check\"></i>\n Validation & Retries\n @if (record && record.ValidationAttemptCount && record.ValidationAttemptCount > 1) {\n <span class=\"panel-count\">({{ record.ValidationAttemptCount }} attempts)</span>\n }\n @if (record.FinalValidationPassed) {\n <span class=\"panel-badge success\">Passed</span>\n } @else if (record.FinalValidationPassed === false) {\n <span class=\"panel-badge error\">Failed</span>\n }\n </span>\n </ng-template>\n <div class=\"panel-content\">\n <!-- Validation Summary -->\n <div class=\"validation-summary\">\n <div class=\"summary-header\">\n <h4>Validation Summary</h4>\n <div class=\"validation-status\" [class.success]=\"record.FinalValidationPassed\" [class.failed]=\"!record.FinalValidationPassed\">\n <i [class]=\"record.FinalValidationPassed ? 'fa-solid fa-check-circle' : 'fa-solid fa-times-circle'\"></i>\n {{ record.FinalValidationPassed ? 'Validation Passed' : 'Validation Failed' }}\n </div>\n </div>\n \n <div class=\"validation-metrics\">\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Total Attempts</div>\n <div class=\"metric-value\">{{ record.ValidationAttemptCount || 0 }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Successful</div>\n <div class=\"metric-value\">{{ record.SuccessfulValidationCount || 0 }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Behavior</div>\n <div class=\"metric-value\">{{ record.ValidationBehavior || 'Not set' }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Retry Strategy</div>\n <div class=\"metric-value\">{{ record.RetryStrategy || 'Not set' }}</div>\n </div>\n </div>\n \n @if (record.FinalValidationError) {\n <div class=\"validation-error\">\n <h5><i class=\"fa-solid fa-exclamation-triangle\"></i> Final Validation Error</h5>\n <p>{{ record.FinalValidationError }}</p>\n @if (record && record.ValidationErrorCount && record.ValidationErrorCount > 0) {\n <span class=\"error-count\">{{ record.ValidationErrorCount }} validation errors</span>\n }\n </div>\n }\n \n @if (record.CommonValidationError && record.CommonValidationError !== record.FinalValidationError) {\n <div class=\"common-error\">\n <h5><i class=\"fa-solid fa-repeat\"></i> Most Common Error</h5>\n <p>{{ record.CommonValidationError }}</p>\n </div>\n }\n </div>\n \n <!-- Retry Timeline -->\n @if (record && record.ValidationAttemptCount && record.ValidationAttemptCount > 1) {\n <div class=\"retry-timeline\">\n <h4>Retry Timeline</h4>\n <div class=\"timeline-info\">\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-clock\"></i>\n <span>First Attempt: {{ record.FirstAttemptAt | date:'short' }}</span>\n </div>\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-flag-checkered\"></i>\n <span>Last Attempt: {{ record.LastAttemptAt | date:'short' }}</span>\n </div>\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span>Total Retry Duration: {{ formatDuration(record.TotalRetryDurationMS) }}</span>\n </div>\n </div>\n </div>\n }\n \n <!-- Validation Attempts Details -->\n @if (validationAttempts && validationAttempts.length > 0) {\n <div class=\"validation-attempts\">\n <h4>Validation Attempts</h4>\n <div class=\"attempts-list\">\n @for (attempt of validationAttempts; track attempt.attemptNumber) {\n <div class=\"attempt-item\" [class.success]=\"attempt.success\" [class.failed]=\"!attempt.success\">\n <div class=\"attempt-number\">\n <i [class]=\"attempt.success ? 'fa-solid fa-check' : 'fa-solid fa-times'\"></i>\n Attempt #{{ attempt.attemptNumber }}\n </div>\n <div class=\"attempt-details\">\n <span class=\"attempt-time\">{{ attempt.timestamp }}</span>\n @if (!attempt.success) {\n <span class=\"attempt-error\">{{ attempt.errorMessage || 'Unknown error' }}</span>\n @if (attempt.validationErrorCount > 0) {\n <span class=\"error-count\">({{ attempt.validationErrorCount }} errors)</span>\n }\n }\n @if (attempt.outputLength) {\n <span class=\"output-length\">Output: {{ attempt.outputLength }} chars</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n \n <!-- Validation Summary JSON -->\n @if (validationSummary) {\n <div class=\"validation-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Validation Summary Details</h4>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedValidationSummary, 'json', 'Validation Summary')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedValidationSummary\"\n name=\"formattedValidationSummary\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n \n <!-- Validation Attempts JSON -->\n @if (record.ValidationAttempts) {\n <div class=\"validation-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Validation Attempts (Raw JSON)</h4>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedValidationAttempts, 'json', 'Validation Attempts')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedValidationAttempts\"\n name=\"formattedValidationAttempts\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Hierarchy Panel (for parent/child relationships) -->\n @if (record.ParentID || childRuns.length > 0) {\n <mj-accordion-panel [Expanded]=\"hierarchyExpanded\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-sitemap\"></i>\n Run Hierarchy\n @if (childRuns.length > 0) {\n <span class=\"panel-count\">({{ childRuns.length }} children)</span>\n }\n </span>\n </ng-template>\n <div class=\"panel-content\">\n @if (parentRun) {\n <div class=\"parent-run-section\">\n <h4><i class=\"fa-solid fa-level-up-alt\"></i> Parent Run</h4>\n <div class=\"run-item parent\" (click)=\"navigateToEntity('MJ: AI Prompt Runs', parentRun.ID)\">\n <div class=\"run-item-icon\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(parentRun.RunType)\"></i>\n </div>\n <div class=\"run-item-content\">\n <div class=\"run-item-title\">\n Parent Run #{{ parentRun.ID.substring(0, 8) }}\n <span class=\"run-item-type\">{{ parentRun.RunType }}</span>\n </div>\n <div class=\"run-item-meta\">\n <span><i class=\"fa-solid fa-clock\"></i> {{ formatDuration(parentRun.ExecutionTimeMS) }}</span>\n <span><i class=\"fa-solid fa-coins\"></i> {{ formatTokens(parentRun.TokensUsed) }}</span>\n <span><i class=\"fa-solid fa-calendar\"></i> {{ parentRun.RunAt | date:'short' }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n @if (childRuns.length > 0) {\n <div class=\"child-runs-section\">\n <h4><i class=\"fa-solid fa-level-down-alt\"></i> Child Runs</h4>\n <div class=\"runs-list\">\n @for (childRun of childRuns; track childRun.ID) {\n <div class=\"run-item child\" (click)=\"navigateToEntity('MJ: AI Prompt Runs', childRun.ID)\">\n <div class=\"run-item-icon\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(childRun.RunType)\"></i>\n </div>\n <div class=\"run-item-content\">\n <div class=\"run-item-title\">\n Child Run #{{ childRun.ID.substring(0, 8) }}\n @if (childRun.ExecutionOrder !== null) {\n <span class=\"execution-order\">#{{ childRun.ExecutionOrder }}</span>\n }\n <span class=\"run-item-type\">{{ childRun.RunType }}</span>\n </div>\n <div class=\"run-item-meta\">\n <span class=\"status-indicator\" [style.color]=\"getStatusColor()\">\n <i [class]=\"'fa-solid ' + getStatusIcon()\"></i>\n {{ childRun.Success ? 'Success' : childRun.ErrorMessage ? 'Failed' : 'Running' }}\n </span>\n <span><i class=\"fa-solid fa-clock\"></i> {{ formatDuration(childRun.ExecutionTimeMS) }}</span>\n <span><i class=\"fa-solid fa-coins\"></i> {{ formatTokens(childRun.TokensUsed) }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Additional Details Panel -->\n <mj-accordion-panel [Expanded]=\"false\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Additional Details\n </span>\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"detail-fields-grid\">\n @if (record.AgentID) {\n <div class=\"detail-field\">\n <label>Agent</label>\n <div class=\"detail-value clickable\" (click)=\"navigateToEntity('MJ: AI Agents', record.AgentID)\" title=\"View Agent\">\n <i class=\"fa-solid fa-robot\"></i>\n {{ record.Agent || 'Unknown' }}\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n \n @if (record.RunType) {\n <div class=\"detail-field\">\n <label>Run Type</label>\n <div class=\"detail-value\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(record.RunType)\"></i>\n {{ record.RunType }}\n </div>\n </div>\n }\n \n @if (record.ResponseFormat) {\n <div class=\"detail-field\">\n <label>Response Format</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-code\"></i>\n {{ record.ResponseFormat }}\n </div>\n </div>\n }\n \n <div class=\"detail-field\">\n <label>Temperature</label>\n <div class=\"detail-value\" [class.null-value]=\"record.Temperature === null || record.Temperature === undefined\">\n <i class=\"fa-solid fa-temperature-high\"></i>\n {{ record.Temperature !== null && record.Temperature !== undefined ? record.Temperature : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Top P</label>\n <div class=\"detail-value\" [class.null-value]=\"record.TopP === null || record.TopP === undefined\">\n <i class=\"fa-solid fa-percentage\"></i>\n {{ record.TopP !== null && record.TopP !== undefined ? record.TopP : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Top K</label>\n <div class=\"detail-value\" [class.null-value]=\"record.TopK === null || record.TopK === undefined\">\n <i class=\"fa-solid fa-list-ol\"></i>\n {{ record.TopK !== null && record.TopK !== undefined ? record.TopK : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Min P</label>\n <div class=\"detail-value\" [class.null-value]=\"record.MinP === null || record.MinP === undefined\">\n <i class=\"fa-solid fa-filter\"></i>\n {{ record.MinP !== null && record.MinP !== undefined ? record.MinP : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Frequency Penalty</label>\n <div class=\"detail-value\" [class.null-value]=\"record.FrequencyPenalty === null || record.FrequencyPenalty === undefined\">\n <i class=\"fa-solid fa-repeat\"></i>\n {{ record.FrequencyPenalty !== null && record.FrequencyPenalty !== undefined ? record.FrequencyPenalty : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Presence Penalty</label>\n <div class=\"detail-value\" [class.null-value]=\"record.PresencePenalty === null || record.PresencePenalty === undefined\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n {{ record.PresencePenalty !== null && record.PresencePenalty !== undefined ? record.PresencePenalty : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Seed</label>\n <div class=\"detail-value\" [class.null-value]=\"record.Seed === null || record.Seed === undefined\">\n <i class=\"fa-solid fa-seedling\"></i>\n {{ record.Seed !== null && record.Seed !== undefined ? record.Seed : '—' }}\n </div>\n </div>\n\n <div class=\"detail-field\">\n <label>Stop Sequences</label>\n <div class=\"detail-value\" [class.null-value]=\"!record.StopSequences\">\n <i class=\"fa-solid fa-stop-circle\"></i>\n {{ record.StopSequences || '—' }}\n </div>\n </div>\n\n <div class=\"detail-field\">\n <label>Assistant Prefill</label>\n <div class=\"detail-value\" [class.null-value]=\"!record.AssistantPrefill\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n {{ record.AssistantPrefill || '—' }}\n </div>\n </div>\n\n @if (record.RunAt) {\n <div class=\"detail-field\">\n <label>Started At</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-clock\"></i>\n {{ record.RunAt | date:'medium' }}\n </div>\n </div>\n }\n \n @if (record.CompletedAt) {\n <div class=\"detail-field\">\n <label>Completed At</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-check-circle\"></i>\n {{ record.CompletedAt | date:'medium' }}\n </div>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Model Specific Response Details Panel -->\n @if (record.ModelSpecificResponseDetails) {\n <mj-accordion-panel [Expanded]=\"modelSpecificExpanded\" (ExpandedChange)=\"onModelSpecificPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-microchip\"></i>\n Model Specific Response Details\n <span class=\"panel-badge\">JSON</span>\n </span>\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"copyToClipboard(formattedModelSpecificResponseDetails, 'Model Specific Response Details')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedModelSpecificResponseDetails, 'json', 'Model Specific Response Details')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedModelSpecificResponseDetails\"\n name=\"formattedModelSpecificResponseDetails\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Model Selection & Performance Panel (v2.78 fields) -->\n <mj-accordion-panel [Expanded]=\"false\" (ExpandedChange)=\"onModelSelectionPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-microchip\"></i>\n Model Selection & Performance\n @if (record.CacheHit) {\n <span class=\"panel-badge success\">Cached</span>\n }\n @if (record.WasSelectedResult) {\n <span class=\"panel-badge success\">Selected</span>\n }\n </span>\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"detail-fields-grid\">\n <!-- Model Selection Details -->\n <div class=\"detail-field\">\n <label>Status</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-info-circle\"></i>\n {{ record.Status || 'Unknown' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Selection Strategy</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-strategy\"></i>\n {{ record.SelectionStrategy || '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Model Power Rank</label>\n <div class=\"detail-value\" [class.null-value]=\"record.ModelPowerRank === null\">\n <i class=\"fa-solid fa-ranking-star\"></i>\n {{ record.ModelPowerRank !== null ? record.ModelPowerRank : '—' }}\n </div>\n </div>\n \n <!-- Cache Information -->\n <div class=\"detail-field\">\n <label>Cache Hit</label>\n <div class=\"detail-value\">\n <i [class]=\"record.CacheHit ? 'fa-solid fa-check-circle' : 'fa-solid fa-times-circle'\"></i>\n {{ record.CacheHit ? 'Yes' : 'No' }}\n </div>\n </div>\n \n @if (record.CacheKey) {\n <div class=\"detail-field full-width\">\n <label>Cache Key</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-key\"></i>\n <code>{{ record.CacheKey }}</code>\n </div>\n </div>\n }\n \n <!-- Judge Information -->\n @if (record.JudgeID) {\n <div class=\"detail-field\">\n <label>Judge Prompt</label>\n <div class=\"detail-value clickable\" (click)=\"navigateToEntity('MJ: AI Prompts', record.JudgeID)\" title=\"View Judge Prompt\">\n <i class=\"fa-solid fa-gavel\"></i>\n {{ record.Judge || 'Unknown' }}\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n @if (record.JudgeScore !== null) {\n <div class=\"detail-field\">\n <label>Judge Score</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-star\"></i>\n {{ record.JudgeScore }}\n </div>\n </div>\n }\n \n <div class=\"detail-field\">\n <label>Was Selected Result</label>\n <div class=\"detail-value\">\n <i [class]=\"record.WasSelectedResult ? 'fa-solid fa-trophy' : 'fa-solid fa-times'\"></i>\n {{ record.WasSelectedResult ? 'Yes' : 'No' }}\n </div>\n </div>\n \n <!-- Performance Metrics -->\n <div class=\"detail-field\">\n <label>Streaming Enabled</label>\n <div class=\"detail-value\">\n <i [class]=\"record.StreamingEnabled ? 'fa-solid fa-stream' : 'fa-solid fa-ban'\"></i>\n {{ record.StreamingEnabled ? 'Yes' : 'No' }}\n </div>\n </div>\n \n @if (record.FirstTokenTime !== null) {\n <div class=\"detail-field\">\n <label>First Token Time</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-bolt\"></i>\n {{ record.FirstTokenTime }} ms\n </div>\n </div>\n }\n \n @if (record.Cancelled) {\n <div class=\"detail-field\">\n <label>Cancelled</label>\n <div class=\"detail-value error\">\n <i class=\"fa-solid fa-ban\"></i>\n Yes\n </div>\n </div>\n \n @if (record.CancellationReason) {\n <div class=\"detail-field full-width\">\n <label>Cancellation Reason</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n {{ record.CancellationReason }}\n </div>\n </div>\n }\n }\n </div>\n \n <!-- Model Selection JSON -->\n @if (record.ModelSelection) {\n <div class=\"model-selection-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Model Selection Details</h4>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedModelSelection, 'json', 'Model Selection')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedModelSelection\"\n name=\"formattedModelSelection\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n \n <!-- Error Details JSON -->\n @if (record.ErrorDetails) {\n <div class=\"error-details-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Error Details</h4>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedErrorDetails, 'json', 'Error Details')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedErrorDetails\"\n name=\"formattedErrorDetails\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n\n </div>\n </form>\n</mj-record-form-container>\n}\n\n<!-- Full-screen overlay -->\n @if (FullScreenContent) {\n <div class=\"fullscreen-overlay\" (click)=\"closeFullScreen()\">\n <div class=\"fullscreen-container\" (click)=\"$event.stopPropagation()\">\n <div class=\"fullscreen-header\">\n <span class=\"fullscreen-title\">\n <i class=\"fa-solid fa-expand\"></i>\n {{ FullScreenTitle }}\n </span>\n <div class=\"fullscreen-actions\">\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"copyToClipboard(FullScreenContent, FullScreenTitle)\"\n title=\"Copy content\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"closeFullScreen()\"\n title=\"Close\">\n <i class=\"fa-solid fa-times\"></i> Close\n </button>\n </div>\n </div>\n <div class=\"fullscreen-body\">\n <mj-code-editor\n [value]=\"FullScreenContent\"\n [readonly]=\"true\"\n [language]=\"FullScreenLanguage\"\n style=\"height: 100%; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n }"]}
|
|
1
|
+
{"version":3,"file":"ai-prompt-run-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIPromptRuns/ai-prompt-run-form.component.ts","../../../../src/lib/custom/AIPromptRuns/ai-prompt-run-form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, AfterViewInit, ViewContainerRef, OnDestroy, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent, CUSTOM_LAYOUT_TOOLBAR_CONFIG } from '@memberjunction/ng-base-forms';\nimport { MJAIPromptRunEntityExtended, MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';\nimport { MJAIModelEntity } from \"@memberjunction/core-entities\";\nimport { Metadata, RunView, CompositeKey } from '@memberjunction/core';\nimport { MJAIPromptRunFormComponent } from '../../generated/Entities/MJAIPromptRun/mjaipromptrun.form.component';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { ChatMessage } from '@memberjunction/ai';\nimport { TestHarnessWindowManagerService } from '@memberjunction/ng-ai-test-harness';\nimport { ParseJSONOptions, ParseJSONRecursive } from '@memberjunction/global';\n\n@RegisterClass(BaseFormComponent, 'MJ: AI Prompt Runs')\n@Component({\n standalone: false,\n selector: 'mj-ai-prompt-run-form',\n templateUrl: './ai-prompt-run-form.component.html',\n styleUrls: ['./ai-prompt-run-form.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MJAIPromptRunFormComponentExtended extends MJAIPromptRunFormComponent implements AfterViewInit, OnDestroy {\n public record!: MJAIPromptRunEntityExtended;\n public readonly toolbarConfig = CUSTOM_LAYOUT_TOOLBAR_CONFIG;\n\n /** Custom-layout AI Prompt Run form looks best full-width on first open. */\n public override getDefaultFormWidthMode(): 'centered' | 'full-width' { return 'full-width'; }\n\n // Related entities\n public prompt: MJAIPromptEntityExtended | null = null;\n public model: MJAIModelEntity | null = null;\n public parentRun: MJAIPromptRunEntityExtended | null = null;\n public childRuns: MJAIPromptRunEntityExtended[] = [];\n \n // UI state\n public isLoadingRelatedData = false;\n public isParsingMessages = false; // Will be set to true in ngOnInit if there are messages\n public inputExpanded = true; // Start open as users want to see this\n public messagesExpanded = true;\n public dataExpanded = false; // Changed to false - often blank\n public rawExpanded = false;\n public resultExpanded = false; // Start closed for lazy loading\n public metricsExpanded = false;\n public hierarchyExpanded = false;\n public validationExpanded = false; // Start closed for lazy loading\n public modelSpecificExpanded = false; // Start closed for lazy loading\n \n // Track what has been loaded\n private hasLoadedInput = false;\n private hasLoadedResult = false;\n private hasLoadedValidation = false;\n private hasLoadedMetrics = false;\n private hasLoadedModelSpecific = false;\n \n // Formatted values\n public formattedMessages = '';\n public formattedResult = '';\n public formattedValidationSummary = '';\n public formattedValidationAttempts = '';\n public formattedData = '';\n public formattedModelSelection = '';\n public formattedErrorDetails = '';\n public formattedModelSpecificResponseDetails = '';\n \n // Parsed input data\n public chatMessages: ChatMessage[] = [];\n public inputData: any = null;\n \n // Validation data\n public validationAttempts: any[] = [];\n public validationSummary: any = null;\n\n // Full-screen overlay state\n public FullScreenContent: string | null = null;\n public FullScreenLanguage = 'json';\n public FullScreenTitle = '';\n\n // Field injections\n private testHarnessWindowService = inject(TestHarnessWindowManagerService);\n private viewContainerRef = inject(ViewContainerRef);\n \n async ngOnInit() {\n await super.ngOnInit();\n if (this.record?.ID) {\n // Set loading state immediately if input panel will be loaded and has messages\n if (this.inputExpanded && this.record.Messages && this.record.Messages.trim() !== '') {\n this.isParsingMessages = true;\n this.cdr.detectChanges(); // Force immediate update to show spinner\n }\n \n // Load related entities\n await this.loadRelatedData();\n \n // Format ALL JSON fields immediately on load - it's inexpensive\n console.log('🚀 Formatting all JSON fields on init...');\n this.formatAllJsonFields();\n \n // Mark all data as loaded since we're doing it all upfront\n this.hasLoadedInput = true;\n this.hasLoadedResult = true;\n this.hasLoadedValidation = true;\n this.hasLoadedMetrics = true;\n this.hasLoadedModelSpecific = true;\n \n this.isParsingMessages = false;\n this.cdr.detectChanges();\n }\n }\n \n ngAfterViewInit() {\n // Force change detection to ensure expansion panels render correctly\n setTimeout(() => {\n this.cdr.detectChanges();\n }, 0);\n }\n \n ngOnDestroy() {\n // Clean up any resources\n // Currently no subscriptions or timers to clean up\n // This is here for future use and to complete the lifecycle\n }\n \n onInputPanelToggle(event: any) {\n const expanded = event as boolean;\n this.inputExpanded = expanded;\n // Data is already formatted on init, no need to do anything\n }\n \n onResultPanelToggle(event: any) {\n const expanded = event as boolean;\n this.resultExpanded = expanded;\n // Data is already formatted on init, no need to do anything\n }\n \n onValidationPanelToggle(event: any) {\n const expanded = event as boolean;\n this.validationExpanded = expanded;\n // Data is already formatted on init, no need to do anything\n }\n \n onMetricsPanelToggle(event: any) {\n const expanded = event as boolean;\n this.metricsExpanded = expanded;\n // Data is already formatted on init, no need to do anything\n }\n \n onModelSpecificPanelToggle(event: any) {\n const expanded = event as boolean;\n this.modelSpecificExpanded = expanded;\n // Data is already formatted on init, no need to do anything\n }\n \n onModelSelectionPanelToggle(event: any) {\n const expanded = event as boolean;\n // Data is already formatted on init, no need to do anything\n }\n \n private async loadRelatedData() {\n this.isLoadingRelatedData = true;\n try {\n const md = this.ProviderToUse;\n \n // Load prompt\n if (this.record.PromptID) {\n this.prompt = await md.GetEntityObject<MJAIPromptEntityExtended>('MJ: AI Prompts');\n if (this.prompt) {\n await this.prompt.Load(this.record.PromptID);\n }\n }\n \n // Load model\n if (this.record.ModelID) {\n this.model = await md.GetEntityObject<MJAIModelEntity>('MJ: AI Models');\n if (this.model) {\n await this.model.Load(this.record.ModelID);\n }\n }\n \n // Load parent run if exists\n if (this.record.ParentID) {\n this.parentRun = await md.GetEntityObject<MJAIPromptRunEntityExtended>('MJ: AI Prompt Runs');\n if (this.parentRun) {\n await this.parentRun.Load(this.record.ParentID);\n }\n }\n \n // Load child runs\n await this.loadChildRuns();\n } catch (error) {\n console.error('Error loading related data:', error);\n } finally {\n this.isLoadingRelatedData = false;\n }\n }\n \n private async loadChildRuns() {\n if (!this.record.ID) return;\n \n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJAIPromptRunEntityExtended>({\n EntityName: 'MJ: AI Prompt Runs',\n ExtraFilter: `ParentID='${this.record.ID}'`,\n OrderBy: 'ExecutionOrder ASC, RunAt DESC',\n ResultType: 'entity_object'\n });\n \n if (result.Success) {\n this.childRuns = result.Results || [];\n }\n }\n \n private formatAllJsonFields() {\n if (!this.record) {\n console.warn('formatAllJsonFields called but record is not available');\n return;\n }\n \n console.log('📄 Formatting input data...');\n // Format input/messages data\n const messageData = this.record.ParseMessagesData();\n this.chatMessages = messageData.chatMessages;\n this.inputData = messageData.inputData;\n this.formattedMessages = messageData.formattedMessages;\n this.formattedData = messageData.formattedData;\n console.log('📄 Input data formatted. Chat messages:', this.chatMessages.length, 'Input data exists:', !!this.inputData);\n \n console.log('📊 Formatting result data...');\n // Format result data\n this.formattedResult = this.record.GetFormattedResult();\n console.log('📊 Result formatted:', !!this.formattedResult, 'Length:', this.formattedResult?.length);\n \n console.log('🔍 Formatting validation data...');\n // Format validation data\n this.loadValidationData();\n \n console.log('📈 Formatting metrics data...');\n // Format metrics data (ModelSelection, ErrorDetails)\n this.formatMetricsData();\n \n console.log('🔧 Formatting model specific data...');\n // Format model specific response details\n this.formatModelSpecificResponseDetails();\n \n // Format error details if available\n if (this.record.ErrorDetails && !this.formattedErrorDetails) {\n console.log('⚠️ Formatting error details...');\n this.formatErrorDetails();\n }\n \n console.log('✅ All JSON fields formatted');\n }\n \n \n private formatMetricsData() {\n // Format v2.78 JSON fields related to metrics\n const parseOptions: ParseJSONOptions = {\n extractInlineJson: true,\n maxDepth: 100,\n debug: false\n };\n \n // Format ModelSelection\n if (this.record.ModelSelection) {\n try {\n const modelSelection = JSON.parse(this.record.ModelSelection);\n const parsed = ParseJSONRecursive(modelSelection, parseOptions);\n this.formattedModelSelection = JSON.stringify(parsed, null, 2);\n } catch (error) {\n this.formattedModelSelection = this.record.ModelSelection;\n }\n }\n \n // Format ErrorDetails\n if (this.record.ErrorDetails) {\n try {\n const errorDetails = JSON.parse(this.record.ErrorDetails);\n const parsed = ParseJSONRecursive(errorDetails, parseOptions);\n this.formattedErrorDetails = JSON.stringify(parsed, null, 2);\n } catch (error) {\n this.formattedErrorDetails = this.record.ErrorDetails;\n }\n }\n \n // Note: ModelSpecificResponseDetails is now formatted in its own panel toggle method\n }\n \n private formatErrorDetails() {\n if (!this.record.ErrorDetails) {\n this.formattedErrorDetails = '';\n return;\n }\n \n const parseOptions: ParseJSONOptions = {\n extractInlineJson: true,\n maxDepth: 100,\n debug: false\n };\n \n try {\n const errorDetails = JSON.parse(this.record.ErrorDetails);\n const parsed = ParseJSONRecursive(errorDetails, parseOptions);\n this.formattedErrorDetails = JSON.stringify(parsed, null, 2);\n } catch (error) {\n this.formattedErrorDetails = this.record.ErrorDetails;\n }\n }\n \n private formatModelSpecificResponseDetails() {\n if (!this.record.ModelSpecificResponseDetails) {\n this.formattedModelSpecificResponseDetails = '';\n return;\n }\n \n const parseOptions: ParseJSONOptions = {\n extractInlineJson: true,\n maxDepth: 100,\n debug: false\n };\n \n try {\n const modelDetails = JSON.parse(this.record.ModelSpecificResponseDetails);\n const parsed = ParseJSONRecursive(modelDetails, parseOptions);\n this.formattedModelSpecificResponseDetails = JSON.stringify(parsed, null, 2);\n } catch (error) {\n this.formattedModelSpecificResponseDetails = this.record.ModelSpecificResponseDetails;\n }\n }\n \n getStatusColor(): string {\n if (!this.record) return '#6c757d';\n\n if (!this.record.CompletedAt) {\n return '#ffc107'; // Yellow (still running — CompletedAt is the authority)\n } else if (this.record.Success === true) {\n return '#28a745'; // Green\n } else if (this.record.Success === false) {\n return '#dc3545'; // Red\n } else {\n return '#17a2b8'; // Blue (completed but no success flag)\n }\n }\n\n getStatusIcon(): string {\n if (!this.record) return 'fa-circle';\n\n if (!this.record.CompletedAt) {\n return 'fa-spinner fa-spin';\n } else if (this.record.Success === true) {\n return 'fa-check-circle';\n } else if (this.record.Success === false) {\n return 'fa-times-circle';\n } else {\n return 'fa-info-circle';\n }\n }\n\n getStatusText(): string {\n if (!this.record) return 'Unknown';\n\n if (!this.record.CompletedAt) {\n return 'Running';\n } else if (this.record.Success === true) {\n return 'Success';\n } else if (this.record.Success === false) {\n return 'Failed';\n } else {\n return 'Completed';\n }\n }\n \n formatDuration(ms: number | null): string {\n if (!ms) return '-';\n \n if (ms < 1000) {\n return `${ms}ms`;\n } else if (ms < 60000) {\n return `${(ms / 1000).toFixed(1)}s`;\n } else {\n const minutes = Math.floor(ms / 60000);\n const seconds = ((ms % 60000) / 1000).toFixed(0);\n return `${minutes}m ${seconds}s`;\n }\n }\n \n formatCost(cost: number | null): string {\n if (!cost) return '-';\n return `$${cost.toFixed(4)}`;\n }\n \n formatTokens(tokens: number | null): string {\n if (!tokens) return '-';\n return tokens.toLocaleString();\n }\n \n getRunTypeIcon(runType: string | null): string {\n switch (runType) {\n case 'Single':\n return 'fa-play-circle';\n case 'ParallelParent':\n return 'fa-layer-group';\n case 'ParallelChild':\n return 'fa-clone';\n case 'ResultSelector':\n return 'fa-filter';\n default:\n return 'fa-circle';\n }\n }\n \n getRunTypeColor(runType: string | null): string {\n switch (runType) {\n case 'Single':\n return '#6f42c1';\n case 'ParallelParent':\n return '#007bff';\n case 'ParallelChild':\n return '#17a2b8';\n case 'ResultSelector':\n return '#28a745';\n default:\n return '#6c757d';\n }\n }\n \n navigateToEntity(entityName: string, recordId: string | null) {\n if (!recordId) return;\n \n SharedService.Instance.OpenEntityRecord(entityName, CompositeKey.FromID(recordId));\n }\n \n navigateToOriginalRun() {\n if (this.record?.RerunFromPromptRunID) {\n SharedService.Instance.OpenEntityRecord('MJ: AI Prompt Runs', CompositeKey.FromID(this.record.RerunFromPromptRunID));\n }\n }\n \n reRunPrompt() {\n console.log('🚀 Re-Run button clicked');\n console.log('📋 Current record:', this.record);\n console.log('🆔 Record ID:', this.record?.ID);\n console.log('🎯 Prompt ID:', this.record?.PromptID);\n \n if (!this.record?.ID || !this.record.PromptID) {\n console.error('❌ Cannot re-run: missing record ID or PromptID');\n return;\n }\n \n const params = {\n promptId: this.record.PromptID,\n promptRunId: this.record.ID,\n title: `Re-Run: ${this.prompt?.Name || 'Prompt'}`,\n width: '80vw',\n height: '80vh',\n viewContainerRef: this.viewContainerRef\n };\n \n console.log('📞 Calling openPromptTestHarness with params:', params);\n \n // Open AI Test Harness dialog with the prompt run ID\n this.testHarnessWindowService.openPromptTestHarness(params).subscribe({\n next: (result: any) => {\n if (result) {\n // Optionally refresh the current view or show a success message\n console.log('Test harness completed', result);\n }\n },\n error: (error: any) => {\n console.error('Error in test harness:', error);\n }\n });\n }\n \n copyToClipboard(text: string, fieldName: string) {\n navigator.clipboard.writeText(text).then(() => {\n // Just show a console log for now, as ShowSimpleNotification may not exist\n console.log(`${fieldName} copied to clipboard`);\n }).catch(err => {\n console.error('Failed to copy:', err);\n });\n }\n \n async refreshData() {\n console.log('🔄 refreshData called');\n if (this.record?.ID) {\n console.log('🔄 Reloading record and formatting all data...');\n \n await this.record.Load(this.record.ID);\n await this.loadRelatedData();\n console.log('🔄 Record reloaded. Result field exists:', !!this.record.Result);\n \n // Format all JSON fields again\n this.formatAllJsonFields();\n \n this.cdr.detectChanges();\n }\n }\n \n public openFullScreen(content: string, language: string, title: string): void {\n this.FullScreenContent = content;\n this.FullScreenLanguage = language;\n this.FullScreenTitle = title;\n this.cdr.detectChanges();\n }\n\n public closeFullScreen(): void {\n this.FullScreenContent = null;\n this.cdr.detectChanges();\n }\n\n private loadValidationData() {\n const parseOptions: ParseJSONOptions = {\n extractInlineJson: true,\n maxDepth: 100,\n debug: false\n };\n\n // Parse validation attempts if available\n if (this.record.ValidationAttempts) {\n try {\n this.validationAttempts = JSON.parse(this.record.ValidationAttempts);\n const recursivelyParsed = ParseJSONRecursive(this.validationAttempts, parseOptions);\n this.formattedValidationAttempts = JSON.stringify(recursivelyParsed, null, 2);\n } catch (error) {\n console.error('Error parsing ValidationAttempts:', error);\n this.validationAttempts = [];\n this.formattedValidationAttempts = '';\n }\n } else {\n this.validationAttempts = [];\n this.formattedValidationAttempts = '';\n }\n \n // Parse validation summary if available\n if (this.record.ValidationSummary) {\n try {\n this.validationSummary = JSON.parse(this.record.ValidationSummary);\n const recursivelyParsed = ParseJSONRecursive(this.validationSummary, parseOptions);\n this.formattedValidationSummary = JSON.stringify(recursivelyParsed, null, 2);\n } catch (error) {\n console.error('Error parsing ValidationSummary:', error);\n this.validationSummary = null;\n this.formattedValidationSummary = '';\n }\n } else {\n this.validationSummary = null;\n this.formattedValidationSummary = '';\n }\n \n // Don't auto-expand validation panel anymore - let user expand when needed\n }\n}","@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n [ToolbarConfig]=\"toolbarConfig\"\n [WidthMode]=\"'full-width'\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n\n <!-- Header Section -->\n <div class=\"prompt-run-header\">\n <div class=\"header-content\">\n <div class=\"run-overview\">\n <div class=\"run-icon-wrapper\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getStatusIcon()\" [style.color]=\"getStatusColor()\"></i>\n </div>\n <div class=\"run-info\">\n <h1 class=\"run-title\">\n Prompt Run\n @if (record.ID) {\n <span class=\"run-id\">#{{ record.ID.substring(0, 8) }}</span>\n }\n </h1>\n <div class=\"run-meta\">\n <!-- Status Card -->\n <div class=\"meta-card status-card\">\n <div class=\"c3-card-label\">Status</div>\n <div class=\"meta-card-body\">\n <span class=\"status-indicator\" [style.background-color]=\"getStatusColor()\"></span>\n <i [class]=\"'fa-solid ' + getStatusIcon()\" [style.color]=\"getStatusColor()\"></i>\n {{ getStatusText() }}\n </div>\n </div>\n\n <!-- Execution Card -->\n @if (record.RunType) {\n <div class=\"meta-card execution-card\">\n <div class=\"c3-card-label\">Execution</div>\n <div class=\"meta-card-body\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(record.RunType)\" [style.color]=\"getRunTypeColor(record.RunType)\"></i>\n {{ record.RunType }}\n </div>\n </div>\n }\n\n <!-- Prompt Card -->\n @if (prompt) {\n @if (record.ChildPromptID) {\n <!-- C3 Stacked Connector: child prompt prominent, parent nested -->\n <div class=\"prompt-card-c3\">\n <div class=\"c3-card-label\">Prompt</div>\n <div class=\"c3-child-section\" (click)=\"navigateToEntity('MJ: AI Prompts', record.ChildPromptID)\" title=\"View Agent Prompt\">\n <i class=\"fa-solid fa-comment prompt-icon\"></i>\n {{ record.ChildPrompt }}\n </div>\n <div class=\"c3-divider\">\n <span class=\"c3-line\"></span>\n <span class=\"c3-divider-label\">wrapped by</span>\n <span class=\"c3-line\"></span>\n </div>\n <div class=\"c3-parent-section\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\" title=\"View System Prompt\">\n <i class=\"fa-solid fa-cog\"></i>\n {{ prompt.Name }}\n <i class=\"fa-solid fa-arrow-up-right-from-square c3-link-icon\"></i>\n </div>\n </div>\n } @else {\n <!-- Single prompt (no child) — same card style -->\n <div class=\"meta-card prompt-single-card\">\n <div class=\"c3-card-label\">Prompt</div>\n <div class=\"meta-card-body clickable\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\" title=\"View Prompt\">\n <i class=\"fa-solid fa-comment-dots\" style=\"color: var(--mj-brand-primary);\"></i>\n {{ prompt.Name }}\n </div>\n </div>\n }\n }\n\n <!-- Model Card -->\n @if (model) {\n <div class=\"model-card-c3\">\n <div class=\"c3-card-label\">Model</div>\n <div class=\"c3-card-body\" (click)=\"navigateToEntity('MJ: AI Models', model.ID)\" title=\"View Model\">\n <span class=\"c3-model-name\"><i class=\"fa-solid fa-microchip\"></i> {{ model.Name }}</span>\n @if (record.Vendor) {\n <span class=\"c3-vendor-name\">{{ record.Vendor }}</span>\n }\n </div>\n </div>\n }\n @if (record.RerunFromPromptRunID) {\n <span class=\"original-run\" title=\"View Original Run\">\n <i class=\"fa-solid fa-level-up-alt\"></i>\n <a (click)=\"navigateToOriginalRun()\" class=\"original-link\">Original Run</a>\n </span>\n }\n </div>\n </div>\n </div>\n \n <!-- Action Buttons -->\n <div class=\"run-actions\">\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"reRunPrompt()\" title=\"Re-run this prompt\">\n <i class=\"fa-solid fa-play-circle\"></i>\n Re-Run\n </button>\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"refreshData()\" title=\"Refresh data\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n \n <!-- Key Metrics Bar -->\n @if (record.ConfigurationID) {\n <!-- Configuration Bar -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-cog\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Configuration</div>\n <div class=\"metric-value\">\n <a href=\"javascript:void(0)\" class=\"config-link\" (click)=\"navigateToEntity('MJ: AI Configurations', record.ConfigurationID)\">\n {{ record.Configuration || 'Unknown' }}\n </a>\n </div>\n </div>\n </div>\n @if (record.Temperature !== null && record.Temperature !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-temperature-high\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Temperature</div>\n <div class=\"metric-value\">{{ record.Temperature }}</div>\n </div>\n </div>\n }\n @if (record.TopP !== null && record.TopP !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-percentage\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Top P</div>\n <div class=\"metric-value\">{{ record.TopP }}</div>\n </div>\n </div>\n }\n @if (record.TopK !== null && record.TopK !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-list-ol\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Top K</div>\n <div class=\"metric-value\">{{ record.TopK }}</div>\n </div>\n </div>\n }\n @if (record.EffortLevel !== null && record.EffortLevel !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-tachometer-alt\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Effort Level</div>\n <div class=\"metric-value\">{{ record.EffortLevel }}</div>\n </div>\n </div>\n }\n @if (record.ResponseFormat) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-code\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Response Format</div>\n <div class=\"metric-value\">{{ record.ResponseFormat }}</div>\n </div>\n </div>\n }\n </div>\n \n <!-- Execution Metrics Bar (always show when configuration exists) -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Duration</div>\n <div class=\"metric-value\">{{ formatDuration(record.ExecutionTimeMS) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-coins\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Total Tokens</div>\n <div class=\"metric-value\">{{ formatTokens(record.TokensUsed) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Cost</div>\n <div class=\"metric-value\">{{ formatCost(record.TotalCost || record.Cost) }}</div>\n </div>\n </div>\n @if (record.RunAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-calendar\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Started</div>\n <div class=\"metric-value\">{{ record.RunAt | date:'short' }}</div>\n </div>\n </div>\n }\n </div>\n } @else {\n <!-- Execution Metrics Bar (original behavior when no configuration) -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Duration</div>\n <div class=\"metric-value\">{{ formatDuration(record.ExecutionTimeMS) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-coins\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Total Tokens</div>\n <div class=\"metric-value\">{{ formatTokens(record.TokensUsed) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Cost</div>\n <div class=\"metric-value\">{{ formatCost(record.TotalCost || record.Cost) }}</div>\n </div>\n </div>\n @if (record.RunAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-calendar\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Started</div>\n <div class=\"metric-value\">{{ record.RunAt | date:'short' }}</div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Main Content with Expansion Panels -->\n <div class=\"form-content\" style=\"display: flex; flex-direction: column; flex: 1; min-height: 0; overflow-y: auto;\">\n\n <!-- Input Panel with nested sub-panels -->\n <mj-accordion-panel [Expanded]=\"inputExpanded\" (ExpandedChange)=\"onInputPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n Input\n @if (record.Messages && record.Messages.trim() !== '') {\n <span class=\"panel-badge\">JSON</span>\n }\n </span>\n </ng-template>\n <div class=\"panel-content\">\n @if (record.Messages && record.Messages.trim() !== '') {\n <!-- Nested expansion panels for sub-sections -->\n <div class=\"nested-panels\">\n <!-- Messages Sub-Panel -->\n <mj-accordion-panel\n [Expanded]=\"messagesExpanded\"\n class=\"sub-expansion-panel\"\n style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-comments\"></i>\n Messages\n @if (chatMessages.length > 0) {\n <span class=\"panel-count\">({{ chatMessages.length }})</span>\n }\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n @if (isParsingMessages || isLoadingRelatedData) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <p>Loading messages...</p>\n </div>\n } @else if (chatMessages.length > 0) {\n <mj-chat-message-viewer \n [messages]=\"chatMessages\">\n </mj-chat-message-viewer>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comment-slash\"></i>\n <p>No chat messages found</p>\n </div>\n }\n </div>\n </mj-accordion-panel>\n\n <!-- Data Sub-Panel -->\n <mj-accordion-panel\n [Expanded]=\"dataExpanded\"\n class=\"sub-expansion-panel\"\n style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-database\"></i>\n Data\n @if (inputData) {\n <span class=\"panel-badge\">Object</span>\n }\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n @if (inputData && formattedData) {\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"copyToClipboard(formattedData, 'Data')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedData, 'json', 'Data')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedData\"\n name=\"formattedData\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-database\"></i>\n <p>No data object found</p>\n </div>\n }\n </div>\n </mj-accordion-panel>\n\n <!-- Raw Sub-Panel -->\n <mj-accordion-panel\n [Expanded]=\"rawExpanded\"\n class=\"sub-expansion-panel\"\n style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-code\"></i>\n Raw\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"copyToClipboard(formattedMessages, 'Messages')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedMessages, 'json', 'Raw Messages')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedMessages\"\n name=\"formattedMessages\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </mj-accordion-panel>\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comment-slash\"></i>\n <p>No input messages recorded</p>\n </div>\n }\n </div>\n </mj-accordion-panel>\n \n <!-- Result Panel -->\n <mj-accordion-panel [Expanded]=\"resultExpanded\" (ExpandedChange)=\"onResultPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-square-check\"></i>\n Result\n @if (record.Result && record.Result.trim() !== '') {\n <span class=\"panel-badge\">JSON</span>\n }\n @if (record.ErrorMessage) {\n <span class=\"panel-badge error\">Error</span>\n }\n </span>\n </ng-template>\n <div class=\"panel-content\">\n @if (record.ErrorMessage) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <div class=\"error-content\">\n <h4>Error Message</h4>\n <p>{{ record.ErrorMessage }}</p>\n </div>\n </div>\n }\n \n @if (record.Result && record.Result.trim() !== '') {\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"copyToClipboard(formattedResult, 'Result')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedResult, 'json', 'Result')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedResult\"\n name=\"formattedResult\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else if (!record.ErrorMessage) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No result data recorded</p>\n @if (record.CompletedAt && (record.Status === 'Failed' || record.Success === false)) {\n <div class=\"error-info\">\n @if (record.Status) {\n <p class=\"finish-reason\">\n <strong>Status:</strong> {{ record.Status }}\n </p>\n }\n @if (formattedErrorDetails) {\n <div class=\"error-details\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Error Details</h4>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedErrorDetails, 'json', 'Error Details')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor\n [ngModel]=\"formattedErrorDetails\"\n [disabled]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n @if (!formattedErrorDetails) {\n <p class=\"error-hint\">\n The prompt execution failed but no additional error information is available.\n </p>\n }\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n\n <!-- Token Usage & Metrics Panel -->\n <mj-accordion-panel [Expanded]=\"metricsExpanded\" (ExpandedChange)=\"onMetricsPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-chart-line\"></i>\n Token Usage & Metrics\n </span>\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"metrics-grid\">\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-message\"></i>\n <h4>Prompt Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensPrompt) }}</div>\n @if (record.TokensPromptRollup && record.TokensPromptRollup !== record.TokensPrompt) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensPromptRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-reply\"></i>\n <h4>Completion Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensCompletion) }}</div>\n @if (record.TokensCompletionRollup && record.TokensCompletionRollup !== record.TokensCompletion) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensCompletionRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-coins\"></i>\n <h4>Total Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensUsed) }}</div>\n @if (record.TokensUsedRollup && record.TokensUsedRollup !== record.TokensUsed) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensUsedRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <h4>Cost</h4>\n </div>\n <div class=\"metric-value large\">{{ formatCost(record.Cost) }}</div>\n @if (record.TotalCost && record.TotalCost !== record.Cost) {\n <div class=\"metric-rollup\">\n <span>Total: {{ formatCost(record.TotalCost) }}</span>\n </div>\n }\n @if (record.CostCurrency) {\n <div class=\"metric-currency\">{{ record.CostCurrency }}</div>\n }\n </div>\n \n <!-- Timing Metrics -->\n @if (record.QueueTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-hourglass-start\"></i>\n <h4>Queue Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.QueueTime) }}</div>\n </div>\n }\n \n @if (record.PromptTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-brain\"></i>\n <h4>Prompt Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.PromptTime) }}</div>\n </div>\n }\n \n @if (record.CompletionTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-flag-checkered\"></i>\n <h4>Completion Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.CompletionTime) }}</div>\n </div>\n }\n </div>\n \n <!-- Additional Metrics -->\n <div class=\"additional-metrics\">\n @if (record.ExecutionOrder !== null) {\n <div class=\"metric-row\">\n <span class=\"metric-label\">Execution Order:</span>\n <span class=\"metric-value\">{{ record.ExecutionOrder }}</span>\n </div>\n }\n @if (record.AgentID) {\n <div class=\"metric-row\">\n <span class=\"metric-label\">Agent:</span>\n <span class=\"metric-value link\" (click)=\"navigateToEntity('MJ: AI Agents', record.AgentID)\">\n {{ record.Agent }}\n <i class=\"fa-solid fa-external-link\"></i>\n </span>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Validation & Retry Panel -->\n @if (record && ((record.ValidationAttemptCount && record.ValidationAttemptCount > 0) || record.ValidationBehavior)) {\n <mj-accordion-panel [Expanded]=\"validationExpanded\" (ExpandedChange)=\"onValidationPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-shield-check\"></i>\n Validation & Retries\n @if (record && record.ValidationAttemptCount && record.ValidationAttemptCount > 1) {\n <span class=\"panel-count\">({{ record.ValidationAttemptCount }} attempts)</span>\n }\n @if (record.FinalValidationPassed) {\n <span class=\"panel-badge success\">Passed</span>\n } @else if (record.FinalValidationPassed === false) {\n <span class=\"panel-badge error\">Failed</span>\n }\n </span>\n </ng-template>\n <div class=\"panel-content\">\n <!-- Validation Summary -->\n <div class=\"validation-summary\">\n <div class=\"summary-header\">\n <h4>Validation Summary</h4>\n <div class=\"validation-status\" [class.success]=\"record.FinalValidationPassed === true\" [class.failed]=\"record.FinalValidationPassed === false\">\n <i [class]=\"record.FinalValidationPassed === true ? 'fa-solid fa-check-circle' : (record.FinalValidationPassed === false ? 'fa-solid fa-times-circle' : 'fa-solid fa-hourglass-half')\"></i>\n {{ record.FinalValidationPassed === true ? 'Validation Passed' : (record.FinalValidationPassed === false ? 'Validation Failed' : 'Validation Pending') }}\n </div>\n </div>\n \n <div class=\"validation-metrics\">\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Total Attempts</div>\n <div class=\"metric-value\">{{ record.ValidationAttemptCount || 0 }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Successful</div>\n <div class=\"metric-value\">{{ record.SuccessfulValidationCount || 0 }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Behavior</div>\n <div class=\"metric-value\">{{ record.ValidationBehavior || 'Not set' }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Retry Strategy</div>\n <div class=\"metric-value\">{{ record.RetryStrategy || 'Not set' }}</div>\n </div>\n </div>\n \n @if (record.FinalValidationError) {\n <div class=\"validation-error\">\n <h5><i class=\"fa-solid fa-exclamation-triangle\"></i> Final Validation Error</h5>\n <p>{{ record.FinalValidationError }}</p>\n @if (record && record.ValidationErrorCount && record.ValidationErrorCount > 0) {\n <span class=\"error-count\">{{ record.ValidationErrorCount }} validation errors</span>\n }\n </div>\n }\n \n @if (record.CommonValidationError && record.CommonValidationError !== record.FinalValidationError) {\n <div class=\"common-error\">\n <h5><i class=\"fa-solid fa-repeat\"></i> Most Common Error</h5>\n <p>{{ record.CommonValidationError }}</p>\n </div>\n }\n </div>\n \n <!-- Retry Timeline -->\n @if (record && record.ValidationAttemptCount && record.ValidationAttemptCount > 1) {\n <div class=\"retry-timeline\">\n <h4>Retry Timeline</h4>\n <div class=\"timeline-info\">\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-clock\"></i>\n <span>First Attempt: {{ record.FirstAttemptAt | date:'short' }}</span>\n </div>\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-flag-checkered\"></i>\n <span>Last Attempt: {{ record.LastAttemptAt | date:'short' }}</span>\n </div>\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span>Total Retry Duration: {{ formatDuration(record.TotalRetryDurationMS) }}</span>\n </div>\n </div>\n </div>\n }\n \n <!-- Validation Attempts Details -->\n @if (validationAttempts && validationAttempts.length > 0) {\n <div class=\"validation-attempts\">\n <h4>Validation Attempts</h4>\n <div class=\"attempts-list\">\n @for (attempt of validationAttempts; track attempt.attemptNumber) {\n <div class=\"attempt-item\" [class.success]=\"attempt.success\" [class.failed]=\"!attempt.success\">\n <div class=\"attempt-number\">\n <i [class]=\"attempt.success ? 'fa-solid fa-check' : 'fa-solid fa-times'\"></i>\n Attempt #{{ attempt.attemptNumber }}\n </div>\n <div class=\"attempt-details\">\n <span class=\"attempt-time\">{{ attempt.timestamp }}</span>\n @if (!attempt.success) {\n <span class=\"attempt-error\">{{ attempt.errorMessage || 'Unknown error' }}</span>\n @if (attempt.validationErrorCount > 0) {\n <span class=\"error-count\">({{ attempt.validationErrorCount }} errors)</span>\n }\n }\n @if (attempt.outputLength) {\n <span class=\"output-length\">Output: {{ attempt.outputLength }} chars</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n \n <!-- Validation Summary JSON -->\n @if (validationSummary) {\n <div class=\"validation-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Validation Summary Details</h4>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedValidationSummary, 'json', 'Validation Summary')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedValidationSummary\"\n name=\"formattedValidationSummary\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n \n <!-- Validation Attempts JSON -->\n @if (record.ValidationAttempts) {\n <div class=\"validation-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Validation Attempts (Raw JSON)</h4>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedValidationAttempts, 'json', 'Validation Attempts')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedValidationAttempts\"\n name=\"formattedValidationAttempts\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Hierarchy Panel (for parent/child relationships) -->\n @if (record.ParentID || childRuns.length > 0) {\n <mj-accordion-panel [Expanded]=\"hierarchyExpanded\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-sitemap\"></i>\n Run Hierarchy\n @if (childRuns.length > 0) {\n <span class=\"panel-count\">({{ childRuns.length }} children)</span>\n }\n </span>\n </ng-template>\n <div class=\"panel-content\">\n @if (parentRun) {\n <div class=\"parent-run-section\">\n <h4><i class=\"fa-solid fa-level-up-alt\"></i> Parent Run</h4>\n <div class=\"run-item parent\" (click)=\"navigateToEntity('MJ: AI Prompt Runs', parentRun.ID)\">\n <div class=\"run-item-icon\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(parentRun.RunType)\"></i>\n </div>\n <div class=\"run-item-content\">\n <div class=\"run-item-title\">\n Parent Run #{{ parentRun.ID.substring(0, 8) }}\n <span class=\"run-item-type\">{{ parentRun.RunType }}</span>\n </div>\n <div class=\"run-item-meta\">\n <span><i class=\"fa-solid fa-clock\"></i> {{ formatDuration(parentRun.ExecutionTimeMS) }}</span>\n <span><i class=\"fa-solid fa-coins\"></i> {{ formatTokens(parentRun.TokensUsed) }}</span>\n <span><i class=\"fa-solid fa-calendar\"></i> {{ parentRun.RunAt | date:'short' }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n @if (childRuns.length > 0) {\n <div class=\"child-runs-section\">\n <h4><i class=\"fa-solid fa-level-down-alt\"></i> Child Runs</h4>\n <div class=\"runs-list\">\n @for (childRun of childRuns; track childRun.ID) {\n <div class=\"run-item child\" (click)=\"navigateToEntity('MJ: AI Prompt Runs', childRun.ID)\">\n <div class=\"run-item-icon\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(childRun.RunType)\"></i>\n </div>\n <div class=\"run-item-content\">\n <div class=\"run-item-title\">\n Child Run #{{ childRun.ID.substring(0, 8) }}\n @if (childRun.ExecutionOrder !== null) {\n <span class=\"execution-order\">#{{ childRun.ExecutionOrder }}</span>\n }\n <span class=\"run-item-type\">{{ childRun.RunType }}</span>\n </div>\n <div class=\"run-item-meta\">\n <span class=\"status-indicator\" [style.color]=\"getStatusColor()\">\n <i [class]=\"'fa-solid ' + getStatusIcon()\"></i>\n {{ childRun.Success ? 'Success' : childRun.ErrorMessage ? 'Failed' : 'Running' }}\n </span>\n <span><i class=\"fa-solid fa-clock\"></i> {{ formatDuration(childRun.ExecutionTimeMS) }}</span>\n <span><i class=\"fa-solid fa-coins\"></i> {{ formatTokens(childRun.TokensUsed) }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Additional Details Panel -->\n <mj-accordion-panel [Expanded]=\"false\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Additional Details\n </span>\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"detail-fields-grid\">\n @if (record.AgentID) {\n <div class=\"detail-field\">\n <label>Agent</label>\n <div class=\"detail-value clickable\" (click)=\"navigateToEntity('MJ: AI Agents', record.AgentID)\" title=\"View Agent\">\n <i class=\"fa-solid fa-robot\"></i>\n {{ record.Agent || 'Unknown' }}\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n \n @if (record.RunType) {\n <div class=\"detail-field\">\n <label>Run Type</label>\n <div class=\"detail-value\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(record.RunType)\"></i>\n {{ record.RunType }}\n </div>\n </div>\n }\n \n @if (record.ResponseFormat) {\n <div class=\"detail-field\">\n <label>Response Format</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-code\"></i>\n {{ record.ResponseFormat }}\n </div>\n </div>\n }\n \n <div class=\"detail-field\">\n <label>Temperature</label>\n <div class=\"detail-value\" [class.null-value]=\"record.Temperature === null || record.Temperature === undefined\">\n <i class=\"fa-solid fa-temperature-high\"></i>\n {{ record.Temperature !== null && record.Temperature !== undefined ? record.Temperature : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Top P</label>\n <div class=\"detail-value\" [class.null-value]=\"record.TopP === null || record.TopP === undefined\">\n <i class=\"fa-solid fa-percentage\"></i>\n {{ record.TopP !== null && record.TopP !== undefined ? record.TopP : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Top K</label>\n <div class=\"detail-value\" [class.null-value]=\"record.TopK === null || record.TopK === undefined\">\n <i class=\"fa-solid fa-list-ol\"></i>\n {{ record.TopK !== null && record.TopK !== undefined ? record.TopK : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Min P</label>\n <div class=\"detail-value\" [class.null-value]=\"record.MinP === null || record.MinP === undefined\">\n <i class=\"fa-solid fa-filter\"></i>\n {{ record.MinP !== null && record.MinP !== undefined ? record.MinP : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Frequency Penalty</label>\n <div class=\"detail-value\" [class.null-value]=\"record.FrequencyPenalty === null || record.FrequencyPenalty === undefined\">\n <i class=\"fa-solid fa-repeat\"></i>\n {{ record.FrequencyPenalty !== null && record.FrequencyPenalty !== undefined ? record.FrequencyPenalty : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Presence Penalty</label>\n <div class=\"detail-value\" [class.null-value]=\"record.PresencePenalty === null || record.PresencePenalty === undefined\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n {{ record.PresencePenalty !== null && record.PresencePenalty !== undefined ? record.PresencePenalty : '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Seed</label>\n <div class=\"detail-value\" [class.null-value]=\"record.Seed === null || record.Seed === undefined\">\n <i class=\"fa-solid fa-seedling\"></i>\n {{ record.Seed !== null && record.Seed !== undefined ? record.Seed : '—' }}\n </div>\n </div>\n\n <div class=\"detail-field\">\n <label>Stop Sequences</label>\n <div class=\"detail-value\" [class.null-value]=\"!record.StopSequences\">\n <i class=\"fa-solid fa-stop-circle\"></i>\n {{ record.StopSequences || '—' }}\n </div>\n </div>\n\n <div class=\"detail-field\">\n <label>Assistant Prefill</label>\n <div class=\"detail-value\" [class.null-value]=\"!record.AssistantPrefill\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n {{ record.AssistantPrefill || '—' }}\n </div>\n </div>\n\n @if (record.RunAt) {\n <div class=\"detail-field\">\n <label>Started At</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-clock\"></i>\n {{ record.RunAt | date:'medium' }}\n </div>\n </div>\n }\n \n @if (record.CompletedAt) {\n <div class=\"detail-field\">\n <label>Completed At</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-check-circle\"></i>\n {{ record.CompletedAt | date:'medium' }}\n </div>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Model Specific Response Details Panel -->\n @if (record.ModelSpecificResponseDetails) {\n <mj-accordion-panel [Expanded]=\"modelSpecificExpanded\" (ExpandedChange)=\"onModelSpecificPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-microchip\"></i>\n Model Specific Response Details\n <span class=\"panel-badge\">JSON</span>\n </span>\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"copyToClipboard(formattedModelSpecificResponseDetails, 'Model Specific Response Details')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedModelSpecificResponseDetails, 'json', 'Model Specific Response Details')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedModelSpecificResponseDetails\"\n name=\"formattedModelSpecificResponseDetails\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Model Selection & Performance Panel (v2.78 fields) -->\n <mj-accordion-panel [Expanded]=\"false\" (ExpandedChange)=\"onModelSelectionPanelToggle($event)\" style=\"margin-bottom: 8px;\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-microchip\"></i>\n Model Selection & Performance\n @if (record.CacheHit) {\n <span class=\"panel-badge success\">Cached</span>\n }\n @if (record.WasSelectedResult) {\n <span class=\"panel-badge success\">Selected</span>\n }\n </span>\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"detail-fields-grid\">\n <!-- Model Selection Details -->\n <div class=\"detail-field\">\n <label>Status</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-info-circle\"></i>\n {{ record.Status || 'Unknown' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Selection Strategy</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-strategy\"></i>\n {{ record.SelectionStrategy || '—' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Model Power Rank</label>\n <div class=\"detail-value\" [class.null-value]=\"record.ModelPowerRank === null\">\n <i class=\"fa-solid fa-ranking-star\"></i>\n {{ record.ModelPowerRank !== null ? record.ModelPowerRank : '—' }}\n </div>\n </div>\n \n <!-- Cache Information -->\n <div class=\"detail-field\">\n <label>Cache Hit</label>\n <div class=\"detail-value\">\n <i [class]=\"record.CacheHit ? 'fa-solid fa-check-circle' : 'fa-solid fa-times-circle'\"></i>\n {{ record.CacheHit ? 'Yes' : 'No' }}\n </div>\n </div>\n \n @if (record.CacheKey) {\n <div class=\"detail-field full-width\">\n <label>Cache Key</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-key\"></i>\n <code>{{ record.CacheKey }}</code>\n </div>\n </div>\n }\n \n <!-- Judge Information -->\n @if (record.JudgeID) {\n <div class=\"detail-field\">\n <label>Judge Prompt</label>\n <div class=\"detail-value clickable\" (click)=\"navigateToEntity('MJ: AI Prompts', record.JudgeID)\" title=\"View Judge Prompt\">\n <i class=\"fa-solid fa-gavel\"></i>\n {{ record.Judge || 'Unknown' }}\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n @if (record.JudgeScore !== null) {\n <div class=\"detail-field\">\n <label>Judge Score</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-star\"></i>\n {{ record.JudgeScore }}\n </div>\n </div>\n }\n \n <div class=\"detail-field\">\n <label>Was Selected Result</label>\n <div class=\"detail-value\">\n <i [class]=\"record.WasSelectedResult ? 'fa-solid fa-trophy' : 'fa-solid fa-times'\"></i>\n {{ record.WasSelectedResult ? 'Yes' : 'No' }}\n </div>\n </div>\n \n <!-- Performance Metrics -->\n <div class=\"detail-field\">\n <label>Streaming Enabled</label>\n <div class=\"detail-value\">\n <i [class]=\"record.StreamingEnabled ? 'fa-solid fa-stream' : 'fa-solid fa-ban'\"></i>\n {{ record.StreamingEnabled ? 'Yes' : 'No' }}\n </div>\n </div>\n \n @if (record.FirstTokenTime !== null) {\n <div class=\"detail-field\">\n <label>First Token Time</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-bolt\"></i>\n {{ record.FirstTokenTime }} ms\n </div>\n </div>\n }\n \n @if (record.Cancelled) {\n <div class=\"detail-field\">\n <label>Cancelled</label>\n <div class=\"detail-value error\">\n <i class=\"fa-solid fa-ban\"></i>\n Yes\n </div>\n </div>\n \n @if (record.CancellationReason) {\n <div class=\"detail-field full-width\">\n <label>Cancellation Reason</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n {{ record.CancellationReason }}\n </div>\n </div>\n }\n }\n </div>\n \n <!-- Model Selection JSON -->\n @if (record.ModelSelection) {\n <div class=\"model-selection-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Model Selection Details</h4>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedModelSelection, 'json', 'Model Selection')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedModelSelection\"\n name=\"formattedModelSelection\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n \n <!-- Error Details JSON -->\n @if (record.ErrorDetails) {\n <div class=\"error-details-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Error Details</h4>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openFullScreen(formattedErrorDetails, 'json', 'Error Details')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedErrorDetails\"\n name=\"formattedErrorDetails\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n\n </div>\n </form>\n</mj-record-form-container>\n}\n\n<!-- Full-screen overlay -->\n @if (FullScreenContent) {\n <div class=\"fullscreen-overlay\" (click)=\"closeFullScreen()\">\n <div class=\"fullscreen-container\" (click)=\"$event.stopPropagation()\">\n <div class=\"fullscreen-header\">\n <span class=\"fullscreen-title\">\n <i class=\"fa-solid fa-expand\"></i>\n {{ FullScreenTitle }}\n </span>\n <div class=\"fullscreen-actions\">\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"copyToClipboard(FullScreenContent, FullScreenTitle)\"\n title=\"Copy content\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"closeFullScreen()\"\n title=\"Close\">\n <i class=\"fa-solid fa-times\"></i> Close\n </button>\n </div>\n </div>\n <div class=\"fullscreen-body\">\n <mj-code-editor\n [value]=\"FullScreenContent\"\n [readonly]=\"true\"\n [language]=\"FullScreenLanguage\"\n style=\"height: 100%; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n }"]}
|