@memberjunction/ng-core-entity-forms 5.22.0 → 5.24.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/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +55 -59
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js +0 -1
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +54 -71
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1053 -1096
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +2 -3
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +39 -82
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +28 -31
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +15 -14
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +4 -7
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +77 -124
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +2 -2
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +10 -11
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +18 -18
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +59 -80
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +23 -24
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +862 -906
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +4 -5
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +448 -499
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +2 -2
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +6 -11
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +16 -15
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +160 -166
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +93 -94
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/ContentSources/content-source-form.component.d.ts +22 -0
- package/dist/lib/custom/ContentSources/content-source-form.component.d.ts.map +1 -0
- package/dist/lib/custom/ContentSources/content-source-form.component.js +165 -0
- package/dist/lib/custom/ContentSources/content-source-form.component.js.map +1 -0
- package/dist/lib/custom/Entities/entity-form.component.js +2 -2
- package/dist/lib/custom/Lists/list-form.component.js +61 -63
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-category-dialog.component.js +33 -59
- package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +354 -360
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.js +62 -71
- package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.js +128 -124
- package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts +45 -22
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.js +380 -384
- package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +34 -36
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +8 -9
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js +4 -4
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +7 -7
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +6 -7
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +6 -7
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +381 -409
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
- 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 +74 -63
- 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-visualization.component.js +10 -10
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -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 +352 -332
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +25 -29
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +57 -82
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +59 -66
- package/dist/lib/custom/shared/entity-selector-dialog.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 +176 -156
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js +65 -0
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js +89 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +98 -44
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +35 -17
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js +79 -20
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js +73 -0
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js +11 -6
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js +49 -8
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js +57 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +71 -24
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js +43 -15
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js +43 -17
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js +21 -11
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +19 -13
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js +7 -9
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.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 +78 -60
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js +24 -6
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +21 -9
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js +23 -5
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js +77 -0
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js +22 -4
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +139 -19
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js +67 -0
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js +65 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js +10 -8
- package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.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 +226 -154
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +41 -5
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +286 -279
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +192 -214
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +14 -15
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/package.json +34 -41
|
@@ -10,16 +10,15 @@ import { BaseFormComponent } from '@memberjunction/ng-base-forms';
|
|
|
10
10
|
import { Metadata, RunView, CompositeKey } from '@memberjunction/core';
|
|
11
11
|
import { MJAIPromptRunFormComponent } from '../../generated/Entities/MJAIPromptRun/mjaipromptrun.form.component';
|
|
12
12
|
import { SharedService } from '@memberjunction/ng-shared';
|
|
13
|
-
import {
|
|
13
|
+
import { TestHarnessWindowManagerService } from '@memberjunction/ng-ai-test-harness';
|
|
14
14
|
import { ParseJSONRecursive } from '@memberjunction/global';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
16
|
import * as i1 from "@angular/forms";
|
|
17
|
-
import * as i2 from "@
|
|
18
|
-
import * as i3 from "@
|
|
19
|
-
import * as i4 from "@memberjunction/ng-
|
|
20
|
-
import * as i5 from "
|
|
21
|
-
import * as i6 from "
|
|
22
|
-
import * as i7 from "@angular/common";
|
|
17
|
+
import * as i2 from "@memberjunction/ng-ui-components";
|
|
18
|
+
import * as i3 from "@memberjunction/ng-base-forms";
|
|
19
|
+
import * as i4 from "@memberjunction/ng-code-editor";
|
|
20
|
+
import * as i5 from "./chat-message-viewer.component";
|
|
21
|
+
import * as i6 from "@angular/common";
|
|
23
22
|
const _forTrack0 = ($index, $item) => $item.attemptNumber;
|
|
24
23
|
const _forTrack1 = ($index, $item) => $item.ID;
|
|
25
24
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -49,26 +48,26 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_20_Templat
|
|
|
49
48
|
} }
|
|
50
49
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
51
50
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
52
|
-
i0.ɵɵelementStart(0, "div",
|
|
51
|
+
i0.ɵɵelementStart(0, "div", 65)(1, "div", 14);
|
|
53
52
|
i0.ɵɵtext(2, "Prompt");
|
|
54
53
|
i0.ɵɵelementEnd();
|
|
55
|
-
i0.ɵɵelementStart(3, "div",
|
|
54
|
+
i0.ɵɵelementStart(3, "div", 67);
|
|
56
55
|
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_0_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", ctx_r1.record.ChildPromptID)); });
|
|
57
|
-
i0.ɵɵelement(4, "i",
|
|
56
|
+
i0.ɵɵelement(4, "i", 68);
|
|
58
57
|
i0.ɵɵtext(5);
|
|
59
58
|
i0.ɵɵelementEnd();
|
|
60
|
-
i0.ɵɵelementStart(6, "div",
|
|
61
|
-
i0.ɵɵelement(7, "span",
|
|
62
|
-
i0.ɵɵelementStart(8, "span",
|
|
59
|
+
i0.ɵɵelementStart(6, "div", 69);
|
|
60
|
+
i0.ɵɵelement(7, "span", 70);
|
|
61
|
+
i0.ɵɵelementStart(8, "span", 71);
|
|
63
62
|
i0.ɵɵtext(9, "wrapped by");
|
|
64
63
|
i0.ɵɵelementEnd();
|
|
65
|
-
i0.ɵɵelement(10, "span",
|
|
64
|
+
i0.ɵɵelement(10, "span", 70);
|
|
66
65
|
i0.ɵɵelementEnd();
|
|
67
|
-
i0.ɵɵelementStart(11, "div",
|
|
66
|
+
i0.ɵɵelementStart(11, "div", 72);
|
|
68
67
|
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_0_Template_div_click_11_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", ctx_r1.prompt.ID)); });
|
|
69
|
-
i0.ɵɵelement(12, "i",
|
|
68
|
+
i0.ɵɵelement(12, "i", 73);
|
|
70
69
|
i0.ɵɵtext(13);
|
|
71
|
-
i0.ɵɵelement(14, "i",
|
|
70
|
+
i0.ɵɵelement(14, "i", 74);
|
|
72
71
|
i0.ɵɵelementEnd()();
|
|
73
72
|
} if (rf & 2) {
|
|
74
73
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -79,12 +78,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditi
|
|
|
79
78
|
} }
|
|
80
79
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
81
80
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
82
|
-
i0.ɵɵelementStart(0, "div",
|
|
81
|
+
i0.ɵɵelementStart(0, "div", 66)(1, "div", 14);
|
|
83
82
|
i0.ɵɵtext(2, "Prompt");
|
|
84
83
|
i0.ɵɵelementEnd();
|
|
85
|
-
i0.ɵɵelementStart(3, "div",
|
|
84
|
+
i0.ɵɵelementStart(3, "div", 75);
|
|
86
85
|
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_1_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", ctx_r1.prompt.ID)); });
|
|
87
|
-
i0.ɵɵelement(4, "i",
|
|
86
|
+
i0.ɵɵelement(4, "i", 76);
|
|
88
87
|
i0.ɵɵtext(5);
|
|
89
88
|
i0.ɵɵelementEnd()();
|
|
90
89
|
} if (rf & 2) {
|
|
@@ -93,13 +92,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditi
|
|
|
93
92
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.prompt.Name, " ");
|
|
94
93
|
} }
|
|
95
94
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
96
|
-
i0.ɵɵconditionalCreate(0, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_0_Template, 15, 2, "div",
|
|
95
|
+
i0.ɵɵconditionalCreate(0, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_0_Template, 15, 2, "div", 65)(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_1_Template, 6, 1, "div", 66);
|
|
97
96
|
} if (rf & 2) {
|
|
98
97
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
99
98
|
i0.ɵɵconditional(ctx_r1.record.ChildPromptID ? 0 : 1);
|
|
100
99
|
} }
|
|
101
100
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
102
|
-
i0.ɵɵelementStart(0, "span",
|
|
101
|
+
i0.ɵɵelementStart(0, "span", 80);
|
|
103
102
|
i0.ɵɵtext(1);
|
|
104
103
|
i0.ɵɵelementEnd();
|
|
105
104
|
} if (rf & 2) {
|
|
@@ -112,13 +111,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Templat
|
|
|
112
111
|
i0.ɵɵelementStart(0, "div", 18)(1, "div", 14);
|
|
113
112
|
i0.ɵɵtext(2, "Model");
|
|
114
113
|
i0.ɵɵelementEnd();
|
|
115
|
-
i0.ɵɵelementStart(3, "div",
|
|
114
|
+
i0.ɵɵelementStart(3, "div", 77);
|
|
116
115
|
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Models", ctx_r1.model.ID)); });
|
|
117
|
-
i0.ɵɵelementStart(4, "span",
|
|
118
|
-
i0.ɵɵelement(5, "i",
|
|
116
|
+
i0.ɵɵelementStart(4, "span", 78);
|
|
117
|
+
i0.ɵɵelement(5, "i", 79);
|
|
119
118
|
i0.ɵɵtext(6);
|
|
120
119
|
i0.ɵɵelementEnd();
|
|
121
|
-
i0.ɵɵconditionalCreate(7, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Conditional_7_Template, 2, 1, "span",
|
|
120
|
+
i0.ɵɵconditionalCreate(7, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Conditional_7_Template, 2, 1, "span", 80);
|
|
122
121
|
i0.ɵɵelementEnd()();
|
|
123
122
|
} if (rf & 2) {
|
|
124
123
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -130,19 +129,19 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Templat
|
|
|
130
129
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
131
130
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
132
131
|
i0.ɵɵelementStart(0, "span", 19);
|
|
133
|
-
i0.ɵɵelement(1, "i",
|
|
134
|
-
i0.ɵɵelementStart(2, "a",
|
|
132
|
+
i0.ɵɵelement(1, "i", 81);
|
|
133
|
+
i0.ɵɵelementStart(2, "a", 82);
|
|
135
134
|
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_23_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToOriginalRun()); });
|
|
136
135
|
i0.ɵɵtext(3, "Original Run");
|
|
137
136
|
i0.ɵɵelementEnd()();
|
|
138
137
|
} }
|
|
139
138
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
140
|
-
i0.ɵɵelementStart(0, "div",
|
|
141
|
-
i0.ɵɵelement(1, "i",
|
|
142
|
-
i0.ɵɵelementStart(2, "div",
|
|
139
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
140
|
+
i0.ɵɵelement(1, "i", 50);
|
|
141
|
+
i0.ɵɵelementStart(2, "div", 84)(3, "div", 85);
|
|
143
142
|
i0.ɵɵtext(4, "Temperature");
|
|
144
143
|
i0.ɵɵelementEnd();
|
|
145
|
-
i0.ɵɵelementStart(5, "div",
|
|
144
|
+
i0.ɵɵelementStart(5, "div", 86);
|
|
146
145
|
i0.ɵɵtext(6);
|
|
147
146
|
i0.ɵɵelementEnd()()();
|
|
148
147
|
} if (rf & 2) {
|
|
@@ -151,12 +150,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditi
|
|
|
151
150
|
i0.ɵɵtextInterpolate(ctx_r1.record.Temperature);
|
|
152
151
|
} }
|
|
153
152
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
154
|
-
i0.ɵɵelementStart(0, "div",
|
|
155
|
-
i0.ɵɵelement(1, "i",
|
|
156
|
-
i0.ɵɵelementStart(2, "div",
|
|
153
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
154
|
+
i0.ɵɵelement(1, "i", 51);
|
|
155
|
+
i0.ɵɵelementStart(2, "div", 84)(3, "div", 85);
|
|
157
156
|
i0.ɵɵtext(4, "Top P");
|
|
158
157
|
i0.ɵɵelementEnd();
|
|
159
|
-
i0.ɵɵelementStart(5, "div",
|
|
158
|
+
i0.ɵɵelementStart(5, "div", 86);
|
|
160
159
|
i0.ɵɵtext(6);
|
|
161
160
|
i0.ɵɵelementEnd()()();
|
|
162
161
|
} if (rf & 2) {
|
|
@@ -165,12 +164,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditi
|
|
|
165
164
|
i0.ɵɵtextInterpolate(ctx_r1.record.TopP);
|
|
166
165
|
} }
|
|
167
166
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
168
|
-
i0.ɵɵelementStart(0, "div",
|
|
169
|
-
i0.ɵɵelement(1, "i",
|
|
170
|
-
i0.ɵɵelementStart(2, "div",
|
|
167
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
168
|
+
i0.ɵɵelement(1, "i", 52);
|
|
169
|
+
i0.ɵɵelementStart(2, "div", 84)(3, "div", 85);
|
|
171
170
|
i0.ɵɵtext(4, "Top K");
|
|
172
171
|
i0.ɵɵelementEnd();
|
|
173
|
-
i0.ɵɵelementStart(5, "div",
|
|
172
|
+
i0.ɵɵelementStart(5, "div", 86);
|
|
174
173
|
i0.ɵɵtext(6);
|
|
175
174
|
i0.ɵɵelementEnd()()();
|
|
176
175
|
} if (rf & 2) {
|
|
@@ -179,12 +178,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditi
|
|
|
179
178
|
i0.ɵɵtextInterpolate(ctx_r1.record.TopK);
|
|
180
179
|
} }
|
|
181
180
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
182
|
-
i0.ɵɵelementStart(0, "div",
|
|
183
|
-
i0.ɵɵelement(1, "i",
|
|
184
|
-
i0.ɵɵelementStart(2, "div",
|
|
181
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
182
|
+
i0.ɵɵelement(1, "i", 89);
|
|
183
|
+
i0.ɵɵelementStart(2, "div", 84)(3, "div", 85);
|
|
185
184
|
i0.ɵɵtext(4, "Effort Level");
|
|
186
185
|
i0.ɵɵelementEnd();
|
|
187
|
-
i0.ɵɵelementStart(5, "div",
|
|
186
|
+
i0.ɵɵelementStart(5, "div", 86);
|
|
188
187
|
i0.ɵɵtext(6);
|
|
189
188
|
i0.ɵɵelementEnd()()();
|
|
190
189
|
} if (rf & 2) {
|
|
@@ -193,12 +192,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditi
|
|
|
193
192
|
i0.ɵɵtextInterpolate(ctx_r1.record.EffortLevel);
|
|
194
193
|
} }
|
|
195
194
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
196
|
-
i0.ɵɵelementStart(0, "div",
|
|
197
|
-
i0.ɵɵelement(1, "i",
|
|
198
|
-
i0.ɵɵelementStart(2, "div",
|
|
195
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
196
|
+
i0.ɵɵelement(1, "i", 90);
|
|
197
|
+
i0.ɵɵelementStart(2, "div", 84)(3, "div", 85);
|
|
199
198
|
i0.ɵɵtext(4, "Response Format");
|
|
200
199
|
i0.ɵɵelementEnd();
|
|
201
|
-
i0.ɵɵelementStart(5, "div",
|
|
200
|
+
i0.ɵɵelementStart(5, "div", 86);
|
|
202
201
|
i0.ɵɵtext(6);
|
|
203
202
|
i0.ɵɵelementEnd()()();
|
|
204
203
|
} if (rf & 2) {
|
|
@@ -207,12 +206,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditi
|
|
|
207
206
|
i0.ɵɵtextInterpolate(ctx_r1.record.ResponseFormat);
|
|
208
207
|
} }
|
|
209
208
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_36_Template(rf, ctx) { if (rf & 1) {
|
|
210
|
-
i0.ɵɵelementStart(0, "div",
|
|
211
|
-
i0.ɵɵelement(1, "i",
|
|
212
|
-
i0.ɵɵelementStart(2, "div",
|
|
209
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
210
|
+
i0.ɵɵelement(1, "i", 91);
|
|
211
|
+
i0.ɵɵelementStart(2, "div", 84)(3, "div", 85);
|
|
213
212
|
i0.ɵɵtext(4, "Started");
|
|
214
213
|
i0.ɵɵelementEnd();
|
|
215
|
-
i0.ɵɵelementStart(5, "div",
|
|
214
|
+
i0.ɵɵelementStart(5, "div", 86);
|
|
216
215
|
i0.ɵɵtext(6);
|
|
217
216
|
i0.ɵɵpipe(7, "date");
|
|
218
217
|
i0.ɵɵelementEnd()()();
|
|
@@ -223,46 +222,46 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditi
|
|
|
223
222
|
} }
|
|
224
223
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Template(rf, ctx) { if (rf & 1) {
|
|
225
224
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
226
|
-
i0.ɵɵelementStart(0, "div", 25)(1, "div",
|
|
227
|
-
i0.ɵɵelement(2, "i",
|
|
228
|
-
i0.ɵɵelementStart(3, "div",
|
|
225
|
+
i0.ɵɵelementStart(0, "div", 25)(1, "div", 83);
|
|
226
|
+
i0.ɵɵelement(2, "i", 73);
|
|
227
|
+
i0.ɵɵelementStart(3, "div", 84)(4, "div", 85);
|
|
229
228
|
i0.ɵɵtext(5, "Configuration");
|
|
230
229
|
i0.ɵɵelementEnd();
|
|
231
|
-
i0.ɵɵelementStart(6, "div",
|
|
230
|
+
i0.ɵɵelementStart(6, "div", 86)(7, "a", 87);
|
|
232
231
|
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Configurations", ctx_r1.record.ConfigurationID)); });
|
|
233
232
|
i0.ɵɵtext(8);
|
|
234
233
|
i0.ɵɵelementEnd()()()();
|
|
235
|
-
i0.ɵɵconditionalCreate(9, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_9_Template, 7, 1, "div",
|
|
236
|
-
i0.ɵɵconditionalCreate(10, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_10_Template, 7, 1, "div",
|
|
237
|
-
i0.ɵɵconditionalCreate(11, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_11_Template, 7, 1, "div",
|
|
238
|
-
i0.ɵɵconditionalCreate(12, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_12_Template, 7, 1, "div",
|
|
239
|
-
i0.ɵɵconditionalCreate(13, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_13_Template, 7, 1, "div",
|
|
240
|
-
i0.ɵɵelementEnd();
|
|
241
|
-
i0.ɵɵelementStart(14, "div", 25)(15, "div",
|
|
242
|
-
i0.ɵɵelement(16, "i",
|
|
243
|
-
i0.ɵɵelementStart(17, "div",
|
|
234
|
+
i0.ɵɵconditionalCreate(9, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_9_Template, 7, 1, "div", 83);
|
|
235
|
+
i0.ɵɵconditionalCreate(10, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_10_Template, 7, 1, "div", 83);
|
|
236
|
+
i0.ɵɵconditionalCreate(11, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_11_Template, 7, 1, "div", 83);
|
|
237
|
+
i0.ɵɵconditionalCreate(12, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_12_Template, 7, 1, "div", 83);
|
|
238
|
+
i0.ɵɵconditionalCreate(13, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_13_Template, 7, 1, "div", 83);
|
|
239
|
+
i0.ɵɵelementEnd();
|
|
240
|
+
i0.ɵɵelementStart(14, "div", 25)(15, "div", 83);
|
|
241
|
+
i0.ɵɵelement(16, "i", 88);
|
|
242
|
+
i0.ɵɵelementStart(17, "div", 84)(18, "div", 85);
|
|
244
243
|
i0.ɵɵtext(19, "Duration");
|
|
245
244
|
i0.ɵɵelementEnd();
|
|
246
|
-
i0.ɵɵelementStart(20, "div",
|
|
245
|
+
i0.ɵɵelementStart(20, "div", 86);
|
|
247
246
|
i0.ɵɵtext(21);
|
|
248
247
|
i0.ɵɵelementEnd()()();
|
|
249
|
-
i0.ɵɵelementStart(22, "div",
|
|
250
|
-
i0.ɵɵelement(23, "i",
|
|
251
|
-
i0.ɵɵelementStart(24, "div",
|
|
248
|
+
i0.ɵɵelementStart(22, "div", 83);
|
|
249
|
+
i0.ɵɵelement(23, "i", 41);
|
|
250
|
+
i0.ɵɵelementStart(24, "div", 84)(25, "div", 85);
|
|
252
251
|
i0.ɵɵtext(26, "Total Tokens");
|
|
253
252
|
i0.ɵɵelementEnd();
|
|
254
|
-
i0.ɵɵelementStart(27, "div",
|
|
253
|
+
i0.ɵɵelementStart(27, "div", 86);
|
|
255
254
|
i0.ɵɵtext(28);
|
|
256
255
|
i0.ɵɵelementEnd()()();
|
|
257
|
-
i0.ɵɵelementStart(29, "div",
|
|
258
|
-
i0.ɵɵelement(30, "i",
|
|
259
|
-
i0.ɵɵelementStart(31, "div",
|
|
256
|
+
i0.ɵɵelementStart(29, "div", 83);
|
|
257
|
+
i0.ɵɵelement(30, "i", 42);
|
|
258
|
+
i0.ɵɵelementStart(31, "div", 84)(32, "div", 85);
|
|
260
259
|
i0.ɵɵtext(33, "Cost");
|
|
261
260
|
i0.ɵɵelementEnd();
|
|
262
|
-
i0.ɵɵelementStart(34, "div",
|
|
261
|
+
i0.ɵɵelementStart(34, "div", 86);
|
|
263
262
|
i0.ɵɵtext(35);
|
|
264
263
|
i0.ɵɵelementEnd()()();
|
|
265
|
-
i0.ɵɵconditionalCreate(36, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_36_Template, 8, 4, "div",
|
|
264
|
+
i0.ɵɵconditionalCreate(36, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_36_Template, 8, 4, "div", 83);
|
|
266
265
|
i0.ɵɵelementEnd();
|
|
267
266
|
} if (rf & 2) {
|
|
268
267
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -288,12 +287,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Templat
|
|
|
288
287
|
i0.ɵɵconditional(ctx_r1.record.RunAt ? 36 : -1);
|
|
289
288
|
} }
|
|
290
289
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
291
|
-
i0.ɵɵelementStart(0, "div",
|
|
292
|
-
i0.ɵɵelement(1, "i",
|
|
293
|
-
i0.ɵɵelementStart(2, "div",
|
|
290
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
291
|
+
i0.ɵɵelement(1, "i", 91);
|
|
292
|
+
i0.ɵɵelementStart(2, "div", 84)(3, "div", 85);
|
|
294
293
|
i0.ɵɵtext(4, "Started");
|
|
295
294
|
i0.ɵɵelementEnd();
|
|
296
|
-
i0.ɵɵelementStart(5, "div",
|
|
295
|
+
i0.ɵɵelementStart(5, "div", 86);
|
|
297
296
|
i0.ɵɵtext(6);
|
|
298
297
|
i0.ɵɵpipe(7, "date");
|
|
299
298
|
i0.ɵɵelementEnd()()();
|
|
@@ -303,31 +302,31 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Conditi
|
|
|
303
302
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 1, ctx_r1.record.RunAt, "short"));
|
|
304
303
|
} }
|
|
305
304
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
306
|
-
i0.ɵɵelementStart(0, "div", 25)(1, "div",
|
|
307
|
-
i0.ɵɵelement(2, "i",
|
|
308
|
-
i0.ɵɵelementStart(3, "div",
|
|
305
|
+
i0.ɵɵelementStart(0, "div", 25)(1, "div", 83);
|
|
306
|
+
i0.ɵɵelement(2, "i", 88);
|
|
307
|
+
i0.ɵɵelementStart(3, "div", 84)(4, "div", 85);
|
|
309
308
|
i0.ɵɵtext(5, "Duration");
|
|
310
309
|
i0.ɵɵelementEnd();
|
|
311
|
-
i0.ɵɵelementStart(6, "div",
|
|
310
|
+
i0.ɵɵelementStart(6, "div", 86);
|
|
312
311
|
i0.ɵɵtext(7);
|
|
313
312
|
i0.ɵɵelementEnd()()();
|
|
314
|
-
i0.ɵɵelementStart(8, "div",
|
|
315
|
-
i0.ɵɵelement(9, "i",
|
|
316
|
-
i0.ɵɵelementStart(10, "div",
|
|
313
|
+
i0.ɵɵelementStart(8, "div", 83);
|
|
314
|
+
i0.ɵɵelement(9, "i", 41);
|
|
315
|
+
i0.ɵɵelementStart(10, "div", 84)(11, "div", 85);
|
|
317
316
|
i0.ɵɵtext(12, "Total Tokens");
|
|
318
317
|
i0.ɵɵelementEnd();
|
|
319
|
-
i0.ɵɵelementStart(13, "div",
|
|
318
|
+
i0.ɵɵelementStart(13, "div", 86);
|
|
320
319
|
i0.ɵɵtext(14);
|
|
321
320
|
i0.ɵɵelementEnd()()();
|
|
322
|
-
i0.ɵɵelementStart(15, "div",
|
|
323
|
-
i0.ɵɵelement(16, "i",
|
|
324
|
-
i0.ɵɵelementStart(17, "div",
|
|
321
|
+
i0.ɵɵelementStart(15, "div", 83);
|
|
322
|
+
i0.ɵɵelement(16, "i", 42);
|
|
323
|
+
i0.ɵɵelementStart(17, "div", 84)(18, "div", 85);
|
|
325
324
|
i0.ɵɵtext(19, "Cost");
|
|
326
325
|
i0.ɵɵelementEnd();
|
|
327
|
-
i0.ɵɵelementStart(20, "div",
|
|
326
|
+
i0.ɵɵelementStart(20, "div", 86);
|
|
328
327
|
i0.ɵɵtext(21);
|
|
329
328
|
i0.ɵɵelementEnd()()();
|
|
330
|
-
i0.ɵɵconditionalCreate(22, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Conditional_22_Template, 8, 4, "div",
|
|
329
|
+
i0.ɵɵconditionalCreate(22, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Conditional_22_Template, 8, 4, "div", 83);
|
|
331
330
|
i0.ɵɵelementEnd();
|
|
332
331
|
} if (rf & 2) {
|
|
333
332
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -340,185 +339,176 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Templat
|
|
|
340
339
|
i0.ɵɵadvance();
|
|
341
340
|
i0.ɵɵconditional(ctx_r1.record.RunAt ? 22 : -1);
|
|
342
341
|
} }
|
|
343
|
-
function
|
|
344
|
-
i0.ɵɵelementStart(0, "span",
|
|
342
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_34_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
343
|
+
i0.ɵɵelementStart(0, "span", 94);
|
|
345
344
|
i0.ɵɵtext(1, "JSON");
|
|
346
345
|
i0.ɵɵelementEnd();
|
|
347
346
|
} }
|
|
348
|
-
function
|
|
349
|
-
i0.ɵɵelementStart(0, "span",
|
|
350
|
-
i0.ɵɵelement(1, "i",
|
|
347
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_34_Template(rf, ctx) { if (rf & 1) {
|
|
348
|
+
i0.ɵɵelementStart(0, "span", 92);
|
|
349
|
+
i0.ɵɵelement(1, "i", 93);
|
|
351
350
|
i0.ɵɵtext(2, " Input ");
|
|
352
|
-
i0.ɵɵconditionalCreate(3,
|
|
351
|
+
i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_34_Conditional_3_Template, 2, 0, "span", 94);
|
|
353
352
|
i0.ɵɵelementEnd();
|
|
354
353
|
} if (rf & 2) {
|
|
355
354
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
356
355
|
i0.ɵɵadvance(3);
|
|
357
356
|
i0.ɵɵconditional(ctx_r1.record.Messages && ctx_r1.record.Messages.trim() !== "" ? 3 : -1);
|
|
358
357
|
} }
|
|
359
|
-
function
|
|
360
|
-
i0.ɵɵelementStart(0, "span",
|
|
358
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_ng_template_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
359
|
+
i0.ɵɵelementStart(0, "span", 107);
|
|
361
360
|
i0.ɵɵtext(1);
|
|
362
361
|
i0.ɵɵelementEnd();
|
|
363
362
|
} if (rf & 2) {
|
|
364
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
363
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
365
364
|
i0.ɵɵadvance();
|
|
366
365
|
i0.ɵɵtextInterpolate1("(", ctx_r1.chatMessages.length, ")");
|
|
367
366
|
} }
|
|
368
|
-
function
|
|
369
|
-
i0.ɵɵelementStart(0, "span",
|
|
370
|
-
i0.ɵɵelement(1, "i",
|
|
367
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
368
|
+
i0.ɵɵelementStart(0, "span", 105);
|
|
369
|
+
i0.ɵɵelement(1, "i", 106);
|
|
371
370
|
i0.ɵɵtext(2, " Messages ");
|
|
372
|
-
i0.ɵɵconditionalCreate(3,
|
|
371
|
+
i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_ng_template_2_Conditional_3_Template, 2, 1, "span", 107);
|
|
373
372
|
i0.ɵɵelementEnd();
|
|
374
373
|
} if (rf & 2) {
|
|
375
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
374
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
376
375
|
i0.ɵɵadvance(3);
|
|
377
376
|
i0.ɵɵconditional(ctx_r1.chatMessages.length > 0 ? 3 : -1);
|
|
378
377
|
} }
|
|
379
|
-
function
|
|
380
|
-
i0.ɵɵelementStart(0, "div",
|
|
381
|
-
i0.ɵɵelement(1, "i",
|
|
378
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
379
|
+
i0.ɵɵelementStart(0, "div", 97);
|
|
380
|
+
i0.ɵɵelement(1, "i", 108);
|
|
382
381
|
i0.ɵɵelementStart(2, "p");
|
|
383
382
|
i0.ɵɵtext(3, "Loading messages...");
|
|
384
383
|
i0.ɵɵelementEnd()();
|
|
385
384
|
} }
|
|
386
|
-
function
|
|
387
|
-
i0.ɵɵelement(0, "mj-chat-message-viewer",
|
|
385
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
386
|
+
i0.ɵɵelement(0, "mj-chat-message-viewer", 98);
|
|
388
387
|
} if (rf & 2) {
|
|
389
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
388
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
390
389
|
i0.ɵɵproperty("messages", ctx_r1.chatMessages);
|
|
391
390
|
} }
|
|
392
|
-
function
|
|
393
|
-
i0.ɵɵelementStart(0, "div",
|
|
394
|
-
i0.ɵɵelement(1, "i",
|
|
391
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
392
|
+
i0.ɵɵelementStart(0, "div", 31);
|
|
393
|
+
i0.ɵɵelement(1, "i", 109);
|
|
395
394
|
i0.ɵɵelementStart(2, "p");
|
|
396
395
|
i0.ɵɵtext(3, "No chat messages found");
|
|
397
396
|
i0.ɵɵelementEnd()();
|
|
398
397
|
} }
|
|
399
|
-
function
|
|
400
|
-
i0.ɵɵelementStart(0, "span",
|
|
398
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_ng_template_8_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
399
|
+
i0.ɵɵelementStart(0, "span", 94);
|
|
401
400
|
i0.ɵɵtext(1, "Object");
|
|
402
401
|
i0.ɵɵelementEnd();
|
|
403
402
|
} }
|
|
404
|
-
function
|
|
405
|
-
i0.ɵɵelementStart(0, "span",
|
|
406
|
-
i0.ɵɵelement(1, "i",
|
|
403
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_ng_template_8_Template(rf, ctx) { if (rf & 1) {
|
|
404
|
+
i0.ɵɵelementStart(0, "span", 105);
|
|
405
|
+
i0.ɵɵelement(1, "i", 110);
|
|
407
406
|
i0.ɵɵtext(2, " Data ");
|
|
408
|
-
i0.ɵɵconditionalCreate(3,
|
|
407
|
+
i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_ng_template_8_Conditional_3_Template, 2, 0, "span", 94);
|
|
409
408
|
i0.ɵɵelementEnd();
|
|
410
409
|
} if (rf & 2) {
|
|
411
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
410
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
412
411
|
i0.ɵɵadvance(3);
|
|
413
412
|
i0.ɵɵconditional(ctx_r1.inputData ? 3 : -1);
|
|
414
413
|
} }
|
|
415
|
-
function
|
|
414
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
416
415
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
417
|
-
i0.ɵɵelementStart(0, "div",
|
|
418
|
-
i0.ɵɵlistener("click", function
|
|
419
|
-
i0.ɵɵelement(3, "i",
|
|
416
|
+
i0.ɵɵelementStart(0, "div", 33)(1, "div", 99)(2, "button", 100);
|
|
417
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_10_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedData, "Data")); });
|
|
418
|
+
i0.ɵɵelement(3, "i", 101);
|
|
420
419
|
i0.ɵɵtext(4, " Copy ");
|
|
421
420
|
i0.ɵɵelementEnd();
|
|
422
|
-
i0.ɵɵelementStart(5, "button",
|
|
423
|
-
i0.ɵɵlistener("click", function
|
|
424
|
-
i0.ɵɵelement(6, "i",
|
|
421
|
+
i0.ɵɵelementStart(5, "button", 102);
|
|
422
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_10_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedData, "json", "Data")); });
|
|
423
|
+
i0.ɵɵelement(6, "i", 103);
|
|
425
424
|
i0.ɵɵelementEnd()();
|
|
426
|
-
i0.ɵɵelementStart(7, "mj-code-editor",
|
|
427
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
425
|
+
i0.ɵɵelementStart(7, "mj-code-editor", 111);
|
|
426
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_10_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedData, $event) || (ctx_r1.formattedData = $event); return i0.ɵɵresetView($event); });
|
|
428
427
|
i0.ɵɵelementEnd()();
|
|
429
428
|
} if (rf & 2) {
|
|
430
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
429
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
431
430
|
i0.ɵɵadvance(7);
|
|
432
431
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedData);
|
|
433
432
|
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
434
433
|
} }
|
|
435
|
-
function
|
|
436
|
-
i0.ɵɵelementStart(0, "div",
|
|
437
|
-
i0.ɵɵelement(1, "i",
|
|
434
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
435
|
+
i0.ɵɵelementStart(0, "div", 31);
|
|
436
|
+
i0.ɵɵelement(1, "i", 110);
|
|
438
437
|
i0.ɵɵelementStart(2, "p");
|
|
439
438
|
i0.ɵɵtext(3, "No data object found");
|
|
440
439
|
i0.ɵɵelementEnd()();
|
|
441
440
|
} }
|
|
442
|
-
function
|
|
443
|
-
i0.ɵɵelementStart(0, "span",
|
|
444
|
-
i0.ɵɵelement(1, "i",
|
|
441
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_ng_template_13_Template(rf, ctx) { if (rf & 1) {
|
|
442
|
+
i0.ɵɵelementStart(0, "span", 105);
|
|
443
|
+
i0.ɵɵelement(1, "i", 90);
|
|
445
444
|
i0.ɵɵtext(2, " Raw ");
|
|
446
445
|
i0.ɵɵelementEnd();
|
|
447
446
|
} }
|
|
448
|
-
function
|
|
447
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Template(rf, ctx) { if (rf & 1) {
|
|
449
448
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
450
|
-
i0.ɵɵelementStart(0, "div",
|
|
451
|
-
i0.ɵɵtemplate(2,
|
|
452
|
-
i0.ɵɵelementStart(3, "div",
|
|
453
|
-
i0.ɵɵconditionalCreate(4,
|
|
454
|
-
i0.ɵɵelementEnd()();
|
|
455
|
-
i0.ɵɵelementStart(7, "
|
|
456
|
-
i0.ɵɵtemplate(8,
|
|
457
|
-
i0.ɵɵelementStart(9, "div",
|
|
458
|
-
i0.ɵɵconditionalCreate(10,
|
|
459
|
-
i0.ɵɵelementEnd()();
|
|
460
|
-
i0.ɵɵelementStart(12, "
|
|
461
|
-
i0.ɵɵtemplate(13,
|
|
462
|
-
i0.ɵɵelementStart(14, "div",
|
|
463
|
-
i0.ɵɵlistener("click", function
|
|
464
|
-
i0.ɵɵelement(18, "i",
|
|
449
|
+
i0.ɵɵelementStart(0, "div", 30)(1, "mj-accordion-panel", 95);
|
|
450
|
+
i0.ɵɵtemplate(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_ng_template_2_Template, 4, 1, "ng-template", 28);
|
|
451
|
+
i0.ɵɵelementStart(3, "div", 96);
|
|
452
|
+
i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Template, 4, 0, "div", 97)(5, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_5_Template, 1, 1, "mj-chat-message-viewer", 98)(6, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_6_Template, 4, 0, "div", 31);
|
|
453
|
+
i0.ɵɵelementEnd()();
|
|
454
|
+
i0.ɵɵelementStart(7, "mj-accordion-panel", 95);
|
|
455
|
+
i0.ɵɵtemplate(8, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_ng_template_8_Template, 4, 1, "ng-template", 28);
|
|
456
|
+
i0.ɵɵelementStart(9, "div", 96);
|
|
457
|
+
i0.ɵɵconditionalCreate(10, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_10_Template, 8, 4, "div", 33)(11, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Conditional_11_Template, 4, 0, "div", 31);
|
|
458
|
+
i0.ɵɵelementEnd()();
|
|
459
|
+
i0.ɵɵelementStart(12, "mj-accordion-panel", 95);
|
|
460
|
+
i0.ɵɵtemplate(13, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_ng_template_13_Template, 3, 0, "ng-template", 28);
|
|
461
|
+
i0.ɵɵelementStart(14, "div", 96)(15, "div", 33)(16, "div", 99)(17, "button", 100);
|
|
462
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedMessages, "Messages")); });
|
|
463
|
+
i0.ɵɵelement(18, "i", 101);
|
|
465
464
|
i0.ɵɵtext(19, " Copy ");
|
|
466
465
|
i0.ɵɵelementEnd();
|
|
467
|
-
i0.ɵɵelementStart(20, "button",
|
|
468
|
-
i0.ɵɵlistener("click", function
|
|
469
|
-
i0.ɵɵelement(21, "i",
|
|
466
|
+
i0.ɵɵelementStart(20, "button", 102);
|
|
467
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedMessages, "json", "Raw Messages")); });
|
|
468
|
+
i0.ɵɵelement(21, "i", 103);
|
|
470
469
|
i0.ɵɵelementEnd()();
|
|
471
|
-
i0.ɵɵelementStart(22, "mj-code-editor",
|
|
472
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
470
|
+
i0.ɵɵelementStart(22, "mj-code-editor", 104);
|
|
471
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Template_mj_code_editor_ngModelChange_22_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedMessages, $event) || (ctx_r1.formattedMessages = $event); return i0.ɵɵresetView($event); });
|
|
473
472
|
i0.ɵɵelementEnd()()()()();
|
|
474
473
|
} if (rf & 2) {
|
|
475
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
474
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
476
475
|
i0.ɵɵadvance();
|
|
477
|
-
i0.ɵɵproperty("
|
|
476
|
+
i0.ɵɵproperty("Expanded", ctx_r1.messagesExpanded);
|
|
478
477
|
i0.ɵɵadvance(3);
|
|
479
478
|
i0.ɵɵconditional(ctx_r1.isParsingMessages || ctx_r1.isLoadingRelatedData ? 4 : ctx_r1.chatMessages.length > 0 ? 5 : 6);
|
|
480
479
|
i0.ɵɵadvance(3);
|
|
481
|
-
i0.ɵɵproperty("
|
|
480
|
+
i0.ɵɵproperty("Expanded", ctx_r1.dataExpanded);
|
|
482
481
|
i0.ɵɵadvance(3);
|
|
483
482
|
i0.ɵɵconditional(ctx_r1.inputData && ctx_r1.formattedData ? 10 : 11);
|
|
484
483
|
i0.ɵɵadvance(2);
|
|
485
|
-
i0.ɵɵproperty("
|
|
484
|
+
i0.ɵɵproperty("Expanded", ctx_r1.rawExpanded);
|
|
486
485
|
i0.ɵɵadvance(10);
|
|
487
486
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedMessages);
|
|
488
487
|
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
489
488
|
} }
|
|
490
|
-
function
|
|
491
|
-
i0.ɵɵelementStart(0, "div",
|
|
492
|
-
i0.ɵɵelement(1, "i",
|
|
489
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_37_Template(rf, ctx) { if (rf & 1) {
|
|
490
|
+
i0.ɵɵelementStart(0, "div", 31);
|
|
491
|
+
i0.ɵɵelement(1, "i", 109);
|
|
493
492
|
i0.ɵɵelementStart(2, "p");
|
|
494
493
|
i0.ɵɵtext(3, "No input messages recorded");
|
|
495
494
|
i0.ɵɵelementEnd()();
|
|
496
495
|
} }
|
|
497
|
-
function
|
|
498
|
-
i0.ɵɵelementStart(0, "
|
|
499
|
-
i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Template, 23, 12, "div", 68)(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_2_Template, 4, 0, "div", 69);
|
|
500
|
-
i0.ɵɵelementEnd();
|
|
501
|
-
} if (rf & 2) {
|
|
502
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
503
|
-
i0.ɵɵadvance();
|
|
504
|
-
i0.ɵɵconditional(ctx_r1.record.Messages && ctx_r1.record.Messages.trim() !== "" ? 1 : 2);
|
|
505
|
-
} }
|
|
506
|
-
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_38_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
507
|
-
i0.ɵɵelementStart(0, "span", 66);
|
|
496
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
497
|
+
i0.ɵɵelementStart(0, "span", 94);
|
|
508
498
|
i0.ɵɵtext(1, "JSON");
|
|
509
499
|
i0.ɵɵelementEnd();
|
|
510
500
|
} }
|
|
511
|
-
function
|
|
512
|
-
i0.ɵɵelementStart(0, "span",
|
|
501
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
502
|
+
i0.ɵɵelementStart(0, "span", 113);
|
|
513
503
|
i0.ɵɵtext(1, "Error");
|
|
514
504
|
i0.ɵɵelementEnd();
|
|
515
505
|
} }
|
|
516
|
-
function
|
|
517
|
-
i0.ɵɵelementStart(0, "span",
|
|
518
|
-
i0.ɵɵelement(1, "i",
|
|
506
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Template(rf, ctx) { if (rf & 1) {
|
|
507
|
+
i0.ɵɵelementStart(0, "span", 92);
|
|
508
|
+
i0.ɵɵelement(1, "i", 112);
|
|
519
509
|
i0.ɵɵtext(2, " Result ");
|
|
520
|
-
i0.ɵɵconditionalCreate(3,
|
|
521
|
-
i0.ɵɵconditionalCreate(4,
|
|
510
|
+
i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Template, 2, 0, "span", 94);
|
|
511
|
+
i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_4_Template, 2, 0, "span", 113);
|
|
522
512
|
i0.ɵɵelementEnd();
|
|
523
513
|
} if (rf & 2) {
|
|
524
514
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -527,80 +517,80 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_38_Templat
|
|
|
527
517
|
i0.ɵɵadvance();
|
|
528
518
|
i0.ɵɵconditional(ctx_r1.record.ErrorMessage ? 4 : -1);
|
|
529
519
|
} }
|
|
530
|
-
function
|
|
531
|
-
i0.ɵɵelementStart(0, "div",
|
|
532
|
-
i0.ɵɵelement(1, "i",
|
|
533
|
-
i0.ɵɵelementStart(2, "div",
|
|
520
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_Template(rf, ctx) { if (rf & 1) {
|
|
521
|
+
i0.ɵɵelementStart(0, "div", 32);
|
|
522
|
+
i0.ɵɵelement(1, "i", 114);
|
|
523
|
+
i0.ɵɵelementStart(2, "div", 115)(3, "h4");
|
|
534
524
|
i0.ɵɵtext(4, "Error Message");
|
|
535
525
|
i0.ɵɵelementEnd();
|
|
536
526
|
i0.ɵɵelementStart(5, "p");
|
|
537
527
|
i0.ɵɵtext(6);
|
|
538
528
|
i0.ɵɵelementEnd()()();
|
|
539
529
|
} if (rf & 2) {
|
|
540
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
530
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
541
531
|
i0.ɵɵadvance(6);
|
|
542
532
|
i0.ɵɵtextInterpolate(ctx_r1.record.ErrorMessage);
|
|
543
533
|
} }
|
|
544
|
-
function
|
|
534
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_42_Template(rf, ctx) { if (rf & 1) {
|
|
545
535
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
546
|
-
i0.ɵɵelementStart(0, "div",
|
|
547
|
-
i0.ɵɵlistener("click", function
|
|
548
|
-
i0.ɵɵelement(3, "i",
|
|
536
|
+
i0.ɵɵelementStart(0, "div", 33)(1, "div", 99)(2, "button", 100);
|
|
537
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_42_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedResult, "Result")); });
|
|
538
|
+
i0.ɵɵelement(3, "i", 101);
|
|
549
539
|
i0.ɵɵtext(4, " Copy ");
|
|
550
540
|
i0.ɵɵelementEnd();
|
|
551
|
-
i0.ɵɵelementStart(5, "button",
|
|
552
|
-
i0.ɵɵlistener("click", function
|
|
553
|
-
i0.ɵɵelement(6, "i",
|
|
541
|
+
i0.ɵɵelementStart(5, "button", 102);
|
|
542
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_42_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedResult, "json", "Result")); });
|
|
543
|
+
i0.ɵɵelement(6, "i", 103);
|
|
554
544
|
i0.ɵɵelementEnd()();
|
|
555
|
-
i0.ɵɵelementStart(7, "mj-code-editor",
|
|
556
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
545
|
+
i0.ɵɵelementStart(7, "mj-code-editor", 116);
|
|
546
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_42_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedResult, $event) || (ctx_r1.formattedResult = $event); return i0.ɵɵresetView($event); });
|
|
557
547
|
i0.ɵɵelementEnd()();
|
|
558
548
|
} if (rf & 2) {
|
|
559
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
549
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
560
550
|
i0.ɵɵadvance(7);
|
|
561
551
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedResult);
|
|
562
552
|
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
563
553
|
} }
|
|
564
|
-
function
|
|
565
|
-
i0.ɵɵelementStart(0, "p",
|
|
554
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
555
|
+
i0.ɵɵelementStart(0, "p", 119)(1, "strong");
|
|
566
556
|
i0.ɵɵtext(2, "Status:");
|
|
567
557
|
i0.ɵɵelementEnd();
|
|
568
558
|
i0.ɵɵtext(3);
|
|
569
559
|
i0.ɵɵelementEnd();
|
|
570
560
|
} if (rf & 2) {
|
|
571
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
561
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
572
562
|
i0.ɵɵadvance(3);
|
|
573
563
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Status, " ");
|
|
574
564
|
} }
|
|
575
|
-
function
|
|
565
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
576
566
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
577
|
-
i0.ɵɵelementStart(0, "div",
|
|
567
|
+
i0.ɵɵelementStart(0, "div", 120)(1, "div", 99)(2, "h4", 122);
|
|
578
568
|
i0.ɵɵtext(3, "Error Details");
|
|
579
569
|
i0.ɵɵelementEnd();
|
|
580
|
-
i0.ɵɵelementStart(4, "button",
|
|
581
|
-
i0.ɵɵlistener("click", function
|
|
582
|
-
i0.ɵɵelement(5, "i",
|
|
570
|
+
i0.ɵɵelementStart(4, "button", 102);
|
|
571
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedErrorDetails, "json", "Error Details")); });
|
|
572
|
+
i0.ɵɵelement(5, "i", 103);
|
|
583
573
|
i0.ɵɵelementEnd()();
|
|
584
|
-
i0.ɵɵelement(6, "mj-code-editor",
|
|
574
|
+
i0.ɵɵelement(6, "mj-code-editor", 123);
|
|
585
575
|
i0.ɵɵelementEnd();
|
|
586
576
|
} if (rf & 2) {
|
|
587
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
577
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
588
578
|
i0.ɵɵadvance(6);
|
|
589
579
|
i0.ɵɵproperty("ngModel", ctx_r1.formattedErrorDetails)("disabled", true)("language", "json")("lineWrapping", true);
|
|
590
580
|
} }
|
|
591
|
-
function
|
|
592
|
-
i0.ɵɵelementStart(0, "p",
|
|
581
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
582
|
+
i0.ɵɵelementStart(0, "p", 121);
|
|
593
583
|
i0.ɵɵtext(1, " The prompt execution failed but no additional error information is available. ");
|
|
594
584
|
i0.ɵɵelementEnd();
|
|
595
585
|
} }
|
|
596
|
-
function
|
|
597
|
-
i0.ɵɵelementStart(0, "div",
|
|
598
|
-
i0.ɵɵconditionalCreate(1,
|
|
599
|
-
i0.ɵɵconditionalCreate(2,
|
|
600
|
-
i0.ɵɵconditionalCreate(3,
|
|
586
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
587
|
+
i0.ɵɵelementStart(0, "div", 118);
|
|
588
|
+
i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_Template, 4, 1, "p", 119);
|
|
589
|
+
i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_2_Template, 7, 4, "div", 120);
|
|
590
|
+
i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_3_Template, 2, 0, "p", 121);
|
|
601
591
|
i0.ɵɵelementEnd();
|
|
602
592
|
} if (rf & 2) {
|
|
603
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
593
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
604
594
|
i0.ɵɵadvance();
|
|
605
595
|
i0.ɵɵconditional(ctx_r1.record.Status ? 1 : -1);
|
|
606
596
|
i0.ɵɵadvance();
|
|
@@ -608,234 +598,141 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditi
|
|
|
608
598
|
i0.ɵɵadvance();
|
|
609
599
|
i0.ɵɵconditional(!ctx_r1.formattedErrorDetails ? 3 : -1);
|
|
610
600
|
} }
|
|
611
|
-
function
|
|
612
|
-
i0.ɵɵelementStart(0, "div",
|
|
613
|
-
i0.ɵɵelement(1, "i",
|
|
601
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Template(rf, ctx) { if (rf & 1) {
|
|
602
|
+
i0.ɵɵelementStart(0, "div", 31);
|
|
603
|
+
i0.ɵɵelement(1, "i", 117);
|
|
614
604
|
i0.ɵɵelementStart(2, "p");
|
|
615
605
|
i0.ɵɵtext(3, "No result data recorded");
|
|
616
606
|
i0.ɵɵelementEnd();
|
|
617
|
-
i0.ɵɵconditionalCreate(4,
|
|
607
|
+
i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Template, 4, 3, "div", 118);
|
|
618
608
|
i0.ɵɵelementEnd();
|
|
619
609
|
} if (rf & 2) {
|
|
620
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
610
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
621
611
|
i0.ɵɵadvance(4);
|
|
622
612
|
i0.ɵɵconditional(ctx_r1.record.Status === "Failed" || ctx_r1.record.Success === false ? 4 : -1);
|
|
623
613
|
} }
|
|
624
|
-
function
|
|
625
|
-
i0.ɵɵelementStart(0, "
|
|
626
|
-
i0.ɵɵ
|
|
627
|
-
i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_2_Template, 8, 4, "div", 75)(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Template, 5, 1, "div", 69);
|
|
628
|
-
i0.ɵɵelementEnd();
|
|
629
|
-
} if (rf & 2) {
|
|
630
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
631
|
-
i0.ɵɵadvance();
|
|
632
|
-
i0.ɵɵconditional(ctx_r1.record.ErrorMessage ? 1 : -1);
|
|
633
|
-
i0.ɵɵadvance();
|
|
634
|
-
i0.ɵɵconditional(ctx_r1.record.Result && ctx_r1.record.Result.trim() !== "" ? 2 : !ctx_r1.record.ErrorMessage ? 3 : -1);
|
|
635
|
-
} }
|
|
636
|
-
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_41_Template(rf, ctx) { if (rf & 1) {
|
|
637
|
-
i0.ɵɵelementStart(0, "span", 64);
|
|
638
|
-
i0.ɵɵelement(1, "i", 102);
|
|
614
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_45_Template(rf, ctx) { if (rf & 1) {
|
|
615
|
+
i0.ɵɵelementStart(0, "span", 92);
|
|
616
|
+
i0.ɵɵelement(1, "i", 124);
|
|
639
617
|
i0.ɵɵtext(2, " Token Usage & Metrics ");
|
|
640
618
|
i0.ɵɵelementEnd();
|
|
641
619
|
} }
|
|
642
|
-
function
|
|
643
|
-
i0.ɵɵelementStart(0, "div",
|
|
620
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_55_Template(rf, ctx) { if (rf & 1) {
|
|
621
|
+
i0.ɵɵelementStart(0, "div", 39)(1, "span");
|
|
644
622
|
i0.ɵɵtext(2);
|
|
645
623
|
i0.ɵɵelementEnd()();
|
|
646
624
|
} if (rf & 2) {
|
|
647
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
625
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
648
626
|
i0.ɵɵadvance(2);
|
|
649
627
|
i0.ɵɵtextInterpolate1("Rollup: ", ctx_r1.formatTokens(ctx_r1.record.TokensPromptRollup));
|
|
650
628
|
} }
|
|
651
|
-
function
|
|
652
|
-
i0.ɵɵelementStart(0, "div",
|
|
629
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_63_Template(rf, ctx) { if (rf & 1) {
|
|
630
|
+
i0.ɵɵelementStart(0, "div", 39)(1, "span");
|
|
653
631
|
i0.ɵɵtext(2);
|
|
654
632
|
i0.ɵɵelementEnd()();
|
|
655
633
|
} if (rf & 2) {
|
|
656
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
634
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
657
635
|
i0.ɵɵadvance(2);
|
|
658
636
|
i0.ɵɵtextInterpolate1("Rollup: ", ctx_r1.formatTokens(ctx_r1.record.TokensCompletionRollup));
|
|
659
637
|
} }
|
|
660
|
-
function
|
|
661
|
-
i0.ɵɵelementStart(0, "div",
|
|
638
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_71_Template(rf, ctx) { if (rf & 1) {
|
|
639
|
+
i0.ɵɵelementStart(0, "div", 39)(1, "span");
|
|
662
640
|
i0.ɵɵtext(2);
|
|
663
641
|
i0.ɵɵelementEnd()();
|
|
664
642
|
} if (rf & 2) {
|
|
665
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
643
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
666
644
|
i0.ɵɵadvance(2);
|
|
667
645
|
i0.ɵɵtextInterpolate1("Rollup: ", ctx_r1.formatTokens(ctx_r1.record.TokensUsedRollup));
|
|
668
646
|
} }
|
|
669
|
-
function
|
|
670
|
-
i0.ɵɵelementStart(0, "div",
|
|
647
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_79_Template(rf, ctx) { if (rf & 1) {
|
|
648
|
+
i0.ɵɵelementStart(0, "div", 39)(1, "span");
|
|
671
649
|
i0.ɵɵtext(2);
|
|
672
650
|
i0.ɵɵelementEnd()();
|
|
673
651
|
} if (rf & 2) {
|
|
674
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
652
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
675
653
|
i0.ɵɵadvance(2);
|
|
676
654
|
i0.ɵɵtextInterpolate1("Total: ", ctx_r1.formatCost(ctx_r1.record.TotalCost));
|
|
677
655
|
} }
|
|
678
|
-
function
|
|
679
|
-
i0.ɵɵelementStart(0, "div",
|
|
656
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_80_Template(rf, ctx) { if (rf & 1) {
|
|
657
|
+
i0.ɵɵelementStart(0, "div", 43);
|
|
680
658
|
i0.ɵɵtext(1);
|
|
681
659
|
i0.ɵɵelementEnd();
|
|
682
660
|
} if (rf & 2) {
|
|
683
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
661
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
684
662
|
i0.ɵɵadvance();
|
|
685
663
|
i0.ɵɵtextInterpolate(ctx_r1.record.CostCurrency);
|
|
686
664
|
} }
|
|
687
|
-
function
|
|
688
|
-
i0.ɵɵelementStart(0, "div",
|
|
689
|
-
i0.ɵɵelement(2, "i",
|
|
665
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_81_Template(rf, ctx) { if (rf & 1) {
|
|
666
|
+
i0.ɵɵelementStart(0, "div", 35)(1, "div", 36);
|
|
667
|
+
i0.ɵɵelement(2, "i", 125);
|
|
690
668
|
i0.ɵɵelementStart(3, "h4");
|
|
691
669
|
i0.ɵɵtext(4, "Queue Time");
|
|
692
670
|
i0.ɵɵelementEnd()();
|
|
693
|
-
i0.ɵɵelementStart(5, "div",
|
|
671
|
+
i0.ɵɵelementStart(5, "div", 38);
|
|
694
672
|
i0.ɵɵtext(6);
|
|
695
673
|
i0.ɵɵelementEnd()();
|
|
696
674
|
} if (rf & 2) {
|
|
697
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
675
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
698
676
|
i0.ɵɵadvance(6);
|
|
699
677
|
i0.ɵɵtextInterpolate(ctx_r1.formatDuration(ctx_r1.record.QueueTime));
|
|
700
678
|
} }
|
|
701
|
-
function
|
|
702
|
-
i0.ɵɵelementStart(0, "div",
|
|
703
|
-
i0.ɵɵelement(2, "i",
|
|
679
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_82_Template(rf, ctx) { if (rf & 1) {
|
|
680
|
+
i0.ɵɵelementStart(0, "div", 35)(1, "div", 36);
|
|
681
|
+
i0.ɵɵelement(2, "i", 126);
|
|
704
682
|
i0.ɵɵelementStart(3, "h4");
|
|
705
683
|
i0.ɵɵtext(4, "Prompt Time");
|
|
706
684
|
i0.ɵɵelementEnd()();
|
|
707
|
-
i0.ɵɵelementStart(5, "div",
|
|
685
|
+
i0.ɵɵelementStart(5, "div", 38);
|
|
708
686
|
i0.ɵɵtext(6);
|
|
709
687
|
i0.ɵɵelementEnd()();
|
|
710
688
|
} if (rf & 2) {
|
|
711
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
689
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
712
690
|
i0.ɵɵadvance(6);
|
|
713
691
|
i0.ɵɵtextInterpolate(ctx_r1.formatDuration(ctx_r1.record.PromptTime));
|
|
714
692
|
} }
|
|
715
|
-
function
|
|
716
|
-
i0.ɵɵelementStart(0, "div",
|
|
717
|
-
i0.ɵɵelement(2, "i",
|
|
693
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_83_Template(rf, ctx) { if (rf & 1) {
|
|
694
|
+
i0.ɵɵelementStart(0, "div", 35)(1, "div", 36);
|
|
695
|
+
i0.ɵɵelement(2, "i", 127);
|
|
718
696
|
i0.ɵɵelementStart(3, "h4");
|
|
719
697
|
i0.ɵɵtext(4, "Completion Time");
|
|
720
698
|
i0.ɵɵelementEnd()();
|
|
721
|
-
i0.ɵɵelementStart(5, "div",
|
|
699
|
+
i0.ɵɵelementStart(5, "div", 38);
|
|
722
700
|
i0.ɵɵtext(6);
|
|
723
701
|
i0.ɵɵelementEnd()();
|
|
724
702
|
} if (rf & 2) {
|
|
725
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
703
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
726
704
|
i0.ɵɵadvance(6);
|
|
727
705
|
i0.ɵɵtextInterpolate(ctx_r1.formatDuration(ctx_r1.record.CompletionTime));
|
|
728
706
|
} }
|
|
729
|
-
function
|
|
730
|
-
i0.ɵɵelementStart(0, "div",
|
|
707
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_85_Template(rf, ctx) { if (rf & 1) {
|
|
708
|
+
i0.ɵɵelementStart(0, "div", 45)(1, "span", 85);
|
|
731
709
|
i0.ɵɵtext(2, "Execution Order:");
|
|
732
710
|
i0.ɵɵelementEnd();
|
|
733
|
-
i0.ɵɵelementStart(3, "span",
|
|
711
|
+
i0.ɵɵelementStart(3, "span", 86);
|
|
734
712
|
i0.ɵɵtext(4);
|
|
735
713
|
i0.ɵɵelementEnd()();
|
|
736
714
|
} if (rf & 2) {
|
|
737
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
715
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
738
716
|
i0.ɵɵadvance(4);
|
|
739
717
|
i0.ɵɵtextInterpolate(ctx_r1.record.ExecutionOrder);
|
|
740
718
|
} }
|
|
741
|
-
function
|
|
719
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_86_Template(rf, ctx) { if (rf & 1) {
|
|
742
720
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
743
|
-
i0.ɵɵelementStart(0, "div",
|
|
721
|
+
i0.ɵɵelementStart(0, "div", 45)(1, "span", 85);
|
|
744
722
|
i0.ɵɵtext(2, "Agent:");
|
|
745
723
|
i0.ɵɵelementEnd();
|
|
746
|
-
i0.ɵɵelementStart(3, "span",
|
|
747
|
-
i0.ɵɵlistener("click", function
|
|
724
|
+
i0.ɵɵelementStart(3, "span", 128);
|
|
725
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_86_Template_span_click_3_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agents", ctx_r1.record.AgentID)); });
|
|
748
726
|
i0.ɵɵtext(4);
|
|
749
|
-
i0.ɵɵelement(5, "i",
|
|
727
|
+
i0.ɵɵelement(5, "i", 129);
|
|
750
728
|
i0.ɵɵelementEnd()();
|
|
751
729
|
} if (rf & 2) {
|
|
752
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
730
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
753
731
|
i0.ɵɵadvance(4);
|
|
754
732
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Agent, " ");
|
|
755
733
|
} }
|
|
756
|
-
function
|
|
757
|
-
i0.ɵɵelementStart(0, "
|
|
758
|
-
i0.ɵɵelement(4, "i", 106);
|
|
759
|
-
i0.ɵɵelementStart(5, "h4");
|
|
760
|
-
i0.ɵɵtext(6, "Prompt Tokens");
|
|
761
|
-
i0.ɵɵelementEnd()();
|
|
762
|
-
i0.ɵɵelementStart(7, "div", 107);
|
|
763
|
-
i0.ɵɵtext(8);
|
|
764
|
-
i0.ɵɵelementEnd();
|
|
765
|
-
i0.ɵɵconditionalCreate(9, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_9_Template, 3, 1, "div", 108);
|
|
766
|
-
i0.ɵɵelementEnd();
|
|
767
|
-
i0.ɵɵelementStart(10, "div", 104)(11, "div", 105);
|
|
768
|
-
i0.ɵɵelement(12, "i", 109);
|
|
769
|
-
i0.ɵɵelementStart(13, "h4");
|
|
770
|
-
i0.ɵɵtext(14, "Completion Tokens");
|
|
771
|
-
i0.ɵɵelementEnd()();
|
|
772
|
-
i0.ɵɵelementStart(15, "div", 107);
|
|
773
|
-
i0.ɵɵtext(16);
|
|
774
|
-
i0.ɵɵelementEnd();
|
|
775
|
-
i0.ɵɵconditionalCreate(17, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_17_Template, 3, 1, "div", 108);
|
|
776
|
-
i0.ɵɵelementEnd();
|
|
777
|
-
i0.ɵɵelementStart(18, "div", 104)(19, "div", 105);
|
|
778
|
-
i0.ɵɵelement(20, "i", 56);
|
|
779
|
-
i0.ɵɵelementStart(21, "h4");
|
|
780
|
-
i0.ɵɵtext(22, "Total Tokens");
|
|
781
|
-
i0.ɵɵelementEnd()();
|
|
782
|
-
i0.ɵɵelementStart(23, "div", 107);
|
|
783
|
-
i0.ɵɵtext(24);
|
|
784
|
-
i0.ɵɵelementEnd();
|
|
785
|
-
i0.ɵɵconditionalCreate(25, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_25_Template, 3, 1, "div", 108);
|
|
786
|
-
i0.ɵɵelementEnd();
|
|
787
|
-
i0.ɵɵelementStart(26, "div", 104)(27, "div", 105);
|
|
788
|
-
i0.ɵɵelement(28, "i", 57);
|
|
789
|
-
i0.ɵɵelementStart(29, "h4");
|
|
790
|
-
i0.ɵɵtext(30, "Cost");
|
|
791
|
-
i0.ɵɵelementEnd()();
|
|
792
|
-
i0.ɵɵelementStart(31, "div", 107);
|
|
793
|
-
i0.ɵɵtext(32);
|
|
794
|
-
i0.ɵɵelementEnd();
|
|
795
|
-
i0.ɵɵconditionalCreate(33, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_33_Template, 3, 1, "div", 108);
|
|
796
|
-
i0.ɵɵconditionalCreate(34, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_34_Template, 2, 1, "div", 110);
|
|
797
|
-
i0.ɵɵelementEnd();
|
|
798
|
-
i0.ɵɵconditionalCreate(35, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_35_Template, 7, 1, "div", 104);
|
|
799
|
-
i0.ɵɵconditionalCreate(36, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_36_Template, 7, 1, "div", 104);
|
|
800
|
-
i0.ɵɵconditionalCreate(37, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_37_Template, 7, 1, "div", 104);
|
|
801
|
-
i0.ɵɵelementEnd();
|
|
802
|
-
i0.ɵɵelementStart(38, "div", 111);
|
|
803
|
-
i0.ɵɵconditionalCreate(39, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_39_Template, 5, 1, "div", 112);
|
|
804
|
-
i0.ɵɵconditionalCreate(40, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_40_Template, 6, 1, "div", 112);
|
|
805
|
-
i0.ɵɵelementEnd()();
|
|
806
|
-
} if (rf & 2) {
|
|
807
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
808
|
-
i0.ɵɵadvance(8);
|
|
809
|
-
i0.ɵɵtextInterpolate(ctx_r1.formatTokens(ctx_r1.record.TokensPrompt));
|
|
810
|
-
i0.ɵɵadvance();
|
|
811
|
-
i0.ɵɵconditional(ctx_r1.record.TokensPromptRollup && ctx_r1.record.TokensPromptRollup !== ctx_r1.record.TokensPrompt ? 9 : -1);
|
|
812
|
-
i0.ɵɵadvance(7);
|
|
813
|
-
i0.ɵɵtextInterpolate(ctx_r1.formatTokens(ctx_r1.record.TokensCompletion));
|
|
814
|
-
i0.ɵɵadvance();
|
|
815
|
-
i0.ɵɵconditional(ctx_r1.record.TokensCompletionRollup && ctx_r1.record.TokensCompletionRollup !== ctx_r1.record.TokensCompletion ? 17 : -1);
|
|
816
|
-
i0.ɵɵadvance(7);
|
|
817
|
-
i0.ɵɵtextInterpolate(ctx_r1.formatTokens(ctx_r1.record.TokensUsed));
|
|
818
|
-
i0.ɵɵadvance();
|
|
819
|
-
i0.ɵɵconditional(ctx_r1.record.TokensUsedRollup && ctx_r1.record.TokensUsedRollup !== ctx_r1.record.TokensUsed ? 25 : -1);
|
|
820
|
-
i0.ɵɵadvance(7);
|
|
821
|
-
i0.ɵɵtextInterpolate(ctx_r1.formatCost(ctx_r1.record.Cost));
|
|
822
|
-
i0.ɵɵadvance();
|
|
823
|
-
i0.ɵɵconditional(ctx_r1.record.TotalCost && ctx_r1.record.TotalCost !== ctx_r1.record.Cost ? 33 : -1);
|
|
824
|
-
i0.ɵɵadvance();
|
|
825
|
-
i0.ɵɵconditional(ctx_r1.record.CostCurrency ? 34 : -1);
|
|
826
|
-
i0.ɵɵadvance();
|
|
827
|
-
i0.ɵɵconditional(ctx_r1.record.QueueTime != null ? 35 : -1);
|
|
828
|
-
i0.ɵɵadvance();
|
|
829
|
-
i0.ɵɵconditional(ctx_r1.record.PromptTime != null ? 36 : -1);
|
|
830
|
-
i0.ɵɵadvance();
|
|
831
|
-
i0.ɵɵconditional(ctx_r1.record.CompletionTime != null ? 37 : -1);
|
|
832
|
-
i0.ɵɵadvance(2);
|
|
833
|
-
i0.ɵɵconditional(ctx_r1.record.ExecutionOrder !== null ? 39 : -1);
|
|
834
|
-
i0.ɵɵadvance();
|
|
835
|
-
i0.ɵɵconditional(ctx_r1.record.AgentID ? 40 : -1);
|
|
836
|
-
} }
|
|
837
|
-
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
838
|
-
i0.ɵɵelementStart(0, "span", 84);
|
|
734
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
735
|
+
i0.ɵɵelementStart(0, "span", 107);
|
|
839
736
|
i0.ɵɵtext(1);
|
|
840
737
|
i0.ɵɵelementEnd();
|
|
841
738
|
} if (rf & 2) {
|
|
@@ -843,22 +740,22 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_temp
|
|
|
843
740
|
i0.ɵɵadvance();
|
|
844
741
|
i0.ɵɵtextInterpolate1("(", ctx_r1.record.ValidationAttemptCount, " attempts)");
|
|
845
742
|
} }
|
|
846
|
-
function
|
|
847
|
-
i0.ɵɵelementStart(0, "span",
|
|
743
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_ng_template_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
744
|
+
i0.ɵɵelementStart(0, "span", 141);
|
|
848
745
|
i0.ɵɵtext(1, "Passed");
|
|
849
746
|
i0.ɵɵelementEnd();
|
|
850
747
|
} }
|
|
851
|
-
function
|
|
852
|
-
i0.ɵɵelementStart(0, "span",
|
|
748
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_ng_template_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
749
|
+
i0.ɵɵelementStart(0, "span", 113);
|
|
853
750
|
i0.ɵɵtext(1, "Failed");
|
|
854
751
|
i0.ɵɵelementEnd();
|
|
855
752
|
} }
|
|
856
|
-
function
|
|
857
|
-
i0.ɵɵelementStart(0, "span",
|
|
858
|
-
i0.ɵɵelement(1, "i",
|
|
753
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
754
|
+
i0.ɵɵelementStart(0, "span", 92);
|
|
755
|
+
i0.ɵɵelement(1, "i", 140);
|
|
859
756
|
i0.ɵɵtext(2, " Validation & Retries ");
|
|
860
|
-
i0.ɵɵconditionalCreate(3,
|
|
861
|
-
i0.ɵɵconditionalCreate(4,
|
|
757
|
+
i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_ng_template_1_Conditional_3_Template, 2, 1, "span", 107);
|
|
758
|
+
i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_ng_template_1_Conditional_4_Template, 2, 0, "span", 141)(5, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_ng_template_1_Conditional_5_Template, 2, 0, "span", 113);
|
|
862
759
|
i0.ɵɵelementEnd();
|
|
863
760
|
} if (rf & 2) {
|
|
864
761
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -867,68 +764,68 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_temp
|
|
|
867
764
|
i0.ɵɵadvance();
|
|
868
765
|
i0.ɵɵconditional(ctx_r1.record.FinalValidationPassed ? 4 : ctx_r1.record.FinalValidationPassed === false ? 5 : -1);
|
|
869
766
|
} }
|
|
870
|
-
function
|
|
871
|
-
i0.ɵɵelementStart(0, "span",
|
|
767
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_31_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
768
|
+
i0.ɵɵelementStart(0, "span", 142);
|
|
872
769
|
i0.ɵɵtext(1);
|
|
873
770
|
i0.ɵɵelementEnd();
|
|
874
771
|
} if (rf & 2) {
|
|
875
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
772
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
876
773
|
i0.ɵɵadvance();
|
|
877
774
|
i0.ɵɵtextInterpolate1("", ctx_r1.record.ValidationErrorCount, " validation errors");
|
|
878
775
|
} }
|
|
879
|
-
function
|
|
880
|
-
i0.ɵɵelementStart(0, "div",
|
|
881
|
-
i0.ɵɵelement(2, "i",
|
|
776
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
777
|
+
i0.ɵɵelementStart(0, "div", 135)(1, "h5");
|
|
778
|
+
i0.ɵɵelement(2, "i", 114);
|
|
882
779
|
i0.ɵɵtext(3, " Final Validation Error");
|
|
883
780
|
i0.ɵɵelementEnd();
|
|
884
781
|
i0.ɵɵelementStart(4, "p");
|
|
885
782
|
i0.ɵɵtext(5);
|
|
886
783
|
i0.ɵɵelementEnd();
|
|
887
|
-
i0.ɵɵconditionalCreate(6,
|
|
784
|
+
i0.ɵɵconditionalCreate(6, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_31_Conditional_6_Template, 2, 1, "span", 142);
|
|
888
785
|
i0.ɵɵelementEnd();
|
|
889
786
|
} if (rf & 2) {
|
|
890
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
787
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
891
788
|
i0.ɵɵadvance(5);
|
|
892
789
|
i0.ɵɵtextInterpolate(ctx_r1.record.FinalValidationError);
|
|
893
790
|
i0.ɵɵadvance();
|
|
894
791
|
i0.ɵɵconditional(ctx_r1.record && ctx_r1.record.ValidationErrorCount && ctx_r1.record.ValidationErrorCount > 0 ? 6 : -1);
|
|
895
792
|
} }
|
|
896
|
-
function
|
|
897
|
-
i0.ɵɵelementStart(0, "div",
|
|
898
|
-
i0.ɵɵelement(2, "i",
|
|
793
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
794
|
+
i0.ɵɵelementStart(0, "div", 136)(1, "h5");
|
|
795
|
+
i0.ɵɵelement(2, "i", 54);
|
|
899
796
|
i0.ɵɵtext(3, " Most Common Error");
|
|
900
797
|
i0.ɵɵelementEnd();
|
|
901
798
|
i0.ɵɵelementStart(4, "p");
|
|
902
799
|
i0.ɵɵtext(5);
|
|
903
800
|
i0.ɵɵelementEnd()();
|
|
904
801
|
} if (rf & 2) {
|
|
905
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
802
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
906
803
|
i0.ɵɵadvance(5);
|
|
907
804
|
i0.ɵɵtextInterpolate(ctx_r1.record.CommonValidationError);
|
|
908
805
|
} }
|
|
909
|
-
function
|
|
910
|
-
i0.ɵɵelementStart(0, "div",
|
|
806
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_33_Template(rf, ctx) { if (rf & 1) {
|
|
807
|
+
i0.ɵɵelementStart(0, "div", 137)(1, "h4");
|
|
911
808
|
i0.ɵɵtext(2, "Retry Timeline");
|
|
912
809
|
i0.ɵɵelementEnd();
|
|
913
|
-
i0.ɵɵelementStart(3, "div",
|
|
914
|
-
i0.ɵɵelement(5, "i",
|
|
810
|
+
i0.ɵɵelementStart(3, "div", 143)(4, "div", 144);
|
|
811
|
+
i0.ɵɵelement(5, "i", 88);
|
|
915
812
|
i0.ɵɵelementStart(6, "span");
|
|
916
813
|
i0.ɵɵtext(7);
|
|
917
814
|
i0.ɵɵpipe(8, "date");
|
|
918
815
|
i0.ɵɵelementEnd()();
|
|
919
|
-
i0.ɵɵelementStart(9, "div",
|
|
920
|
-
i0.ɵɵelement(10, "i",
|
|
816
|
+
i0.ɵɵelementStart(9, "div", 144);
|
|
817
|
+
i0.ɵɵelement(10, "i", 127);
|
|
921
818
|
i0.ɵɵelementStart(11, "span");
|
|
922
819
|
i0.ɵɵtext(12);
|
|
923
820
|
i0.ɵɵpipe(13, "date");
|
|
924
821
|
i0.ɵɵelementEnd()();
|
|
925
|
-
i0.ɵɵelementStart(14, "div",
|
|
926
|
-
i0.ɵɵelement(15, "i",
|
|
822
|
+
i0.ɵɵelementStart(14, "div", 144);
|
|
823
|
+
i0.ɵɵelement(15, "i", 145);
|
|
927
824
|
i0.ɵɵelementStart(16, "span");
|
|
928
825
|
i0.ɵɵtext(17);
|
|
929
826
|
i0.ɵɵelementEnd()()()();
|
|
930
827
|
} if (rf & 2) {
|
|
931
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
828
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
932
829
|
i0.ɵɵadvance(7);
|
|
933
830
|
i0.ɵɵtextInterpolate1("First Attempt: ", i0.ɵɵpipeBind2(8, 3, ctx_r1.record.FirstAttemptAt, "short"));
|
|
934
831
|
i0.ɵɵadvance(5);
|
|
@@ -936,8 +833,8 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_temp
|
|
|
936
833
|
i0.ɵɵadvance(5);
|
|
937
834
|
i0.ɵɵtextInterpolate1("Total Retry Duration: ", ctx_r1.formatDuration(ctx_r1.record.TotalRetryDurationMS));
|
|
938
835
|
} }
|
|
939
|
-
function
|
|
940
|
-
i0.ɵɵelementStart(0, "span",
|
|
836
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_34_For_5_Conditional_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
837
|
+
i0.ɵɵelementStart(0, "span", 142);
|
|
941
838
|
i0.ɵɵtext(1);
|
|
942
839
|
i0.ɵɵelementEnd();
|
|
943
840
|
} if (rf & 2) {
|
|
@@ -945,11 +842,11 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_temp
|
|
|
945
842
|
i0.ɵɵadvance();
|
|
946
843
|
i0.ɵɵtextInterpolate1("(", attempt_r14.validationErrorCount, " errors)");
|
|
947
844
|
} }
|
|
948
|
-
function
|
|
949
|
-
i0.ɵɵelementStart(0, "span",
|
|
845
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_34_For_5_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
846
|
+
i0.ɵɵelementStart(0, "span", 153);
|
|
950
847
|
i0.ɵɵtext(1);
|
|
951
848
|
i0.ɵɵelementEnd();
|
|
952
|
-
i0.ɵɵconditionalCreate(2,
|
|
849
|
+
i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_34_For_5_Conditional_7_Conditional_2_Template, 2, 1, "span", 142);
|
|
953
850
|
} if (rf & 2) {
|
|
954
851
|
const attempt_r14 = i0.ɵɵnextContext().$implicit;
|
|
955
852
|
i0.ɵɵadvance();
|
|
@@ -957,8 +854,8 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_temp
|
|
|
957
854
|
i0.ɵɵadvance();
|
|
958
855
|
i0.ɵɵconditional(attempt_r14.validationErrorCount > 0 ? 2 : -1);
|
|
959
856
|
} }
|
|
960
|
-
function
|
|
961
|
-
i0.ɵɵelementStart(0, "span",
|
|
857
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_34_For_5_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
858
|
+
i0.ɵɵelementStart(0, "span", 152);
|
|
962
859
|
i0.ɵɵtext(1);
|
|
963
860
|
i0.ɵɵelementEnd();
|
|
964
861
|
} if (rf & 2) {
|
|
@@ -966,16 +863,16 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_temp
|
|
|
966
863
|
i0.ɵɵadvance();
|
|
967
864
|
i0.ɵɵtextInterpolate1("Output: ", attempt_r14.outputLength, " chars");
|
|
968
865
|
} }
|
|
969
|
-
function
|
|
970
|
-
i0.ɵɵelementStart(0, "div",
|
|
866
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_34_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
867
|
+
i0.ɵɵelementStart(0, "div", 148)(1, "div", 149);
|
|
971
868
|
i0.ɵɵelement(2, "i");
|
|
972
869
|
i0.ɵɵtext(3);
|
|
973
870
|
i0.ɵɵelementEnd();
|
|
974
|
-
i0.ɵɵelementStart(4, "div",
|
|
871
|
+
i0.ɵɵelementStart(4, "div", 150)(5, "span", 151);
|
|
975
872
|
i0.ɵɵtext(6);
|
|
976
873
|
i0.ɵɵelementEnd();
|
|
977
|
-
i0.ɵɵconditionalCreate(7,
|
|
978
|
-
i0.ɵɵconditionalCreate(8,
|
|
874
|
+
i0.ɵɵconditionalCreate(7, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_34_For_5_Conditional_7_Template, 3, 2);
|
|
875
|
+
i0.ɵɵconditionalCreate(8, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_34_For_5_Conditional_8_Template, 2, 1, "span", 152);
|
|
979
876
|
i0.ɵɵelementEnd()();
|
|
980
877
|
} if (rf & 2) {
|
|
981
878
|
const attempt_r14 = ctx.$implicit;
|
|
@@ -991,97 +888,102 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_temp
|
|
|
991
888
|
i0.ɵɵadvance();
|
|
992
889
|
i0.ɵɵconditional(attempt_r14.outputLength ? 8 : -1);
|
|
993
890
|
} }
|
|
994
|
-
function
|
|
995
|
-
i0.ɵɵelementStart(0, "div",
|
|
891
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_34_Template(rf, ctx) { if (rf & 1) {
|
|
892
|
+
i0.ɵɵelementStart(0, "div", 138)(1, "h4");
|
|
996
893
|
i0.ɵɵtext(2, "Validation Attempts");
|
|
997
894
|
i0.ɵɵelementEnd();
|
|
998
|
-
i0.ɵɵelementStart(3, "div",
|
|
999
|
-
i0.ɵɵrepeaterCreate(4,
|
|
895
|
+
i0.ɵɵelementStart(3, "div", 146);
|
|
896
|
+
i0.ɵɵrepeaterCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_34_For_5_Template, 9, 10, "div", 147, _forTrack0);
|
|
1000
897
|
i0.ɵɵelementEnd()();
|
|
1001
898
|
} if (rf & 2) {
|
|
1002
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
899
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1003
900
|
i0.ɵɵadvance(4);
|
|
1004
901
|
i0.ɵɵrepeater(ctx_r1.validationAttempts);
|
|
1005
902
|
} }
|
|
1006
|
-
function
|
|
903
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_35_Template(rf, ctx) { if (rf & 1) {
|
|
1007
904
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
1008
|
-
i0.ɵɵelementStart(0, "div",
|
|
905
|
+
i0.ɵɵelementStart(0, "div", 139)(1, "div", 99)(2, "h4", 122);
|
|
1009
906
|
i0.ɵɵtext(3, "Validation Summary Details");
|
|
1010
907
|
i0.ɵɵelementEnd();
|
|
1011
|
-
i0.ɵɵelementStart(4, "button",
|
|
1012
|
-
i0.ɵɵlistener("click", function
|
|
1013
|
-
i0.ɵɵelement(5, "i",
|
|
908
|
+
i0.ɵɵelementStart(4, "button", 102);
|
|
909
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_35_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedValidationSummary, "json", "Validation Summary")); });
|
|
910
|
+
i0.ɵɵelement(5, "i", 103);
|
|
1014
911
|
i0.ɵɵelementEnd()();
|
|
1015
|
-
i0.ɵɵelementStart(6, "div",
|
|
1016
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
912
|
+
i0.ɵɵelementStart(6, "div", 154)(7, "mj-code-editor", 155);
|
|
913
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_35_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedValidationSummary, $event) || (ctx_r1.formattedValidationSummary = $event); return i0.ɵɵresetView($event); });
|
|
1017
914
|
i0.ɵɵelementEnd()()();
|
|
1018
915
|
} if (rf & 2) {
|
|
1019
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
916
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1020
917
|
i0.ɵɵadvance(7);
|
|
1021
918
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedValidationSummary);
|
|
1022
919
|
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
1023
920
|
} }
|
|
1024
|
-
function
|
|
921
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_36_Template(rf, ctx) { if (rf & 1) {
|
|
1025
922
|
const _r16 = i0.ɵɵgetCurrentView();
|
|
1026
|
-
i0.ɵɵelementStart(0, "div",
|
|
923
|
+
i0.ɵɵelementStart(0, "div", 139)(1, "div", 99)(2, "h4", 122);
|
|
1027
924
|
i0.ɵɵtext(3, "Validation Attempts (Raw JSON)");
|
|
1028
925
|
i0.ɵɵelementEnd();
|
|
1029
|
-
i0.ɵɵelementStart(4, "button",
|
|
1030
|
-
i0.ɵɵlistener("click", function
|
|
1031
|
-
i0.ɵɵelement(5, "i",
|
|
926
|
+
i0.ɵɵelementStart(4, "button", 102);
|
|
927
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_36_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedValidationAttempts, "json", "Validation Attempts")); });
|
|
928
|
+
i0.ɵɵelement(5, "i", 103);
|
|
1032
929
|
i0.ɵɵelementEnd()();
|
|
1033
|
-
i0.ɵɵelementStart(6, "div",
|
|
1034
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
930
|
+
i0.ɵɵelementStart(6, "div", 154)(7, "mj-code-editor", 156);
|
|
931
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_36_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedValidationAttempts, $event) || (ctx_r1.formattedValidationAttempts = $event); return i0.ɵɵresetView($event); });
|
|
1035
932
|
i0.ɵɵelementEnd()()();
|
|
1036
933
|
} if (rf & 2) {
|
|
1037
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
934
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1038
935
|
i0.ɵɵadvance(7);
|
|
1039
936
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedValidationAttempts);
|
|
1040
937
|
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
1041
938
|
} }
|
|
1042
|
-
function
|
|
1043
|
-
|
|
1044
|
-
i0.ɵɵ
|
|
1045
|
-
i0.ɵɵ
|
|
1046
|
-
i0.ɵɵ
|
|
1047
|
-
i0.ɵɵ
|
|
1048
|
-
i0.ɵɵtext(
|
|
939
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Template(rf, ctx) { if (rf & 1) {
|
|
940
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
941
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 27);
|
|
942
|
+
i0.ɵɵlistener("ExpandedChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onValidationPanelToggle($event)); });
|
|
943
|
+
i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_ng_template_1_Template, 6, 2, "ng-template", 28);
|
|
944
|
+
i0.ɵɵelementStart(2, "div", 29)(3, "div", 130)(4, "div", 131)(5, "h4");
|
|
945
|
+
i0.ɵɵtext(6, "Validation Summary");
|
|
946
|
+
i0.ɵɵelementEnd();
|
|
947
|
+
i0.ɵɵelementStart(7, "div", 132);
|
|
948
|
+
i0.ɵɵelement(8, "i");
|
|
949
|
+
i0.ɵɵtext(9);
|
|
1049
950
|
i0.ɵɵelementEnd()();
|
|
1050
|
-
i0.ɵɵelementStart(
|
|
1051
|
-
i0.ɵɵtext(
|
|
951
|
+
i0.ɵɵelementStart(10, "div", 133)(11, "div", 134)(12, "div", 85);
|
|
952
|
+
i0.ɵɵtext(13, "Total Attempts");
|
|
1052
953
|
i0.ɵɵelementEnd();
|
|
1053
|
-
i0.ɵɵelementStart(
|
|
1054
|
-
i0.ɵɵtext(
|
|
954
|
+
i0.ɵɵelementStart(14, "div", 86);
|
|
955
|
+
i0.ɵɵtext(15);
|
|
1055
956
|
i0.ɵɵelementEnd()();
|
|
1056
|
-
i0.ɵɵelementStart(
|
|
1057
|
-
i0.ɵɵtext(
|
|
957
|
+
i0.ɵɵelementStart(16, "div", 134)(17, "div", 85);
|
|
958
|
+
i0.ɵɵtext(18, "Successful");
|
|
1058
959
|
i0.ɵɵelementEnd();
|
|
1059
|
-
i0.ɵɵelementStart(
|
|
1060
|
-
i0.ɵɵtext(
|
|
960
|
+
i0.ɵɵelementStart(19, "div", 86);
|
|
961
|
+
i0.ɵɵtext(20);
|
|
1061
962
|
i0.ɵɵelementEnd()();
|
|
1062
|
-
i0.ɵɵelementStart(
|
|
1063
|
-
i0.ɵɵtext(
|
|
963
|
+
i0.ɵɵelementStart(21, "div", 134)(22, "div", 85);
|
|
964
|
+
i0.ɵɵtext(23, "Behavior");
|
|
1064
965
|
i0.ɵɵelementEnd();
|
|
1065
|
-
i0.ɵɵelementStart(
|
|
1066
|
-
i0.ɵɵtext(
|
|
966
|
+
i0.ɵɵelementStart(24, "div", 86);
|
|
967
|
+
i0.ɵɵtext(25);
|
|
1067
968
|
i0.ɵɵelementEnd()();
|
|
1068
|
-
i0.ɵɵelementStart(
|
|
1069
|
-
i0.ɵɵtext(
|
|
969
|
+
i0.ɵɵelementStart(26, "div", 134)(27, "div", 85);
|
|
970
|
+
i0.ɵɵtext(28, "Retry Strategy");
|
|
1070
971
|
i0.ɵɵelementEnd();
|
|
1071
|
-
i0.ɵɵelementStart(
|
|
1072
|
-
i0.ɵɵtext(
|
|
972
|
+
i0.ɵɵelementStart(29, "div", 86);
|
|
973
|
+
i0.ɵɵtext(30);
|
|
1073
974
|
i0.ɵɵelementEnd()()();
|
|
1074
|
-
i0.ɵɵconditionalCreate(
|
|
1075
|
-
i0.ɵɵconditionalCreate(
|
|
1076
|
-
i0.ɵɵelementEnd();
|
|
1077
|
-
i0.ɵɵconditionalCreate(31, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_31_Template, 18, 9, "div", 127);
|
|
1078
|
-
i0.ɵɵconditionalCreate(32, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_Template, 6, 0, "div", 128);
|
|
1079
|
-
i0.ɵɵconditionalCreate(33, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_33_Template, 8, 4, "div", 129);
|
|
1080
|
-
i0.ɵɵconditionalCreate(34, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_34_Template, 8, 4, "div", 129);
|
|
975
|
+
i0.ɵɵconditionalCreate(31, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_31_Template, 7, 2, "div", 135);
|
|
976
|
+
i0.ɵɵconditionalCreate(32, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_32_Template, 6, 1, "div", 136);
|
|
1081
977
|
i0.ɵɵelementEnd();
|
|
978
|
+
i0.ɵɵconditionalCreate(33, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_33_Template, 18, 9, "div", 137);
|
|
979
|
+
i0.ɵɵconditionalCreate(34, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_34_Template, 6, 0, "div", 138);
|
|
980
|
+
i0.ɵɵconditionalCreate(35, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_35_Template, 8, 4, "div", 139);
|
|
981
|
+
i0.ɵɵconditionalCreate(36, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Conditional_36_Template, 8, 4, "div", 139);
|
|
982
|
+
i0.ɵɵelementEnd()();
|
|
1082
983
|
} if (rf & 2) {
|
|
1083
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1084
|
-
i0.ɵɵ
|
|
984
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
985
|
+
i0.ɵɵproperty("Expanded", ctx_r1.validationExpanded);
|
|
986
|
+
i0.ɵɵadvance(7);
|
|
1085
987
|
i0.ɵɵclassProp("success", ctx_r1.record.FinalValidationPassed)("failed", !ctx_r1.record.FinalValidationPassed);
|
|
1086
988
|
i0.ɵɵadvance();
|
|
1087
989
|
i0.ɵɵclassMap(ctx_r1.record.FinalValidationPassed ? "fa-solid fa-check-circle" : "fa-solid fa-times-circle");
|
|
@@ -1096,30 +998,20 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_temp
|
|
|
1096
998
|
i0.ɵɵadvance(5);
|
|
1097
999
|
i0.ɵɵtextInterpolate(ctx_r1.record.RetryStrategy || "Not set");
|
|
1098
1000
|
i0.ɵɵadvance();
|
|
1099
|
-
i0.ɵɵconditional(ctx_r1.record.FinalValidationError ?
|
|
1001
|
+
i0.ɵɵconditional(ctx_r1.record.FinalValidationError ? 31 : -1);
|
|
1100
1002
|
i0.ɵɵadvance();
|
|
1101
|
-
i0.ɵɵconditional(ctx_r1.record.CommonValidationError && ctx_r1.record.CommonValidationError !== ctx_r1.record.FinalValidationError ?
|
|
1003
|
+
i0.ɵɵconditional(ctx_r1.record.CommonValidationError && ctx_r1.record.CommonValidationError !== ctx_r1.record.FinalValidationError ? 32 : -1);
|
|
1102
1004
|
i0.ɵɵadvance();
|
|
1103
|
-
i0.ɵɵconditional(ctx_r1.record && ctx_r1.record.ValidationAttemptCount && ctx_r1.record.ValidationAttemptCount > 1 ?
|
|
1005
|
+
i0.ɵɵconditional(ctx_r1.record && ctx_r1.record.ValidationAttemptCount && ctx_r1.record.ValidationAttemptCount > 1 ? 33 : -1);
|
|
1104
1006
|
i0.ɵɵadvance();
|
|
1105
|
-
i0.ɵɵconditional(ctx_r1.validationAttempts && ctx_r1.validationAttempts.length > 0 ?
|
|
1007
|
+
i0.ɵɵconditional(ctx_r1.validationAttempts && ctx_r1.validationAttempts.length > 0 ? 34 : -1);
|
|
1106
1008
|
i0.ɵɵadvance();
|
|
1107
|
-
i0.ɵɵconditional(ctx_r1.validationSummary ?
|
|
1009
|
+
i0.ɵɵconditional(ctx_r1.validationSummary ? 35 : -1);
|
|
1108
1010
|
i0.ɵɵadvance();
|
|
1109
|
-
i0.ɵɵconditional(ctx_r1.record.ValidationAttempts ?
|
|
1110
|
-
} }
|
|
1111
|
-
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Template(rf, ctx) { if (rf & 1) {
|
|
1112
|
-
const _r13 = i0.ɵɵgetCurrentView();
|
|
1113
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item", 28);
|
|
1114
|
-
i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Template_kendo_panelbar_item_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onValidationPanelToggle($event)); });
|
|
1115
|
-
i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Template, 6, 2, "ng-template", 29)(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Template, 35, 17, "ng-template", 30);
|
|
1116
|
-
i0.ɵɵelementEnd();
|
|
1117
|
-
} if (rf & 2) {
|
|
1118
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1119
|
-
i0.ɵɵproperty("expanded", ctx_r1.validationExpanded);
|
|
1011
|
+
i0.ɵɵconditional(ctx_r1.record.ValidationAttempts ? 36 : -1);
|
|
1120
1012
|
} }
|
|
1121
|
-
function
|
|
1122
|
-
i0.ɵɵelementStart(0, "span",
|
|
1013
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1014
|
+
i0.ɵɵelementStart(0, "span", 107);
|
|
1123
1015
|
i0.ɵɵtext(1);
|
|
1124
1016
|
i0.ɵɵelementEnd();
|
|
1125
1017
|
} if (rf & 2) {
|
|
@@ -1127,50 +1019,50 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_temp
|
|
|
1127
1019
|
i0.ɵɵadvance();
|
|
1128
1020
|
i0.ɵɵtextInterpolate1("(", ctx_r1.childRuns.length, " children)");
|
|
1129
1021
|
} }
|
|
1130
|
-
function
|
|
1131
|
-
i0.ɵɵelementStart(0, "span",
|
|
1132
|
-
i0.ɵɵelement(1, "i",
|
|
1022
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
1023
|
+
i0.ɵɵelementStart(0, "span", 92);
|
|
1024
|
+
i0.ɵɵelement(1, "i", 159);
|
|
1133
1025
|
i0.ɵɵtext(2, " Run Hierarchy ");
|
|
1134
|
-
i0.ɵɵconditionalCreate(3,
|
|
1026
|
+
i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_ng_template_1_Conditional_3_Template, 2, 1, "span", 107);
|
|
1135
1027
|
i0.ɵɵelementEnd();
|
|
1136
1028
|
} if (rf & 2) {
|
|
1137
1029
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1138
1030
|
i0.ɵɵadvance(3);
|
|
1139
1031
|
i0.ɵɵconditional(ctx_r1.childRuns.length > 0 ? 3 : -1);
|
|
1140
1032
|
} }
|
|
1141
|
-
function
|
|
1033
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1142
1034
|
const _r17 = i0.ɵɵgetCurrentView();
|
|
1143
|
-
i0.ɵɵelementStart(0, "div",
|
|
1144
|
-
i0.ɵɵelement(2, "i",
|
|
1035
|
+
i0.ɵɵelementStart(0, "div", 157)(1, "h4");
|
|
1036
|
+
i0.ɵɵelement(2, "i", 81);
|
|
1145
1037
|
i0.ɵɵtext(3, " Parent Run");
|
|
1146
1038
|
i0.ɵɵelementEnd();
|
|
1147
|
-
i0.ɵɵelementStart(4, "div",
|
|
1148
|
-
i0.ɵɵlistener("click", function
|
|
1149
|
-
i0.ɵɵelementStart(5, "div",
|
|
1039
|
+
i0.ɵɵelementStart(4, "div", 160);
|
|
1040
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Conditional_3_Template_div_click_4_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompt Runs", ctx_r1.parentRun.ID)); });
|
|
1041
|
+
i0.ɵɵelementStart(5, "div", 161);
|
|
1150
1042
|
i0.ɵɵelement(6, "i");
|
|
1151
1043
|
i0.ɵɵelementEnd();
|
|
1152
|
-
i0.ɵɵelementStart(7, "div",
|
|
1044
|
+
i0.ɵɵelementStart(7, "div", 162)(8, "div", 163);
|
|
1153
1045
|
i0.ɵɵtext(9);
|
|
1154
|
-
i0.ɵɵelementStart(10, "span",
|
|
1046
|
+
i0.ɵɵelementStart(10, "span", 164);
|
|
1155
1047
|
i0.ɵɵtext(11);
|
|
1156
1048
|
i0.ɵɵelementEnd()();
|
|
1157
|
-
i0.ɵɵelementStart(12, "div",
|
|
1158
|
-
i0.ɵɵelement(14, "i",
|
|
1049
|
+
i0.ɵɵelementStart(12, "div", 165)(13, "span");
|
|
1050
|
+
i0.ɵɵelement(14, "i", 88);
|
|
1159
1051
|
i0.ɵɵtext(15);
|
|
1160
1052
|
i0.ɵɵelementEnd();
|
|
1161
1053
|
i0.ɵɵelementStart(16, "span");
|
|
1162
|
-
i0.ɵɵelement(17, "i",
|
|
1054
|
+
i0.ɵɵelement(17, "i", 41);
|
|
1163
1055
|
i0.ɵɵtext(18);
|
|
1164
1056
|
i0.ɵɵelementEnd();
|
|
1165
1057
|
i0.ɵɵelementStart(19, "span");
|
|
1166
|
-
i0.ɵɵelement(20, "i",
|
|
1058
|
+
i0.ɵɵelement(20, "i", 91);
|
|
1167
1059
|
i0.ɵɵtext(21);
|
|
1168
1060
|
i0.ɵɵpipe(22, "date");
|
|
1169
1061
|
i0.ɵɵelementEnd()()();
|
|
1170
|
-
i0.ɵɵelement(23, "i",
|
|
1062
|
+
i0.ɵɵelement(23, "i", 129);
|
|
1171
1063
|
i0.ɵɵelementEnd()();
|
|
1172
1064
|
} if (rf & 2) {
|
|
1173
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1065
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1174
1066
|
i0.ɵɵadvance(5);
|
|
1175
1067
|
i0.ɵɵstyleProp("background-color", ctx_r1.getStatusColor() + "20");
|
|
1176
1068
|
i0.ɵɵadvance();
|
|
@@ -1186,8 +1078,8 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_temp
|
|
|
1186
1078
|
i0.ɵɵadvance(3);
|
|
1187
1079
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(22, 9, ctx_r1.parentRun.RunAt, "short"));
|
|
1188
1080
|
} }
|
|
1189
|
-
function
|
|
1190
|
-
i0.ɵɵelementStart(0, "span",
|
|
1081
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Conditional_4_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1082
|
+
i0.ɵɵelementStart(0, "span", 170);
|
|
1191
1083
|
i0.ɵɵtext(1);
|
|
1192
1084
|
i0.ɵɵelementEnd();
|
|
1193
1085
|
} if (rf & 2) {
|
|
@@ -1195,36 +1087,36 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_temp
|
|
|
1195
1087
|
i0.ɵɵadvance();
|
|
1196
1088
|
i0.ɵɵtextInterpolate1("#", childRun_r19.ExecutionOrder);
|
|
1197
1089
|
} }
|
|
1198
|
-
function
|
|
1090
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Conditional_4_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
1199
1091
|
const _r18 = i0.ɵɵgetCurrentView();
|
|
1200
|
-
i0.ɵɵelementStart(0, "div",
|
|
1201
|
-
i0.ɵɵlistener("click", function
|
|
1202
|
-
i0.ɵɵelementStart(1, "div",
|
|
1092
|
+
i0.ɵɵelementStart(0, "div", 169);
|
|
1093
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Conditional_4_For_6_Template_div_click_0_listener() { const childRun_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompt Runs", childRun_r19.ID)); });
|
|
1094
|
+
i0.ɵɵelementStart(1, "div", 161);
|
|
1203
1095
|
i0.ɵɵelement(2, "i");
|
|
1204
1096
|
i0.ɵɵelementEnd();
|
|
1205
|
-
i0.ɵɵelementStart(3, "div",
|
|
1097
|
+
i0.ɵɵelementStart(3, "div", 162)(4, "div", 163);
|
|
1206
1098
|
i0.ɵɵtext(5);
|
|
1207
|
-
i0.ɵɵconditionalCreate(6,
|
|
1208
|
-
i0.ɵɵelementStart(7, "span",
|
|
1099
|
+
i0.ɵɵconditionalCreate(6, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Conditional_4_For_6_Conditional_6_Template, 2, 1, "span", 170);
|
|
1100
|
+
i0.ɵɵelementStart(7, "span", 164);
|
|
1209
1101
|
i0.ɵɵtext(8);
|
|
1210
1102
|
i0.ɵɵelementEnd()();
|
|
1211
|
-
i0.ɵɵelementStart(9, "div",
|
|
1103
|
+
i0.ɵɵelementStart(9, "div", 165)(10, "span", 16);
|
|
1212
1104
|
i0.ɵɵelement(11, "i");
|
|
1213
1105
|
i0.ɵɵtext(12);
|
|
1214
1106
|
i0.ɵɵelementEnd();
|
|
1215
1107
|
i0.ɵɵelementStart(13, "span");
|
|
1216
|
-
i0.ɵɵelement(14, "i",
|
|
1108
|
+
i0.ɵɵelement(14, "i", 88);
|
|
1217
1109
|
i0.ɵɵtext(15);
|
|
1218
1110
|
i0.ɵɵelementEnd();
|
|
1219
1111
|
i0.ɵɵelementStart(16, "span");
|
|
1220
|
-
i0.ɵɵelement(17, "i",
|
|
1112
|
+
i0.ɵɵelement(17, "i", 41);
|
|
1221
1113
|
i0.ɵɵtext(18);
|
|
1222
1114
|
i0.ɵɵelementEnd()()();
|
|
1223
|
-
i0.ɵɵelement(19, "i",
|
|
1115
|
+
i0.ɵɵelement(19, "i", 129);
|
|
1224
1116
|
i0.ɵɵelementEnd();
|
|
1225
1117
|
} if (rf & 2) {
|
|
1226
1118
|
const childRun_r19 = ctx.$implicit;
|
|
1227
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1119
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
1228
1120
|
i0.ɵɵadvance();
|
|
1229
1121
|
i0.ɵɵstyleProp("background-color", ctx_r1.getStatusColor() + "20");
|
|
1230
1122
|
i0.ɵɵadvance();
|
|
@@ -1246,291 +1138,160 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_temp
|
|
|
1246
1138
|
i0.ɵɵadvance(3);
|
|
1247
1139
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatTokens(childRun_r19.TokensUsed));
|
|
1248
1140
|
} }
|
|
1249
|
-
function
|
|
1250
|
-
i0.ɵɵelementStart(0, "div",
|
|
1251
|
-
i0.ɵɵelement(2, "i",
|
|
1141
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
1142
|
+
i0.ɵɵelementStart(0, "div", 158)(1, "h4");
|
|
1143
|
+
i0.ɵɵelement(2, "i", 166);
|
|
1252
1144
|
i0.ɵɵtext(3, " Child Runs");
|
|
1253
1145
|
i0.ɵɵelementEnd();
|
|
1254
|
-
i0.ɵɵelementStart(4, "div",
|
|
1255
|
-
i0.ɵɵrepeaterCreate(5,
|
|
1146
|
+
i0.ɵɵelementStart(4, "div", 167);
|
|
1147
|
+
i0.ɵɵrepeaterCreate(5, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Conditional_4_For_6_Template, 20, 14, "div", 168, _forTrack1);
|
|
1256
1148
|
i0.ɵɵelementEnd()();
|
|
1257
1149
|
} if (rf & 2) {
|
|
1258
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1150
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1259
1151
|
i0.ɵɵadvance(5);
|
|
1260
1152
|
i0.ɵɵrepeater(ctx_r1.childRuns);
|
|
1261
1153
|
} }
|
|
1262
|
-
function
|
|
1263
|
-
i0.ɵɵelementStart(0, "
|
|
1264
|
-
i0.ɵɵ
|
|
1265
|
-
i0.ɵɵ
|
|
1266
|
-
i0.ɵɵ
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
i0.ɵɵadvance();
|
|
1270
|
-
i0.ɵɵconditional(ctx_r1.parentRun ? 1 : -1);
|
|
1271
|
-
i0.ɵɵadvance();
|
|
1272
|
-
i0.ɵɵconditional(ctx_r1.childRuns.length > 0 ? 2 : -1);
|
|
1273
|
-
} }
|
|
1274
|
-
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_Template(rf, ctx) { if (rf & 1) {
|
|
1275
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item", 31);
|
|
1276
|
-
i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_1_Template, 4, 1, "ng-template", 29)(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Template, 3, 2, "ng-template", 30);
|
|
1277
|
-
i0.ɵɵelementEnd();
|
|
1154
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Template(rf, ctx) { if (rf & 1) {
|
|
1155
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 46);
|
|
1156
|
+
i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_ng_template_1_Template, 4, 1, "ng-template", 28);
|
|
1157
|
+
i0.ɵɵelementStart(2, "div", 29);
|
|
1158
|
+
i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Conditional_3_Template, 24, 12, "div", 157);
|
|
1159
|
+
i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Conditional_4_Template, 7, 0, "div", 158);
|
|
1160
|
+
i0.ɵɵelementEnd()();
|
|
1278
1161
|
} if (rf & 2) {
|
|
1279
1162
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1280
|
-
i0.ɵɵproperty("
|
|
1163
|
+
i0.ɵɵproperty("Expanded", ctx_r1.hierarchyExpanded);
|
|
1164
|
+
i0.ɵɵadvance(3);
|
|
1165
|
+
i0.ɵɵconditional(ctx_r1.parentRun ? 3 : -1);
|
|
1166
|
+
i0.ɵɵadvance();
|
|
1167
|
+
i0.ɵɵconditional(ctx_r1.childRuns.length > 0 ? 4 : -1);
|
|
1281
1168
|
} }
|
|
1282
|
-
function
|
|
1283
|
-
i0.ɵɵelementStart(0, "span",
|
|
1284
|
-
i0.ɵɵelement(1, "i",
|
|
1169
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_90_Template(rf, ctx) { if (rf & 1) {
|
|
1170
|
+
i0.ɵɵelementStart(0, "span", 92);
|
|
1171
|
+
i0.ɵɵelement(1, "i", 59);
|
|
1285
1172
|
i0.ɵɵtext(2, " Additional Details ");
|
|
1286
1173
|
i0.ɵɵelementEnd();
|
|
1287
1174
|
} }
|
|
1288
|
-
function
|
|
1175
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_93_Template(rf, ctx) { if (rf & 1) {
|
|
1289
1176
|
const _r20 = i0.ɵɵgetCurrentView();
|
|
1290
|
-
i0.ɵɵelementStart(0, "div",
|
|
1177
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "label");
|
|
1291
1178
|
i0.ɵɵtext(2, "Agent");
|
|
1292
1179
|
i0.ɵɵelementEnd();
|
|
1293
|
-
i0.ɵɵelementStart(3, "div",
|
|
1294
|
-
i0.ɵɵlistener("click", function
|
|
1295
|
-
i0.ɵɵelement(4, "i",
|
|
1180
|
+
i0.ɵɵelementStart(3, "div", 171);
|
|
1181
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_93_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agents", ctx_r1.record.AgentID)); });
|
|
1182
|
+
i0.ɵɵelement(4, "i", 172);
|
|
1296
1183
|
i0.ɵɵtext(5);
|
|
1297
|
-
i0.ɵɵelement(6, "i",
|
|
1184
|
+
i0.ɵɵelement(6, "i", 129);
|
|
1298
1185
|
i0.ɵɵelementEnd()();
|
|
1299
1186
|
} if (rf & 2) {
|
|
1300
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1187
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1301
1188
|
i0.ɵɵadvance(5);
|
|
1302
1189
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Agent || "Unknown", " ");
|
|
1303
1190
|
} }
|
|
1304
|
-
function
|
|
1305
|
-
i0.ɵɵelementStart(0, "div",
|
|
1191
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_94_Template(rf, ctx) { if (rf & 1) {
|
|
1192
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "label");
|
|
1306
1193
|
i0.ɵɵtext(2, "Run Type");
|
|
1307
1194
|
i0.ɵɵelementEnd();
|
|
1308
|
-
i0.ɵɵelementStart(3, "div",
|
|
1195
|
+
i0.ɵɵelementStart(3, "div", 49);
|
|
1309
1196
|
i0.ɵɵelement(4, "i");
|
|
1310
1197
|
i0.ɵɵtext(5);
|
|
1311
1198
|
i0.ɵɵelementEnd()();
|
|
1312
1199
|
} if (rf & 2) {
|
|
1313
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1200
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1314
1201
|
i0.ɵɵadvance(4);
|
|
1315
1202
|
i0.ɵɵclassMap("fa-solid " + ctx_r1.getRunTypeIcon(ctx_r1.record.RunType));
|
|
1316
1203
|
i0.ɵɵadvance();
|
|
1317
1204
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.RunType, " ");
|
|
1318
1205
|
} }
|
|
1319
|
-
function
|
|
1320
|
-
i0.ɵɵelementStart(0, "div",
|
|
1206
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_95_Template(rf, ctx) { if (rf & 1) {
|
|
1207
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "label");
|
|
1321
1208
|
i0.ɵɵtext(2, "Response Format");
|
|
1322
1209
|
i0.ɵɵelementEnd();
|
|
1323
|
-
i0.ɵɵelementStart(3, "div",
|
|
1324
|
-
i0.ɵɵelement(4, "i",
|
|
1210
|
+
i0.ɵɵelementStart(3, "div", 49);
|
|
1211
|
+
i0.ɵɵelement(4, "i", 90);
|
|
1325
1212
|
i0.ɵɵtext(5);
|
|
1326
1213
|
i0.ɵɵelementEnd()();
|
|
1327
1214
|
} if (rf & 2) {
|
|
1328
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1215
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1329
1216
|
i0.ɵɵadvance(5);
|
|
1330
1217
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.ResponseFormat, " ");
|
|
1331
1218
|
} }
|
|
1332
|
-
function
|
|
1333
|
-
i0.ɵɵelementStart(0, "div",
|
|
1219
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_150_Template(rf, ctx) { if (rf & 1) {
|
|
1220
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "label");
|
|
1334
1221
|
i0.ɵɵtext(2, "Started At");
|
|
1335
1222
|
i0.ɵɵelementEnd();
|
|
1336
|
-
i0.ɵɵelementStart(3, "div",
|
|
1337
|
-
i0.ɵɵelement(4, "i",
|
|
1223
|
+
i0.ɵɵelementStart(3, "div", 49);
|
|
1224
|
+
i0.ɵɵelement(4, "i", 88);
|
|
1338
1225
|
i0.ɵɵtext(5);
|
|
1339
1226
|
i0.ɵɵpipe(6, "date");
|
|
1340
1227
|
i0.ɵɵelementEnd()();
|
|
1341
1228
|
} if (rf & 2) {
|
|
1342
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1229
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1343
1230
|
i0.ɵɵadvance(5);
|
|
1344
1231
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(6, 1, ctx_r1.record.RunAt, "medium"), " ");
|
|
1345
1232
|
} }
|
|
1346
|
-
function
|
|
1347
|
-
i0.ɵɵelementStart(0, "div",
|
|
1233
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_151_Template(rf, ctx) { if (rf & 1) {
|
|
1234
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "label");
|
|
1348
1235
|
i0.ɵɵtext(2, "Completed At");
|
|
1349
1236
|
i0.ɵɵelementEnd();
|
|
1350
|
-
i0.ɵɵelementStart(3, "div",
|
|
1351
|
-
i0.ɵɵelement(4, "i",
|
|
1237
|
+
i0.ɵɵelementStart(3, "div", 49);
|
|
1238
|
+
i0.ɵɵelement(4, "i", 173);
|
|
1352
1239
|
i0.ɵɵtext(5);
|
|
1353
1240
|
i0.ɵɵpipe(6, "date");
|
|
1354
1241
|
i0.ɵɵelementEnd()();
|
|
1355
1242
|
} if (rf & 2) {
|
|
1356
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1243
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1357
1244
|
i0.ɵɵadvance(5);
|
|
1358
1245
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(6, 1, ctx_r1.record.CompletedAt, "medium"), " ");
|
|
1359
1246
|
} }
|
|
1360
|
-
function
|
|
1361
|
-
i0.ɵɵelementStart(0, "
|
|
1362
|
-
i0.ɵɵ
|
|
1363
|
-
i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_3_Template, 6, 3, "div", 162);
|
|
1364
|
-
i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_4_Template, 6, 1, "div", 162);
|
|
1365
|
-
i0.ɵɵelementStart(5, "div", 162)(6, "label");
|
|
1366
|
-
i0.ɵɵtext(7, "Temperature");
|
|
1367
|
-
i0.ɵɵelementEnd();
|
|
1368
|
-
i0.ɵɵelementStart(8, "div", 163);
|
|
1369
|
-
i0.ɵɵelement(9, "i", 58);
|
|
1370
|
-
i0.ɵɵtext(10);
|
|
1371
|
-
i0.ɵɵelementEnd()();
|
|
1372
|
-
i0.ɵɵelementStart(11, "div", 162)(12, "label");
|
|
1373
|
-
i0.ɵɵtext(13, "Top P");
|
|
1374
|
-
i0.ɵɵelementEnd();
|
|
1375
|
-
i0.ɵɵelementStart(14, "div", 163);
|
|
1376
|
-
i0.ɵɵelement(15, "i", 59);
|
|
1377
|
-
i0.ɵɵtext(16);
|
|
1378
|
-
i0.ɵɵelementEnd()();
|
|
1379
|
-
i0.ɵɵelementStart(17, "div", 162)(18, "label");
|
|
1380
|
-
i0.ɵɵtext(19, "Top K");
|
|
1381
|
-
i0.ɵɵelementEnd();
|
|
1382
|
-
i0.ɵɵelementStart(20, "div", 163);
|
|
1383
|
-
i0.ɵɵelement(21, "i", 60);
|
|
1384
|
-
i0.ɵɵtext(22);
|
|
1385
|
-
i0.ɵɵelementEnd()();
|
|
1386
|
-
i0.ɵɵelementStart(23, "div", 162)(24, "label");
|
|
1387
|
-
i0.ɵɵtext(25, "Min P");
|
|
1388
|
-
i0.ɵɵelementEnd();
|
|
1389
|
-
i0.ɵɵelementStart(26, "div", 163);
|
|
1390
|
-
i0.ɵɵelement(27, "i", 164);
|
|
1391
|
-
i0.ɵɵtext(28);
|
|
1392
|
-
i0.ɵɵelementEnd()();
|
|
1393
|
-
i0.ɵɵelementStart(29, "div", 162)(30, "label");
|
|
1394
|
-
i0.ɵɵtext(31, "Frequency Penalty");
|
|
1395
|
-
i0.ɵɵelementEnd();
|
|
1396
|
-
i0.ɵɵelementStart(32, "div", 163);
|
|
1397
|
-
i0.ɵɵelement(33, "i", 131);
|
|
1398
|
-
i0.ɵɵtext(34);
|
|
1399
|
-
i0.ɵɵelementEnd()();
|
|
1400
|
-
i0.ɵɵelementStart(35, "div", 162)(36, "label");
|
|
1401
|
-
i0.ɵɵtext(37, "Presence Penalty");
|
|
1402
|
-
i0.ɵɵelementEnd();
|
|
1403
|
-
i0.ɵɵelementStart(38, "div", 163);
|
|
1404
|
-
i0.ɵɵelement(39, "i", 165);
|
|
1405
|
-
i0.ɵɵtext(40);
|
|
1406
|
-
i0.ɵɵelementEnd()();
|
|
1407
|
-
i0.ɵɵelementStart(41, "div", 162)(42, "label");
|
|
1408
|
-
i0.ɵɵtext(43, "Seed");
|
|
1409
|
-
i0.ɵɵelementEnd();
|
|
1410
|
-
i0.ɵɵelementStart(44, "div", 163);
|
|
1411
|
-
i0.ɵɵelement(45, "i", 166);
|
|
1412
|
-
i0.ɵɵtext(46);
|
|
1413
|
-
i0.ɵɵelementEnd()();
|
|
1414
|
-
i0.ɵɵelementStart(47, "div", 162)(48, "label");
|
|
1415
|
-
i0.ɵɵtext(49, "Stop Sequences");
|
|
1416
|
-
i0.ɵɵelementEnd();
|
|
1417
|
-
i0.ɵɵelementStart(50, "div", 163);
|
|
1418
|
-
i0.ɵɵelement(51, "i", 167);
|
|
1419
|
-
i0.ɵɵtext(52);
|
|
1420
|
-
i0.ɵɵelementEnd()();
|
|
1421
|
-
i0.ɵɵelementStart(53, "div", 162)(54, "label");
|
|
1422
|
-
i0.ɵɵtext(55, "Assistant Prefill");
|
|
1423
|
-
i0.ɵɵelementEnd();
|
|
1424
|
-
i0.ɵɵelementStart(56, "div", 163);
|
|
1425
|
-
i0.ɵɵelement(57, "i", 168);
|
|
1426
|
-
i0.ɵɵtext(58);
|
|
1427
|
-
i0.ɵɵelementEnd()();
|
|
1428
|
-
i0.ɵɵconditionalCreate(59, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_59_Template, 7, 4, "div", 162);
|
|
1429
|
-
i0.ɵɵconditionalCreate(60, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_60_Template, 7, 4, "div", 162);
|
|
1430
|
-
i0.ɵɵelementEnd()();
|
|
1431
|
-
} if (rf & 2) {
|
|
1432
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1433
|
-
i0.ɵɵadvance(2);
|
|
1434
|
-
i0.ɵɵconditional(ctx_r1.record.AgentID ? 2 : -1);
|
|
1435
|
-
i0.ɵɵadvance();
|
|
1436
|
-
i0.ɵɵconditional(ctx_r1.record.RunType ? 3 : -1);
|
|
1437
|
-
i0.ɵɵadvance();
|
|
1438
|
-
i0.ɵɵconditional(ctx_r1.record.ResponseFormat ? 4 : -1);
|
|
1439
|
-
i0.ɵɵadvance(4);
|
|
1440
|
-
i0.ɵɵclassProp("null-value", ctx_r1.record.Temperature === null || ctx_r1.record.Temperature === undefined);
|
|
1441
|
-
i0.ɵɵadvance(2);
|
|
1442
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Temperature !== null && ctx_r1.record.Temperature !== undefined ? ctx_r1.record.Temperature : "\u2014", " ");
|
|
1443
|
-
i0.ɵɵadvance(4);
|
|
1444
|
-
i0.ɵɵclassProp("null-value", ctx_r1.record.TopP === null || ctx_r1.record.TopP === undefined);
|
|
1445
|
-
i0.ɵɵadvance(2);
|
|
1446
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.TopP !== null && ctx_r1.record.TopP !== undefined ? ctx_r1.record.TopP : "\u2014", " ");
|
|
1447
|
-
i0.ɵɵadvance(4);
|
|
1448
|
-
i0.ɵɵclassProp("null-value", ctx_r1.record.TopK === null || ctx_r1.record.TopK === undefined);
|
|
1449
|
-
i0.ɵɵadvance(2);
|
|
1450
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.TopK !== null && ctx_r1.record.TopK !== undefined ? ctx_r1.record.TopK : "\u2014", " ");
|
|
1451
|
-
i0.ɵɵadvance(4);
|
|
1452
|
-
i0.ɵɵclassProp("null-value", ctx_r1.record.MinP === null || ctx_r1.record.MinP === undefined);
|
|
1453
|
-
i0.ɵɵadvance(2);
|
|
1454
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.MinP !== null && ctx_r1.record.MinP !== undefined ? ctx_r1.record.MinP : "\u2014", " ");
|
|
1455
|
-
i0.ɵɵadvance(4);
|
|
1456
|
-
i0.ɵɵclassProp("null-value", ctx_r1.record.FrequencyPenalty === null || ctx_r1.record.FrequencyPenalty === undefined);
|
|
1457
|
-
i0.ɵɵadvance(2);
|
|
1458
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.FrequencyPenalty !== null && ctx_r1.record.FrequencyPenalty !== undefined ? ctx_r1.record.FrequencyPenalty : "\u2014", " ");
|
|
1459
|
-
i0.ɵɵadvance(4);
|
|
1460
|
-
i0.ɵɵclassProp("null-value", ctx_r1.record.PresencePenalty === null || ctx_r1.record.PresencePenalty === undefined);
|
|
1461
|
-
i0.ɵɵadvance(2);
|
|
1462
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.PresencePenalty !== null && ctx_r1.record.PresencePenalty !== undefined ? ctx_r1.record.PresencePenalty : "\u2014", " ");
|
|
1463
|
-
i0.ɵɵadvance(4);
|
|
1464
|
-
i0.ɵɵclassProp("null-value", ctx_r1.record.Seed === null || ctx_r1.record.Seed === undefined);
|
|
1465
|
-
i0.ɵɵadvance(2);
|
|
1466
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Seed !== null && ctx_r1.record.Seed !== undefined ? ctx_r1.record.Seed : "\u2014", " ");
|
|
1467
|
-
i0.ɵɵadvance(4);
|
|
1468
|
-
i0.ɵɵclassProp("null-value", !ctx_r1.record.StopSequences);
|
|
1469
|
-
i0.ɵɵadvance(2);
|
|
1470
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.StopSequences || "\u2014", " ");
|
|
1471
|
-
i0.ɵɵadvance(4);
|
|
1472
|
-
i0.ɵɵclassProp("null-value", !ctx_r1.record.AssistantPrefill);
|
|
1473
|
-
i0.ɵɵadvance(2);
|
|
1474
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.AssistantPrefill || "\u2014", " ");
|
|
1475
|
-
i0.ɵɵadvance();
|
|
1476
|
-
i0.ɵɵconditional(ctx_r1.record.RunAt ? 59 : -1);
|
|
1477
|
-
i0.ɵɵadvance();
|
|
1478
|
-
i0.ɵɵconditional(ctx_r1.record.CompletedAt ? 60 : -1);
|
|
1479
|
-
} }
|
|
1480
|
-
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
1481
|
-
i0.ɵɵelementStart(0, "span", 64);
|
|
1482
|
-
i0.ɵɵelement(1, "i", 46);
|
|
1247
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_152_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
1248
|
+
i0.ɵɵelementStart(0, "span", 92);
|
|
1249
|
+
i0.ɵɵelement(1, "i", 79);
|
|
1483
1250
|
i0.ɵɵtext(2, " Model Specific Response Details ");
|
|
1484
|
-
i0.ɵɵelementStart(3, "span",
|
|
1251
|
+
i0.ɵɵelementStart(3, "span", 94);
|
|
1485
1252
|
i0.ɵɵtext(4, "JSON");
|
|
1486
1253
|
i0.ɵɵelementEnd()();
|
|
1487
1254
|
} }
|
|
1488
|
-
function
|
|
1489
|
-
const _r22 = i0.ɵɵgetCurrentView();
|
|
1490
|
-
i0.ɵɵelementStart(0, "div", 67)(1, "div", 75)(2, "div", 76)(3, "button", 77);
|
|
1491
|
-
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_2_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedModelSpecificResponseDetails, "Model Specific Response Details")); });
|
|
1492
|
-
i0.ɵɵelement(4, "i", 78);
|
|
1493
|
-
i0.ɵɵtext(5, " Copy ");
|
|
1494
|
-
i0.ɵɵelementEnd();
|
|
1495
|
-
i0.ɵɵelementStart(6, "button", 79);
|
|
1496
|
-
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_2_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedModelSpecificResponseDetails, "json", "Model Specific Response Details")); });
|
|
1497
|
-
i0.ɵɵelement(7, "i", 80);
|
|
1498
|
-
i0.ɵɵelementEnd()();
|
|
1499
|
-
i0.ɵɵelementStart(8, "mj-code-editor", 172);
|
|
1500
|
-
i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_2_Template_mj_code_editor_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedModelSpecificResponseDetails, $event) || (ctx_r1.formattedModelSpecificResponseDetails = $event); return i0.ɵɵresetView($event); });
|
|
1501
|
-
i0.ɵɵelementEnd()()();
|
|
1502
|
-
} if (rf & 2) {
|
|
1503
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1504
|
-
i0.ɵɵadvance(8);
|
|
1505
|
-
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedModelSpecificResponseDetails);
|
|
1506
|
-
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
1507
|
-
} }
|
|
1508
|
-
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_Template(rf, ctx) { if (rf & 1) {
|
|
1255
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_152_Template(rf, ctx) { if (rf & 1) {
|
|
1509
1256
|
const _r21 = i0.ɵɵgetCurrentView();
|
|
1510
|
-
i0.ɵɵelementStart(0, "
|
|
1511
|
-
i0.ɵɵlistener("
|
|
1512
|
-
i0.ɵɵtemplate(1,
|
|
1513
|
-
i0.ɵɵ
|
|
1257
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 27);
|
|
1258
|
+
i0.ɵɵlistener("ExpandedChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_152_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onModelSpecificPanelToggle($event)); });
|
|
1259
|
+
i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_152_ng_template_1_Template, 5, 0, "ng-template", 28);
|
|
1260
|
+
i0.ɵɵelementStart(2, "div", 29)(3, "div", 33)(4, "div", 99)(5, "button", 100);
|
|
1261
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_152_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedModelSpecificResponseDetails, "Model Specific Response Details")); });
|
|
1262
|
+
i0.ɵɵelement(6, "i", 101);
|
|
1263
|
+
i0.ɵɵtext(7, " Copy ");
|
|
1264
|
+
i0.ɵɵelementEnd();
|
|
1265
|
+
i0.ɵɵelementStart(8, "button", 102);
|
|
1266
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_152_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedModelSpecificResponseDetails, "json", "Model Specific Response Details")); });
|
|
1267
|
+
i0.ɵɵelement(9, "i", 103);
|
|
1268
|
+
i0.ɵɵelementEnd()();
|
|
1269
|
+
i0.ɵɵelementStart(10, "mj-code-editor", 174);
|
|
1270
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_152_Template_mj_code_editor_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedModelSpecificResponseDetails, $event) || (ctx_r1.formattedModelSpecificResponseDetails = $event); return i0.ɵɵresetView($event); });
|
|
1271
|
+
i0.ɵɵelementEnd()()()();
|
|
1514
1272
|
} if (rf & 2) {
|
|
1515
1273
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1516
|
-
i0.ɵɵproperty("
|
|
1274
|
+
i0.ɵɵproperty("Expanded", ctx_r1.modelSpecificExpanded);
|
|
1275
|
+
i0.ɵɵadvance(10);
|
|
1276
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedModelSpecificResponseDetails);
|
|
1277
|
+
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
1517
1278
|
} }
|
|
1518
|
-
function
|
|
1519
|
-
i0.ɵɵelementStart(0, "span",
|
|
1279
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_154_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1280
|
+
i0.ɵɵelementStart(0, "span", 141);
|
|
1520
1281
|
i0.ɵɵtext(1, "Cached");
|
|
1521
1282
|
i0.ɵɵelementEnd();
|
|
1522
1283
|
} }
|
|
1523
|
-
function
|
|
1524
|
-
i0.ɵɵelementStart(0, "span",
|
|
1284
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_154_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
1285
|
+
i0.ɵɵelementStart(0, "span", 141);
|
|
1525
1286
|
i0.ɵɵtext(1, "Selected");
|
|
1526
1287
|
i0.ɵɵelementEnd();
|
|
1527
1288
|
} }
|
|
1528
|
-
function
|
|
1529
|
-
i0.ɵɵelementStart(0, "span",
|
|
1530
|
-
i0.ɵɵelement(1, "i",
|
|
1289
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_154_Template(rf, ctx) { if (rf & 1) {
|
|
1290
|
+
i0.ɵɵelementStart(0, "span", 92);
|
|
1291
|
+
i0.ɵɵelement(1, "i", 79);
|
|
1531
1292
|
i0.ɵɵtext(2, " Model Selection & Performance ");
|
|
1532
|
-
i0.ɵɵconditionalCreate(3,
|
|
1533
|
-
i0.ɵɵconditionalCreate(4,
|
|
1293
|
+
i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_154_Conditional_3_Template, 2, 0, "span", 141);
|
|
1294
|
+
i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_154_Conditional_4_Template, 2, 0, "span", 141);
|
|
1534
1295
|
i0.ɵɵelementEnd();
|
|
1535
1296
|
} if (rf & 2) {
|
|
1536
1297
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -1539,214 +1300,125 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_50_Templat
|
|
|
1539
1300
|
i0.ɵɵadvance();
|
|
1540
1301
|
i0.ɵɵconditional(ctx_r1.record.WasSelectedResult ? 4 : -1);
|
|
1541
1302
|
} }
|
|
1542
|
-
function
|
|
1543
|
-
i0.ɵɵelementStart(0, "div",
|
|
1303
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_181_Template(rf, ctx) { if (rf & 1) {
|
|
1304
|
+
i0.ɵɵelementStart(0, "div", 62)(1, "label");
|
|
1544
1305
|
i0.ɵɵtext(2, "Cache Key");
|
|
1545
1306
|
i0.ɵɵelementEnd();
|
|
1546
|
-
i0.ɵɵelementStart(3, "div",
|
|
1547
|
-
i0.ɵɵelement(4, "i",
|
|
1307
|
+
i0.ɵɵelementStart(3, "div", 49);
|
|
1308
|
+
i0.ɵɵelement(4, "i", 175);
|
|
1548
1309
|
i0.ɵɵelementStart(5, "code");
|
|
1549
1310
|
i0.ɵɵtext(6);
|
|
1550
1311
|
i0.ɵɵelementEnd()()();
|
|
1551
1312
|
} if (rf & 2) {
|
|
1552
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1313
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1553
1314
|
i0.ɵɵadvance(6);
|
|
1554
1315
|
i0.ɵɵtextInterpolate(ctx_r1.record.CacheKey);
|
|
1555
1316
|
} }
|
|
1556
|
-
function
|
|
1557
|
-
const
|
|
1558
|
-
i0.ɵɵelementStart(0, "div",
|
|
1317
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_182_Template(rf, ctx) { if (rf & 1) {
|
|
1318
|
+
const _r22 = i0.ɵɵgetCurrentView();
|
|
1319
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "label");
|
|
1559
1320
|
i0.ɵɵtext(2, "Judge Prompt");
|
|
1560
1321
|
i0.ɵɵelementEnd();
|
|
1561
|
-
i0.ɵɵelementStart(3, "div",
|
|
1562
|
-
i0.ɵɵlistener("click", function
|
|
1563
|
-
i0.ɵɵelement(4, "i",
|
|
1322
|
+
i0.ɵɵelementStart(3, "div", 176);
|
|
1323
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_182_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", ctx_r1.record.JudgeID)); });
|
|
1324
|
+
i0.ɵɵelement(4, "i", 177);
|
|
1564
1325
|
i0.ɵɵtext(5);
|
|
1565
|
-
i0.ɵɵelement(6, "i",
|
|
1326
|
+
i0.ɵɵelement(6, "i", 129);
|
|
1566
1327
|
i0.ɵɵelementEnd()();
|
|
1567
1328
|
} if (rf & 2) {
|
|
1568
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1329
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1569
1330
|
i0.ɵɵadvance(5);
|
|
1570
1331
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Judge || "Unknown", " ");
|
|
1571
1332
|
} }
|
|
1572
|
-
function
|
|
1573
|
-
i0.ɵɵelementStart(0, "div",
|
|
1333
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_183_Template(rf, ctx) { if (rf & 1) {
|
|
1334
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "label");
|
|
1574
1335
|
i0.ɵɵtext(2, "Judge Score");
|
|
1575
1336
|
i0.ɵɵelementEnd();
|
|
1576
|
-
i0.ɵɵelementStart(3, "div",
|
|
1577
|
-
i0.ɵɵelement(4, "i",
|
|
1337
|
+
i0.ɵɵelementStart(3, "div", 49);
|
|
1338
|
+
i0.ɵɵelement(4, "i", 178);
|
|
1578
1339
|
i0.ɵɵtext(5);
|
|
1579
1340
|
i0.ɵɵelementEnd()();
|
|
1580
1341
|
} if (rf & 2) {
|
|
1581
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1342
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1582
1343
|
i0.ɵɵadvance(5);
|
|
1583
1344
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.JudgeScore, " ");
|
|
1584
1345
|
} }
|
|
1585
|
-
function
|
|
1586
|
-
i0.ɵɵelementStart(0, "div",
|
|
1346
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_196_Template(rf, ctx) { if (rf & 1) {
|
|
1347
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "label");
|
|
1587
1348
|
i0.ɵɵtext(2, "First Token Time");
|
|
1588
1349
|
i0.ɵɵelementEnd();
|
|
1589
|
-
i0.ɵɵelementStart(3, "div",
|
|
1590
|
-
i0.ɵɵelement(4, "i",
|
|
1350
|
+
i0.ɵɵelementStart(3, "div", 49);
|
|
1351
|
+
i0.ɵɵelement(4, "i", 179);
|
|
1591
1352
|
i0.ɵɵtext(5);
|
|
1592
1353
|
i0.ɵɵelementEnd()();
|
|
1593
1354
|
} if (rf & 2) {
|
|
1594
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1355
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1595
1356
|
i0.ɵɵadvance(5);
|
|
1596
1357
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.FirstTokenTime, " ms ");
|
|
1597
1358
|
} }
|
|
1598
|
-
function
|
|
1599
|
-
i0.ɵɵelementStart(0, "div",
|
|
1359
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_197_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1360
|
+
i0.ɵɵelementStart(0, "div", 62)(1, "label");
|
|
1600
1361
|
i0.ɵɵtext(2, "Cancellation Reason");
|
|
1601
1362
|
i0.ɵɵelementEnd();
|
|
1602
|
-
i0.ɵɵelementStart(3, "div",
|
|
1603
|
-
i0.ɵɵelement(4, "i",
|
|
1363
|
+
i0.ɵɵelementStart(3, "div", 49);
|
|
1364
|
+
i0.ɵɵelement(4, "i", 182);
|
|
1604
1365
|
i0.ɵɵtext(5);
|
|
1605
1366
|
i0.ɵɵelementEnd()();
|
|
1606
1367
|
} if (rf & 2) {
|
|
1607
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1368
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1608
1369
|
i0.ɵɵadvance(5);
|
|
1609
1370
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.CancellationReason, " ");
|
|
1610
1371
|
} }
|
|
1611
|
-
function
|
|
1612
|
-
i0.ɵɵelementStart(0, "div",
|
|
1372
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_197_Template(rf, ctx) { if (rf & 1) {
|
|
1373
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "label");
|
|
1613
1374
|
i0.ɵɵtext(2, "Cancelled");
|
|
1614
1375
|
i0.ɵɵelementEnd();
|
|
1615
|
-
i0.ɵɵelementStart(3, "div",
|
|
1616
|
-
i0.ɵɵelement(4, "i",
|
|
1376
|
+
i0.ɵɵelementStart(3, "div", 180);
|
|
1377
|
+
i0.ɵɵelement(4, "i", 181);
|
|
1617
1378
|
i0.ɵɵtext(5, " Yes ");
|
|
1618
1379
|
i0.ɵɵelementEnd()();
|
|
1619
|
-
i0.ɵɵconditionalCreate(6,
|
|
1380
|
+
i0.ɵɵconditionalCreate(6, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_197_Conditional_6_Template, 6, 1, "div", 62);
|
|
1620
1381
|
} if (rf & 2) {
|
|
1621
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1382
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1622
1383
|
i0.ɵɵadvance(6);
|
|
1623
1384
|
i0.ɵɵconditional(ctx_r1.record.CancellationReason ? 6 : -1);
|
|
1624
1385
|
} }
|
|
1625
|
-
function
|
|
1626
|
-
const
|
|
1627
|
-
i0.ɵɵelementStart(0, "div",
|
|
1386
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_198_Template(rf, ctx) { if (rf & 1) {
|
|
1387
|
+
const _r23 = i0.ɵɵgetCurrentView();
|
|
1388
|
+
i0.ɵɵelementStart(0, "div", 63)(1, "div", 99)(2, "h4", 122);
|
|
1628
1389
|
i0.ɵɵtext(3, "Model Selection Details");
|
|
1629
1390
|
i0.ɵɵelementEnd();
|
|
1630
|
-
i0.ɵɵelementStart(4, "button",
|
|
1631
|
-
i0.ɵɵlistener("click", function
|
|
1632
|
-
i0.ɵɵelement(5, "i",
|
|
1391
|
+
i0.ɵɵelementStart(4, "button", 102);
|
|
1392
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_198_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedModelSelection, "json", "Model Selection")); });
|
|
1393
|
+
i0.ɵɵelement(5, "i", 103);
|
|
1633
1394
|
i0.ɵɵelementEnd()();
|
|
1634
|
-
i0.ɵɵelementStart(6, "div",
|
|
1635
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
1395
|
+
i0.ɵɵelementStart(6, "div", 154)(7, "mj-code-editor", 183);
|
|
1396
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_198_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedModelSelection, $event) || (ctx_r1.formattedModelSelection = $event); return i0.ɵɵresetView($event); });
|
|
1636
1397
|
i0.ɵɵelementEnd()()();
|
|
1637
1398
|
} if (rf & 2) {
|
|
1638
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1399
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1639
1400
|
i0.ɵɵadvance(7);
|
|
1640
1401
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedModelSelection);
|
|
1641
1402
|
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
1642
1403
|
} }
|
|
1643
|
-
function
|
|
1644
|
-
const
|
|
1645
|
-
i0.ɵɵelementStart(0, "div",
|
|
1404
|
+
function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_199_Template(rf, ctx) { if (rf & 1) {
|
|
1405
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
1406
|
+
i0.ɵɵelementStart(0, "div", 64)(1, "div", 99)(2, "h4", 122);
|
|
1646
1407
|
i0.ɵɵtext(3, "Error Details");
|
|
1647
1408
|
i0.ɵɵelementEnd();
|
|
1648
|
-
i0.ɵɵelementStart(4, "button",
|
|
1649
|
-
i0.ɵɵlistener("click", function
|
|
1650
|
-
i0.ɵɵelement(5, "i",
|
|
1409
|
+
i0.ɵɵelementStart(4, "button", 102);
|
|
1410
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_199_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedErrorDetails, "json", "Error Details")); });
|
|
1411
|
+
i0.ɵɵelement(5, "i", 103);
|
|
1651
1412
|
i0.ɵɵelementEnd()();
|
|
1652
|
-
i0.ɵɵelementStart(6, "div",
|
|
1653
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
1413
|
+
i0.ɵɵelementStart(6, "div", 154)(7, "mj-code-editor", 184);
|
|
1414
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_199_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedErrorDetails, $event) || (ctx_r1.formattedErrorDetails = $event); return i0.ɵɵresetView($event); });
|
|
1654
1415
|
i0.ɵɵelementEnd()()();
|
|
1655
1416
|
} if (rf & 2) {
|
|
1656
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
1417
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1657
1418
|
i0.ɵɵadvance(7);
|
|
1658
1419
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedErrorDetails);
|
|
1659
1420
|
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
1660
1421
|
} }
|
|
1661
|
-
function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Template(rf, ctx) { if (rf & 1) {
|
|
1662
|
-
i0.ɵɵelementStart(0, "div", 67)(1, "div", 161)(2, "div", 162)(3, "label");
|
|
1663
|
-
i0.ɵɵtext(4, "Status");
|
|
1664
|
-
i0.ɵɵelementEnd();
|
|
1665
|
-
i0.ɵɵelementStart(5, "div", 163);
|
|
1666
|
-
i0.ɵɵelement(6, "i", 160);
|
|
1667
|
-
i0.ɵɵtext(7);
|
|
1668
|
-
i0.ɵɵelementEnd()();
|
|
1669
|
-
i0.ɵɵelementStart(8, "div", 162)(9, "label");
|
|
1670
|
-
i0.ɵɵtext(10, "Selection Strategy");
|
|
1671
|
-
i0.ɵɵelementEnd();
|
|
1672
|
-
i0.ɵɵelementStart(11, "div", 163);
|
|
1673
|
-
i0.ɵɵelement(12, "i", 173);
|
|
1674
|
-
i0.ɵɵtext(13);
|
|
1675
|
-
i0.ɵɵelementEnd()();
|
|
1676
|
-
i0.ɵɵelementStart(14, "div", 162)(15, "label");
|
|
1677
|
-
i0.ɵɵtext(16, "Model Power Rank");
|
|
1678
|
-
i0.ɵɵelementEnd();
|
|
1679
|
-
i0.ɵɵelementStart(17, "div", 163);
|
|
1680
|
-
i0.ɵɵelement(18, "i", 174);
|
|
1681
|
-
i0.ɵɵtext(19);
|
|
1682
|
-
i0.ɵɵelementEnd()();
|
|
1683
|
-
i0.ɵɵelementStart(20, "div", 162)(21, "label");
|
|
1684
|
-
i0.ɵɵtext(22, "Cache Hit");
|
|
1685
|
-
i0.ɵɵelementEnd();
|
|
1686
|
-
i0.ɵɵelementStart(23, "div", 163);
|
|
1687
|
-
i0.ɵɵelement(24, "i");
|
|
1688
|
-
i0.ɵɵtext(25);
|
|
1689
|
-
i0.ɵɵelementEnd()();
|
|
1690
|
-
i0.ɵɵconditionalCreate(26, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_26_Template, 7, 1, "div", 175);
|
|
1691
|
-
i0.ɵɵconditionalCreate(27, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_27_Template, 7, 1, "div", 162);
|
|
1692
|
-
i0.ɵɵconditionalCreate(28, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_28_Template, 6, 1, "div", 162);
|
|
1693
|
-
i0.ɵɵelementStart(29, "div", 162)(30, "label");
|
|
1694
|
-
i0.ɵɵtext(31, "Was Selected Result");
|
|
1695
|
-
i0.ɵɵelementEnd();
|
|
1696
|
-
i0.ɵɵelementStart(32, "div", 163);
|
|
1697
|
-
i0.ɵɵelement(33, "i");
|
|
1698
|
-
i0.ɵɵtext(34);
|
|
1699
|
-
i0.ɵɵelementEnd()();
|
|
1700
|
-
i0.ɵɵelementStart(35, "div", 162)(36, "label");
|
|
1701
|
-
i0.ɵɵtext(37, "Streaming Enabled");
|
|
1702
|
-
i0.ɵɵelementEnd();
|
|
1703
|
-
i0.ɵɵelementStart(38, "div", 163);
|
|
1704
|
-
i0.ɵɵelement(39, "i");
|
|
1705
|
-
i0.ɵɵtext(40);
|
|
1706
|
-
i0.ɵɵelementEnd()();
|
|
1707
|
-
i0.ɵɵconditionalCreate(41, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_41_Template, 6, 1, "div", 162);
|
|
1708
|
-
i0.ɵɵconditionalCreate(42, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_42_Template, 7, 1);
|
|
1709
|
-
i0.ɵɵelementEnd();
|
|
1710
|
-
i0.ɵɵconditionalCreate(43, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_43_Template, 8, 4, "div", 176);
|
|
1711
|
-
i0.ɵɵconditionalCreate(44, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_44_Template, 8, 4, "div", 177);
|
|
1712
|
-
i0.ɵɵelementEnd();
|
|
1713
|
-
} if (rf & 2) {
|
|
1714
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1715
|
-
i0.ɵɵadvance(7);
|
|
1716
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Status || "Unknown", " ");
|
|
1717
|
-
i0.ɵɵadvance(6);
|
|
1718
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.SelectionStrategy || "\u2014", " ");
|
|
1719
|
-
i0.ɵɵadvance(4);
|
|
1720
|
-
i0.ɵɵclassProp("null-value", ctx_r1.record.ModelPowerRank === null);
|
|
1721
|
-
i0.ɵɵadvance(2);
|
|
1722
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.ModelPowerRank !== null ? ctx_r1.record.ModelPowerRank : "\u2014", " ");
|
|
1723
|
-
i0.ɵɵadvance(5);
|
|
1724
|
-
i0.ɵɵclassMap(ctx_r1.record.CacheHit ? "fa-solid fa-check-circle" : "fa-solid fa-times-circle");
|
|
1725
|
-
i0.ɵɵadvance();
|
|
1726
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.CacheHit ? "Yes" : "No", " ");
|
|
1727
|
-
i0.ɵɵadvance();
|
|
1728
|
-
i0.ɵɵconditional(ctx_r1.record.CacheKey ? 26 : -1);
|
|
1729
|
-
i0.ɵɵadvance();
|
|
1730
|
-
i0.ɵɵconditional(ctx_r1.record.JudgeID ? 27 : -1);
|
|
1731
|
-
i0.ɵɵadvance();
|
|
1732
|
-
i0.ɵɵconditional(ctx_r1.record.JudgeScore !== null ? 28 : -1);
|
|
1733
|
-
i0.ɵɵadvance(5);
|
|
1734
|
-
i0.ɵɵclassMap(ctx_r1.record.WasSelectedResult ? "fa-solid fa-trophy" : "fa-solid fa-times");
|
|
1735
|
-
i0.ɵɵadvance();
|
|
1736
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.WasSelectedResult ? "Yes" : "No", " ");
|
|
1737
|
-
i0.ɵɵadvance(5);
|
|
1738
|
-
i0.ɵɵclassMap(ctx_r1.record.StreamingEnabled ? "fa-solid fa-stream" : "fa-solid fa-ban");
|
|
1739
|
-
i0.ɵɵadvance();
|
|
1740
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.StreamingEnabled ? "Yes" : "No", " ");
|
|
1741
|
-
i0.ɵɵadvance();
|
|
1742
|
-
i0.ɵɵconditional(ctx_r1.record.FirstTokenTime !== null ? 41 : -1);
|
|
1743
|
-
i0.ɵɵadvance();
|
|
1744
|
-
i0.ɵɵconditional(ctx_r1.record.Cancelled ? 42 : -1);
|
|
1745
|
-
i0.ɵɵadvance();
|
|
1746
|
-
i0.ɵɵconditional(ctx_r1.record.ModelSelection ? 43 : -1);
|
|
1747
|
-
i0.ɵɵadvance();
|
|
1748
|
-
i0.ɵɵconditional(ctx_r1.record.ErrorDetails ? 44 : -1);
|
|
1749
|
-
} }
|
|
1750
1422
|
function MJAIPromptRunFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
1751
1423
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
1752
1424
|
i0.ɵɵelementStart(0, "form", 2, 0);
|
|
@@ -1781,27 +1453,199 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Template(rf, ctx) { if
|
|
|
1781
1453
|
i0.ɵɵelementEnd()()();
|
|
1782
1454
|
i0.ɵɵconditionalCreate(30, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Template, 37, 10)(31, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Template, 23, 4, "div", 25);
|
|
1783
1455
|
i0.ɵɵelementEnd();
|
|
1784
|
-
i0.ɵɵelementStart(32, "div", 26)(33, "
|
|
1785
|
-
i0.ɵɵlistener("
|
|
1786
|
-
i0.ɵɵtemplate(
|
|
1456
|
+
i0.ɵɵelementStart(32, "div", 26)(33, "mj-accordion-panel", 27);
|
|
1457
|
+
i0.ɵɵlistener("ExpandedChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_mj_accordion_panel_ExpandedChange_33_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputPanelToggle($event)); });
|
|
1458
|
+
i0.ɵɵtemplate(34, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_34_Template, 4, 1, "ng-template", 28);
|
|
1459
|
+
i0.ɵɵelementStart(35, "div", 29);
|
|
1460
|
+
i0.ɵɵconditionalCreate(36, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_36_Template, 23, 9, "div", 30)(37, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_37_Template, 4, 0, "div", 31);
|
|
1461
|
+
i0.ɵɵelementEnd()();
|
|
1462
|
+
i0.ɵɵelementStart(38, "mj-accordion-panel", 27);
|
|
1463
|
+
i0.ɵɵlistener("ExpandedChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_mj_accordion_panel_ExpandedChange_38_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onResultPanelToggle($event)); });
|
|
1464
|
+
i0.ɵɵtemplate(39, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Template, 5, 2, "ng-template", 28);
|
|
1465
|
+
i0.ɵɵelementStart(40, "div", 29);
|
|
1466
|
+
i0.ɵɵconditionalCreate(41, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_Template, 7, 1, "div", 32);
|
|
1467
|
+
i0.ɵɵconditionalCreate(42, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_42_Template, 8, 4, "div", 33)(43, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Template, 5, 1, "div", 31);
|
|
1468
|
+
i0.ɵɵelementEnd()();
|
|
1469
|
+
i0.ɵɵelementStart(44, "mj-accordion-panel", 27);
|
|
1470
|
+
i0.ɵɵlistener("ExpandedChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_mj_accordion_panel_ExpandedChange_44_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onMetricsPanelToggle($event)); });
|
|
1471
|
+
i0.ɵɵtemplate(45, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_45_Template, 3, 0, "ng-template", 28);
|
|
1472
|
+
i0.ɵɵelementStart(46, "div", 29)(47, "div", 34)(48, "div", 35)(49, "div", 36);
|
|
1473
|
+
i0.ɵɵelement(50, "i", 37);
|
|
1474
|
+
i0.ɵɵelementStart(51, "h4");
|
|
1475
|
+
i0.ɵɵtext(52, "Prompt Tokens");
|
|
1476
|
+
i0.ɵɵelementEnd()();
|
|
1477
|
+
i0.ɵɵelementStart(53, "div", 38);
|
|
1478
|
+
i0.ɵɵtext(54);
|
|
1479
|
+
i0.ɵɵelementEnd();
|
|
1480
|
+
i0.ɵɵconditionalCreate(55, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_55_Template, 3, 1, "div", 39);
|
|
1481
|
+
i0.ɵɵelementEnd();
|
|
1482
|
+
i0.ɵɵelementStart(56, "div", 35)(57, "div", 36);
|
|
1483
|
+
i0.ɵɵelement(58, "i", 40);
|
|
1484
|
+
i0.ɵɵelementStart(59, "h4");
|
|
1485
|
+
i0.ɵɵtext(60, "Completion Tokens");
|
|
1486
|
+
i0.ɵɵelementEnd()();
|
|
1487
|
+
i0.ɵɵelementStart(61, "div", 38);
|
|
1488
|
+
i0.ɵɵtext(62);
|
|
1489
|
+
i0.ɵɵelementEnd();
|
|
1490
|
+
i0.ɵɵconditionalCreate(63, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_63_Template, 3, 1, "div", 39);
|
|
1491
|
+
i0.ɵɵelementEnd();
|
|
1492
|
+
i0.ɵɵelementStart(64, "div", 35)(65, "div", 36);
|
|
1493
|
+
i0.ɵɵelement(66, "i", 41);
|
|
1494
|
+
i0.ɵɵelementStart(67, "h4");
|
|
1495
|
+
i0.ɵɵtext(68, "Total Tokens");
|
|
1496
|
+
i0.ɵɵelementEnd()();
|
|
1497
|
+
i0.ɵɵelementStart(69, "div", 38);
|
|
1498
|
+
i0.ɵɵtext(70);
|
|
1499
|
+
i0.ɵɵelementEnd();
|
|
1500
|
+
i0.ɵɵconditionalCreate(71, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_71_Template, 3, 1, "div", 39);
|
|
1501
|
+
i0.ɵɵelementEnd();
|
|
1502
|
+
i0.ɵɵelementStart(72, "div", 35)(73, "div", 36);
|
|
1503
|
+
i0.ɵɵelement(74, "i", 42);
|
|
1504
|
+
i0.ɵɵelementStart(75, "h4");
|
|
1505
|
+
i0.ɵɵtext(76, "Cost");
|
|
1506
|
+
i0.ɵɵelementEnd()();
|
|
1507
|
+
i0.ɵɵelementStart(77, "div", 38);
|
|
1508
|
+
i0.ɵɵtext(78);
|
|
1509
|
+
i0.ɵɵelementEnd();
|
|
1510
|
+
i0.ɵɵconditionalCreate(79, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_79_Template, 3, 1, "div", 39);
|
|
1511
|
+
i0.ɵɵconditionalCreate(80, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_80_Template, 2, 1, "div", 43);
|
|
1512
|
+
i0.ɵɵelementEnd();
|
|
1513
|
+
i0.ɵɵconditionalCreate(81, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_81_Template, 7, 1, "div", 35);
|
|
1514
|
+
i0.ɵɵconditionalCreate(82, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_82_Template, 7, 1, "div", 35);
|
|
1515
|
+
i0.ɵɵconditionalCreate(83, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_83_Template, 7, 1, "div", 35);
|
|
1516
|
+
i0.ɵɵelementEnd();
|
|
1517
|
+
i0.ɵɵelementStart(84, "div", 44);
|
|
1518
|
+
i0.ɵɵconditionalCreate(85, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_85_Template, 5, 1, "div", 45);
|
|
1519
|
+
i0.ɵɵconditionalCreate(86, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_86_Template, 6, 1, "div", 45);
|
|
1520
|
+
i0.ɵɵelementEnd()()();
|
|
1521
|
+
i0.ɵɵconditionalCreate(87, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_87_Template, 37, 18, "mj-accordion-panel", 46);
|
|
1522
|
+
i0.ɵɵconditionalCreate(88, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_88_Template, 5, 3, "mj-accordion-panel", 46);
|
|
1523
|
+
i0.ɵɵelementStart(89, "mj-accordion-panel", 46);
|
|
1524
|
+
i0.ɵɵtemplate(90, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_90_Template, 3, 0, "ng-template", 28);
|
|
1525
|
+
i0.ɵɵelementStart(91, "div", 29)(92, "div", 47);
|
|
1526
|
+
i0.ɵɵconditionalCreate(93, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_93_Template, 7, 1, "div", 48);
|
|
1527
|
+
i0.ɵɵconditionalCreate(94, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_94_Template, 6, 3, "div", 48);
|
|
1528
|
+
i0.ɵɵconditionalCreate(95, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_95_Template, 6, 1, "div", 48);
|
|
1529
|
+
i0.ɵɵelementStart(96, "div", 48)(97, "label");
|
|
1530
|
+
i0.ɵɵtext(98, "Temperature");
|
|
1531
|
+
i0.ɵɵelementEnd();
|
|
1532
|
+
i0.ɵɵelementStart(99, "div", 49);
|
|
1533
|
+
i0.ɵɵelement(100, "i", 50);
|
|
1534
|
+
i0.ɵɵtext(101);
|
|
1535
|
+
i0.ɵɵelementEnd()();
|
|
1536
|
+
i0.ɵɵelementStart(102, "div", 48)(103, "label");
|
|
1537
|
+
i0.ɵɵtext(104, "Top P");
|
|
1538
|
+
i0.ɵɵelementEnd();
|
|
1539
|
+
i0.ɵɵelementStart(105, "div", 49);
|
|
1540
|
+
i0.ɵɵelement(106, "i", 51);
|
|
1541
|
+
i0.ɵɵtext(107);
|
|
1542
|
+
i0.ɵɵelementEnd()();
|
|
1543
|
+
i0.ɵɵelementStart(108, "div", 48)(109, "label");
|
|
1544
|
+
i0.ɵɵtext(110, "Top K");
|
|
1545
|
+
i0.ɵɵelementEnd();
|
|
1546
|
+
i0.ɵɵelementStart(111, "div", 49);
|
|
1547
|
+
i0.ɵɵelement(112, "i", 52);
|
|
1548
|
+
i0.ɵɵtext(113);
|
|
1549
|
+
i0.ɵɵelementEnd()();
|
|
1550
|
+
i0.ɵɵelementStart(114, "div", 48)(115, "label");
|
|
1551
|
+
i0.ɵɵtext(116, "Min P");
|
|
1552
|
+
i0.ɵɵelementEnd();
|
|
1553
|
+
i0.ɵɵelementStart(117, "div", 49);
|
|
1554
|
+
i0.ɵɵelement(118, "i", 53);
|
|
1555
|
+
i0.ɵɵtext(119);
|
|
1556
|
+
i0.ɵɵelementEnd()();
|
|
1557
|
+
i0.ɵɵelementStart(120, "div", 48)(121, "label");
|
|
1558
|
+
i0.ɵɵtext(122, "Frequency Penalty");
|
|
1559
|
+
i0.ɵɵelementEnd();
|
|
1560
|
+
i0.ɵɵelementStart(123, "div", 49);
|
|
1561
|
+
i0.ɵɵelement(124, "i", 54);
|
|
1562
|
+
i0.ɵɵtext(125);
|
|
1563
|
+
i0.ɵɵelementEnd()();
|
|
1564
|
+
i0.ɵɵelementStart(126, "div", 48)(127, "label");
|
|
1565
|
+
i0.ɵɵtext(128, "Presence Penalty");
|
|
1566
|
+
i0.ɵɵelementEnd();
|
|
1567
|
+
i0.ɵɵelementStart(129, "div", 49);
|
|
1568
|
+
i0.ɵɵelement(130, "i", 55);
|
|
1569
|
+
i0.ɵɵtext(131);
|
|
1570
|
+
i0.ɵɵelementEnd()();
|
|
1571
|
+
i0.ɵɵelementStart(132, "div", 48)(133, "label");
|
|
1572
|
+
i0.ɵɵtext(134, "Seed");
|
|
1787
1573
|
i0.ɵɵelementEnd();
|
|
1788
|
-
i0.ɵɵelementStart(
|
|
1789
|
-
i0.ɵɵ
|
|
1790
|
-
i0.ɵɵ
|
|
1574
|
+
i0.ɵɵelementStart(135, "div", 49);
|
|
1575
|
+
i0.ɵɵelement(136, "i", 56);
|
|
1576
|
+
i0.ɵɵtext(137);
|
|
1577
|
+
i0.ɵɵelementEnd()();
|
|
1578
|
+
i0.ɵɵelementStart(138, "div", 48)(139, "label");
|
|
1579
|
+
i0.ɵɵtext(140, "Stop Sequences");
|
|
1791
1580
|
i0.ɵɵelementEnd();
|
|
1792
|
-
i0.ɵɵelementStart(
|
|
1793
|
-
i0.ɵɵ
|
|
1794
|
-
i0.ɵɵ
|
|
1581
|
+
i0.ɵɵelementStart(141, "div", 49);
|
|
1582
|
+
i0.ɵɵelement(142, "i", 57);
|
|
1583
|
+
i0.ɵɵtext(143);
|
|
1584
|
+
i0.ɵɵelementEnd()();
|
|
1585
|
+
i0.ɵɵelementStart(144, "div", 48)(145, "label");
|
|
1586
|
+
i0.ɵɵtext(146, "Assistant Prefill");
|
|
1795
1587
|
i0.ɵɵelementEnd();
|
|
1796
|
-
i0.ɵɵ
|
|
1797
|
-
i0.ɵɵ
|
|
1798
|
-
i0.ɵɵ
|
|
1799
|
-
i0.ɵɵ
|
|
1588
|
+
i0.ɵɵelementStart(147, "div", 49);
|
|
1589
|
+
i0.ɵɵelement(148, "i", 58);
|
|
1590
|
+
i0.ɵɵtext(149);
|
|
1591
|
+
i0.ɵɵelementEnd()();
|
|
1592
|
+
i0.ɵɵconditionalCreate(150, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_150_Template, 7, 4, "div", 48);
|
|
1593
|
+
i0.ɵɵconditionalCreate(151, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_151_Template, 7, 4, "div", 48);
|
|
1594
|
+
i0.ɵɵelementEnd()()();
|
|
1595
|
+
i0.ɵɵconditionalCreate(152, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_152_Template, 11, 5, "mj-accordion-panel", 46);
|
|
1596
|
+
i0.ɵɵelementStart(153, "mj-accordion-panel", 27);
|
|
1597
|
+
i0.ɵɵlistener("ExpandedChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_mj_accordion_panel_ExpandedChange_153_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onModelSelectionPanelToggle($event)); });
|
|
1598
|
+
i0.ɵɵtemplate(154, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_154_Template, 5, 2, "ng-template", 28);
|
|
1599
|
+
i0.ɵɵelementStart(155, "div", 29)(156, "div", 47)(157, "div", 48)(158, "label");
|
|
1600
|
+
i0.ɵɵtext(159, "Status");
|
|
1800
1601
|
i0.ɵɵelementEnd();
|
|
1801
|
-
i0.ɵɵ
|
|
1802
|
-
i0.ɵɵ
|
|
1803
|
-
i0.ɵɵ
|
|
1804
|
-
i0.ɵɵ
|
|
1602
|
+
i0.ɵɵelementStart(160, "div", 49);
|
|
1603
|
+
i0.ɵɵelement(161, "i", 59);
|
|
1604
|
+
i0.ɵɵtext(162);
|
|
1605
|
+
i0.ɵɵelementEnd()();
|
|
1606
|
+
i0.ɵɵelementStart(163, "div", 48)(164, "label");
|
|
1607
|
+
i0.ɵɵtext(165, "Selection Strategy");
|
|
1608
|
+
i0.ɵɵelementEnd();
|
|
1609
|
+
i0.ɵɵelementStart(166, "div", 49);
|
|
1610
|
+
i0.ɵɵelement(167, "i", 60);
|
|
1611
|
+
i0.ɵɵtext(168);
|
|
1612
|
+
i0.ɵɵelementEnd()();
|
|
1613
|
+
i0.ɵɵelementStart(169, "div", 48)(170, "label");
|
|
1614
|
+
i0.ɵɵtext(171, "Model Power Rank");
|
|
1615
|
+
i0.ɵɵelementEnd();
|
|
1616
|
+
i0.ɵɵelementStart(172, "div", 49);
|
|
1617
|
+
i0.ɵɵelement(173, "i", 61);
|
|
1618
|
+
i0.ɵɵtext(174);
|
|
1619
|
+
i0.ɵɵelementEnd()();
|
|
1620
|
+
i0.ɵɵelementStart(175, "div", 48)(176, "label");
|
|
1621
|
+
i0.ɵɵtext(177, "Cache Hit");
|
|
1622
|
+
i0.ɵɵelementEnd();
|
|
1623
|
+
i0.ɵɵelementStart(178, "div", 49);
|
|
1624
|
+
i0.ɵɵelement(179, "i");
|
|
1625
|
+
i0.ɵɵtext(180);
|
|
1626
|
+
i0.ɵɵelementEnd()();
|
|
1627
|
+
i0.ɵɵconditionalCreate(181, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_181_Template, 7, 1, "div", 62);
|
|
1628
|
+
i0.ɵɵconditionalCreate(182, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_182_Template, 7, 1, "div", 48);
|
|
1629
|
+
i0.ɵɵconditionalCreate(183, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_183_Template, 6, 1, "div", 48);
|
|
1630
|
+
i0.ɵɵelementStart(184, "div", 48)(185, "label");
|
|
1631
|
+
i0.ɵɵtext(186, "Was Selected Result");
|
|
1632
|
+
i0.ɵɵelementEnd();
|
|
1633
|
+
i0.ɵɵelementStart(187, "div", 49);
|
|
1634
|
+
i0.ɵɵelement(188, "i");
|
|
1635
|
+
i0.ɵɵtext(189);
|
|
1636
|
+
i0.ɵɵelementEnd()();
|
|
1637
|
+
i0.ɵɵelementStart(190, "div", 48)(191, "label");
|
|
1638
|
+
i0.ɵɵtext(192, "Streaming Enabled");
|
|
1639
|
+
i0.ɵɵelementEnd();
|
|
1640
|
+
i0.ɵɵelementStart(193, "div", 49);
|
|
1641
|
+
i0.ɵɵelement(194, "i");
|
|
1642
|
+
i0.ɵɵtext(195);
|
|
1643
|
+
i0.ɵɵelementEnd()();
|
|
1644
|
+
i0.ɵɵconditionalCreate(196, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_196_Template, 6, 1, "div", 48);
|
|
1645
|
+
i0.ɵɵconditionalCreate(197, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_197_Template, 7, 1);
|
|
1646
|
+
i0.ɵɵelementEnd();
|
|
1647
|
+
i0.ɵɵconditionalCreate(198, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_198_Template, 8, 4, "div", 63);
|
|
1648
|
+
i0.ɵɵconditionalCreate(199, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_199_Template, 8, 4, "div", 64);
|
|
1805
1649
|
i0.ɵɵelementEnd()()()();
|
|
1806
1650
|
} if (rf & 2) {
|
|
1807
1651
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -1832,46 +1676,158 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Template(rf, ctx) { if
|
|
|
1832
1676
|
i0.ɵɵadvance(7);
|
|
1833
1677
|
i0.ɵɵconditional(ctx_r1.record.ConfigurationID ? 30 : 31);
|
|
1834
1678
|
i0.ɵɵadvance(3);
|
|
1835
|
-
i0.ɵɵproperty("
|
|
1836
|
-
i0.ɵɵadvance();
|
|
1837
|
-
i0.ɵɵproperty("expanded", ctx_r1.inputExpanded);
|
|
1838
|
-
i0.ɵɵadvance(3);
|
|
1839
|
-
i0.ɵɵproperty("expanded", ctx_r1.resultExpanded);
|
|
1679
|
+
i0.ɵɵproperty("Expanded", ctx_r1.inputExpanded);
|
|
1840
1680
|
i0.ɵɵadvance(3);
|
|
1841
|
-
i0.ɵɵ
|
|
1681
|
+
i0.ɵɵconditional(ctx_r1.record.Messages && ctx_r1.record.Messages.trim() !== "" ? 36 : 37);
|
|
1682
|
+
i0.ɵɵadvance(2);
|
|
1683
|
+
i0.ɵɵproperty("Expanded", ctx_r1.resultExpanded);
|
|
1842
1684
|
i0.ɵɵadvance(3);
|
|
1843
|
-
i0.ɵɵconditional(ctx_r1.record
|
|
1685
|
+
i0.ɵɵconditional(ctx_r1.record.ErrorMessage ? 41 : -1);
|
|
1844
1686
|
i0.ɵɵadvance();
|
|
1845
|
-
i0.ɵɵconditional(ctx_r1.record.
|
|
1687
|
+
i0.ɵɵconditional(ctx_r1.record.Result && ctx_r1.record.Result.trim() !== "" ? 42 : !ctx_r1.record.ErrorMessage ? 43 : -1);
|
|
1688
|
+
i0.ɵɵadvance(2);
|
|
1689
|
+
i0.ɵɵproperty("Expanded", ctx_r1.metricsExpanded);
|
|
1690
|
+
i0.ɵɵadvance(10);
|
|
1691
|
+
i0.ɵɵtextInterpolate(ctx_r1.formatTokens(ctx_r1.record.TokensPrompt));
|
|
1846
1692
|
i0.ɵɵadvance();
|
|
1847
|
-
i0.ɵɵ
|
|
1848
|
-
i0.ɵɵadvance(
|
|
1849
|
-
i0.ɵɵ
|
|
1693
|
+
i0.ɵɵconditional(ctx_r1.record.TokensPromptRollup && ctx_r1.record.TokensPromptRollup !== ctx_r1.record.TokensPrompt ? 55 : -1);
|
|
1694
|
+
i0.ɵɵadvance(7);
|
|
1695
|
+
i0.ɵɵtextInterpolate(ctx_r1.formatTokens(ctx_r1.record.TokensCompletion));
|
|
1850
1696
|
i0.ɵɵadvance();
|
|
1851
|
-
i0.ɵɵ
|
|
1697
|
+
i0.ɵɵconditional(ctx_r1.record.TokensCompletionRollup && ctx_r1.record.TokensCompletionRollup !== ctx_r1.record.TokensCompletion ? 63 : -1);
|
|
1698
|
+
i0.ɵɵadvance(7);
|
|
1699
|
+
i0.ɵɵtextInterpolate(ctx_r1.formatTokens(ctx_r1.record.TokensUsed));
|
|
1700
|
+
i0.ɵɵadvance();
|
|
1701
|
+
i0.ɵɵconditional(ctx_r1.record.TokensUsedRollup && ctx_r1.record.TokensUsedRollup !== ctx_r1.record.TokensUsed ? 71 : -1);
|
|
1702
|
+
i0.ɵɵadvance(7);
|
|
1703
|
+
i0.ɵɵtextInterpolate(ctx_r1.formatCost(ctx_r1.record.Cost));
|
|
1704
|
+
i0.ɵɵadvance();
|
|
1705
|
+
i0.ɵɵconditional(ctx_r1.record.TotalCost && ctx_r1.record.TotalCost !== ctx_r1.record.Cost ? 79 : -1);
|
|
1706
|
+
i0.ɵɵadvance();
|
|
1707
|
+
i0.ɵɵconditional(ctx_r1.record.CostCurrency ? 80 : -1);
|
|
1708
|
+
i0.ɵɵadvance();
|
|
1709
|
+
i0.ɵɵconditional(ctx_r1.record.QueueTime != null ? 81 : -1);
|
|
1710
|
+
i0.ɵɵadvance();
|
|
1711
|
+
i0.ɵɵconditional(ctx_r1.record.PromptTime != null ? 82 : -1);
|
|
1712
|
+
i0.ɵɵadvance();
|
|
1713
|
+
i0.ɵɵconditional(ctx_r1.record.CompletionTime != null ? 83 : -1);
|
|
1714
|
+
i0.ɵɵadvance(2);
|
|
1715
|
+
i0.ɵɵconditional(ctx_r1.record.ExecutionOrder !== null ? 85 : -1);
|
|
1716
|
+
i0.ɵɵadvance();
|
|
1717
|
+
i0.ɵɵconditional(ctx_r1.record.AgentID ? 86 : -1);
|
|
1718
|
+
i0.ɵɵadvance();
|
|
1719
|
+
i0.ɵɵconditional(ctx_r1.record && (ctx_r1.record.ValidationAttemptCount && ctx_r1.record.ValidationAttemptCount > 0 || ctx_r1.record.ValidationBehavior) ? 87 : -1);
|
|
1720
|
+
i0.ɵɵadvance();
|
|
1721
|
+
i0.ɵɵconditional(ctx_r1.record.ParentID || ctx_r1.childRuns.length > 0 ? 88 : -1);
|
|
1722
|
+
i0.ɵɵadvance();
|
|
1723
|
+
i0.ɵɵproperty("Expanded", false);
|
|
1724
|
+
i0.ɵɵadvance(4);
|
|
1725
|
+
i0.ɵɵconditional(ctx_r1.record.AgentID ? 93 : -1);
|
|
1726
|
+
i0.ɵɵadvance();
|
|
1727
|
+
i0.ɵɵconditional(ctx_r1.record.RunType ? 94 : -1);
|
|
1728
|
+
i0.ɵɵadvance();
|
|
1729
|
+
i0.ɵɵconditional(ctx_r1.record.ResponseFormat ? 95 : -1);
|
|
1730
|
+
i0.ɵɵadvance(4);
|
|
1731
|
+
i0.ɵɵclassProp("null-value", ctx_r1.record.Temperature === null || ctx_r1.record.Temperature === undefined);
|
|
1732
|
+
i0.ɵɵadvance(2);
|
|
1733
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Temperature !== null && ctx_r1.record.Temperature !== undefined ? ctx_r1.record.Temperature : "\u2014", " ");
|
|
1734
|
+
i0.ɵɵadvance(4);
|
|
1735
|
+
i0.ɵɵclassProp("null-value", ctx_r1.record.TopP === null || ctx_r1.record.TopP === undefined);
|
|
1736
|
+
i0.ɵɵadvance(2);
|
|
1737
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.TopP !== null && ctx_r1.record.TopP !== undefined ? ctx_r1.record.TopP : "\u2014", " ");
|
|
1738
|
+
i0.ɵɵadvance(4);
|
|
1739
|
+
i0.ɵɵclassProp("null-value", ctx_r1.record.TopK === null || ctx_r1.record.TopK === undefined);
|
|
1740
|
+
i0.ɵɵadvance(2);
|
|
1741
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.TopK !== null && ctx_r1.record.TopK !== undefined ? ctx_r1.record.TopK : "\u2014", " ");
|
|
1742
|
+
i0.ɵɵadvance(4);
|
|
1743
|
+
i0.ɵɵclassProp("null-value", ctx_r1.record.MinP === null || ctx_r1.record.MinP === undefined);
|
|
1744
|
+
i0.ɵɵadvance(2);
|
|
1745
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.MinP !== null && ctx_r1.record.MinP !== undefined ? ctx_r1.record.MinP : "\u2014", " ");
|
|
1746
|
+
i0.ɵɵadvance(4);
|
|
1747
|
+
i0.ɵɵclassProp("null-value", ctx_r1.record.FrequencyPenalty === null || ctx_r1.record.FrequencyPenalty === undefined);
|
|
1748
|
+
i0.ɵɵadvance(2);
|
|
1749
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.FrequencyPenalty !== null && ctx_r1.record.FrequencyPenalty !== undefined ? ctx_r1.record.FrequencyPenalty : "\u2014", " ");
|
|
1750
|
+
i0.ɵɵadvance(4);
|
|
1751
|
+
i0.ɵɵclassProp("null-value", ctx_r1.record.PresencePenalty === null || ctx_r1.record.PresencePenalty === undefined);
|
|
1752
|
+
i0.ɵɵadvance(2);
|
|
1753
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.PresencePenalty !== null && ctx_r1.record.PresencePenalty !== undefined ? ctx_r1.record.PresencePenalty : "\u2014", " ");
|
|
1754
|
+
i0.ɵɵadvance(4);
|
|
1755
|
+
i0.ɵɵclassProp("null-value", ctx_r1.record.Seed === null || ctx_r1.record.Seed === undefined);
|
|
1756
|
+
i0.ɵɵadvance(2);
|
|
1757
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Seed !== null && ctx_r1.record.Seed !== undefined ? ctx_r1.record.Seed : "\u2014", " ");
|
|
1758
|
+
i0.ɵɵadvance(4);
|
|
1759
|
+
i0.ɵɵclassProp("null-value", !ctx_r1.record.StopSequences);
|
|
1760
|
+
i0.ɵɵadvance(2);
|
|
1761
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.StopSequences || "\u2014", " ");
|
|
1762
|
+
i0.ɵɵadvance(4);
|
|
1763
|
+
i0.ɵɵclassProp("null-value", !ctx_r1.record.AssistantPrefill);
|
|
1764
|
+
i0.ɵɵadvance(2);
|
|
1765
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.AssistantPrefill || "\u2014", " ");
|
|
1766
|
+
i0.ɵɵadvance();
|
|
1767
|
+
i0.ɵɵconditional(ctx_r1.record.RunAt ? 150 : -1);
|
|
1768
|
+
i0.ɵɵadvance();
|
|
1769
|
+
i0.ɵɵconditional(ctx_r1.record.CompletedAt ? 151 : -1);
|
|
1770
|
+
i0.ɵɵadvance();
|
|
1771
|
+
i0.ɵɵconditional(ctx_r1.record.ModelSpecificResponseDetails ? 152 : -1);
|
|
1772
|
+
i0.ɵɵadvance();
|
|
1773
|
+
i0.ɵɵproperty("Expanded", false);
|
|
1774
|
+
i0.ɵɵadvance(9);
|
|
1775
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Status || "Unknown", " ");
|
|
1776
|
+
i0.ɵɵadvance(6);
|
|
1777
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.SelectionStrategy || "\u2014", " ");
|
|
1778
|
+
i0.ɵɵadvance(4);
|
|
1779
|
+
i0.ɵɵclassProp("null-value", ctx_r1.record.ModelPowerRank === null);
|
|
1780
|
+
i0.ɵɵadvance(2);
|
|
1781
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.ModelPowerRank !== null ? ctx_r1.record.ModelPowerRank : "\u2014", " ");
|
|
1782
|
+
i0.ɵɵadvance(5);
|
|
1783
|
+
i0.ɵɵclassMap(ctx_r1.record.CacheHit ? "fa-solid fa-check-circle" : "fa-solid fa-times-circle");
|
|
1784
|
+
i0.ɵɵadvance();
|
|
1785
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.CacheHit ? "Yes" : "No", " ");
|
|
1786
|
+
i0.ɵɵadvance();
|
|
1787
|
+
i0.ɵɵconditional(ctx_r1.record.CacheKey ? 181 : -1);
|
|
1788
|
+
i0.ɵɵadvance();
|
|
1789
|
+
i0.ɵɵconditional(ctx_r1.record.JudgeID ? 182 : -1);
|
|
1790
|
+
i0.ɵɵadvance();
|
|
1791
|
+
i0.ɵɵconditional(ctx_r1.record.JudgeScore !== null ? 183 : -1);
|
|
1792
|
+
i0.ɵɵadvance(5);
|
|
1793
|
+
i0.ɵɵclassMap(ctx_r1.record.WasSelectedResult ? "fa-solid fa-trophy" : "fa-solid fa-times");
|
|
1794
|
+
i0.ɵɵadvance();
|
|
1795
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.WasSelectedResult ? "Yes" : "No", " ");
|
|
1796
|
+
i0.ɵɵadvance(5);
|
|
1797
|
+
i0.ɵɵclassMap(ctx_r1.record.StreamingEnabled ? "fa-solid fa-stream" : "fa-solid fa-ban");
|
|
1798
|
+
i0.ɵɵadvance();
|
|
1799
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.StreamingEnabled ? "Yes" : "No", " ");
|
|
1800
|
+
i0.ɵɵadvance();
|
|
1801
|
+
i0.ɵɵconditional(ctx_r1.record.FirstTokenTime !== null ? 196 : -1);
|
|
1802
|
+
i0.ɵɵadvance();
|
|
1803
|
+
i0.ɵɵconditional(ctx_r1.record.Cancelled ? 197 : -1);
|
|
1804
|
+
i0.ɵɵadvance();
|
|
1805
|
+
i0.ɵɵconditional(ctx_r1.record.ModelSelection ? 198 : -1);
|
|
1806
|
+
i0.ɵɵadvance();
|
|
1807
|
+
i0.ɵɵconditional(ctx_r1.record.ErrorDetails ? 199 : -1);
|
|
1852
1808
|
} }
|
|
1853
1809
|
function MJAIPromptRunFormComponentExtended_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1854
|
-
const
|
|
1855
|
-
i0.ɵɵelementStart(0, "div",
|
|
1856
|
-
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_div_click_0_listener() { i0.ɵɵrestoreView(
|
|
1857
|
-
i0.ɵɵelementStart(1, "div",
|
|
1858
|
-
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(
|
|
1859
|
-
i0.ɵɵelementStart(2, "div",
|
|
1860
|
-
i0.ɵɵelement(4, "i",
|
|
1810
|
+
const _r25 = i0.ɵɵgetCurrentView();
|
|
1811
|
+
i0.ɵɵelementStart(0, "div", 185);
|
|
1812
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeFullScreen()); });
|
|
1813
|
+
i0.ɵɵelementStart(1, "div", 186);
|
|
1814
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r25); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
1815
|
+
i0.ɵɵelementStart(2, "div", 187)(3, "span", 188);
|
|
1816
|
+
i0.ɵɵelement(4, "i", 103);
|
|
1861
1817
|
i0.ɵɵtext(5);
|
|
1862
1818
|
i0.ɵɵelementEnd();
|
|
1863
|
-
i0.ɵɵelementStart(6, "div",
|
|
1864
|
-
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_button_click_7_listener() { i0.ɵɵrestoreView(
|
|
1865
|
-
i0.ɵɵelement(8, "i",
|
|
1819
|
+
i0.ɵɵelementStart(6, "div", 189)(7, "button", 190);
|
|
1820
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.FullScreenContent, ctx_r1.FullScreenTitle)); });
|
|
1821
|
+
i0.ɵɵelement(8, "i", 101);
|
|
1866
1822
|
i0.ɵɵtext(9, " Copy ");
|
|
1867
1823
|
i0.ɵɵelementEnd();
|
|
1868
|
-
i0.ɵɵelementStart(10, "button",
|
|
1869
|
-
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_button_click_10_listener() { i0.ɵɵrestoreView(
|
|
1870
|
-
i0.ɵɵelement(11, "i",
|
|
1824
|
+
i0.ɵɵelementStart(10, "button", 191);
|
|
1825
|
+
i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeFullScreen()); });
|
|
1826
|
+
i0.ɵɵelement(11, "i", 192);
|
|
1871
1827
|
i0.ɵɵtext(12, " Close ");
|
|
1872
1828
|
i0.ɵɵelementEnd()()();
|
|
1873
|
-
i0.ɵɵelementStart(13, "div",
|
|
1874
|
-
i0.ɵɵelement(14, "mj-code-editor",
|
|
1829
|
+
i0.ɵɵelementStart(13, "div", 193);
|
|
1830
|
+
i0.ɵɵelement(14, "mj-code-editor", 194);
|
|
1875
1831
|
i0.ɵɵelementEnd()()();
|
|
1876
1832
|
} if (rf & 2) {
|
|
1877
1833
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -1926,7 +1882,7 @@ let MJAIPromptRunFormComponentExtended = class MJAIPromptRunFormComponentExtende
|
|
|
1926
1882
|
this.FullScreenLanguage = 'json';
|
|
1927
1883
|
this.FullScreenTitle = '';
|
|
1928
1884
|
// Field injections
|
|
1929
|
-
this.testHarnessWindowService = inject(
|
|
1885
|
+
this.testHarnessWindowService = inject(TestHarnessWindowManagerService);
|
|
1930
1886
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
1931
1887
|
}
|
|
1932
1888
|
async ngOnInit() {
|
|
@@ -2358,9 +2314,9 @@ let MJAIPromptRunFormComponentExtended = class MJAIPromptRunFormComponentExtende
|
|
|
2358
2314
|
// Don't auto-expand validation panel anymore - let user expand when needed
|
|
2359
2315
|
}
|
|
2360
2316
|
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵMJAIPromptRunFormComponentExtended_BaseFactory; return function MJAIPromptRunFormComponentExtended_Factory(__ngFactoryType__) { return (ɵMJAIPromptRunFormComponentExtended_BaseFactory || (ɵMJAIPromptRunFormComponentExtended_BaseFactory = i0.ɵɵgetInheritedFactory(MJAIPromptRunFormComponentExtended)))(__ngFactoryType__ || MJAIPromptRunFormComponentExtended); }; })(); }
|
|
2361
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJAIPromptRunFormComponentExtended, selectors: [["mj-ai-prompt-run-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [["form", "ngForm"], [1, "record-form-container", 2, "height", "100%", "display", "flex", "flex-direction", "column"], [1, "record-form", 2, "display", "flex", "flex-direction", "column", "height", "100%", "overflow", "hidden"], [1, "fullscreen-overlay"], [3, "Form"], [1, "prompt-run-header"], [1, "header-content"], [1, "run-overview"], [1, "run-icon-wrapper"], [1, "run-info"], [1, "run-title"], [1, "run-id"], [1, "run-meta"], [1, "meta-card", "status-card"], [1, "c3-card-label"], [1, "meta-card-body"], [1, "status-indicator"], [1, "meta-card", "execution-card"], [1, "model-card-c3"], ["title", "View Original Run", 1, "original-run"], [1, "run-actions"], ["
|
|
2317
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJAIPromptRunFormComponentExtended, selectors: [["mj-ai-prompt-run-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [["form", "ngForm"], [1, "record-form-container", 2, "height", "100%", "display", "flex", "flex-direction", "column"], [1, "record-form", 2, "display", "flex", "flex-direction", "column", "height", "100%", "overflow", "hidden"], [1, "fullscreen-overlay"], [3, "Form"], [1, "prompt-run-header"], [1, "header-content"], [1, "run-overview"], [1, "run-icon-wrapper"], [1, "run-info"], [1, "run-title"], [1, "run-id"], [1, "run-meta"], [1, "meta-card", "status-card"], [1, "c3-card-label"], [1, "meta-card-body"], [1, "status-indicator"], [1, "meta-card", "execution-card"], [1, "model-card-c3"], ["title", "View Original Run", 1, "original-run"], [1, "run-actions"], ["mjButton", "", "variant", "outline", "size", "sm", "title", "Re-run this prompt", 3, "click"], [1, "fa-solid", "fa-play-circle"], ["mjButton", "", "variant", "outline", "size", "sm", "title", "Refresh data", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "metrics-bar"], [1, "form-content", 2, "display", "flex", "flex-direction", "column", "flex", "1", "min-height", "0", "overflow-y", "auto"], [2, "margin-bottom", "8px", 3, "ExpandedChange", "Expanded"], ["mjAccordionTitle", ""], [1, "panel-content"], [1, "nested-panels"], [1, "empty-state"], [1, "error-message"], [1, "json-editor-container"], [1, "metrics-grid"], [1, "metric-card"], [1, "metric-header"], [1, "fa-solid", "fa-message"], [1, "metric-value", "large"], [1, "metric-rollup"], [1, "fa-solid", "fa-reply"], [1, "fa-solid", "fa-coins"], [1, "fa-solid", "fa-dollar-sign"], [1, "metric-currency"], [1, "additional-metrics"], [1, "metric-row"], [2, "margin-bottom", "8px", 3, "Expanded"], [1, "detail-fields-grid"], [1, "detail-field"], [1, "detail-value"], [1, "fa-solid", "fa-temperature-high"], [1, "fa-solid", "fa-percentage"], [1, "fa-solid", "fa-list-ol"], [1, "fa-solid", "fa-filter"], [1, "fa-solid", "fa-repeat"], [1, "fa-solid", "fa-plus-circle"], [1, "fa-solid", "fa-seedling"], [1, "fa-solid", "fa-stop-circle"], [1, "fa-solid", "fa-wand-magic-sparkles"], [1, "fa-solid", "fa-info-circle"], [1, "fa-solid", "fa-strategy"], [1, "fa-solid", "fa-ranking-star"], [1, "detail-field", "full-width"], [1, "model-selection-json"], [1, "error-details-json"], [1, "prompt-card-c3"], [1, "meta-card", "prompt-single-card"], ["title", "View Agent Prompt", 1, "c3-child-section", 3, "click"], [1, "fa-solid", "fa-comment", "prompt-icon"], [1, "c3-divider"], [1, "c3-line"], [1, "c3-divider-label"], ["title", "View System Prompt", 1, "c3-parent-section", 3, "click"], [1, "fa-solid", "fa-cog"], [1, "fa-solid", "fa-arrow-up-right-from-square", "c3-link-icon"], ["title", "View Prompt", 1, "meta-card-body", "clickable", 3, "click"], [1, "fa-solid", "fa-comment-dots", 2, "color", "var(--mj-brand-primary)"], ["title", "View Model", 1, "c3-card-body", 3, "click"], [1, "c3-model-name"], [1, "fa-solid", "fa-microchip"], [1, "c3-vendor-name"], [1, "fa-solid", "fa-level-up-alt"], [1, "original-link", 3, "click"], [1, "metric-item"], [1, "metric-content"], [1, "metric-label"], [1, "metric-value"], ["href", "javascript:void(0)", 1, "config-link", 3, "click"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-tachometer-alt"], [1, "fa-solid", "fa-code"], [1, "fa-solid", "fa-calendar"], [1, "panel-title"], [1, "fa-solid", "fa-comment-dots"], [1, "panel-badge"], [1, "sub-expansion-panel", 2, "margin-bottom", "8px", 3, "Expanded"], [1, "sub-panel-content"], [1, "loading-state"], [3, "messages"], [1, "json-toolbar"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Copy JSON", 3, "click"], [1, "fa-solid", "fa-copy"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "View full screen", 3, "click"], [1, "fa-solid", "fa-expand"], ["name", "formattedMessages", 2, "height", "400px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "sub-panel-title"], [1, "fa-solid", "fa-comments"], [1, "panel-count"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-comment-slash"], [1, "fa-solid", "fa-database"], ["name", "formattedData", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-square-check"], [1, "panel-badge", "error"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "error-content"], ["name", "formattedResult", 2, "height", "400px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-inbox"], [1, "error-info"], [1, "finish-reason"], [1, "error-details"], [1, "error-hint"], [2, "margin", "0"], [2, "height", "200px", "width", "100%", 3, "ngModel", "disabled", "language", "lineWrapping"], [1, "fa-solid", "fa-chart-line"], [1, "fa-solid", "fa-hourglass-start"], [1, "fa-solid", "fa-brain"], [1, "fa-solid", "fa-flag-checkered"], [1, "metric-value", "link", 3, "click"], [1, "fa-solid", "fa-external-link"], [1, "validation-summary"], [1, "summary-header"], [1, "validation-status"], [1, "validation-metrics"], [1, "metric-card", "small"], [1, "validation-error"], [1, "common-error"], [1, "retry-timeline"], [1, "validation-attempts"], [1, "validation-json"], [1, "fa-solid", "fa-shield-check"], [1, "panel-badge", "success"], [1, "error-count"], [1, "timeline-info"], [1, "timeline-stat"], [1, "fa-solid", "fa-stopwatch"], [1, "attempts-list"], [1, "attempt-item", 3, "success", "failed"], [1, "attempt-item"], [1, "attempt-number"], [1, "attempt-details"], [1, "attempt-time"], [1, "output-length"], [1, "attempt-error"], [1, "json-viewer-container"], ["name", "formattedValidationSummary", 2, "height", "200px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], ["name", "formattedValidationAttempts", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "parent-run-section"], [1, "child-runs-section"], [1, "fa-solid", "fa-sitemap"], [1, "run-item", "parent", 3, "click"], [1, "run-item-icon"], [1, "run-item-content"], [1, "run-item-title"], [1, "run-item-type"], [1, "run-item-meta"], [1, "fa-solid", "fa-level-down-alt"], [1, "runs-list"], [1, "run-item", "child"], [1, "run-item", "child", 3, "click"], [1, "execution-order"], ["title", "View Agent", 1, "detail-value", "clickable", 3, "click"], [1, "fa-solid", "fa-robot"], [1, "fa-solid", "fa-check-circle"], ["name", "formattedModelSpecificResponseDetails", 2, "height", "400px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-key"], ["title", "View Judge Prompt", 1, "detail-value", "clickable", 3, "click"], [1, "fa-solid", "fa-gavel"], [1, "fa-solid", "fa-star"], [1, "fa-solid", "fa-bolt"], [1, "detail-value", "error"], [1, "fa-solid", "fa-ban"], [1, "fa-solid", "fa-exclamation-circle"], ["name", "formattedModelSelection", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], ["name", "formattedErrorDetails", 2, "height", "200px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fullscreen-overlay", 3, "click"], [1, "fullscreen-container", 3, "click"], [1, "fullscreen-header"], [1, "fullscreen-title"], [1, "fullscreen-actions"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Copy content", 3, "click"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "fullscreen-body"], [2, "height", "100%", "width", "100%", 3, "value", "readonly", "language"]], template: function MJAIPromptRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
2362
2318
|
i0.ɵɵelementStart(0, "div", 1);
|
|
2363
|
-
i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Template,
|
|
2319
|
+
i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Template, 200, 98, "form", 2);
|
|
2364
2320
|
i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_2_Template, 15, 4, "div", 3);
|
|
2365
2321
|
i0.ɵɵelementEnd();
|
|
2366
2322
|
} if (rf & 2) {
|
|
@@ -2368,7 +2324,7 @@ let MJAIPromptRunFormComponentExtended = class MJAIPromptRunFormComponentExtende
|
|
|
2368
2324
|
i0.ɵɵconditional(ctx.record ? 1 : -1);
|
|
2369
2325
|
i0.ɵɵadvance();
|
|
2370
2326
|
i0.ɵɵconditional(ctx.FullScreenContent ? 2 : -1);
|
|
2371
|
-
} }, dependencies: [i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.NgForm, i2.ExpansionPanelComponent, i2.ExpansionPanelTitleDirective, i2.PanelBarComponent, i2.PanelBarItemComponent, i2.PanelBarContentDirective, i2.PanelBarItemTitleDirective, i3.ButtonComponent, i4.MjFormToolbarComponent, i5.CodeEditorComponent, i6.ChatMessageViewerComponent, i7.DatePipe], styles: ["\n\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.record-form-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0 !important;\n overflow: hidden;\n}\n\n.form-content[_ngcontent-%COMP%] {\n padding: 16px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n\n\n\n.error-info[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding: 16px;\n background-color: color-mix(in srgb, var(--mj-status-error) 5%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n}\n\n.finish-reason[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.error-details[_ngcontent-%COMP%] {\n margin-top: 12px;\n}\n\n.error-details[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: color-mix(in srgb, var(--mj-status-error) 80%, black);\n font-size: 14px;\n font-weight: 600;\n}\n\n.error-hint[_ngcontent-%COMP%] {\n margin: 0;\n color: color-mix(in srgb, var(--mj-status-error) 70%, black);\n font-size: 14px;\n font-style: italic;\n}\n\n\n\n.prompt-run-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n padding: 20px;\n margin-bottom: 0;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n margin-bottom: 16px;\n}\n\n.run-overview[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex: 1;\n}\n\n.run-icon-wrapper[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-icon-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n}\n\n.run-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-title[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 1.5em;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.run-id[_ngcontent-%COMP%] {\n font-size: 0.8em;\n color: var(--mj-text-muted);\n font-weight: 400;\n font-family: 'Courier New', monospace;\n}\n\n.run-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: stretch;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n\n\n.meta-card[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n}\n\n.meta-card-body[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n}\n\n.meta-card-body.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: color 0.15s;\n}\n\n.meta-card-body.clickable[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n\n\n.status-indicator[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n\n\n.prompt-card-c3[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.c3-child-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n font-size: 0.92em;\n font-weight: 600;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-child-section[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n.c3-child-section[_ngcontent-%COMP%] i.prompt-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1rem;\n}\n\n.c3-divider[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 14px;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-line[_ngcontent-%COMP%] {\n flex: 1;\n height: 1px;\n background: var(--mj-border-default);\n}\n\n.c3-divider-label[_ngcontent-%COMP%] {\n font-size: 0.55rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n color: var(--mj-text-disabled);\n white-space: nowrap;\n}\n\n.c3-parent-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px 9px 14px;\n font-size: 0.76em;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.c3-parent-section[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.c3-parent-section[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n\n.c3-link-icon[_ngcontent-%COMP%] {\n margin-left: auto;\n font-size: 0.6rem !important;\n opacity: 0.4;\n}\n\n.c3-parent-section[_ngcontent-%COMP%]:hover .c3-link-icon[_ngcontent-%COMP%] {\n opacity: 0.8;\n}\n\n\n\n.model-card-c3[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: border-color 0.15s;\n}\n\n.model-card-c3[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-border-strong);\n}\n\n.c3-card-label[_ngcontent-%COMP%] {\n font-size: 0.6rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n padding: 4px 10px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.c3-card-body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.c3-model-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.c3-model-name[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.c3-vendor-name[_ngcontent-%COMP%] {\n font-size: 0.72em;\n color: var(--mj-text-muted);\n font-weight: 400;\n padding-left: 22px;\n}\n\n.original-run[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n font-size: 0.85em;\n}\n\n.original-link[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.original-link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-status-error) 85%, black);\n text-decoration: underline;\n}\n\n.run-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n flex-wrap: wrap;\n}\n\n.metric-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.metric-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.metric-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 0.75em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 1.1em;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n text-decoration: underline;\n}\n\n\n\n.form-content[_ngcontent-%COMP%] {\n padding: 16px;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n\n\n.sub-panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n font-size: 0.95em;\n}\n\n.sub-panel-content[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] > .k-item[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n margin-bottom: 8px;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] > .k-item[_ngcontent-%COMP%] > .k-link[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface-card);\n padding: 12px 16px;\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] > .k-item.k-expanded[_ngcontent-%COMP%] > .k-link[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] .k-content[_ngcontent-%COMP%] {\n padding: 0;\n background: var(--mj-bg-surface);\n}\n\n\n\n.sub-panel-content[_ngcontent-%COMP%] mj-chat-message-viewer[_ngcontent-%COMP%] {\n display: block;\n min-height: 200px;\n max-height: 750px; \n\n height: auto;\n overflow: hidden;\n}\n\n\n\n.sub-expansion-panel[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-expander {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-expander:hover {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-header {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-content {\n background-color: var(--mj-bg-surface);\n border-color: var(--mj-border-default);\n}\n\n.panel-badge[_ngcontent-%COMP%] {\n margin-left: auto;\n padding: 2px 8px;\n border-radius: 12px;\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 0.75em;\n font-weight: 500;\n}\n\n.panel-badge.error[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n color: white;\n}\n\n.panel-count[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-weight: 400;\n font-size: 0.9em;\n}\n\n.panel-content[_ngcontent-%COMP%] {\n padding: 20px;\n max-height: none !important;\n overflow: visible !important;\n}\n\n\n\n.json-editor-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.json-toolbar[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n}\n\n\n\n.error-message[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n padding: 16px;\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n}\n\n.error-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.5em;\n color: var(--mj-status-error);\n flex-shrink: 0;\n}\n\n.error-content[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 1em;\n}\n\n.error-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.6;\n color: var(--mj-brand-primary);\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n}\n\n\n\n.metrics-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 20px;\n margin-bottom: 24px;\n}\n\n.metric-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 20px;\n}\n\n.metric-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.metric-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n}\n\n.metric-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.9em;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.metric-value.large[_ngcontent-%COMP%] {\n font-size: 1.8em;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.metric-rollup[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.metric-currency[_ngcontent-%COMP%] {\n margin-top: 4px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n\n\n.additional-metrics[_ngcontent-%COMP%] {\n padding-top: 16px;\n}\n\n.metric-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.metric-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-muted);\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-weight: 400;\n color: var(--mj-text-primary);\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value.link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: color 0.2s;\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value.link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n}\n\n\n\n.parent-run-section[_ngcontent-%COMP%], \n.child-runs-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.parent-run-section[_ngcontent-%COMP%]:last-child, \n.child-runs-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.parent-run-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], \n.child-runs-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 0.95em;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.runs-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.run-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.run-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n}\n\n.run-item.parent[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.run-item.parent[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-bg-surface));\n}\n\n.run-item-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-item-title[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-order[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: white;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 0.75em;\n font-weight: 600;\n}\n\n.run-item-type[_ngcontent-%COMP%] {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n.run-item-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.run-item-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.run-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]:last-child {\n color: var(--mj-text-muted);\n font-size: 0.85em;\n}\n\n\n\n.detail-fields-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 24px;\n width: 100%;\n min-height: auto;\n overflow: visible;\n}\n\n.detail-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 1em;\n color: var(--mj-text-primary);\n padding: 10px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: all 0.2s;\n}\n\n.detail-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n color: var(--mj-text-muted);\n font-size: 1.1em;\n width: 20px;\n text-align: center;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.detail-value.clickable[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:last-child {\n margin-left: auto;\n font-size: 0.85em;\n opacity: 0.6;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%]:last-child {\n opacity: 1;\n}\n\n.detail-value.null-value[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n.detail-value.null-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n opacity: 0.5;\n}\n\n\n\nkendo-panelbar[_ngcontent-%COMP%] {\n border: none !important;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n border: 1px solid var(--mj-border-default) !important;\n border-radius: 8px !important;\n overflow: hidden;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] .k-panelbar-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card) !important;\n border: none !important;\n padding: 12px 16px !important;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] .k-panelbar-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default) !important;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] .k-panelbar-content[_ngcontent-%COMP%] {\n border: none !important;\n padding: 0 !important;\n max-height: none !important;\n overflow: visible !important;\n}\n\n\n\n.validation-summary[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.summary-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.summary-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n color: var(--mj-text-primary);\n}\n\n.validation-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 16px;\n border-radius: 20px;\n font-weight: 500;\n font-size: 0.9em;\n}\n\n.validation-status.success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.validation-status.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 12%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.validation-metrics[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card.small[_ngcontent-%COMP%] {\n padding: 16px;\n text-align: center;\n}\n\n.metric-card.small[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: 0.8em;\n margin-bottom: 8px;\n font-weight: 600;\n}\n\n.metric-card.small[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 1.4em;\n font-weight: 700;\n}\n\n.validation-error[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 16px;\n}\n\n.validation-error[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 0.95em;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.validation-error[_ngcontent-%COMP%] p[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 0.9em;\n}\n\n.error-count[_ngcontent-%COMP%] {\n display: inline-block;\n margin-top: 8px;\n padding: 2px 8px;\n background: var(--mj-status-error);\n color: white;\n border-radius: 12px;\n font-size: 0.75em;\n font-weight: 500;\n}\n\n\n\n.retry-timeline[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.retry-timeline[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.timeline-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n\n.timeline-stat[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-muted);\n font-size: 0.9em;\n}\n\n.timeline-stat[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.1em;\n}\n\n\n\n.validation-attempts[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.validation-attempts[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.attempts-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.attempt-item[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.attempt-item.success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 18%, var(--mj-bg-surface));\n}\n\n.attempt-item.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n}\n\n.attempt-number[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.attempt-item.success[_ngcontent-%COMP%] .attempt-number[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.attempt-item.failed[_ngcontent-%COMP%] .attempt-number[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.attempt-details[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n font-size: 0.85em;\n}\n\n.attempt-time[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n.attempt-error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n flex: 1 0 100%;\n}\n\n.output-length[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n\n\n.validation-json[_ngcontent-%COMP%] {\n margin-top: 24px;\n}\n\n.validation-json[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.json-viewer-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n\n\n.panel-badge.success[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n\n\n.fullscreen-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n z-index: 10000;\n background: var(--mj-bg-overlay, rgba(0, 0, 0, 0.6));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.5rem;\n}\n\n.fullscreen-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n max-width: 95vw;\n max-height: 95vh;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n overflow: hidden;\n}\n\n.fullscreen-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem 1rem;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.fullscreen-title[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 0.9rem;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.fullscreen-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n.fullscreen-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.fullscreen-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.fullscreen-body[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n}"], changeDetection: 0 }); }
|
|
2327
|
+
} }, dependencies: [i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.NgForm, i2.MJButtonDirective, i2.MJAccordionPanelComponent, i2.MJAccordionTitleDirective, i3.MjFormToolbarComponent, i4.CodeEditorComponent, i5.ChatMessageViewerComponent, i6.DatePipe], styles: ["\n\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.record-form-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0 !important;\n overflow: hidden;\n}\n\n.form-content[_ngcontent-%COMP%] {\n padding: 16px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n\n\n\n.error-info[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding: 16px;\n background-color: color-mix(in srgb, var(--mj-status-error) 5%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n}\n\n.finish-reason[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.error-details[_ngcontent-%COMP%] {\n margin-top: 12px;\n}\n\n.error-details[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: color-mix(in srgb, var(--mj-status-error) 80%, black);\n font-size: 14px;\n font-weight: 600;\n}\n\n.error-hint[_ngcontent-%COMP%] {\n margin: 0;\n color: color-mix(in srgb, var(--mj-status-error) 70%, black);\n font-size: 14px;\n font-style: italic;\n}\n\n\n\n.prompt-run-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n padding: 20px;\n margin-bottom: 0;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n margin-bottom: 16px;\n}\n\n.run-overview[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex: 1;\n}\n\n.run-icon-wrapper[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-icon-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n}\n\n.run-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-title[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 1.5em;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.run-id[_ngcontent-%COMP%] {\n font-size: 0.8em;\n color: var(--mj-text-muted);\n font-weight: 400;\n font-family: 'Courier New', monospace;\n}\n\n.run-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: stretch;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n\n\n.meta-card[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n}\n\n.meta-card-body[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n}\n\n.meta-card-body.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: color 0.15s;\n}\n\n.meta-card-body.clickable[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n\n\n.status-indicator[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n\n\n.prompt-card-c3[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.c3-child-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n font-size: 0.92em;\n font-weight: 600;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-child-section[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n.c3-child-section[_ngcontent-%COMP%] i.prompt-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1rem;\n}\n\n.c3-divider[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 14px;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-line[_ngcontent-%COMP%] {\n flex: 1;\n height: 1px;\n background: var(--mj-border-default);\n}\n\n.c3-divider-label[_ngcontent-%COMP%] {\n font-size: 0.55rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n color: var(--mj-text-disabled);\n white-space: nowrap;\n}\n\n.c3-parent-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px 9px 14px;\n font-size: 0.76em;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.c3-parent-section[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.c3-parent-section[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n\n.c3-link-icon[_ngcontent-%COMP%] {\n margin-left: auto;\n font-size: 0.6rem !important;\n opacity: 0.4;\n}\n\n.c3-parent-section[_ngcontent-%COMP%]:hover .c3-link-icon[_ngcontent-%COMP%] {\n opacity: 0.8;\n}\n\n\n\n.model-card-c3[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: border-color 0.15s;\n}\n\n.model-card-c3[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-border-strong);\n}\n\n.c3-card-label[_ngcontent-%COMP%] {\n font-size: 0.6rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n padding: 4px 10px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.c3-card-body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.c3-model-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.c3-model-name[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.c3-vendor-name[_ngcontent-%COMP%] {\n font-size: 0.72em;\n color: var(--mj-text-muted);\n font-weight: 400;\n padding-left: 22px;\n}\n\n.original-run[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n font-size: 0.85em;\n}\n\n.original-link[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.original-link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-status-error) 85%, black);\n text-decoration: underline;\n}\n\n.run-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n flex-wrap: wrap;\n}\n\n.metric-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.metric-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.metric-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 0.75em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 1.1em;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n text-decoration: underline;\n}\n\n\n\n.form-content[_ngcontent-%COMP%] {\n padding: 16px;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n\n\n.sub-panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n font-size: 0.95em;\n}\n\n.sub-panel-content[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n\n\n.nested-panels[_ngcontent-%COMP%] mj-accordion-panel[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n\n\n\n.sub-panel-content[_ngcontent-%COMP%] mj-chat-message-viewer[_ngcontent-%COMP%] {\n display: block;\n min-height: 200px;\n max-height: 750px; \n\n height: auto;\n overflow: hidden;\n}\n\n\n\n.sub-expansion-panel[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n\n\n\n.sub-expansion-panel[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.panel-badge[_ngcontent-%COMP%] {\n margin-left: auto;\n padding: 2px 8px;\n border-radius: 12px;\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 0.75em;\n font-weight: 500;\n}\n\n.panel-badge.error[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n color: white;\n}\n\n.panel-count[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-weight: 400;\n font-size: 0.9em;\n}\n\n.panel-content[_ngcontent-%COMP%] {\n padding: 20px;\n max-height: none !important;\n overflow: visible !important;\n}\n\n\n\n.json-editor-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.json-toolbar[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n}\n\n\n\n.error-message[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n padding: 16px;\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n}\n\n.error-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.5em;\n color: var(--mj-status-error);\n flex-shrink: 0;\n}\n\n.error-content[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 1em;\n}\n\n.error-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.6;\n color: var(--mj-brand-primary);\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n}\n\n\n\n.metrics-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 20px;\n margin-bottom: 24px;\n}\n\n.metric-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 20px;\n}\n\n.metric-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.metric-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n}\n\n.metric-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.9em;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.metric-value.large[_ngcontent-%COMP%] {\n font-size: 1.8em;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.metric-rollup[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.metric-currency[_ngcontent-%COMP%] {\n margin-top: 4px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n\n\n.additional-metrics[_ngcontent-%COMP%] {\n padding-top: 16px;\n}\n\n.metric-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.metric-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-muted);\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-weight: 400;\n color: var(--mj-text-primary);\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value.link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: color 0.2s;\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value.link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n}\n\n\n\n.parent-run-section[_ngcontent-%COMP%], \n.child-runs-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.parent-run-section[_ngcontent-%COMP%]:last-child, \n.child-runs-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.parent-run-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], \n.child-runs-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 0.95em;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.runs-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.run-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.run-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n}\n\n.run-item.parent[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.run-item.parent[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-bg-surface));\n}\n\n.run-item-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-item-title[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-order[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: white;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 0.75em;\n font-weight: 600;\n}\n\n.run-item-type[_ngcontent-%COMP%] {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n.run-item-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.run-item-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.run-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]:last-child {\n color: var(--mj-text-muted);\n font-size: 0.85em;\n}\n\n\n\n.detail-fields-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 24px;\n width: 100%;\n min-height: auto;\n overflow: visible;\n}\n\n.detail-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 1em;\n color: var(--mj-text-primary);\n padding: 10px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: all 0.2s;\n}\n\n.detail-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n color: var(--mj-text-muted);\n font-size: 1.1em;\n width: 20px;\n text-align: center;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.detail-value.clickable[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:last-child {\n margin-left: auto;\n font-size: 0.85em;\n opacity: 0.6;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%]:last-child {\n opacity: 1;\n}\n\n.detail-value.null-value[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n.detail-value.null-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n opacity: 0.5;\n}\n\n\n\nmj-accordion-panel[_ngcontent-%COMP%] {\n display: block;\n}\n\n\n\n.validation-summary[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.summary-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.summary-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n color: var(--mj-text-primary);\n}\n\n.validation-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 16px;\n border-radius: 20px;\n font-weight: 500;\n font-size: 0.9em;\n}\n\n.validation-status.success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.validation-status.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 12%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.validation-metrics[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card.small[_ngcontent-%COMP%] {\n padding: 16px;\n text-align: center;\n}\n\n.metric-card.small[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: 0.8em;\n margin-bottom: 8px;\n font-weight: 600;\n}\n\n.metric-card.small[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 1.4em;\n font-weight: 700;\n}\n\n.validation-error[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 16px;\n}\n\n.validation-error[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 0.95em;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.validation-error[_ngcontent-%COMP%] p[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 0.9em;\n}\n\n.error-count[_ngcontent-%COMP%] {\n display: inline-block;\n margin-top: 8px;\n padding: 2px 8px;\n background: var(--mj-status-error);\n color: white;\n border-radius: 12px;\n font-size: 0.75em;\n font-weight: 500;\n}\n\n\n\n.retry-timeline[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.retry-timeline[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.timeline-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n\n.timeline-stat[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-muted);\n font-size: 0.9em;\n}\n\n.timeline-stat[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.1em;\n}\n\n\n\n.validation-attempts[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.validation-attempts[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.attempts-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.attempt-item[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.attempt-item.success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 18%, var(--mj-bg-surface));\n}\n\n.attempt-item.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n}\n\n.attempt-number[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.attempt-item.success[_ngcontent-%COMP%] .attempt-number[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.attempt-item.failed[_ngcontent-%COMP%] .attempt-number[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.attempt-details[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n font-size: 0.85em;\n}\n\n.attempt-time[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n.attempt-error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n flex: 1 0 100%;\n}\n\n.output-length[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n\n\n.validation-json[_ngcontent-%COMP%] {\n margin-top: 24px;\n}\n\n.validation-json[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.json-viewer-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n\n\n.panel-badge.success[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n\n\n.fullscreen-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n z-index: 10000;\n background: var(--mj-bg-overlay, rgba(0, 0, 0, 0.6));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.5rem;\n}\n\n.fullscreen-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n max-width: 95vw;\n max-height: 95vh;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n overflow: hidden;\n}\n\n.fullscreen-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem 1rem;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.fullscreen-title[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 0.9rem;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.fullscreen-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n.fullscreen-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.fullscreen-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.fullscreen-body[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n}"], changeDetection: 0 }); }
|
|
2372
2328
|
};
|
|
2373
2329
|
MJAIPromptRunFormComponentExtended = __decorate([
|
|
2374
2330
|
RegisterClass(BaseFormComponent, 'MJ: AI Prompt Runs')
|
|
@@ -2376,7 +2332,7 @@ MJAIPromptRunFormComponentExtended = __decorate([
|
|
|
2376
2332
|
export { MJAIPromptRunFormComponentExtended };
|
|
2377
2333
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJAIPromptRunFormComponentExtended, [{
|
|
2378
2334
|
type: Component,
|
|
2379
|
-
args: [{ standalone: false, selector: 'mj-ai-prompt-run-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"record-form-container\" style=\"height: 100%; display: flex; flex-direction: column;\">\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <mj-form-toolbar [Form]=\"this\"></mj-form-toolbar>\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) \u2014 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 kendoButton fillMode=\"outline\" size=\"small\" (click)=\"reRunPrompt()\" title=\"Re-run this prompt\">\n <i class=\"fa-solid fa-play-circle\"></i>\n Re-Run\n </button>\n <button kendoButton fillMode=\"outline\" size=\"small\" (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 <kendo-panelbar [keepItemContent]=\"true\">\n \n <!-- Input Panel with nested sub-panels -->\n <kendo-panelbar-item [expanded]=\"inputExpanded\" (stateChange)=\"onInputPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\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 <ng-template kendoPanelBarContent>\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 <kendo-expansionpanel \n [expanded]=\"messagesExpanded\" \n class=\"sub-expansion-panel\"\n [animation]=\"false\">\n <ng-template kendoExpansionPanelTitleDirective>\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 </kendo-expansionpanel>\n \n <!-- Data Sub-Panel -->\n <kendo-expansionpanel \n [expanded]=\"dataExpanded\" \n class=\"sub-expansion-panel\"\n [animation]=\"false\">\n <ng-template kendoExpansionPanelTitleDirective>\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 kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"copyToClipboard(formattedData, 'Data')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\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 </kendo-expansionpanel>\n \n <!-- Raw Sub-Panel -->\n <kendo-expansionpanel \n [expanded]=\"rawExpanded\" \n class=\"sub-expansion-panel\"\n [animation]=\"false\">\n <ng-template kendoExpansionPanelTitleDirective>\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 kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"copyToClipboard(formattedMessages, 'Messages')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\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 </kendo-expansionpanel>\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 </ng-template>\n </kendo-panelbar-item>\n \n <!-- Result Panel -->\n <kendo-panelbar-item [expanded]=\"resultExpanded\" (stateChange)=\"onResultPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\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 <ng-template kendoPanelBarContent>\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 kendoButton\n fillMode=\"flat\" \n size=\"small\"\n (click)=\"copyToClipboard(formattedResult, 'Result')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\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 kendoButton\n fillMode=\"flat\"\n size=\"small\"\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 </ng-template>\n </kendo-panelbar-item>\n \n <!-- Token Usage & Metrics Panel -->\n <kendo-panelbar-item [expanded]=\"metricsExpanded\" (stateChange)=\"onMetricsPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-chart-line\"></i>\n Token Usage & Metrics\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\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 </ng-template>\n </kendo-panelbar-item>\n \n <!-- Validation & Retry Panel -->\n @if (record && ((record.ValidationAttemptCount && record.ValidationAttemptCount > 0) || record.ValidationBehavior)) {\n <kendo-panelbar-item [expanded]=\"validationExpanded\" (stateChange)=\"onValidationPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\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 <ng-template kendoPanelBarContent>\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 kendoButton\n fillMode=\"flat\"\n size=\"small\"\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 kendoButton\n fillMode=\"flat\"\n size=\"small\"\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 </ng-template>\n </kendo-panelbar-item>\n }\n \n <!-- Hierarchy Panel (for parent/child relationships) -->\n @if (record.ParentID || childRuns.length > 0) {\n <kendo-panelbar-item [expanded]=\"hierarchyExpanded\">\n <ng-template kendoPanelBarItemTitle>\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 <ng-template kendoPanelBarContent>\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 </ng-template>\n </kendo-panelbar-item>\n }\n \n <!-- Additional Details Panel -->\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Additional Details\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\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 : '\u2014' }}\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 : '\u2014' }}\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 : '\u2014' }}\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 : '\u2014' }}\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 : '\u2014' }}\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 : '\u2014' }}\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 : '\u2014' }}\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 || '\u2014' }}\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 || '\u2014' }}\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 </ng-template>\n </kendo-panelbar-item>\n \n <!-- Model Specific Response Details Panel -->\n @if (record.ModelSpecificResponseDetails) {\n <kendo-panelbar-item [expanded]=\"modelSpecificExpanded\" (stateChange)=\"onModelSpecificPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\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 <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button kendoButton\n fillMode=\"flat\" \n size=\"small\"\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 kendoButton\n fillMode=\"flat\"\n size=\"small\"\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 </ng-template>\n </kendo-panelbar-item>\n }\n \n <!-- Model Selection & Performance Panel (v2.78 fields) -->\n <kendo-panelbar-item [expanded]=\"false\" (stateChange)=\"onModelSelectionPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\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 <ng-template kendoPanelBarContent>\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 || '\u2014' }}\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 : '\u2014' }}\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 kendoButton\n fillMode=\"flat\"\n size=\"small\"\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 kendoButton\n fillMode=\"flat\"\n size=\"small\"\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 </ng-template>\n </kendo-panelbar-item>\n \n </kendo-panelbar>\n </div>\n </form>\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 kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"copyToClipboard(FullScreenContent, FullScreenTitle)\"\n title=\"Copy content\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\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 }\n</div>", styles: ["/* Host and Container Layout */\n:host {\n display: block;\n height: 100%;\n}\n\n.record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n\n.record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0 !important;\n overflow: hidden;\n}\n\n.form-content {\n padding: 16px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n\n/* Error Info Styles */\n.error-info {\n margin-top: 16px;\n padding: 16px;\n background-color: color-mix(in srgb, var(--mj-status-error) 5%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n}\n\n.finish-reason {\n margin: 0 0 12px 0;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.error-details {\n margin-top: 12px;\n}\n\n.error-details h4 {\n margin: 0 0 8px 0;\n color: color-mix(in srgb, var(--mj-status-error) 80%, black);\n font-size: 14px;\n font-weight: 600;\n}\n\n.error-hint {\n margin: 0;\n color: color-mix(in srgb, var(--mj-status-error) 70%, black);\n font-size: 14px;\n font-style: italic;\n}\n\n/* Header Section */\n.prompt-run-header {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n padding: 20px;\n margin-bottom: 0;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n margin-bottom: 16px;\n}\n\n.run-overview {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex: 1;\n}\n\n.run-icon-wrapper {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-icon-wrapper i {\n font-size: 24px;\n}\n\n.run-info {\n flex: 1;\n min-width: 0;\n}\n\n.run-title {\n margin: 0 0 8px 0;\n font-size: 1.5em;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.run-id {\n font-size: 0.8em;\n color: var(--mj-text-muted);\n font-weight: 400;\n font-family: 'Courier New', monospace;\n}\n\n.run-meta {\n display: flex;\n align-items: stretch;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n/* Shared meta-card style (Status, Execution, single Prompt) */\n.meta-card {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n}\n\n.meta-card-body {\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n}\n\n.meta-card-body.clickable {\n cursor: pointer;\n transition: color 0.15s;\n}\n\n.meta-card-body.clickable:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n/* Status indicator dot */\n.status-indicator {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n/* C3 Stacked Connector \u2014 Prompt Card */\n.prompt-card-c3 {\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.c3-child-section {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n font-size: 0.92em;\n font-weight: 600;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-child-section:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n.c3-child-section i.prompt-icon {\n color: var(--mj-brand-primary);\n font-size: 1rem;\n}\n\n.c3-divider {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 14px;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-line {\n flex: 1;\n height: 1px;\n background: var(--mj-border-default);\n}\n\n.c3-divider-label {\n font-size: 0.55rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n color: var(--mj-text-disabled);\n white-space: nowrap;\n}\n\n.c3-parent-section {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px 9px 14px;\n font-size: 0.76em;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.c3-parent-section:hover {\n color: var(--mj-text-secondary);\n}\n\n.c3-parent-section i {\n font-size: 0.75rem;\n}\n\n.c3-link-icon {\n margin-left: auto;\n font-size: 0.6rem !important;\n opacity: 0.4;\n}\n\n.c3-parent-section:hover .c3-link-icon {\n opacity: 0.8;\n}\n\n/* C3 Model Card */\n.model-card-c3 {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: border-color 0.15s;\n}\n\n.model-card-c3:hover {\n border-color: var(--mj-border-strong);\n}\n\n.c3-card-label {\n font-size: 0.6rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n padding: 4px 10px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.c3-card-body {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.c3-model-name {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.c3-model-name i {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.c3-vendor-name {\n font-size: 0.72em;\n color: var(--mj-text-muted);\n font-weight: 400;\n padding-left: 22px;\n}\n\n.original-run {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n font-size: 0.85em;\n}\n\n.original-link {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.original-link:hover {\n color: color-mix(in srgb, var(--mj-status-error) 85%, black);\n text-decoration: underline;\n}\n\n.run-actions {\n display: flex;\n gap: 8px;\n}\n\n/* Metrics Bar */\n.metrics-bar {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n flex-wrap: wrap;\n}\n\n.metric-item {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.metric-item > i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.metric-content {\n display: flex;\n flex-direction: column;\n}\n\n.metric-label {\n font-size: 0.75em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-value {\n font-size: 1.1em;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-link:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n text-decoration: underline;\n}\n\n/* Panels */\n.form-content {\n padding: 16px;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n/* Nested Sub-Panel Styles */\n.sub-panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n font-size: 0.95em;\n}\n\n.sub-panel-content {\n padding: 0;\n}\n\n/* Nested kendo-panelbar styles */\n.k-panelbar .k-panelbar {\n border: none;\n background: transparent;\n}\n\n.k-panelbar .k-panelbar > .k-item {\n border: 1px solid var(--mj-border-default);\n margin-bottom: 8px;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.k-panelbar .k-panelbar > .k-item > .k-link {\n background-color: var(--mj-bg-surface-card);\n padding: 12px 16px;\n}\n\n.k-panelbar .k-panelbar > .k-item.k-expanded > .k-link {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.k-panelbar .k-panelbar .k-content {\n padding: 0;\n background: var(--mj-bg-surface);\n}\n\n/* Ensure chat message viewer takes appropriate height */\n.sub-panel-content mj-chat-message-viewer {\n display: block;\n min-height: 200px;\n max-height: 750px; /* Increased by 50% from 500px */\n height: auto;\n overflow: hidden;\n}\n\n/* Different colors for sub-expansion panels */\n.sub-expansion-panel {\n margin-bottom: 8px;\n}\n\n.sub-expansion-panel::ng-deep .k-expander {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel::ng-deep .k-expander:hover {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.sub-expansion-panel::ng-deep .k-header {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel::ng-deep .k-content {\n background-color: var(--mj-bg-surface);\n border-color: var(--mj-border-default);\n}\n\n.panel-badge {\n margin-left: auto;\n padding: 2px 8px;\n border-radius: 12px;\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 0.75em;\n font-weight: 500;\n}\n\n.panel-badge.error {\n background: var(--mj-status-error);\n color: white;\n}\n\n.panel-count {\n color: var(--mj-text-muted);\n font-weight: 400;\n font-size: 0.9em;\n}\n\n.panel-content {\n padding: 20px;\n max-height: none !important;\n overflow: visible !important;\n}\n\n/* JSON Editor Container */\n.json-editor-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.json-toolbar {\n background: var(--mj-bg-surface-card);\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n}\n\n/* Error Message */\n.error-message {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n padding: 16px;\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n}\n\n.error-message i {\n font-size: 1.5em;\n color: var(--mj-status-error);\n flex-shrink: 0;\n}\n\n.error-content h4 {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 1em;\n}\n\n.error-content p {\n margin: 0;\n color: var(--mj-text-secondary);\n}\n\n/* Empty State */\n.empty-state {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 1.1em;\n}\n\n/* Loading State */\n.loading-state {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.loading-state i {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.6;\n color: var(--mj-brand-primary);\n}\n\n.loading-state p {\n margin: 0;\n font-size: 1.1em;\n}\n\n/* Metrics Grid */\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 20px;\n margin-bottom: 24px;\n}\n\n.metric-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 20px;\n}\n\n.metric-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.metric-header i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n}\n\n.metric-header h4 {\n margin: 0;\n font-size: 0.9em;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.metric-value.large {\n font-size: 1.8em;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.metric-rollup {\n margin-top: 8px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.metric-currency {\n margin-top: 4px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n/* Additional Metrics */\n.additional-metrics {\n padding-top: 16px;\n}\n\n.metric-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.metric-row:last-child {\n border-bottom: none;\n}\n\n.metric-row .metric-label {\n font-weight: 500;\n color: var(--mj-text-muted);\n}\n\n.metric-row .metric-value {\n font-weight: 400;\n color: var(--mj-text-primary);\n}\n\n.metric-row .metric-value.link {\n color: var(--mj-brand-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: color 0.2s;\n}\n\n.metric-row .metric-value.link:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n}\n\n/* Hierarchy Section */\n.parent-run-section,\n.child-runs-section {\n margin-bottom: 24px;\n}\n\n.parent-run-section:last-child,\n.child-runs-section:last-child {\n margin-bottom: 0;\n}\n\n.parent-run-section h4,\n.child-runs-section h4 {\n margin: 0 0 12px 0;\n font-size: 0.95em;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.runs-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.run-item {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.run-item:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n}\n\n.run-item.parent {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.run-item.parent:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-bg-surface));\n}\n\n.run-item-icon {\n width: 36px;\n height: 36px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-item-content {\n flex: 1;\n min-width: 0;\n}\n\n.run-item-title {\n font-weight: 500;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-order {\n background: var(--mj-text-muted);\n color: white;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 0.75em;\n font-weight: 600;\n}\n\n.run-item-type {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n.run-item-meta {\n display: flex;\n align-items: center;\n gap: 16px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.run-item-meta span {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-indicator {\n font-weight: 500;\n}\n\n.run-item > i:last-child {\n color: var(--mj-text-muted);\n font-size: 0.85em;\n}\n\n/* Detail Fields Grid */\n.detail-fields-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 24px;\n width: 100%;\n min-height: auto;\n overflow: visible;\n}\n\n.detail-field {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-field label {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-value {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 1em;\n color: var(--mj-text-primary);\n padding: 10px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: all 0.2s;\n}\n\n.detail-value i:first-child {\n color: var(--mj-text-muted);\n font-size: 1.1em;\n width: 20px;\n text-align: center;\n}\n\n.detail-value.clickable {\n cursor: pointer;\n}\n\n.detail-value.clickable:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.detail-value.clickable i:last-child {\n margin-left: auto;\n font-size: 0.85em;\n opacity: 0.6;\n}\n\n.detail-value.clickable:hover i:last-child {\n opacity: 1;\n}\n\n.detail-value.null-value {\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n.detail-value.null-value i:first-child {\n opacity: 0.5;\n}\n\n/* Kendo Overrides */\nkendo-panelbar {\n border: none !important;\n}\n\nkendo-panelbar-item {\n margin-bottom: 8px;\n border: 1px solid var(--mj-border-default) !important;\n border-radius: 8px !important;\n overflow: hidden;\n}\n\nkendo-panelbar-item .k-panelbar-header {\n background: var(--mj-bg-surface-card) !important;\n border: none !important;\n padding: 12px 16px !important;\n}\n\nkendo-panelbar-item .k-panelbar-header:hover {\n background: var(--mj-border-default) !important;\n}\n\nkendo-panelbar-item .k-panelbar-content {\n border: none !important;\n padding: 0 !important;\n max-height: none !important;\n overflow: visible !important;\n}\n\n/* Validation Panel Styles */\n.validation-summary {\n margin-bottom: 24px;\n}\n\n.summary-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.summary-header h4 {\n margin: 0;\n font-size: 1.1em;\n color: var(--mj-text-primary);\n}\n\n.validation-status {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 16px;\n border-radius: 20px;\n font-weight: 500;\n font-size: 0.9em;\n}\n\n.validation-status.success {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.validation-status.failed {\n background: color-mix(in srgb, var(--mj-status-error) 12%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.validation-metrics {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card.small {\n padding: 16px;\n text-align: center;\n}\n\n.metric-card.small .metric-label {\n font-size: 0.8em;\n margin-bottom: 8px;\n font-weight: 600;\n}\n\n.metric-card.small .metric-value {\n font-size: 1.4em;\n font-weight: 700;\n}\n\n.validation-error,\n.common-error {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 16px;\n}\n\n.validation-error h5,\n.common-error h5 {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 0.95em;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.validation-error p,\n.common-error p {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 0.9em;\n}\n\n.error-count {\n display: inline-block;\n margin-top: 8px;\n padding: 2px 8px;\n background: var(--mj-status-error);\n color: white;\n border-radius: 12px;\n font-size: 0.75em;\n font-weight: 500;\n}\n\n/* Retry Timeline */\n.retry-timeline {\n margin-bottom: 24px;\n}\n\n.retry-timeline h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.timeline-info {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n\n.timeline-stat {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-muted);\n font-size: 0.9em;\n}\n\n.timeline-stat i {\n font-size: 1.1em;\n}\n\n/* Validation Attempts */\n.validation-attempts {\n margin-bottom: 24px;\n}\n\n.validation-attempts h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.attempts-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.attempt-item {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.attempt-item.success {\n background: color-mix(in srgb, var(--mj-status-success) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 18%, var(--mj-bg-surface));\n}\n\n.attempt-item.failed {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n}\n\n.attempt-number {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.attempt-item.success .attempt-number {\n color: var(--mj-status-success);\n}\n\n.attempt-item.failed .attempt-number {\n color: var(--mj-status-error);\n}\n\n.attempt-details {\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n font-size: 0.85em;\n}\n\n.attempt-time {\n color: var(--mj-text-muted);\n}\n\n.attempt-error {\n color: var(--mj-status-error);\n flex: 1 0 100%;\n}\n\n.output-length {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* Validation JSON */\n.validation-json {\n margin-top: 24px;\n}\n\n.validation-json h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.json-viewer-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n/* Panel badge styles */\n.panel-badge.success {\n background: var(--mj-status-success);\n color: white;\n}\n\n/* Full-screen overlay */\n.fullscreen-overlay {\n position: fixed;\n inset: 0;\n z-index: 10000;\n background: var(--mj-bg-overlay, rgba(0, 0, 0, 0.6));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.5rem;\n}\n\n.fullscreen-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n max-width: 95vw;\n max-height: 95vh;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n overflow: hidden;\n}\n\n.fullscreen-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem 1rem;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.fullscreen-title {\n font-weight: 600;\n font-size: 0.9rem;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.fullscreen-title i {\n color: var(--mj-text-secondary);\n}\n\n.fullscreen-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.fullscreen-body {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.fullscreen-body mj-code-editor {\n display: block;\n height: 100%;\n}\n"] }]
|
|
2335
|
+
args: [{ standalone: false, selector: 'mj-ai-prompt-run-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"record-form-container\" style=\"height: 100%; display: flex; flex-direction: column;\">\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <mj-form-toolbar [Form]=\"this\"></mj-form-toolbar>\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) \u2014 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 : '\u2014' }}\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 : '\u2014' }}\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 : '\u2014' }}\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 : '\u2014' }}\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 : '\u2014' }}\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 : '\u2014' }}\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 : '\u2014' }}\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 || '\u2014' }}\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 || '\u2014' }}\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 || '\u2014' }}\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 : '\u2014' }}\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 }\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 }\n</div>", styles: ["/* Host and Container Layout */\n:host {\n display: block;\n height: 100%;\n}\n\n.record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n\n.record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0 !important;\n overflow: hidden;\n}\n\n.form-content {\n padding: 16px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n\n/* Error Info Styles */\n.error-info {\n margin-top: 16px;\n padding: 16px;\n background-color: color-mix(in srgb, var(--mj-status-error) 5%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n}\n\n.finish-reason {\n margin: 0 0 12px 0;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.error-details {\n margin-top: 12px;\n}\n\n.error-details h4 {\n margin: 0 0 8px 0;\n color: color-mix(in srgb, var(--mj-status-error) 80%, black);\n font-size: 14px;\n font-weight: 600;\n}\n\n.error-hint {\n margin: 0;\n color: color-mix(in srgb, var(--mj-status-error) 70%, black);\n font-size: 14px;\n font-style: italic;\n}\n\n/* Header Section */\n.prompt-run-header {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n padding: 20px;\n margin-bottom: 0;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n margin-bottom: 16px;\n}\n\n.run-overview {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex: 1;\n}\n\n.run-icon-wrapper {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-icon-wrapper i {\n font-size: 24px;\n}\n\n.run-info {\n flex: 1;\n min-width: 0;\n}\n\n.run-title {\n margin: 0 0 8px 0;\n font-size: 1.5em;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.run-id {\n font-size: 0.8em;\n color: var(--mj-text-muted);\n font-weight: 400;\n font-family: 'Courier New', monospace;\n}\n\n.run-meta {\n display: flex;\n align-items: stretch;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n/* Shared meta-card style (Status, Execution, single Prompt) */\n.meta-card {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n}\n\n.meta-card-body {\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n}\n\n.meta-card-body.clickable {\n cursor: pointer;\n transition: color 0.15s;\n}\n\n.meta-card-body.clickable:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n/* Status indicator dot */\n.status-indicator {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n/* C3 Stacked Connector \u2014 Prompt Card */\n.prompt-card-c3 {\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.c3-child-section {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n font-size: 0.92em;\n font-weight: 600;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-child-section:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n.c3-child-section i.prompt-icon {\n color: var(--mj-brand-primary);\n font-size: 1rem;\n}\n\n.c3-divider {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 14px;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-line {\n flex: 1;\n height: 1px;\n background: var(--mj-border-default);\n}\n\n.c3-divider-label {\n font-size: 0.55rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n color: var(--mj-text-disabled);\n white-space: nowrap;\n}\n\n.c3-parent-section {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px 9px 14px;\n font-size: 0.76em;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.c3-parent-section:hover {\n color: var(--mj-text-secondary);\n}\n\n.c3-parent-section i {\n font-size: 0.75rem;\n}\n\n.c3-link-icon {\n margin-left: auto;\n font-size: 0.6rem !important;\n opacity: 0.4;\n}\n\n.c3-parent-section:hover .c3-link-icon {\n opacity: 0.8;\n}\n\n/* C3 Model Card */\n.model-card-c3 {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: border-color 0.15s;\n}\n\n.model-card-c3:hover {\n border-color: var(--mj-border-strong);\n}\n\n.c3-card-label {\n font-size: 0.6rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n padding: 4px 10px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.c3-card-body {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.c3-model-name {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.c3-model-name i {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.c3-vendor-name {\n font-size: 0.72em;\n color: var(--mj-text-muted);\n font-weight: 400;\n padding-left: 22px;\n}\n\n.original-run {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n font-size: 0.85em;\n}\n\n.original-link {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.original-link:hover {\n color: color-mix(in srgb, var(--mj-status-error) 85%, black);\n text-decoration: underline;\n}\n\n.run-actions {\n display: flex;\n gap: 8px;\n}\n\n/* Metrics Bar */\n.metrics-bar {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n flex-wrap: wrap;\n}\n\n.metric-item {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.metric-item > i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.metric-content {\n display: flex;\n flex-direction: column;\n}\n\n.metric-label {\n font-size: 0.75em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-value {\n font-size: 1.1em;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-link:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n text-decoration: underline;\n}\n\n/* Panels */\n.form-content {\n padding: 16px;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n/* Nested Sub-Panel Styles */\n.sub-panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n font-size: 0.95em;\n}\n\n.sub-panel-content {\n padding: 0;\n}\n\n/* Nested accordion panel styles */\n.nested-panels mj-accordion-panel {\n margin-bottom: 8px;\n}\n\n/* Ensure chat message viewer takes appropriate height */\n.sub-panel-content mj-chat-message-viewer {\n display: block;\n min-height: 200px;\n max-height: 750px; /* Increased by 50% from 500px */\n height: auto;\n overflow: hidden;\n}\n\n/* Different colors for sub-expansion panels */\n.sub-expansion-panel {\n margin-bottom: 8px;\n}\n\n/* Sub-expansion panel styles */\n.sub-expansion-panel {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.panel-badge {\n margin-left: auto;\n padding: 2px 8px;\n border-radius: 12px;\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 0.75em;\n font-weight: 500;\n}\n\n.panel-badge.error {\n background: var(--mj-status-error);\n color: white;\n}\n\n.panel-count {\n color: var(--mj-text-muted);\n font-weight: 400;\n font-size: 0.9em;\n}\n\n.panel-content {\n padding: 20px;\n max-height: none !important;\n overflow: visible !important;\n}\n\n/* JSON Editor Container */\n.json-editor-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.json-toolbar {\n background: var(--mj-bg-surface-card);\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n}\n\n/* Error Message */\n.error-message {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n padding: 16px;\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n}\n\n.error-message i {\n font-size: 1.5em;\n color: var(--mj-status-error);\n flex-shrink: 0;\n}\n\n.error-content h4 {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 1em;\n}\n\n.error-content p {\n margin: 0;\n color: var(--mj-text-secondary);\n}\n\n/* Empty State */\n.empty-state {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 1.1em;\n}\n\n/* Loading State */\n.loading-state {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.loading-state i {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.6;\n color: var(--mj-brand-primary);\n}\n\n.loading-state p {\n margin: 0;\n font-size: 1.1em;\n}\n\n/* Metrics Grid */\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 20px;\n margin-bottom: 24px;\n}\n\n.metric-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 20px;\n}\n\n.metric-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.metric-header i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n}\n\n.metric-header h4 {\n margin: 0;\n font-size: 0.9em;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.metric-value.large {\n font-size: 1.8em;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.metric-rollup {\n margin-top: 8px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.metric-currency {\n margin-top: 4px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n/* Additional Metrics */\n.additional-metrics {\n padding-top: 16px;\n}\n\n.metric-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.metric-row:last-child {\n border-bottom: none;\n}\n\n.metric-row .metric-label {\n font-weight: 500;\n color: var(--mj-text-muted);\n}\n\n.metric-row .metric-value {\n font-weight: 400;\n color: var(--mj-text-primary);\n}\n\n.metric-row .metric-value.link {\n color: var(--mj-brand-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: color 0.2s;\n}\n\n.metric-row .metric-value.link:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n}\n\n/* Hierarchy Section */\n.parent-run-section,\n.child-runs-section {\n margin-bottom: 24px;\n}\n\n.parent-run-section:last-child,\n.child-runs-section:last-child {\n margin-bottom: 0;\n}\n\n.parent-run-section h4,\n.child-runs-section h4 {\n margin: 0 0 12px 0;\n font-size: 0.95em;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.runs-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.run-item {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.run-item:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n}\n\n.run-item.parent {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.run-item.parent:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-bg-surface));\n}\n\n.run-item-icon {\n width: 36px;\n height: 36px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-item-content {\n flex: 1;\n min-width: 0;\n}\n\n.run-item-title {\n font-weight: 500;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-order {\n background: var(--mj-text-muted);\n color: white;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 0.75em;\n font-weight: 600;\n}\n\n.run-item-type {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n.run-item-meta {\n display: flex;\n align-items: center;\n gap: 16px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.run-item-meta span {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-indicator {\n font-weight: 500;\n}\n\n.run-item > i:last-child {\n color: var(--mj-text-muted);\n font-size: 0.85em;\n}\n\n/* Detail Fields Grid */\n.detail-fields-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 24px;\n width: 100%;\n min-height: auto;\n overflow: visible;\n}\n\n.detail-field {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-field label {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-value {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 1em;\n color: var(--mj-text-primary);\n padding: 10px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: all 0.2s;\n}\n\n.detail-value i:first-child {\n color: var(--mj-text-muted);\n font-size: 1.1em;\n width: 20px;\n text-align: center;\n}\n\n.detail-value.clickable {\n cursor: pointer;\n}\n\n.detail-value.clickable:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.detail-value.clickable i:last-child {\n margin-left: auto;\n font-size: 0.85em;\n opacity: 0.6;\n}\n\n.detail-value.clickable:hover i:last-child {\n opacity: 1;\n}\n\n.detail-value.null-value {\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n.detail-value.null-value i:first-child {\n opacity: 0.5;\n}\n\n/* Accordion Panel Overrides */\nmj-accordion-panel {\n display: block;\n}\n\n/* Validation Panel Styles */\n.validation-summary {\n margin-bottom: 24px;\n}\n\n.summary-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.summary-header h4 {\n margin: 0;\n font-size: 1.1em;\n color: var(--mj-text-primary);\n}\n\n.validation-status {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 16px;\n border-radius: 20px;\n font-weight: 500;\n font-size: 0.9em;\n}\n\n.validation-status.success {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.validation-status.failed {\n background: color-mix(in srgb, var(--mj-status-error) 12%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.validation-metrics {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card.small {\n padding: 16px;\n text-align: center;\n}\n\n.metric-card.small .metric-label {\n font-size: 0.8em;\n margin-bottom: 8px;\n font-weight: 600;\n}\n\n.metric-card.small .metric-value {\n font-size: 1.4em;\n font-weight: 700;\n}\n\n.validation-error,\n.common-error {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 16px;\n}\n\n.validation-error h5,\n.common-error h5 {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 0.95em;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.validation-error p,\n.common-error p {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 0.9em;\n}\n\n.error-count {\n display: inline-block;\n margin-top: 8px;\n padding: 2px 8px;\n background: var(--mj-status-error);\n color: white;\n border-radius: 12px;\n font-size: 0.75em;\n font-weight: 500;\n}\n\n/* Retry Timeline */\n.retry-timeline {\n margin-bottom: 24px;\n}\n\n.retry-timeline h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.timeline-info {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n\n.timeline-stat {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-muted);\n font-size: 0.9em;\n}\n\n.timeline-stat i {\n font-size: 1.1em;\n}\n\n/* Validation Attempts */\n.validation-attempts {\n margin-bottom: 24px;\n}\n\n.validation-attempts h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.attempts-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.attempt-item {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.attempt-item.success {\n background: color-mix(in srgb, var(--mj-status-success) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 18%, var(--mj-bg-surface));\n}\n\n.attempt-item.failed {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n}\n\n.attempt-number {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.attempt-item.success .attempt-number {\n color: var(--mj-status-success);\n}\n\n.attempt-item.failed .attempt-number {\n color: var(--mj-status-error);\n}\n\n.attempt-details {\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n font-size: 0.85em;\n}\n\n.attempt-time {\n color: var(--mj-text-muted);\n}\n\n.attempt-error {\n color: var(--mj-status-error);\n flex: 1 0 100%;\n}\n\n.output-length {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* Validation JSON */\n.validation-json {\n margin-top: 24px;\n}\n\n.validation-json h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.json-viewer-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n/* Panel badge styles */\n.panel-badge.success {\n background: var(--mj-status-success);\n color: white;\n}\n\n/* Full-screen overlay */\n.fullscreen-overlay {\n position: fixed;\n inset: 0;\n z-index: 10000;\n background: var(--mj-bg-overlay, rgba(0, 0, 0, 0.6));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.5rem;\n}\n\n.fullscreen-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n max-width: 95vw;\n max-height: 95vh;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n overflow: hidden;\n}\n\n.fullscreen-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem 1rem;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.fullscreen-title {\n font-weight: 600;\n font-size: 0.9rem;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.fullscreen-title i {\n color: var(--mj-text-secondary);\n}\n\n.fullscreen-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.fullscreen-body {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.fullscreen-body mj-code-editor {\n display: block;\n height: 100%;\n}\n"] }]
|
|
2380
2336
|
}], null, null); })();
|
|
2381
2337
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJAIPromptRunFormComponentExtended, { className: "MJAIPromptRunFormComponentExtended", filePath: "src/lib/custom/AIPromptRuns/ai-prompt-run-form.component.ts", lineNumber: 21 }); })();
|
|
2382
2338
|
//# sourceMappingURL=ai-prompt-run-form.component.js.map
|