@memberjunction/ng-core-entity-forms 5.22.0 → 5.23.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/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 +22 -27
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +51 -81
- 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 +80 -44
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js +11 -8
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +39 -24
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.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 +35 -17
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +15 -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/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/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 +280 -279
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +102 -142
- 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
|
@@ -12,7 +12,7 @@ import { CompositeKey, Metadata, RunView } from '@memberjunction/core';
|
|
|
12
12
|
import { UserInfoEngine } from '@memberjunction/core-entities';
|
|
13
13
|
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
14
14
|
import { MJAIAgentFormComponent } from '../../generated/Entities/MJAIAgent/mjaiagent.form.component';
|
|
15
|
-
import {
|
|
15
|
+
import { MJDialogService } from '@memberjunction/ng-ui-components';
|
|
16
16
|
import { SharedService } from '@memberjunction/ng-shared';
|
|
17
17
|
import { AIAgentManagementService } from './ai-agent-management.service';
|
|
18
18
|
import { AITestHarnessDialogService } from '@memberjunction/ng-ai-test-harness';
|
|
@@ -24,44 +24,40 @@ import { PromptSelectorDialogComponent } from './prompt-selector-dialog.componen
|
|
|
24
24
|
import { CreateAgentService } from '@memberjunction/ng-agents';
|
|
25
25
|
import * as i0 from "@angular/core";
|
|
26
26
|
import * as i1 from "@angular/forms";
|
|
27
|
-
import * as i2 from "@
|
|
28
|
-
import * as i3 from "@
|
|
29
|
-
import * as i4 from "@
|
|
30
|
-
import * as i5 from "@
|
|
31
|
-
import * as i6 from "@
|
|
32
|
-
import * as i7 from "@memberjunction/ng-
|
|
33
|
-
import * as i8 from "@
|
|
34
|
-
import * as i9 from "@memberjunction/ng-shared-generic";
|
|
35
|
-
import * as i10 from "@memberjunction/ng-agents";
|
|
36
|
-
import * as i11 from "@memberjunction/ng-trees";
|
|
37
|
-
import * as i12 from "@angular/common";
|
|
27
|
+
import * as i2 from "@memberjunction/ng-ui-components";
|
|
28
|
+
import * as i3 from "@memberjunction/ng-base-forms";
|
|
29
|
+
import * as i4 from "@memberjunction/ng-code-editor";
|
|
30
|
+
import * as i5 from "@memberjunction/ng-shared-generic";
|
|
31
|
+
import * as i6 from "@memberjunction/ng-agents";
|
|
32
|
+
import * as i7 from "@memberjunction/ng-trees";
|
|
33
|
+
import * as i8 from "@angular/common";
|
|
38
34
|
const _c0 = ["customSectionContainer"];
|
|
39
35
|
const _c1 = () => ({ standalone: true });
|
|
40
36
|
const _forTrack0 = ($index, $item) => $item.ID;
|
|
41
37
|
const _forTrack1 = ($index, $item) => $item.agent.ID;
|
|
42
|
-
function
|
|
43
|
-
i0.ɵɵelement(0, "img",
|
|
38
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
i0.ɵɵelement(0, "img", 113);
|
|
44
40
|
} if (rf & 2) {
|
|
45
41
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
46
42
|
i0.ɵɵproperty("src", ctx_r2.record.LogoURL, i0.ɵɵsanitizeUrl)("alt", ctx_r2.record.Name + " logo");
|
|
47
43
|
} }
|
|
48
|
-
function
|
|
44
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
49
45
|
i0.ɵɵelement(0, "i");
|
|
50
46
|
} if (rf & 2) {
|
|
51
47
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
52
48
|
i0.ɵɵclassMap(ctx_r2.getAgentIcon());
|
|
53
49
|
} }
|
|
54
|
-
function
|
|
50
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
55
51
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
56
|
-
i0.ɵɵelementStart(0, "
|
|
57
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
52
|
+
i0.ɵɵelementStart(0, "input", 125);
|
|
53
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_9_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.record.Name, $event) || (ctx_r2.record.Name = $event); return i0.ɵɵresetView($event); });
|
|
58
54
|
i0.ɵɵelementEnd();
|
|
59
55
|
} if (rf & 2) {
|
|
60
56
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
61
57
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.Name);
|
|
62
58
|
} }
|
|
63
|
-
function
|
|
64
|
-
i0.ɵɵelementStart(0, "h1",
|
|
59
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
+
i0.ɵɵelementStart(0, "h1", 117);
|
|
65
61
|
i0.ɵɵtext(1);
|
|
66
62
|
i0.ɵɵelementEnd();
|
|
67
63
|
} if (rf & 2) {
|
|
@@ -69,9 +65,9 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_3_Conditional_
|
|
|
69
65
|
i0.ɵɵadvance();
|
|
70
66
|
i0.ɵɵtextInterpolate(ctx_r2.record.Name || "Untitled AI Agent");
|
|
71
67
|
} }
|
|
72
|
-
function
|
|
73
|
-
i0.ɵɵelementStart(0, "span",
|
|
74
|
-
i0.ɵɵelement(1, "i",
|
|
68
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
69
|
+
i0.ɵɵelementStart(0, "span", 126);
|
|
70
|
+
i0.ɵɵelement(1, "i", 127);
|
|
75
71
|
i0.ɵɵtext(2);
|
|
76
72
|
i0.ɵɵelementEnd();
|
|
77
73
|
} if (rf & 2) {
|
|
@@ -80,8 +76,8 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_3_Conditional_
|
|
|
80
76
|
i0.ɵɵadvance(2);
|
|
81
77
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.record.Status, " ");
|
|
82
78
|
} }
|
|
83
|
-
function
|
|
84
|
-
i0.ɵɵelementStart(0, "span",
|
|
79
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
80
|
+
i0.ɵɵelementStart(0, "span", 120);
|
|
85
81
|
i0.ɵɵtext(1);
|
|
86
82
|
i0.ɵɵelementEnd();
|
|
87
83
|
} if (rf & 2) {
|
|
@@ -89,13 +85,13 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_3_Conditional_
|
|
|
89
85
|
i0.ɵɵadvance();
|
|
90
86
|
i0.ɵɵtextInterpolate1(" Agent Type: ", ctx_r2.record.Type, " ");
|
|
91
87
|
} }
|
|
92
|
-
function
|
|
88
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
93
89
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
94
|
-
i0.ɵɵelementStart(0, "span",
|
|
95
|
-
i0.ɵɵlistener("click", function
|
|
96
|
-
i0.ɵɵelement(1, "i",
|
|
90
|
+
i0.ɵɵelementStart(0, "span", 128);
|
|
91
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_14_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.navigateToParentAgent()); });
|
|
92
|
+
i0.ɵɵelement(1, "i", 83);
|
|
97
93
|
i0.ɵɵtext(2);
|
|
98
|
-
i0.ɵɵelement(3, "i",
|
|
94
|
+
i0.ɵɵelement(3, "i", 129);
|
|
99
95
|
i0.ɵɵelementEnd();
|
|
100
96
|
} if (rf & 2) {
|
|
101
97
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
@@ -103,16 +99,16 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_3_Conditional_
|
|
|
103
99
|
i0.ɵɵadvance(2);
|
|
104
100
|
i0.ɵɵtextInterpolate1(" Child of ", ctx_r2.record.Parent, " ");
|
|
105
101
|
} }
|
|
106
|
-
function
|
|
102
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
107
103
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
108
|
-
i0.ɵɵelementStart(0, "button",
|
|
109
|
-
i0.ɵɵlistener("click", function
|
|
110
|
-
i0.ɵɵelement(1, "i",
|
|
104
|
+
i0.ɵɵelementStart(0, "button", 130);
|
|
105
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openTestHarness()); });
|
|
106
|
+
i0.ɵɵelement(1, "i", 92);
|
|
111
107
|
i0.ɵɵtext(2, " Run ");
|
|
112
108
|
i0.ɵɵelementEnd();
|
|
113
|
-
i0.ɵɵelementStart(3, "button",
|
|
114
|
-
i0.ɵɵlistener("click", function
|
|
115
|
-
i0.ɵɵelement(4, "i",
|
|
109
|
+
i0.ɵɵelementStart(3, "button", 131);
|
|
110
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_16_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openPermissionsDialog()); });
|
|
111
|
+
i0.ɵɵelement(4, "i", 132);
|
|
116
112
|
i0.ɵɵtext(5);
|
|
117
113
|
i0.ɵɵelementEnd();
|
|
118
114
|
} if (rf & 2) {
|
|
@@ -126,27 +122,27 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_3_Conditional_
|
|
|
126
122
|
i0.ɵɵadvance();
|
|
127
123
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.IsOpenToEveryone ? "Open" : "Restricted", " ");
|
|
128
124
|
} }
|
|
129
|
-
function
|
|
125
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
130
126
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
131
|
-
i0.ɵɵelementStart(0, "div",
|
|
132
|
-
i0.ɵɵlistener("click", function
|
|
133
|
-
i0.ɵɵelement(3, "i",
|
|
134
|
-
i0.ɵɵelementEnd();
|
|
135
|
-
i0.ɵɵelementStart(4, "div",
|
|
136
|
-
i0.ɵɵconditionalCreate(6,
|
|
137
|
-
i0.ɵɵelementEnd();
|
|
138
|
-
i0.ɵɵelementStart(8, "div",
|
|
139
|
-
i0.ɵɵconditionalCreate(9,
|
|
140
|
-
i0.ɵɵelementStart(11, "div",
|
|
141
|
-
i0.ɵɵconditionalCreate(12,
|
|
142
|
-
i0.ɵɵconditionalCreate(13,
|
|
143
|
-
i0.ɵɵconditionalCreate(14,
|
|
127
|
+
i0.ɵɵelementStart(0, "div", 6)(1, "div", 108)(2, "button", 109);
|
|
128
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ToggleHeaderCollapsed()); });
|
|
129
|
+
i0.ɵɵelement(3, "i", 110);
|
|
130
|
+
i0.ɵɵelementEnd();
|
|
131
|
+
i0.ɵɵelementStart(4, "div", 111)(5, "div", 112);
|
|
132
|
+
i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_6_Template, 1, 2, "img", 113)(7, MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_7_Template, 1, 2, "i", 114);
|
|
133
|
+
i0.ɵɵelementEnd();
|
|
134
|
+
i0.ɵɵelementStart(8, "div", 115);
|
|
135
|
+
i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_9_Template, 1, 1, "input", 116)(10, MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_10_Template, 2, 1, "h1", 117);
|
|
136
|
+
i0.ɵɵelementStart(11, "div", 118);
|
|
137
|
+
i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_12_Template, 3, 3, "span", 119);
|
|
138
|
+
i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_13_Template, 2, 1, "span", 120);
|
|
139
|
+
i0.ɵɵconditionalCreate(14, MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_14_Template, 4, 3, "span", 121);
|
|
144
140
|
i0.ɵɵelementEnd()()();
|
|
145
|
-
i0.ɵɵelementStart(15, "div",
|
|
146
|
-
i0.ɵɵconditionalCreate(16,
|
|
147
|
-
i0.ɵɵelementStart(17, "button",
|
|
148
|
-
i0.ɵɵlistener("click", function
|
|
149
|
-
i0.ɵɵelement(18, "i",
|
|
141
|
+
i0.ɵɵelementStart(15, "div", 122);
|
|
142
|
+
i0.ɵɵconditionalCreate(16, MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Conditional_16_Template, 6, 9);
|
|
143
|
+
i0.ɵɵelementStart(17, "button", 123);
|
|
144
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.refreshRelatedData()); });
|
|
145
|
+
i0.ɵɵelement(18, "i", 124);
|
|
150
146
|
i0.ɵɵelementEnd()()()();
|
|
151
147
|
} if (rf & 2) {
|
|
152
148
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
@@ -163,8 +159,8 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_3_Template(rf,
|
|
|
163
159
|
i0.ɵɵadvance(2);
|
|
164
160
|
i0.ɵɵconditional(ctx_r2.record.ID ? 16 : -1);
|
|
165
161
|
} }
|
|
166
|
-
function
|
|
167
|
-
i0.ɵɵelementStart(0, "span",
|
|
162
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
163
|
+
i0.ɵɵelementStart(0, "span", 139);
|
|
168
164
|
i0.ɵɵtext(1);
|
|
169
165
|
i0.ɵɵelementEnd();
|
|
170
166
|
} if (rf & 2) {
|
|
@@ -173,15 +169,15 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_4_Conditional_
|
|
|
173
169
|
i0.ɵɵadvance();
|
|
174
170
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.record.Status, " ");
|
|
175
171
|
} }
|
|
176
|
-
function
|
|
172
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_4_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
177
173
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
178
|
-
i0.ɵɵelementStart(0, "button",
|
|
179
|
-
i0.ɵɵlistener("click", function
|
|
180
|
-
i0.ɵɵelement(1, "i",
|
|
174
|
+
i0.ɵɵelementStart(0, "button", 140);
|
|
175
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_4_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openTestHarness()); });
|
|
176
|
+
i0.ɵɵelement(1, "i", 92);
|
|
181
177
|
i0.ɵɵelementEnd();
|
|
182
|
-
i0.ɵɵelementStart(2, "button",
|
|
183
|
-
i0.ɵɵlistener("click", function
|
|
184
|
-
i0.ɵɵelement(3, "i",
|
|
178
|
+
i0.ɵɵelementStart(2, "button", 141);
|
|
179
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_4_Conditional_7_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openPermissionsDialog()); });
|
|
180
|
+
i0.ɵɵelement(3, "i", 132);
|
|
185
181
|
i0.ɵɵelementEnd();
|
|
186
182
|
} if (rf & 2) {
|
|
187
183
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
@@ -192,21 +188,21 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_4_Conditional_
|
|
|
192
188
|
i0.ɵɵstyleProp("color", ctx_r2.IsOpenToEveryone ? "var(--mj-status-success)" : null);
|
|
193
189
|
i0.ɵɵclassProp("fa-lock-open", ctx_r2.IsOpenToEveryone)("fa-lock", !ctx_r2.IsOpenToEveryone);
|
|
194
190
|
} }
|
|
195
|
-
function
|
|
191
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
196
192
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
197
|
-
i0.ɵɵelementStart(0, "div",
|
|
198
|
-
i0.ɵɵlistener("click", function
|
|
199
|
-
i0.ɵɵelement(2, "i",
|
|
193
|
+
i0.ɵɵelementStart(0, "div", 7)(1, "button", 133);
|
|
194
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ToggleHeaderCollapsed()); });
|
|
195
|
+
i0.ɵɵelement(2, "i", 134);
|
|
200
196
|
i0.ɵɵelementEnd();
|
|
201
|
-
i0.ɵɵelementStart(3, "span",
|
|
197
|
+
i0.ɵɵelementStart(3, "span", 135);
|
|
202
198
|
i0.ɵɵtext(4);
|
|
203
199
|
i0.ɵɵelementEnd();
|
|
204
|
-
i0.ɵɵconditionalCreate(5,
|
|
205
|
-
i0.ɵɵelement(6, "div",
|
|
206
|
-
i0.ɵɵconditionalCreate(7,
|
|
207
|
-
i0.ɵɵelementStart(8, "button",
|
|
208
|
-
i0.ɵɵlistener("click", function
|
|
209
|
-
i0.ɵɵelement(9, "i",
|
|
200
|
+
i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_1_Conditional_4_Conditional_5_Template, 2, 3, "span", 136);
|
|
201
|
+
i0.ɵɵelement(6, "div", 137);
|
|
202
|
+
i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_1_Conditional_4_Conditional_7_Template, 4, 8);
|
|
203
|
+
i0.ɵɵelementStart(8, "button", 138);
|
|
204
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_4_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.refreshRelatedData()); });
|
|
205
|
+
i0.ɵɵelement(9, "i", 124);
|
|
210
206
|
i0.ɵɵelementEnd()();
|
|
211
207
|
} if (rf & 2) {
|
|
212
208
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
@@ -217,74 +213,74 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_4_Template(rf,
|
|
|
217
213
|
i0.ɵɵadvance(2);
|
|
218
214
|
i0.ɵɵconditional(ctx_r2.record.ID ? 7 : -1);
|
|
219
215
|
} }
|
|
220
|
-
function
|
|
221
|
-
i0.ɵɵelement(0, "i",
|
|
216
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_6_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
217
|
+
i0.ɵɵelement(0, "i", 144);
|
|
222
218
|
i0.ɵɵtext(1);
|
|
223
219
|
} if (rf & 2) {
|
|
224
220
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
225
221
|
i0.ɵɵadvance();
|
|
226
222
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.agentType.Name, " Configuration ");
|
|
227
223
|
} }
|
|
228
|
-
function
|
|
229
|
-
i0.ɵɵelement(0, "mj-loading",
|
|
224
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
225
|
+
i0.ɵɵelement(0, "mj-loading", 143);
|
|
230
226
|
} if (rf & 2) {
|
|
231
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
227
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
232
228
|
i0.ɵɵproperty("text", i0.ɵɵinterpolate1("Loading ", ctx_r2.agentType.Name, " configuration..."));
|
|
233
229
|
} }
|
|
234
|
-
function
|
|
235
|
-
i0.ɵɵelementStart(0, "
|
|
236
|
-
i0.ɵɵ
|
|
237
|
-
i0.ɵɵ
|
|
238
|
-
i0.ɵɵ
|
|
230
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
231
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 9);
|
|
232
|
+
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_6_ng_template_1_Template, 2, 1, "ng-template", 17);
|
|
233
|
+
i0.ɵɵelementStart(2, "div", 142);
|
|
234
|
+
i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_6_Conditional_3_Template, 1, 2, "mj-loading", 143);
|
|
235
|
+
i0.ɵɵelementContainer(4, null, 1);
|
|
236
|
+
i0.ɵɵelementEnd()();
|
|
239
237
|
} if (rf & 2) {
|
|
240
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
238
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
239
|
+
i0.ɵɵproperty("Expanded", ctx_r2.GetSectionExpanded("custom", ctx_r2.agentType.UIFormSectionExpandedByDefault));
|
|
240
|
+
i0.ɵɵadvance(2);
|
|
241
241
|
i0.ɵɵstyleProp("display", "block");
|
|
242
242
|
i0.ɵɵadvance();
|
|
243
|
-
i0.ɵɵconditional(ctx_r2.loadingStates.customSection ?
|
|
244
|
-
} }
|
|
245
|
-
function MJAIAgentFormComponentExtended_Conditional_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
246
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item", 12);
|
|
247
|
-
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_3_Conditional_7_ng_template_1_Template, 2, 1, "ng-template", 20)(2, MJAIAgentFormComponentExtended_Conditional_3_Conditional_7_ng_template_2_Template, 4, 3, "ng-template", 21);
|
|
248
|
-
i0.ɵɵelementEnd();
|
|
249
|
-
} if (rf & 2) {
|
|
250
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
251
|
-
i0.ɵɵproperty("expanded", ctx_r2.GetSectionExpanded("custom", ctx_r2.agentType.UIFormSectionExpandedByDefault));
|
|
243
|
+
i0.ɵɵconditional(ctx_r2.loadingStates.customSection ? 3 : -1);
|
|
252
244
|
} }
|
|
253
|
-
function
|
|
254
|
-
i0.ɵɵelementStart(0, "span",
|
|
255
|
-
i0.ɵɵelement(1, "i",
|
|
245
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
246
|
+
i0.ɵɵelementStart(0, "span", 149);
|
|
247
|
+
i0.ɵɵelement(1, "i", 150);
|
|
256
248
|
i0.ɵɵelementEnd();
|
|
257
249
|
} }
|
|
258
|
-
function
|
|
250
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_ng_template_1_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
259
251
|
i0.ɵɵtext(0);
|
|
260
252
|
} if (rf & 2) {
|
|
261
253
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
262
|
-
i0.ɵɵtextInterpolate1(" of ", ctx_r2.totalExecutionHistoryCount
|
|
254
|
+
i0.ɵɵtextInterpolate1(" of ", ctx_r2.totalExecutionHistoryCount);
|
|
263
255
|
} }
|
|
264
|
-
function
|
|
256
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
265
257
|
i0.ɵɵelementStart(0, "span");
|
|
266
258
|
i0.ɵɵtext(1);
|
|
267
|
-
i0.ɵɵconditionalCreate(2,
|
|
259
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_ng_template_1_Conditional_3_Conditional_2_Template, 1, 1);
|
|
260
|
+
i0.ɵɵtext(3, ")");
|
|
268
261
|
i0.ɵɵelementEnd();
|
|
269
262
|
} if (rf & 2) {
|
|
270
263
|
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
271
264
|
i0.ɵɵadvance();
|
|
272
|
-
i0.ɵɵtextInterpolate1(" (", ctx_r2.executionHistoryCount
|
|
265
|
+
i0.ɵɵtextInterpolate1(" (", ctx_r2.executionHistoryCount);
|
|
273
266
|
i0.ɵɵadvance();
|
|
274
267
|
i0.ɵɵconditional(ctx_r2.executionHistoryCount < ctx_r2.totalExecutionHistoryCount ? 2 : -1);
|
|
275
268
|
} }
|
|
276
|
-
function
|
|
277
|
-
i0.ɵɵelement(0, "i",
|
|
269
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
270
|
+
i0.ɵɵelement(0, "i", 148);
|
|
278
271
|
i0.ɵɵtext(1, " Execution History ");
|
|
279
|
-
i0.ɵɵconditionalCreate(2,
|
|
272
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_ng_template_1_Conditional_2_Template, 2, 0, "span", 149)(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_ng_template_1_Conditional_3_Template, 4, 2, "span");
|
|
280
273
|
} if (rf & 2) {
|
|
281
274
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
282
275
|
i0.ɵɵadvance(2);
|
|
283
276
|
i0.ɵɵconditional(ctx_r2.loadingStates.executionHistory ? 2 : ctx_r2.executionHistoryCount > 0 ? 3 : -1);
|
|
284
277
|
} }
|
|
285
|
-
function
|
|
286
|
-
i0.ɵɵ
|
|
287
|
-
|
|
278
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
279
|
+
i0.ɵɵelement(0, "mj-loading", 146);
|
|
280
|
+
} }
|
|
281
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
282
|
+
i0.ɵɵelementStart(0, "div", 147);
|
|
283
|
+
i0.ɵɵelement(1, "i", 148);
|
|
288
284
|
i0.ɵɵelementStart(2, "h4");
|
|
289
285
|
i0.ɵɵtext(3, "No Execution History");
|
|
290
286
|
i0.ɵɵelementEnd();
|
|
@@ -292,12 +288,9 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_
|
|
|
292
288
|
i0.ɵɵtext(5, "This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.");
|
|
293
289
|
i0.ɵɵelementEnd()();
|
|
294
290
|
} }
|
|
295
|
-
function
|
|
296
|
-
i0.ɵɵ
|
|
297
|
-
|
|
298
|
-
function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_2_Conditional_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
299
|
-
i0.ɵɵelementStart(0, "div", 67);
|
|
300
|
-
i0.ɵɵelement(1, "i", 74);
|
|
291
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
292
|
+
i0.ɵɵelementStart(0, "div", 147);
|
|
293
|
+
i0.ɵɵelement(1, "i", 153);
|
|
301
294
|
i0.ɵɵelementStart(2, "h4");
|
|
302
295
|
i0.ɵɵtext(3, "No Matching Results");
|
|
303
296
|
i0.ɵɵelementEnd();
|
|
@@ -305,17 +298,17 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_
|
|
|
305
298
|
i0.ɵɵtext(5);
|
|
306
299
|
i0.ɵɵelementEnd()();
|
|
307
300
|
} if (rf & 2) {
|
|
308
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
301
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
309
302
|
i0.ɵɵadvance(5);
|
|
310
303
|
i0.ɵɵtextInterpolate1("No execution history found matching \"", ctx_r2.executionSearchText, "\"");
|
|
311
304
|
} }
|
|
312
|
-
function
|
|
313
|
-
i0.ɵɵelementStart(0, "div",
|
|
314
|
-
i0.ɵɵelement(1, "i",
|
|
315
|
-
i0.ɵɵelementStart(2, "span",
|
|
305
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
306
|
+
i0.ɵɵelementStart(0, "div", 168);
|
|
307
|
+
i0.ɵɵelement(1, "i", 173);
|
|
308
|
+
i0.ɵɵelementStart(2, "span", 174);
|
|
316
309
|
i0.ɵɵtext(3, "Config:");
|
|
317
310
|
i0.ɵɵelementEnd();
|
|
318
|
-
i0.ɵɵelementStart(4, "span",
|
|
311
|
+
i0.ɵɵelementStart(4, "span", 175);
|
|
319
312
|
i0.ɵɵtext(5);
|
|
320
313
|
i0.ɵɵelementEnd()();
|
|
321
314
|
} if (rf & 2) {
|
|
@@ -323,65 +316,65 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_
|
|
|
323
316
|
i0.ɵɵadvance(5);
|
|
324
317
|
i0.ɵɵtextInterpolate(execution_r11.Configuration);
|
|
325
318
|
} }
|
|
326
|
-
function
|
|
327
|
-
i0.ɵɵelementStart(0, "div",
|
|
328
|
-
i0.ɵɵelement(1, "i",
|
|
329
|
-
i0.ɵɵelementStart(2, "span",
|
|
319
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
320
|
+
i0.ɵɵelementStart(0, "div", 168);
|
|
321
|
+
i0.ɵɵelement(1, "i", 176);
|
|
322
|
+
i0.ɵɵelementStart(2, "span", 174);
|
|
330
323
|
i0.ɵɵtext(3, "Duration:");
|
|
331
324
|
i0.ɵɵelementEnd();
|
|
332
|
-
i0.ɵɵelementStart(4, "span",
|
|
325
|
+
i0.ɵɵelementStart(4, "span", 175);
|
|
333
326
|
i0.ɵɵtext(5);
|
|
334
327
|
i0.ɵɵelementEnd()();
|
|
335
328
|
} if (rf & 2) {
|
|
336
329
|
const execution_r11 = i0.ɵɵnextContext().$implicit;
|
|
337
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
330
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
338
331
|
i0.ɵɵadvance(5);
|
|
339
332
|
i0.ɵɵtextInterpolate(ctx_r2.formatExecutionTimeFromDates(execution_r11.StartedAt, execution_r11.CompletedAt));
|
|
340
333
|
} }
|
|
341
|
-
function
|
|
342
|
-
i0.ɵɵelementStart(0, "div",
|
|
343
|
-
i0.ɵɵelement(1, "i",
|
|
344
|
-
i0.ɵɵelementStart(2, "span",
|
|
334
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
335
|
+
i0.ɵɵelementStart(0, "div", 168);
|
|
336
|
+
i0.ɵɵelement(1, "i", 177);
|
|
337
|
+
i0.ɵɵelementStart(2, "span", 174);
|
|
345
338
|
i0.ɵɵtext(3, "Running:");
|
|
346
339
|
i0.ɵɵelementEnd()();
|
|
347
340
|
} }
|
|
348
|
-
function
|
|
349
|
-
i0.ɵɵelementStart(0, "div",
|
|
350
|
-
i0.ɵɵelement(1, "i",
|
|
351
|
-
i0.ɵɵelementStart(2, "span",
|
|
341
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
342
|
+
i0.ɵɵelementStart(0, "div", 168);
|
|
343
|
+
i0.ɵɵelement(1, "i", 178);
|
|
344
|
+
i0.ɵɵelementStart(2, "span", 174);
|
|
352
345
|
i0.ɵɵtext(3, "Tokens:");
|
|
353
346
|
i0.ɵɵelementEnd();
|
|
354
|
-
i0.ɵɵelementStart(4, "span",
|
|
347
|
+
i0.ɵɵelementStart(4, "span", 175);
|
|
355
348
|
i0.ɵɵtext(5);
|
|
356
349
|
i0.ɵɵelementEnd()();
|
|
357
350
|
} if (rf & 2) {
|
|
358
351
|
const execution_r11 = i0.ɵɵnextContext().$implicit;
|
|
359
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
352
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
360
353
|
i0.ɵɵadvance(5);
|
|
361
354
|
i0.ɵɵtextInterpolate(ctx_r2.formatTokenCount(execution_r11.TotalTokensUsedRollup || execution_r11.TotalTokensUsed));
|
|
362
355
|
} }
|
|
363
|
-
function
|
|
364
|
-
i0.ɵɵelementStart(0, "div",
|
|
365
|
-
i0.ɵɵelement(1, "i",
|
|
366
|
-
i0.ɵɵelementStart(2, "span",
|
|
356
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
357
|
+
i0.ɵɵelementStart(0, "div", 168);
|
|
358
|
+
i0.ɵɵelement(1, "i", 179);
|
|
359
|
+
i0.ɵɵelementStart(2, "span", 174);
|
|
367
360
|
i0.ɵɵtext(3, "Cost:");
|
|
368
361
|
i0.ɵɵelementEnd();
|
|
369
|
-
i0.ɵɵelementStart(4, "span",
|
|
362
|
+
i0.ɵɵelementStart(4, "span", 175);
|
|
370
363
|
i0.ɵɵtext(5);
|
|
371
364
|
i0.ɵɵelementEnd()();
|
|
372
365
|
} if (rf & 2) {
|
|
373
366
|
const execution_r11 = i0.ɵɵnextContext().$implicit;
|
|
374
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
367
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
375
368
|
i0.ɵɵadvance(5);
|
|
376
369
|
i0.ɵɵtextInterpolate1("$", ctx_r2.formatCost(execution_r11.TotalCostRollup || execution_r11.TotalCost));
|
|
377
370
|
} }
|
|
378
|
-
function
|
|
379
|
-
i0.ɵɵelementStart(0, "div",
|
|
380
|
-
i0.ɵɵelement(1, "i",
|
|
381
|
-
i0.ɵɵelementStart(2, "div",
|
|
371
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
372
|
+
i0.ɵɵelementStart(0, "div", 182);
|
|
373
|
+
i0.ɵɵelement(1, "i", 188);
|
|
374
|
+
i0.ɵɵelementStart(2, "div", 183)(3, "span", 184);
|
|
382
375
|
i0.ɵɵtext(4, "Completed");
|
|
383
376
|
i0.ɵɵelementEnd();
|
|
384
|
-
i0.ɵɵelementStart(5, "span",
|
|
377
|
+
i0.ɵɵelementStart(5, "span", 185);
|
|
385
378
|
i0.ɵɵtext(6);
|
|
386
379
|
i0.ɵɵpipe(7, "date");
|
|
387
380
|
i0.ɵɵelementEnd()()();
|
|
@@ -390,73 +383,73 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_
|
|
|
390
383
|
i0.ɵɵadvance(6);
|
|
391
384
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 1, execution_r11.CompletedAt, "medium"));
|
|
392
385
|
} }
|
|
393
|
-
function
|
|
394
|
-
i0.ɵɵelementStart(0, "div",
|
|
395
|
-
i0.ɵɵelement(1, "i",
|
|
396
|
-
i0.ɵɵelementStart(2, "div",
|
|
386
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
387
|
+
i0.ɵɵelementStart(0, "div", 182);
|
|
388
|
+
i0.ɵɵelement(1, "i", 178);
|
|
389
|
+
i0.ɵɵelementStart(2, "div", 183)(3, "span", 184);
|
|
397
390
|
i0.ɵɵtext(4, "Direct Tokens");
|
|
398
391
|
i0.ɵɵelementEnd();
|
|
399
|
-
i0.ɵɵelementStart(5, "span",
|
|
392
|
+
i0.ɵɵelementStart(5, "span", 185);
|
|
400
393
|
i0.ɵɵtext(6);
|
|
401
394
|
i0.ɵɵelementEnd()()();
|
|
402
395
|
} if (rf & 2) {
|
|
403
396
|
const execution_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
404
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
397
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
405
398
|
i0.ɵɵadvance(6);
|
|
406
399
|
i0.ɵɵtextInterpolate(ctx_r2.formatTokenCount(execution_r11.TotalTokensUsed));
|
|
407
400
|
} }
|
|
408
|
-
function
|
|
409
|
-
i0.ɵɵelementStart(0, "div",
|
|
410
|
-
i0.ɵɵelement(1, "i",
|
|
411
|
-
i0.ɵɵelementStart(2, "div",
|
|
401
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
402
|
+
i0.ɵɵelementStart(0, "div", 182);
|
|
403
|
+
i0.ɵɵelement(1, "i", 83);
|
|
404
|
+
i0.ɵɵelementStart(2, "div", 183)(3, "span", 184);
|
|
412
405
|
i0.ɵɵtext(4, "Total + Sub-agents");
|
|
413
406
|
i0.ɵɵelementEnd();
|
|
414
|
-
i0.ɵɵelementStart(5, "span",
|
|
407
|
+
i0.ɵɵelementStart(5, "span", 185);
|
|
415
408
|
i0.ɵɵtext(6);
|
|
416
409
|
i0.ɵɵelementEnd()()();
|
|
417
410
|
} if (rf & 2) {
|
|
418
411
|
const execution_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
419
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
412
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
420
413
|
i0.ɵɵadvance(6);
|
|
421
414
|
i0.ɵɵtextInterpolate(ctx_r2.formatTokenCount(execution_r11.TotalTokensUsedRollup));
|
|
422
415
|
} }
|
|
423
|
-
function
|
|
424
|
-
i0.ɵɵelementStart(0, "div",
|
|
425
|
-
i0.ɵɵelement(1, "i",
|
|
426
|
-
i0.ɵɵelementStart(2, "div",
|
|
416
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
417
|
+
i0.ɵɵelementStart(0, "div", 182);
|
|
418
|
+
i0.ɵɵelement(1, "i", 179);
|
|
419
|
+
i0.ɵɵelementStart(2, "div", 183)(3, "span", 184);
|
|
427
420
|
i0.ɵɵtext(4, "Direct Cost");
|
|
428
421
|
i0.ɵɵelementEnd();
|
|
429
|
-
i0.ɵɵelementStart(5, "span",
|
|
422
|
+
i0.ɵɵelementStart(5, "span", 185);
|
|
430
423
|
i0.ɵɵtext(6);
|
|
431
424
|
i0.ɵɵelementEnd()()();
|
|
432
425
|
} if (rf & 2) {
|
|
433
426
|
const execution_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
434
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
427
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
435
428
|
i0.ɵɵadvance(6);
|
|
436
429
|
i0.ɵɵtextInterpolate1("$", ctx_r2.formatCost(execution_r11.TotalCost));
|
|
437
430
|
} }
|
|
438
|
-
function
|
|
439
|
-
i0.ɵɵelementStart(0, "div",
|
|
440
|
-
i0.ɵɵelement(1, "i",
|
|
441
|
-
i0.ɵɵelementStart(2, "div",
|
|
431
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
432
|
+
i0.ɵɵelementStart(0, "div", 182);
|
|
433
|
+
i0.ɵɵelement(1, "i", 189);
|
|
434
|
+
i0.ɵɵelementStart(2, "div", 183)(3, "span", 184);
|
|
442
435
|
i0.ɵɵtext(4, "Total + Sub-agents");
|
|
443
436
|
i0.ɵɵelementEnd();
|
|
444
|
-
i0.ɵɵelementStart(5, "span",
|
|
437
|
+
i0.ɵɵelementStart(5, "span", 185);
|
|
445
438
|
i0.ɵɵtext(6);
|
|
446
439
|
i0.ɵɵelementEnd()()();
|
|
447
440
|
} if (rf & 2) {
|
|
448
441
|
const execution_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
449
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
442
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
450
443
|
i0.ɵɵadvance(6);
|
|
451
444
|
i0.ɵɵtextInterpolate1("$", ctx_r2.formatCost(execution_r11.TotalCostRollup));
|
|
452
445
|
} }
|
|
453
|
-
function
|
|
454
|
-
i0.ɵɵelementStart(0, "div",
|
|
455
|
-
i0.ɵɵelement(1, "i",
|
|
456
|
-
i0.ɵɵelementStart(2, "div",
|
|
446
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
447
|
+
i0.ɵɵelementStart(0, "div", 182);
|
|
448
|
+
i0.ɵɵelement(1, "i", 190);
|
|
449
|
+
i0.ɵɵelementStart(2, "div", 183)(3, "span", 184);
|
|
457
450
|
i0.ɵɵtext(4, "Conversation");
|
|
458
451
|
i0.ɵɵelementEnd();
|
|
459
|
-
i0.ɵɵelementStart(5, "span",
|
|
452
|
+
i0.ɵɵelementStart(5, "span", 185);
|
|
460
453
|
i0.ɵɵtext(6);
|
|
461
454
|
i0.ɵɵelementEnd()()();
|
|
462
455
|
} if (rf & 2) {
|
|
@@ -464,25 +457,25 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_
|
|
|
464
457
|
i0.ɵɵadvance(6);
|
|
465
458
|
i0.ɵɵtextInterpolate1("", execution_r11.ConversationID.substring(0, 8), "...");
|
|
466
459
|
} }
|
|
467
|
-
function
|
|
468
|
-
i0.ɵɵelementStart(0, "div",
|
|
469
|
-
i0.ɵɵelement(2, "i",
|
|
460
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
461
|
+
i0.ɵɵelementStart(0, "div", 186)(1, "h5");
|
|
462
|
+
i0.ɵɵelement(2, "i", 191);
|
|
470
463
|
i0.ɵɵtext(3, " Result");
|
|
471
464
|
i0.ɵɵelementEnd();
|
|
472
|
-
i0.ɵɵelement(4, "mj-code-editor",
|
|
465
|
+
i0.ɵɵelement(4, "mj-code-editor", 192);
|
|
473
466
|
i0.ɵɵelementEnd();
|
|
474
467
|
} if (rf & 2) {
|
|
475
468
|
const execution_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
476
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
469
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
477
470
|
i0.ɵɵadvance(4);
|
|
478
471
|
i0.ɵɵproperty("value", ctx_r2.getExecutionResultPreview(execution_r11, false))("readonly", true)("lineWrapping", true);
|
|
479
472
|
} }
|
|
480
|
-
function
|
|
481
|
-
i0.ɵɵelementStart(0, "div",
|
|
482
|
-
i0.ɵɵelement(2, "i",
|
|
473
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
474
|
+
i0.ɵɵelementStart(0, "div", 187)(1, "h5");
|
|
475
|
+
i0.ɵɵelement(2, "i", 193);
|
|
483
476
|
i0.ɵɵtext(3, " Error");
|
|
484
477
|
i0.ɵɵelementEnd();
|
|
485
|
-
i0.ɵɵelementStart(4, "div",
|
|
478
|
+
i0.ɵɵelementStart(4, "div", 194);
|
|
486
479
|
i0.ɵɵtext(5);
|
|
487
480
|
i0.ɵɵelementEnd()();
|
|
488
481
|
} if (rf & 2) {
|
|
@@ -490,25 +483,25 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_
|
|
|
490
483
|
i0.ɵɵadvance(5);
|
|
491
484
|
i0.ɵɵtextInterpolate(execution_r11.ErrorMessage);
|
|
492
485
|
} }
|
|
493
|
-
function
|
|
494
|
-
i0.ɵɵelementStart(0, "div",
|
|
495
|
-
i0.ɵɵelement(4, "i",
|
|
496
|
-
i0.ɵɵelementStart(5, "div",
|
|
486
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
487
|
+
i0.ɵɵelementStart(0, "div", 172)(1, "div", 180)(2, "div", 181)(3, "div", 182);
|
|
488
|
+
i0.ɵɵelement(4, "i", 177);
|
|
489
|
+
i0.ɵɵelementStart(5, "div", 183)(6, "span", 184);
|
|
497
490
|
i0.ɵɵtext(7, "Started");
|
|
498
491
|
i0.ɵɵelementEnd();
|
|
499
|
-
i0.ɵɵelementStart(8, "span",
|
|
492
|
+
i0.ɵɵelementStart(8, "span", 185);
|
|
500
493
|
i0.ɵɵtext(9);
|
|
501
494
|
i0.ɵɵpipe(10, "date");
|
|
502
495
|
i0.ɵɵelementEnd()()();
|
|
503
|
-
i0.ɵɵconditionalCreate(11,
|
|
504
|
-
i0.ɵɵconditionalCreate(12,
|
|
505
|
-
i0.ɵɵconditionalCreate(13,
|
|
506
|
-
i0.ɵɵconditionalCreate(14,
|
|
507
|
-
i0.ɵɵconditionalCreate(15,
|
|
508
|
-
i0.ɵɵconditionalCreate(16,
|
|
496
|
+
i0.ɵɵconditionalCreate(11, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_11_Template, 8, 4, "div", 182);
|
|
497
|
+
i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_12_Template, 7, 1, "div", 182);
|
|
498
|
+
i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_13_Template, 7, 1, "div", 182);
|
|
499
|
+
i0.ɵɵconditionalCreate(14, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_14_Template, 7, 1, "div", 182);
|
|
500
|
+
i0.ɵɵconditionalCreate(15, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_15_Template, 7, 1, "div", 182);
|
|
501
|
+
i0.ɵɵconditionalCreate(16, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_16_Template, 7, 1, "div", 182);
|
|
509
502
|
i0.ɵɵelementEnd()();
|
|
510
|
-
i0.ɵɵconditionalCreate(17,
|
|
511
|
-
i0.ɵɵconditionalCreate(18,
|
|
503
|
+
i0.ɵɵconditionalCreate(17, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_17_Template, 5, 3, "div", 186);
|
|
504
|
+
i0.ɵɵconditionalCreate(18, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Conditional_18_Template, 6, 1, "div", 187);
|
|
512
505
|
i0.ɵɵelementEnd();
|
|
513
506
|
} if (rf & 2) {
|
|
514
507
|
const execution_r11 = i0.ɵɵnextContext().$implicit;
|
|
@@ -531,36 +524,36 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_
|
|
|
531
524
|
i0.ɵɵadvance();
|
|
532
525
|
i0.ɵɵconditional(execution_r11.ErrorMessage ? 18 : -1);
|
|
533
526
|
} }
|
|
534
|
-
function
|
|
527
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
535
528
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
536
|
-
i0.ɵɵelementStart(0, "div",
|
|
537
|
-
i0.ɵɵlistener("click", function
|
|
538
|
-
i0.ɵɵelementStart(2, "div",
|
|
529
|
+
i0.ɵɵelementStart(0, "div", 158)(1, "div", 159);
|
|
530
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Template_div_click_1_listener() { const execution_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.toggleExecutionExpanded(execution_r11.ID)); });
|
|
531
|
+
i0.ɵɵelementStart(2, "div", 160)(3, "div", 161)(4, "div", 162);
|
|
539
532
|
i0.ɵɵelement(5, "i");
|
|
540
533
|
i0.ɵɵelementEnd();
|
|
541
|
-
i0.ɵɵelementStart(6, "div",
|
|
542
|
-
i0.ɵɵelement(8, "i",
|
|
534
|
+
i0.ɵɵelementStart(6, "div", 163)(7, "div", 164);
|
|
535
|
+
i0.ɵɵelement(8, "i", 165);
|
|
543
536
|
i0.ɵɵtext(9);
|
|
544
537
|
i0.ɵɵelementEnd();
|
|
545
|
-
i0.ɵɵelementStart(10, "div",
|
|
538
|
+
i0.ɵɵelementStart(10, "div", 166);
|
|
546
539
|
i0.ɵɵtext(11);
|
|
547
540
|
i0.ɵɵpipe(12, "date");
|
|
548
541
|
i0.ɵɵelementEnd()()();
|
|
549
|
-
i0.ɵɵelementStart(13, "div",
|
|
550
|
-
i0.ɵɵconditionalCreate(14,
|
|
551
|
-
i0.ɵɵconditionalCreate(15,
|
|
552
|
-
i0.ɵɵconditionalCreate(17,
|
|
553
|
-
i0.ɵɵconditionalCreate(18,
|
|
542
|
+
i0.ɵɵelementStart(13, "div", 167);
|
|
543
|
+
i0.ɵɵconditionalCreate(14, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_14_Template, 6, 1, "div", 168);
|
|
544
|
+
i0.ɵɵconditionalCreate(15, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_15_Template, 6, 1, "div", 168)(16, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_16_Template, 4, 0, "div", 168);
|
|
545
|
+
i0.ɵɵconditionalCreate(17, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_17_Template, 6, 1, "div", 168);
|
|
546
|
+
i0.ɵɵconditionalCreate(18, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_18_Template, 6, 1, "div", 168);
|
|
554
547
|
i0.ɵɵelementEnd()();
|
|
555
|
-
i0.ɵɵelementStart(19, "div",
|
|
556
|
-
i0.ɵɵlistener("click", function
|
|
557
|
-
i0.ɵɵelement(21, "i",
|
|
548
|
+
i0.ɵɵelementStart(19, "div", 169)(20, "button", 170);
|
|
549
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Template_button_click_20_listener($event) { const execution_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); ctx_r2.openExecutionRecord(execution_r11.ID); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
550
|
+
i0.ɵɵelement(21, "i", 171);
|
|
558
551
|
i0.ɵɵelementEnd()()();
|
|
559
|
-
i0.ɵɵconditionalCreate(22,
|
|
552
|
+
i0.ɵɵconditionalCreate(22, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Conditional_22_Template, 19, 12, "div", 172);
|
|
560
553
|
i0.ɵɵelementEnd();
|
|
561
554
|
} if (rf & 2) {
|
|
562
555
|
const execution_r11 = ctx.$implicit;
|
|
563
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
556
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
564
557
|
i0.ɵɵclassProp("expanded", ctx_r2.expandedExecutions[execution_r11.ID]);
|
|
565
558
|
i0.ɵɵadvance(4);
|
|
566
559
|
i0.ɵɵstyleProp("background-color", ctx_r2.getExecutionStatusColor(execution_r11.Status));
|
|
@@ -583,43 +576,43 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_
|
|
|
583
576
|
i0.ɵɵadvance(4);
|
|
584
577
|
i0.ɵɵconditional(ctx_r2.expandedExecutions[execution_r11.ID] ? 22 : -1);
|
|
585
578
|
} }
|
|
586
|
-
function
|
|
587
|
-
i0.ɵɵelement(0, "i",
|
|
579
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_8_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
580
|
+
i0.ɵɵelement(0, "i", 201);
|
|
588
581
|
i0.ɵɵtext(1, " Loading... ");
|
|
589
582
|
} }
|
|
590
|
-
function
|
|
583
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_8_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
591
584
|
i0.ɵɵtext(0);
|
|
592
|
-
i0.ɵɵelementStart(1, "span",
|
|
585
|
+
i0.ɵɵelementStart(1, "span", 202);
|
|
593
586
|
i0.ɵɵtext(2);
|
|
594
587
|
i0.ɵɵelementEnd();
|
|
595
588
|
} if (rf & 2) {
|
|
596
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
589
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
597
590
|
i0.ɵɵtextInterpolate2(" Page ", ctx_r2.executionHistoryCurrentPage, " of ", ctx_r2.totalPages, " ");
|
|
598
591
|
i0.ɵɵadvance(2);
|
|
599
592
|
i0.ɵɵtextInterpolate1("(", ctx_r2.totalExecutionHistoryCount, " total)");
|
|
600
593
|
} }
|
|
601
|
-
function
|
|
594
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
602
595
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
603
|
-
i0.ɵɵelementStart(0, "div",
|
|
604
|
-
i0.ɵɵlistener("click", function
|
|
605
|
-
i0.ɵɵelement(2, "i",
|
|
596
|
+
i0.ɵɵelementStart(0, "div", 157)(1, "button", 195);
|
|
597
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_8_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.goToPreviousPage()); });
|
|
598
|
+
i0.ɵɵelement(2, "i", 196);
|
|
606
599
|
i0.ɵɵtext(3, " Previous ");
|
|
607
600
|
i0.ɵɵelementEnd();
|
|
608
|
-
i0.ɵɵelementStart(4, "div",
|
|
609
|
-
i0.ɵɵconditionalCreate(5,
|
|
601
|
+
i0.ɵɵelementStart(4, "div", 197);
|
|
602
|
+
i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_8_Conditional_5_Template, 2, 0)(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_8_Conditional_6_Template, 3, 3);
|
|
610
603
|
i0.ɵɵelementEnd();
|
|
611
|
-
i0.ɵɵelementStart(7, "button",
|
|
612
|
-
i0.ɵɵlistener("click", function
|
|
604
|
+
i0.ɵɵelementStart(7, "button", 195);
|
|
605
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_8_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.goToNextPage()); });
|
|
613
606
|
i0.ɵɵtext(8, " Next ");
|
|
614
|
-
i0.ɵɵelement(9, "i",
|
|
607
|
+
i0.ɵɵelement(9, "i", 198);
|
|
615
608
|
i0.ɵɵelementEnd();
|
|
616
|
-
i0.ɵɵelementStart(10, "button",
|
|
617
|
-
i0.ɵɵlistener("click", function
|
|
618
|
-
i0.ɵɵelement(11, "i",
|
|
609
|
+
i0.ɵɵelementStart(10, "button", 199);
|
|
610
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_8_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.navigateToEntity("MJ: AI Agent Runs", "")); });
|
|
611
|
+
i0.ɵɵelement(11, "i", 200);
|
|
619
612
|
i0.ɵɵtext(12, " View All in Grid ");
|
|
620
613
|
i0.ɵɵelementEnd()();
|
|
621
614
|
} if (rf & 2) {
|
|
622
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
615
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
623
616
|
i0.ɵɵadvance();
|
|
624
617
|
i0.ɵɵproperty("disabled", !ctx_r2.hasPreviousPage || ctx_r2.isLoadingPage);
|
|
625
618
|
i0.ɵɵadvance(4);
|
|
@@ -627,53 +620,49 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_
|
|
|
627
620
|
i0.ɵɵadvance(2);
|
|
628
621
|
i0.ɵɵproperty("disabled", !ctx_r2.hasNextPage || ctx_r2.isLoadingPage);
|
|
629
622
|
} }
|
|
630
|
-
function
|
|
623
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
631
624
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
632
|
-
i0.ɵɵelementStart(0, "div",
|
|
633
|
-
i0.ɵɵ
|
|
634
|
-
i0.ɵɵ
|
|
635
|
-
i0.ɵɵ
|
|
636
|
-
i0.ɵɵ
|
|
637
|
-
i0.ɵɵ
|
|
638
|
-
i0.ɵɵ
|
|
639
|
-
i0.ɵɵ
|
|
640
|
-
i0.ɵɵ
|
|
625
|
+
i0.ɵɵelementStart(0, "div", 151)(1, "div", 152);
|
|
626
|
+
i0.ɵɵelement(2, "i", 153);
|
|
627
|
+
i0.ɵɵelementStart(3, "input", 154);
|
|
628
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.executionSearchText, $event) || (ctx_r2.executionSearchText = $event); return i0.ɵɵresetView($event); });
|
|
629
|
+
i0.ɵɵlistener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onExecutionSearchChange()); });
|
|
630
|
+
i0.ɵɵelementEnd()()();
|
|
631
|
+
i0.ɵɵelementStart(4, "div", 155);
|
|
632
|
+
i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_5_Template, 6, 1, "div", 147);
|
|
633
|
+
i0.ɵɵrepeaterCreate(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_For_7_Template, 23, 18, "div", 156, _forTrack0);
|
|
634
|
+
i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Conditional_8_Template, 13, 3, "div", 157);
|
|
641
635
|
i0.ɵɵelementEnd();
|
|
642
636
|
} if (rf & 2) {
|
|
643
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
644
|
-
i0.ɵɵadvance();
|
|
645
|
-
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.executionSearchText);
|
|
646
|
-
i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(5, _c1))("clearButton", true);
|
|
637
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
647
638
|
i0.ɵɵadvance(3);
|
|
648
|
-
i0.ɵɵ
|
|
639
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.executionSearchText);
|
|
640
|
+
i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(4, _c1));
|
|
641
|
+
i0.ɵɵadvance(2);
|
|
642
|
+
i0.ɵɵconditional(ctx_r2.filteredExecutions.length === 0 ? 5 : -1);
|
|
649
643
|
i0.ɵɵadvance();
|
|
650
644
|
i0.ɵɵrepeater(ctx_r2.filteredExecutions);
|
|
651
645
|
i0.ɵɵadvance(2);
|
|
652
|
-
i0.ɵɵconditional(ctx_r2.totalPages > 1 ?
|
|
653
|
-
} }
|
|
654
|
-
function MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
655
|
-
i0.ɵɵelementStart(0, "div", 66);
|
|
656
|
-
i0.ɵɵconditionalCreate(1, MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_2_Conditional_1_Template, 6, 0, "div", 67)(2, MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_ng_template_2_Conditional_2_Template, 8, 6);
|
|
657
|
-
i0.ɵɵelementEnd();
|
|
658
|
-
} if (rf & 2) {
|
|
659
|
-
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
660
|
-
i0.ɵɵadvance();
|
|
661
|
-
i0.ɵɵconditional(ctx_r2.executionHistoryCount === 0 ? 1 : 2);
|
|
646
|
+
i0.ɵɵconditional(ctx_r2.totalPages > 1 ? 8 : -1);
|
|
662
647
|
} }
|
|
663
|
-
function
|
|
664
|
-
i0.ɵɵelementStart(0, "
|
|
665
|
-
i0.ɵɵtemplate(1,
|
|
666
|
-
i0.ɵɵ
|
|
648
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
649
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 10);
|
|
650
|
+
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_ng_template_1_Template, 4, 1, "ng-template", 17);
|
|
651
|
+
i0.ɵɵelementStart(2, "div", 145);
|
|
652
|
+
i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_3_Template, 1, 0, "mj-loading", 146)(4, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_4_Template, 6, 0, "div", 147)(5, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Conditional_5_Template, 9, 5);
|
|
653
|
+
i0.ɵɵelementEnd()();
|
|
667
654
|
} if (rf & 2) {
|
|
668
655
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
669
|
-
i0.ɵɵproperty("
|
|
656
|
+
i0.ɵɵproperty("Expanded", ctx_r2.GetSectionExpanded("history", false))("Disabled", ctx_r2.loadingStates.executionHistory);
|
|
657
|
+
i0.ɵɵadvance(3);
|
|
658
|
+
i0.ɵɵconditional(ctx_r2.loadingStates.executionHistory ? 3 : ctx_r2.executionHistoryCount === 0 ? 4 : 5);
|
|
670
659
|
} }
|
|
671
|
-
function
|
|
672
|
-
i0.ɵɵelementStart(0, "span",
|
|
673
|
-
i0.ɵɵelement(1, "i",
|
|
660
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
661
|
+
i0.ɵɵelementStart(0, "span", 149);
|
|
662
|
+
i0.ɵɵelement(1, "i", 150);
|
|
674
663
|
i0.ɵɵelementEnd();
|
|
675
664
|
} }
|
|
676
|
-
function
|
|
665
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
677
666
|
i0.ɵɵelementStart(0, "span");
|
|
678
667
|
i0.ɵɵtext(1);
|
|
679
668
|
i0.ɵɵelementEnd();
|
|
@@ -682,56 +671,56 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_9_ng_template_
|
|
|
682
671
|
i0.ɵɵadvance();
|
|
683
672
|
i0.ɵɵtextInterpolate1(" (", ctx_r2.actionCount, ")");
|
|
684
673
|
} }
|
|
685
|
-
function
|
|
686
|
-
i0.ɵɵelement(0, "i",
|
|
674
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
675
|
+
i0.ɵɵelement(0, "i", 87);
|
|
687
676
|
i0.ɵɵtext(1, " Actions ");
|
|
688
|
-
i0.ɵɵconditionalCreate(2,
|
|
677
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_ng_template_1_Conditional_2_Template, 2, 0, "span", 149)(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_ng_template_1_Conditional_3_Template, 2, 1, "span");
|
|
689
678
|
} if (rf & 2) {
|
|
690
679
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
691
680
|
i0.ɵɵadvance(2);
|
|
692
681
|
i0.ɵɵconditional(ctx_r2.loadingStates.actions ? 2 : ctx_r2.actionCount > 0 ? 3 : -1);
|
|
693
682
|
} }
|
|
694
|
-
function
|
|
695
|
-
i0.ɵɵelementStart(0, "div",
|
|
696
|
-
i0.ɵɵelement(1, "i",
|
|
683
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
684
|
+
i0.ɵɵelementStart(0, "div", 203);
|
|
685
|
+
i0.ɵɵelement(1, "i", 201);
|
|
697
686
|
i0.ɵɵelementStart(2, "p");
|
|
698
687
|
i0.ɵɵtext(3, "Loading actions...");
|
|
699
688
|
i0.ɵɵelementEnd()();
|
|
700
689
|
} }
|
|
701
|
-
function
|
|
690
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
702
691
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
703
|
-
i0.ɵɵelementStart(0, "button",
|
|
704
|
-
i0.ɵɵlistener("click", function
|
|
705
|
-
i0.ɵɵelement(1, "i",
|
|
692
|
+
i0.ɵɵelementStart(0, "button", 207);
|
|
693
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.configureActions()); });
|
|
694
|
+
i0.ɵɵelement(1, "i", 208);
|
|
706
695
|
i0.ɵɵtext(2, " Add Action ");
|
|
707
696
|
i0.ɵɵelementEnd();
|
|
708
697
|
} }
|
|
709
|
-
function
|
|
698
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
710
699
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
711
|
-
i0.ɵɵelementStart(0, "button",
|
|
712
|
-
i0.ɵɵlistener("click", function
|
|
713
|
-
i0.ɵɵelement(1, "i",
|
|
700
|
+
i0.ɵɵelementStart(0, "button", 210);
|
|
701
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_3_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.configureActions()); });
|
|
702
|
+
i0.ɵɵelement(1, "i", 208);
|
|
714
703
|
i0.ɵɵtext(2, " Configure First Action ");
|
|
715
704
|
i0.ɵɵelementEnd();
|
|
716
705
|
} }
|
|
717
|
-
function
|
|
718
|
-
i0.ɵɵelementStart(0, "div",
|
|
719
|
-
i0.ɵɵelement(1, "i",
|
|
706
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
707
|
+
i0.ɵɵelementStart(0, "div", 147);
|
|
708
|
+
i0.ɵɵelement(1, "i", 87);
|
|
720
709
|
i0.ɵɵelementStart(2, "h4");
|
|
721
710
|
i0.ɵɵtext(3, "No Actions Configured");
|
|
722
711
|
i0.ɵɵelementEnd();
|
|
723
712
|
i0.ɵɵelementStart(4, "p");
|
|
724
713
|
i0.ɵɵtext(5, "Add actions to enable this agent to perform specific tasks and operations.");
|
|
725
714
|
i0.ɵɵelementEnd();
|
|
726
|
-
i0.ɵɵconditionalCreate(6,
|
|
715
|
+
i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_3_Conditional_6_Template, 3, 0, "button", 209);
|
|
727
716
|
i0.ɵɵelementEnd();
|
|
728
717
|
} if (rf & 2) {
|
|
729
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
718
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
730
719
|
i0.ɵɵadvance(6);
|
|
731
720
|
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanCreateActions ? 6 : -1);
|
|
732
721
|
} }
|
|
733
|
-
function
|
|
734
|
-
i0.ɵɵelementStart(0, "div",
|
|
722
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
723
|
+
i0.ɵɵelementStart(0, "div", 217);
|
|
735
724
|
i0.ɵɵtext(1);
|
|
736
725
|
i0.ɵɵelementEnd();
|
|
737
726
|
} if (rf & 2) {
|
|
@@ -739,8 +728,8 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_9_ng_template_
|
|
|
739
728
|
i0.ɵɵadvance();
|
|
740
729
|
i0.ɵɵtextInterpolate(action_r16.Description);
|
|
741
730
|
} }
|
|
742
|
-
function
|
|
743
|
-
i0.ɵɵelementStart(0, "span",
|
|
731
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
732
|
+
i0.ɵɵelementStart(0, "span", 219);
|
|
744
733
|
i0.ɵɵtext(1);
|
|
745
734
|
i0.ɵɵelementEnd();
|
|
746
735
|
} if (rf & 2) {
|
|
@@ -748,37 +737,37 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_9_ng_template_
|
|
|
748
737
|
i0.ɵɵadvance();
|
|
749
738
|
i0.ɵɵtextInterpolate(action_r16.Type);
|
|
750
739
|
} }
|
|
751
|
-
function
|
|
740
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
752
741
|
const _r17 = i0.ɵɵgetCurrentView();
|
|
753
|
-
i0.ɵɵelementStart(0, "button",
|
|
754
|
-
i0.ɵɵlistener("click", function
|
|
755
|
-
i0.ɵɵelement(1, "i",
|
|
742
|
+
i0.ɵɵelementStart(0, "button", 223);
|
|
743
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_For_2_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r17); const action_r16 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.removeAction(action_r16, $event)); });
|
|
744
|
+
i0.ɵɵelement(1, "i", 224);
|
|
756
745
|
i0.ɵɵelementEnd();
|
|
757
746
|
} }
|
|
758
|
-
function
|
|
747
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
759
748
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
760
|
-
i0.ɵɵelementStart(0, "div",
|
|
761
|
-
i0.ɵɵlistener("click", function
|
|
762
|
-
i0.ɵɵelementStart(1, "div",
|
|
749
|
+
i0.ɵɵelementStart(0, "div", 213);
|
|
750
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_For_2_Template_div_click_0_listener() { const action_r16 = i0.ɵɵrestoreView(_r15).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.navigateToEntity("MJ: Actions", action_r16.ID)); });
|
|
751
|
+
i0.ɵɵelementStart(1, "div", 214);
|
|
763
752
|
i0.ɵɵelement(2, "i");
|
|
764
753
|
i0.ɵɵelementEnd();
|
|
765
|
-
i0.ɵɵelementStart(3, "div",
|
|
754
|
+
i0.ɵɵelementStart(3, "div", 215)(4, "div", 216);
|
|
766
755
|
i0.ɵɵtext(5);
|
|
767
756
|
i0.ɵɵelementEnd();
|
|
768
|
-
i0.ɵɵconditionalCreate(6,
|
|
769
|
-
i0.ɵɵelementStart(7, "div",
|
|
770
|
-
i0.ɵɵconditionalCreate(8,
|
|
771
|
-
i0.ɵɵelementStart(9, "span",
|
|
772
|
-
i0.ɵɵelement(10, "i",
|
|
757
|
+
i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_For_2_Conditional_6_Template, 2, 1, "div", 217);
|
|
758
|
+
i0.ɵɵelementStart(7, "div", 218);
|
|
759
|
+
i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_For_2_Conditional_8_Template, 2, 1, "span", 219);
|
|
760
|
+
i0.ɵɵelementStart(9, "span", 220);
|
|
761
|
+
i0.ɵɵelement(10, "i", 132);
|
|
773
762
|
i0.ɵɵtext(11);
|
|
774
763
|
i0.ɵɵelementEnd()()();
|
|
775
|
-
i0.ɵɵelementStart(12, "div",
|
|
776
|
-
i0.ɵɵconditionalCreate(13,
|
|
777
|
-
i0.ɵɵelement(14, "i",
|
|
764
|
+
i0.ɵɵelementStart(12, "div", 221);
|
|
765
|
+
i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_For_2_Conditional_13_Template, 2, 0, "button", 222);
|
|
766
|
+
i0.ɵɵelement(14, "i", 200);
|
|
778
767
|
i0.ɵɵelementEnd()();
|
|
779
768
|
} if (rf & 2) {
|
|
780
769
|
const action_r16 = ctx.$implicit;
|
|
781
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
770
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
782
771
|
i0.ɵɵadvance(2);
|
|
783
772
|
i0.ɵɵclassMap(ctx_r2.getActionIcon(action_r16));
|
|
784
773
|
i0.ɵɵadvance(3);
|
|
@@ -796,65 +785,60 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_9_ng_template_
|
|
|
796
785
|
i0.ɵɵadvance(2);
|
|
797
786
|
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanDeleteActions ? 13 : -1);
|
|
798
787
|
} }
|
|
799
|
-
function
|
|
788
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
800
789
|
const _r18 = i0.ɵɵgetCurrentView();
|
|
801
|
-
i0.ɵɵelementStart(0, "div",
|
|
802
|
-
i0.ɵɵlistener("click", function
|
|
790
|
+
i0.ɵɵelementStart(0, "div", 225);
|
|
791
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.navigateToEntity("MJ: AI Agent Actions", "")); });
|
|
803
792
|
i0.ɵɵelementStart(1, "span");
|
|
804
793
|
i0.ɵɵtext(2);
|
|
805
794
|
i0.ɵɵelementEnd()();
|
|
806
795
|
} if (rf & 2) {
|
|
807
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
796
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
808
797
|
i0.ɵɵadvance(2);
|
|
809
798
|
i0.ɵɵtextInterpolate1("View all ", ctx_r2.actionCount, " actions...");
|
|
810
799
|
} }
|
|
811
|
-
function
|
|
812
|
-
i0.ɵɵelementStart(0, "div",
|
|
813
|
-
i0.ɵɵrepeaterCreate(1,
|
|
814
|
-
i0.ɵɵconditionalCreate(3,
|
|
800
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
801
|
+
i0.ɵɵelementStart(0, "div", 206);
|
|
802
|
+
i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_For_2_Template, 15, 15, "div", 211, _forTrack0);
|
|
803
|
+
i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_Conditional_3_Template, 3, 1, "div", 212);
|
|
815
804
|
i0.ɵɵelementEnd();
|
|
816
805
|
} if (rf & 2) {
|
|
817
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
806
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
818
807
|
i0.ɵɵadvance();
|
|
819
808
|
i0.ɵɵrepeater(ctx_r2.agentActions);
|
|
820
809
|
i0.ɵɵadvance(2);
|
|
821
810
|
i0.ɵɵconditional(ctx_r2.actionCount > ctx_r2.agentActions.length ? 3 : -1);
|
|
822
811
|
} }
|
|
823
|
-
function
|
|
824
|
-
i0.ɵɵelementStart(0, "div",
|
|
825
|
-
i0.ɵɵconditionalCreate(2,
|
|
812
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
813
|
+
i0.ɵɵelementStart(0, "div", 19)(1, "div", 204);
|
|
814
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_2_Template, 3, 0, "button", 205);
|
|
826
815
|
i0.ɵɵelementEnd()();
|
|
827
|
-
i0.ɵɵconditionalCreate(3,
|
|
816
|
+
i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_3_Template, 7, 1, "div", 147)(4, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Conditional_4_Template, 4, 1, "div", 206);
|
|
828
817
|
} if (rf & 2) {
|
|
829
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
818
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
830
819
|
i0.ɵɵadvance(2);
|
|
831
820
|
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanCreateActions ? 2 : -1);
|
|
832
821
|
i0.ɵɵadvance();
|
|
833
822
|
i0.ɵɵconditional(ctx_r2.actionCount === 0 ? 3 : 4);
|
|
834
823
|
} }
|
|
835
|
-
function
|
|
836
|
-
i0.ɵɵelementStart(0, "
|
|
837
|
-
i0.ɵɵ
|
|
838
|
-
i0.ɵɵ
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
i0.ɵɵadvance();
|
|
842
|
-
i0.ɵɵconditional(ctx_r2.loadingStates.actions ? 1 : 2);
|
|
843
|
-
} }
|
|
844
|
-
function MJAIAgentFormComponentExtended_Conditional_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
845
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item", 14);
|
|
846
|
-
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_3_Conditional_9_ng_template_1_Template, 4, 1, "ng-template", 20)(2, MJAIAgentFormComponentExtended_Conditional_3_Conditional_9_ng_template_2_Template, 3, 1, "ng-template", 21);
|
|
847
|
-
i0.ɵɵelementEnd();
|
|
824
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
825
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 11);
|
|
826
|
+
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_ng_template_1_Template, 4, 1, "ng-template", 17);
|
|
827
|
+
i0.ɵɵelementStart(2, "div", 18);
|
|
828
|
+
i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_3_Template, 4, 0, "div", 203)(4, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Conditional_4_Template, 5, 2);
|
|
829
|
+
i0.ɵɵelementEnd()();
|
|
848
830
|
} if (rf & 2) {
|
|
849
831
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
850
|
-
i0.ɵɵproperty("
|
|
832
|
+
i0.ɵɵproperty("Expanded", ctx_r2.GetSectionExpanded("actions", false))("Disabled", ctx_r2.loadingStates.actions);
|
|
833
|
+
i0.ɵɵadvance(3);
|
|
834
|
+
i0.ɵɵconditional(ctx_r2.loadingStates.actions ? 3 : 4);
|
|
851
835
|
} }
|
|
852
|
-
function
|
|
853
|
-
i0.ɵɵelementStart(0, "span",
|
|
854
|
-
i0.ɵɵelement(1, "i",
|
|
836
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
837
|
+
i0.ɵɵelementStart(0, "span", 149);
|
|
838
|
+
i0.ɵɵelement(1, "i", 150);
|
|
855
839
|
i0.ɵɵelementEnd();
|
|
856
840
|
} }
|
|
857
|
-
function
|
|
841
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
858
842
|
i0.ɵɵelementStart(0, "span");
|
|
859
843
|
i0.ɵɵtext(1);
|
|
860
844
|
i0.ɵɵelementEnd();
|
|
@@ -863,47 +847,47 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_ng_template
|
|
|
863
847
|
i0.ɵɵadvance();
|
|
864
848
|
i0.ɵɵtextInterpolate1(" (", ctx_r2.totalSubAgentCount, ")");
|
|
865
849
|
} }
|
|
866
|
-
function
|
|
867
|
-
i0.ɵɵelement(0, "i",
|
|
850
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
851
|
+
i0.ɵɵelement(0, "i", 83);
|
|
868
852
|
i0.ɵɵtext(1, " Sub-Agents ");
|
|
869
|
-
i0.ɵɵconditionalCreate(2,
|
|
853
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_ng_template_1_Conditional_2_Template, 2, 0, "span", 149)(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_ng_template_1_Conditional_3_Template, 2, 1, "span");
|
|
870
854
|
} if (rf & 2) {
|
|
871
855
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
872
856
|
i0.ɵɵadvance(2);
|
|
873
857
|
i0.ɵɵconditional(ctx_r2.loadingStates.subAgents ? 2 : ctx_r2.totalSubAgentCount > 0 ? 3 : -1);
|
|
874
858
|
} }
|
|
875
|
-
function
|
|
859
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
876
860
|
const _r20 = i0.ɵɵgetCurrentView();
|
|
877
|
-
i0.ɵɵelementStart(0, "button",
|
|
878
|
-
i0.ɵɵlistener("click", function
|
|
879
|
-
i0.ɵɵelement(1, "i",
|
|
861
|
+
i0.ɵɵelementStart(0, "button", 232);
|
|
862
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.createChildSubAgent()); });
|
|
863
|
+
i0.ɵɵelement(1, "i", 230);
|
|
880
864
|
i0.ɵɵtext(2, " Create Child ");
|
|
881
865
|
i0.ɵɵelementEnd();
|
|
882
|
-
i0.ɵɵelementStart(3, "button",
|
|
883
|
-
i0.ɵɵlistener("click", function
|
|
884
|
-
i0.ɵɵelement(4, "i",
|
|
866
|
+
i0.ɵɵelementStart(3, "button", 233);
|
|
867
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_16_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.linkRelatedSubAgent()); });
|
|
868
|
+
i0.ɵɵelement(4, "i", 231);
|
|
885
869
|
i0.ɵɵtext(5, " Link Related ");
|
|
886
870
|
i0.ɵɵelementEnd();
|
|
887
871
|
} }
|
|
888
|
-
function
|
|
889
|
-
i0.ɵɵelementStart(0, "div",
|
|
890
|
-
i0.ɵɵelement(1, "i",
|
|
872
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
873
|
+
i0.ɵɵelementStart(0, "div", 147);
|
|
874
|
+
i0.ɵɵelement(1, "i", 83);
|
|
891
875
|
i0.ɵɵelementStart(2, "h4");
|
|
892
876
|
i0.ɵɵtext(3, "No Sub-Agents");
|
|
893
877
|
i0.ɵɵelementEnd();
|
|
894
878
|
i0.ɵɵelementStart(4, "p");
|
|
895
879
|
i0.ɵɵtext(5, "Sub-agents help build complex workflows through hierarchical orchestration.");
|
|
896
880
|
i0.ɵɵelementEnd();
|
|
897
|
-
i0.ɵɵelementStart(6, "div",
|
|
898
|
-
i0.ɵɵelement(8, "i",
|
|
881
|
+
i0.ɵɵelementStart(6, "div", 234)(7, "div", 235);
|
|
882
|
+
i0.ɵɵelement(8, "i", 236);
|
|
899
883
|
i0.ɵɵelementStart(9, "strong");
|
|
900
884
|
i0.ɵɵtext(10, "Child Sub-Agents");
|
|
901
885
|
i0.ɵɵelementEnd();
|
|
902
886
|
i0.ɵɵelementStart(11, "p");
|
|
903
887
|
i0.ɵɵtext(12, "Share payload structure, dedicated to parent");
|
|
904
888
|
i0.ɵɵelementEnd()();
|
|
905
|
-
i0.ɵɵelementStart(13, "div",
|
|
906
|
-
i0.ɵɵelement(14, "i",
|
|
889
|
+
i0.ɵɵelementStart(13, "div", 235);
|
|
890
|
+
i0.ɵɵelement(14, "i", 237);
|
|
907
891
|
i0.ɵɵelementStart(15, "strong");
|
|
908
892
|
i0.ɵɵtext(16, "Related Sub-Agents");
|
|
909
893
|
i0.ɵɵelementEnd();
|
|
@@ -911,21 +895,21 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_ng_template
|
|
|
911
895
|
i0.ɵɵtext(18, "Reusable agents with payload mapping");
|
|
912
896
|
i0.ɵɵelementEnd()()()();
|
|
913
897
|
} }
|
|
914
|
-
function
|
|
915
|
-
i0.ɵɵelement(0, "img",
|
|
898
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
899
|
+
i0.ɵɵelement(0, "img", 241);
|
|
916
900
|
} if (rf & 2) {
|
|
917
901
|
const item_r22 = i0.ɵɵnextContext().$implicit;
|
|
918
902
|
i0.ɵɵproperty("src", item_r22.agent.LogoURL, i0.ɵɵsanitizeUrl)("alt", item_r22.agent.Name + " logo");
|
|
919
903
|
} }
|
|
920
|
-
function
|
|
904
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
921
905
|
i0.ɵɵelement(0, "i");
|
|
922
906
|
} if (rf & 2) {
|
|
923
907
|
const item_r22 = i0.ɵɵnextContext().$implicit;
|
|
924
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
908
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
925
909
|
i0.ɵɵclassMap(ctx_r2.getSubAgentIcon(item_r22.agent));
|
|
926
910
|
} }
|
|
927
|
-
function
|
|
928
|
-
i0.ɵɵelementStart(0, "div",
|
|
911
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
912
|
+
i0.ɵɵelementStart(0, "div", 217);
|
|
929
913
|
i0.ɵɵtext(1);
|
|
930
914
|
i0.ɵɵelementEnd();
|
|
931
915
|
} if (rf & 2) {
|
|
@@ -933,19 +917,19 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_ng_template
|
|
|
933
917
|
i0.ɵɵadvance();
|
|
934
918
|
i0.ɵɵtextInterpolate(item_r22.agent.Description);
|
|
935
919
|
} }
|
|
936
|
-
function
|
|
937
|
-
i0.ɵɵelementStart(0, "span",
|
|
920
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
921
|
+
i0.ɵɵelementStart(0, "span", 220);
|
|
938
922
|
i0.ɵɵtext(1);
|
|
939
923
|
i0.ɵɵelementEnd();
|
|
940
924
|
} if (rf & 2) {
|
|
941
925
|
const item_r22 = i0.ɵɵnextContext().$implicit;
|
|
942
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
926
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
943
927
|
i0.ɵɵstyleProp("background-color", ctx_r2.getStatusBadgeColor());
|
|
944
928
|
i0.ɵɵadvance();
|
|
945
929
|
i0.ɵɵtextInterpolate1(" ", item_r22.agent.Status, " ");
|
|
946
930
|
} }
|
|
947
|
-
function
|
|
948
|
-
i0.ɵɵelementStart(0, "span",
|
|
931
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
932
|
+
i0.ɵɵelementStart(0, "span", 219);
|
|
949
933
|
i0.ɵɵtext(1);
|
|
950
934
|
i0.ɵɵelementEnd();
|
|
951
935
|
} if (rf & 2) {
|
|
@@ -953,24 +937,24 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_ng_template
|
|
|
953
937
|
i0.ɵɵadvance();
|
|
954
938
|
i0.ɵɵtextInterpolate(item_r22.agent.Type);
|
|
955
939
|
} }
|
|
956
|
-
function
|
|
940
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
957
941
|
const _r23 = i0.ɵɵgetCurrentView();
|
|
958
|
-
i0.ɵɵelementStart(0, "button",
|
|
959
|
-
i0.ɵɵlistener("click", function
|
|
960
|
-
i0.ɵɵelement(1, "i",
|
|
942
|
+
i0.ɵɵelementStart(0, "button", 248);
|
|
943
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Conditional_0_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r23); const item_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.configureOutputMapping(item_r22, $event)); });
|
|
944
|
+
i0.ɵɵelement(1, "i", 249);
|
|
961
945
|
i0.ɵɵelementEnd();
|
|
962
946
|
} }
|
|
963
|
-
function
|
|
947
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
964
948
|
const _r24 = i0.ɵɵgetCurrentView();
|
|
965
|
-
i0.ɵɵelementStart(0, "button",
|
|
966
|
-
i0.ɵɵlistener("click", function
|
|
967
|
-
i0.ɵɵelement(1, "i",
|
|
949
|
+
i0.ɵɵelementStart(0, "button", 250);
|
|
950
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Conditional_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r24); const item_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.openSubAgentAdvancedSettings(item_r22.agent, $event)); });
|
|
951
|
+
i0.ɵɵelement(1, "i", 173);
|
|
968
952
|
i0.ɵɵelementEnd();
|
|
969
953
|
} }
|
|
970
|
-
function
|
|
954
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
971
955
|
const _r25 = i0.ɵɵgetCurrentView();
|
|
972
|
-
i0.ɵɵelementStart(0, "button",
|
|
973
|
-
i0.ɵɵlistener("click", function
|
|
956
|
+
i0.ɵɵelementStart(0, "button", 251);
|
|
957
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Conditional_2_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r25); const item_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(item_r22.type === "child" ? ctx_r2.removeChildSubAgent(item_r22, $event) : ctx_r2.unlinkRelatedSubAgent(item_r22, $event)); });
|
|
974
958
|
i0.ɵɵelement(1, "i");
|
|
975
959
|
i0.ɵɵelementEnd();
|
|
976
960
|
} if (rf & 2) {
|
|
@@ -979,48 +963,48 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_ng_template
|
|
|
979
963
|
i0.ɵɵadvance();
|
|
980
964
|
i0.ɵɵclassMap(item_r22.type === "child" ? "fa-solid fa-trash" : "fa-solid fa-unlink");
|
|
981
965
|
} }
|
|
982
|
-
function
|
|
983
|
-
i0.ɵɵconditionalCreate(0,
|
|
984
|
-
i0.ɵɵconditionalCreate(1,
|
|
985
|
-
i0.ɵɵconditionalCreate(2,
|
|
966
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
967
|
+
i0.ɵɵconditionalCreate(0, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Conditional_0_Template, 2, 0, "button", 245);
|
|
968
|
+
i0.ɵɵconditionalCreate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Conditional_1_Template, 2, 0, "button", 246);
|
|
969
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Conditional_2_Template, 2, 3, "button", 247);
|
|
986
970
|
} if (rf & 2) {
|
|
987
971
|
const item_r22 = i0.ɵɵnextContext().$implicit;
|
|
988
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
972
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
989
973
|
i0.ɵɵconditional(item_r22.type === "related" ? 0 : -1);
|
|
990
974
|
i0.ɵɵadvance();
|
|
991
975
|
i0.ɵɵconditional(item_r22.type === "child" && ctx_r2.UserCanCreateSubAgents ? 1 : -1);
|
|
992
976
|
i0.ɵɵadvance();
|
|
993
977
|
i0.ɵɵconditional(ctx_r2.UserCanDeleteSubAgents ? 2 : -1);
|
|
994
978
|
} }
|
|
995
|
-
function
|
|
979
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
996
980
|
const _r21 = i0.ɵɵgetCurrentView();
|
|
997
|
-
i0.ɵɵelementStart(0, "div",
|
|
998
|
-
i0.ɵɵlistener("click", function
|
|
999
|
-
i0.ɵɵelementStart(1, "div",
|
|
981
|
+
i0.ɵɵelementStart(0, "div", 239);
|
|
982
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Template_div_click_0_listener() { const item_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.navigateToEntity("MJ: AI Agents", item_r22.agent.ID)); });
|
|
983
|
+
i0.ɵɵelementStart(1, "div", 240);
|
|
1000
984
|
i0.ɵɵelement(2, "i");
|
|
1001
985
|
i0.ɵɵtext(3);
|
|
1002
986
|
i0.ɵɵelementEnd();
|
|
1003
|
-
i0.ɵɵelementStart(4, "div",
|
|
1004
|
-
i0.ɵɵconditionalCreate(5,
|
|
987
|
+
i0.ɵɵelementStart(4, "div", 214);
|
|
988
|
+
i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_5_Template, 1, 2, "img", 241)(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_6_Template, 1, 2, "i", 114);
|
|
1005
989
|
i0.ɵɵelementEnd();
|
|
1006
|
-
i0.ɵɵelementStart(7, "div",
|
|
990
|
+
i0.ɵɵelementStart(7, "div", 215)(8, "div", 216);
|
|
1007
991
|
i0.ɵɵtext(9);
|
|
1008
992
|
i0.ɵɵelementEnd();
|
|
1009
|
-
i0.ɵɵconditionalCreate(10,
|
|
1010
|
-
i0.ɵɵelementStart(11, "div",
|
|
1011
|
-
i0.ɵɵelement(13, "i",
|
|
993
|
+
i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_10_Template, 2, 1, "div", 217);
|
|
994
|
+
i0.ɵɵelementStart(11, "div", 218)(12, "span", 242);
|
|
995
|
+
i0.ɵɵelement(13, "i", 243);
|
|
1012
996
|
i0.ɵɵtext(14);
|
|
1013
997
|
i0.ɵɵelementEnd();
|
|
1014
|
-
i0.ɵɵconditionalCreate(15,
|
|
1015
|
-
i0.ɵɵconditionalCreate(16,
|
|
998
|
+
i0.ɵɵconditionalCreate(15, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_15_Template, 2, 3, "span", 244);
|
|
999
|
+
i0.ɵɵconditionalCreate(16, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_16_Template, 2, 1, "span", 219);
|
|
1016
1000
|
i0.ɵɵelementEnd()();
|
|
1017
|
-
i0.ɵɵelementStart(17, "div",
|
|
1018
|
-
i0.ɵɵconditionalCreate(18,
|
|
1019
|
-
i0.ɵɵelement(19, "i",
|
|
1001
|
+
i0.ɵɵelementStart(17, "div", 221);
|
|
1002
|
+
i0.ɵɵconditionalCreate(18, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Conditional_18_Template, 3, 3);
|
|
1003
|
+
i0.ɵɵelement(19, "i", 200);
|
|
1020
1004
|
i0.ɵɵelementEnd()();
|
|
1021
1005
|
} if (rf & 2) {
|
|
1022
1006
|
const item_r22 = ctx.$implicit;
|
|
1023
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1007
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
1024
1008
|
i0.ɵɵclassProp("child-sub-agent", item_r22.type === "child")("related-sub-agent", item_r22.type === "related");
|
|
1025
1009
|
i0.ɵɵadvance();
|
|
1026
1010
|
i0.ɵɵstyleProp("background-color", ctx_r2.getSubAgentBadgeColor(item_r22));
|
|
@@ -1043,70 +1027,65 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_ng_template
|
|
|
1043
1027
|
i0.ɵɵadvance(2);
|
|
1044
1028
|
i0.ɵɵconditional(ctx_r2.EditMode ? 18 : -1);
|
|
1045
1029
|
} }
|
|
1046
|
-
function
|
|
1047
|
-
i0.ɵɵelementStart(0, "div",
|
|
1048
|
-
i0.ɵɵrepeaterCreate(1,
|
|
1030
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
1031
|
+
i0.ɵɵelementStart(0, "div", 206);
|
|
1032
|
+
i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_For_2_Template, 20, 16, "div", 238, _forTrack1);
|
|
1049
1033
|
i0.ɵɵelementEnd();
|
|
1050
1034
|
} if (rf & 2) {
|
|
1051
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1035
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1052
1036
|
i0.ɵɵadvance();
|
|
1053
1037
|
i0.ɵɵrepeater(ctx_r2.filteredSubAgents);
|
|
1054
1038
|
} }
|
|
1055
|
-
function
|
|
1039
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
1056
1040
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
1057
|
-
i0.ɵɵelementStart(0, "
|
|
1058
|
-
i0.ɵɵ
|
|
1059
|
-
i0.ɵɵ
|
|
1060
|
-
i0.ɵɵ
|
|
1061
|
-
i0.ɵɵ
|
|
1062
|
-
i0.ɵɵ
|
|
1063
|
-
i0.ɵɵ
|
|
1064
|
-
i0.ɵɵ
|
|
1065
|
-
i0.ɵɵ
|
|
1041
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 12);
|
|
1042
|
+
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_ng_template_1_Template, 4, 1, "ng-template", 17);
|
|
1043
|
+
i0.ɵɵelementStart(2, "div", 18)(3, "div", 226)(4, "div", 227)(5, "div", 228)(6, "button", 229);
|
|
1044
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setSubAgentFilter("all")); });
|
|
1045
|
+
i0.ɵɵelement(7, "i", 93);
|
|
1046
|
+
i0.ɵɵtext(8);
|
|
1047
|
+
i0.ɵɵelementEnd();
|
|
1048
|
+
i0.ɵɵelementStart(9, "button", 229);
|
|
1049
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setSubAgentFilter("child")); });
|
|
1050
|
+
i0.ɵɵelement(10, "i", 230);
|
|
1051
|
+
i0.ɵɵtext(11);
|
|
1066
1052
|
i0.ɵɵelementEnd();
|
|
1067
|
-
i0.ɵɵelementStart(
|
|
1068
|
-
i0.ɵɵlistener("click", function
|
|
1069
|
-
i0.ɵɵelement(
|
|
1070
|
-
i0.ɵɵtext(
|
|
1053
|
+
i0.ɵɵelementStart(12, "button", 229);
|
|
1054
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setSubAgentFilter("related")); });
|
|
1055
|
+
i0.ɵɵelement(13, "i", 231);
|
|
1056
|
+
i0.ɵɵtext(14);
|
|
1071
1057
|
i0.ɵɵelementEnd()()();
|
|
1072
|
-
i0.ɵɵelementStart(
|
|
1073
|
-
i0.ɵɵconditionalCreate(
|
|
1058
|
+
i0.ɵɵelementStart(15, "div", 204);
|
|
1059
|
+
i0.ɵɵconditionalCreate(16, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_16_Template, 6, 0);
|
|
1060
|
+
i0.ɵɵelementEnd()();
|
|
1061
|
+
i0.ɵɵconditionalCreate(17, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_17_Template, 19, 0, "div", 147)(18, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Conditional_18_Template, 3, 0, "div", 206);
|
|
1074
1062
|
i0.ɵɵelementEnd()();
|
|
1075
|
-
i0.ɵɵconditionalCreate(15, MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_ng_template_2_Conditional_15_Template, 19, 0, "div", 67)(16, MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_ng_template_2_Conditional_16_Template, 3, 0, "div", 126);
|
|
1076
|
-
i0.ɵɵelementEnd();
|
|
1077
1063
|
} if (rf & 2) {
|
|
1078
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1079
|
-
i0.ɵɵ
|
|
1080
|
-
i0.ɵɵ
|
|
1064
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1065
|
+
i0.ɵɵproperty("Expanded", ctx_r2.GetSectionExpanded("subagents", false))("Disabled", ctx_r2.loadingStates.subAgents);
|
|
1066
|
+
i0.ɵɵadvance(6);
|
|
1067
|
+
i0.ɵɵclassProp("active", ctx_r2.subAgentFilter === "all");
|
|
1081
1068
|
i0.ɵɵadvance(2);
|
|
1082
1069
|
i0.ɵɵtextInterpolate1(" All (", ctx_r2.totalSubAgentCount, ") ");
|
|
1083
1070
|
i0.ɵɵadvance();
|
|
1084
|
-
i0.ɵɵ
|
|
1071
|
+
i0.ɵɵclassProp("active", ctx_r2.subAgentFilter === "child");
|
|
1085
1072
|
i0.ɵɵadvance(2);
|
|
1086
1073
|
i0.ɵɵtextInterpolate1(" Child (", ctx_r2.childSubAgentCount, ") ");
|
|
1087
1074
|
i0.ɵɵadvance();
|
|
1088
|
-
i0.ɵɵ
|
|
1075
|
+
i0.ɵɵclassProp("active", ctx_r2.subAgentFilter === "related");
|
|
1089
1076
|
i0.ɵɵadvance(2);
|
|
1090
1077
|
i0.ɵɵtextInterpolate1(" Related (", ctx_r2.relatedSubAgentCount, ") ");
|
|
1091
1078
|
i0.ɵɵadvance(2);
|
|
1092
|
-
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanCreateSubAgents ?
|
|
1079
|
+
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanCreateSubAgents ? 16 : -1);
|
|
1093
1080
|
i0.ɵɵadvance();
|
|
1094
|
-
i0.ɵɵconditional(ctx_r2.totalSubAgentCount === 0 ?
|
|
1095
|
-
} }
|
|
1096
|
-
function MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
1097
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item", 15);
|
|
1098
|
-
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_ng_template_1_Template, 4, 1, "ng-template", 20)(2, MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_ng_template_2_Template, 17, 11, "ng-template", 21);
|
|
1099
|
-
i0.ɵɵelementEnd();
|
|
1100
|
-
} if (rf & 2) {
|
|
1101
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1102
|
-
i0.ɵɵproperty("expanded", ctx_r2.GetSectionExpanded("subagents", false))("disabled", ctx_r2.loadingStates.subAgents);
|
|
1081
|
+
i0.ɵɵconditional(ctx_r2.totalSubAgentCount === 0 ? 17 : 18);
|
|
1103
1082
|
} }
|
|
1104
|
-
function
|
|
1105
|
-
i0.ɵɵelementStart(0, "span",
|
|
1106
|
-
i0.ɵɵelement(1, "i",
|
|
1083
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1084
|
+
i0.ɵɵelementStart(0, "span", 149);
|
|
1085
|
+
i0.ɵɵelement(1, "i", 150);
|
|
1107
1086
|
i0.ɵɵelementEnd();
|
|
1108
1087
|
} }
|
|
1109
|
-
function
|
|
1088
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1110
1089
|
i0.ɵɵelementStart(0, "span");
|
|
1111
1090
|
i0.ɵɵtext(1);
|
|
1112
1091
|
i0.ɵɵelementEnd();
|
|
@@ -1115,68 +1094,68 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_11_ng_template
|
|
|
1115
1094
|
i0.ɵɵadvance();
|
|
1116
1095
|
i0.ɵɵtextInterpolate1(" (", ctx_r2.promptCount, ")");
|
|
1117
1096
|
} }
|
|
1118
|
-
function
|
|
1119
|
-
i0.ɵɵelement(0, "i",
|
|
1097
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
1098
|
+
i0.ɵɵelement(0, "i", 190);
|
|
1120
1099
|
i0.ɵɵtext(1, " Prompts ");
|
|
1121
|
-
i0.ɵɵconditionalCreate(2,
|
|
1100
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_ng_template_1_Conditional_2_Template, 2, 0, "span", 149)(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_ng_template_1_Conditional_3_Template, 2, 1, "span");
|
|
1122
1101
|
} if (rf & 2) {
|
|
1123
1102
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1124
1103
|
i0.ɵɵadvance(2);
|
|
1125
1104
|
i0.ɵɵconditional(ctx_r2.loadingStates.prompts ? 2 : ctx_r2.promptCount > 0 ? 3 : -1);
|
|
1126
1105
|
} }
|
|
1127
|
-
function
|
|
1106
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
1128
1107
|
const _r26 = i0.ɵɵgetCurrentView();
|
|
1129
|
-
i0.ɵɵelementStart(0, "
|
|
1130
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
1108
|
+
i0.ɵɵelementStart(0, "mj-dropdown", 258);
|
|
1109
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_9_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.record.ModelSelectionMode, $event) || (ctx_r2.record.ModelSelectionMode = $event); return i0.ɵɵresetView($event); });
|
|
1131
1110
|
i0.ɵɵelementEnd();
|
|
1132
1111
|
} if (rf & 2) {
|
|
1133
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1112
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1134
1113
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.ModelSelectionMode);
|
|
1135
|
-
i0.ɵɵproperty("
|
|
1114
|
+
i0.ɵɵproperty("Data", ctx_r2.modelSelectionModes)("ValuePrimitive", true);
|
|
1136
1115
|
} }
|
|
1137
|
-
function
|
|
1138
|
-
i0.ɵɵelementStart(0, "span",
|
|
1116
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
1117
|
+
i0.ɵɵelementStart(0, "span", 257);
|
|
1139
1118
|
i0.ɵɵtext(1);
|
|
1140
1119
|
i0.ɵɵelementEnd();
|
|
1141
1120
|
} if (rf & 2) {
|
|
1142
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1121
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1143
1122
|
i0.ɵɵadvance();
|
|
1144
1123
|
i0.ɵɵtextInterpolate(ctx_r2.record.ModelSelectionMode || "Agent Type");
|
|
1145
1124
|
} }
|
|
1146
|
-
function
|
|
1125
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
1147
1126
|
const _r27 = i0.ɵɵgetCurrentView();
|
|
1148
|
-
i0.ɵɵelementStart(0, "button",
|
|
1149
|
-
i0.ɵɵlistener("click", function
|
|
1150
|
-
i0.ɵɵelement(1, "i",
|
|
1127
|
+
i0.ɵɵelementStart(0, "button", 207);
|
|
1128
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.addPrompt()); });
|
|
1129
|
+
i0.ɵɵelement(1, "i", 208);
|
|
1151
1130
|
i0.ɵɵtext(2, " Add Prompt ");
|
|
1152
1131
|
i0.ɵɵelementEnd();
|
|
1153
1132
|
} }
|
|
1154
|
-
function
|
|
1133
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_13_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1155
1134
|
const _r28 = i0.ɵɵgetCurrentView();
|
|
1156
|
-
i0.ɵɵelementStart(0, "button",
|
|
1157
|
-
i0.ɵɵlistener("click", function
|
|
1158
|
-
i0.ɵɵelement(1, "i",
|
|
1135
|
+
i0.ɵɵelementStart(0, "button", 210);
|
|
1136
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_13_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r28); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.addPrompt()); });
|
|
1137
|
+
i0.ɵɵelement(1, "i", 208);
|
|
1159
1138
|
i0.ɵɵtext(2, " Create First Prompt ");
|
|
1160
1139
|
i0.ɵɵelementEnd();
|
|
1161
1140
|
} }
|
|
1162
|
-
function
|
|
1163
|
-
i0.ɵɵelementStart(0, "div",
|
|
1164
|
-
i0.ɵɵelement(1, "i",
|
|
1141
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
1142
|
+
i0.ɵɵelementStart(0, "div", 147);
|
|
1143
|
+
i0.ɵɵelement(1, "i", 190);
|
|
1165
1144
|
i0.ɵɵelementStart(2, "h4");
|
|
1166
1145
|
i0.ɵɵtext(3, "No Prompts Configured");
|
|
1167
1146
|
i0.ɵɵelementEnd();
|
|
1168
1147
|
i0.ɵɵelementStart(4, "p");
|
|
1169
1148
|
i0.ɵɵtext(5, "Add prompts to define how this agent processes requests and generates responses.");
|
|
1170
1149
|
i0.ɵɵelementEnd();
|
|
1171
|
-
i0.ɵɵconditionalCreate(6,
|
|
1150
|
+
i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_13_Conditional_6_Template, 3, 0, "button", 209);
|
|
1172
1151
|
i0.ɵɵelementEnd();
|
|
1173
1152
|
} if (rf & 2) {
|
|
1174
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1153
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1175
1154
|
i0.ɵɵadvance(6);
|
|
1176
1155
|
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanCreateNewPrompts ? 6 : -1);
|
|
1177
1156
|
} }
|
|
1178
|
-
function
|
|
1179
|
-
i0.ɵɵelementStart(0, "div",
|
|
1157
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1158
|
+
i0.ɵɵelementStart(0, "div", 217);
|
|
1180
1159
|
i0.ɵɵtext(1);
|
|
1181
1160
|
i0.ɵɵelementEnd();
|
|
1182
1161
|
} if (rf & 2) {
|
|
@@ -1184,8 +1163,8 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_11_ng_template
|
|
|
1184
1163
|
i0.ɵɵadvance();
|
|
1185
1164
|
i0.ɵɵtextInterpolate2("", prompt_r30.TemplateText.substring(0, 120), "", prompt_r30.TemplateText.length > 120 ? "..." : "");
|
|
1186
1165
|
} }
|
|
1187
|
-
function
|
|
1188
|
-
i0.ɵɵelementStart(0, "span",
|
|
1166
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1167
|
+
i0.ɵɵelementStart(0, "span", 219);
|
|
1189
1168
|
i0.ɵɵtext(1);
|
|
1190
1169
|
i0.ɵɵelementEnd();
|
|
1191
1170
|
} if (rf & 2) {
|
|
@@ -1193,42 +1172,42 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_11_ng_template
|
|
|
1193
1172
|
i0.ɵɵadvance();
|
|
1194
1173
|
i0.ɵɵtextInterpolate(prompt_r30.PromptRole);
|
|
1195
1174
|
} }
|
|
1196
|
-
function
|
|
1175
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
1197
1176
|
const _r31 = i0.ɵɵgetCurrentView();
|
|
1198
|
-
i0.ɵɵelementStart(0, "button",
|
|
1199
|
-
i0.ɵɵlistener("click", function
|
|
1200
|
-
i0.ɵɵelement(1, "i",
|
|
1177
|
+
i0.ɵɵelementStart(0, "button", 250);
|
|
1178
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Conditional_10_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r31); const prompt_r30 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.openPromptAdvancedSettings(prompt_r30, $event)); });
|
|
1179
|
+
i0.ɵɵelement(1, "i", 173);
|
|
1201
1180
|
i0.ɵɵelementEnd();
|
|
1202
1181
|
} }
|
|
1203
|
-
function
|
|
1182
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
1204
1183
|
const _r32 = i0.ɵɵgetCurrentView();
|
|
1205
|
-
i0.ɵɵelementStart(0, "button",
|
|
1206
|
-
i0.ɵɵlistener("click", function
|
|
1207
|
-
i0.ɵɵelement(1, "i",
|
|
1184
|
+
i0.ɵɵelementStart(0, "button", 263);
|
|
1185
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Conditional_11_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r32); const prompt_r30 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.removePrompt(prompt_r30, $event)); });
|
|
1186
|
+
i0.ɵɵelement(1, "i", 224);
|
|
1208
1187
|
i0.ɵɵelementEnd();
|
|
1209
1188
|
} }
|
|
1210
|
-
function
|
|
1189
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
1211
1190
|
const _r29 = i0.ɵɵgetCurrentView();
|
|
1212
|
-
i0.ɵɵelementStart(0, "div",
|
|
1213
|
-
i0.ɵɵlistener("click", function
|
|
1214
|
-
i0.ɵɵelementStart(1, "div",
|
|
1215
|
-
i0.ɵɵelement(2, "i",
|
|
1191
|
+
i0.ɵɵelementStart(0, "div", 260);
|
|
1192
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Template_div_click_0_listener() { const prompt_r30 = i0.ɵɵrestoreView(_r29).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.navigateToEntity("MJ: AI Prompts", prompt_r30.ID)); });
|
|
1193
|
+
i0.ɵɵelementStart(1, "div", 214);
|
|
1194
|
+
i0.ɵɵelement(2, "i", 261);
|
|
1216
1195
|
i0.ɵɵelementEnd();
|
|
1217
|
-
i0.ɵɵelementStart(3, "div",
|
|
1196
|
+
i0.ɵɵelementStart(3, "div", 215)(4, "div", 216);
|
|
1218
1197
|
i0.ɵɵtext(5);
|
|
1219
1198
|
i0.ɵɵelementEnd();
|
|
1220
|
-
i0.ɵɵconditionalCreate(6,
|
|
1221
|
-
i0.ɵɵelementStart(7, "div",
|
|
1222
|
-
i0.ɵɵconditionalCreate(8,
|
|
1199
|
+
i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Conditional_6_Template, 2, 2, "div", 217);
|
|
1200
|
+
i0.ɵɵelementStart(7, "div", 218);
|
|
1201
|
+
i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Conditional_8_Template, 2, 1, "span", 219);
|
|
1223
1202
|
i0.ɵɵelementEnd()();
|
|
1224
|
-
i0.ɵɵelementStart(9, "div",
|
|
1225
|
-
i0.ɵɵconditionalCreate(10,
|
|
1226
|
-
i0.ɵɵconditionalCreate(11,
|
|
1227
|
-
i0.ɵɵelement(12, "i",
|
|
1203
|
+
i0.ɵɵelementStart(9, "div", 221);
|
|
1204
|
+
i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Conditional_10_Template, 2, 0, "button", 246);
|
|
1205
|
+
i0.ɵɵconditionalCreate(11, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Conditional_11_Template, 2, 0, "button", 262);
|
|
1206
|
+
i0.ɵɵelement(12, "i", 200);
|
|
1228
1207
|
i0.ɵɵelementEnd()();
|
|
1229
1208
|
} if (rf & 2) {
|
|
1230
1209
|
const prompt_r30 = ctx.$implicit;
|
|
1231
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1210
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
1232
1211
|
i0.ɵɵadvance(5);
|
|
1233
1212
|
i0.ɵɵtextInterpolate(prompt_r30.Name);
|
|
1234
1213
|
i0.ɵɵadvance();
|
|
@@ -1240,78 +1219,80 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_11_ng_template
|
|
|
1240
1219
|
i0.ɵɵadvance();
|
|
1241
1220
|
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanDeletePrompts ? 11 : -1);
|
|
1242
1221
|
} }
|
|
1243
|
-
function
|
|
1222
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1244
1223
|
const _r33 = i0.ɵɵgetCurrentView();
|
|
1245
|
-
i0.ɵɵelementStart(0, "div",
|
|
1246
|
-
i0.ɵɵlistener("click", function
|
|
1224
|
+
i0.ɵɵelementStart(0, "div", 225);
|
|
1225
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r33); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.navigateToEntity("MJ: AI Prompts", "")); });
|
|
1247
1226
|
i0.ɵɵelementStart(1, "span");
|
|
1248
1227
|
i0.ɵɵtext(2);
|
|
1249
1228
|
i0.ɵɵelementEnd()();
|
|
1250
1229
|
} if (rf & 2) {
|
|
1251
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1230
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
1252
1231
|
i0.ɵɵadvance(2);
|
|
1253
1232
|
i0.ɵɵtextInterpolate1("View all ", ctx_r2.promptCount, " prompts...");
|
|
1254
1233
|
} }
|
|
1255
|
-
function
|
|
1256
|
-
i0.ɵɵelementStart(0, "div",
|
|
1257
|
-
i0.ɵɵrepeaterCreate(1,
|
|
1258
|
-
i0.ɵɵconditionalCreate(3,
|
|
1234
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
1235
|
+
i0.ɵɵelementStart(0, "div", 206);
|
|
1236
|
+
i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_For_2_Template, 13, 5, "div", 259, _forTrack0);
|
|
1237
|
+
i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_Conditional_3_Template, 3, 1, "div", 212);
|
|
1259
1238
|
i0.ɵɵelementEnd();
|
|
1260
1239
|
} if (rf & 2) {
|
|
1261
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1240
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1262
1241
|
i0.ɵɵadvance();
|
|
1263
1242
|
i0.ɵɵrepeater(ctx_r2.agentPrompts);
|
|
1264
1243
|
i0.ɵɵadvance(2);
|
|
1265
1244
|
i0.ɵɵconditional(ctx_r2.promptCount > ctx_r2.agentPrompts.length ? 3 : -1);
|
|
1266
1245
|
} }
|
|
1267
|
-
function
|
|
1268
|
-
i0.ɵɵelementStart(0, "
|
|
1269
|
-
i0.ɵɵ
|
|
1270
|
-
i0.ɵɵ
|
|
1246
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
1247
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 13);
|
|
1248
|
+
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_ng_template_1_Template, 4, 1, "ng-template", 17);
|
|
1249
|
+
i0.ɵɵelementStart(2, "div", 18)(3, "div", 19)(4, "div", 252)(5, "div", 253)(6, "label", 254);
|
|
1250
|
+
i0.ɵɵelement(7, "i", 255);
|
|
1251
|
+
i0.ɵɵtext(8, " Model Selection: ");
|
|
1271
1252
|
i0.ɵɵelementEnd();
|
|
1272
|
-
i0.ɵɵconditionalCreate(
|
|
1253
|
+
i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_9_Template, 1, 3, "mj-dropdown", 256)(10, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_10_Template, 2, 1, "span", 257);
|
|
1273
1254
|
i0.ɵɵelementEnd()();
|
|
1274
|
-
i0.ɵɵelementStart(
|
|
1275
|
-
i0.ɵɵconditionalCreate(
|
|
1255
|
+
i0.ɵɵelementStart(11, "div", 204);
|
|
1256
|
+
i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_12_Template, 3, 0, "button", 205);
|
|
1257
|
+
i0.ɵɵelementEnd()();
|
|
1258
|
+
i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_13_Template, 7, 1, "div", 147)(14, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Conditional_14_Template, 4, 1, "div", 206);
|
|
1276
1259
|
i0.ɵɵelementEnd()();
|
|
1277
|
-
i0.ɵɵconditionalCreate(11, MJAIAgentFormComponentExtended_Conditional_3_Conditional_11_ng_template_2_Conditional_11_Template, 7, 1, "div", 67)(12, MJAIAgentFormComponentExtended_Conditional_3_Conditional_11_ng_template_2_Conditional_12_Template, 4, 1, "div", 126);
|
|
1278
|
-
i0.ɵɵelementEnd();
|
|
1279
1260
|
} if (rf & 2) {
|
|
1280
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1281
|
-
i0.ɵɵ
|
|
1282
|
-
i0.ɵɵ
|
|
1261
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1262
|
+
i0.ɵɵproperty("Expanded", ctx_r2.GetSectionExpanded("prompts", false))("Disabled", ctx_r2.loadingStates.prompts);
|
|
1263
|
+
i0.ɵɵadvance(9);
|
|
1264
|
+
i0.ɵɵconditional(ctx_r2.EditMode ? 9 : 10);
|
|
1283
1265
|
i0.ɵɵadvance(3);
|
|
1284
|
-
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanCreateNewPrompts ?
|
|
1266
|
+
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanCreateNewPrompts ? 12 : -1);
|
|
1285
1267
|
i0.ɵɵadvance();
|
|
1286
|
-
i0.ɵɵconditional(ctx_r2.promptCount === 0 ?
|
|
1268
|
+
i0.ɵɵconditional(ctx_r2.promptCount === 0 ? 13 : 14);
|
|
1287
1269
|
} }
|
|
1288
|
-
function
|
|
1289
|
-
i0.ɵɵelementStart(0, "
|
|
1290
|
-
i0.ɵɵ
|
|
1270
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1271
|
+
i0.ɵɵelementStart(0, "span", 149);
|
|
1272
|
+
i0.ɵɵelement(1, "i", 150);
|
|
1291
1273
|
i0.ɵɵelementEnd();
|
|
1292
|
-
} if (rf & 2) {
|
|
1293
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1294
|
-
i0.ɵɵproperty("expanded", ctx_r2.GetSectionExpanded("prompts", false))("disabled", ctx_r2.loadingStates.prompts);
|
|
1295
1274
|
} }
|
|
1296
|
-
function
|
|
1297
|
-
i0.ɵɵelementStart(0, "span"
|
|
1298
|
-
i0.ɵɵ
|
|
1275
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1276
|
+
i0.ɵɵelementStart(0, "span");
|
|
1277
|
+
i0.ɵɵtext(1);
|
|
1299
1278
|
i0.ɵɵelementEnd();
|
|
1279
|
+
} if (rf & 2) {
|
|
1280
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
1281
|
+
i0.ɵɵadvance();
|
|
1282
|
+
i0.ɵɵtextInterpolate1(" (", ctx_r2.learningCycleCount, ")");
|
|
1300
1283
|
} }
|
|
1301
|
-
function
|
|
1302
|
-
i0.ɵɵelement(0, "i",
|
|
1303
|
-
i0.ɵɵtext(1);
|
|
1304
|
-
i0.ɵɵconditionalCreate(2,
|
|
1284
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
1285
|
+
i0.ɵɵelement(0, "i", 264);
|
|
1286
|
+
i0.ɵɵtext(1, " Learning Cycles ");
|
|
1287
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_ng_template_1_Conditional_2_Template, 2, 0, "span", 149)(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_ng_template_1_Conditional_3_Template, 2, 1, "span");
|
|
1305
1288
|
} if (rf & 2) {
|
|
1306
1289
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1307
|
-
i0.ɵɵadvance();
|
|
1308
|
-
i0.ɵɵ
|
|
1309
|
-
i0.ɵɵadvance();
|
|
1310
|
-
i0.ɵɵconditional(ctx_r2.loadingStates.learningCycles ? 2 : -1);
|
|
1290
|
+
i0.ɵɵadvance(2);
|
|
1291
|
+
i0.ɵɵconditional(ctx_r2.loadingStates.learningCycles ? 2 : ctx_r2.learningCycleCount > 0 ? 3 : -1);
|
|
1311
1292
|
} }
|
|
1312
|
-
function
|
|
1313
|
-
i0.ɵɵelementStart(0, "div",
|
|
1314
|
-
i0.ɵɵelement(1, "i",
|
|
1293
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1294
|
+
i0.ɵɵelementStart(0, "div", 147);
|
|
1295
|
+
i0.ɵɵelement(1, "i", 264);
|
|
1315
1296
|
i0.ɵɵelementStart(2, "h4");
|
|
1316
1297
|
i0.ɵɵtext(3, "No Learning Cycles");
|
|
1317
1298
|
i0.ɵɵelementEnd();
|
|
@@ -1319,9 +1300,9 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_12_ng_template
|
|
|
1319
1300
|
i0.ɵɵtext(5, "Learning cycles will appear here as the agent processes requests and improves over time.");
|
|
1320
1301
|
i0.ɵɵelementEnd()();
|
|
1321
1302
|
} }
|
|
1322
|
-
function
|
|
1323
|
-
i0.ɵɵelementStart(0, "span",
|
|
1324
|
-
i0.ɵɵelement(1, "i",
|
|
1303
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
1304
|
+
i0.ɵɵelementStart(0, "span", 219);
|
|
1305
|
+
i0.ɵɵelement(1, "i", 267);
|
|
1325
1306
|
i0.ɵɵtext(2);
|
|
1326
1307
|
i0.ɵɵpipe(3, "date");
|
|
1327
1308
|
i0.ɵɵelementEnd();
|
|
@@ -1330,8 +1311,8 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_12_ng_template
|
|
|
1330
1311
|
i0.ɵɵadvance(2);
|
|
1331
1312
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, cycle_r35.StartedAt, "short"), " ");
|
|
1332
1313
|
} }
|
|
1333
|
-
function
|
|
1334
|
-
i0.ɵɵelementStart(0, "span",
|
|
1314
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1315
|
+
i0.ɵɵelementStart(0, "span", 220);
|
|
1335
1316
|
i0.ɵɵtext(1);
|
|
1336
1317
|
i0.ɵɵelementEnd();
|
|
1337
1318
|
} if (rf & 2) {
|
|
@@ -1339,22 +1320,22 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_12_ng_template
|
|
|
1339
1320
|
i0.ɵɵadvance();
|
|
1340
1321
|
i0.ɵɵtextInterpolate(cycle_r35.Status);
|
|
1341
1322
|
} }
|
|
1342
|
-
function
|
|
1323
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
1343
1324
|
const _r34 = i0.ɵɵgetCurrentView();
|
|
1344
|
-
i0.ɵɵelementStart(0, "div",
|
|
1345
|
-
i0.ɵɵlistener("click", function
|
|
1346
|
-
i0.ɵɵelementStart(1, "div",
|
|
1347
|
-
i0.ɵɵelement(2, "i",
|
|
1325
|
+
i0.ɵɵelementStart(0, "div", 266);
|
|
1326
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_For_2_Template_div_click_0_listener() { const cycle_r35 = i0.ɵɵrestoreView(_r34).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.navigateToEntity("MJ: AI Agent Learning Cycles", cycle_r35.ID)); });
|
|
1327
|
+
i0.ɵɵelementStart(1, "div", 214);
|
|
1328
|
+
i0.ɵɵelement(2, "i", 264);
|
|
1348
1329
|
i0.ɵɵelementEnd();
|
|
1349
|
-
i0.ɵɵelementStart(3, "div",
|
|
1330
|
+
i0.ɵɵelementStart(3, "div", 215)(4, "div", 216);
|
|
1350
1331
|
i0.ɵɵtext(5);
|
|
1351
1332
|
i0.ɵɵelementEnd();
|
|
1352
|
-
i0.ɵɵelementStart(6, "div",
|
|
1353
|
-
i0.ɵɵconditionalCreate(7,
|
|
1354
|
-
i0.ɵɵconditionalCreate(8,
|
|
1333
|
+
i0.ɵɵelementStart(6, "div", 218);
|
|
1334
|
+
i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_For_2_Conditional_7_Template, 4, 4, "span", 219);
|
|
1335
|
+
i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_For_2_Conditional_8_Template, 2, 1, "span", 220);
|
|
1355
1336
|
i0.ɵɵelementEnd()();
|
|
1356
|
-
i0.ɵɵelementStart(9, "div",
|
|
1357
|
-
i0.ɵɵelement(10, "i",
|
|
1337
|
+
i0.ɵɵelementStart(9, "div", 221);
|
|
1338
|
+
i0.ɵɵelement(10, "i", 200);
|
|
1358
1339
|
i0.ɵɵelementEnd()();
|
|
1359
1340
|
} if (rf & 2) {
|
|
1360
1341
|
const cycle_r35 = ctx.$implicit;
|
|
@@ -1365,99 +1346,101 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_12_ng_template
|
|
|
1365
1346
|
i0.ɵɵadvance();
|
|
1366
1347
|
i0.ɵɵconditional(cycle_r35.Status ? 8 : -1);
|
|
1367
1348
|
} }
|
|
1368
|
-
function
|
|
1349
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1369
1350
|
const _r36 = i0.ɵɵgetCurrentView();
|
|
1370
|
-
i0.ɵɵelementStart(0, "div",
|
|
1371
|
-
i0.ɵɵlistener("click", function
|
|
1351
|
+
i0.ɵɵelementStart(0, "div", 225);
|
|
1352
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r36); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.navigateToEntity("MJ: AI Agent Learning Cycles", "")); });
|
|
1372
1353
|
i0.ɵɵelementStart(1, "span");
|
|
1373
1354
|
i0.ɵɵtext(2);
|
|
1374
1355
|
i0.ɵɵelementEnd()();
|
|
1375
1356
|
} if (rf & 2) {
|
|
1376
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1357
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
1377
1358
|
i0.ɵɵadvance(2);
|
|
1378
1359
|
i0.ɵɵtextInterpolate1("View all ", ctx_r2.learningCycleCount, " cycles...");
|
|
1379
1360
|
} }
|
|
1380
|
-
function
|
|
1381
|
-
i0.ɵɵelementStart(0, "div",
|
|
1382
|
-
i0.ɵɵrepeaterCreate(1,
|
|
1383
|
-
i0.ɵɵconditionalCreate(3,
|
|
1361
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
1362
|
+
i0.ɵɵelementStart(0, "div", 206);
|
|
1363
|
+
i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_For_2_Template, 11, 3, "div", 265, _forTrack0);
|
|
1364
|
+
i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_Conditional_3_Template, 3, 1, "div", 212);
|
|
1384
1365
|
i0.ɵɵelementEnd();
|
|
1385
1366
|
} if (rf & 2) {
|
|
1386
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1367
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1387
1368
|
i0.ɵɵadvance();
|
|
1388
1369
|
i0.ɵɵrepeater(ctx_r2.learningCycles);
|
|
1389
1370
|
i0.ɵɵadvance(2);
|
|
1390
1371
|
i0.ɵɵconditional(ctx_r2.learningCycleCount > ctx_r2.learningCycles.length ? 3 : -1);
|
|
1391
1372
|
} }
|
|
1392
|
-
function
|
|
1393
|
-
i0.ɵɵelementStart(0, "
|
|
1394
|
-
i0.ɵɵ
|
|
1373
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
1374
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 14);
|
|
1375
|
+
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_ng_template_1_Template, 4, 1, "ng-template", 17);
|
|
1376
|
+
i0.ɵɵelementStart(2, "div", 18)(3, "div", 19)(4, "div", 20);
|
|
1377
|
+
i0.ɵɵtext(5, " Monitor and manage learning cycles, training sessions, and performance analytics. ");
|
|
1378
|
+
i0.ɵɵelementEnd()();
|
|
1379
|
+
i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_6_Template, 6, 0, "div", 147)(7, MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Conditional_7_Template, 4, 1, "div", 206);
|
|
1395
1380
|
i0.ɵɵelementEnd()();
|
|
1396
|
-
i0.ɵɵconditionalCreate(4, MJAIAgentFormComponentExtended_Conditional_3_Conditional_12_ng_template_2_Conditional_4_Template, 6, 0, "div", 67)(5, MJAIAgentFormComponentExtended_Conditional_3_Conditional_12_ng_template_2_Conditional_5_Template, 4, 1, "div", 126);
|
|
1397
|
-
i0.ɵɵelementEnd();
|
|
1398
|
-
} if (rf & 2) {
|
|
1399
|
-
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1400
|
-
i0.ɵɵadvance(4);
|
|
1401
|
-
i0.ɵɵconditional(ctx_r2.learningCycleCount === 0 ? 4 : 5);
|
|
1402
|
-
} }
|
|
1403
|
-
function MJAIAgentFormComponentExtended_Conditional_3_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
1404
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item", 17);
|
|
1405
|
-
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_3_Conditional_12_ng_template_1_Template, 3, 2, "ng-template", 20)(2, MJAIAgentFormComponentExtended_Conditional_3_Conditional_12_ng_template_2_Template, 6, 1, "ng-template", 21);
|
|
1406
|
-
i0.ɵɵelementEnd();
|
|
1407
1381
|
} if (rf & 2) {
|
|
1408
1382
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1409
|
-
i0.ɵɵproperty("
|
|
1383
|
+
i0.ɵɵproperty("Expanded", ctx_r2.GetSectionExpanded("learning", false))("Disabled", ctx_r2.loadingStates.learningCycles);
|
|
1384
|
+
i0.ɵɵadvance(6);
|
|
1385
|
+
i0.ɵɵconditional(ctx_r2.learningCycleCount === 0 ? 6 : 7);
|
|
1410
1386
|
} }
|
|
1411
|
-
function
|
|
1412
|
-
i0.ɵɵelementStart(0, "span",
|
|
1413
|
-
i0.ɵɵelement(1, "i",
|
|
1387
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1388
|
+
i0.ɵɵelementStart(0, "span", 149);
|
|
1389
|
+
i0.ɵɵelement(1, "i", 150);
|
|
1414
1390
|
i0.ɵɵelementEnd();
|
|
1415
1391
|
} }
|
|
1416
|
-
function
|
|
1417
|
-
i0.ɵɵ
|
|
1392
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1393
|
+
i0.ɵɵelementStart(0, "span");
|
|
1418
1394
|
i0.ɵɵtext(1);
|
|
1419
|
-
i0.ɵɵ
|
|
1395
|
+
i0.ɵɵelementEnd();
|
|
1420
1396
|
} if (rf & 2) {
|
|
1421
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1422
|
-
i0.ɵɵadvance();
|
|
1423
|
-
i0.ɵɵtextInterpolate1(" Notes", ctx_r2.noteCount > 0 ? " (" + ctx_r2.noteCount + ")" : "", " ");
|
|
1397
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
1424
1398
|
i0.ɵɵadvance();
|
|
1425
|
-
i0.ɵɵ
|
|
1399
|
+
i0.ɵɵtextInterpolate1(" (", ctx_r2.noteCount, ")");
|
|
1426
1400
|
} }
|
|
1427
|
-
function
|
|
1401
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
1402
|
+
i0.ɵɵelement(0, "i", 268);
|
|
1403
|
+
i0.ɵɵtext(1, " Notes ");
|
|
1404
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_ng_template_1_Conditional_2_Template, 2, 0, "span", 149)(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_ng_template_1_Conditional_3_Template, 2, 1, "span");
|
|
1405
|
+
} if (rf & 2) {
|
|
1406
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1407
|
+
i0.ɵɵadvance(2);
|
|
1408
|
+
i0.ɵɵconditional(ctx_r2.loadingStates.notes ? 2 : ctx_r2.noteCount > 0 ? 3 : -1);
|
|
1409
|
+
} }
|
|
1410
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
1428
1411
|
const _r37 = i0.ɵɵgetCurrentView();
|
|
1429
|
-
i0.ɵɵelementStart(0, "button",
|
|
1430
|
-
i0.ɵɵlistener("click", function
|
|
1431
|
-
i0.ɵɵelement(1, "i",
|
|
1412
|
+
i0.ɵɵelementStart(0, "button", 207);
|
|
1413
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r37); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.addNote()); });
|
|
1414
|
+
i0.ɵɵelement(1, "i", 208);
|
|
1432
1415
|
i0.ɵɵtext(2, " Add Note ");
|
|
1433
1416
|
i0.ɵɵelementEnd();
|
|
1434
1417
|
} }
|
|
1435
|
-
function
|
|
1418
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_8_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1436
1419
|
const _r38 = i0.ɵɵgetCurrentView();
|
|
1437
|
-
i0.ɵɵelementStart(0, "button",
|
|
1438
|
-
i0.ɵɵlistener("click", function
|
|
1439
|
-
i0.ɵɵelement(1, "i",
|
|
1420
|
+
i0.ɵɵelementStart(0, "button", 210);
|
|
1421
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_8_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r38); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.addNote()); });
|
|
1422
|
+
i0.ɵɵelement(1, "i", 208);
|
|
1440
1423
|
i0.ɵɵtext(2, " Create First Note ");
|
|
1441
1424
|
i0.ɵɵelementEnd();
|
|
1442
1425
|
} }
|
|
1443
|
-
function
|
|
1444
|
-
i0.ɵɵelementStart(0, "div",
|
|
1445
|
-
i0.ɵɵelement(1, "i",
|
|
1426
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1427
|
+
i0.ɵɵelementStart(0, "div", 147);
|
|
1428
|
+
i0.ɵɵelement(1, "i", 268);
|
|
1446
1429
|
i0.ɵɵelementStart(2, "h4");
|
|
1447
1430
|
i0.ɵɵtext(3, "No Notes");
|
|
1448
1431
|
i0.ɵɵelementEnd();
|
|
1449
1432
|
i0.ɵɵelementStart(4, "p");
|
|
1450
1433
|
i0.ɵɵtext(5, "Add notes to document important information, observations, or instructions for this agent.");
|
|
1451
1434
|
i0.ɵɵelementEnd();
|
|
1452
|
-
i0.ɵɵconditionalCreate(6,
|
|
1435
|
+
i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_8_Conditional_6_Template, 3, 0, "button", 209);
|
|
1453
1436
|
i0.ɵɵelementEnd();
|
|
1454
1437
|
} if (rf & 2) {
|
|
1455
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1438
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1456
1439
|
i0.ɵɵadvance(6);
|
|
1457
1440
|
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanCreateNotes ? 6 : -1);
|
|
1458
1441
|
} }
|
|
1459
|
-
function
|
|
1460
|
-
i0.ɵɵelementStart(0, "div",
|
|
1442
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1443
|
+
i0.ɵɵelementStart(0, "div", 217);
|
|
1461
1444
|
i0.ɵɵtext(1);
|
|
1462
1445
|
i0.ɵɵelementEnd();
|
|
1463
1446
|
} if (rf & 2) {
|
|
@@ -1465,9 +1448,9 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_13_ng_template
|
|
|
1465
1448
|
i0.ɵɵadvance();
|
|
1466
1449
|
i0.ɵɵtextInterpolate2("", note_r40.Note.substring(0, 100), "", note_r40.Note.length > 100 ? "..." : "");
|
|
1467
1450
|
} }
|
|
1468
|
-
function
|
|
1469
|
-
i0.ɵɵelementStart(0, "span",
|
|
1470
|
-
i0.ɵɵelement(1, "i",
|
|
1451
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1452
|
+
i0.ɵɵelementStart(0, "span", 219);
|
|
1453
|
+
i0.ɵɵelement(1, "i", 267);
|
|
1471
1454
|
i0.ɵɵtext(2);
|
|
1472
1455
|
i0.ɵɵpipe(3, "date");
|
|
1473
1456
|
i0.ɵɵelementEnd();
|
|
@@ -1476,22 +1459,22 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_13_ng_template
|
|
|
1476
1459
|
i0.ɵɵadvance(2);
|
|
1477
1460
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, note_r40.__mj_CreatedAt, "short"), " ");
|
|
1478
1461
|
} }
|
|
1479
|
-
function
|
|
1462
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
1480
1463
|
const _r39 = i0.ɵɵgetCurrentView();
|
|
1481
|
-
i0.ɵɵelementStart(0, "div",
|
|
1482
|
-
i0.ɵɵlistener("click", function
|
|
1483
|
-
i0.ɵɵelementStart(1, "div",
|
|
1484
|
-
i0.ɵɵelement(2, "i",
|
|
1464
|
+
i0.ɵɵelementStart(0, "div", 270);
|
|
1465
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_For_2_Template_div_click_0_listener() { const note_r40 = i0.ɵɵrestoreView(_r39).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.navigateToEntity("MJ: AI Agent Notes", note_r40.ID)); });
|
|
1466
|
+
i0.ɵɵelementStart(1, "div", 214);
|
|
1467
|
+
i0.ɵɵelement(2, "i", 268);
|
|
1485
1468
|
i0.ɵɵelementEnd();
|
|
1486
|
-
i0.ɵɵelementStart(3, "div",
|
|
1469
|
+
i0.ɵɵelementStart(3, "div", 215)(4, "div", 216);
|
|
1487
1470
|
i0.ɵɵtext(5);
|
|
1488
1471
|
i0.ɵɵelementEnd();
|
|
1489
|
-
i0.ɵɵconditionalCreate(6,
|
|
1490
|
-
i0.ɵɵelementStart(7, "div",
|
|
1491
|
-
i0.ɵɵconditionalCreate(8,
|
|
1472
|
+
i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_For_2_Conditional_6_Template, 2, 2, "div", 217);
|
|
1473
|
+
i0.ɵɵelementStart(7, "div", 218);
|
|
1474
|
+
i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_For_2_Conditional_8_Template, 4, 4, "span", 219);
|
|
1492
1475
|
i0.ɵɵelementEnd()();
|
|
1493
|
-
i0.ɵɵelementStart(9, "div",
|
|
1494
|
-
i0.ɵɵelement(10, "i",
|
|
1476
|
+
i0.ɵɵelementStart(9, "div", 221);
|
|
1477
|
+
i0.ɵɵelement(10, "i", 200);
|
|
1495
1478
|
i0.ɵɵelementEnd()();
|
|
1496
1479
|
} if (rf & 2) {
|
|
1497
1480
|
const note_r40 = ctx.$implicit;
|
|
@@ -1502,330 +1485,152 @@ function MJAIAgentFormComponentExtended_Conditional_3_Conditional_13_ng_template
|
|
|
1502
1485
|
i0.ɵɵadvance(2);
|
|
1503
1486
|
i0.ɵɵconditional(note_r40.__mj_CreatedAt ? 8 : -1);
|
|
1504
1487
|
} }
|
|
1505
|
-
function
|
|
1488
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1506
1489
|
const _r41 = i0.ɵɵgetCurrentView();
|
|
1507
|
-
i0.ɵɵelementStart(0, "div",
|
|
1508
|
-
i0.ɵɵlistener("click", function
|
|
1490
|
+
i0.ɵɵelementStart(0, "div", 225);
|
|
1491
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r41); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.navigateToEntity("MJ: AI Agent Notes", "")); });
|
|
1509
1492
|
i0.ɵɵelementStart(1, "span");
|
|
1510
1493
|
i0.ɵɵtext(2);
|
|
1511
1494
|
i0.ɵɵelementEnd()();
|
|
1512
1495
|
} if (rf & 2) {
|
|
1513
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1496
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
1514
1497
|
i0.ɵɵadvance(2);
|
|
1515
1498
|
i0.ɵɵtextInterpolate1("View all ", ctx_r2.noteCount, " notes...");
|
|
1516
1499
|
} }
|
|
1517
|
-
function
|
|
1518
|
-
i0.ɵɵelementStart(0, "div",
|
|
1519
|
-
i0.ɵɵrepeaterCreate(1,
|
|
1520
|
-
i0.ɵɵconditionalCreate(3,
|
|
1500
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
1501
|
+
i0.ɵɵelementStart(0, "div", 206);
|
|
1502
|
+
i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_For_2_Template, 11, 3, "div", 269, _forTrack0);
|
|
1503
|
+
i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_Conditional_3_Template, 3, 1, "div", 212);
|
|
1521
1504
|
i0.ɵɵelementEnd();
|
|
1522
1505
|
} if (rf & 2) {
|
|
1523
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1506
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1524
1507
|
i0.ɵɵadvance();
|
|
1525
1508
|
i0.ɵɵrepeater(ctx_r2.agentNotes);
|
|
1526
1509
|
i0.ɵɵadvance(2);
|
|
1527
1510
|
i0.ɵɵconditional(ctx_r2.noteCount > ctx_r2.agentNotes.length ? 3 : -1);
|
|
1528
1511
|
} }
|
|
1529
|
-
function
|
|
1530
|
-
i0.ɵɵelementStart(0, "
|
|
1531
|
-
i0.ɵɵ
|
|
1512
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
1513
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 15);
|
|
1514
|
+
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_ng_template_1_Template, 4, 1, "ng-template", 17);
|
|
1515
|
+
i0.ɵɵelementStart(2, "div", 18)(3, "div", 19)(4, "div", 20);
|
|
1516
|
+
i0.ɵɵtext(5, " Manage notes, documentation, and annotations for this agent. ");
|
|
1532
1517
|
i0.ɵɵelementEnd();
|
|
1533
|
-
i0.ɵɵelementStart(
|
|
1534
|
-
i0.ɵɵconditionalCreate(
|
|
1518
|
+
i0.ɵɵelementStart(6, "div", 204);
|
|
1519
|
+
i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_7_Template, 3, 0, "button", 205);
|
|
1520
|
+
i0.ɵɵelementEnd()();
|
|
1521
|
+
i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_8_Template, 7, 1, "div", 147)(9, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Conditional_9_Template, 4, 1, "div", 206);
|
|
1535
1522
|
i0.ɵɵelementEnd()();
|
|
1536
|
-
i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_3_Conditional_13_ng_template_2_Conditional_6_Template, 7, 1, "div", 67)(7, MJAIAgentFormComponentExtended_Conditional_3_Conditional_13_ng_template_2_Conditional_7_Template, 4, 1, "div", 126);
|
|
1537
|
-
i0.ɵɵelementEnd();
|
|
1538
|
-
} if (rf & 2) {
|
|
1539
|
-
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1540
|
-
i0.ɵɵadvance(5);
|
|
1541
|
-
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanCreateNotes ? 5 : -1);
|
|
1542
|
-
i0.ɵɵadvance();
|
|
1543
|
-
i0.ɵɵconditional(ctx_r2.noteCount === 0 ? 6 : 7);
|
|
1544
|
-
} }
|
|
1545
|
-
function MJAIAgentFormComponentExtended_Conditional_3_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
1546
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item", 18);
|
|
1547
|
-
i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_3_Conditional_13_ng_template_1_Template, 3, 2, "ng-template", 20)(2, MJAIAgentFormComponentExtended_Conditional_3_Conditional_13_ng_template_2_Template, 8, 2, "ng-template", 21);
|
|
1548
|
-
i0.ɵɵelementEnd();
|
|
1549
1523
|
} if (rf & 2) {
|
|
1550
1524
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1551
|
-
i0.ɵɵproperty("
|
|
1525
|
+
i0.ɵɵproperty("Expanded", ctx_r2.GetSectionExpanded("notes", false))("Disabled", ctx_r2.loadingStates.notes);
|
|
1526
|
+
i0.ɵɵadvance(7);
|
|
1527
|
+
i0.ɵɵconditional(ctx_r2.EditMode && ctx_r2.UserCanCreateNotes ? 7 : -1);
|
|
1528
|
+
i0.ɵɵadvance();
|
|
1529
|
+
i0.ɵɵconditional(ctx_r2.noteCount === 0 ? 8 : 9);
|
|
1552
1530
|
} }
|
|
1553
|
-
function
|
|
1554
|
-
i0.ɵɵelement(0, "i",
|
|
1531
|
+
function MJAIAgentFormComponentExtended_Conditional_1_ng_template_14_Template(rf, ctx) { if (rf & 1) {
|
|
1532
|
+
i0.ɵɵelement(0, "i", 249);
|
|
1555
1533
|
i0.ɵɵtext(1, " Payload Management ");
|
|
1556
1534
|
} }
|
|
1557
|
-
function
|
|
1558
|
-
|
|
1559
|
-
i0.ɵɵelementStart(0, "div", 121)(1, "div", 123)(2, "div", 186);
|
|
1560
|
-
i0.ɵɵtext(3, " Configure how this agent handles data payloads, path routing, and validation between parent and child agents. ");
|
|
1561
|
-
i0.ɵɵelementEnd()();
|
|
1562
|
-
i0.ɵɵelementStart(4, "div", 193)(5, "h3", 194);
|
|
1563
|
-
i0.ɵɵelement(6, "i", 195);
|
|
1564
|
-
i0.ɵɵtext(7, " Payload Scope ");
|
|
1565
|
-
i0.ɵɵelementEnd();
|
|
1566
|
-
i0.ɵɵelementStart(8, "div", 196)(9, "div", 197)(10, "label", 198);
|
|
1567
|
-
i0.ɵɵtext(11, "Payload Scope Path");
|
|
1568
|
-
i0.ɵɵelementEnd();
|
|
1569
|
-
i0.ɵɵelementStart(12, "p", 199);
|
|
1570
|
-
i0.ɵɵtext(13, " Specify a path within the parent payload that this sub-agent should operate on. Leave empty to receive the entire payload. ");
|
|
1571
|
-
i0.ɵɵelementEnd()();
|
|
1572
|
-
i0.ɵɵelementStart(14, "div", 200);
|
|
1573
|
-
i0.ɵɵelement(15, "mj-form-field", 201);
|
|
1574
|
-
i0.ɵɵelementStart(16, "div", 202);
|
|
1575
|
-
i0.ɵɵelement(17, "i", 203);
|
|
1576
|
-
i0.ɵɵelementStart(18, "span");
|
|
1577
|
-
i0.ɵɵtext(19, "Example: ");
|
|
1578
|
-
i0.ɵɵelementStart(20, "code");
|
|
1579
|
-
i0.ɵɵtext(21, "/customer/profile");
|
|
1580
|
-
i0.ɵɵelementEnd();
|
|
1581
|
-
i0.ɵɵtext(22, " or ");
|
|
1582
|
-
i0.ɵɵelementStart(23, "code");
|
|
1583
|
-
i0.ɵɵtext(24, "/analysis/results");
|
|
1584
|
-
i0.ɵɵelementEnd()()()()()();
|
|
1585
|
-
i0.ɵɵelementStart(25, "div", 193)(26, "h3", 194);
|
|
1586
|
-
i0.ɵɵelement(27, "i", 204);
|
|
1587
|
-
i0.ɵɵtext(28, " Path Configuration ");
|
|
1588
|
-
i0.ɵɵelementEnd();
|
|
1589
|
-
i0.ɵɵelementStart(29, "div", 205)(30, "div", 206)(31, "div", 207)(32, "div", 208);
|
|
1590
|
-
i0.ɵɵelement(33, "i", 209);
|
|
1591
|
-
i0.ɵɵelementEnd();
|
|
1592
|
-
i0.ɵɵelementStart(34, "div", 210)(35, "h4");
|
|
1593
|
-
i0.ɵɵtext(36, "Downstream Paths");
|
|
1594
|
-
i0.ɵɵelementEnd();
|
|
1595
|
-
i0.ɵɵelementStart(37, "p");
|
|
1596
|
-
i0.ɵɵtext(38, "JSON array of paths to pass to sub-agents");
|
|
1597
|
-
i0.ɵɵelementEnd()()();
|
|
1598
|
-
i0.ɵɵelementStart(39, "div", 211)(40, "div", 212)(41, "mj-code-editor", 213);
|
|
1599
|
-
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_3_ng_template_16_Template_mj_code_editor_valueChange_41_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.updatePayloadField("PayloadDownstreamPaths", $event)); });
|
|
1600
|
-
i0.ɵɵelementEnd()();
|
|
1601
|
-
i0.ɵɵelementStart(42, "div", 214);
|
|
1602
|
-
i0.ɵɵelement(43, "i", 215);
|
|
1603
|
-
i0.ɵɵtext(44, " Use ");
|
|
1604
|
-
i0.ɵɵelementStart(45, "code");
|
|
1605
|
-
i0.ɵɵtext(46, "[\"*\"]");
|
|
1606
|
-
i0.ɵɵelementEnd();
|
|
1607
|
-
i0.ɵɵtext(47, " to pass entire payload or specify paths like ");
|
|
1608
|
-
i0.ɵɵelementStart(48, "code");
|
|
1609
|
-
i0.ɵɵtext(49, "[\"user.id\", \"order.*\"]");
|
|
1610
|
-
i0.ɵɵelementEnd()()()();
|
|
1611
|
-
i0.ɵɵelementStart(50, "div", 206)(51, "div", 207)(52, "div", 216);
|
|
1612
|
-
i0.ɵɵelement(53, "i", 217);
|
|
1613
|
-
i0.ɵɵelementEnd();
|
|
1614
|
-
i0.ɵɵelementStart(54, "div", 210)(55, "h4");
|
|
1615
|
-
i0.ɵɵtext(56, "Upstream Paths");
|
|
1616
|
-
i0.ɵɵelementEnd();
|
|
1617
|
-
i0.ɵɵelementStart(57, "p");
|
|
1618
|
-
i0.ɵɵtext(58, "JSON array of paths sub-agents can write back");
|
|
1619
|
-
i0.ɵɵelementEnd()()();
|
|
1620
|
-
i0.ɵɵelementStart(59, "div", 211)(60, "div", 212)(61, "mj-code-editor", 213);
|
|
1621
|
-
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_3_ng_template_16_Template_mj_code_editor_valueChange_61_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.updatePayloadField("PayloadUpstreamPaths", $event)); });
|
|
1622
|
-
i0.ɵɵelementEnd()();
|
|
1623
|
-
i0.ɵɵelementStart(62, "div", 214);
|
|
1624
|
-
i0.ɵɵelement(63, "i", 215);
|
|
1625
|
-
i0.ɵɵtext(64, " Use ");
|
|
1626
|
-
i0.ɵɵelementStart(65, "code");
|
|
1627
|
-
i0.ɵɵtext(66, "[\"*\"]");
|
|
1628
|
-
i0.ɵɵelementEnd();
|
|
1629
|
-
i0.ɵɵtext(67, " to allow all writes or limit to specific paths ");
|
|
1630
|
-
i0.ɵɵelementEnd()()();
|
|
1631
|
-
i0.ɵɵelementStart(68, "div", 206)(69, "div", 207)(70, "div", 218);
|
|
1632
|
-
i0.ɵɵelement(71, "i", 219);
|
|
1633
|
-
i0.ɵɵelementEnd();
|
|
1634
|
-
i0.ɵɵelementStart(72, "div", 210)(73, "h4");
|
|
1635
|
-
i0.ɵɵtext(74, "Self Read Paths");
|
|
1636
|
-
i0.ɵɵelementEnd();
|
|
1637
|
-
i0.ɵɵelementStart(75, "p");
|
|
1638
|
-
i0.ɵɵtext(76, "JSON array of paths this agent can read");
|
|
1639
|
-
i0.ɵɵelementEnd()()();
|
|
1640
|
-
i0.ɵɵelementStart(77, "div", 211)(78, "div", 212)(79, "mj-code-editor", 213);
|
|
1641
|
-
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_3_ng_template_16_Template_mj_code_editor_valueChange_79_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.updatePayloadField("PayloadSelfReadPaths", $event)); });
|
|
1642
|
-
i0.ɵɵelementEnd()();
|
|
1643
|
-
i0.ɵɵelementStart(80, "div", 214);
|
|
1644
|
-
i0.ɵɵelement(81, "i", 215);
|
|
1645
|
-
i0.ɵɵtext(82, " Paths this agent's prompts can read from the payload ");
|
|
1646
|
-
i0.ɵɵelementEnd()()();
|
|
1647
|
-
i0.ɵɵelementStart(83, "div", 206)(84, "div", 207)(85, "div", 220);
|
|
1648
|
-
i0.ɵɵelement(86, "i", 221);
|
|
1649
|
-
i0.ɵɵelementEnd();
|
|
1650
|
-
i0.ɵɵelementStart(87, "div", 210)(88, "h4");
|
|
1651
|
-
i0.ɵɵtext(89, "Self Write Paths");
|
|
1652
|
-
i0.ɵɵelementEnd();
|
|
1653
|
-
i0.ɵɵelementStart(90, "p");
|
|
1654
|
-
i0.ɵɵtext(91, "JSON array of paths this agent can write to");
|
|
1655
|
-
i0.ɵɵelementEnd()()();
|
|
1656
|
-
i0.ɵɵelementStart(92, "div", 211)(93, "div", 212)(94, "mj-code-editor", 213);
|
|
1657
|
-
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_3_ng_template_16_Template_mj_code_editor_valueChange_94_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.updatePayloadField("PayloadSelfWritePaths", $event)); });
|
|
1658
|
-
i0.ɵɵelementEnd()();
|
|
1659
|
-
i0.ɵɵelementStart(95, "div", 214);
|
|
1660
|
-
i0.ɵɵelement(96, "i", 215);
|
|
1661
|
-
i0.ɵɵtext(97, " Paths this agent's prompts can write back to the payload ");
|
|
1662
|
-
i0.ɵɵelementEnd()()()()();
|
|
1663
|
-
i0.ɵɵelementStart(98, "div", 193)(99, "h3", 194);
|
|
1664
|
-
i0.ɵɵelement(100, "i", 222);
|
|
1665
|
-
i0.ɵɵtext(101, " Final Payload Validation ");
|
|
1666
|
-
i0.ɵɵelementEnd();
|
|
1667
|
-
i0.ɵɵelementStart(102, "div", 223)(103, "div", 224)(104, "div", 225)(105, "label", 226);
|
|
1668
|
-
i0.ɵɵtext(106, "Validation Mode");
|
|
1669
|
-
i0.ɵɵelementEnd();
|
|
1670
|
-
i0.ɵɵelementStart(107, "p", 227);
|
|
1671
|
-
i0.ɵɵtext(108, "How to handle validation failures");
|
|
1672
|
-
i0.ɵɵelementEnd();
|
|
1673
|
-
i0.ɵɵelement(109, "mj-form-field", 228);
|
|
1674
|
-
i0.ɵɵelementEnd();
|
|
1675
|
-
i0.ɵɵelementStart(110, "div", 225)(111, "label", 226);
|
|
1676
|
-
i0.ɵɵtext(112, "Max Retries");
|
|
1677
|
-
i0.ɵɵelementEnd();
|
|
1678
|
-
i0.ɵɵelementStart(113, "p", 227);
|
|
1679
|
-
i0.ɵɵtext(114, "Maximum validation retry attempts");
|
|
1680
|
-
i0.ɵɵelementEnd();
|
|
1681
|
-
i0.ɵɵelement(115, "mj-form-field", 229);
|
|
1682
|
-
i0.ɵɵelementEnd()();
|
|
1683
|
-
i0.ɵɵelementStart(116, "div", 230)(117, "label", 231);
|
|
1684
|
-
i0.ɵɵelement(118, "i", 232);
|
|
1685
|
-
i0.ɵɵtext(119, " Validation Schema ");
|
|
1686
|
-
i0.ɵɵelementEnd();
|
|
1687
|
-
i0.ɵɵelementStart(120, "p", 233);
|
|
1688
|
-
i0.ɵɵtext(121, " JSON schema or validation rules for the final payload structure ");
|
|
1689
|
-
i0.ɵɵelementEnd();
|
|
1690
|
-
i0.ɵɵelementStart(122, "div", 234)(123, "mj-code-editor", 235);
|
|
1691
|
-
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_3_ng_template_16_Template_mj_code_editor_valueChange_123_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.updatePayloadField("FinalPayloadValidation", $event)); });
|
|
1692
|
-
i0.ɵɵelementEnd()()()()()();
|
|
1693
|
-
} if (rf & 2) {
|
|
1694
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1695
|
-
i0.ɵɵadvance(15);
|
|
1696
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
1697
|
-
i0.ɵɵadvance(26);
|
|
1698
|
-
i0.ɵɵproperty("value", ctx_r2.record.PayloadDownstreamPaths || "[\"*\"]")("readonly", !ctx_r2.EditMode)("lineWrapping", true);
|
|
1699
|
-
i0.ɵɵadvance(20);
|
|
1700
|
-
i0.ɵɵproperty("value", ctx_r2.record.PayloadUpstreamPaths || "[\"*\"]")("readonly", !ctx_r2.EditMode)("lineWrapping", true);
|
|
1701
|
-
i0.ɵɵadvance(18);
|
|
1702
|
-
i0.ɵɵproperty("value", ctx_r2.record.PayloadSelfReadPaths || "[]")("readonly", !ctx_r2.EditMode)("lineWrapping", true);
|
|
1703
|
-
i0.ɵɵadvance(15);
|
|
1704
|
-
i0.ɵɵproperty("value", ctx_r2.record.PayloadSelfWritePaths || "[]")("readonly", !ctx_r2.EditMode)("lineWrapping", true);
|
|
1705
|
-
i0.ɵɵadvance(15);
|
|
1706
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
1707
|
-
i0.ɵɵadvance(6);
|
|
1708
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
1709
|
-
i0.ɵɵadvance(8);
|
|
1710
|
-
i0.ɵɵproperty("value", ctx_r2.record.FinalPayloadValidation || "{}")("readonly", !ctx_r2.EditMode)("lineWrapping", true);
|
|
1711
|
-
} }
|
|
1712
|
-
function MJAIAgentFormComponentExtended_Conditional_3_ng_template_18_Template(rf, ctx) { if (rf & 1) {
|
|
1713
|
-
i0.ɵɵelement(0, "i", 236);
|
|
1535
|
+
function MJAIAgentFormComponentExtended_Conditional_1_ng_template_140_Template(rf, ctx) { if (rf & 1) {
|
|
1536
|
+
i0.ɵɵelement(0, "i", 271);
|
|
1714
1537
|
i0.ɵɵtext(1, " Execution Guardrails ");
|
|
1715
1538
|
} }
|
|
1716
|
-
function
|
|
1717
|
-
i0.ɵɵ
|
|
1718
|
-
i0.ɵɵtext(3, " Set limits to prevent runaway agent executions and control resource usage. ");
|
|
1719
|
-
i0.ɵɵelementEnd()();
|
|
1720
|
-
i0.ɵɵelementStart(4, "div", 237);
|
|
1721
|
-
i0.ɵɵelement(5, "mj-form-field", 238)(6, "mj-form-field", 239)(7, "mj-form-field", 240)(8, "mj-form-field", 241);
|
|
1722
|
-
i0.ɵɵelementEnd()();
|
|
1723
|
-
} if (rf & 2) {
|
|
1724
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1725
|
-
i0.ɵɵadvance(5);
|
|
1726
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
1727
|
-
i0.ɵɵadvance();
|
|
1728
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
1729
|
-
i0.ɵɵadvance();
|
|
1730
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
1731
|
-
i0.ɵɵadvance();
|
|
1732
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
1733
|
-
} }
|
|
1734
|
-
function MJAIAgentFormComponentExtended_Conditional_3_ng_template_21_Template(rf, ctx) { if (rf & 1) {
|
|
1735
|
-
i0.ɵɵelement(0, "i", 242);
|
|
1539
|
+
function MJAIAgentFormComponentExtended_Conditional_1_ng_template_151_Template(rf, ctx) { if (rf & 1) {
|
|
1540
|
+
i0.ɵɵelement(0, "i", 272);
|
|
1736
1541
|
i0.ɵɵtext(1, " Configuration ");
|
|
1737
1542
|
} }
|
|
1738
|
-
function
|
|
1739
|
-
const
|
|
1740
|
-
i0.ɵɵelementStart(0, "
|
|
1741
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
1543
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_171_Template(rf, ctx) { if (rf & 1) {
|
|
1544
|
+
const _r42 = i0.ɵɵgetCurrentView();
|
|
1545
|
+
i0.ɵɵelementStart(0, "mj-dropdown", 273);
|
|
1546
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_171_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.Status, $event) || (ctx_r2.record.Status = $event); return i0.ɵɵresetView($event); });
|
|
1742
1547
|
i0.ɵɵelementEnd();
|
|
1743
1548
|
} if (rf & 2) {
|
|
1744
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1549
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1745
1550
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.Status);
|
|
1746
|
-
i0.ɵɵproperty("
|
|
1551
|
+
i0.ɵɵproperty("Data", ctx_r2.statusOptions)("ValuePrimitive", true);
|
|
1747
1552
|
} }
|
|
1748
|
-
function
|
|
1749
|
-
i0.ɵɵelementStart(0, "span",
|
|
1553
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_172_Template(rf, ctx) { if (rf & 1) {
|
|
1554
|
+
i0.ɵɵelementStart(0, "span", 82);
|
|
1750
1555
|
i0.ɵɵtext(1);
|
|
1751
1556
|
i0.ɵɵelementEnd();
|
|
1752
1557
|
} if (rf & 2) {
|
|
1753
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1558
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1754
1559
|
i0.ɵɵadvance();
|
|
1755
1560
|
i0.ɵɵtextInterpolate(ctx_r2.record.Status || "Not Set");
|
|
1756
1561
|
} }
|
|
1757
|
-
function
|
|
1758
|
-
const
|
|
1759
|
-
i0.ɵɵelementStart(0, "
|
|
1760
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
1562
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_183_Template(rf, ctx) { if (rf & 1) {
|
|
1563
|
+
const _r43 = i0.ɵɵgetCurrentView();
|
|
1564
|
+
i0.ɵɵelementStart(0, "mj-dropdown", 274);
|
|
1565
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_183_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r43); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.TypeID, $event) || (ctx_r2.record.TypeID = $event); return i0.ɵɵresetView($event); });
|
|
1761
1566
|
i0.ɵɵelementEnd();
|
|
1762
1567
|
} if (rf & 2) {
|
|
1763
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1568
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1764
1569
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.TypeID);
|
|
1765
|
-
i0.ɵɵproperty("
|
|
1570
|
+
i0.ɵɵproperty("Data", ctx_r2.agentTypes)("ValuePrimitive", true);
|
|
1766
1571
|
} }
|
|
1767
|
-
function
|
|
1768
|
-
i0.ɵɵelementStart(0, "span",
|
|
1572
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_184_Template(rf, ctx) { if (rf & 1) {
|
|
1573
|
+
i0.ɵɵelementStart(0, "span", 82);
|
|
1769
1574
|
i0.ɵɵtext(1);
|
|
1770
1575
|
i0.ɵɵelementEnd();
|
|
1771
1576
|
} if (rf & 2) {
|
|
1772
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1577
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1773
1578
|
i0.ɵɵadvance();
|
|
1774
1579
|
i0.ɵɵtextInterpolate(ctx_r2.record.Type || "Not Set");
|
|
1775
1580
|
} }
|
|
1776
|
-
function
|
|
1777
|
-
const
|
|
1778
|
-
i0.ɵɵelementStart(0, "mj-tree-dropdown",
|
|
1779
|
-
i0.ɵɵlistener("ValueChange", function
|
|
1581
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_195_Template(rf, ctx) { if (rf & 1) {
|
|
1582
|
+
const _r44 = i0.ɵɵgetCurrentView();
|
|
1583
|
+
i0.ɵɵelementStart(0, "mj-tree-dropdown", 275);
|
|
1584
|
+
i0.ɵɵlistener("ValueChange", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_195_Template_mj_tree_dropdown_ValueChange_0_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnCategoryChange($event)); });
|
|
1780
1585
|
i0.ɵɵelementEnd();
|
|
1781
1586
|
} if (rf & 2) {
|
|
1782
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1587
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1783
1588
|
i0.ɵɵproperty("BranchConfig", ctx_r2.CategoryBranchConfig)("Value", ctx_r2.SelectedCategoryKey)("Clearable", true)("EnableSearch", true);
|
|
1784
1589
|
} }
|
|
1785
|
-
function
|
|
1786
|
-
i0.ɵɵelementStart(0, "span",
|
|
1590
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_196_Template(rf, ctx) { if (rf & 1) {
|
|
1591
|
+
i0.ɵɵelementStart(0, "span", 82);
|
|
1787
1592
|
i0.ɵɵtext(1);
|
|
1788
1593
|
i0.ɵɵelementEnd();
|
|
1789
1594
|
} if (rf & 2) {
|
|
1790
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1595
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1791
1596
|
i0.ɵɵadvance();
|
|
1792
1597
|
i0.ɵɵtextInterpolate(ctx_r2.record.Category || "Not Set");
|
|
1793
1598
|
} }
|
|
1794
|
-
function
|
|
1795
|
-
i0.ɵɵelementStart(0, "span",
|
|
1599
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_32_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1600
|
+
i0.ɵɵelementStart(0, "span", 282);
|
|
1796
1601
|
i0.ɵɵtext(1);
|
|
1797
1602
|
i0.ɵɵelementEnd();
|
|
1798
1603
|
} if (rf & 2) {
|
|
1799
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1604
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
1800
1605
|
i0.ɵɵadvance();
|
|
1801
1606
|
i0.ɵɵtextInterpolate(ctx_r2.selectedContextCompressionPrompt.Name);
|
|
1802
1607
|
} }
|
|
1803
|
-
function
|
|
1804
|
-
i0.ɵɵelementStart(0, "span",
|
|
1608
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_32_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1609
|
+
i0.ɵɵelementStart(0, "span", 283);
|
|
1805
1610
|
i0.ɵɵtext(1, "No prompt selected");
|
|
1806
1611
|
i0.ɵɵelementEnd();
|
|
1807
1612
|
} }
|
|
1808
|
-
function
|
|
1809
|
-
const
|
|
1810
|
-
i0.ɵɵelementStart(0, "button",
|
|
1811
|
-
i0.ɵɵlistener("click", function
|
|
1812
|
-
i0.ɵɵelement(1, "i",
|
|
1613
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_32_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1614
|
+
const _r46 = i0.ɵɵgetCurrentView();
|
|
1615
|
+
i0.ɵɵelementStart(0, "button", 287);
|
|
1616
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_32_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.clearContextCompressionPrompt()); });
|
|
1617
|
+
i0.ɵɵelement(1, "i", 288);
|
|
1813
1618
|
i0.ɵɵelementEnd();
|
|
1814
1619
|
} }
|
|
1815
|
-
function
|
|
1816
|
-
const
|
|
1817
|
-
i0.ɵɵelementStart(0, "div",
|
|
1818
|
-
i0.ɵɵconditionalCreate(2,
|
|
1620
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
1621
|
+
const _r45 = i0.ɵɵgetCurrentView();
|
|
1622
|
+
i0.ɵɵelementStart(0, "div", 280)(1, "div", 281);
|
|
1623
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_32_Conditional_2_Template, 2, 1, "span", 282)(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_32_Conditional_3_Template, 2, 0, "span", 283);
|
|
1819
1624
|
i0.ɵɵelementEnd();
|
|
1820
|
-
i0.ɵɵelementStart(4, "div",
|
|
1821
|
-
i0.ɵɵlistener("click", function
|
|
1822
|
-
i0.ɵɵelement(6, "i",
|
|
1625
|
+
i0.ɵɵelementStart(4, "div", 284)(5, "button", 285);
|
|
1626
|
+
i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_32_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r45); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openContextCompressionPromptSelector()); });
|
|
1627
|
+
i0.ɵɵelement(6, "i", 153);
|
|
1823
1628
|
i0.ɵɵtext(7);
|
|
1824
1629
|
i0.ɵɵelementEnd();
|
|
1825
|
-
i0.ɵɵconditionalCreate(8,
|
|
1630
|
+
i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_32_Conditional_8_Template, 2, 0, "button", 286);
|
|
1826
1631
|
i0.ɵɵelementEnd()();
|
|
1827
1632
|
} if (rf & 2) {
|
|
1828
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1633
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1829
1634
|
i0.ɵɵadvance(2);
|
|
1830
1635
|
i0.ɵɵconditional(ctx_r2.selectedContextCompressionPrompt ? 2 : 3);
|
|
1831
1636
|
i0.ɵɵadvance(5);
|
|
@@ -1833,54 +1638,54 @@ function MJAIAgentFormComponentExtended_Conditional_3_ng_template_22_Conditional
|
|
|
1833
1638
|
i0.ɵɵadvance();
|
|
1834
1639
|
i0.ɵɵconditional(ctx_r2.selectedContextCompressionPrompt ? 8 : -1);
|
|
1835
1640
|
} }
|
|
1836
|
-
function
|
|
1837
|
-
i0.ɵɵelementStart(0, "span",
|
|
1641
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_33_Template(rf, ctx) { if (rf & 1) {
|
|
1642
|
+
i0.ɵɵelementStart(0, "span", 82);
|
|
1838
1643
|
i0.ɵɵtext(1);
|
|
1839
1644
|
i0.ɵɵelementEnd();
|
|
1840
1645
|
} if (rf & 2) {
|
|
1841
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1646
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
1842
1647
|
i0.ɵɵadvance();
|
|
1843
1648
|
i0.ɵɵtextInterpolate((ctx_r2.selectedContextCompressionPrompt == null ? null : ctx_r2.selectedContextCompressionPrompt.Name) || ctx_r2.record.ContextCompressionPrompt || "Not Set");
|
|
1844
1649
|
} }
|
|
1845
|
-
function
|
|
1846
|
-
i0.ɵɵelementStart(0, "div",
|
|
1847
|
-
i0.ɵɵelement(3, "i",
|
|
1650
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Template(rf, ctx) { if (rf & 1) {
|
|
1651
|
+
i0.ɵɵelementStart(0, "div", 75)(1, "div", 76)(2, "div", 77);
|
|
1652
|
+
i0.ɵɵelement(3, "i", 276);
|
|
1848
1653
|
i0.ɵɵelementEnd();
|
|
1849
|
-
i0.ɵɵelementStart(4, "div",
|
|
1654
|
+
i0.ɵɵelementStart(4, "div", 79)(5, "h4");
|
|
1850
1655
|
i0.ɵɵtext(6, "Message Threshold");
|
|
1851
1656
|
i0.ɵɵelementEnd();
|
|
1852
1657
|
i0.ɵɵelementStart(7, "p");
|
|
1853
1658
|
i0.ɵɵtext(8, "Messages before compression triggers");
|
|
1854
1659
|
i0.ɵɵelementEnd()()();
|
|
1855
|
-
i0.ɵɵelementStart(9, "div",
|
|
1856
|
-
i0.ɵɵelement(10, "mj-form-field",
|
|
1660
|
+
i0.ɵɵelementStart(9, "div", 80);
|
|
1661
|
+
i0.ɵɵelement(10, "mj-form-field", 277);
|
|
1857
1662
|
i0.ɵɵelementEnd()();
|
|
1858
|
-
i0.ɵɵelementStart(11, "div",
|
|
1859
|
-
i0.ɵɵelement(14, "i",
|
|
1663
|
+
i0.ɵɵelementStart(11, "div", 75)(12, "div", 76)(13, "div", 77);
|
|
1664
|
+
i0.ɵɵelement(14, "i", 278);
|
|
1860
1665
|
i0.ɵɵelementEnd();
|
|
1861
|
-
i0.ɵɵelementStart(15, "div",
|
|
1666
|
+
i0.ɵɵelementStart(15, "div", 79)(16, "h4");
|
|
1862
1667
|
i0.ɵɵtext(17, "Messages to Keep");
|
|
1863
1668
|
i0.ɵɵelementEnd();
|
|
1864
1669
|
i0.ɵɵelementStart(18, "p");
|
|
1865
1670
|
i0.ɵɵtext(19, "Recent messages to retain uncompressed");
|
|
1866
1671
|
i0.ɵɵelementEnd()()();
|
|
1867
|
-
i0.ɵɵelementStart(20, "div",
|
|
1868
|
-
i0.ɵɵelement(21, "mj-form-field",
|
|
1672
|
+
i0.ɵɵelementStart(20, "div", 80);
|
|
1673
|
+
i0.ɵɵelement(21, "mj-form-field", 279);
|
|
1869
1674
|
i0.ɵɵelementEnd()();
|
|
1870
|
-
i0.ɵɵelementStart(22, "div",
|
|
1871
|
-
i0.ɵɵelement(25, "i",
|
|
1675
|
+
i0.ɵɵelementStart(22, "div", 75)(23, "div", 76)(24, "div", 77);
|
|
1676
|
+
i0.ɵɵelement(25, "i", 261);
|
|
1872
1677
|
i0.ɵɵelementEnd();
|
|
1873
|
-
i0.ɵɵelementStart(26, "div",
|
|
1678
|
+
i0.ɵɵelementStart(26, "div", 79)(27, "h4");
|
|
1874
1679
|
i0.ɵɵtext(28, "Compression Prompt");
|
|
1875
1680
|
i0.ɵɵelementEnd();
|
|
1876
1681
|
i0.ɵɵelementStart(29, "p");
|
|
1877
1682
|
i0.ɵɵtext(30, "Prompt used for summarization");
|
|
1878
1683
|
i0.ɵɵelementEnd()()();
|
|
1879
|
-
i0.ɵɵelementStart(31, "div",
|
|
1880
|
-
i0.ɵɵconditionalCreate(32,
|
|
1684
|
+
i0.ɵɵelementStart(31, "div", 80);
|
|
1685
|
+
i0.ɵɵconditionalCreate(32, MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_32_Template, 9, 3, "div", 280)(33, MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Conditional_33_Template, 2, 1, "span", 82);
|
|
1881
1686
|
i0.ɵɵelementEnd()();
|
|
1882
1687
|
} if (rf & 2) {
|
|
1883
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
1688
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1884
1689
|
i0.ɵɵadvance(10);
|
|
1885
1690
|
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
1886
1691
|
i0.ɵɵadvance(11);
|
|
@@ -1888,237 +1693,342 @@ function MJAIAgentFormComponentExtended_Conditional_3_ng_template_22_Conditional
|
|
|
1888
1693
|
i0.ɵɵadvance(11);
|
|
1889
1694
|
i0.ɵɵconditional(ctx_r2.EditMode ? 32 : 33);
|
|
1890
1695
|
} }
|
|
1891
|
-
function
|
|
1892
|
-
const
|
|
1893
|
-
i0.ɵɵelementStart(0, "
|
|
1894
|
-
i0.ɵɵ
|
|
1696
|
+
function MJAIAgentFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
1697
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
1698
|
+
i0.ɵɵelementStart(0, "form", 3, 0);
|
|
1699
|
+
i0.ɵɵelement(2, "mj-form-toolbar", 5);
|
|
1700
|
+
i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_1_Conditional_3_Template, 19, 6, "div", 6);
|
|
1701
|
+
i0.ɵɵconditionalCreate(4, MJAIAgentFormComponentExtended_Conditional_1_Conditional_4_Template, 10, 3, "div", 7);
|
|
1702
|
+
i0.ɵɵelementStart(5, "div", 8);
|
|
1703
|
+
i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_1_Conditional_6_Template, 6, 4, "mj-accordion-panel", 9);
|
|
1704
|
+
i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_1_Conditional_7_Template, 6, 3, "mj-accordion-panel", 10);
|
|
1705
|
+
i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_1_Conditional_8_Template, 5, 3, "mj-accordion-panel", 11);
|
|
1706
|
+
i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_1_Conditional_9_Template, 19, 13, "mj-accordion-panel", 12);
|
|
1707
|
+
i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_1_Conditional_10_Template, 15, 5, "mj-accordion-panel", 13);
|
|
1708
|
+
i0.ɵɵconditionalCreate(11, MJAIAgentFormComponentExtended_Conditional_1_Conditional_11_Template, 8, 3, "mj-accordion-panel", 14);
|
|
1709
|
+
i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_1_Conditional_12_Template, 10, 4, "mj-accordion-panel", 15);
|
|
1710
|
+
i0.ɵɵelementStart(13, "mj-accordion-panel", 16);
|
|
1711
|
+
i0.ɵɵtemplate(14, MJAIAgentFormComponentExtended_Conditional_1_ng_template_14_Template, 2, 0, "ng-template", 17);
|
|
1712
|
+
i0.ɵɵelementStart(15, "div", 18)(16, "div", 19)(17, "div", 20);
|
|
1713
|
+
i0.ɵɵtext(18, " Configure how this agent handles data payloads, path routing, and validation between parent and child agents. ");
|
|
1895
1714
|
i0.ɵɵelementEnd()();
|
|
1896
|
-
i0.ɵɵelementStart(
|
|
1897
|
-
i0.ɵɵelement(
|
|
1898
|
-
i0.ɵɵtext(
|
|
1715
|
+
i0.ɵɵelementStart(19, "div", 21)(20, "h3", 22);
|
|
1716
|
+
i0.ɵɵelement(21, "i", 23);
|
|
1717
|
+
i0.ɵɵtext(22, " Payload Scope ");
|
|
1899
1718
|
i0.ɵɵelementEnd();
|
|
1900
|
-
i0.ɵɵelementStart(
|
|
1901
|
-
i0.ɵɵ
|
|
1719
|
+
i0.ɵɵelementStart(23, "div", 24)(24, "div", 25)(25, "label", 26);
|
|
1720
|
+
i0.ɵɵtext(26, "Payload Scope Path");
|
|
1902
1721
|
i0.ɵɵelementEnd();
|
|
1903
|
-
i0.ɵɵelementStart(
|
|
1904
|
-
i0.ɵɵtext(
|
|
1722
|
+
i0.ɵɵelementStart(27, "p", 27);
|
|
1723
|
+
i0.ɵɵtext(28, " Specify a path within the parent payload that this sub-agent should operate on. Leave empty to receive the entire payload. ");
|
|
1724
|
+
i0.ɵɵelementEnd()();
|
|
1725
|
+
i0.ɵɵelementStart(29, "div", 28);
|
|
1726
|
+
i0.ɵɵelement(30, "mj-form-field", 29);
|
|
1727
|
+
i0.ɵɵelementStart(31, "div", 30);
|
|
1728
|
+
i0.ɵɵelement(32, "i", 31);
|
|
1729
|
+
i0.ɵɵelementStart(33, "span");
|
|
1730
|
+
i0.ɵɵtext(34, "Example: ");
|
|
1731
|
+
i0.ɵɵelementStart(35, "code");
|
|
1732
|
+
i0.ɵɵtext(36, "/customer/profile");
|
|
1733
|
+
i0.ɵɵelementEnd();
|
|
1734
|
+
i0.ɵɵtext(37, " or ");
|
|
1735
|
+
i0.ɵɵelementStart(38, "code");
|
|
1736
|
+
i0.ɵɵtext(39, "/analysis/results");
|
|
1737
|
+
i0.ɵɵelementEnd()()()()()();
|
|
1738
|
+
i0.ɵɵelementStart(40, "div", 21)(41, "h3", 22);
|
|
1739
|
+
i0.ɵɵelement(42, "i", 32);
|
|
1740
|
+
i0.ɵɵtext(43, " Path Configuration ");
|
|
1905
1741
|
i0.ɵɵelementEnd();
|
|
1906
|
-
i0.ɵɵelementStart(
|
|
1907
|
-
i0.ɵɵ
|
|
1742
|
+
i0.ɵɵelementStart(44, "div", 33)(45, "div", 34)(46, "div", 35)(47, "div", 36);
|
|
1743
|
+
i0.ɵɵelement(48, "i", 37);
|
|
1744
|
+
i0.ɵɵelementEnd();
|
|
1745
|
+
i0.ɵɵelementStart(49, "div", 38)(50, "h4");
|
|
1746
|
+
i0.ɵɵtext(51, "Downstream Paths");
|
|
1747
|
+
i0.ɵɵelementEnd();
|
|
1748
|
+
i0.ɵɵelementStart(52, "p");
|
|
1749
|
+
i0.ɵɵtext(53, "JSON array of paths to pass to sub-agents");
|
|
1908
1750
|
i0.ɵɵelementEnd()()();
|
|
1909
|
-
i0.ɵɵelementStart(
|
|
1910
|
-
i0.ɵɵ
|
|
1751
|
+
i0.ɵɵelementStart(54, "div", 39)(55, "div", 40)(56, "mj-code-editor", 41);
|
|
1752
|
+
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_1_Template_mj_code_editor_valueChange_56_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.updatePayloadField("PayloadDownstreamPaths", $event)); });
|
|
1911
1753
|
i0.ɵɵelementEnd()();
|
|
1912
|
-
i0.ɵɵelementStart(
|
|
1913
|
-
i0.ɵɵelement(
|
|
1754
|
+
i0.ɵɵelementStart(57, "div", 42);
|
|
1755
|
+
i0.ɵɵelement(58, "i", 43);
|
|
1756
|
+
i0.ɵɵtext(59, " Use ");
|
|
1757
|
+
i0.ɵɵelementStart(60, "code");
|
|
1758
|
+
i0.ɵɵtext(61, "[\"*\"]");
|
|
1759
|
+
i0.ɵɵelementEnd();
|
|
1760
|
+
i0.ɵɵtext(62, " to pass entire payload or specify paths like ");
|
|
1761
|
+
i0.ɵɵelementStart(63, "code");
|
|
1762
|
+
i0.ɵɵtext(64, "[\"user.id\", \"order.*\"]");
|
|
1763
|
+
i0.ɵɵelementEnd()()()();
|
|
1764
|
+
i0.ɵɵelementStart(65, "div", 34)(66, "div", 35)(67, "div", 44);
|
|
1765
|
+
i0.ɵɵelement(68, "i", 45);
|
|
1914
1766
|
i0.ɵɵelementEnd();
|
|
1915
|
-
i0.ɵɵelementStart(
|
|
1916
|
-
i0.ɵɵtext(
|
|
1767
|
+
i0.ɵɵelementStart(69, "div", 38)(70, "h4");
|
|
1768
|
+
i0.ɵɵtext(71, "Upstream Paths");
|
|
1917
1769
|
i0.ɵɵelementEnd();
|
|
1918
|
-
i0.ɵɵelementStart(
|
|
1919
|
-
i0.ɵɵtext(
|
|
1770
|
+
i0.ɵɵelementStart(72, "p");
|
|
1771
|
+
i0.ɵɵtext(73, "JSON array of paths sub-agents can write back");
|
|
1920
1772
|
i0.ɵɵelementEnd()()();
|
|
1921
|
-
i0.ɵɵelementStart(
|
|
1922
|
-
i0.ɵɵ
|
|
1773
|
+
i0.ɵɵelementStart(74, "div", 39)(75, "div", 40)(76, "mj-code-editor", 41);
|
|
1774
|
+
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_1_Template_mj_code_editor_valueChange_76_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.updatePayloadField("PayloadUpstreamPaths", $event)); });
|
|
1923
1775
|
i0.ɵɵelementEnd()();
|
|
1924
|
-
i0.ɵɵelementStart(
|
|
1925
|
-
i0.ɵɵelement(
|
|
1776
|
+
i0.ɵɵelementStart(77, "div", 42);
|
|
1777
|
+
i0.ɵɵelement(78, "i", 43);
|
|
1778
|
+
i0.ɵɵtext(79, " Use ");
|
|
1779
|
+
i0.ɵɵelementStart(80, "code");
|
|
1780
|
+
i0.ɵɵtext(81, "[\"*\"]");
|
|
1781
|
+
i0.ɵɵelementEnd();
|
|
1782
|
+
i0.ɵɵtext(82, " to allow all writes or limit to specific paths ");
|
|
1783
|
+
i0.ɵɵelementEnd()()();
|
|
1784
|
+
i0.ɵɵelementStart(83, "div", 34)(84, "div", 35)(85, "div", 46);
|
|
1785
|
+
i0.ɵɵelement(86, "i", 47);
|
|
1926
1786
|
i0.ɵɵelementEnd();
|
|
1927
|
-
i0.ɵɵelementStart(
|
|
1928
|
-
i0.ɵɵtext(
|
|
1787
|
+
i0.ɵɵelementStart(87, "div", 38)(88, "h4");
|
|
1788
|
+
i0.ɵɵtext(89, "Self Read Paths");
|
|
1929
1789
|
i0.ɵɵelementEnd();
|
|
1930
|
-
i0.ɵɵelementStart(
|
|
1931
|
-
i0.ɵɵtext(
|
|
1790
|
+
i0.ɵɵelementStart(90, "p");
|
|
1791
|
+
i0.ɵɵtext(91, "JSON array of paths this agent can read");
|
|
1932
1792
|
i0.ɵɵelementEnd()()();
|
|
1933
|
-
i0.ɵɵelementStart(
|
|
1934
|
-
i0.ɵɵ
|
|
1793
|
+
i0.ɵɵelementStart(92, "div", 39)(93, "div", 40)(94, "mj-code-editor", 41);
|
|
1794
|
+
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_1_Template_mj_code_editor_valueChange_94_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.updatePayloadField("PayloadSelfReadPaths", $event)); });
|
|
1935
1795
|
i0.ɵɵelementEnd()();
|
|
1936
|
-
i0.ɵɵelementStart(
|
|
1937
|
-
i0.ɵɵelement(
|
|
1796
|
+
i0.ɵɵelementStart(95, "div", 42);
|
|
1797
|
+
i0.ɵɵelement(96, "i", 43);
|
|
1798
|
+
i0.ɵɵtext(97, " Paths this agent's prompts can read from the payload ");
|
|
1799
|
+
i0.ɵɵelementEnd()()();
|
|
1800
|
+
i0.ɵɵelementStart(98, "div", 34)(99, "div", 35)(100, "div", 48);
|
|
1801
|
+
i0.ɵɵelement(101, "i", 49);
|
|
1938
1802
|
i0.ɵɵelementEnd();
|
|
1939
|
-
i0.ɵɵelementStart(
|
|
1940
|
-
i0.ɵɵtext(
|
|
1803
|
+
i0.ɵɵelementStart(102, "div", 38)(103, "h4");
|
|
1804
|
+
i0.ɵɵtext(104, "Self Write Paths");
|
|
1941
1805
|
i0.ɵɵelementEnd();
|
|
1942
|
-
i0.ɵɵelementStart(
|
|
1943
|
-
i0.ɵɵtext(
|
|
1806
|
+
i0.ɵɵelementStart(105, "p");
|
|
1807
|
+
i0.ɵɵtext(106, "JSON array of paths this agent can write to");
|
|
1944
1808
|
i0.ɵɵelementEnd()()();
|
|
1945
|
-
i0.ɵɵelementStart(
|
|
1946
|
-
i0.ɵɵ
|
|
1809
|
+
i0.ɵɵelementStart(107, "div", 39)(108, "div", 40)(109, "mj-code-editor", 41);
|
|
1810
|
+
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_1_Template_mj_code_editor_valueChange_109_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.updatePayloadField("PayloadSelfWritePaths", $event)); });
|
|
1947
1811
|
i0.ɵɵelementEnd()();
|
|
1948
|
-
i0.ɵɵelementStart(
|
|
1949
|
-
i0.ɵɵelement(
|
|
1812
|
+
i0.ɵɵelementStart(110, "div", 42);
|
|
1813
|
+
i0.ɵɵelement(111, "i", 43);
|
|
1814
|
+
i0.ɵɵtext(112, " Paths this agent's prompts can write back to the payload ");
|
|
1815
|
+
i0.ɵɵelementEnd()()()()();
|
|
1816
|
+
i0.ɵɵelementStart(113, "div", 21)(114, "h3", 22);
|
|
1817
|
+
i0.ɵɵelement(115, "i", 50);
|
|
1818
|
+
i0.ɵɵtext(116, " Final Payload Validation ");
|
|
1819
|
+
i0.ɵɵelementEnd();
|
|
1820
|
+
i0.ɵɵelementStart(117, "div", 51)(118, "div", 52)(119, "div", 53)(120, "label", 54);
|
|
1821
|
+
i0.ɵɵtext(121, "Validation Mode");
|
|
1822
|
+
i0.ɵɵelementEnd();
|
|
1823
|
+
i0.ɵɵelementStart(122, "p", 55);
|
|
1824
|
+
i0.ɵɵtext(123, "How to handle validation failures");
|
|
1950
1825
|
i0.ɵɵelementEnd();
|
|
1951
|
-
i0.ɵɵ
|
|
1952
|
-
i0.ɵɵtext(62, "Description");
|
|
1826
|
+
i0.ɵɵelement(124, "mj-form-field", 56);
|
|
1953
1827
|
i0.ɵɵelementEnd();
|
|
1954
|
-
i0.ɵɵelementStart(
|
|
1955
|
-
i0.ɵɵtext(
|
|
1828
|
+
i0.ɵɵelementStart(125, "div", 53)(126, "label", 54);
|
|
1829
|
+
i0.ɵɵtext(127, "Max Retries");
|
|
1830
|
+
i0.ɵɵelementEnd();
|
|
1831
|
+
i0.ɵɵelementStart(128, "p", 55);
|
|
1832
|
+
i0.ɵɵtext(129, "Maximum validation retry attempts");
|
|
1833
|
+
i0.ɵɵelementEnd();
|
|
1834
|
+
i0.ɵɵelement(130, "mj-form-field", 57);
|
|
1835
|
+
i0.ɵɵelementEnd()();
|
|
1836
|
+
i0.ɵɵelementStart(131, "div", 58)(132, "label", 59);
|
|
1837
|
+
i0.ɵɵelement(133, "i", 60);
|
|
1838
|
+
i0.ɵɵtext(134, " Validation Schema ");
|
|
1839
|
+
i0.ɵɵelementEnd();
|
|
1840
|
+
i0.ɵɵelementStart(135, "p", 61);
|
|
1841
|
+
i0.ɵɵtext(136, " JSON schema or validation rules for the final payload structure ");
|
|
1842
|
+
i0.ɵɵelementEnd();
|
|
1843
|
+
i0.ɵɵelementStart(137, "div", 62)(138, "mj-code-editor", 63);
|
|
1844
|
+
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_1_Template_mj_code_editor_valueChange_138_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.updatePayloadField("FinalPayloadValidation", $event)); });
|
|
1845
|
+
i0.ɵɵelementEnd()()()()()()();
|
|
1846
|
+
i0.ɵɵelementStart(139, "mj-accordion-panel", 64);
|
|
1847
|
+
i0.ɵɵtemplate(140, MJAIAgentFormComponentExtended_Conditional_1_ng_template_140_Template, 2, 0, "ng-template", 17);
|
|
1848
|
+
i0.ɵɵelementStart(141, "div", 18)(142, "div", 19)(143, "div", 20);
|
|
1849
|
+
i0.ɵɵtext(144, " Set limits to prevent runaway agent executions and control resource usage. ");
|
|
1850
|
+
i0.ɵɵelementEnd()();
|
|
1851
|
+
i0.ɵɵelementStart(145, "div", 65);
|
|
1852
|
+
i0.ɵɵelement(146, "mj-form-field", 66)(147, "mj-form-field", 67)(148, "mj-form-field", 68)(149, "mj-form-field", 69);
|
|
1956
1853
|
i0.ɵɵelementEnd()()();
|
|
1957
|
-
i0.ɵɵelementStart(
|
|
1958
|
-
i0.ɵɵ
|
|
1854
|
+
i0.ɵɵelementStart(150, "mj-accordion-panel", 70);
|
|
1855
|
+
i0.ɵɵtemplate(151, MJAIAgentFormComponentExtended_Conditional_1_ng_template_151_Template, 2, 0, "ng-template", 17);
|
|
1856
|
+
i0.ɵɵelementStart(152, "div", 18)(153, "div", 19)(154, "div", 20);
|
|
1857
|
+
i0.ɵɵtext(155, " Configure agent behavior, execution settings, and advanced features. ");
|
|
1858
|
+
i0.ɵɵelementEnd()();
|
|
1859
|
+
i0.ɵɵelementStart(156, "div", 71)(157, "h3", 72);
|
|
1860
|
+
i0.ɵɵelement(158, "i", 73);
|
|
1861
|
+
i0.ɵɵtext(159, " Identity & Behavior ");
|
|
1862
|
+
i0.ɵɵelementEnd();
|
|
1863
|
+
i0.ɵɵelementStart(160, "div", 74)(161, "div", 75)(162, "div", 76)(163, "div", 77);
|
|
1864
|
+
i0.ɵɵelement(164, "i", 78);
|
|
1865
|
+
i0.ɵɵelementEnd();
|
|
1866
|
+
i0.ɵɵelementStart(165, "div", 79)(166, "h4");
|
|
1867
|
+
i0.ɵɵtext(167, "Agent Status");
|
|
1868
|
+
i0.ɵɵelementEnd();
|
|
1869
|
+
i0.ɵɵelementStart(168, "p");
|
|
1870
|
+
i0.ɵɵtext(169, "Current availability and operational status");
|
|
1871
|
+
i0.ɵɵelementEnd()()();
|
|
1872
|
+
i0.ɵɵelementStart(170, "div", 80);
|
|
1873
|
+
i0.ɵɵconditionalCreate(171, MJAIAgentFormComponentExtended_Conditional_1_Conditional_171_Template, 1, 3, "mj-dropdown", 81)(172, MJAIAgentFormComponentExtended_Conditional_1_Conditional_172_Template, 2, 1, "span", 82);
|
|
1874
|
+
i0.ɵɵelementEnd()();
|
|
1875
|
+
i0.ɵɵelementStart(173, "div", 75)(174, "div", 76)(175, "div", 77);
|
|
1876
|
+
i0.ɵɵelement(176, "i", 83);
|
|
1877
|
+
i0.ɵɵelementEnd();
|
|
1878
|
+
i0.ɵɵelementStart(177, "div", 79)(178, "h4");
|
|
1879
|
+
i0.ɵɵtext(179, "Agent Type");
|
|
1880
|
+
i0.ɵɵelementEnd();
|
|
1881
|
+
i0.ɵɵelementStart(180, "p");
|
|
1882
|
+
i0.ɵɵtext(181, "Category and system-level behavior");
|
|
1883
|
+
i0.ɵɵelementEnd()()();
|
|
1884
|
+
i0.ɵɵelementStart(182, "div", 80);
|
|
1885
|
+
i0.ɵɵconditionalCreate(183, MJAIAgentFormComponentExtended_Conditional_1_Conditional_183_Template, 1, 3, "mj-dropdown", 84)(184, MJAIAgentFormComponentExtended_Conditional_1_Conditional_184_Template, 2, 1, "span", 82);
|
|
1886
|
+
i0.ɵɵelementEnd()();
|
|
1887
|
+
i0.ɵɵelementStart(185, "div", 75)(186, "div", 76)(187, "div", 77);
|
|
1888
|
+
i0.ɵɵelement(188, "i", 85);
|
|
1889
|
+
i0.ɵɵelementEnd();
|
|
1890
|
+
i0.ɵɵelementStart(189, "div", 79)(190, "h4");
|
|
1891
|
+
i0.ɵɵtext(191, "Category");
|
|
1892
|
+
i0.ɵɵelementEnd();
|
|
1893
|
+
i0.ɵɵelementStart(192, "p");
|
|
1894
|
+
i0.ɵɵtext(193, "Organizational category for this agent");
|
|
1895
|
+
i0.ɵɵelementEnd()()();
|
|
1896
|
+
i0.ɵɵelementStart(194, "div", 80);
|
|
1897
|
+
i0.ɵɵconditionalCreate(195, MJAIAgentFormComponentExtended_Conditional_1_Conditional_195_Template, 1, 4, "mj-tree-dropdown", 86)(196, MJAIAgentFormComponentExtended_Conditional_1_Conditional_196_Template, 2, 1, "span", 82);
|
|
1898
|
+
i0.ɵɵelementEnd()();
|
|
1899
|
+
i0.ɵɵelementStart(197, "div", 75)(198, "div", 76)(199, "div", 77);
|
|
1900
|
+
i0.ɵɵelement(200, "i", 87);
|
|
1901
|
+
i0.ɵɵelementEnd();
|
|
1902
|
+
i0.ɵɵelementStart(201, "div", 79)(202, "h4");
|
|
1903
|
+
i0.ɵɵtext(203, "Expose as Action");
|
|
1904
|
+
i0.ɵɵelementEnd();
|
|
1905
|
+
i0.ɵɵelementStart(204, "p");
|
|
1906
|
+
i0.ɵɵtext(205, "Make available as an action for other agents");
|
|
1907
|
+
i0.ɵɵelementEnd()()();
|
|
1908
|
+
i0.ɵɵelementStart(206, "div", 80);
|
|
1909
|
+
i0.ɵɵelement(207, "mj-form-field", 88);
|
|
1910
|
+
i0.ɵɵelementEnd()();
|
|
1911
|
+
i0.ɵɵelementStart(208, "div", 89)(209, "div", 76)(210, "div", 77);
|
|
1912
|
+
i0.ɵɵelement(211, "i", 90);
|
|
1913
|
+
i0.ɵɵelementEnd();
|
|
1914
|
+
i0.ɵɵelementStart(212, "div", 79)(213, "h4");
|
|
1915
|
+
i0.ɵɵtext(214, "Description");
|
|
1916
|
+
i0.ɵɵelementEnd();
|
|
1917
|
+
i0.ɵɵelementStart(215, "p");
|
|
1918
|
+
i0.ɵɵtext(216, "Detailed agent description and purpose");
|
|
1919
|
+
i0.ɵɵelementEnd()()();
|
|
1920
|
+
i0.ɵɵelementStart(217, "div", 80);
|
|
1921
|
+
i0.ɵɵelement(218, "mj-form-field", 91);
|
|
1959
1922
|
i0.ɵɵelementEnd()()()();
|
|
1960
|
-
i0.ɵɵelementStart(
|
|
1961
|
-
i0.ɵɵelement(
|
|
1962
|
-
i0.ɵɵtext(
|
|
1923
|
+
i0.ɵɵelementStart(219, "div", 71)(220, "h3", 72);
|
|
1924
|
+
i0.ɵɵelement(221, "i", 92);
|
|
1925
|
+
i0.ɵɵtext(222, " Execution Settings ");
|
|
1963
1926
|
i0.ɵɵelementEnd();
|
|
1964
|
-
i0.ɵɵelementStart(
|
|
1965
|
-
i0.ɵɵelement(
|
|
1927
|
+
i0.ɵɵelementStart(223, "div", 74)(224, "div", 75)(225, "div", 76)(226, "div", 77);
|
|
1928
|
+
i0.ɵɵelement(227, "i", 93);
|
|
1966
1929
|
i0.ɵɵelementEnd();
|
|
1967
|
-
i0.ɵɵelementStart(
|
|
1968
|
-
i0.ɵɵtext(
|
|
1930
|
+
i0.ɵɵelementStart(228, "div", 79)(229, "h4");
|
|
1931
|
+
i0.ɵɵtext(230, "Execution Mode");
|
|
1969
1932
|
i0.ɵɵelementEnd();
|
|
1970
|
-
i0.ɵɵelementStart(
|
|
1971
|
-
i0.ɵɵtext(
|
|
1933
|
+
i0.ɵɵelementStart(231, "p");
|
|
1934
|
+
i0.ɵɵtext(232, "How sub-agents are executed");
|
|
1972
1935
|
i0.ɵɵelementEnd()()();
|
|
1973
|
-
i0.ɵɵelementStart(
|
|
1974
|
-
i0.ɵɵelement(
|
|
1936
|
+
i0.ɵɵelementStart(233, "div", 80);
|
|
1937
|
+
i0.ɵɵelement(234, "mj-form-field", 94);
|
|
1975
1938
|
i0.ɵɵelementEnd()();
|
|
1976
|
-
i0.ɵɵelementStart(
|
|
1977
|
-
i0.ɵɵelement(
|
|
1939
|
+
i0.ɵɵelementStart(235, "div", 75)(236, "div", 76)(237, "div", 77);
|
|
1940
|
+
i0.ɵɵelement(238, "i", 95);
|
|
1978
1941
|
i0.ɵɵelementEnd();
|
|
1979
|
-
i0.ɵɵelementStart(
|
|
1980
|
-
i0.ɵɵtext(
|
|
1942
|
+
i0.ɵɵelementStart(239, "div", 79)(240, "h4");
|
|
1943
|
+
i0.ɵɵtext(241, "Execution Order");
|
|
1981
1944
|
i0.ɵɵelementEnd();
|
|
1982
|
-
i0.ɵɵelementStart(
|
|
1983
|
-
i0.ɵɵtext(
|
|
1945
|
+
i0.ɵɵelementStart(242, "p");
|
|
1946
|
+
i0.ɵɵtext(243, "Order when run with siblings");
|
|
1984
1947
|
i0.ɵɵelementEnd()()();
|
|
1985
|
-
i0.ɵɵelementStart(
|
|
1986
|
-
i0.ɵɵelement(
|
|
1948
|
+
i0.ɵɵelementStart(244, "div", 80);
|
|
1949
|
+
i0.ɵɵelement(245, "mj-form-field", 96);
|
|
1987
1950
|
i0.ɵɵelementEnd()();
|
|
1988
|
-
i0.ɵɵelementStart(
|
|
1989
|
-
i0.ɵɵelement(
|
|
1951
|
+
i0.ɵɵelementStart(246, "div", 75)(247, "div", 76)(248, "div", 77);
|
|
1952
|
+
i0.ɵɵelement(249, "i", 97);
|
|
1990
1953
|
i0.ɵɵelementEnd();
|
|
1991
|
-
i0.ɵɵelementStart(
|
|
1992
|
-
i0.ɵɵtext(
|
|
1954
|
+
i0.ɵɵelementStart(250, "div", 79)(251, "h4");
|
|
1955
|
+
i0.ɵɵtext(252, "Default Effort Level");
|
|
1993
1956
|
i0.ɵɵelementEnd();
|
|
1994
|
-
i0.ɵɵelementStart(
|
|
1995
|
-
i0.ɵɵtext(
|
|
1957
|
+
i0.ɵɵelementStart(253, "p");
|
|
1958
|
+
i0.ɵɵtext(254, "Default effort level for all prompts (1-100)");
|
|
1996
1959
|
i0.ɵɵelementEnd()()();
|
|
1997
|
-
i0.ɵɵelementStart(
|
|
1998
|
-
i0.ɵɵelement(
|
|
1999
|
-
i0.ɵɵelementStart(
|
|
2000
|
-
i0.ɵɵelement(
|
|
2001
|
-
i0.ɵɵtext(
|
|
1960
|
+
i0.ɵɵelementStart(255, "div", 80);
|
|
1961
|
+
i0.ɵɵelement(256, "mj-form-field", 98);
|
|
1962
|
+
i0.ɵɵelementStart(257, "div", 99);
|
|
1963
|
+
i0.ɵɵelement(258, "i", 43);
|
|
1964
|
+
i0.ɵɵtext(259, " Higher values request more thorough reasoning (1=minimal, 100=maximum) ");
|
|
2002
1965
|
i0.ɵɵelementEnd()()();
|
|
2003
|
-
i0.ɵɵelementStart(
|
|
2004
|
-
i0.ɵɵelement(
|
|
1966
|
+
i0.ɵɵelementStart(260, "div", 75)(261, "div", 76)(262, "div", 77);
|
|
1967
|
+
i0.ɵɵelement(263, "i", 60);
|
|
2005
1968
|
i0.ɵɵelementEnd();
|
|
2006
|
-
i0.ɵɵelementStart(
|
|
2007
|
-
i0.ɵɵtext(
|
|
1969
|
+
i0.ɵɵelementStart(264, "div", 79)(265, "h4");
|
|
1970
|
+
i0.ɵɵtext(266, "Driver Class");
|
|
2008
1971
|
i0.ɵɵelementEnd();
|
|
2009
|
-
i0.ɵɵelementStart(
|
|
2010
|
-
i0.ɵɵtext(
|
|
1972
|
+
i0.ɵɵelementStart(267, "p");
|
|
1973
|
+
i0.ɵɵtext(268, "Custom implementation class");
|
|
2011
1974
|
i0.ɵɵelementEnd()()();
|
|
2012
|
-
i0.ɵɵelementStart(
|
|
2013
|
-
i0.ɵɵelement(
|
|
1975
|
+
i0.ɵɵelementStart(269, "div", 80);
|
|
1976
|
+
i0.ɵɵelement(270, "mj-form-field", 100);
|
|
2014
1977
|
i0.ɵɵelementEnd()()()();
|
|
2015
|
-
i0.ɵɵelementStart(
|
|
2016
|
-
i0.ɵɵelement(
|
|
2017
|
-
i0.ɵɵtext(
|
|
1978
|
+
i0.ɵɵelementStart(271, "div", 71)(272, "h3", 72);
|
|
1979
|
+
i0.ɵɵelement(273, "i", 101);
|
|
1980
|
+
i0.ɵɵtext(274, " Visual Identity ");
|
|
2018
1981
|
i0.ɵɵelementEnd();
|
|
2019
|
-
i0.ɵɵelementStart(
|
|
2020
|
-
i0.ɵɵelement(
|
|
1982
|
+
i0.ɵɵelementStart(275, "div", 74)(276, "div", 75)(277, "div", 76)(278, "div", 77);
|
|
1983
|
+
i0.ɵɵelement(279, "i", 102);
|
|
2021
1984
|
i0.ɵɵelementEnd();
|
|
2022
|
-
i0.ɵɵelementStart(
|
|
2023
|
-
i0.ɵɵtext(
|
|
1985
|
+
i0.ɵɵelementStart(280, "div", 79)(281, "h4");
|
|
1986
|
+
i0.ɵɵtext(282, "Icon Class");
|
|
2024
1987
|
i0.ɵɵelementEnd();
|
|
2025
|
-
i0.ɵɵelementStart(
|
|
2026
|
-
i0.ɵɵtext(
|
|
1988
|
+
i0.ɵɵelementStart(283, "p");
|
|
1989
|
+
i0.ɵɵtext(284, "Font Awesome icon class");
|
|
2027
1990
|
i0.ɵɵelementEnd()()();
|
|
2028
|
-
i0.ɵɵelementStart(
|
|
2029
|
-
i0.ɵɵelement(
|
|
2030
|
-
i0.ɵɵelementStart(
|
|
2031
|
-
i0.ɵɵelement(
|
|
2032
|
-
i0.ɵɵtext(
|
|
2033
|
-
i0.ɵɵelementStart(
|
|
2034
|
-
i0.ɵɵtext(
|
|
1991
|
+
i0.ɵɵelementStart(285, "div", 80);
|
|
1992
|
+
i0.ɵɵelement(286, "mj-form-field", 103);
|
|
1993
|
+
i0.ɵɵelementStart(287, "div", 99);
|
|
1994
|
+
i0.ɵɵelement(288, "i", 43);
|
|
1995
|
+
i0.ɵɵtext(289, " Example: ");
|
|
1996
|
+
i0.ɵɵelementStart(290, "code");
|
|
1997
|
+
i0.ɵɵtext(291, "fa-solid fa-robot");
|
|
2035
1998
|
i0.ɵɵelementEnd()()()();
|
|
2036
|
-
i0.ɵɵelementStart(
|
|
2037
|
-
i0.ɵɵelement(
|
|
1999
|
+
i0.ɵɵelementStart(292, "div", 75)(293, "div", 76)(294, "div", 77);
|
|
2000
|
+
i0.ɵɵelement(295, "i", 104);
|
|
2038
2001
|
i0.ɵɵelementEnd();
|
|
2039
|
-
i0.ɵɵelementStart(
|
|
2040
|
-
i0.ɵɵtext(
|
|
2002
|
+
i0.ɵɵelementStart(296, "div", 79)(297, "h4");
|
|
2003
|
+
i0.ɵɵtext(298, "Logo URL");
|
|
2041
2004
|
i0.ɵɵelementEnd();
|
|
2042
|
-
i0.ɵɵelementStart(
|
|
2043
|
-
i0.ɵɵtext(
|
|
2005
|
+
i0.ɵɵelementStart(299, "p");
|
|
2006
|
+
i0.ɵɵtext(300, "URL for agent logo image");
|
|
2044
2007
|
i0.ɵɵelementEnd()()();
|
|
2045
|
-
i0.ɵɵelementStart(
|
|
2046
|
-
i0.ɵɵelement(
|
|
2047
|
-
i0.ɵɵelementStart(
|
|
2048
|
-
i0.ɵɵelement(
|
|
2049
|
-
i0.ɵɵtext(
|
|
2008
|
+
i0.ɵɵelementStart(301, "div", 80);
|
|
2009
|
+
i0.ɵɵelement(302, "mj-form-field", 105);
|
|
2010
|
+
i0.ɵɵelementStart(303, "div", 99);
|
|
2011
|
+
i0.ɵɵelement(304, "i", 43);
|
|
2012
|
+
i0.ɵɵtext(305, " Takes precedence over Icon Class ");
|
|
2050
2013
|
i0.ɵɵelementEnd()()()()();
|
|
2051
|
-
i0.ɵɵelementStart(
|
|
2052
|
-
i0.ɵɵelement(
|
|
2053
|
-
i0.ɵɵtext(
|
|
2014
|
+
i0.ɵɵelementStart(306, "div", 71)(307, "h3", 72);
|
|
2015
|
+
i0.ɵɵelement(308, "i", 106);
|
|
2016
|
+
i0.ɵɵtext(309, " Context Compression ");
|
|
2054
2017
|
i0.ɵɵelementEnd();
|
|
2055
|
-
i0.ɵɵelementStart(
|
|
2056
|
-
i0.ɵɵelement(
|
|
2018
|
+
i0.ɵɵelementStart(310, "div", 74)(311, "div", 89)(312, "div", 76)(313, "div", 77);
|
|
2019
|
+
i0.ɵɵelement(314, "i", 78);
|
|
2057
2020
|
i0.ɵɵelementEnd();
|
|
2058
|
-
i0.ɵɵelementStart(
|
|
2059
|
-
i0.ɵɵtext(
|
|
2021
|
+
i0.ɵɵelementStart(315, "div", 79)(316, "h4");
|
|
2022
|
+
i0.ɵɵtext(317, "Enable Context Compression");
|
|
2060
2023
|
i0.ɵɵelementEnd();
|
|
2061
|
-
i0.ɵɵelementStart(
|
|
2062
|
-
i0.ɵɵtext(
|
|
2063
|
-
i0.ɵɵelementEnd()()();
|
|
2064
|
-
i0.ɵɵelementStart(168, "div", 252)(169, "mj-form-field", 275);
|
|
2065
|
-
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_3_ng_template_22_Template_mj_form_field_valueChange_169_listener($event) { i0.ɵɵrestoreView(_r43); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onContextCompressionToggle($event)); });
|
|
2024
|
+
i0.ɵɵelementStart(318, "p");
|
|
2025
|
+
i0.ɵɵtext(319, "Automatically compress conversation context when message threshold is reached");
|
|
2066
2026
|
i0.ɵɵelementEnd()()();
|
|
2067
|
-
i0.ɵɵ
|
|
2027
|
+
i0.ɵɵelementStart(320, "div", 80)(321, "mj-form-field", 107);
|
|
2028
|
+
i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_1_Template_mj_form_field_valueChange_321_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onContextCompressionToggle($event)); });
|
|
2068
2029
|
i0.ɵɵelementEnd()()();
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
i0.ɵɵadvance(19);
|
|
2072
|
-
i0.ɵɵconditional(ctx_r2.EditMode ? 19 : 20);
|
|
2073
|
-
i0.ɵɵadvance(12);
|
|
2074
|
-
i0.ɵɵconditional(ctx_r2.EditMode ? 31 : 32);
|
|
2075
|
-
i0.ɵɵadvance(12);
|
|
2076
|
-
i0.ɵɵconditional(ctx_r2.EditMode ? 43 : 44);
|
|
2077
|
-
i0.ɵɵadvance(12);
|
|
2078
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2079
|
-
i0.ɵɵadvance(11);
|
|
2080
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2081
|
-
i0.ɵɵadvance(16);
|
|
2082
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2083
|
-
i0.ɵɵadvance(11);
|
|
2084
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2085
|
-
i0.ɵɵadvance(11);
|
|
2086
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2087
|
-
i0.ɵɵadvance(14);
|
|
2088
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2089
|
-
i0.ɵɵadvance(16);
|
|
2090
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2091
|
-
i0.ɵɵadvance(16);
|
|
2092
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2093
|
-
i0.ɵɵadvance(19);
|
|
2094
|
-
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2095
|
-
i0.ɵɵadvance();
|
|
2096
|
-
i0.ɵɵconditional(ctx_r2.record.EnableContextCompression ? 170 : -1);
|
|
2097
|
-
} }
|
|
2098
|
-
function MJAIAgentFormComponentExtended_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
2099
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
2100
|
-
i0.ɵɵelementStart(0, "form", 5, 0);
|
|
2101
|
-
i0.ɵɵelement(2, "mj-form-toolbar", 7);
|
|
2102
|
-
i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_3_Conditional_3_Template, 19, 6, "div", 8);
|
|
2103
|
-
i0.ɵɵconditionalCreate(4, MJAIAgentFormComponentExtended_Conditional_3_Conditional_4_Template, 10, 3, "div", 9);
|
|
2104
|
-
i0.ɵɵelementStart(5, "div", 10)(6, "kendo-panelbar", 11);
|
|
2105
|
-
i0.ɵɵlistener("stateChange", function MJAIAgentFormComponentExtended_Conditional_3_Template_kendo_panelbar_stateChange_6_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnPanelBarStateChange($event)); });
|
|
2106
|
-
i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_3_Conditional_7_Template, 3, 1, "kendo-panelbar-item", 12);
|
|
2107
|
-
i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_3_Conditional_8_Template, 3, 2, "kendo-panelbar-item", 13);
|
|
2108
|
-
i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_3_Conditional_9_Template, 3, 2, "kendo-panelbar-item", 14);
|
|
2109
|
-
i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_3_Conditional_10_Template, 3, 2, "kendo-panelbar-item", 15);
|
|
2110
|
-
i0.ɵɵconditionalCreate(11, MJAIAgentFormComponentExtended_Conditional_3_Conditional_11_Template, 3, 2, "kendo-panelbar-item", 16);
|
|
2111
|
-
i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_3_Conditional_12_Template, 3, 2, "kendo-panelbar-item", 17);
|
|
2112
|
-
i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_3_Conditional_13_Template, 3, 2, "kendo-panelbar-item", 18);
|
|
2113
|
-
i0.ɵɵelementStart(14, "kendo-panelbar-item", 19);
|
|
2114
|
-
i0.ɵɵtemplate(15, MJAIAgentFormComponentExtended_Conditional_3_ng_template_15_Template, 2, 0, "ng-template", 20)(16, MJAIAgentFormComponentExtended_Conditional_3_ng_template_16_Template, 124, 21, "ng-template", 21);
|
|
2115
|
-
i0.ɵɵelementEnd();
|
|
2116
|
-
i0.ɵɵelementStart(17, "kendo-panelbar-item", 22);
|
|
2117
|
-
i0.ɵɵtemplate(18, MJAIAgentFormComponentExtended_Conditional_3_ng_template_18_Template, 2, 0, "ng-template", 20)(19, MJAIAgentFormComponentExtended_Conditional_3_ng_template_19_Template, 9, 8, "ng-template", 21);
|
|
2118
|
-
i0.ɵɵelementEnd();
|
|
2119
|
-
i0.ɵɵelementStart(20, "kendo-panelbar-item", 23);
|
|
2120
|
-
i0.ɵɵtemplate(21, MJAIAgentFormComponentExtended_Conditional_3_ng_template_21_Template, 2, 0, "ng-template", 20)(22, MJAIAgentFormComponentExtended_Conditional_3_ng_template_22_Template, 171, 22, "ng-template", 21);
|
|
2121
|
-
i0.ɵɵelementEnd()()()();
|
|
2030
|
+
i0.ɵɵconditionalCreate(322, MJAIAgentFormComponentExtended_Conditional_1_Conditional_322_Template, 34, 5);
|
|
2031
|
+
i0.ɵɵelementEnd()()()()()();
|
|
2122
2032
|
} if (rf & 2) {
|
|
2123
2033
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
2124
2034
|
i0.ɵɵadvance(2);
|
|
@@ -2128,9 +2038,9 @@ function MJAIAgentFormComponentExtended_Conditional_3_Template(rf, ctx) { if (rf
|
|
|
2128
2038
|
i0.ɵɵadvance();
|
|
2129
2039
|
i0.ɵɵconditional(ctx_r2.HeaderCollapsed ? 4 : -1);
|
|
2130
2040
|
i0.ɵɵadvance(2);
|
|
2131
|
-
i0.ɵɵ
|
|
2041
|
+
i0.ɵɵconditional(ctx_r2.record.ID && ctx_r2.agentType && ctx_r2.agentType.UIFormSectionKey ? 6 : -1);
|
|
2132
2042
|
i0.ɵɵadvance();
|
|
2133
|
-
i0.ɵɵconditional(ctx_r2.record.ID
|
|
2043
|
+
i0.ɵɵconditional(ctx_r2.record.ID ? 7 : -1);
|
|
2134
2044
|
i0.ɵɵadvance();
|
|
2135
2045
|
i0.ɵɵconditional(ctx_r2.record.ID ? 8 : -1);
|
|
2136
2046
|
i0.ɵɵadvance();
|
|
@@ -2142,18 +2052,66 @@ function MJAIAgentFormComponentExtended_Conditional_3_Template(rf, ctx) { if (rf
|
|
|
2142
2052
|
i0.ɵɵadvance();
|
|
2143
2053
|
i0.ɵɵconditional(ctx_r2.record.ID ? 12 : -1);
|
|
2144
2054
|
i0.ɵɵadvance();
|
|
2145
|
-
i0.ɵɵ
|
|
2055
|
+
i0.ɵɵproperty("Expanded", ctx_r2.GetSectionExpanded("payload", false));
|
|
2056
|
+
i0.ɵɵadvance(17);
|
|
2057
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2058
|
+
i0.ɵɵadvance(26);
|
|
2059
|
+
i0.ɵɵproperty("value", ctx_r2.record.PayloadDownstreamPaths || "[\"*\"]")("readonly", !ctx_r2.EditMode)("lineWrapping", true);
|
|
2060
|
+
i0.ɵɵadvance(20);
|
|
2061
|
+
i0.ɵɵproperty("value", ctx_r2.record.PayloadUpstreamPaths || "[\"*\"]")("readonly", !ctx_r2.EditMode)("lineWrapping", true);
|
|
2062
|
+
i0.ɵɵadvance(18);
|
|
2063
|
+
i0.ɵɵproperty("value", ctx_r2.record.PayloadSelfReadPaths || "[]")("readonly", !ctx_r2.EditMode)("lineWrapping", true);
|
|
2064
|
+
i0.ɵɵadvance(15);
|
|
2065
|
+
i0.ɵɵproperty("value", ctx_r2.record.PayloadSelfWritePaths || "[]")("readonly", !ctx_r2.EditMode)("lineWrapping", true);
|
|
2066
|
+
i0.ɵɵadvance(15);
|
|
2067
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2068
|
+
i0.ɵɵadvance(6);
|
|
2069
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2070
|
+
i0.ɵɵadvance(8);
|
|
2071
|
+
i0.ɵɵproperty("value", ctx_r2.record.FinalPayloadValidation || "{}")("readonly", !ctx_r2.EditMode)("lineWrapping", true);
|
|
2146
2072
|
i0.ɵɵadvance();
|
|
2147
|
-
i0.ɵɵproperty("
|
|
2148
|
-
i0.ɵɵadvance(
|
|
2149
|
-
i0.ɵɵproperty("
|
|
2150
|
-
i0.ɵɵadvance(
|
|
2151
|
-
i0.ɵɵproperty("
|
|
2073
|
+
i0.ɵɵproperty("Expanded", ctx_r2.GetSectionExpanded("guardrails", false));
|
|
2074
|
+
i0.ɵɵadvance(7);
|
|
2075
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2076
|
+
i0.ɵɵadvance();
|
|
2077
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2078
|
+
i0.ɵɵadvance();
|
|
2079
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2080
|
+
i0.ɵɵadvance();
|
|
2081
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2082
|
+
i0.ɵɵadvance();
|
|
2083
|
+
i0.ɵɵproperty("Expanded", ctx_r2.GetSectionExpanded("config", false));
|
|
2084
|
+
i0.ɵɵadvance(21);
|
|
2085
|
+
i0.ɵɵconditional(ctx_r2.EditMode ? 171 : 172);
|
|
2086
|
+
i0.ɵɵadvance(12);
|
|
2087
|
+
i0.ɵɵconditional(ctx_r2.EditMode ? 183 : 184);
|
|
2088
|
+
i0.ɵɵadvance(12);
|
|
2089
|
+
i0.ɵɵconditional(ctx_r2.EditMode ? 195 : 196);
|
|
2090
|
+
i0.ɵɵadvance(12);
|
|
2091
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2092
|
+
i0.ɵɵadvance(11);
|
|
2093
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2094
|
+
i0.ɵɵadvance(16);
|
|
2095
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2096
|
+
i0.ɵɵadvance(11);
|
|
2097
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2098
|
+
i0.ɵɵadvance(11);
|
|
2099
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2100
|
+
i0.ɵɵadvance(14);
|
|
2101
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2102
|
+
i0.ɵɵadvance(16);
|
|
2103
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2104
|
+
i0.ɵɵadvance(16);
|
|
2105
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2106
|
+
i0.ɵɵadvance(19);
|
|
2107
|
+
i0.ɵɵproperty("EditMode", ctx_r2.EditMode)("Record", ctx_r2.record);
|
|
2108
|
+
i0.ɵɵadvance();
|
|
2109
|
+
i0.ɵɵconditional(ctx_r2.record.EnableContextCompression ? 322 : -1);
|
|
2152
2110
|
} }
|
|
2153
|
-
function
|
|
2154
|
-
const
|
|
2155
|
-
i0.ɵɵelementStart(0, "mj-agent-permissions-dialog",
|
|
2156
|
-
i0.ɵɵlistener("Closed", function
|
|
2111
|
+
function MJAIAgentFormComponentExtended_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
2112
|
+
const _r47 = i0.ɵɵgetCurrentView();
|
|
2113
|
+
i0.ɵɵelementStart(0, "mj-agent-permissions-dialog", 289);
|
|
2114
|
+
i0.ɵɵlistener("Closed", function MJAIAgentFormComponentExtended_Conditional_2_Template_mj_agent_permissions_dialog_Closed_0_listener() { i0.ɵɵrestoreView(_r47); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onPermissionsDialogClosed()); })("PermissionsChanged", function MJAIAgentFormComponentExtended_Conditional_2_Template_mj_agent_permissions_dialog_PermissionsChanged_0_listener() { i0.ɵɵrestoreView(_r47); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.refreshRelatedData()); });
|
|
2157
2115
|
i0.ɵɵelementEnd();
|
|
2158
2116
|
} if (rf & 2) {
|
|
2159
2117
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -2292,7 +2250,7 @@ let MJAIAgentFormComponentExtended = class MJAIAgentFormComponentExtended extend
|
|
|
2292
2250
|
this.originalSnapshots = null;
|
|
2293
2251
|
// Dependency injection using inject() function
|
|
2294
2252
|
this.sharedService = inject(SharedService);
|
|
2295
|
-
this.dialogService = inject(
|
|
2253
|
+
this.dialogService = inject(MJDialogService);
|
|
2296
2254
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
2297
2255
|
this.agentManagementService = inject(AIAgentManagementService);
|
|
2298
2256
|
this.testHarnessService = inject(AITestHarnessDialogService);
|
|
@@ -2442,7 +2400,7 @@ let MJAIAgentFormComponentExtended = class MJAIAgentFormComponentExtended extend
|
|
|
2442
2400
|
width: 800,
|
|
2443
2401
|
height: 600
|
|
2444
2402
|
});
|
|
2445
|
-
const promptSelector = dialogRef.
|
|
2403
|
+
const promptSelector = dialogRef.Content.instance;
|
|
2446
2404
|
// Configure the prompt selector for single selection
|
|
2447
2405
|
promptSelector.config = {
|
|
2448
2406
|
title: 'Select Context Compression Prompt',
|
|
@@ -3836,8 +3794,8 @@ let MJAIAgentFormComponentExtended = class MJAIAgentFormComponentExtended extend
|
|
|
3836
3794
|
height: 200
|
|
3837
3795
|
});
|
|
3838
3796
|
try {
|
|
3839
|
-
const result = await firstValueFrom(confirmDialog.
|
|
3840
|
-
if (result && result
|
|
3797
|
+
const result = await firstValueFrom(confirmDialog.Result);
|
|
3798
|
+
if (result && typeof result === 'object' && 'text' in result && result['text'] === 'Remove') {
|
|
3841
3799
|
try {
|
|
3842
3800
|
// Check if this is a pending add (not yet in database)
|
|
3843
3801
|
const pendingAddIndex = this.PendingRecords.findIndex(p => p.entityObject.EntityInfo.Name === 'MJ: AI Agent Prompts' &&
|
|
@@ -3978,8 +3936,8 @@ let MJAIAgentFormComponentExtended = class MJAIAgentFormComponentExtended extend
|
|
|
3978
3936
|
height: 200
|
|
3979
3937
|
});
|
|
3980
3938
|
try {
|
|
3981
|
-
const result = await firstValueFrom(confirmDialog.
|
|
3982
|
-
if (result && result
|
|
3939
|
+
const result = await firstValueFrom(confirmDialog.Result);
|
|
3940
|
+
if (result && typeof result === 'object' && 'text' in result && result['text'] === 'Remove') {
|
|
3983
3941
|
try {
|
|
3984
3942
|
// Check if this is a pending add (not yet in database)
|
|
3985
3943
|
const pendingAddIndex = this.PendingRecords.findIndex(p => p.entityObject.EntityInfo.Name === 'MJ: AI Agents' &&
|
|
@@ -4095,8 +4053,8 @@ let MJAIAgentFormComponentExtended = class MJAIAgentFormComponentExtended extend
|
|
|
4095
4053
|
height: 200
|
|
4096
4054
|
});
|
|
4097
4055
|
try {
|
|
4098
|
-
const result = await firstValueFrom(confirmDialog.
|
|
4099
|
-
if (result && result
|
|
4056
|
+
const result = await firstValueFrom(confirmDialog.Result);
|
|
4057
|
+
if (result && typeof result === 'object' && 'text' in result && result['text'] === 'Unlink') {
|
|
4100
4058
|
try {
|
|
4101
4059
|
const success = await item.relationship.Delete();
|
|
4102
4060
|
if (success) {
|
|
@@ -4158,8 +4116,8 @@ let MJAIAgentFormComponentExtended = class MJAIAgentFormComponentExtended extend
|
|
|
4158
4116
|
height: 200
|
|
4159
4117
|
});
|
|
4160
4118
|
try {
|
|
4161
|
-
const result = await firstValueFrom(confirmDialog.
|
|
4162
|
-
if (result && result
|
|
4119
|
+
const result = await firstValueFrom(confirmDialog.Result);
|
|
4120
|
+
if (result && typeof result === 'object' && 'text' in result && result['text'] === 'Remove') {
|
|
4163
4121
|
try {
|
|
4164
4122
|
// Check if this is a pending add (not yet in database)
|
|
4165
4123
|
const pendingAddIndex = this.PendingRecords.findIndex(p => p.entityObject.EntityInfo.Name === 'MJ: AI Agent Actions' &&
|
|
@@ -4532,18 +4490,17 @@ let MJAIAgentFormComponentExtended = class MJAIAgentFormComponentExtended extend
|
|
|
4532
4490
|
} if (rf & 2) {
|
|
4533
4491
|
let _t;
|
|
4534
4492
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customSectionContainer = _t.first);
|
|
4535
|
-
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 2, consts: [["form", "ngForm"], ["customSectionContainer", ""], [1, "record-form-container"], ["kendoDialogContainer", ""], ["kendoWindowContainer", ""], [1, "record-form"], [3, "Agent"], [3, "Form"], [1, "agent-header"], [1, "agent-header-mini"], [1, "form-content"], [3, "stateChange", "keepItemContent"], ["id", "custom", 3, "expanded"], ["id", "history", 3, "expanded", "disabled"], ["id", "actions", 3, "expanded", "disabled"], ["id", "subagents", 3, "expanded", "disabled"], ["id", "prompts", 3, "expanded", "disabled"], ["id", "learning", 3, "expanded", "disabled"], ["id", "notes", 3, "expanded", "disabled"], ["id", "payload", 3, "expanded"], ["kendoPanelBarItemTitle", ""], ["kendoPanelBarContent", ""], ["id", "guardrails", 3, "expanded"], ["id", "config", 3, "expanded"], [1, "agent-header-content"], ["title", "Minimize header", 1, "agent-header-toggle", 3, "click"], [1, "fa-solid", "fa-chevron-up"], [1, "agent-overview"], [1, "agent-icon-wrapper"], [1, "agent-logo", 3, "src", "alt"], [3, "class"], [1, "agent-info"], ["name", "agentName", "placeholder", "Enter agent name...", 1, "agent-name-input", 3, "ngModel"], [1, "agent-name"], [1, "agent-meta"], [1, "status-badge", 3, "background-color"], [1, "execution-mode"], [1, "parent-agent", "clickable", 3, "title"], [1, "agent-actions"], ["kendoButton", "", "fillMode", "outline", "size", "small", "title", "Refresh all data", 3, "click"], [1, "fa-solid", "fa-refresh"], ["name", "agentName", "placeholder", "Enter agent name...", 1, "agent-name-input", 3, "ngModelChange", "ngModel"], [1, "status-badge"], [1, "fa-solid", "fa-circle"], [1, "parent-agent", "clickable", 3, "click", "title"], [1, "fa-solid", "fa-sitemap"], [1, "fa-solid", "fa-external-link", 2, "margin-left", "4px", "font-size", "10px"], ["kendoButton", "", "themeColor", "primary", "size", "large", "title", "Run this AI agent", 3, "click", "disabled"], [1, "fa-solid", "fa-play"], ["kendoButton", "", "size", "large", 3, "click", "title"], [1, "fa-solid"], ["title", "Expand header", 1, "agent-header-mini-expand", 3, "click"], [1, "fa-solid", "fa-chevron-down"], [1, "agent-header-mini-name"], [1, "agent-header-mini-status", 3, "background-color"], [1, "agent-header-mini-spacer"], ["title", "Refresh", 1, "agent-header-mini-btn", 3, "click"], [1, "agent-header-mini-status"], ["title", "Run agent", 1, "agent-header-mini-btn", "agent-header-mini-btn--primary", 3, "click", "disabled"], [1, "agent-header-mini-btn", 3, "click", "title"], [1, "fa-solid", "fa-puzzle-piece"], [1, "panel-content", "custom-agent-type-section"], ["size", "medium", 3, "text"], [1, "fa-solid", "fa-history"], [2, "margin-left", "8px"], [1, "fa-solid", "fa-spinner", "fa-spin", 2, "font-size", "12px"], [1, "panel-content", "execution-history-panel"], [1, "empty-state"], [1, "execution-search-bar"], ["placeholder", "Search by Run ID...", 3, "ngModelChange", "ngModel", "ngModelOptions", "clearButton"], ["kendoTextBoxPrefixTemplate", ""], [1, "execution-history-list"], [1, "execution-card", 3, "expanded"], [1, "pagination-controls"], [1, "fa-solid", "fa-search"], [1, "execution-card"], [1, "execution-header", 3, "click"], [1, "execution-left-section"], [1, "execution-status"], [1, "status-indicator"], [1, "execution-info"], [1, "execution-title"], [1, "fa-solid", "fa-chevron-right", "expand-icon"], [1, "execution-date"], [1, "execution-metrics"], [1, "metric-item"], [1, "execution-actions"], ["title", "View details", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "execution-expanded-content"], [1, "fa-solid", "fa-cog"], [1, "metric-label"], [1, "metric-value"], [1, "fa-solid", "fa-stopwatch"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-microchip"], [1, "fa-solid", "fa-dollar-sign"], [1, "detailed-metrics"], [1, "metrics-grid"], [1, "metric-detail"], [1, "metric-info"], [1, "metric-title"], [1, "metric-data"], [1, "result-section"], [1, "error-section"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-calculator"], [1, "fa-solid", "fa-comments"], [1, "fa-solid", "fa-file-text"], ["language", "json", 2, "max-height", "200px", "width", "100%", 3, "value", "readonly", "lineWrapping"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "error-content"], ["kendoButton", "", "fillMode", "outline", "size", "medium", 1, "page-nav-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-left"], [1, "page-info"], [1, "fa-solid", "fa-chevron-right"], ["kendoButton", "", "fillMode", "flat", "size", "small", 1, "view-all-btn", 3, "click"], [1, "fa-solid", "fa-external-link"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "record-count"], [1, "fa-solid", "fa-bolt"], [1, "panel-content"], [1, "loading-state"], [1, "section-header"], [1, "header-actions"], ["kendoButton", "", "themeColor", "primary", "size", "small"], [1, "entity-list"], ["kendoButton", "", "themeColor", "primary", "size", "small", 3, "click"], [1, "fa-solid", "fa-plus"], ["kendoButton", "", "themeColor", "primary"], ["kendoButton", "", "themeColor", "primary", 3, "click"], [1, "entity-item", "action-item"], [1, "view-more-item"], [1, "entity-item", "action-item", 3, "click"], [1, "item-icon"], [1, "item-content"], [1, "item-title"], [1, "item-preview"], [1, "item-meta"], [1, "meta-tag"], [1, "status-tag"], [1, "item-actions"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove action"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove action", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "view-more-item", 3, "click"], [1, "section-header", "sub-agent-filter-header"], [1, "filter-controls"], ["selection", "single"], ["kendoButton", "", "size", "small", 3, "click", "toggleable", "selected"], [1, "fa-solid", "fa-layer-group"], [1, "fa-solid", "fa-link"], [1, "fa-solid", "fa-share-nodes"], ["kendoButton", "", "themeColor", "primary", "size", "small", "title", "Create a new child sub-agent that shares this agent's payload", 3, "click"], ["kendoButton", "", "themeColor", "secondary", "size", "small", "title", "Link an existing agent as a related sub-agent with payload mapping", 3, "click"], [1, "empty-state-info"], [1, "info-card"], [1, "fa-solid", "fa-link", 2, "color", "var(--mj-status-info)"], [1, "fa-solid", "fa-share-nodes", 2, "color", "var(--mj-brand-primary)"], [1, "entity-item", "sub-agent-item", 3, "child-sub-agent", "related-sub-agent"], [1, "entity-item", "sub-agent-item", 3, "click"], [1, "sub-agent-type-badge"], [1, "sub-agent-logo", 3, "src", "alt"], [1, "meta-tag", "payload-info"], [1, "fa-solid", "fa-database"], [1, "status-tag", 3, "background-color"], ["kendoButton", "", "fillMode", "flat", "themeColor", "primary", "size", "small", "title", "Configure output mapping"], ["kendoButton", "", "fillMode", "flat", "themeColor", "primary", "size", "small", "title", "Advanced settings"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", 3, "title"], ["kendoButton", "", "fillMode", "flat", "themeColor", "primary", "size", "small", "title", "Configure output mapping", 3, "click"], [1, "fa-solid", "fa-exchange-alt"], ["kendoButton", "", "fillMode", "flat", "themeColor", "primary", "size", "small", "title", "Advanced settings", 3, "click"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", 3, "click", "title"], [1, "prompt-controls"], [1, "model-selection-mode"], [1, "model-selection-label"], [1, "fa-solid", "fa-sliders"], ["name", "modelSelectionMode", "textField", "text", "valueField", "value", 1, "model-selection-dropdown", 3, "ngModel", "data", "valuePrimitive"], [1, "model-selection-value"], ["name", "modelSelectionMode", "textField", "text", "valueField", "value", 1, "model-selection-dropdown", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], [1, "entity-item", "prompt-item"], [1, "entity-item", "prompt-item", 3, "click"], [1, "fa-solid", "fa-comment-dots"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove prompt"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove prompt", 3, "click"], [1, "fa-solid", "fa-brain"], [1, "section-description"], [1, "entity-item", "learning-item"], [1, "entity-item", "learning-item", 3, "click"], [1, "fa-solid", "fa-calendar"], [1, "fa-solid", "fa-sticky-note"], [1, "entity-item", "note-item"], [1, "entity-item", "note-item", 3, "click"], [1, "payload-section"], [1, "payload-section-title"], [1, "fa-solid", "fa-target"], [1, "payload-field-container"], [1, "payload-field-info"], [1, "payload-field-label"], [1, "payload-field-description"], [1, "payload-field-input"], ["FieldName", "PayloadScope", "Type", "textbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "payload-field-example"], [1, "fa-solid", "fa-lightbulb"], [1, "fa-solid", "fa-route"], [1, "payload-paths-grid"], [1, "payload-path-card"], [1, "payload-path-header"], [1, "payload-path-icon", "downstream"], [1, "fa-solid", "fa-arrow-down"], [1, "payload-path-info"], [1, "payload-path-content"], [1, "json-editor-container"], ["language", "json", 2, "height", "100px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [1, "payload-path-hint"], [1, "fa-solid", "fa-info-circle"], [1, "payload-path-icon", "upstream"], [1, "fa-solid", "fa-arrow-up"], [1, "payload-path-icon", "self-read"], [1, "fa-solid", "fa-eye"], [1, "payload-path-icon", "self-write"], [1, "fa-solid", "fa-pen"], [1, "fa-solid", "fa-shield-check"], [1, "payload-validation-container"], [1, "payload-validation-settings"], [1, "validation-field-group"], [1, "validation-field-label"], [1, "validation-field-description"], ["FieldName", "FinalPayloadValidationMode", "Type", "dropdownlist", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], ["FieldName", "FinalPayloadValidationMaxRetries", "Type", "numerictextbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "payload-validation-schema"], [1, "validation-schema-label"], [1, "fa-solid", "fa-code"], [1, "validation-schema-description"], [1, "validation-schema-editor"], ["language", "json", 2, "height", "200px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [1, "fa-solid", "fa-shield-halved"], [1, "form-fields-grid"], ["FieldName", "MaxCostPerRun", "Type", "numerictextbox", "Caption", "Max Cost ($)", "Description", "Maximum cost per run", 3, "EditMode", "Record"], ["FieldName", "MaxTokensPerRun", "Type", "numerictextbox", "Caption", "Max Tokens", "Description", "Maximum tokens per run", 3, "EditMode", "Record"], ["FieldName", "MaxIterationsPerRun", "Type", "numerictextbox", "Caption", "Max Iterations", "Description", "Maximum prompt iterations", 3, "EditMode", "Record"], ["FieldName", "MaxTimePerRun", "Type", "numerictextbox", "Caption", "Max Time (seconds)", "Description", "Maximum execution time", 3, "EditMode", "Record"], [1, "fa-solid", "fa-cogs"], [1, "config-section"], [1, "config-section-title"], [1, "fa-solid", "fa-id-card"], [1, "config-grid"], [1, "config-card"], [1, "config-card-header"], [1, "config-card-icon"], [1, "fa-solid", "fa-toggle-on"], [1, "config-card-info"], [1, "config-card-content"], ["textField", "text", "valueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModel", "data", "valuePrimitive"], [1, "config-field-display"], ["textField", "Name", "valueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModel", "data", "valuePrimitive"], [1, "fa-solid", "fa-folder-tree"], ["SelectionMode", "single", "SelectableTypes", "branch", "Placeholder", "Select a category...", 3, "BranchConfig", "Value", "Clearable", "EnableSearch"], ["FieldName", "ExposeAsAction", "Type", "checkbox", "Caption", "", 3, "EditMode", "Record"], [1, "config-card", "full-width"], [1, "fa-solid", "fa-align-left"], ["FieldName", "Description", "Type", "textarea", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], ["FieldName", "ExecutionMode", "Type", "dropdownlist", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-sort-numeric-down"], ["FieldName", "ExecutionOrder", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-tachometer-alt"], ["FieldName", "DefaultPromptEffortLevel", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "config-card-hint"], ["FieldName", "DriverClass", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-palette"], [1, "fa-solid", "fa-icons"], ["FieldName", "IconClass", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-image"], ["FieldName", "LogoURL", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-compress"], ["FieldName", "EnableContextCompression", "Type", "checkbox", "Caption", "", 3, "valueChange", "EditMode", "Record"], ["textField", "text", "valueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], ["textField", "Name", "valueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], ["SelectionMode", "single", "SelectableTypes", "branch", "Placeholder", "Select a category...", 3, "ValueChange", "BranchConfig", "Value", "Clearable", "EnableSearch"], [1, "fa-solid", "fa-hashtag"], ["FieldName", "ContextCompressionMessageThreshold", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-save"], ["FieldName", "ContextCompressionMessageRetentionCount", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "prompt-selector-container"], [1, "prompt-display"], [1, "prompt-name"], [1, "no-prompt"], [1, "prompt-actions"], ["type", "button", "kendoButton", "", "fillMode", "outline", "size", "small", 1, "prompt-select-btn", 3, "click"], ["type", "button", "kendoButton", "", "fillMode", "flat", "size", "small", "title", "Clear selection", 1, "prompt-clear-btn"], ["type", "button", "kendoButton", "", "fillMode", "flat", "size", "small", "title", "Clear selection", 1, "prompt-clear-btn", 3, "click"], [1, "fa-solid", "fa-times"], [3, "Closed", "PermissionsChanged", "Agent"]], template: function MJAIAgentFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
4493
|
+
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [["form", "ngForm"], ["customSectionContainer", ""], [1, "record-form-container"], [1, "record-form"], [3, "Agent"], [3, "Form"], [1, "agent-header"], [1, "agent-header-mini"], [1, "form-content"], ["id", "custom", 3, "Expanded"], ["id", "history", 3, "Expanded", "Disabled"], ["id", "actions", 3, "Expanded", "Disabled"], ["id", "subagents", 3, "Expanded", "Disabled"], ["id", "prompts", 3, "Expanded", "Disabled"], ["id", "learning", 3, "Expanded", "Disabled"], ["id", "notes", 3, "Expanded", "Disabled"], ["id", "payload", 3, "Expanded"], ["mjAccordionTitle", ""], [1, "panel-content"], [1, "section-header"], [1, "section-description"], [1, "payload-section"], [1, "payload-section-title"], [1, "fa-solid", "fa-target"], [1, "payload-field-container"], [1, "payload-field-info"], [1, "payload-field-label"], [1, "payload-field-description"], [1, "payload-field-input"], ["FieldName", "PayloadScope", "Type", "textbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "payload-field-example"], [1, "fa-solid", "fa-lightbulb"], [1, "fa-solid", "fa-route"], [1, "payload-paths-grid"], [1, "payload-path-card"], [1, "payload-path-header"], [1, "payload-path-icon", "downstream"], [1, "fa-solid", "fa-arrow-down"], [1, "payload-path-info"], [1, "payload-path-content"], [1, "json-editor-container"], ["language", "json", 2, "height", "100px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [1, "payload-path-hint"], [1, "fa-solid", "fa-info-circle"], [1, "payload-path-icon", "upstream"], [1, "fa-solid", "fa-arrow-up"], [1, "payload-path-icon", "self-read"], [1, "fa-solid", "fa-eye"], [1, "payload-path-icon", "self-write"], [1, "fa-solid", "fa-pen"], [1, "fa-solid", "fa-shield-check"], [1, "payload-validation-container"], [1, "payload-validation-settings"], [1, "validation-field-group"], [1, "validation-field-label"], [1, "validation-field-description"], ["FieldName", "FinalPayloadValidationMode", "Type", "dropdownlist", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], ["FieldName", "FinalPayloadValidationMaxRetries", "Type", "numerictextbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "payload-validation-schema"], [1, "validation-schema-label"], [1, "fa-solid", "fa-code"], [1, "validation-schema-description"], [1, "validation-schema-editor"], ["language", "json", 2, "height", "200px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], ["id", "guardrails", 3, "Expanded"], [1, "form-fields-grid"], ["FieldName", "MaxCostPerRun", "Type", "numerictextbox", "Caption", "Max Cost ($)", "Description", "Maximum cost per run", 3, "EditMode", "Record"], ["FieldName", "MaxTokensPerRun", "Type", "numerictextbox", "Caption", "Max Tokens", "Description", "Maximum tokens per run", 3, "EditMode", "Record"], ["FieldName", "MaxIterationsPerRun", "Type", "numerictextbox", "Caption", "Max Iterations", "Description", "Maximum prompt iterations", 3, "EditMode", "Record"], ["FieldName", "MaxTimePerRun", "Type", "numerictextbox", "Caption", "Max Time (seconds)", "Description", "Maximum execution time", 3, "EditMode", "Record"], ["id", "config", 3, "Expanded"], [1, "config-section"], [1, "config-section-title"], [1, "fa-solid", "fa-id-card"], [1, "config-grid"], [1, "config-card"], [1, "config-card-header"], [1, "config-card-icon"], [1, "fa-solid", "fa-toggle-on"], [1, "config-card-info"], [1, "config-card-content"], ["TextField", "text", "ValueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModel", "Data", "ValuePrimitive"], [1, "config-field-display"], [1, "fa-solid", "fa-sitemap"], ["TextField", "Name", "ValueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModel", "Data", "ValuePrimitive"], [1, "fa-solid", "fa-folder-tree"], ["SelectionMode", "single", "SelectableTypes", "branch", "Placeholder", "Select a category...", 3, "BranchConfig", "Value", "Clearable", "EnableSearch"], [1, "fa-solid", "fa-bolt"], ["FieldName", "ExposeAsAction", "Type", "checkbox", "Caption", "", 3, "EditMode", "Record"], [1, "config-card", "full-width"], [1, "fa-solid", "fa-align-left"], ["FieldName", "Description", "Type", "textarea", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "fa-solid", "fa-play"], [1, "fa-solid", "fa-layer-group"], ["FieldName", "ExecutionMode", "Type", "dropdownlist", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-sort-numeric-down"], ["FieldName", "ExecutionOrder", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-tachometer-alt"], ["FieldName", "DefaultPromptEffortLevel", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "config-card-hint"], ["FieldName", "DriverClass", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-palette"], [1, "fa-solid", "fa-icons"], ["FieldName", "IconClass", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-image"], ["FieldName", "LogoURL", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-compress"], ["FieldName", "EnableContextCompression", "Type", "checkbox", "Caption", "", 3, "valueChange", "EditMode", "Record"], [1, "agent-header-content"], ["title", "Minimize header", 1, "agent-header-toggle", 3, "click"], [1, "fa-solid", "fa-chevron-up"], [1, "agent-overview"], [1, "agent-icon-wrapper"], [1, "agent-logo", 3, "src", "alt"], [3, "class"], [1, "agent-info"], ["type", "text", "name", "agentName", "placeholder", "Enter agent name...", 1, "mj-input", "agent-name-input", 3, "ngModel"], [1, "agent-name"], [1, "agent-meta"], [1, "status-badge", 3, "background-color"], [1, "execution-mode"], [1, "parent-agent", "clickable", 3, "title"], [1, "agent-actions"], ["mjButton", "", "variant", "outline", "size", "sm", "title", "Refresh all data", 3, "click"], [1, "fa-solid", "fa-refresh"], ["type", "text", "name", "agentName", "placeholder", "Enter agent name...", 1, "mj-input", "agent-name-input", 3, "ngModelChange", "ngModel"], [1, "status-badge"], [1, "fa-solid", "fa-circle"], [1, "parent-agent", "clickable", 3, "click", "title"], [1, "fa-solid", "fa-external-link", 2, "margin-left", "4px", "font-size", "10px"], ["mjButton", "", "variant", "primary", "size", "lg", "title", "Run this AI agent", 3, "click", "disabled"], ["mjButton", "", "size", "lg", 3, "click", "title"], [1, "fa-solid"], ["title", "Expand header", 1, "agent-header-mini-expand", 3, "click"], [1, "fa-solid", "fa-chevron-down"], [1, "agent-header-mini-name"], [1, "agent-header-mini-status", 3, "background-color"], [1, "agent-header-mini-spacer"], ["title", "Refresh", 1, "agent-header-mini-btn", 3, "click"], [1, "agent-header-mini-status"], ["title", "Run agent", 1, "agent-header-mini-btn", "agent-header-mini-btn--primary", 3, "click", "disabled"], [1, "agent-header-mini-btn", 3, "click", "title"], [1, "panel-content", "custom-agent-type-section"], ["size", "medium", 3, "text"], [1, "fa-solid", "fa-puzzle-piece"], [1, "panel-content", "execution-history-panel"], ["text", "Loading execution history...", "size", "medium"], [1, "empty-state"], [1, "fa-solid", "fa-history"], [2, "margin-left", "8px"], [1, "fa-solid", "fa-spinner", "fa-spin", 2, "font-size", "12px"], [1, "execution-search-bar"], [1, "search-input-wrapper"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search by Run ID...", 1, "mj-input", 3, "ngModelChange", "ngModel", "ngModelOptions"], [1, "execution-history-list"], [1, "execution-card", 3, "expanded"], [1, "pagination-controls"], [1, "execution-card"], [1, "execution-header", 3, "click"], [1, "execution-left-section"], [1, "execution-status"], [1, "status-indicator"], [1, "execution-info"], [1, "execution-title"], [1, "fa-solid", "fa-chevron-right", "expand-icon"], [1, "execution-date"], [1, "execution-metrics"], [1, "metric-item"], [1, "execution-actions"], ["title", "View details", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "execution-expanded-content"], [1, "fa-solid", "fa-cog"], [1, "metric-label"], [1, "metric-value"], [1, "fa-solid", "fa-stopwatch"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-microchip"], [1, "fa-solid", "fa-dollar-sign"], [1, "detailed-metrics"], [1, "metrics-grid"], [1, "metric-detail"], [1, "metric-info"], [1, "metric-title"], [1, "metric-data"], [1, "result-section"], [1, "error-section"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-calculator"], [1, "fa-solid", "fa-comments"], [1, "fa-solid", "fa-file-text"], ["language", "json", 2, "max-height", "200px", "width", "100%", 3, "value", "readonly", "lineWrapping"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "error-content"], ["mjButton", "", "variant", "outline", 1, "page-nav-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-left"], [1, "page-info"], [1, "fa-solid", "fa-chevron-right"], ["mjButton", "", "variant", "flat", "size", "sm", 1, "view-all-btn", 3, "click"], [1, "fa-solid", "fa-external-link"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "record-count"], [1, "loading-state"], [1, "header-actions"], ["mjButton", "", "variant", "primary", "size", "sm"], [1, "entity-list"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["mjButton", "", "variant", "primary"], ["mjButton", "", "variant", "primary", 3, "click"], [1, "entity-item", "action-item"], [1, "view-more-item"], [1, "entity-item", "action-item", 3, "click"], [1, "item-icon"], [1, "item-content"], [1, "item-title"], [1, "item-preview"], [1, "item-meta"], [1, "meta-tag"], [1, "status-tag"], [1, "item-actions"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove action", 1, "error-action"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove action", 1, "error-action", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "view-more-item", 3, "click"], [1, "section-header", "sub-agent-filter-header"], [1, "filter-controls"], [1, "mj-button-group"], ["mjButton", "", "size", "sm", 3, "click"], [1, "fa-solid", "fa-link"], [1, "fa-solid", "fa-share-nodes"], ["mjButton", "", "variant", "primary", "size", "sm", "title", "Create a new child sub-agent that shares this agent's payload", 3, "click"], ["mjButton", "", "size", "sm", "title", "Link an existing agent as a related sub-agent with payload mapping", 3, "click"], [1, "empty-state-info"], [1, "info-card"], [1, "fa-solid", "fa-link", 2, "color", "var(--mj-status-info)"], [1, "fa-solid", "fa-share-nodes", 2, "color", "var(--mj-brand-primary)"], [1, "entity-item", "sub-agent-item", 3, "child-sub-agent", "related-sub-agent"], [1, "entity-item", "sub-agent-item", 3, "click"], [1, "sub-agent-type-badge"], [1, "sub-agent-logo", 3, "src", "alt"], [1, "meta-tag", "payload-info"], [1, "fa-solid", "fa-database"], [1, "status-tag", 3, "background-color"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Configure output mapping"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Advanced settings"], ["mjButton", "", "variant", "flat", "size", "sm", 1, "error-action", 3, "title"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Configure output mapping", 3, "click"], [1, "fa-solid", "fa-exchange-alt"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Advanced settings", 3, "click"], ["mjButton", "", "variant", "flat", "size", "sm", 1, "error-action", 3, "click", "title"], [1, "prompt-controls"], [1, "model-selection-mode"], [1, "model-selection-label"], [1, "fa-solid", "fa-sliders"], ["name", "modelSelectionMode", "TextField", "text", "ValueField", "value", 1, "model-selection-dropdown", 3, "ngModel", "Data", "ValuePrimitive"], [1, "model-selection-value"], ["name", "modelSelectionMode", "TextField", "text", "ValueField", "value", 1, "model-selection-dropdown", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], [1, "entity-item", "prompt-item"], [1, "entity-item", "prompt-item", 3, "click"], [1, "fa-solid", "fa-comment-dots"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove prompt", 1, "error-action"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove prompt", 1, "error-action", 3, "click"], [1, "fa-solid", "fa-brain"], [1, "entity-item", "learning-item"], [1, "entity-item", "learning-item", 3, "click"], [1, "fa-solid", "fa-calendar"], [1, "fa-solid", "fa-sticky-note"], [1, "entity-item", "note-item"], [1, "entity-item", "note-item", 3, "click"], [1, "fa-solid", "fa-shield-halved"], [1, "fa-solid", "fa-cogs"], ["TextField", "text", "ValueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], ["TextField", "Name", "ValueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], ["SelectionMode", "single", "SelectableTypes", "branch", "Placeholder", "Select a category...", 3, "ValueChange", "BranchConfig", "Value", "Clearable", "EnableSearch"], [1, "fa-solid", "fa-hashtag"], ["FieldName", "ContextCompressionMessageThreshold", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-save"], ["FieldName", "ContextCompressionMessageRetentionCount", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "prompt-selector-container"], [1, "prompt-display"], [1, "prompt-name"], [1, "no-prompt"], [1, "prompt-actions"], ["type", "button", "mjButton", "", "variant", "outline", "size", "sm", 1, "prompt-select-btn", 3, "click"], ["type", "button", "mjButton", "", "variant", "flat", "size", "sm", "title", "Clear selection", 1, "prompt-clear-btn"], ["type", "button", "mjButton", "", "variant", "flat", "size", "sm", "title", "Clear selection", 1, "prompt-clear-btn", 3, "click"], [1, "fa-solid", "fa-times"], [3, "Closed", "PermissionsChanged", "Agent"]], template: function MJAIAgentFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
4536
4494
|
i0.ɵɵelementStart(0, "div", 2);
|
|
4537
|
-
i0.ɵɵ
|
|
4538
|
-
i0.ɵɵconditionalCreate(
|
|
4539
|
-
i0.ɵɵconditionalCreate(4, MJAIAgentFormComponentExtended_Conditional_4_Template, 1, 1, "mj-agent-permissions-dialog", 6);
|
|
4495
|
+
i0.ɵɵconditionalCreate(1, MJAIAgentFormComponentExtended_Conditional_1_Template, 323, 64, "form", 3);
|
|
4496
|
+
i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_2_Template, 1, 1, "mj-agent-permissions-dialog", 4);
|
|
4540
4497
|
i0.ɵɵelementEnd();
|
|
4541
4498
|
} if (rf & 2) {
|
|
4542
|
-
i0.ɵɵadvance(3);
|
|
4543
|
-
i0.ɵɵconditional(ctx.record ? 3 : -1);
|
|
4544
4499
|
i0.ɵɵadvance();
|
|
4545
|
-
i0.ɵɵconditional(ctx.
|
|
4546
|
-
} }, dependencies: [i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.NgForm, i2.PanelBarComponent, i2.PanelBarItemComponent, i2.PanelBarContentDirective, i2.PanelBarItemTitleDirective, i3.DialogContainerDirective, i3.WindowContainerDirective, i4.TextBoxComponent, i4.TextBoxPrefixTemplateDirective, i5.DropDownListComponent, i6.ButtonComponent, i6.ButtonGroupComponent, i7.MjFormToolbarComponent, i7.MjFormFieldComponent, i8.CodeEditorComponent, i9.LoadingComponent, i10.AgentPermissionsDialogComponent, i11.TreeDropdownComponent, i12.DatePipe], styles: ["\n\n.record-form-container[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n\n.record-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n\n\n.agent-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 8px 16px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n transition: padding 0.2s ease;\n}\n\n.agent-header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n\n\n.agent-header-toggle[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n padding: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-toggle[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.agent-overview[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n background: var(--mj-brand-primary);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n flex-shrink: 0;\n transition: all 0.2s ease;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n\n\n.agent-header-mini[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n height: 32px;\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n.agent-header-mini-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.agent-header-mini-status[_ngcontent-%COMP%] {\n padding: 1px 7px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.agent-header-mini-spacer[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.agent-header-mini-btn--primary[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-header-mini-btn--primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 50%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] img.agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.2;\n}\n\n.agent-name-input[_ngcontent-%COMP%] {\n font-size: 16px !important;\n font-weight: 500 !important;\n height: 30px !important;\n width: 100% !important;\n max-width: 350px !important;\n}\n\n.agent-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-badge.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n\n.status-badge.pending[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-text-primary);\n}\n\n.status-badge.disabled[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.execution-mode[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n opacity: 0.8;\n}\n\n.parent-agent.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.parent-agent.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\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.parent-agent.clickable[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n\n\n.prompt-controls[_ngcontent-%COMP%] {\n flex: 1;\n margin-right: 16px;\n}\n\n.agent-meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n\n.agent-description[_ngcontent-%COMP%] {\n margin-top: 16px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n\n\n.agent-actions[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n gap: 8px;\n flex-shrink: 0;\n align-items: center;\n}\n\n.action-buttons-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.action-button[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);\n}\n\n.action-button.primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-button.primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n}\n\n.action-button.secondary[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.action-button.secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-text-secondary);\n}\n\n.action-warnings[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 13px;\n color: var(--mj-status-error);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.form-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n padding: 8px 12px;\n}\n\n\n\n .k-panelbar {\n border: none;\n background: transparent;\n}\n\n .k-panelbar > .k-panelbar-item {\n border: none;\n border-radius: 10px;\n margin-bottom: 8px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header {\n background: var(--mj-bg-surface);\n border: none;\n padding: 10px 16px;\n border-radius: 12px 12px 0 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: 14px;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header:hover {\n background: var(--mj-bg-surface-card);\n}\n\n .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 12px 12px 0 0;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle {\n position: absolute;\n right: 24px;\n color: inherit;\n font-size: 14px;\n transition: transform 0.2s ease;\n}\n\n .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header .k-panelbar-toggle {\n transform: rotate(180deg);\n}\n\n .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle::before {\n content: '\\f107';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n}\n\n .k-panelbar > .k-panelbar-item > .k-content {\n padding: 0;\n border: none;\n background: var(--mj-bg-surface);\n border-radius: 0 0 12px 12px;\n}\n\n .k-panelbar .k-header .k-panelbar-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n margin-right: 8px;\n}\n\n .k-panelbar .k-panelbar-expanded .k-header .k-panelbar-icon {\n color: var(--mj-text-inverse);\n}\n\n\n\n.panel-content[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface);\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n border: 1px solid var(--mj-border-default);\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid var(--mj-bg-surface-sunken);\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: var(--mj-text-primary);\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 20px;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n\n\n.form-fields-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.sub-grid-container[_ngcontent-%COMP%] {\n height: 500px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n display: none; \n\n}\n\n\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 36px;\n color: var(--mj-brand-primary);\n margin-bottom: 16px;\n display: block;\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-disabled);\n}\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-border-default);\n margin-bottom: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 600;\n margin-bottom: 8px;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto;\n}\n\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border: 4px solid var(--mj-bg-surface-sunken);\n border-top: 4px solid var(--mj-brand-primary);\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n\n.quick-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.quick-action-card[_ngcontent-%COMP%] {\n flex: 1;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--mj-brand-primary);\n margin-bottom: 8px;\n}\n\n.quick-action-title[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.quick-action-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n\n\n.entity-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-1px);\n}\n\n.item-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n\n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 18px;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n\n.item-icon[_ngcontent-%COMP%] img.sub-agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.item-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag[_ngcontent-%COMP%], \n.priority-tag[_ngcontent-%COMP%], \n.status-tag[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.priority-tag[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-tag.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-tag.inactive[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.item-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: var(--mj-text-muted);\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.view-more-item[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-more-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n\n\n.pagination-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: center;\n padding: 16px;\n margin-top: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n}\n\n.page-nav-btn[_ngcontent-%COMP%] {\n min-width: 120px;\n font-weight: 500;\n}\n\n.page-nav-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.page-nav-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.page-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 0 16px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n min-width: 200px;\n text-align: center;\n}\n\n.page-info[_ngcontent-%COMP%] .record-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: normal;\n}\n\n.page-info[_ngcontent-%COMP%] .fa-spinner[_ngcontent-%COMP%] {\n margin-right: 8px;\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n white-space: nowrap;\n margin-left: auto;\n}\n\n.view-all-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 4px;\n}\n\n\n\n.payload-config-section[_ngcontent-%COMP%], \n.payload-paths-section[_ngcontent-%COMP%], \n.payload-validation-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n}\n\n.subsection-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.subsection-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.subsection-divider[_ngcontent-%COMP%] {\n margin-top: 32px;\n margin-bottom: 16px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.payload-config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.payload-field-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.payload-field-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.payload-field-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 16px;\n}\n\n.field-description[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: normal;\n color: var(--mj-text-muted);\n margin-left: auto;\n}\n\n\n\n.payload-field-group[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.payload-field-group[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n\n\n.payload-field-group[_ngcontent-%COMP%] mj-form-field[_ngcontent-%COMP%] textarea {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.5;\n min-height: 120px;\n resize: vertical;\n}\n\n\n\n.execution-history-panel[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n\n.timeline-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n\n.cards-container[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\n border-color: var(--mj-brand-primary);\n}\n\n.entity-card[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover::before {\n opacity: 1;\n}\n\n.card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-text-muted);\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n\n.card-title-section[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 4px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.inactive[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n}\n\n.card-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: var(--mj-text-muted);\n}\n\n.entity-card[_ngcontent-%COMP%]:hover .card-actions[_ngcontent-%COMP%] {\n opacity: 1;\n color: var(--mj-brand-primary);\n}\n\n\n\n.priority-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n\n\n.view-all-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n}\n\n.view-all-content[_ngcontent-%COMP%] {\n text-align: center;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-all-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n\n\n.timeline-container[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.timeline-item.expanded[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%] {\n cursor: pointer;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-item[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.timeline-item[_ngcontent-%COMP%]:last-child .timeline-marker[_ngcontent-%COMP%]::after {\n display: none;\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: var(--mj-text-muted);\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n}\n\n.timeline-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-size: 13px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n\n\n\n.timeline-expanded-content[_ngcontent-%COMP%] {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.result-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.result-content[_ngcontent-%COMP%], \n.error-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-text-secondary);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n\n\n.result-section[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.execution-details[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n word-break: break-all;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n padding: 8px 16px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.btn-primary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 2px dashed var(--mj-border-default);\n margin-top: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-border-default);\n margin-bottom: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 600;\n margin-bottom: 8px;\n font-size: 18px;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto 20px auto;\n}\n\n\n\n@media (max-width: 768px) {\n \n\n .agent-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .agent-header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .agent-overview[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .agent-meta[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .agent-actions[_ngcontent-%COMP%] {\n width: 100%;\n align-self: stretch;\n }\n\n .action-button[_ngcontent-%COMP%] {\n flex: 1;\n justify-content: center;\n }\n\n \n\n .form-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .k-panelbar > .k-panelbar-item > .k-header {\n padding: 16px 20px;\n font-size: 15px;\n }\n\n .panel-content[_ngcontent-%COMP%] {\n padding: 20px 16px;\n }\n\n .section-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .header-actions[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n align-self: stretch;\n }\n\n \n\n .entity-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n\n .item-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n }\n\n .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .item-title[_ngcontent-%COMP%] {\n font-size: 15px;\n }\n\n .item-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .item-meta[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n \n\n .timeline-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n\n .timeline-marker[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n }\n\n .timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .timeline-title[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .timeline-date[_ngcontent-%COMP%] {\n align-self: flex-start;\n }\n\n \n\n .form-fields-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n \n\n .cards-container[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n\n.execution-history-panel[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 4px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n\n\n.execution-search-bar[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n padding: 0 4px;\n}\n\n.execution-search-bar[_ngcontent-%COMP%] kendo-textbox[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.execution-search-bar[_ngcontent-%COMP%] .fa-search[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n font-size: 14px;\n}\n\n\n\n.execution-history-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 8px;\n}\n\n.execution-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.2s ease;\n cursor: pointer;\n}\n\n.execution-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n transform: translateY(-1px);\n}\n\n.execution-card.expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 6px 20px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.execution-header[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.execution-left-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.execution-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.status-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.execution-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.execution-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.execution-metrics[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex-wrap: wrap;\n margin-left: 44px; \n\n}\n\n.metric-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-card);\n padding: 6px 10px;\n border-radius: 6px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.metric-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.execution-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: none;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n}\n\n.action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n transition: transform 0.2s ease;\n color: var(--mj-text-muted);\n margin-right: 4px;\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n\n\n.execution-expanded-content[_ngcontent-%COMP%] {\n padding: 16px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n background: var(--mj-bg-surface-card);\n animation: _ngcontent-%COMP%_slideDown 0.2s ease;\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n to {\n opacity: 1;\n max-height: 500px;\n padding-top: 16px;\n padding-bottom: 16px;\n }\n}\n\n.detailed-metrics[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.metrics-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.metric-detail[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n}\n\n.metric-detail[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 16px;\n width: 20px;\n text-align: center;\n}\n\n.metric-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n}\n\n.metric-title[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-data[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.result-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.result-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.error-content[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, 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 padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-status-error);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 150px;\n overflow-y: auto;\n}\n\n\n\n@media (max-width: 768px) {\n .execution-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .execution-left-section[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .execution-metrics[_ngcontent-%COMP%] {\n margin-left: 0; \n\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n }\n\n .metric-item[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 4px 8px;\n }\n\n .metrics-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n\n.payload-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.payload-section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.payload-section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n\n\n.payload-field-container[_ngcontent-%COMP%] {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-field-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.payload-field-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.5;\n margin: 0;\n}\n\n.payload-field-input[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-example[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.payload-field-example[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 0.9rem;\n}\n\n.payload-field-example[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.2rem 0.4rem;\n border-radius: 4px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n}\n\n\n\n.payload-paths-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.payload-path-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.payload-path-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.payload-path-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.payload-path-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.payload-path-icon.downstream[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.payload-path-icon.upstream[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-read[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-write[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.payload-path-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.payload-path-info[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.payload-path-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-content[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n.json-editor-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 0.75rem;\n}\n\n.json-editor-container[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.payload-path-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.payload-path-hint[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n\n.payload-validation-container[_ngcontent-%COMP%] {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-validation-settings[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.validation-field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.validation-field-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.validation-field-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0 0 0.5rem 0;\n}\n\n.payload-validation-schema[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.validation-schema-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.validation-schema-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.validation-schema-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.validation-schema-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.validation-schema-editor[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n\n\n.config-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.config-section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.config-section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n.config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n width: 100%;\n}\n\n.config-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.config-card.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.config-card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.config-card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.config-card-info[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.config-card-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.config-card-content[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n\n\n.config-field-input[_ngcontent-%COMP%] {\n width: 100%;\n min-width: 250px;\n}\n\n\n\n.config-card-content[_ngcontent-%COMP%] kendo-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content[_ngcontent-%COMP%] kendo-numerictextbox .k-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content[_ngcontent-%COMP%] kendo-numerictextbox .k-input {\n width: 100% !important;\n min-width: 200px !important;\n}\n\n.config-card-content[_ngcontent-%COMP%] mj-form-field {\n width: 100% !important;\n}\n\n.config-card-content[_ngcontent-%COMP%] mj-form-field kendo-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content[_ngcontent-%COMP%] mj-form-field kendo-numerictextbox .k-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content[_ngcontent-%COMP%] mj-form-field kendo-numerictextbox .k-input {\n width: 100% !important;\n min-width: 200px !important;\n}\n\n.config-field-display[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n padding: 8px 0;\n display: block;\n min-height: 20px;\n}\n\n\n\n.prompt-selector-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n.prompt-display[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n}\n\n.prompt-name[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n font-size: 14px;\n}\n\n.no-prompt[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n font-size: 14px;\n}\n\n.prompt-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.prompt-select-btn[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.prompt-clear-btn[_ngcontent-%COMP%] {\n min-width: 32px;\n}\n\n.config-card-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-top: 0.5rem;\n}\n\n.config-card-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.config-card-hint[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n\n\n@media (max-width: 768px) {\n .payload-field-container[_ngcontent-%COMP%], \n .payload-validation-container[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n\n .payload-paths-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .config-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .payload-section-title[_ngcontent-%COMP%], \n .config-section-title[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .payload-path-header[_ngcontent-%COMP%], \n .config-card-header[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n\n .payload-path-content[_ngcontent-%COMP%], \n .config-card-content[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n\n .payload-field-container[_ngcontent-%COMP%], \n .payload-validation-container[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n}\n\n\n\n\n\n\n\n\n.sub-agent-filter-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.filter-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.filter-controls[_ngcontent-%COMP%] kendo-buttongroup[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n}\n\n\n\n.sub-agent-type-badge[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n display: flex;\n align-items: center;\n gap: 4px;\n z-index: 1;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n\n\n.sub-agent-item[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 8px;\n transition: all 0.2s ease;\n}\n\n.sub-agent-item.child-sub-agent[_ngcontent-%COMP%] {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item.related-sub-agent[_ngcontent-%COMP%] {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n\n\n.payload-info[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n font-family: 'Roboto Mono', monospace;\n font-size: 11px;\n}\n\n\n\n.empty-state-info[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n margin: 24px 0;\n max-width: 600px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.info-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n text-align: left;\n}\n\n.info-card[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.info-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 4px;\n font-size: 14px;\n}\n\n.info-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n justify-content: center;\n margin-top: 16px;\n}\n\n\n\n@media (max-width: 768px) {\n .sub-agent-filter-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls[_ngcontent-%COMP%], \n .header-actions[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: center;\n }\n\n .empty-state-info[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}"] }); }
|
|
4500
|
+
i0.ɵɵconditional(ctx.record ? 1 : -1);
|
|
4501
|
+
i0.ɵɵadvance();
|
|
4502
|
+
i0.ɵɵconditional(ctx.ShowPermissionsDialog ? 2 : -1);
|
|
4503
|
+
} }, dependencies: [i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.NgForm, i2.MJButtonDirective, i2.MJAccordionPanelComponent, i2.MJAccordionTitleDirective, i2.MJDropdownComponent, i3.MjFormToolbarComponent, i3.MjFormFieldComponent, i4.CodeEditorComponent, i5.LoadingComponent, i6.AgentPermissionsDialogComponent, i7.TreeDropdownComponent, i8.DatePipe], styles: ["\n\n.record-form-container[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n\n.record-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n\n\n.agent-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 8px 16px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n transition: padding 0.2s ease;\n}\n\n.agent-header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n\n\n.agent-header-toggle[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n padding: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-toggle[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.agent-overview[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n background: var(--mj-brand-primary);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n flex-shrink: 0;\n transition: all 0.2s ease;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n\n\n.agent-header-mini[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n height: 32px;\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n.agent-header-mini-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.agent-header-mini-status[_ngcontent-%COMP%] {\n padding: 1px 7px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.agent-header-mini-spacer[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.agent-header-mini-btn--primary[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-header-mini-btn--primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 50%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] img.agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.2;\n}\n\n.agent-name-input[_ngcontent-%COMP%] {\n font-size: 16px !important;\n font-weight: 500 !important;\n height: 30px !important;\n width: 100% !important;\n max-width: 350px !important;\n}\n\n.agent-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-badge.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n\n.status-badge.pending[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-text-primary);\n}\n\n.status-badge.disabled[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.execution-mode[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n opacity: 0.8;\n}\n\n.parent-agent.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.parent-agent.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\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.parent-agent.clickable[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n\n\n.prompt-controls[_ngcontent-%COMP%] {\n flex: 1;\n margin-right: 16px;\n}\n\n.agent-meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n\n.agent-description[_ngcontent-%COMP%] {\n margin-top: 16px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n\n\n.agent-actions[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n gap: 8px;\n flex-shrink: 0;\n align-items: center;\n}\n\n.action-buttons-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.action-button[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);\n}\n\n.action-button.primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-button.primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n}\n\n.action-button.secondary[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.action-button.secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-text-secondary);\n}\n\n.action-warnings[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 13px;\n color: var(--mj-status-error);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.form-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n padding: 8px 12px;\n}\n\n\n\n .k-panelbar {\n border: none;\n background: transparent;\n}\n\n .k-panelbar > .k-panelbar-item {\n border: none;\n border-radius: 10px;\n margin-bottom: 8px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header {\n background: var(--mj-bg-surface);\n border: none;\n padding: 10px 16px;\n border-radius: 12px 12px 0 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: 14px;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header:hover {\n background: var(--mj-bg-surface-card);\n}\n\n .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 12px 12px 0 0;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle {\n position: absolute;\n right: 24px;\n color: inherit;\n font-size: 14px;\n transition: transform 0.2s ease;\n}\n\n .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header .k-panelbar-toggle {\n transform: rotate(180deg);\n}\n\n .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle::before {\n content: '\\f107';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n}\n\n .k-panelbar > .k-panelbar-item > .k-content {\n padding: 0;\n border: none;\n background: var(--mj-bg-surface);\n border-radius: 0 0 12px 12px;\n}\n\n .k-panelbar .k-header .k-panelbar-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n margin-right: 8px;\n}\n\n .k-panelbar .k-panelbar-expanded .k-header .k-panelbar-icon {\n color: var(--mj-text-inverse);\n}\n\n\n\n.panel-content[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface);\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n border: 1px solid var(--mj-border-default);\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid var(--mj-bg-surface-sunken);\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: var(--mj-text-primary);\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 20px;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n\n\n.form-fields-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.sub-grid-container[_ngcontent-%COMP%] {\n height: 500px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n display: none; \n\n}\n\n\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 36px;\n color: var(--mj-brand-primary);\n margin-bottom: 16px;\n display: block;\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-disabled);\n}\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-border-default);\n margin-bottom: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 600;\n margin-bottom: 8px;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto;\n}\n\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border: 4px solid var(--mj-bg-surface-sunken);\n border-top: 4px solid var(--mj-brand-primary);\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n\n.quick-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.quick-action-card[_ngcontent-%COMP%] {\n flex: 1;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--mj-brand-primary);\n margin-bottom: 8px;\n}\n\n.quick-action-title[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.quick-action-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n\n\n.entity-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-1px);\n}\n\n.item-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n\n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 18px;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n\n.item-icon[_ngcontent-%COMP%] img.sub-agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.item-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag[_ngcontent-%COMP%], \n.priority-tag[_ngcontent-%COMP%], \n.status-tag[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.priority-tag[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-tag.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-tag.inactive[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.item-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: var(--mj-text-muted);\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.view-more-item[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-more-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n\n\n.pagination-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: center;\n padding: 16px;\n margin-top: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n}\n\n.page-nav-btn[_ngcontent-%COMP%] {\n min-width: 120px;\n font-weight: 500;\n}\n\n.page-nav-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.page-nav-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.page-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 0 16px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n min-width: 200px;\n text-align: center;\n}\n\n.page-info[_ngcontent-%COMP%] .record-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: normal;\n}\n\n.page-info[_ngcontent-%COMP%] .fa-spinner[_ngcontent-%COMP%] {\n margin-right: 8px;\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n white-space: nowrap;\n margin-left: auto;\n}\n\n.view-all-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 4px;\n}\n\n\n\n.payload-config-section[_ngcontent-%COMP%], \n.payload-paths-section[_ngcontent-%COMP%], \n.payload-validation-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n}\n\n.subsection-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.subsection-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.subsection-divider[_ngcontent-%COMP%] {\n margin-top: 32px;\n margin-bottom: 16px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.payload-config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.payload-field-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.payload-field-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.payload-field-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 16px;\n}\n\n.field-description[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: normal;\n color: var(--mj-text-muted);\n margin-left: auto;\n}\n\n\n\n.payload-field-group[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.payload-field-group[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n\n\n.payload-field-group[_ngcontent-%COMP%] mj-form-field[_ngcontent-%COMP%] textarea {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.5;\n min-height: 120px;\n resize: vertical;\n}\n\n\n\n.execution-history-panel[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n\n.timeline-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n\n.cards-container[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\n border-color: var(--mj-brand-primary);\n}\n\n.entity-card[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover::before {\n opacity: 1;\n}\n\n.card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-text-muted);\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n\n.card-title-section[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 4px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.inactive[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n}\n\n.card-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: var(--mj-text-muted);\n}\n\n.entity-card[_ngcontent-%COMP%]:hover .card-actions[_ngcontent-%COMP%] {\n opacity: 1;\n color: var(--mj-brand-primary);\n}\n\n\n\n.priority-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n\n\n.view-all-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n}\n\n.view-all-content[_ngcontent-%COMP%] {\n text-align: center;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-all-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n\n\n.timeline-container[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.timeline-item.expanded[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%] {\n cursor: pointer;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-item[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.timeline-item[_ngcontent-%COMP%]:last-child .timeline-marker[_ngcontent-%COMP%]::after {\n display: none;\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: var(--mj-text-muted);\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n}\n\n.timeline-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-size: 13px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n\n\n\n.timeline-expanded-content[_ngcontent-%COMP%] {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.result-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.result-content[_ngcontent-%COMP%], \n.error-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-text-secondary);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n\n\n.result-section[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.execution-details[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n word-break: break-all;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n padding: 8px 16px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.btn-primary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 2px dashed var(--mj-border-default);\n margin-top: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-border-default);\n margin-bottom: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 600;\n margin-bottom: 8px;\n font-size: 18px;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto 20px auto;\n}\n\n\n\n@media (max-width: 768px) {\n \n\n .agent-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .agent-header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .agent-overview[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .agent-meta[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .agent-actions[_ngcontent-%COMP%] {\n width: 100%;\n align-self: stretch;\n }\n\n .action-button[_ngcontent-%COMP%] {\n flex: 1;\n justify-content: center;\n }\n\n \n\n .form-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .k-panelbar > .k-panelbar-item > .k-header {\n padding: 16px 20px;\n font-size: 15px;\n }\n\n .panel-content[_ngcontent-%COMP%] {\n padding: 20px 16px;\n }\n\n .section-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .header-actions[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n align-self: stretch;\n }\n\n \n\n .entity-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n\n .item-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n }\n\n .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .item-title[_ngcontent-%COMP%] {\n font-size: 15px;\n }\n\n .item-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .item-meta[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n \n\n .timeline-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n\n .timeline-marker[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n }\n\n .timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .timeline-title[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .timeline-date[_ngcontent-%COMP%] {\n align-self: flex-start;\n }\n\n \n\n .form-fields-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n \n\n .cards-container[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n\n.execution-history-panel[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 4px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n\n\n.execution-search-bar[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n padding: 0 4px;\n}\n\n.execution-search-bar[_ngcontent-%COMP%] .fa-search[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n font-size: 14px;\n}\n\n\n\n.execution-history-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 8px;\n}\n\n.execution-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.2s ease;\n cursor: pointer;\n}\n\n.execution-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n transform: translateY(-1px);\n}\n\n.execution-card.expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 6px 20px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.execution-header[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.execution-left-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.execution-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.status-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.execution-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.execution-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.execution-metrics[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex-wrap: wrap;\n margin-left: 44px; \n\n}\n\n.metric-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-card);\n padding: 6px 10px;\n border-radius: 6px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.metric-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.execution-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: none;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n}\n\n.action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n transition: transform 0.2s ease;\n color: var(--mj-text-muted);\n margin-right: 4px;\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n\n\n.execution-expanded-content[_ngcontent-%COMP%] {\n padding: 16px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n background: var(--mj-bg-surface-card);\n animation: _ngcontent-%COMP%_slideDown 0.2s ease;\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n to {\n opacity: 1;\n max-height: 500px;\n padding-top: 16px;\n padding-bottom: 16px;\n }\n}\n\n.detailed-metrics[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.metrics-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.metric-detail[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n}\n\n.metric-detail[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 16px;\n width: 20px;\n text-align: center;\n}\n\n.metric-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n}\n\n.metric-title[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-data[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.result-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.result-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.error-content[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, 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 padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-status-error);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 150px;\n overflow-y: auto;\n}\n\n\n\n@media (max-width: 768px) {\n .execution-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .execution-left-section[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .execution-metrics[_ngcontent-%COMP%] {\n margin-left: 0; \n\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n }\n\n .metric-item[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 4px 8px;\n }\n\n .metrics-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n\n.payload-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.payload-section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.payload-section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n\n\n.payload-field-container[_ngcontent-%COMP%] {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-field-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.payload-field-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.5;\n margin: 0;\n}\n\n.payload-field-input[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-example[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.payload-field-example[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 0.9rem;\n}\n\n.payload-field-example[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.2rem 0.4rem;\n border-radius: 4px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n}\n\n\n\n.payload-paths-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.payload-path-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.payload-path-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.payload-path-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.payload-path-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.payload-path-icon.downstream[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.payload-path-icon.upstream[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-read[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-write[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.payload-path-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.payload-path-info[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.payload-path-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-content[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n.json-editor-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 0.75rem;\n}\n\n.json-editor-container[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.payload-path-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.payload-path-hint[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n\n.payload-validation-container[_ngcontent-%COMP%] {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-validation-settings[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.validation-field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.validation-field-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.validation-field-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0 0 0.5rem 0;\n}\n\n.payload-validation-schema[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.validation-schema-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.validation-schema-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.validation-schema-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.validation-schema-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.validation-schema-editor[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n\n\n.config-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.config-section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.config-section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n.config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n width: 100%;\n}\n\n.config-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.config-card.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.config-card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.config-card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.config-card-info[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.config-card-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.config-card-content[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n\n\n.config-field-input[_ngcontent-%COMP%] {\n width: 100%;\n min-width: 250px;\n}\n\n.config-card-content[_ngcontent-%COMP%] mj-form-field {\n width: 100% !important;\n}\n\n.config-field-display[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n padding: 8px 0;\n display: block;\n min-height: 20px;\n}\n\n\n\n.prompt-selector-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n.prompt-display[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n}\n\n.prompt-name[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n font-size: 14px;\n}\n\n.no-prompt[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n font-size: 14px;\n}\n\n.prompt-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.prompt-select-btn[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.prompt-clear-btn[_ngcontent-%COMP%] {\n min-width: 32px;\n}\n\n.config-card-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-top: 0.5rem;\n}\n\n.config-card-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.config-card-hint[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n\n\n@media (max-width: 768px) {\n .payload-field-container[_ngcontent-%COMP%], \n .payload-validation-container[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n\n .payload-paths-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .config-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .payload-section-title[_ngcontent-%COMP%], \n .config-section-title[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .payload-path-header[_ngcontent-%COMP%], \n .config-card-header[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n\n .payload-path-content[_ngcontent-%COMP%], \n .config-card-content[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n\n .payload-field-container[_ngcontent-%COMP%], \n .payload-validation-container[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n}\n\n\n\n\n\n\n\n\n.sub-agent-filter-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.filter-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n\n\n.sub-agent-type-badge[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n display: flex;\n align-items: center;\n gap: 4px;\n z-index: 1;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n\n\n.sub-agent-item[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 8px;\n transition: all 0.2s ease;\n}\n\n.sub-agent-item.child-sub-agent[_ngcontent-%COMP%] {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item.related-sub-agent[_ngcontent-%COMP%] {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n\n\n.payload-info[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n font-family: 'Roboto Mono', monospace;\n font-size: 11px;\n}\n\n\n\n.empty-state-info[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n margin: 24px 0;\n max-width: 600px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.info-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n text-align: left;\n}\n\n.info-card[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.info-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 4px;\n font-size: 14px;\n}\n\n.info-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n justify-content: center;\n margin-top: 16px;\n}\n\n\n\n@media (max-width: 768px) {\n .sub-agent-filter-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls[_ngcontent-%COMP%], \n .header-actions[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: center;\n }\n\n .empty-state-info[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}"] }); }
|
|
4547
4504
|
};
|
|
4548
4505
|
MJAIAgentFormComponentExtended = MJAIAgentFormComponentExtended_1 = __decorate([
|
|
4549
4506
|
RegisterClass(BaseFormComponent, 'MJ: AI Agents')
|
|
@@ -4551,7 +4508,7 @@ MJAIAgentFormComponentExtended = MJAIAgentFormComponentExtended_1 = __decorate([
|
|
|
4551
4508
|
export { MJAIAgentFormComponentExtended };
|
|
4552
4509
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJAIAgentFormComponentExtended, [{
|
|
4553
4510
|
type: Component,
|
|
4554
|
-
args: [{ standalone: false, selector: 'mj-ai-agent-form', template: "<div class=\"record-form-container\">\n <!-- Dialog container for Kendo dialogs -->\n <div kendoDialogContainer></div>\n <!-- Window container for Kendo windows -->\n <div kendoWindowContainer></div>\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\">\n <mj-form-toolbar [Form]=\"this\"></mj-form-toolbar>\n <!-- Agent Header \u2014 expanded view -->\n @if (!HeaderCollapsed) {\n <div class=\"agent-header\">\n <div class=\"agent-header-content\">\n <button class=\"agent-header-toggle\" (click)=\"ToggleHeaderCollapsed()\"\n title=\"Minimize header\">\n <i class=\"fa-solid fa-chevron-up\"></i>\n </button>\n <div class=\"agent-overview\">\n <div class=\"agent-icon-wrapper\">\n @if (hasLogoURL()) {\n <img [src]=\"record.LogoURL\" [alt]=\"record.Name + ' logo'\" class=\"agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon()\"></i>\n }\n </div>\n <div class=\"agent-info\">\n @if (EditMode) {\n <kendo-textbox [(ngModel)]=\"record.Name\"\n name=\"agentName\"\n placeholder=\"Enter agent name...\"\n class=\"agent-name-input\">\n </kendo-textbox>\n } @else {\n <h1 class=\"agent-name\">{{ record.Name || 'Untitled AI Agent' }}</h1>\n }\n <div class=\"agent-meta\">\n @if (record.Status) {\n <span class=\"status-badge\" [style.background-color]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid fa-circle\"></i>\n {{ record.Status }}\n </span>\n }\n @if (record.Type) {\n <span class=\"execution-mode\">\n Agent Type: {{ record.Type }}\n </span>\n }\n @if (record.Parent) {\n <span class=\"parent-agent clickable\"\n (click)=\"navigateToParentAgent()\"\n title=\"Open parent agent: {{ record.Parent }}\">\n <i class=\"fa-solid fa-sitemap\"></i>\n Child of {{ record.Parent }}\n <i class=\"fa-solid fa-external-link\" style=\"margin-left: 4px; font-size: 10px;\"></i>\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"agent-actions\">\n @if (record.ID) {\n <button kendoButton themeColor=\"primary\" size=\"large\"\n (click)=\"openTestHarness()\"\n [disabled]=\"record.Status !== 'Active'\"\n title=\"Run this AI agent\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n <button kendoButton size=\"large\"\n (click)=\"openPermissionsDialog()\"\n [title]=\"IsOpenToEveryone ? 'Open to everyone \u2014 click to manage permissions' : 'Restricted \u2014 click to manage permissions'\">\n <i class=\"fa-solid\" [class.fa-lock-open]=\"IsOpenToEveryone\" [class.fa-lock]=\"!IsOpenToEveryone\"\n [style.color]=\"IsOpenToEveryone ? 'var(--mj-status-success)' : null\"></i>\n {{ IsOpenToEveryone ? 'Open' : 'Restricted' }}\n </button>\n }\n <button kendoButton fillMode=\"outline\" size=\"small\" (click)=\"refreshRelatedData()\" title=\"Refresh all data\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n <!-- Agent Header \u2014 minimized floating bar -->\n @if (HeaderCollapsed) {\n <div class=\"agent-header-mini\">\n <button class=\"agent-header-mini-expand\" (click)=\"ToggleHeaderCollapsed()\"\n title=\"Expand header\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n </button>\n <span class=\"agent-header-mini-name\">{{ record.Name || 'Untitled AI Agent' }}</span>\n @if (record.Status) {\n <span class=\"agent-header-mini-status\" [style.background-color]=\"getStatusBadgeColor()\">\n {{ record.Status }}\n </span>\n }\n <div class=\"agent-header-mini-spacer\"></div>\n @if (record.ID) {\n <button class=\"agent-header-mini-btn agent-header-mini-btn--primary\"\n (click)=\"openTestHarness()\"\n [disabled]=\"record.Status !== 'Active'\"\n title=\"Run agent\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n <button class=\"agent-header-mini-btn\"\n (click)=\"openPermissionsDialog()\"\n [title]=\"IsOpenToEveryone ? 'Open to everyone' : 'Restricted'\">\n <i class=\"fa-solid\" [class.fa-lock-open]=\"IsOpenToEveryone\" [class.fa-lock]=\"!IsOpenToEveryone\"\n [style.color]=\"IsOpenToEveryone ? 'var(--mj-status-success)' : null\"></i>\n </button>\n }\n <button class=\"agent-header-mini-btn\"\n (click)=\"refreshRelatedData()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n }\n <!-- Single Pane Layout with Expander Panels -->\n <div class=\"form-content\">\n <kendo-panelbar [keepItemContent]=\"true\" (stateChange)=\"OnPanelBarStateChange($event)\">\n <!-- Custom Agent Type Section (if defined) -->\n @if (record.ID && agentType && agentType.UIFormSectionKey) {\n <kendo-panelbar-item id=\"custom\"\n [expanded]=\"GetSectionExpanded('custom', agentType.UIFormSectionExpandedByDefault)\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-puzzle-piece\"></i> {{ agentType.Name }} Configuration\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content custom-agent-type-section\" [style.display]=\"'block'\">\n @if (loadingStates.customSection) {\n <mj-loading text=\"Loading {{ agentType.Name }} configuration...\" size=\"medium\"></mj-loading>\n }\n <ng-container #customSectionContainer></ng-container>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n <!-- Requests & History -->\n @if (record.ID) {\n <kendo-panelbar-item id=\"history\" [expanded]=\"GetSectionExpanded('history', false)\" [disabled]=\"loadingStates.executionHistory\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-history\"></i> Execution History\n @if (loadingStates.executionHistory) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (executionHistoryCount > 0) {\n <span> ({{ executionHistoryCount }})@if(executionHistoryCount < totalExecutionHistoryCount){ of {{ totalExecutionHistoryCount }} }</span>\n }\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content execution-history-panel\">\n @if (executionHistoryCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-history\"></i>\n <h4>No Execution History</h4>\n <p>This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.</p>\n </div>\n } @else {\n <!-- Search Bar -->\n <div class=\"execution-search-bar\">\n <kendo-textbox\n [(ngModel)]=\"executionSearchText\"\n (ngModelChange)=\"onExecutionSearchChange()\"\n [ngModelOptions]=\"{standalone: true}\"\n placeholder=\"Search by Run ID...\"\n [clearButton]=\"true\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fa-solid fa-search\"></i>\n </ng-template>\n </kendo-textbox>\n </div>\n <div class=\"execution-history-list\">\n @if (filteredExecutions.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-search\"></i>\n <h4>No Matching Results</h4>\n <p>No execution history found matching \"{{ executionSearchText }}\"</p>\n </div>\n }\n @for (execution of filteredExecutions; track execution.ID) {\n <div class=\"execution-card\" [class.expanded]=\"expandedExecutions[execution.ID]\">\n <div class=\"execution-header\" (click)=\"toggleExecutionExpanded(execution.ID)\">\n <div class=\"execution-left-section\">\n <div class=\"execution-status\">\n <div class=\"status-indicator\" [style.background-color]=\"getExecutionStatusColor(execution.Status)\">\n <i [class]=\"getExecutionStatusIcon(execution.Status)\"></i>\n </div>\n <div class=\"execution-info\">\n <div class=\"execution-title\">\n <i class=\"fa-solid fa-chevron-right expand-icon\" [class.expanded]=\"expandedExecutions[execution.ID]\"></i>\n Execution #{{ execution.ID.substring(0, 8) }}\n </div>\n <div class=\"execution-date\">{{ execution.__mj_CreatedAt | date:'MMM d, h:mm a' }}</div>\n </div>\n </div>\n <div class=\"execution-metrics\">\n @if (execution.Configuration) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-cog\"></i>\n <span class=\"metric-label\">Config:</span>\n <span class=\"metric-value\">{{ execution.Configuration }}</span>\n </div>\n }\n @if (execution.CompletedAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span class=\"metric-label\">Duration:</span>\n <span class=\"metric-value\">{{ formatExecutionTimeFromDates(execution.StartedAt, execution.CompletedAt) }}</span>\n </div>\n } @else if (execution.Status === 'Running') {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <span class=\"metric-label\">Running:</span>\n <!-- <span class=\"metric-value\">{{ execution.StartedAt | runningTime }}</span> -->\n </div>\n }\n @if (execution.TotalTokensUsedRollup || execution.TotalTokensUsed) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-microchip\"></i>\n <span class=\"metric-label\">Tokens:</span>\n <span class=\"metric-value\">{{ formatTokenCount(execution.TotalTokensUsedRollup || execution.TotalTokensUsed) }}</span>\n </div>\n }\n @if (execution.TotalCostRollup || execution.TotalCost) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <span class=\"metric-label\">Cost:</span>\n <span class=\"metric-value\">${{ formatCost(execution.TotalCostRollup || execution.TotalCost) }}</span>\n </div>\n }\n </div>\n </div>\n <div class=\"execution-actions\">\n <button class=\"action-btn\" (click)=\"openExecutionRecord(execution.ID); $event.stopPropagation()\" title=\"View details\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n </div>\n </div>\n @if (expandedExecutions[execution.ID]) {\n <div class=\"execution-expanded-content\">\n <!-- Detailed Metrics -->\n <div class=\"detailed-metrics\">\n <div class=\"metrics-grid\">\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Started</span>\n <span class=\"metric-data\">{{ execution.StartedAt | date:'medium' }}</span>\n </div>\n </div>\n @if (execution.CompletedAt) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Completed</span>\n <span class=\"metric-data\">{{ execution.CompletedAt | date:'medium' }}</span>\n </div>\n </div>\n }\n @if (execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-microchip\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Tokens</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsed) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalTokensUsedRollup && execution.TotalTokensUsedRollup !== execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-sitemap\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsedRollup) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Cost</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCost) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalCostRollup && execution.TotalCostRollup !== execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-calculator\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCostRollup) }}</span>\n </div>\n </div>\n }\n @if (execution.ConversationID) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-comments\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Conversation</span>\n <span class=\"metric-data\">{{ execution.ConversationID.substring(0, 8) }}...</span>\n </div>\n </div>\n }\n </div>\n </div>\n @if (execution.Result) {\n <div class=\"result-section\">\n <h5><i class=\"fa-solid fa-file-text\"></i> Result</h5>\n <mj-code-editor\n [value]=\"getExecutionResultPreview(execution, false)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"max-height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n @if (execution.ErrorMessage) {\n <div class=\"error-section\">\n <h5><i class=\"fa-solid fa-exclamation-triangle\"></i> Error</h5>\n <div class=\"error-content\">{{ execution.ErrorMessage }}</div>\n </div>\n }\n </div>\n }\n </div>\n }\n <!-- Pagination Controls -->\n @if (totalPages > 1) {\n <div class=\"pagination-controls\">\n <button kendoButton\n fillMode=\"outline\"\n size=\"medium\"\n (click)=\"goToPreviousPage()\"\n [disabled]=\"!hasPreviousPage || isLoadingPage\"\n class=\"page-nav-btn\">\n <i class=\"fa-solid fa-chevron-left\"></i>\n Previous\n </button>\n <div class=\"page-info\">\n @if (isLoadingPage) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Loading...\n } @else {\n Page {{ executionHistoryCurrentPage }} of {{ totalPages }}\n <span class=\"record-count\">({{ totalExecutionHistoryCount }} total)</span>\n }\n </div>\n <button kendoButton\n fillMode=\"outline\"\n size=\"medium\"\n (click)=\"goToNextPage()\"\n [disabled]=\"!hasNextPage || isLoadingPage\"\n class=\"page-nav-btn\">\n Next\n <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"navigateToEntity('MJ: AI Agent Runs', '')\"\n class=\"view-all-btn\">\n <i class=\"fa-solid fa-external-link\"></i>\n View All in Grid\n </button>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n <!-- Actions -->\n @if (record.ID) {\n <kendo-panelbar-item id=\"actions\" [expanded]=\"GetSectionExpanded('actions', false)\" [disabled]=\"loadingStates.actions\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-bolt\"></i> Actions\n @if (loadingStates.actions) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (actionCount > 0) {\n <span> ({{ actionCount }})</span>\n }\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n @if (loadingStates.actions) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <p>Loading actions...</p>\n </div>\n } @else {\n <div class=\"section-header\">\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateActions) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"configureActions()\">\n <i class=\"fa-solid fa-plus\"></i> Add Action\n </button>\n }\n </div>\n </div>\n @if (actionCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-bolt\"></i>\n <h4>No Actions Configured</h4>\n <p>Add actions to enable this agent to perform specific tasks and operations.</p>\n @if (EditMode && UserCanCreateActions) {\n <button kendoButton themeColor=\"primary\" (click)=\"configureActions()\">\n <i class=\"fa-solid fa-plus\"></i> Configure First Action\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (action of agentActions; track action.ID) {\n <div class=\"entity-item action-item\" (click)=\"navigateToEntity('MJ: Actions', action.ID)\">\n <div class=\"item-icon\">\n <i [class]=\"getActionIcon(action)\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ action.Name || 'Untitled Action' }}</div>\n @if (action.Description) {\n <div class=\"item-preview\">{{ action.Description }}</div>\n }\n <div class=\"item-meta\">\n @if (action.Type) {\n <span class=\"meta-tag\">{{ action.Type }}</span>\n }\n <span class=\"status-tag\" [class.active]=\"action.Status==='Active'\" [class.inactive]=\"action.Status!=='Active'\">\n <i class=\"fa-solid\" [class.fa-check-circle]=\"action.Status==='Active'\" [class.fa-times-circle]=\"action.Status!=='Active'\"></i>\n {{ action.Status }}\n </span>\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode && UserCanDeleteActions) {\n <button kendoButton\n fillMode=\"flat\"\n themeColor=\"error\"\n size=\"small\"\n (click)=\"removeAction(action, $event)\"\n title=\"Remove action\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (actionCount > agentActions.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Actions', '')\">\n <span>View all {{ actionCount }} actions...</span>\n </div>\n }\n </div>\n }\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n <!-- Sub-Agents (Unified View with Filter) -->\n @if (record.ID) {\n <kendo-panelbar-item id=\"subagents\" [expanded]=\"GetSectionExpanded('subagents', false)\" [disabled]=\"loadingStates.subAgents\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-sitemap\"></i> Sub-Agents\n @if (loadingStates.subAgents) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (totalSubAgentCount > 0) {\n <span> ({{ totalSubAgentCount }})</span>\n }\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <!-- Filter Controls -->\n <div class=\"section-header sub-agent-filter-header\">\n <div class=\"filter-controls\">\n <kendo-buttongroup selection=\"single\">\n <button kendoButton\n [toggleable]=\"true\"\n [selected]=\"subAgentFilter === 'all'\"\n (click)=\"setSubAgentFilter('all')\"\n size=\"small\">\n <i class=\"fa-solid fa-layer-group\"></i>\n All ({{ totalSubAgentCount }})\n </button>\n <button kendoButton\n [toggleable]=\"true\"\n [selected]=\"subAgentFilter === 'child'\"\n (click)=\"setSubAgentFilter('child')\"\n size=\"small\">\n <i class=\"fa-solid fa-link\"></i>\n Child ({{ childSubAgentCount }})\n </button>\n <button kendoButton\n [toggleable]=\"true\"\n [selected]=\"subAgentFilter === 'related'\"\n (click)=\"setSubAgentFilter('related')\"\n size=\"small\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n Related ({{ relatedSubAgentCount }})\n </button>\n </kendo-buttongroup>\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateSubAgents) {\n <button kendoButton\n themeColor=\"primary\"\n size=\"small\"\n (click)=\"createChildSubAgent()\"\n title=\"Create a new child sub-agent that shares this agent's payload\">\n <i class=\"fa-solid fa-link\"></i>\n Create Child\n </button>\n <button kendoButton\n themeColor=\"secondary\"\n size=\"small\"\n (click)=\"linkRelatedSubAgent()\"\n title=\"Link an existing agent as a related sub-agent with payload mapping\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n Link Related\n </button>\n }\n </div>\n </div>\n <!-- Empty State -->\n @if (totalSubAgentCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sitemap\"></i>\n <h4>No Sub-Agents</h4>\n <p>Sub-agents help build complex workflows through hierarchical orchestration.</p>\n <div class=\"empty-state-info\">\n <div class=\"info-card\">\n <i class=\"fa-solid fa-link\" style=\"color: var(--mj-status-info);\"></i>\n <strong>Child Sub-Agents</strong>\n <p>Share payload structure, dedicated to parent</p>\n </div>\n <div class=\"info-card\">\n <i class=\"fa-solid fa-share-nodes\" style=\"color: var(--mj-brand-primary);\"></i>\n <strong>Related Sub-Agents</strong>\n <p>Reusable agents with payload mapping</p>\n </div>\n </div>\n </div>\n } @else {\n <!-- Unified Sub-Agent List -->\n <div class=\"entity-list\">\n @for (item of filteredSubAgents; track item.agent.ID) {\n <div class=\"entity-item sub-agent-item\"\n [class.child-sub-agent]=\"item.type === 'child'\"\n [class.related-sub-agent]=\"item.type === 'related'\"\n (click)=\"navigateToEntity('MJ: AI Agents', item.agent.ID)\">\n <!-- Type Badge -->\n <div class=\"sub-agent-type-badge\"\n [style.background-color]=\"getSubAgentBadgeColor(item)\">\n <i [class]=\"getSubAgentBadgeIcon(item)\"></i>\n {{ getSubAgentBadgeText(item) }}\n </div>\n <!-- Agent Icon -->\n <div class=\"item-icon\">\n @if (hasSubAgentLogoURL(item.agent)) {\n <img [src]=\"item.agent.LogoURL\"\n [alt]=\"item.agent.Name + ' logo'\"\n class=\"sub-agent-logo\">\n } @else {\n <i [class]=\"getSubAgentIcon(item.agent)\"></i>\n }\n </div>\n <!-- Agent Content -->\n <div class=\"item-content\">\n <div class=\"item-title\">{{ item.agent.Name || 'Untitled Sub-Agent' }}</div>\n @if (item.agent.Description) {\n <div class=\"item-preview\">{{ item.agent.Description }}</div>\n }\n <div class=\"item-meta\">\n <!-- Payload Info -->\n <span class=\"meta-tag payload-info\">\n <i class=\"fa-solid fa-database\"></i>\n {{ getSubAgentPayloadInfo(item) }}\n </span>\n <!-- Status -->\n @if (item.agent.Status) {\n <span class=\"status-tag\"\n [style.background-color]=\"getStatusBadgeColor()\">\n {{ item.agent.Status }}\n </span>\n }\n <!-- Agent Type -->\n @if (item.agent.Type) {\n <span class=\"meta-tag\">{{ item.agent.Type }}</span>\n }\n </div>\n </div>\n <!-- Actions -->\n <div class=\"item-actions\">\n @if (EditMode) {\n <!-- Output Mapping Config (Related only) -->\n @if (item.type === 'related') {\n <button kendoButton\n fillMode=\"flat\"\n themeColor=\"primary\"\n size=\"small\"\n (click)=\"configureOutputMapping(item, $event)\"\n title=\"Configure output mapping\">\n <i class=\"fa-solid fa-exchange-alt\"></i>\n </button>\n }\n <!-- Advanced Settings (Child only) -->\n @if (item.type === 'child' && UserCanCreateSubAgents) {\n <button kendoButton\n fillMode=\"flat\"\n themeColor=\"primary\"\n size=\"small\"\n (click)=\"openSubAgentAdvancedSettings(item.agent, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n <!-- Remove/Unlink -->\n @if (UserCanDeleteSubAgents) {\n <button kendoButton\n fillMode=\"flat\"\n themeColor=\"error\"\n size=\"small\"\n (click)=\"item.type === 'child' ? removeChildSubAgent(item, $event) : unlinkRelatedSubAgent(item, $event)\"\n [title]=\"item.type === 'child' ? 'Delete child sub-agent' : 'Unlink related sub-agent'\">\n <i [class]=\"item.type === 'child' ? 'fa-solid fa-trash' : 'fa-solid fa-unlink'\"></i>\n </button>\n }\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n <!-- Prompts (With Model Selection) -->\n @if (record.ID) {\n <kendo-panelbar-item id=\"prompts\" [expanded]=\"GetSectionExpanded('prompts', false)\" [disabled]=\"loadingStates.prompts\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-comments\"></i> Prompts\n @if (loadingStates.prompts) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (promptCount > 0) {\n <span> ({{ promptCount }})</span>\n }\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"prompt-controls\">\n <!-- Model Selection Mode Control -->\n <div class=\"model-selection-mode\">\n <label class=\"model-selection-label\">\n <i class=\"fa-solid fa-sliders\"></i>\n Model Selection:\n </label>\n @if (EditMode) {\n <kendo-dropdownlist\n [(ngModel)]=\"record.ModelSelectionMode\"\n name=\"modelSelectionMode\"\n [data]=\"modelSelectionModes\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"model-selection-dropdown\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"model-selection-value\">{{ record.ModelSelectionMode || 'Agent Type' }}</span>\n }\n </div>\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateNewPrompts) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i> Add Prompt\n </button>\n }\n </div>\n </div>\n @if (promptCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comments\"></i>\n <h4>No Prompts Configured</h4>\n <p>Add prompts to define how this agent processes requests and generates responses.</p>\n @if (EditMode && UserCanCreateNewPrompts) {\n <button kendoButton themeColor=\"primary\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i> Create First Prompt\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (prompt of agentPrompts; track prompt.ID) {\n <div class=\"entity-item prompt-item\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ prompt.Name }}</div>\n @if (prompt.TemplateText) {\n <div class=\"item-preview\">{{ prompt.TemplateText.substring(0, 120) }}{{ prompt.TemplateText.length > 120 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (prompt.PromptRole) {\n <span class=\"meta-tag\">{{ prompt.PromptRole }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode && UserCanCreatePrompts) {\n <button kendoButton\n fillMode=\"flat\"\n themeColor=\"primary\"\n size=\"small\"\n (click)=\"openPromptAdvancedSettings(prompt, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n @if (EditMode && UserCanDeletePrompts) {\n <button kendoButton\n fillMode=\"flat\"\n themeColor=\"error\"\n size=\"small\"\n (click)=\"removePrompt(prompt, $event)\"\n title=\"Remove prompt\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (promptCount > agentPrompts.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Prompts', '')\">\n <span>View all {{ promptCount }} prompts...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n <!-- Learning & Analytics -->\n @if (record.ID) {\n <kendo-panelbar-item id=\"learning\" [expanded]=\"GetSectionExpanded('learning', false)\" [disabled]=\"loadingStates.learningCycles\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-brain\"></i> Learning Cycles{{ learningCycleCount > 0 ? ' (' + learningCycleCount + ')' : '' }}\n @if (loadingStates.learningCycles) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n }\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Monitor and manage learning cycles, training sessions, and performance analytics.\n </div>\n </div>\n @if (learningCycleCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-brain\"></i>\n <h4>No Learning Cycles</h4>\n <p>Learning cycles will appear here as the agent processes requests and improves over time.</p>\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (cycle of learningCycles; track cycle.ID) {\n <div class=\"entity-item learning-item\" (click)=\"navigateToEntity('MJ: AI Agent Learning Cycles', cycle.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-brain\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">Learning Cycle {{ cycle.ID.substring(0, 8) }}</div>\n <div class=\"item-meta\">\n @if (cycle.StartedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ cycle.StartedAt | date:'short' }}\n </span>\n }\n @if (cycle.Status) {\n <span class=\"status-tag\">{{ cycle.Status }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (learningCycleCount > learningCycles.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Learning Cycles', '')\">\n <span>View all {{ learningCycleCount }} cycles...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n <!-- Notes & Documentation -->\n @if (record.ID) {\n <kendo-panelbar-item id=\"notes\" [expanded]=\"GetSectionExpanded('notes', false)\" [disabled]=\"loadingStates.notes\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-sticky-note\"></i> Notes{{ noteCount > 0 ? ' (' + noteCount + ')' : '' }}\n @if (loadingStates.notes) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n }\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Manage notes, documentation, and annotations for this agent.\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateNotes) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"addNote()\">\n <i class=\"fa-solid fa-plus\"></i> Add Note\n </button>\n }\n </div>\n </div>\n @if (noteCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sticky-note\"></i>\n <h4>No Notes</h4>\n <p>Add notes to document important information, observations, or instructions for this agent.</p>\n @if (EditMode && UserCanCreateNotes) {\n <button kendoButton themeColor=\"primary\" (click)=\"addNote()\">\n <i class=\"fa-solid fa-plus\"></i> Create First Note\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (note of agentNotes; track note.ID) {\n <div class=\"entity-item note-item\" (click)=\"navigateToEntity('MJ: AI Agent Notes', note.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-sticky-note\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ note.Type || 'Note' }}</div>\n @if (note.Note) {\n <div class=\"item-preview\">{{ note.Note.substring(0, 100) }}{{ note.Note.length > 100 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (note.__mj_CreatedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ note.__mj_CreatedAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (noteCount > agentNotes.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Notes', '')\">\n <span>View all {{ noteCount }} notes...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n <!-- Payload -->\n <kendo-panelbar-item id=\"payload\" [expanded]=\"GetSectionExpanded('payload', false)\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-exchange-alt\"></i> Payload Management\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Configure how this agent handles data payloads, path routing, and validation between parent and child agents.\n </div>\n </div>\n <!-- Payload Scope Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-target\"></i>\n Payload Scope\n </h3>\n <div class=\"payload-field-container\">\n <div class=\"payload-field-info\">\n <label class=\"payload-field-label\">Payload Scope Path</label>\n <p class=\"payload-field-description\">\n Specify a path within the parent payload that this sub-agent should operate on.\n Leave empty to receive the entire payload.\n </p>\n </div>\n <div class=\"payload-field-input\">\n <mj-form-field\n FieldName=\"PayloadScope\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n <div class=\"payload-field-example\">\n <i class=\"fa-solid fa-lightbulb\"></i>\n <span>Example: <code>/customer/profile</code> or <code>/analysis/results</code></span>\n </div>\n </div>\n </div>\n </div>\n <!-- Path Configuration Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-route\"></i>\n Path Configuration\n </h3>\n <div class=\"payload-paths-grid\">\n <!-- Downstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon downstream\">\n <i class=\"fa-solid fa-arrow-down\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Downstream Paths</h4>\n <p>JSON array of paths to pass to sub-agents</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadDownstreamPaths || '["*"]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadDownstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to pass entire payload or specify paths like <code>[\"user.id\", \"order.*\"]</code>\n </div>\n </div>\n </div>\n <!-- Upstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon upstream\">\n <i class=\"fa-solid fa-arrow-up\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Upstream Paths</h4>\n <p>JSON array of paths sub-agents can write back</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadUpstreamPaths || '["*"]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadUpstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to allow all writes or limit to specific paths\n </div>\n </div>\n </div>\n <!-- Self Read Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-read\">\n <i class=\"fa-solid fa-eye\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Read Paths</h4>\n <p>JSON array of paths this agent can read</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadSelfReadPaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfReadPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can read from the payload\n </div>\n </div>\n </div>\n <!-- Self Write Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-write\">\n <i class=\"fa-solid fa-pen\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Write Paths</h4>\n <p>JSON array of paths this agent can write to</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadSelfWritePaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfWritePaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can write back to the payload\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Validation Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-shield-check\"></i>\n Final Payload Validation\n </h3>\n <div class=\"payload-validation-container\">\n <div class=\"payload-validation-settings\">\n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Validation Mode</label>\n <p class=\"validation-field-description\">How to handle validation failures</p>\n <mj-form-field\n FieldName=\"FinalPayloadValidationMode\"\n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Max Retries</label>\n <p class=\"validation-field-description\">Maximum validation retry attempts</p>\n <mj-form-field\n FieldName=\"FinalPayloadValidationMaxRetries\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"payload-validation-schema\">\n <label class=\"validation-schema-label\">\n <i class=\"fa-solid fa-code\"></i>\n Validation Schema\n </label>\n <p class=\"validation-schema-description\">\n JSON schema or validation rules for the final payload structure\n </p>\n <div class=\"validation-schema-editor\">\n <mj-code-editor\n [value]=\"record.FinalPayloadValidation || '{}'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\"\n (valueChange)=\"updatePayloadField('FinalPayloadValidation', $event)\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n <!-- Execution Guardrails (New Separate Panel) -->\n <kendo-panelbar-item id=\"guardrails\" [expanded]=\"GetSectionExpanded('guardrails', false)\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-shield-halved\"></i> Execution Guardrails\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Set limits to prevent runaway agent executions and control resource usage.\n </div>\n </div>\n <div class=\"form-fields-grid\">\n <mj-form-field\n FieldName=\"MaxCostPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Cost ($)\"\n Description=\"Maximum cost per run\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxTokensPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Tokens\"\n Description=\"Maximum tokens per run\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxIterationsPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Iterations\"\n Description=\"Maximum prompt iterations\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxTimePerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Time (seconds)\"\n Description=\"Maximum execution time\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n <!-- Configuration (Settings Panel) -->\n <kendo-panelbar-item id=\"config\" [expanded]=\"GetSectionExpanded('config', false)\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-cogs\"></i> Configuration\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Configure agent behavior, execution settings, and advanced features.\n </div>\n </div>\n <!-- Identity & Behavior Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-id-card\"></i>\n Identity & Behavior\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Status</h4>\n <p>Current availability and operational status</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <kendo-dropdownlist\n [(ngModel)]=\"record.Status\"\n [data]=\"statusOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n name=\"agentStatus\"\n class=\"config-field-input\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"config-field-display\">{{ record.Status || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sitemap\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Type</h4>\n <p>Category and system-level behavior</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <kendo-dropdownlist\n [(ngModel)]=\"record.TypeID\"\n [data]=\"agentTypes\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n name=\"agentTypeID\"\n class=\"config-field-input\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"config-field-display\">{{ record.Type || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Category</h4>\n <p>Organizational category for this agent</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <mj-tree-dropdown\n [BranchConfig]=\"CategoryBranchConfig\"\n [Value]=\"SelectedCategoryKey\"\n SelectionMode=\"single\"\n SelectableTypes=\"branch\"\n Placeholder=\"Select a category...\"\n [Clearable]=\"true\"\n [EnableSearch]=\"true\"\n (ValueChange)=\"OnCategoryChange($event)\">\n </mj-tree-dropdown>\n } @else {\n <span class=\"config-field-display\">{{ record.Category || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-bolt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Expose as Action</h4>\n <p>Make available as an action for other agents</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExposeAsAction\"\n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-align-left\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Description</h4>\n <p>Detailed agent description and purpose</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"Description\"\n Type=\"textarea\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n <!-- Execution Settings Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Settings\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-layer-group\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Mode</h4>\n <p>How sub-agents are executed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExecutionMode\"\n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sort-numeric-down\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Order</h4>\n <p>Order when run with siblings</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExecutionOrder\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-tachometer-alt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Default Effort Level</h4>\n <p>Default effort level for all prompts (1-100)</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"DefaultPromptEffortLevel\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Higher values request more thorough reasoning (1=minimal, 100=maximum)\n </div>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-code\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Driver Class</h4>\n <p>Custom implementation class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"DriverClass\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n <!-- Visual Identity Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-palette\"></i>\n Visual Identity\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-icons\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Icon Class</h4>\n <p>Font Awesome icon class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"IconClass\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Example: <code>fa-solid fa-robot</code>\n </div>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-image\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Logo URL</h4>\n <p>URL for agent logo image</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"LogoURL\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Takes precedence over Icon Class\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Context Compression Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-compress\"></i>\n Context Compression\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Enable Context Compression</h4>\n <p>Automatically compress conversation context when message threshold is reached</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"EnableContextCompression\"\n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n (valueChange)=\"onContextCompressionToggle($event)\">\n </mj-form-field>\n </div>\n </div>\n @if (record.EnableContextCompression) {\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-hashtag\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Message Threshold</h4>\n <p>Messages before compression triggers</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ContextCompressionMessageThreshold\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-save\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Messages to Keep</h4>\n <p>Recent messages to retain uncompressed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ContextCompressionMessageRetentionCount\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Compression Prompt</h4>\n <p>Prompt used for summarization</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <div class=\"prompt-selector-container\">\n <div class=\"prompt-display\">\n @if (selectedContextCompressionPrompt) {\n <span class=\"prompt-name\">{{ selectedContextCompressionPrompt.Name }}</span>\n } @else {\n <span class=\"no-prompt\">No prompt selected</span>\n }\n </div>\n <div class=\"prompt-actions\">\n <button type=\"button\"\n kendoButton\n fillMode=\"outline\"\n size=\"small\"\n (click)=\"openContextCompressionPromptSelector()\"\n class=\"prompt-select-btn\">\n <i class=\"fa-solid fa-search\"></i>\n {{ selectedContextCompressionPrompt ? 'Change' : 'Select' }} Prompt\n </button>\n @if (selectedContextCompressionPrompt) {\n <button type=\"button\"\n kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"clearContextCompressionPrompt()\"\n class=\"prompt-clear-btn\"\n title=\"Clear selection\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n </div>\n } @else {\n <span class=\"config-field-display\">{{ selectedContextCompressionPrompt?.Name || record.ContextCompressionPrompt || 'Not Set' }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n </kendo-panelbar>\n </div>\n </form>\n }\n\n <!-- Permissions Dialog (from @memberjunction/ng-agents) -->\n @if (ShowPermissionsDialog) {\n <mj-agent-permissions-dialog\n [Agent]=\"record\"\n (Closed)=\"onPermissionsDialogClosed()\"\n (PermissionsChanged)=\"refreshRelatedData()\">\n </mj-agent-permissions-dialog>\n }\n</div>", styles: ["/* AI Agent Form - Modern Redesign */\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n\n.record-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* Agent Header Section - Compact Design */\n.agent-header {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 8px 16px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n transition: padding 0.2s ease;\n}\n\n.agent-header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n/* Header collapse toggle button */\n.agent-header-toggle {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n padding: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-toggle:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-toggle i {\n font-size: 10px;\n}\n\n.agent-overview {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper {\n width: 36px;\n height: 36px;\n background: var(--mj-brand-primary);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n flex-shrink: 0;\n transition: all 0.2s ease;\n}\n\n.agent-icon-wrapper i {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n/* \u2500\u2500 Minimized Floating Header Bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.agent-header-mini {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n height: 32px;\n}\n\n.agent-header-mini-expand {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-expand:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-expand i {\n font-size: 9px;\n}\n\n.agent-header-mini-name {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.agent-header-mini-status {\n padding: 1px 7px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.agent-header-mini-spacer {\n flex: 1;\n}\n\n.agent-header-mini-btn {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-btn:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-btn:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.agent-header-mini-btn--primary {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-header-mini-btn--primary:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 50%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.agent-header-mini-btn i {\n font-size: 11px;\n}\n\n.agent-icon-wrapper img.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.2;\n}\n\n.agent-name-input {\n font-size: 16px !important;\n font-weight: 500 !important;\n height: 30px !important;\n width: 100% !important;\n max-width: 350px !important;\n}\n\n.agent-meta {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-badge.active {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n\n.status-badge.pending {\n background: var(--mj-status-warning);\n color: var(--mj-text-primary);\n}\n\n.status-badge.disabled {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.execution-mode,\n.parent-agent {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode i,\n.parent-agent i {\n font-size: 12px;\n opacity: 0.8;\n}\n\n.parent-agent.clickable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.parent-agent.clickable:hover {\n background: var(--mj-border-default);\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.parent-agent.clickable:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n/* Prompt Controls Section */\n.prompt-controls {\n flex: 1;\n margin-right: 16px;\n}\n\n.agent-meta-info {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value {\n font-size: 14px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n\n.agent-description {\n margin-top: 16px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n/* Action Buttons Section */\n.agent-actions {\n display: flex;\n flex-direction: row;\n gap: 8px;\n flex-shrink: 0;\n align-items: center;\n}\n\n.action-buttons-row {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.action-button:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);\n}\n\n.action-button.primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-button.primary:hover {\n background: var(--mj-brand-primary-hover);\n}\n\n.action-button.secondary {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.action-button.secondary:hover {\n background: var(--mj-text-secondary);\n}\n\n.action-warnings {\n margin-top: 8px;\n font-size: 13px;\n color: var(--mj-status-error);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Panel-Based Form Content */\n.form-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n padding: 8px 12px;\n}\n\n/* Kendo PanelBar Styling */\n::ng-deep .k-panelbar {\n border: none;\n background: transparent;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item {\n border: none;\n border-radius: 10px;\n margin-bottom: 8px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header {\n background: var(--mj-bg-surface);\n border: none;\n padding: 10px 16px;\n border-radius: 12px 12px 0 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: 14px;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header:hover {\n background: var(--mj-bg-surface-card);\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 12px 12px 0 0;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle {\n position: absolute;\n right: 24px;\n color: inherit;\n font-size: 14px;\n transition: transform 0.2s ease;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header .k-panelbar-toggle {\n transform: rotate(180deg);\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle::before {\n content: '\\f107';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-content {\n padding: 0;\n border: none;\n background: var(--mj-bg-surface);\n border-radius: 0 0 12px 12px;\n}\n\n::ng-deep .k-panelbar .k-header .k-panelbar-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n margin-right: 8px;\n}\n\n::ng-deep .k-panelbar .k-panelbar-expanded .k-header .k-panelbar-icon {\n color: var(--mj-text-inverse);\n}\n\n/* Panel Content */\n.panel-content {\n padding: 16px;\n background: var(--mj-bg-surface);\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n border: 1px solid var(--mj-border-default);\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid var(--mj-bg-surface-sunken);\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: var(--mj-text-primary);\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title i {\n color: var(--mj-brand-primary);\n font-size: 20px;\n}\n\n.section-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n/* Form Fields Grid */\n.form-fields-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Sub-grids styling (legacy) */\n.sub-grid-container {\n height: 500px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n display: none; /* Hidden as we now use cards */\n}\n\n/* Empty States */\n/* Loading State */\n.loading-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.loading-state i {\n font-size: 36px;\n color: var(--mj-brand-primary);\n margin-bottom: 16px;\n display: block;\n}\n\n.loading-state p {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-disabled);\n}\n\n.empty-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 48px;\n color: var(--mj-border-default);\n margin-bottom: 16px;\n}\n\n.empty-state h4 {\n color: var(--mj-text-secondary);\n font-weight: 600;\n margin-bottom: 8px;\n}\n\n.empty-state p {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto;\n}\n\n/* Loading State */\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon {\n width: 48px;\n height: 48px;\n border: 4px solid var(--mj-bg-surface-sunken);\n border-top: 4px solid var(--mj-brand-primary);\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Quick Actions */\n.quick-actions {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.quick-action-card {\n flex: 1;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card:hover {\n background: var(--mj-bg-surface);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon {\n font-size: 32px;\n color: var(--mj-brand-primary);\n margin-bottom: 8px;\n}\n\n.quick-action-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.quick-action-description {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* Header Actions */\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n/* Entity List Interface */\n.entity-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-1px);\n}\n\n.item-icon {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item .item-icon {\n background: var(--mj-status-success);\n}\n\n.action-item .item-icon {\n background: var(--mj-status-warning);\n}\n\n.sub-agent-item .item-icon {\n background: var(--mj-brand-primary);\n}\n\n.model-item .item-icon {\n background: var(--mj-brand-primary);\n}\n\n.learning-item .item-icon {\n background: var(--mj-status-error);\n}\n\n.note-item .item-icon {\n background: var(--mj-status-warning);\n}\n\n.item-icon i {\n color: var(--mj-text-muted);\n font-size: 18px;\n}\n\n.prompt-item .item-icon i,\n.action-item .item-icon i,\n.sub-agent-item .item-icon i,\n.model-item .item-icon i,\n.learning-item .item-icon i,\n.note-item .item-icon i {\n color: var(--mj-text-inverse);\n}\n\n.item-icon img.sub-agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content {\n flex: 1;\n min-width: 0;\n}\n\n.item-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag,\n.priority-tag,\n.status-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.priority-tag {\n color: var(--mj-text-inverse);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-tag.active {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-tag.inactive {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.item-actions {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: var(--mj-text-muted);\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item:hover .item-actions {\n opacity: 1;\n}\n\n.entity-item:hover .item-actions > i {\n color: var(--mj-brand-primary);\n}\n\n.view-more-item {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-more-item:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n/* Pagination Controls */\n.pagination-controls {\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: center;\n padding: 16px;\n margin-top: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n}\n\n.page-nav-btn {\n min-width: 120px;\n font-weight: 500;\n}\n\n.page-nav-btn i {\n font-size: 12px;\n}\n\n.page-nav-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.page-info {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 0 16px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n min-width: 200px;\n text-align: center;\n}\n\n.page-info .record-count {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: normal;\n}\n\n.page-info .fa-spinner {\n margin-right: 8px;\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn {\n color: var(--mj-text-muted);\n white-space: nowrap;\n margin-left: auto;\n}\n\n.view-all-btn:hover {\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn i {\n margin-right: 4px;\n}\n\n/* Payload Section Styles */\n.payload-config-section,\n.payload-paths-section,\n.payload-validation-section {\n margin-bottom: 32px;\n}\n\n.subsection-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.subsection-title i {\n color: var(--mj-brand-primary);\n}\n\n.subsection-divider {\n margin-top: 32px;\n margin-bottom: 16px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.payload-config-grid {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.payload-field-group {\n margin-bottom: 20px;\n}\n\n.payload-field-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.payload-field-label i {\n color: var(--mj-text-muted);\n font-size: 16px;\n}\n\n.field-description {\n font-size: 12px;\n font-weight: normal;\n color: var(--mj-text-muted);\n margin-left: auto;\n}\n\n/* Code editor styling */\n.payload-field-group mj-code-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.payload-field-group mj-code-editor:hover {\n border-color: var(--mj-brand-primary);\n}\n\n/* Payload textarea styling */\n.payload-field-group mj-form-field ::ng-deep textarea {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.5;\n min-height: 120px;\n resize: vertical;\n}\n\n/* Execution History Panel */\n.execution-history-panel {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Timeline List for Execution History */\n.timeline-list {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n.timeline-marker {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker i {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n/* Modern Card-Based Interface (Legacy - Keep for backward compatibility) */\n.cards-container {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\n border-color: var(--mj-brand-primary);\n}\n\n.entity-card::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card:hover::before {\n opacity: 1;\n}\n\n.card-header {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card .card-icon {\n background: var(--mj-brand-primary);\n}\n\n.prompt-card .card-icon {\n background: var(--mj-status-success);\n}\n\n.action-card .card-icon {\n background: var(--mj-status-warning);\n}\n\n.card-icon i {\n font-size: 18px;\n color: var(--mj-text-muted);\n}\n\n.sub-agent-card .card-icon i,\n.prompt-card .card-icon i,\n.action-card .card-icon i {\n color: var(--mj-text-inverse);\n}\n\n.card-title-section {\n flex: 1;\n min-width: 0;\n}\n\n.card-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 4px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n}\n\n.meta-item i {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active {\n color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.inactive {\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n}\n\n.card-actions {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: var(--mj-text-muted);\n}\n\n.entity-card:hover .card-actions {\n opacity: 1;\n color: var(--mj-brand-primary);\n}\n\n/* Badge Styles */\n.priority-badge {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n/* View All Card */\n.view-all-card {\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n}\n\n.view-all-content {\n text-align: center;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-all-content i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n/* Timeline Interface for History */\n.timeline-container {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.timeline-item.expanded {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.timeline-item.view-all {\n cursor: pointer;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n}\n\n.timeline-item.view-all:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-item > div:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.timeline-item:last-child .timeline-marker::after {\n display: none;\n}\n\n.timeline-marker i {\n color: var(--mj-text-inverse);\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker {\n background: var(--mj-text-muted);\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header > div:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: var(--mj-text-muted);\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview {\n font-size: 13px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n}\n\n.timeline-status {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error {\n color: var(--mj-status-error);\n font-size: 13px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error i {\n flex-shrink: 0;\n}\n\n/* Expanded Content Styles */\n.timeline-expanded-content {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section,\n.error-section {\n margin-bottom: 20px;\n}\n\n.result-section h5,\n.error-section h5 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section h5 {\n color: var(--mj-status-error);\n}\n\n.result-content,\n.error-content {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-text-secondary);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* Code editor styling within result section */\n.result-section mj-code-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.execution-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--mj-text-secondary);\n word-break: break-all;\n}\n\n.timeline-actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary {\n padding: 8px 16px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.btn-primary i {\n font-size: 12px;\n}\n\n/* Enhanced Empty States */\n.empty-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 2px dashed var(--mj-border-default);\n margin-top: 16px;\n}\n\n.empty-state i {\n font-size: 48px;\n color: var(--mj-border-default);\n margin-bottom: 16px;\n}\n\n.empty-state h4 {\n color: var(--mj-text-secondary);\n font-weight: 600;\n margin-bottom: 8px;\n font-size: 18px;\n}\n\n.empty-state p {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto 20px auto;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n /* Header Responsiveness */\n .agent-header {\n padding: 16px;\n }\n\n .agent-header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .agent-overview {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .agent-meta {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .agent-actions {\n width: 100%;\n align-self: stretch;\n }\n\n .action-button {\n flex: 1;\n justify-content: center;\n }\n\n /* Panel Responsiveness */\n .form-content {\n padding: 12px;\n }\n\n ::ng-deep .k-panelbar > .k-panelbar-item > .k-header {\n padding: 16px 20px;\n font-size: 15px;\n }\n\n .panel-content {\n padding: 20px 16px;\n }\n\n .section-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .header-actions {\n flex-wrap: wrap;\n align-self: stretch;\n }\n\n /* Entity List Responsiveness */\n .entity-item {\n padding: 12px;\n gap: 12px;\n }\n\n .item-icon {\n width: 36px;\n height: 36px;\n }\n\n .item-icon i {\n font-size: 16px;\n }\n\n .item-title {\n font-size: 15px;\n }\n\n .item-preview {\n font-size: 13px;\n }\n\n .item-meta {\n gap: 8px;\n }\n\n /* Timeline Responsiveness */\n .timeline-item {\n padding: 12px;\n gap: 12px;\n }\n\n .timeline-marker {\n width: 28px;\n height: 28px;\n }\n\n .timeline-marker i {\n font-size: 12px;\n }\n\n .timeline-title {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .timeline-date {\n align-self: flex-start;\n }\n\n /* Form Field Responsiveness */\n .form-fields-grid {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n /* Legacy card support */\n .cards-container {\n grid-template-columns: 1fr;\n }\n}\n\n/* Execution History Panel - Max Height and Scroll */\n.execution-history-panel {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Custom scrollbar for execution history */\n.execution-history-panel::-webkit-scrollbar {\n width: 8px;\n}\n\n.execution-history-panel::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.execution-history-panel::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 4px;\n}\n\n.execution-history-panel::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n/* Execution History Search Bar */\n.execution-search-bar {\n margin-bottom: 16px;\n padding: 0 4px;\n}\n\n.execution-search-bar kendo-textbox {\n width: 100%;\n}\n\n.execution-search-bar .fa-search {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n font-size: 14px;\n}\n\n/* New Execution History Card Design */\n.execution-history-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 8px;\n}\n\n.execution-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.2s ease;\n cursor: pointer;\n}\n\n.execution-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n transform: translateY(-1px);\n}\n\n.execution-card.expanded {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 6px 20px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.execution-header {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.execution-left-section {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.execution-status {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.status-indicator {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.status-indicator i {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.execution-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.execution-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.execution-metrics {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex-wrap: wrap;\n margin-left: 44px; /* Align with execution title text, accounting for status indicator + gap */\n}\n\n.metric-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-card);\n padding: 6px 10px;\n border-radius: 6px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.metric-item i {\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n.metric-label {\n font-weight: 500;\n}\n\n.metric-value {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.execution-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.action-btn {\n width: 32px;\n height: 32px;\n border: none;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.action-btn:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n}\n\n.action-btn i {\n font-size: 12px;\n}\n\n.expand-icon {\n transition: transform 0.2s ease;\n color: var(--mj-text-muted);\n margin-right: 4px;\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n/* Execution Expanded Content */\n.execution-expanded-content {\n padding: 16px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n background: var(--mj-bg-surface-card);\n animation: slideDown 0.2s ease;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n to {\n opacity: 1;\n max-height: 500px;\n padding-top: 16px;\n padding-bottom: 16px;\n }\n}\n\n.detailed-metrics {\n margin-bottom: 20px;\n}\n\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.metric-detail {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n}\n\n.metric-detail i {\n color: var(--mj-brand-primary);\n font-size: 16px;\n width: 20px;\n text-align: center;\n}\n\n.metric-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n}\n\n.metric-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-data {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.result-section {\n margin-top: 16px;\n}\n\n.result-section h5 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section h5 {\n color: var(--mj-status-error);\n}\n\n.error-content {\n background: color-mix(in srgb, var(--mj-status-error) 10%, 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 padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-status-error);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 150px;\n overflow-y: auto;\n}\n\n/* Responsive adjustments for execution history */\n@media (max-width: 768px) {\n .execution-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .execution-left-section {\n width: 100%;\n }\n\n .execution-metrics {\n margin-left: 0; /* Remove left margin on mobile */\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n }\n\n .metric-item {\n font-size: 11px;\n padding: 4px 8px;\n }\n\n .metrics-grid {\n grid-template-columns: 1fr;\n }\n}\n\n/* === PAYLOAD MANAGEMENT SECTION === */\n.payload-section {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.payload-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.payload-section-title i {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n/* Payload Scope Styling */\n.payload-field-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-field-info {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.payload-field-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.5;\n margin: 0;\n}\n\n.payload-field-input {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-example {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.payload-field-example i {\n color: var(--mj-status-warning);\n font-size: 0.9rem;\n}\n\n.payload-field-example code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.2rem 0.4rem;\n border-radius: 4px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n}\n\n/* Path Configuration Grid */\n.payload-paths-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.payload-path-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.payload-path-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.payload-path-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.payload-path-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.payload-path-icon.downstream {\n background: var(--mj-status-success);\n}\n\n.payload-path-icon.upstream {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-read {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-write {\n background: var(--mj-status-warning);\n}\n\n.payload-path-icon i {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.payload-path-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.payload-path-info p {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-content {\n padding: 1rem;\n}\n\n.json-editor-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 0.75rem;\n}\n\n.json-editor-container:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.payload-path-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-hint i {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.payload-path-hint code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n/* Payload Validation Container */\n.payload-validation-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-validation-settings {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.validation-field-group {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.validation-field-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.validation-field-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0 0 0.5rem 0;\n}\n\n.payload-validation-schema {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.validation-schema-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.validation-schema-label i {\n color: var(--mj-brand-primary);\n}\n\n.validation-schema-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.validation-schema-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.validation-schema-editor:hover {\n border-color: var(--mj-brand-primary);\n}\n\n/* === CONFIGURATION SECTION === */\n.config-section {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.config-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.config-section-title i {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n.config-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n width: 100%;\n}\n\n.config-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.config-card.full-width {\n grid-column: 1 / -1;\n}\n\n.config-card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.config-card-icon i {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.config-card-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.config-card-info p {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.config-card-content {\n padding: 1rem;\n}\n\n/* Custom field styling for config cards */\n.config-field-input {\n width: 100%;\n min-width: 250px;\n}\n\n/* Fix numeric textbox cutoff issue */\n.config-card-content ::ng-deep kendo-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep kendo-numerictextbox .k-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep kendo-numerictextbox .k-input {\n width: 100% !important;\n min-width: 200px !important;\n}\n\n.config-card-content ::ng-deep mj-form-field {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep mj-form-field kendo-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep mj-form-field kendo-numerictextbox .k-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep mj-form-field kendo-numerictextbox .k-input {\n width: 100% !important;\n min-width: 200px !important;\n}\n\n.config-field-display {\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n padding: 8px 0;\n display: block;\n min-height: 20px;\n}\n\n/* Prompt selector styling */\n.prompt-selector-container {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n.prompt-display {\n flex: 1;\n min-width: 0;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n}\n\n.prompt-name {\n color: var(--mj-text-secondary);\n font-weight: 500;\n font-size: 14px;\n}\n\n.no-prompt {\n color: var(--mj-text-muted);\n font-style: italic;\n font-size: 14px;\n}\n\n.prompt-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.prompt-select-btn {\n white-space: nowrap;\n}\n\n.prompt-clear-btn {\n min-width: 32px;\n}\n\n.config-card-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-top: 0.5rem;\n}\n\n.config-card-hint i {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.config-card-hint code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n/* === RESPONSIVE DESIGN === */\n@media (max-width: 768px) {\n .payload-field-container,\n .payload-validation-container {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n\n .payload-paths-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .config-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .payload-section-title,\n .config-section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .payload-path-header,\n .config-card-header {\n padding: 0.75rem;\n }\n\n .payload-path-content,\n .config-card-content {\n padding: 0.75rem;\n }\n\n .payload-field-container,\n .payload-validation-container {\n padding: 1rem;\n }\n}\n\n/* ===================================\n Unified Sub-Agents with Filtering\n =================================== */\n\n/* Filter Controls */\n.sub-agent-filter-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.filter-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.filter-controls kendo-buttongroup {\n flex: 0 0 auto;\n}\n\n/* Sub-Agent Type Badge */\n.sub-agent-type-badge {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n display: flex;\n align-items: center;\n gap: 4px;\n z-index: 1;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n/* Sub-Agent Item Styling */\n.sub-agent-item {\n position: relative;\n padding-left: 8px;\n transition: all 0.2s ease;\n}\n\n.sub-agent-item.child-sub-agent {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item.related-sub-agent {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item:hover {\n transform: translateX(4px);\n}\n\n/* Payload Info Tag */\n.payload-info {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n font-family: 'Roboto Mono', monospace;\n font-size: 11px;\n}\n\n/* Empty State Info Cards */\n.empty-state-info {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n margin: 24px 0;\n max-width: 600px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.info-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n text-align: left;\n}\n\n.info-card i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.info-card strong {\n display: block;\n margin-bottom: 4px;\n font-size: 14px;\n}\n\n.info-card p {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-actions {\n display: flex;\n gap: 12px;\n justify-content: center;\n margin-top: 16px;\n}\n\n/* Responsive adjustments for sub-agent filters */\n@media (max-width: 768px) {\n .sub-agent-filter-header {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls,\n .header-actions {\n width: 100%;\n justify-content: center;\n }\n\n .empty-state-info {\n grid-template-columns: 1fr;\n }\n}\n"] }]
|
|
4511
|
+
args: [{ standalone: false, selector: 'mj-ai-agent-form', template: "<div class=\"record-form-container\">\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\">\n <mj-form-toolbar [Form]=\"this\"></mj-form-toolbar>\n <!-- Agent Header \u2014 expanded view -->\n @if (!HeaderCollapsed) {\n <div class=\"agent-header\">\n <div class=\"agent-header-content\">\n <button class=\"agent-header-toggle\" (click)=\"ToggleHeaderCollapsed()\"\n title=\"Minimize header\">\n <i class=\"fa-solid fa-chevron-up\"></i>\n </button>\n <div class=\"agent-overview\">\n <div class=\"agent-icon-wrapper\">\n @if (hasLogoURL()) {\n <img [src]=\"record.LogoURL\" [alt]=\"record.Name + ' logo'\" class=\"agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon()\"></i>\n }\n </div>\n <div class=\"agent-info\">\n @if (EditMode) {\n <input type=\"text\" class=\"mj-input agent-name-input\"\n [(ngModel)]=\"record.Name\"\n name=\"agentName\"\n placeholder=\"Enter agent name...\">\n } @else {\n <h1 class=\"agent-name\">{{ record.Name || 'Untitled AI Agent' }}</h1>\n }\n <div class=\"agent-meta\">\n @if (record.Status) {\n <span class=\"status-badge\" [style.background-color]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid fa-circle\"></i>\n {{ record.Status }}\n </span>\n }\n @if (record.Type) {\n <span class=\"execution-mode\">\n Agent Type: {{ record.Type }}\n </span>\n }\n @if (record.Parent) {\n <span class=\"parent-agent clickable\"\n (click)=\"navigateToParentAgent()\"\n title=\"Open parent agent: {{ record.Parent }}\">\n <i class=\"fa-solid fa-sitemap\"></i>\n Child of {{ record.Parent }}\n <i class=\"fa-solid fa-external-link\" style=\"margin-left: 4px; font-size: 10px;\"></i>\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"agent-actions\">\n @if (record.ID) {\n <button mjButton variant=\"primary\" size=\"lg\"\n (click)=\"openTestHarness()\"\n [disabled]=\"record.Status !== 'Active'\"\n title=\"Run this AI agent\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n <button mjButton size=\"lg\"\n (click)=\"openPermissionsDialog()\"\n [title]=\"IsOpenToEveryone ? 'Open to everyone \u2014 click to manage permissions' : 'Restricted \u2014 click to manage permissions'\">\n <i class=\"fa-solid\" [class.fa-lock-open]=\"IsOpenToEveryone\" [class.fa-lock]=\"!IsOpenToEveryone\"\n [style.color]=\"IsOpenToEveryone ? 'var(--mj-status-success)' : null\"></i>\n {{ IsOpenToEveryone ? 'Open' : 'Restricted' }}\n </button>\n }\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"refreshRelatedData()\" title=\"Refresh all data\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n <!-- Agent Header \u2014 minimized floating bar -->\n @if (HeaderCollapsed) {\n <div class=\"agent-header-mini\">\n <button class=\"agent-header-mini-expand\" (click)=\"ToggleHeaderCollapsed()\"\n title=\"Expand header\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n </button>\n <span class=\"agent-header-mini-name\">{{ record.Name || 'Untitled AI Agent' }}</span>\n @if (record.Status) {\n <span class=\"agent-header-mini-status\" [style.background-color]=\"getStatusBadgeColor()\">\n {{ record.Status }}\n </span>\n }\n <div class=\"agent-header-mini-spacer\"></div>\n @if (record.ID) {\n <button class=\"agent-header-mini-btn agent-header-mini-btn--primary\"\n (click)=\"openTestHarness()\"\n [disabled]=\"record.Status !== 'Active'\"\n title=\"Run agent\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n <button class=\"agent-header-mini-btn\"\n (click)=\"openPermissionsDialog()\"\n [title]=\"IsOpenToEveryone ? 'Open to everyone' : 'Restricted'\">\n <i class=\"fa-solid\" [class.fa-lock-open]=\"IsOpenToEveryone\" [class.fa-lock]=\"!IsOpenToEveryone\"\n [style.color]=\"IsOpenToEveryone ? 'var(--mj-status-success)' : null\"></i>\n </button>\n }\n <button class=\"agent-header-mini-btn\"\n (click)=\"refreshRelatedData()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n }\n <!-- Single Pane Layout with Expander Panels -->\n <div class=\"form-content\">\n <!-- Custom Agent Type Section (if defined) -->\n @if (record.ID && agentType && agentType.UIFormSectionKey) {\n <mj-accordion-panel id=\"custom\"\n [Expanded]=\"GetSectionExpanded('custom', agentType.UIFormSectionExpandedByDefault)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-puzzle-piece\"></i> {{ agentType.Name }} Configuration\n </ng-template>\n <div class=\"panel-content custom-agent-type-section\" [style.display]=\"'block'\">\n @if (loadingStates.customSection) {\n <mj-loading text=\"Loading {{ agentType.Name }} configuration...\" size=\"medium\"></mj-loading>\n }\n <ng-container #customSectionContainer></ng-container>\n </div>\n </mj-accordion-panel>\n }\n <!-- Requests & History -->\n @if (record.ID) {\n <mj-accordion-panel id=\"history\"\n [Expanded]=\"GetSectionExpanded('history', false)\"\n [Disabled]=\"loadingStates.executionHistory\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-history\"></i> Execution History\n @if (loadingStates.executionHistory) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (executionHistoryCount > 0) {\n <span> ({{ executionHistoryCount }}@if (executionHistoryCount < totalExecutionHistoryCount) { of {{ totalExecutionHistoryCount }}})</span>\n }\n </ng-template>\n <div class=\"panel-content execution-history-panel\">\n @if (loadingStates.executionHistory) {\n <mj-loading text=\"Loading execution history...\" size=\"medium\"></mj-loading>\n } @else if (executionHistoryCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-history\"></i>\n <h4>No Execution History</h4>\n <p>This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.</p>\n </div>\n } @else {\n <!-- Search Bar -->\n <div class=\"execution-search-bar\">\n <div class=\"search-input-wrapper\">\n <i class=\"fa-solid fa-search\"></i>\n <input type=\"text\" class=\"mj-input\"\n [(ngModel)]=\"executionSearchText\"\n (ngModelChange)=\"onExecutionSearchChange()\"\n [ngModelOptions]=\"{standalone: true}\"\n placeholder=\"Search by Run ID...\">\n </div>\n </div>\n <div class=\"execution-history-list\">\n @if (filteredExecutions.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-search\"></i>\n <h4>No Matching Results</h4>\n <p>No execution history found matching \"{{ executionSearchText }}\"</p>\n </div>\n }\n @for (execution of filteredExecutions; track execution.ID) {\n <div class=\"execution-card\" [class.expanded]=\"expandedExecutions[execution.ID]\">\n <div class=\"execution-header\" (click)=\"toggleExecutionExpanded(execution.ID)\">\n <div class=\"execution-left-section\">\n <div class=\"execution-status\">\n <div class=\"status-indicator\" [style.background-color]=\"getExecutionStatusColor(execution.Status)\">\n <i [class]=\"getExecutionStatusIcon(execution.Status)\"></i>\n </div>\n <div class=\"execution-info\">\n <div class=\"execution-title\">\n <i class=\"fa-solid fa-chevron-right expand-icon\" [class.expanded]=\"expandedExecutions[execution.ID]\"></i>\n Execution #{{ execution.ID.substring(0, 8) }}\n </div>\n <div class=\"execution-date\">{{ execution.__mj_CreatedAt | date:'MMM d, h:mm a' }}</div>\n </div>\n </div>\n <div class=\"execution-metrics\">\n @if (execution.Configuration) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-cog\"></i>\n <span class=\"metric-label\">Config:</span>\n <span class=\"metric-value\">{{ execution.Configuration }}</span>\n </div>\n }\n @if (execution.CompletedAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span class=\"metric-label\">Duration:</span>\n <span class=\"metric-value\">{{ formatExecutionTimeFromDates(execution.StartedAt, execution.CompletedAt) }}</span>\n </div>\n } @else if (execution.Status === 'Running') {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <span class=\"metric-label\">Running:</span>\n <!-- <span class=\"metric-value\">{{ execution.StartedAt | runningTime }}</span> -->\n </div>\n }\n @if (execution.TotalTokensUsedRollup || execution.TotalTokensUsed) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-microchip\"></i>\n <span class=\"metric-label\">Tokens:</span>\n <span class=\"metric-value\">{{ formatTokenCount(execution.TotalTokensUsedRollup || execution.TotalTokensUsed) }}</span>\n </div>\n }\n @if (execution.TotalCostRollup || execution.TotalCost) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <span class=\"metric-label\">Cost:</span>\n <span class=\"metric-value\">${{ formatCost(execution.TotalCostRollup || execution.TotalCost) }}</span>\n </div>\n }\n </div>\n </div>\n <div class=\"execution-actions\">\n <button class=\"action-btn\" (click)=\"openExecutionRecord(execution.ID); $event.stopPropagation()\" title=\"View details\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n </div>\n </div>\n @if (expandedExecutions[execution.ID]) {\n <div class=\"execution-expanded-content\">\n <!-- Detailed Metrics -->\n <div class=\"detailed-metrics\">\n <div class=\"metrics-grid\">\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Started</span>\n <span class=\"metric-data\">{{ execution.StartedAt | date:'medium' }}</span>\n </div>\n </div>\n @if (execution.CompletedAt) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Completed</span>\n <span class=\"metric-data\">{{ execution.CompletedAt | date:'medium' }}</span>\n </div>\n </div>\n }\n @if (execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-microchip\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Tokens</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsed) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalTokensUsedRollup && execution.TotalTokensUsedRollup !== execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-sitemap\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsedRollup) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Cost</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCost) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalCostRollup && execution.TotalCostRollup !== execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-calculator\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCostRollup) }}</span>\n </div>\n </div>\n }\n @if (execution.ConversationID) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-comments\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Conversation</span>\n <span class=\"metric-data\">{{ execution.ConversationID.substring(0, 8) }}...</span>\n </div>\n </div>\n }\n </div>\n </div>\n @if (execution.Result) {\n <div class=\"result-section\">\n <h5><i class=\"fa-solid fa-file-text\"></i> Result</h5>\n <mj-code-editor\n [value]=\"getExecutionResultPreview(execution, false)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"max-height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n @if (execution.ErrorMessage) {\n <div class=\"error-section\">\n <h5><i class=\"fa-solid fa-exclamation-triangle\"></i> Error</h5>\n <div class=\"error-content\">{{ execution.ErrorMessage }}</div>\n </div>\n }\n </div>\n }\n </div>\n }\n <!-- Pagination Controls -->\n @if (totalPages > 1) {\n <div class=\"pagination-controls\">\n <button mjButton\n variant=\"outline\"\n (click)=\"goToPreviousPage()\"\n [disabled]=\"!hasPreviousPage || isLoadingPage\"\n class=\"page-nav-btn\">\n <i class=\"fa-solid fa-chevron-left\"></i>\n Previous\n </button>\n <div class=\"page-info\">\n @if (isLoadingPage) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Loading...\n } @else {\n Page {{ executionHistoryCurrentPage }} of {{ totalPages }}\n <span class=\"record-count\">({{ totalExecutionHistoryCount }} total)</span>\n }\n </div>\n <button mjButton\n variant=\"outline\"\n (click)=\"goToNextPage()\"\n [disabled]=\"!hasNextPage || isLoadingPage\"\n class=\"page-nav-btn\">\n Next\n <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"navigateToEntity('MJ: AI Agent Runs', '')\"\n class=\"view-all-btn\">\n <i class=\"fa-solid fa-external-link\"></i>\n View All in Grid\n </button>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Actions -->\n @if (record.ID) {\n <mj-accordion-panel id=\"actions\"\n [Expanded]=\"GetSectionExpanded('actions', false)\"\n [Disabled]=\"loadingStates.actions\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-bolt\"></i> Actions\n @if (loadingStates.actions) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (actionCount > 0) {\n <span> ({{ actionCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n @if (loadingStates.actions) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <p>Loading actions...</p>\n </div>\n } @else {\n <div class=\"section-header\">\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateActions) {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"configureActions()\">\n <i class=\"fa-solid fa-plus\"></i> Add Action\n </button>\n }\n </div>\n </div>\n @if (actionCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-bolt\"></i>\n <h4>No Actions Configured</h4>\n <p>Add actions to enable this agent to perform specific tasks and operations.</p>\n @if (EditMode && UserCanCreateActions) {\n <button mjButton variant=\"primary\" (click)=\"configureActions()\">\n <i class=\"fa-solid fa-plus\"></i> Configure First Action\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (action of agentActions; track action.ID) {\n <div class=\"entity-item action-item\" (click)=\"navigateToEntity('MJ: Actions', action.ID)\">\n <div class=\"item-icon\">\n <i [class]=\"getActionIcon(action)\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ action.Name || 'Untitled Action' }}</div>\n @if (action.Description) {\n <div class=\"item-preview\">{{ action.Description }}</div>\n }\n <div class=\"item-meta\">\n @if (action.Type) {\n <span class=\"meta-tag\">{{ action.Type }}</span>\n }\n <span class=\"status-tag\" [class.active]=\"action.Status==='Active'\" [class.inactive]=\"action.Status!=='Active'\">\n <i class=\"fa-solid\" [class.fa-check-circle]=\"action.Status==='Active'\" [class.fa-times-circle]=\"action.Status!=='Active'\"></i>\n {{ action.Status }}\n </span>\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode && UserCanDeleteActions) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"removeAction(action, $event)\"\n title=\"Remove action\"\n class=\"error-action\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (actionCount > agentActions.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Actions', '')\">\n <span>View all {{ actionCount }} actions...</span>\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Sub-Agents (Unified View with Filter) -->\n @if (record.ID) {\n <mj-accordion-panel id=\"subagents\"\n [Expanded]=\"GetSectionExpanded('subagents', false)\"\n [Disabled]=\"loadingStates.subAgents\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-sitemap\"></i> Sub-Agents\n @if (loadingStates.subAgents) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (totalSubAgentCount > 0) {\n <span> ({{ totalSubAgentCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <!-- Filter Controls -->\n <div class=\"section-header sub-agent-filter-header\">\n <div class=\"filter-controls\">\n <div class=\"mj-button-group\">\n <button mjButton\n size=\"sm\"\n [class.active]=\"subAgentFilter === 'all'\"\n (click)=\"setSubAgentFilter('all')\">\n <i class=\"fa-solid fa-layer-group\"></i>\n All ({{ totalSubAgentCount }})\n </button>\n <button mjButton\n size=\"sm\"\n [class.active]=\"subAgentFilter === 'child'\"\n (click)=\"setSubAgentFilter('child')\">\n <i class=\"fa-solid fa-link\"></i>\n Child ({{ childSubAgentCount }})\n </button>\n <button mjButton\n size=\"sm\"\n [class.active]=\"subAgentFilter === 'related'\"\n (click)=\"setSubAgentFilter('related')\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n Related ({{ relatedSubAgentCount }})\n </button>\n </div>\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateSubAgents) {\n <button mjButton\n variant=\"primary\"\n size=\"sm\"\n (click)=\"createChildSubAgent()\"\n title=\"Create a new child sub-agent that shares this agent's payload\">\n <i class=\"fa-solid fa-link\"></i>\n Create Child\n </button>\n <button mjButton\n size=\"sm\"\n (click)=\"linkRelatedSubAgent()\"\n title=\"Link an existing agent as a related sub-agent with payload mapping\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n Link Related\n </button>\n }\n </div>\n </div>\n <!-- Empty State -->\n @if (totalSubAgentCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sitemap\"></i>\n <h4>No Sub-Agents</h4>\n <p>Sub-agents help build complex workflows through hierarchical orchestration.</p>\n <div class=\"empty-state-info\">\n <div class=\"info-card\">\n <i class=\"fa-solid fa-link\" style=\"color: var(--mj-status-info);\"></i>\n <strong>Child Sub-Agents</strong>\n <p>Share payload structure, dedicated to parent</p>\n </div>\n <div class=\"info-card\">\n <i class=\"fa-solid fa-share-nodes\" style=\"color: var(--mj-brand-primary);\"></i>\n <strong>Related Sub-Agents</strong>\n <p>Reusable agents with payload mapping</p>\n </div>\n </div>\n </div>\n } @else {\n <!-- Unified Sub-Agent List -->\n <div class=\"entity-list\">\n @for (item of filteredSubAgents; track item.agent.ID) {\n <div class=\"entity-item sub-agent-item\"\n [class.child-sub-agent]=\"item.type === 'child'\"\n [class.related-sub-agent]=\"item.type === 'related'\"\n (click)=\"navigateToEntity('MJ: AI Agents', item.agent.ID)\">\n <!-- Type Badge -->\n <div class=\"sub-agent-type-badge\"\n [style.background-color]=\"getSubAgentBadgeColor(item)\">\n <i [class]=\"getSubAgentBadgeIcon(item)\"></i>\n {{ getSubAgentBadgeText(item) }}\n </div>\n <!-- Agent Icon -->\n <div class=\"item-icon\">\n @if (hasSubAgentLogoURL(item.agent)) {\n <img [src]=\"item.agent.LogoURL\"\n [alt]=\"item.agent.Name + ' logo'\"\n class=\"sub-agent-logo\">\n } @else {\n <i [class]=\"getSubAgentIcon(item.agent)\"></i>\n }\n </div>\n <!-- Agent Content -->\n <div class=\"item-content\">\n <div class=\"item-title\">{{ item.agent.Name || 'Untitled Sub-Agent' }}</div>\n @if (item.agent.Description) {\n <div class=\"item-preview\">{{ item.agent.Description }}</div>\n }\n <div class=\"item-meta\">\n <!-- Payload Info -->\n <span class=\"meta-tag payload-info\">\n <i class=\"fa-solid fa-database\"></i>\n {{ getSubAgentPayloadInfo(item) }}\n </span>\n <!-- Status -->\n @if (item.agent.Status) {\n <span class=\"status-tag\"\n [style.background-color]=\"getStatusBadgeColor()\">\n {{ item.agent.Status }}\n </span>\n }\n <!-- Agent Type -->\n @if (item.agent.Type) {\n <span class=\"meta-tag\">{{ item.agent.Type }}</span>\n }\n </div>\n </div>\n <!-- Actions -->\n <div class=\"item-actions\">\n @if (EditMode) {\n <!-- Output Mapping Config (Related only) -->\n @if (item.type === 'related') {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"configureOutputMapping(item, $event)\"\n title=\"Configure output mapping\">\n <i class=\"fa-solid fa-exchange-alt\"></i>\n </button>\n }\n <!-- Advanced Settings (Child only) -->\n @if (item.type === 'child' && UserCanCreateSubAgents) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openSubAgentAdvancedSettings(item.agent, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n <!-- Remove/Unlink -->\n @if (UserCanDeleteSubAgents) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"item.type === 'child' ? removeChildSubAgent(item, $event) : unlinkRelatedSubAgent(item, $event)\"\n [title]=\"item.type === 'child' ? 'Delete child sub-agent' : 'Unlink related sub-agent'\"\n class=\"error-action\">\n <i [class]=\"item.type === 'child' ? 'fa-solid fa-trash' : 'fa-solid fa-unlink'\"></i>\n </button>\n }\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Prompts (With Model Selection) -->\n @if (record.ID) {\n <mj-accordion-panel id=\"prompts\"\n [Expanded]=\"GetSectionExpanded('prompts', false)\"\n [Disabled]=\"loadingStates.prompts\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-comments\"></i> Prompts\n @if (loadingStates.prompts) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (promptCount > 0) {\n <span> ({{ promptCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"prompt-controls\">\n <!-- Model Selection Mode Control -->\n <div class=\"model-selection-mode\">\n <label class=\"model-selection-label\">\n <i class=\"fa-solid fa-sliders\"></i>\n Model Selection:\n </label>\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.ModelSelectionMode\"\n name=\"modelSelectionMode\"\n [Data]=\"modelSelectionModes\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"model-selection-dropdown\">\n </mj-dropdown>\n } @else {\n <span class=\"model-selection-value\">{{ record.ModelSelectionMode || 'Agent Type' }}</span>\n }\n </div>\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateNewPrompts) {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i> Add Prompt\n </button>\n }\n </div>\n </div>\n @if (promptCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comments\"></i>\n <h4>No Prompts Configured</h4>\n <p>Add prompts to define how this agent processes requests and generates responses.</p>\n @if (EditMode && UserCanCreateNewPrompts) {\n <button mjButton variant=\"primary\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i> Create First Prompt\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (prompt of agentPrompts; track prompt.ID) {\n <div class=\"entity-item prompt-item\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ prompt.Name }}</div>\n @if (prompt.TemplateText) {\n <div class=\"item-preview\">{{ prompt.TemplateText.substring(0, 120) }}{{ prompt.TemplateText.length > 120 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (prompt.PromptRole) {\n <span class=\"meta-tag\">{{ prompt.PromptRole }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode && UserCanCreatePrompts) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openPromptAdvancedSettings(prompt, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n @if (EditMode && UserCanDeletePrompts) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"removePrompt(prompt, $event)\"\n title=\"Remove prompt\"\n class=\"error-action\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (promptCount > agentPrompts.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Prompts', '')\">\n <span>View all {{ promptCount }} prompts...</span>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Learning & Analytics -->\n @if (record.ID) {\n <mj-accordion-panel id=\"learning\"\n [Expanded]=\"GetSectionExpanded('learning', false)\"\n [Disabled]=\"loadingStates.learningCycles\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-brain\"></i> Learning Cycles\n @if (loadingStates.learningCycles) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (learningCycleCount > 0) {\n <span> ({{ learningCycleCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Monitor and manage learning cycles, training sessions, and performance analytics.\n </div>\n </div>\n @if (learningCycleCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-brain\"></i>\n <h4>No Learning Cycles</h4>\n <p>Learning cycles will appear here as the agent processes requests and improves over time.</p>\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (cycle of learningCycles; track cycle.ID) {\n <div class=\"entity-item learning-item\" (click)=\"navigateToEntity('MJ: AI Agent Learning Cycles', cycle.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-brain\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">Learning Cycle {{ cycle.ID.substring(0, 8) }}</div>\n <div class=\"item-meta\">\n @if (cycle.StartedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ cycle.StartedAt | date:'short' }}\n </span>\n }\n @if (cycle.Status) {\n <span class=\"status-tag\">{{ cycle.Status }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (learningCycleCount > learningCycles.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Learning Cycles', '')\">\n <span>View all {{ learningCycleCount }} cycles...</span>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Notes & Documentation -->\n @if (record.ID) {\n <mj-accordion-panel id=\"notes\"\n [Expanded]=\"GetSectionExpanded('notes', false)\"\n [Disabled]=\"loadingStates.notes\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-sticky-note\"></i> Notes\n @if (loadingStates.notes) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (noteCount > 0) {\n <span> ({{ noteCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Manage notes, documentation, and annotations for this agent.\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateNotes) {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"addNote()\">\n <i class=\"fa-solid fa-plus\"></i> Add Note\n </button>\n }\n </div>\n </div>\n @if (noteCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sticky-note\"></i>\n <h4>No Notes</h4>\n <p>Add notes to document important information, observations, or instructions for this agent.</p>\n @if (EditMode && UserCanCreateNotes) {\n <button mjButton variant=\"primary\" (click)=\"addNote()\">\n <i class=\"fa-solid fa-plus\"></i> Create First Note\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (note of agentNotes; track note.ID) {\n <div class=\"entity-item note-item\" (click)=\"navigateToEntity('MJ: AI Agent Notes', note.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-sticky-note\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ note.Type || 'Note' }}</div>\n @if (note.Note) {\n <div class=\"item-preview\">{{ note.Note.substring(0, 100) }}{{ note.Note.length > 100 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (note.__mj_CreatedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ note.__mj_CreatedAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (noteCount > agentNotes.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Notes', '')\">\n <span>View all {{ noteCount }} notes...</span>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Payload -->\n <mj-accordion-panel id=\"payload\"\n [Expanded]=\"GetSectionExpanded('payload', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-exchange-alt\"></i> Payload Management\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Configure how this agent handles data payloads, path routing, and validation between parent and child agents.\n </div>\n </div>\n <!-- Payload Scope Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-target\"></i>\n Payload Scope\n </h3>\n <div class=\"payload-field-container\">\n <div class=\"payload-field-info\">\n <label class=\"payload-field-label\">Payload Scope Path</label>\n <p class=\"payload-field-description\">\n Specify a path within the parent payload that this sub-agent should operate on.\n Leave empty to receive the entire payload.\n </p>\n </div>\n <div class=\"payload-field-input\">\n <mj-form-field\n FieldName=\"PayloadScope\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n <div class=\"payload-field-example\">\n <i class=\"fa-solid fa-lightbulb\"></i>\n <span>Example: <code>/customer/profile</code> or <code>/analysis/results</code></span>\n </div>\n </div>\n </div>\n </div>\n <!-- Path Configuration Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-route\"></i>\n Path Configuration\n </h3>\n <div class=\"payload-paths-grid\">\n <!-- Downstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon downstream\">\n <i class=\"fa-solid fa-arrow-down\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Downstream Paths</h4>\n <p>JSON array of paths to pass to sub-agents</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadDownstreamPaths || '["*"]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadDownstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to pass entire payload or specify paths like <code>[\"user.id\", \"order.*\"]</code>\n </div>\n </div>\n </div>\n <!-- Upstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon upstream\">\n <i class=\"fa-solid fa-arrow-up\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Upstream Paths</h4>\n <p>JSON array of paths sub-agents can write back</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadUpstreamPaths || '["*"]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadUpstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to allow all writes or limit to specific paths\n </div>\n </div>\n </div>\n <!-- Self Read Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-read\">\n <i class=\"fa-solid fa-eye\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Read Paths</h4>\n <p>JSON array of paths this agent can read</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadSelfReadPaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfReadPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can read from the payload\n </div>\n </div>\n </div>\n <!-- Self Write Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-write\">\n <i class=\"fa-solid fa-pen\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Write Paths</h4>\n <p>JSON array of paths this agent can write to</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadSelfWritePaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfWritePaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can write back to the payload\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Validation Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-shield-check\"></i>\n Final Payload Validation\n </h3>\n <div class=\"payload-validation-container\">\n <div class=\"payload-validation-settings\">\n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Validation Mode</label>\n <p class=\"validation-field-description\">How to handle validation failures</p>\n <mj-form-field\n FieldName=\"FinalPayloadValidationMode\"\n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Max Retries</label>\n <p class=\"validation-field-description\">Maximum validation retry attempts</p>\n <mj-form-field\n FieldName=\"FinalPayloadValidationMaxRetries\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"payload-validation-schema\">\n <label class=\"validation-schema-label\">\n <i class=\"fa-solid fa-code\"></i>\n Validation Schema\n </label>\n <p class=\"validation-schema-description\">\n JSON schema or validation rules for the final payload structure\n </p>\n <div class=\"validation-schema-editor\">\n <mj-code-editor\n [value]=\"record.FinalPayloadValidation || '{}'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\"\n (valueChange)=\"updatePayloadField('FinalPayloadValidation', $event)\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n <!-- Execution Guardrails (New Separate Panel) -->\n <mj-accordion-panel id=\"guardrails\"\n [Expanded]=\"GetSectionExpanded('guardrails', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-shield-halved\"></i> Execution Guardrails\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Set limits to prevent runaway agent executions and control resource usage.\n </div>\n </div>\n <div class=\"form-fields-grid\">\n <mj-form-field\n FieldName=\"MaxCostPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Cost ($)\"\n Description=\"Maximum cost per run\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxTokensPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Tokens\"\n Description=\"Maximum tokens per run\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxIterationsPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Iterations\"\n Description=\"Maximum prompt iterations\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxTimePerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Time (seconds)\"\n Description=\"Maximum execution time\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </mj-accordion-panel>\n <!-- Configuration (Settings Panel) -->\n <mj-accordion-panel id=\"config\"\n [Expanded]=\"GetSectionExpanded('config', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-cogs\"></i> Configuration\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Configure agent behavior, execution settings, and advanced features.\n </div>\n </div>\n <!-- Identity & Behavior Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-id-card\"></i>\n Identity & Behavior\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Status</h4>\n <p>Current availability and operational status</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.Status\"\n [Data]=\"statusOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n name=\"agentStatus\"\n class=\"config-field-input\">\n </mj-dropdown>\n } @else {\n <span class=\"config-field-display\">{{ record.Status || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sitemap\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Type</h4>\n <p>Category and system-level behavior</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.TypeID\"\n [Data]=\"agentTypes\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n name=\"agentTypeID\"\n class=\"config-field-input\">\n </mj-dropdown>\n } @else {\n <span class=\"config-field-display\">{{ record.Type || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Category</h4>\n <p>Organizational category for this agent</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <mj-tree-dropdown\n [BranchConfig]=\"CategoryBranchConfig\"\n [Value]=\"SelectedCategoryKey\"\n SelectionMode=\"single\"\n SelectableTypes=\"branch\"\n Placeholder=\"Select a category...\"\n [Clearable]=\"true\"\n [EnableSearch]=\"true\"\n (ValueChange)=\"OnCategoryChange($event)\">\n </mj-tree-dropdown>\n } @else {\n <span class=\"config-field-display\">{{ record.Category || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-bolt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Expose as Action</h4>\n <p>Make available as an action for other agents</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExposeAsAction\"\n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-align-left\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Description</h4>\n <p>Detailed agent description and purpose</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"Description\"\n Type=\"textarea\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n <!-- Execution Settings Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Settings\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-layer-group\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Mode</h4>\n <p>How sub-agents are executed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExecutionMode\"\n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sort-numeric-down\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Order</h4>\n <p>Order when run with siblings</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExecutionOrder\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-tachometer-alt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Default Effort Level</h4>\n <p>Default effort level for all prompts (1-100)</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"DefaultPromptEffortLevel\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Higher values request more thorough reasoning (1=minimal, 100=maximum)\n </div>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-code\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Driver Class</h4>\n <p>Custom implementation class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"DriverClass\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n <!-- Visual Identity Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-palette\"></i>\n Visual Identity\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-icons\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Icon Class</h4>\n <p>Font Awesome icon class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"IconClass\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Example: <code>fa-solid fa-robot</code>\n </div>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-image\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Logo URL</h4>\n <p>URL for agent logo image</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"LogoURL\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Takes precedence over Icon Class\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Context Compression Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-compress\"></i>\n Context Compression\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Enable Context Compression</h4>\n <p>Automatically compress conversation context when message threshold is reached</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"EnableContextCompression\"\n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n (valueChange)=\"onContextCompressionToggle($event)\">\n </mj-form-field>\n </div>\n </div>\n @if (record.EnableContextCompression) {\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-hashtag\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Message Threshold</h4>\n <p>Messages before compression triggers</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ContextCompressionMessageThreshold\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-save\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Messages to Keep</h4>\n <p>Recent messages to retain uncompressed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ContextCompressionMessageRetentionCount\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Compression Prompt</h4>\n <p>Prompt used for summarization</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <div class=\"prompt-selector-container\">\n <div class=\"prompt-display\">\n @if (selectedContextCompressionPrompt) {\n <span class=\"prompt-name\">{{ selectedContextCompressionPrompt.Name }}</span>\n } @else {\n <span class=\"no-prompt\">No prompt selected</span>\n }\n </div>\n <div class=\"prompt-actions\">\n <button type=\"button\"\n mjButton\n variant=\"outline\"\n size=\"sm\"\n (click)=\"openContextCompressionPromptSelector()\"\n class=\"prompt-select-btn\">\n <i class=\"fa-solid fa-search\"></i>\n {{ selectedContextCompressionPrompt ? 'Change' : 'Select' }} Prompt\n </button>\n @if (selectedContextCompressionPrompt) {\n <button type=\"button\"\n mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"clearContextCompressionPrompt()\"\n class=\"prompt-clear-btn\"\n title=\"Clear selection\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n </div>\n } @else {\n <span class=\"config-field-display\">{{ selectedContextCompressionPrompt?.Name || record.ContextCompressionPrompt || 'Not Set' }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n </div>\n </form>\n }\n\n <!-- Permissions Dialog (from @memberjunction/ng-agents) -->\n @if (ShowPermissionsDialog) {\n <mj-agent-permissions-dialog\n [Agent]=\"record\"\n (Closed)=\"onPermissionsDialogClosed()\"\n (PermissionsChanged)=\"refreshRelatedData()\">\n </mj-agent-permissions-dialog>\n }\n</div>", styles: ["/* AI Agent Form - Modern Redesign */\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n\n.record-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* Agent Header Section - Compact Design */\n.agent-header {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 8px 16px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n transition: padding 0.2s ease;\n}\n\n.agent-header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n/* Header collapse toggle button */\n.agent-header-toggle {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n padding: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-toggle:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-toggle i {\n font-size: 10px;\n}\n\n.agent-overview {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper {\n width: 36px;\n height: 36px;\n background: var(--mj-brand-primary);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n flex-shrink: 0;\n transition: all 0.2s ease;\n}\n\n.agent-icon-wrapper i {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n/* \u2500\u2500 Minimized Floating Header Bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.agent-header-mini {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n height: 32px;\n}\n\n.agent-header-mini-expand {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-expand:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-expand i {\n font-size: 9px;\n}\n\n.agent-header-mini-name {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.agent-header-mini-status {\n padding: 1px 7px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.agent-header-mini-spacer {\n flex: 1;\n}\n\n.agent-header-mini-btn {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-btn:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-btn:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.agent-header-mini-btn--primary {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-header-mini-btn--primary:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 50%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.agent-header-mini-btn i {\n font-size: 11px;\n}\n\n.agent-icon-wrapper img.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.2;\n}\n\n.agent-name-input {\n font-size: 16px !important;\n font-weight: 500 !important;\n height: 30px !important;\n width: 100% !important;\n max-width: 350px !important;\n}\n\n.agent-meta {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-badge.active {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n\n.status-badge.pending {\n background: var(--mj-status-warning);\n color: var(--mj-text-primary);\n}\n\n.status-badge.disabled {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.execution-mode,\n.parent-agent {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode i,\n.parent-agent i {\n font-size: 12px;\n opacity: 0.8;\n}\n\n.parent-agent.clickable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.parent-agent.clickable:hover {\n background: var(--mj-border-default);\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.parent-agent.clickable:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n/* Prompt Controls Section */\n.prompt-controls {\n flex: 1;\n margin-right: 16px;\n}\n\n.agent-meta-info {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value {\n font-size: 14px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n\n.agent-description {\n margin-top: 16px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n/* Action Buttons Section */\n.agent-actions {\n display: flex;\n flex-direction: row;\n gap: 8px;\n flex-shrink: 0;\n align-items: center;\n}\n\n.action-buttons-row {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.action-button:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);\n}\n\n.action-button.primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-button.primary:hover {\n background: var(--mj-brand-primary-hover);\n}\n\n.action-button.secondary {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.action-button.secondary:hover {\n background: var(--mj-text-secondary);\n}\n\n.action-warnings {\n margin-top: 8px;\n font-size: 13px;\n color: var(--mj-status-error);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Panel-Based Form Content */\n.form-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n padding: 8px 12px;\n}\n\n/* Kendo PanelBar Styling */\n::ng-deep .k-panelbar {\n border: none;\n background: transparent;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item {\n border: none;\n border-radius: 10px;\n margin-bottom: 8px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header {\n background: var(--mj-bg-surface);\n border: none;\n padding: 10px 16px;\n border-radius: 12px 12px 0 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: 14px;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header:hover {\n background: var(--mj-bg-surface-card);\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 12px 12px 0 0;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle {\n position: absolute;\n right: 24px;\n color: inherit;\n font-size: 14px;\n transition: transform 0.2s ease;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header .k-panelbar-toggle {\n transform: rotate(180deg);\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle::before {\n content: '\\f107';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-content {\n padding: 0;\n border: none;\n background: var(--mj-bg-surface);\n border-radius: 0 0 12px 12px;\n}\n\n::ng-deep .k-panelbar .k-header .k-panelbar-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n margin-right: 8px;\n}\n\n::ng-deep .k-panelbar .k-panelbar-expanded .k-header .k-panelbar-icon {\n color: var(--mj-text-inverse);\n}\n\n/* Panel Content */\n.panel-content {\n padding: 16px;\n background: var(--mj-bg-surface);\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n border: 1px solid var(--mj-border-default);\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid var(--mj-bg-surface-sunken);\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: var(--mj-text-primary);\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title i {\n color: var(--mj-brand-primary);\n font-size: 20px;\n}\n\n.section-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n/* Form Fields Grid */\n.form-fields-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Sub-grids styling (legacy) */\n.sub-grid-container {\n height: 500px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n display: none; /* Hidden as we now use cards */\n}\n\n/* Empty States */\n/* Loading State */\n.loading-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.loading-state i {\n font-size: 36px;\n color: var(--mj-brand-primary);\n margin-bottom: 16px;\n display: block;\n}\n\n.loading-state p {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-disabled);\n}\n\n.empty-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 48px;\n color: var(--mj-border-default);\n margin-bottom: 16px;\n}\n\n.empty-state h4 {\n color: var(--mj-text-secondary);\n font-weight: 600;\n margin-bottom: 8px;\n}\n\n.empty-state p {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto;\n}\n\n/* Loading State */\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon {\n width: 48px;\n height: 48px;\n border: 4px solid var(--mj-bg-surface-sunken);\n border-top: 4px solid var(--mj-brand-primary);\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Quick Actions */\n.quick-actions {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.quick-action-card {\n flex: 1;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card:hover {\n background: var(--mj-bg-surface);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon {\n font-size: 32px;\n color: var(--mj-brand-primary);\n margin-bottom: 8px;\n}\n\n.quick-action-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.quick-action-description {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* Header Actions */\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n/* Entity List Interface */\n.entity-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-1px);\n}\n\n.item-icon {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item .item-icon {\n background: var(--mj-status-success);\n}\n\n.action-item .item-icon {\n background: var(--mj-status-warning);\n}\n\n.sub-agent-item .item-icon {\n background: var(--mj-brand-primary);\n}\n\n.model-item .item-icon {\n background: var(--mj-brand-primary);\n}\n\n.learning-item .item-icon {\n background: var(--mj-status-error);\n}\n\n.note-item .item-icon {\n background: var(--mj-status-warning);\n}\n\n.item-icon i {\n color: var(--mj-text-muted);\n font-size: 18px;\n}\n\n.prompt-item .item-icon i,\n.action-item .item-icon i,\n.sub-agent-item .item-icon i,\n.model-item .item-icon i,\n.learning-item .item-icon i,\n.note-item .item-icon i {\n color: var(--mj-text-inverse);\n}\n\n.item-icon img.sub-agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content {\n flex: 1;\n min-width: 0;\n}\n\n.item-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag,\n.priority-tag,\n.status-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.priority-tag {\n color: var(--mj-text-inverse);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-tag.active {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-tag.inactive {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.item-actions {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: var(--mj-text-muted);\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item:hover .item-actions {\n opacity: 1;\n}\n\n.entity-item:hover .item-actions > i {\n color: var(--mj-brand-primary);\n}\n\n.view-more-item {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-more-item:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n/* Pagination Controls */\n.pagination-controls {\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: center;\n padding: 16px;\n margin-top: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n}\n\n.page-nav-btn {\n min-width: 120px;\n font-weight: 500;\n}\n\n.page-nav-btn i {\n font-size: 12px;\n}\n\n.page-nav-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.page-info {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 0 16px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n min-width: 200px;\n text-align: center;\n}\n\n.page-info .record-count {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: normal;\n}\n\n.page-info .fa-spinner {\n margin-right: 8px;\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn {\n color: var(--mj-text-muted);\n white-space: nowrap;\n margin-left: auto;\n}\n\n.view-all-btn:hover {\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn i {\n margin-right: 4px;\n}\n\n/* Payload Section Styles */\n.payload-config-section,\n.payload-paths-section,\n.payload-validation-section {\n margin-bottom: 32px;\n}\n\n.subsection-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.subsection-title i {\n color: var(--mj-brand-primary);\n}\n\n.subsection-divider {\n margin-top: 32px;\n margin-bottom: 16px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.payload-config-grid {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.payload-field-group {\n margin-bottom: 20px;\n}\n\n.payload-field-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.payload-field-label i {\n color: var(--mj-text-muted);\n font-size: 16px;\n}\n\n.field-description {\n font-size: 12px;\n font-weight: normal;\n color: var(--mj-text-muted);\n margin-left: auto;\n}\n\n/* Code editor styling */\n.payload-field-group mj-code-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.payload-field-group mj-code-editor:hover {\n border-color: var(--mj-brand-primary);\n}\n\n/* Payload textarea styling */\n.payload-field-group mj-form-field ::ng-deep textarea {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.5;\n min-height: 120px;\n resize: vertical;\n}\n\n/* Execution History Panel */\n.execution-history-panel {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Timeline List for Execution History */\n.timeline-list {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n.timeline-marker {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker i {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n/* Modern Card-Based Interface (Legacy - Keep for backward compatibility) */\n.cards-container {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\n border-color: var(--mj-brand-primary);\n}\n\n.entity-card::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card:hover::before {\n opacity: 1;\n}\n\n.card-header {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card .card-icon {\n background: var(--mj-brand-primary);\n}\n\n.prompt-card .card-icon {\n background: var(--mj-status-success);\n}\n\n.action-card .card-icon {\n background: var(--mj-status-warning);\n}\n\n.card-icon i {\n font-size: 18px;\n color: var(--mj-text-muted);\n}\n\n.sub-agent-card .card-icon i,\n.prompt-card .card-icon i,\n.action-card .card-icon i {\n color: var(--mj-text-inverse);\n}\n\n.card-title-section {\n flex: 1;\n min-width: 0;\n}\n\n.card-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 4px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n}\n\n.meta-item i {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active {\n color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.inactive {\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n}\n\n.card-actions {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: var(--mj-text-muted);\n}\n\n.entity-card:hover .card-actions {\n opacity: 1;\n color: var(--mj-brand-primary);\n}\n\n/* Badge Styles */\n.priority-badge {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n/* View All Card */\n.view-all-card {\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n}\n\n.view-all-content {\n text-align: center;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-all-content i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n/* Timeline Interface for History */\n.timeline-container {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.timeline-item.expanded {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.timeline-item.view-all {\n cursor: pointer;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n}\n\n.timeline-item.view-all:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-item > div:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.timeline-item:last-child .timeline-marker::after {\n display: none;\n}\n\n.timeline-marker i {\n color: var(--mj-text-inverse);\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker {\n background: var(--mj-text-muted);\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header > div:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: var(--mj-text-muted);\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview {\n font-size: 13px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n}\n\n.timeline-status {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error {\n color: var(--mj-status-error);\n font-size: 13px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error i {\n flex-shrink: 0;\n}\n\n/* Expanded Content Styles */\n.timeline-expanded-content {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section,\n.error-section {\n margin-bottom: 20px;\n}\n\n.result-section h5,\n.error-section h5 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section h5 {\n color: var(--mj-status-error);\n}\n\n.result-content,\n.error-content {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-text-secondary);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* Code editor styling within result section */\n.result-section mj-code-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.execution-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--mj-text-secondary);\n word-break: break-all;\n}\n\n.timeline-actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary {\n padding: 8px 16px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.btn-primary i {\n font-size: 12px;\n}\n\n/* Enhanced Empty States */\n.empty-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 2px dashed var(--mj-border-default);\n margin-top: 16px;\n}\n\n.empty-state i {\n font-size: 48px;\n color: var(--mj-border-default);\n margin-bottom: 16px;\n}\n\n.empty-state h4 {\n color: var(--mj-text-secondary);\n font-weight: 600;\n margin-bottom: 8px;\n font-size: 18px;\n}\n\n.empty-state p {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto 20px auto;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n /* Header Responsiveness */\n .agent-header {\n padding: 16px;\n }\n\n .agent-header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .agent-overview {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .agent-meta {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .agent-actions {\n width: 100%;\n align-self: stretch;\n }\n\n .action-button {\n flex: 1;\n justify-content: center;\n }\n\n /* Panel Responsiveness */\n .form-content {\n padding: 12px;\n }\n\n ::ng-deep .k-panelbar > .k-panelbar-item > .k-header {\n padding: 16px 20px;\n font-size: 15px;\n }\n\n .panel-content {\n padding: 20px 16px;\n }\n\n .section-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .header-actions {\n flex-wrap: wrap;\n align-self: stretch;\n }\n\n /* Entity List Responsiveness */\n .entity-item {\n padding: 12px;\n gap: 12px;\n }\n\n .item-icon {\n width: 36px;\n height: 36px;\n }\n\n .item-icon i {\n font-size: 16px;\n }\n\n .item-title {\n font-size: 15px;\n }\n\n .item-preview {\n font-size: 13px;\n }\n\n .item-meta {\n gap: 8px;\n }\n\n /* Timeline Responsiveness */\n .timeline-item {\n padding: 12px;\n gap: 12px;\n }\n\n .timeline-marker {\n width: 28px;\n height: 28px;\n }\n\n .timeline-marker i {\n font-size: 12px;\n }\n\n .timeline-title {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .timeline-date {\n align-self: flex-start;\n }\n\n /* Form Field Responsiveness */\n .form-fields-grid {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n /* Legacy card support */\n .cards-container {\n grid-template-columns: 1fr;\n }\n}\n\n/* Execution History Panel - Max Height and Scroll */\n.execution-history-panel {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Custom scrollbar for execution history */\n.execution-history-panel::-webkit-scrollbar {\n width: 8px;\n}\n\n.execution-history-panel::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.execution-history-panel::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 4px;\n}\n\n.execution-history-panel::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n/* Execution History Search Bar */\n.execution-search-bar {\n margin-bottom: 16px;\n padding: 0 4px;\n}\n\n.execution-search-bar .fa-search {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n font-size: 14px;\n}\n\n/* New Execution History Card Design */\n.execution-history-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 8px;\n}\n\n.execution-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.2s ease;\n cursor: pointer;\n}\n\n.execution-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n transform: translateY(-1px);\n}\n\n.execution-card.expanded {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 6px 20px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.execution-header {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.execution-left-section {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.execution-status {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.status-indicator {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.status-indicator i {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.execution-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.execution-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.execution-metrics {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex-wrap: wrap;\n margin-left: 44px; /* Align with execution title text, accounting for status indicator + gap */\n}\n\n.metric-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-card);\n padding: 6px 10px;\n border-radius: 6px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.metric-item i {\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n.metric-label {\n font-weight: 500;\n}\n\n.metric-value {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.execution-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.action-btn {\n width: 32px;\n height: 32px;\n border: none;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.action-btn:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n}\n\n.action-btn i {\n font-size: 12px;\n}\n\n.expand-icon {\n transition: transform 0.2s ease;\n color: var(--mj-text-muted);\n margin-right: 4px;\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n/* Execution Expanded Content */\n.execution-expanded-content {\n padding: 16px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n background: var(--mj-bg-surface-card);\n animation: slideDown 0.2s ease;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n to {\n opacity: 1;\n max-height: 500px;\n padding-top: 16px;\n padding-bottom: 16px;\n }\n}\n\n.detailed-metrics {\n margin-bottom: 20px;\n}\n\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.metric-detail {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n}\n\n.metric-detail i {\n color: var(--mj-brand-primary);\n font-size: 16px;\n width: 20px;\n text-align: center;\n}\n\n.metric-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n}\n\n.metric-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-data {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.result-section {\n margin-top: 16px;\n}\n\n.result-section h5 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section h5 {\n color: var(--mj-status-error);\n}\n\n.error-content {\n background: color-mix(in srgb, var(--mj-status-error) 10%, 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 padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-status-error);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 150px;\n overflow-y: auto;\n}\n\n/* Responsive adjustments for execution history */\n@media (max-width: 768px) {\n .execution-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .execution-left-section {\n width: 100%;\n }\n\n .execution-metrics {\n margin-left: 0; /* Remove left margin on mobile */\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n }\n\n .metric-item {\n font-size: 11px;\n padding: 4px 8px;\n }\n\n .metrics-grid {\n grid-template-columns: 1fr;\n }\n}\n\n/* === PAYLOAD MANAGEMENT SECTION === */\n.payload-section {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.payload-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.payload-section-title i {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n/* Payload Scope Styling */\n.payload-field-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-field-info {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.payload-field-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.5;\n margin: 0;\n}\n\n.payload-field-input {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-example {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.payload-field-example i {\n color: var(--mj-status-warning);\n font-size: 0.9rem;\n}\n\n.payload-field-example code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.2rem 0.4rem;\n border-radius: 4px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n}\n\n/* Path Configuration Grid */\n.payload-paths-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.payload-path-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.payload-path-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.payload-path-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.payload-path-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.payload-path-icon.downstream {\n background: var(--mj-status-success);\n}\n\n.payload-path-icon.upstream {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-read {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-write {\n background: var(--mj-status-warning);\n}\n\n.payload-path-icon i {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.payload-path-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.payload-path-info p {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-content {\n padding: 1rem;\n}\n\n.json-editor-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 0.75rem;\n}\n\n.json-editor-container:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.payload-path-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-hint i {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.payload-path-hint code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n/* Payload Validation Container */\n.payload-validation-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-validation-settings {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.validation-field-group {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.validation-field-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.validation-field-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0 0 0.5rem 0;\n}\n\n.payload-validation-schema {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.validation-schema-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.validation-schema-label i {\n color: var(--mj-brand-primary);\n}\n\n.validation-schema-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.validation-schema-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.validation-schema-editor:hover {\n border-color: var(--mj-brand-primary);\n}\n\n/* === CONFIGURATION SECTION === */\n.config-section {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.config-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.config-section-title i {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n.config-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n width: 100%;\n}\n\n.config-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.config-card.full-width {\n grid-column: 1 / -1;\n}\n\n.config-card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.config-card-icon i {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.config-card-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.config-card-info p {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.config-card-content {\n padding: 1rem;\n}\n\n/* Custom field styling for config cards */\n.config-field-input {\n width: 100%;\n min-width: 250px;\n}\n\n.config-card-content ::ng-deep mj-form-field {\n width: 100% !important;\n}\n\n.config-field-display {\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n padding: 8px 0;\n display: block;\n min-height: 20px;\n}\n\n/* Prompt selector styling */\n.prompt-selector-container {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n.prompt-display {\n flex: 1;\n min-width: 0;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n}\n\n.prompt-name {\n color: var(--mj-text-secondary);\n font-weight: 500;\n font-size: 14px;\n}\n\n.no-prompt {\n color: var(--mj-text-muted);\n font-style: italic;\n font-size: 14px;\n}\n\n.prompt-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.prompt-select-btn {\n white-space: nowrap;\n}\n\n.prompt-clear-btn {\n min-width: 32px;\n}\n\n.config-card-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-top: 0.5rem;\n}\n\n.config-card-hint i {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.config-card-hint code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n/* === RESPONSIVE DESIGN === */\n@media (max-width: 768px) {\n .payload-field-container,\n .payload-validation-container {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n\n .payload-paths-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .config-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .payload-section-title,\n .config-section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .payload-path-header,\n .config-card-header {\n padding: 0.75rem;\n }\n\n .payload-path-content,\n .config-card-content {\n padding: 0.75rem;\n }\n\n .payload-field-container,\n .payload-validation-container {\n padding: 1rem;\n }\n}\n\n/* ===================================\n Unified Sub-Agents with Filtering\n =================================== */\n\n/* Filter Controls */\n.sub-agent-filter-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.filter-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n/* Sub-Agent Type Badge */\n.sub-agent-type-badge {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n display: flex;\n align-items: center;\n gap: 4px;\n z-index: 1;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n/* Sub-Agent Item Styling */\n.sub-agent-item {\n position: relative;\n padding-left: 8px;\n transition: all 0.2s ease;\n}\n\n.sub-agent-item.child-sub-agent {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item.related-sub-agent {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item:hover {\n transform: translateX(4px);\n}\n\n/* Payload Info Tag */\n.payload-info {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n font-family: 'Roboto Mono', monospace;\n font-size: 11px;\n}\n\n/* Empty State Info Cards */\n.empty-state-info {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n margin: 24px 0;\n max-width: 600px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.info-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n text-align: left;\n}\n\n.info-card i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.info-card strong {\n display: block;\n margin-bottom: 4px;\n font-size: 14px;\n}\n\n.info-card p {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-actions {\n display: flex;\n gap: 12px;\n justify-content: center;\n margin-top: 16px;\n}\n\n/* Responsive adjustments for sub-agent filters */\n@media (max-width: 768px) {\n .sub-agent-filter-header {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls,\n .header-actions {\n width: 100%;\n justify-content: center;\n }\n\n .empty-state-info {\n grid-template-columns: 1fr;\n }\n}\n"] }]
|
|
4555
4512
|
}], null, { customSectionContainer: [{
|
|
4556
4513
|
type: ViewChild,
|
|
4557
4514
|
args: ['customSectionContainer', { read: ViewContainerRef }]
|